Skip to main content

Config.Archives

persistent class Config.Archives extends %Library.Persistent, Config.CommonMultipleMethods, Config.CommonProperties, %SYSTEM.Help

SQL Table Name: Config.Archives

This class allows you to modify and view the [Archives] section of the CPF file through programatic APIs. While properties are usually modified through the System Management portal, there may be some occasion where modifying them through the API's is best for your system. In all the Config methods, if you do not specify the CPFFile parameter, the currently active CPF file is used. If you wish to modify a CPF file which is not the currently active one, then specify the CPFFile you wish to modify in the method call.
The Flags parameter does not normally need to be specified; the defaults are usually sufficient for most cases.
You can use either the provided API's (Create/Get/Modify/Delete) to modify the properties by passing in the correct parameters, or use Object sytax to open and directly manipulate the config objects (Open() and Exists()). Most objects created here need only to specify the Name of the object, and 1 or 2 properties since the the defaults are what are commonly used for most cases.

EXAMPLE:

; Use class methods to create an instance
%SYS>s Name="ABC"
%SYS>s Properties("Type")="s3"
%SYS>s Properties("Location")="s3://myBucket/"
%SYS>s Status=##Class(Config.Archives).Create(Name,.Properties)
%SYS>i '$$$ISOK(Status) w !,"Error="_$SYSTEM.Status.GetErrorText(Status)
; Use class methods to modify properties
%SYS>s Status=##Class(Config.Archives).Get(Name,.Properties)
%SYS>i '$$$ISOK(Status) w !,"Error="_$SYSTEM.Status.GetErrorText(Status)
%SYS>zw Properties
Properties("Type")="s3"
Properties("Location")="s3://myBucket/"
%SYS>s Properties("Location")="s3://myBucket2/"
%SYS>s Status=##Class(Config.Archives).Modify(Name,.Properties)
%SYS>i '$$$ISOK(Status) w !,"Error="_$SYSTEM.Status.GetErrorText(Status)
; Now use Objects to modify properties
%SYS>s Obj=##Class(Config.Archives).Open(Name)
; We could have used i ##Class(Config.Archives).Exists(Name,.Obj) instead of Open()
%SYS>w Obj.Type
s3
%SYS>s Obj.Location="s3://myBucket/"
%SYS>s Status=Obj.%Save()
%SYS>i '$$$ISOK(Status) w !,"Error="_$SYSTEM.Status.GetErrorText(Status)
; Now delete the object we just created
%SYS>s Status=##Class(Config.Archives).Delete(Name)
%SYS>i '$$$ISOK(Status) w !,"Error="_$SYSTEM.Status.GetErrorText(Status)

Property Inventory

Method Inventory

Parameters

parameter CAPITALNAME = 1;
Archive name is always capitalized.

Properties

property Location as %String (MAXLEN = 4096);


Property methods: LocationDisplayToLogical(), LocationGet(), LocationGetStored(), LocationIsValid(), LocationLogicalToDisplay(), LocationLogicalToOdbc(), LocationNormalize(), LocationSet()
property Type as %String;


Property methods: TypeDisplayToLogical(), TypeGet(), TypeGetStored(), TypeIsValid(), TypeLogicalToDisplay(), TypeLogicalToOdbc(), TypeNormalize(), TypeSet()

Methods

classmethod ArchiveByName(Name As %String) as %String
Return Type,Location of a named archive target.
classmethod Modify(Name As %String, ByRef Properties As %String, ByRef CPFFile As %String = "", Flags As %Integer = $$$CPFSave+$$$CPFWrite+$$$CPFActivate) as %Status
Modify Dataset section instance in CPF file. If the Server or Directory path is changed, it will be reflected on all Namespaces referring this DB.

Parameters:
Name - Name of the archive target to modify.
Properties (byref) - List of the properties to modify in Properties(Name)=Value format. See the subclass for a list of valid properties. If a specific property is not passed in the properties array, the value is not modified.
CPFFile (byref) - Name of the CPF file to use, Default=current active CPF file.
Flags - Bit string of options to perform. See the Create() method for values.

Return values:
CPFFile (byref) - Name of the CPF file the modification was made in.
classmethod Rename(OldName As %String, NewName As %String, ByRef CPFFile As %String = "") as %Status
Rename the archive name in the CPF file.

Parameters:
OldName - Name of the archive to rename.
NewName (byref) - New name of the archive.
CPFFile (byref) - Name of the CPF file to use, Default=current active CPF file.

Return values:
CPFFile (byref) - Name of the CPF file the modification was made in.

Queries

query List(Names As %String = "*", CPFFile As %String = "", Flags As %Integer = 0, Format As %Integer = 0)
Selects Name As %String, Type As %String, Location As %String, Comments
List Archives in a CPF file.

Parameters:
Names - Comma separated list of Archive names
"*" - All records match
"String,String1" - Any records matching one of these elements
"String*" - Any record starting with "String"
"String,String1*,String2" - Any record matching one of these elements, or starting with "String1"
CPFFile - Name of the CPF file to use. A null string means use the active CPF file.
Flags - Type of archives to return 0 - All archives 1 - rsync archives 2 - s3 archives Format
0 - Standard report list format
1 - ^CONFIG global format
2 - CPF file format
Note: This query may change in future versions

Indexes

index (CPFNameSectionHeaderName on CPFName,SectionHeader,Name) [IdKey, Type = key, Unique];
Index methods: CPFNameSectionHeaderNameCheck(), CPFNameSectionHeaderNameDelete(), CPFNameSectionHeaderNameExists(), CPFNameSectionHeaderNameOpen(), CPFNameSectionHeaderNameSQLCheckUnique(), CPFNameSectionHeaderNameSQLExists(), CPFNameSectionHeaderNameSQLFindPKeyByConstraint(), CPFNameSectionHeaderNameSQLFindRowIDByConstraint()

Inherited Members

Inherited Properties

Inherited Methods

Storage

Storage Model: Storage (Config.Archives)

^|"^^"_$ZU(12)|SYS("CONFIG")(ID)
=
%%CLASSNAME
Type
Location
Comments
FeedbackOpens in a new tab