%SYSTEM.OBJ.FM2Class
Class %SYSTEM.OBJ.FM2Class Extends %SYSTEM.Help [ Abstract, System = 4 ]
The %SYSTEM.OBJ.FM2Class class provides an interface for mapping FileMan files to InterSystems classes.
You can use it via the special $system object: Do $system.OBJ.FM2Class.All(,.count)
Note: The FileMan toolset is available and fully supported in InterSystems IRIS for existing FileMan users. InterSystems recommends against starting new development projects using FileMan.
Methods
All
ClassMethod All(ByRef fmSettings, ByRef classCount As %Integer)
Maps all FileMan files in the current namespace to class definitions.
For example: Do $System.OBJ.FM2Class.All(.fmSettings,.classCount)
One
ClassMethod One(fileNumber As %Numeric = "", ByRef fmSettings, ByRef fmFields, ByRef classCount As %Integer)
Maps a single FileMan file in the current namespace to a class definition.
Arguments:
fileNumber = The FileMan File number of the file you want to map to a class
fmSettings = FileMan configuration settings to use for this call. This is an array passed by reference. Defaults for the settings come from the FileMan-to-Class configuration settings.
fmFields = If defined, limits the fields in the file that will be mapped. This is an array of the form fmFields(file-number,field-number). Any required fields and fields defined in this array will be mapped in the class definition. If this array is empty or not defined, all fields in the file will be mapped. This array is passed by reference.
classCount = This parameter is passed by reference and will return a count of the classes created.
Depending on the arguments passed in, this API may actually result in the generate of multiple classes. We might generate reference classes for pointer fields and child classes for Sub-Files/Multiples.
Some examples: Set fmSettings("recursion")=0 // Only map this file Set fmSettings("display")=1 // Short screen display Set fmSettings("logFile")="C:\Map\NEW PERSON.log" // Map only the following fields from the "NEW PERSON" file: // NAME, STREET ADDRESS 1, STREET ADDRESS 2, STREET ADDRESS 3 // CITY, STATE, ZIP CODE, PHONE (HOME), OFFICE PHONE, EMAIL ADDRESS // (Plus any required fields in the NEW PERSON file) For n=.01,.111,.112,.113,.114,.115,.116,.131,.132,.151 { Set fmFields(200,n)=0 } Do $System.OBJ.FM2Class.One(200,.fmSettings,.fmFields)
Set fmSettings("compile")=0 Set fmSettings("recursion")=2 // Map all fields and all related files for the NEW PERSON file Do $System.OBJ.FM2Class.One(200,.fmSettings,,.count) Write !,count," classes mapped."
Some
ClassMethod Some(fileList As %String = "", ByRef fmSettings, ByRef fmFields, ByRef classCount As %Integer)
Maps a list of FileMan files in the current namespace to a class definition.
Arguments:
fileList = The FileMan File numbers of the files you want to map to a classes. fileList is a comma delimited list of file number or ranges of file numbers.
fmSettings = FileMan configuration settings to use for this call. This is an array passed by reference. Defaults for the settings come from the FileMan-to-Class configuration settings.
fmFields = If defined, limits the fields in the file that will be mapped. This is an array of the form fmFields(file-number,field-number). Any required fields and fields defined in this array will be mapped in the class definition. If this array is empty or not defined, all fields in the file will be mapped. This array is passed by reference.
classCount = This parameter is passed by reference and will return a count of the classes created.
Depending on the arguments passed in, this API may actually result in the generate of more classes that files specified. We might generate reference classes for pointer fields and child classes for Sub-Files/Multiples.
Some examples: Set fmSettings("recursion")=0 // Only map this file Set fmSettings("display")=1 // Short screen display Set fmSettings("logFile")="C:\Map\NEW PERSON and DENTAL.log" // Map only the following fields from the "NEW PERSON" file: // NAME, STREET ADDRESS 1, STREET ADDRESS 2, STREET ADDRESS 3 // CITY, STATE, ZIP CODE, PHONE (HOME), OFFICE PHONE, EMAIL ADDRESS // (Plus any required fields in the NEW PERSON file) // All fields from the DENTAL* files will be mapped For n=.01,.111,.112,.113,.114,.115,.116,.131,.132,.151 { Set fmFields(200,n)=0 } Do $System.OBJ.FM2Class.Some("200,220:226,727.806",.fmSettings,.fmFields)
Version
ClassMethod Version() As %Library.String
Displays the version of the FM2Class utility
GetVersion
ClassMethod GetVersion() As %Library.String
Returns the version of the FM2Class utility