This class allows you to modify and view global mappings in the [Map.xxx] section of the CPF file through programatic APIs. More...
Public Member Functions | |
_.Library.Status | OnAddToSaveSet (_.Library.Integer depth, _.Library.Integer insert, _.Library.Integer callcount) |
This class allows you to modify and view global mappings in the [Map.xxx] section of the CPF file through programatic APIs. More... | |
Public Attributes | |
Collation | |
Default collation of the global. More... | |
Database | |
Database to map global to. More... | |
LockDatabase | |
Database to map global lock to. More... | |
![]() | |
CPFFile | |
CPF file which the object maps to. More... | |
Comments | |
Embedded comments in the CPF file. More... | |
Flags | |
Flags governing how the object is processed when Save() is called. More... | |
Name | |
Name of the mapping. More... | |
Namespace | |
Namespace where the mapping is. More... | |
Static Private Member Functions | |
_.Library.Status | OnDeleteCallBack (_.Library.ObjectHandle Obj) |
Called from Delete(). More... | |
Additional Inherited Members | |
![]() | |
SECTIONTYPE = None | |
This parameter governs how the class creates audit records. More... | |
![]() | |
DOMAIN = None | |
This class contains properties which are included by classes which manipulate namespace mappings in the CPF file. More... | |
This class allows you to modify and view global mappings in the [Map.xxx] 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 syntax 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 a global mapping in namespace USER to the SAMPLES database SYS>s Namespace="USER" SYS>s Name="ABC" SYS>s Properties("Database")="SAMPLES" SYS>s Status=##Class(Config.MapGlobals).Create(Namespace,Name,.Properties) SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status) ; Now add a SLM mapping for a global XYZ(100). Note that two mappings will actually ; get created, a mapping of XYZ to namespace USER, and XYZ(100) to SAMPLES. We need this ; because the main mapping of XYZ will contain the collation of the entire global ; (which is 5 by default, Standard collation) SYS>s Namespace="USER" SYS>s Name="XYZ(100)" SYS>s Properties("Database")="SAMPLES" SYS>s Status=##Class(Config.MapGlobals).Create(Namespace,Name,.Properties) SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status) ; Use class methods to modify properties SYS>s Status=##Class(Config.MapGlobals).Get(Namespace,Name,.Properties) SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status) SYS>zw Properties Properties("Collation")=5 Properties("Database")="SAMPLES" Properties("LockDatabase")="" SYS>s Properties("Database")="TEST" SYS>s Status=##Class(Config.MapGlobals).Modify(Namespace,Name,.Properties) SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status) ; Now use Objects to modify properties SYS>s Obj=##Class(Config.MapGlobals).Open(Namespace,Name) ; We could have used i ##Class(Config.MapGlobals).Exists(Namespace,Name,.Obj) instead of Open() SYS>w Obj.Database TEST SYS>s Obj.Database="USER" SYS>s Status=Obj.Save() SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status) ; Now delete the object we just created SYS>s Status=##Class(Config.MapGlobals).Delete(Namespace,Name) SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status)
_.Library.Status OnAddToSaveSet | ( | _.Library.Integer | depth, |
_.Library.Integer | insert, | ||
_.Library.Integer | callcount | ||
) |
This class allows you to modify and view global mappings in the [Map.xxx] 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 syntax 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 a global mapping in namespace USER to the SAMPLES database SYS>s Namespace="USER" SYS>s Name="ABC" SYS>s Properties("Database")="SAMPLES" SYS>s Status=##Class(Config.MapGlobals).Create(Namespace,Name,.Properties) SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status) ; Now add a SLM mapping for a global XYZ(100). Note that two mappings will actually ; get created, a mapping of XYZ to namespace USER, and XYZ(100) to SAMPLES. We need this ; because the main mapping of XYZ will contain the collation of the entire global ; (which is 5 by default, Standard collation) SYS>s Namespace="USER" SYS>s Name="XYZ(100)" SYS>s Properties("Database")="SAMPLES" SYS>s Status=##Class(Config.MapGlobals).Create(Namespace,Name,.Properties) SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status) ; Use class methods to modify properties SYS>s Status=##Class(Config.MapGlobals).Get(Namespace,Name,.Properties) SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status) SYS>zw Properties Properties("Collation")=5 Properties("Database")="SAMPLES" Properties("LockDatabase")="" SYS>s Properties("Database")="TEST" SYS>s Status=##Class(Config.MapGlobals).Modify(Namespace,Name,.Properties) SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status) ; Now use Objects to modify properties SYS>s Obj=##Class(Config.MapGlobals).Open(Namespace,Name) ; We could have used i ##Class(Config.MapGlobals).Exists(Namespace,Name,.Obj) instead of Open() SYS>w Obj.Database TEST SYS>s Obj.Database="USER" SYS>s Status=Obj.Save() SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status) ; Now delete the object we just created SYS>s Status=##Class(Config.MapGlobals).Delete(Namespace,Name) SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status)
Called from Save().
Set some fields to their defaults, and normalize begin:end.
|
staticprivate |
Called from Delete().
Any error returned here will keep the object from being deleted.
|
static |
Returns true if the argument passes the Subscript/Sbscript range syntax check.
Internal use only.
Note that this is also called by EMS, and shouldn't reference any SYS Config info
Collation |
Default collation of the global.
Database |
Database to map global to.
LockDatabase |
Database to map global lock to.