Skip to main content


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

SQL Table Name: Config.Devices

This class allows you to modify and view the [Devices] 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.


; Use class methods to create an instance
%SYS>s Name="NewDevice"
%SYS>s Properties("PhysicalDevice")=0
%SYS>s Properties("SubType")="C-InterSystems IRIS Terminal"
%SYS>s Properties("Type")="TRM"
%SYS>s Status=##Class(Config.Devices).Create(Name,.Properties)
%SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status)
; Use class methods to modify properties
%SYS>s Status=##Class(Config.Devices).Get(Name,.Properties)
%SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status)
%SYS>zw Properties("SubType")
Properties("SubType")="C-InterSystems IRIS Terminal"
%SYS>s Properties("SubType")="C-VT220"
%SYS>s Status=##Class(Config.Devices).Modify(Name,.Properties)
%SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status)
; Now use Objects to modify properties
%SYS>s Obj=##Class(Config.Devices).Open(Name)
; We could have used i ##Class(Config.Devices).Exists(Name,.Obj) instead of Open()
%SYS>w Obj.SubType
%SYS>s Obj.SubType="C-VT440"
%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.Devices).Delete(Name)
%SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status)

Property Inventory


property Alias as %Integer (MINVAL = 1);
Alternate device ID (number) for this device.
All aliases must be unique. You can use this value to specify a device in an OPEN command, e.g 0PEN 210
Property methods: AliasDisplayToLogical(), AliasGet(), AliasGetStored(), AliasIsValid(), AliasLogicalToDisplay(), AliasNormalize(), AliasSet(), AliasXSDToLogical()
property AlternateDevice as %String (MAXLEN = 128, MINLEN = 0);
Device ID of an alternate device.
This allows a user using %IS to specify A as the device. The alternate device must be a defined mnemonic.
Property methods: AlternateDeviceDisplayToLogical(), AlternateDeviceGet(), AlternateDeviceGetStored(), AlternateDeviceIsValid(), AlternateDeviceLogicalToDisplay(), AlternateDeviceLogicalToOdbc(), AlternateDeviceNormalize(), AlternateDeviceSet()
property Description as %String (MAXLEN = 256, MINLEN = 0);
Enter a description of where the device is located. This field is for your
own reference to help you identify what machine you're configuring.
Property methods: DescriptionDisplayToLogical(), DescriptionGet(), DescriptionGetStored(), DescriptionIsValid(), DescriptionLogicalToDisplay(), DescriptionLogicalToOdbc(), DescriptionNormalize(), DescriptionSet()
property OpenParameters as %String (MAXLEN = 128, MINLEN = 0);
Values that will be sent as the second argument for an OPEN command.
This value allows you to specify more specific terminal information.
Property methods: OpenParametersDisplayToLogical(), OpenParametersGet(), OpenParametersGetStored(), OpenParametersIsValid(), OpenParametersLogicalToDisplay(), OpenParametersLogicalToOdbc(), OpenParametersNormalize(), OpenParametersSet()
property PhysicalDevice as %String (MAXLEN = 128, MINLEN = 1) [ Required ];
Physical device name used to refer to the device.
Property methods: PhysicalDeviceDisplayToLogical(), PhysicalDeviceGet(), PhysicalDeviceGetStored(), PhysicalDeviceIsValid(), PhysicalDeviceLogicalToDisplay(), PhysicalDeviceLogicalToOdbc(), PhysicalDeviceNormalize(), PhysicalDeviceSet()
property Prompt as %Integer (MAXVAL = 2, MINVAL = 1);
Number of the prompt option desired.
NULL (blank) = user sees the device selection prompt with the default device defined
1 = automatically uses this device, if it is the current device
2 = automatically uses this device with predefined Right Margin and Parameter settings.
Property methods: PromptDisplayToLogical(), PromptGet(), PromptGetStored(), PromptIsValid(), PromptLogicalToDisplay(), PromptNormalize(), PromptSet(), PromptXSDToLogical()
property SubType as %String (MAXLEN = 128, MINLEN = 1) [ Required ];
Options to refine the definition of your device SubTypes.
SubTypes specify terminal charactistics. They are used to create the appropriate OPEN command for the device. There should be SubType information for every terminal type.
Property methods: SubTypeDisplayToLogical(), SubTypeGet(), SubTypeGetStored(), SubTypeIsValid(), SubTypeLogicalToDisplay(), SubTypeLogicalToOdbc(), SubTypeNormalize(), SubTypeSet()
property Type as %String (MAXLEN = 3, MINLEN = 2) [ Required ];
Enter the type of device.
TRM = Terminal
SPL = Spooling device
MT = Magnetic Tape drive
BT = Cartridge tape drive
IPC = Interprocess communication
OTH = any other device including printers and sequential files.
Default depends on the device type.
Property methods: TypeDisplayToLogical(), TypeGet(), TypeGetStored(), TypeIsValid(), TypeLogicalToDisplay(), TypeLogicalToOdbc(), TypeNormalize(), TypeSet()


query List(Names As %String, CPFFile As %String = "", Flags As %Integer = 0, Format As %Integer = 0)
Selects Name As %String, PhysicalDevice As %String, Type As %String, SubType As %String, Prompt As %String, OpenParameters As %String, AlternateDevice As %String, Description As %String, Alias As %String
List Devices in a CPF file.

Names - Comma separated list of Device 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 - Currently ignored.
0 - Standard report list format
1 - ^CONFIG global format
2 - CPF file format format
Note: This query may change in future versions


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 Model: Storage (Config.Devices)

FeedbackOpens in a new tab