The CopyWriteInterface ActiveX Server implements a set of Automation Objects which provide access to A-Series Volumes on Windows NT/2000.
The Automation Objects have Methods and Properties which may be used to do things with those Volumes, in a Scripting Language such as VBScript.
An A-Series Volume on Windows NT may be an A-Series Virtual Disk, or a Library/Maintenance CD-Image in a File, or an MCP Wrapped Container or a CopyWrite Distributed Disk Farm.
The Automation Objects are implemented in the library CopyWriteInterface.dll, which is installed when CopyWrite is installed on Windows. They are defined in the Registery, in HKEY_CLASSES_ROOT with a ProgId of CopyWriteInterface.<name>X. For example, CopyWriteInterface.MCPSupportX.
This example shows an A-Series Virtual Disk being checked for BigFiles,
Option Explicit ' ***** BigFiles Report on Disk004.asd ***** Dim Selector,File,FileSystem,Report,ReportFileName,Reason Sub Spout(Text) Report.WriteLine(Text) End Sub 'Spout Sub NotePad(FileName) Dim Shell Set Shell = CreateObject("WScript.Shell") Shell.Run ("%windir%\notepad " & FileName) End Sub 'NotePad ' ***** Create the Report File ***** ReportFileName="C:\Temp\BigFilesReport.txt" Set FileSystem = CreateObject("Scripting.FileSystemObject") Set Report = FileSystem.CreateTextFile(ReportFileName, TRUE) ' ***** Select the A-Series Disk Volume ***** Set Selector=CreateObject("CopyWriteInterface.SelectorX") If Not Selector.SelectVolume("C:\Disk004.asd",Reason) then Spout(Reason) End If Spout("There are " & Selector.FileCount & " Files on the Disk") ' ***** Select the Big Files ***** For Each File In Selector If (File.NumberOfSectors > 10000) then Spout(File.FileName & " " & File.NumberOfSectors & " Sectors") End If Next Spout("End of Report") ' ***** Print the Report ***** Report.Close NotePad(ReportFileName)
If this script is in a file called C:\Temp\BigFilesReport.vbs and the MicroSoft Scripting Host is installed, then double clicking on the file will produce a report of the big files in the A-Series Virtual Disk called C:\Disk004.asd.
The Automation Objects are implemented in the CopyWriteInterface ActiveX In-Process Server, or in other words a Library (DLL), which is loaded into the address space of the program which wants to use one of the Objects.
Each of the Objects provides Methods and Properties for handling some particular A-Series Object, such as a StandardFormName or a Tape Directory or a Disk File Header or an A-Series Disk Volume. To do this, they must be created and associated with an actual thing.
To explain this further, let there be an A-Series Virtual Disk in a file called C:\Disk000.asd.
The Object which represents an A-Series Disk and other A-Series Volumes has been named SelectorX, because it is used to select an A-Series Volume.
In VBScript the SelectorX Object is created like this,
Set Selector=CreateObject("CopyWriteInterface.SelectorX")
The Object now exists, referenced by the variable called Selector, but it needs to be associated with an actual thing, which is done using a method provided by the Object.
If Not Selector.SelectVolume("C:\Disk004.asd",Reason) then Spout(Reason) End If
The SelectVolume method of the SelectorX Object is used to associate an actual thing with the Object. The SelectVolume method is passed a FileName, which is used to locate a Volume on the Windows NT Disk. This Object can manage an A-Series Disk Volume, a Library/Maintenance CD-ROM Image, an MCP Wrapped Container and other volume types. If the selected file does not represent a type of volume which the Object can manage, the method returns FALSE and a Reason.
Once the SelectorX has been initialized, the Properties which it implements may be used to examine the Volume. For example, the FileCount property.
Spout("There are " & Selector.FileCount & " Files on the Disk")
The SelectorX Object implements a Collection of DiskFileHeaderX Objects, which can be simply manipulated using a VBScript For Statement.
For Each File In Selector If (File.NumberOfSectors > 10000) then Spout(File.FileName & " " & File.NumberOfSectors & " Sectors") End If Next
The word 'File' is a variable, declared in a Dim Statement, which can contain a DiskFileHeaderX Object. The DiskFileHeaderX object was created and associated with the actual object by the SelectorX Object. The actual object is the Disk File Header of the current file.
So, some Objects are created explicitly in the Script using the CreateObject() method, and other Objects are provided as a Property of another Object.
A Scripting Host may also create objects and make them available to a VBScript. For example, the CopyWrite Remote ODT Handler provides a Spout() method to a Script which implements an ODT Command, so that a response can be sent back to the ODT.
Typically, one Object will be created in a particular context, and then provide Properties, which might be simple scalar values, strings or other Object references.
This document describes the Objects and their Methods and Properties, which are provided by the CopyWriteInterface ActiveX Server.
The SelectorX Object represents an A-Series Volume.
An A-Series Volume may be,
The examples below assume that the Selector has been created using the 'Set Selector=CreateObject("CopyWriteInterface.SelectorX")' Statement.
In VBScript, a statement is split across a record boundary by terminating the record with a <blank>_.
Methods | ||
---|---|---|
Method | Description | Example |
FUNCTION SelectVolume(Const FileName : String; Var Reason : String) : Boolean; |
Loads the A-Series Volume (CD Image, Wrapped Container or A-Series Disk) given by the FileName. If any error, returns FALSE and a reason. | VBScript: If Not Selector.SelectVolume( _ "C:\Disk000.asd", _ Reason) then Spout(Reason) End If JScript: var Volume,Reason,FileList,Header; Volume=new ActiveXObject("CopyWriteInterface.SelectorX"); if (Volume.SelectVolume("C:\\Disk000.asd", Reason)) { FileList=new Enumerator(Volume); for (;!FileList.atEnd();FileList.moveNext()) { Header=FileList.item(); spout(Header.FileName); } } else spout(Reason); |
FUNCTION SelectDiskFarm(Const Directory : String; Var Reason : String) : Boolean; |
Loads the A-Series Disk Farm given by the Directory. If any error, returns FALSE and a reason. | If Not
Selector.SelectDiskFarm( _ "C:\ASeriesBackup\DEV-A", _ Reason) then Spout(Reason) End If |
FUNCTION ConvertToText(FileNo : Integer Const FileName : String; TextOnly : Boolean; Var Reason : String) : Boolean; |
Converts the File given by FileNo into ASCII Text in a file with the given FileName. If TextOnly is TRUE, then any Sequence Number and MarkID fields are ignored. If any error occurs, the function returns FALSE and a Reason. | If Not
Selector.ConvertToText( _ FileNo, _ C:\Temp\" & File.FlatName&".txt", _ FALSE, _ Reason) then Spout(Reason) End If |
FUNCTION ConvertToImage(FileNo : Integer Const FileName : String; Var Reason : String) : Boolean; |
Converts the File given by FileNo into a Binary Image. If any error occurs, the function returns FALSE and a Reason. | If Not
Selector.ConvertToImage( _ FileNo, _ "C:\Temp\" & File.FlatName&".bin", _ Reason) then Spout(Reason) End If |
FUNCTION SelectCoreImage(FileNo : Integer; Var Reason : String) : SelectorX; |
If FileNo is an A-Series Volume, then it is copied and then a Selector Object is created. This method is used to provide a Selector Object for A-Series Volumes which are inside other A-Series Volumes. For example, a Wrapped Container in an A-Series Virtual Disk. | If Not
Selector.SelectDiskFarm _ "C:\ASeriesBackup\FCD",Reason) then Spout(Reason) End If For Each File In Selector If (File.FileKindMnemonic = "PROMBURNERDATA") then Set CDImage=Selector.SelectCoreImage(File.FileNo,Reason) For Each F In CDImage Spout(F.FileName) Next End If Next |
FUNCTION ExtractAsCDImage( Const VolumeName : String; Var Reason : String) : Boolean; |
This function builds a list of the FileNos which are marked as Selected, and extracts them into a new Library/Maintenance CD-ROM Image. | If Not
Selector.SelectDiskFarm( _ "C:\ASeriesBackup\CopyWrite27102003", Reason) then Spout(Reason) End If Selector.ClearSelected For Each File In Selector Selector.Selected(File.FileNo)=Not File.ItsATextFileKind Next If Not Selector.ExtractAsCDImage( _ "C:\Temp\Test.mcp", _ Reason) then Spout(Reason) End If |
FUNCTION ExtractAsWrappedFile( Const VolumeName : String; Var Reason : String) : Boolean; |
This function builds a list of the FileNos which are marked as Selected, and extracts them into a new Wrapped File. | If Not Selector.ExtractAsWrappedFile( _ "C:\Temp\Test.con", _ Reason) then Spout(Reason) End If |
FUNCTION ExtractAsDiskFarm( Const VolumePath : String; Var Reason : String) : Boolean; |
This function builds a list of the FileNos which are marked as Selected, and extracts them into a new Disk Farm . | If Not Selector.ExtractAsDiskFarm( _ "C:\ASeriesBackup\TestVol", _ Reason) then Spout(Reason) End If |
FUNCTION ExtractToDirectory( Const Directory : String; Var Reason : String) : Boolean; |
This function builds a list of the FileNos which are marked as Selected, and extracts them into the given Directory. The files are extracted into the sub directories given by each level of the Title. For example, extracting a file called *SYSTEM/INSTALLS/"Readme.txt" into the Directory C:\Temp, would create a file called C:\Temp\SYSTEM\INSTALLS\ReadMe.txt. Only files with FILESTRUCTURE=STREAM may be extracted using this function. | For Each File In Selector If (File.FileName = "(TEST)OBO/""AUTOEXEC.TXT""") then Spout(File.FileName) Selector.Selected(File.FileNo)=TRUE If Not Selector.ExtractToDirectory("C:\Temp",Reason) then Spout(Reason) End If End If Next |
PROCEDURE ClearSelected; | This procedure clears the list of Selected files. | Selector.ClearSelected For Each File In Selector Selector.Selected (File.FileNo)=File.ItsAPrinterBackupFileKind Next |
PROCEDURE SelectAllFiles; | This procedure marks all files as being Selected. | Selector.SelectAllFiles |
FUNCTION CombineIntoCDImage( Selectors : Array of SelectorX; Const CombinedFileName : String; Const VolumeIdentifier : String; Const SerialNo : String; MultiVolume : Boolean; ImageSizeInMegaBytes : Integer; Var Reason : String) : Boolean; |
This function combines files that are in each of the volumes in the array of selected volumes into a Library/Maintenance CD-ROM file image. If the FileSelection is active for a volume, then only the selected files from that volume are copied to the combined volume. | Dim Selector(1)
FALSE,0,Reason) then |
FUNCTION CombineIntoWrappedFile( Selectors : Array of SelectorX; Const CombinedFileName : String; Var Reason : String) : Boolean; |
This function combines files that are in each of the volumes in the array of selected volumes into an MCP Wrapped Container. If the FileSelection is active for a volume, then only the selected files from that volume are copied to the combined volume. | If Not
Selector(0).CombineIntoWrappedFile( _
Reason) then |
FUNCTION CombineIntoDiskFarm( Selectors : Array of SelectorX; Const CombinedPath : String; Var Reason : String) : Boolean; |
This function combines files that are in each of the volumes in the array of selected volumes into a CopyWrite Disk Farm. If the FileSelection is active for a volume, then only the selected files from that volume are copied to the combined volume in the Disk Farm. | If Not
Selector(0).CombineIntoDiskFarm( _ Selector, _ "C:\ASeriesBackup\Combo", _ Reason) then Spout(Reason) End If |
FUNCTION BuildMissingCapsule( FarmPath : String; FileNo : Integer; Var Reason : String) : Boolean; |
This function builds a Missing Capsule in a Disk Farm. The FarmPath gives the Path to the Disk Farm, where normally there should be a Capsule for the given FileNo. If the Capsule is not there, a new Capsule is created using the Title of the FileNo from the Tape Directory and it is marked as Missing. This function is provided for manual recovery of a corrupted Disk Farm. | Set Selector=CreateObject("CopyWriteInterface.SelectorX") If Not Selector.BuildMissingCapsule( _ "C:\ASeriesBackup\A1", _ 1,_ Reason) then Spout(Reason) Else Spout("Created Missing Capsule") End If |
These Properties are defined for the SelectorX Object.
Properties | ||
---|---|---|
Property | Description | Example |
TapeDirectory : TapeDirectoryX; | Returns a reference to a TapeDirectoryX Object. For an A-Series Virtual Disk, the Tape Directory is created from the Flat Directory. | Set
TDir=Selector.TapeDirectory Spout(TDir.FileName(1)) |
Header[Index:Integer]:DiskFileHeaderX; | Returns a reference to a DiskFileHeaderX Object for the specified FileNo. The FileNo is in the range 1..Selector.FileCount-1. FileNo 0, the TapeDirectory, is counted but is not available. | Spout(Selector.Header(1).FlatName) |
FileCount : Integer; | Returns the number of files in the Tape Directory. The TapeDirectory has a File 0, which is the TapeDirectory itself, and then files. A FileCount of 2 means there is the Tape Directory (File 0) and 1 File. | For T=1 To Selector.FileCount-1 Step 1 Spout(Selector.Header(T).FileName) Next |
Selected[Index:Integer]:Boolean; (Read/Write) | A Selected flag is associated with each file in the volume. The flag can be set or tested using this property. methods, such as Extract, use this flag to create a list of selected files upon which they act. All the Selected flags can be reset using the ClearSelected method. | Selector.ClearSelected For T=1 To Selector.FileCount-1 Step 1 Selector.Selected(T)=Selector.Header(T).Crunched Next Spout("There are " & Selector.nSelected & " Crunched Files") |
nSelected : Integer; | This property returns a count of the number of files which are currently marked as Selected. | Spout("There are " & Selector.nSelected &
_ " Selected Files") |
FileSelectionActive :Boolean; (Read/Write) | This flag is set whenever the Selected property is accessed. If this flag is set, then only those files which are marked as Selected are included in operations such as extracting files. If the flag is reset, all files are selected by default. | Selector.FileSelectionActive=TRUE |
ItsUnSelected :Boolean; | Is TRUE if no volume has been selected. | <none> |
ItsACDImage :Boolean; | Is TRUE if the volume is a Library/Maintenance CD-ROM Image file. | <none> |
ItsACDUnit :Boolean; | Is TRUE if the volume is a mounted Library/Maintenance CD-ROM volume. | <none> |
ItsInCore :Boolean; | Is TRUE if the volume was extracted into a core image from another volume. | <none> |
ItsADiskFarm :Boolean; | Is TRUE if the volume is a CopyWrite Disk Farm. | <none> |
ItsWrapped :Boolean; | Is TRUE if the volume is a Wrapped File or Container. | <none> |
ItsBLPack :Boolean; | Is TRUE if the volume is a BLPack archive. | <none> |
ItsAnASeriesDisk :Boolean; | Is TRUE if the volume is an A-Series virtual disk. | <none> |
ASeriesDisk :ASeriesDiskX; | A reference to an ASeriesDiskX object, if ItsAnASeriesDisk is TRUE. | If Not Selector.ItsAnASeriesDisk then Spout("Not an A-Series Disk") End If Set ASeriesDisk=Selector.ASeriesDisk Set Label=ASeriesDisk.DiskLabel Spout(Label.LabelID) |
4The MCPSupportX Object provides Methods and Properties which act on A-Series Data Types.4
Methods | ||
---|---|---|
Method | Description | Example |
FUNCTION Mnemonic(Const AttName : String; AttValue : Integer) : String; |
Given an A-Series File Attribute Name and an Integer Value, this function returns the Mnemonic for the value, or else an empty string. | Spout(MCP.Mnemonic("FILESTRUCTURE",1)) |
FUNCTION Value(Const AttName : String; Const MnemName : String) : Integer; |
Given an A-Series File Attribute Name and a Mnemonic Value, this function returns the Integer Value for the Mnemonic, or -1. | Spout(MCP.Value("FILESTRUCTURE","STREAM")) |
These Properties are defined.
Properties | ||
---|---|---|
Property | Description | Example |
<none> | <none> | <none> |
The ASeriesDiskX Object provides Methods and Properties which act on A-Series Data Types.
Methods | ||
---|---|---|
Method | Description | Example |
<none> | <none> | <none> |
These Properties are defined.
Properties | ||
---|---|---|
Property | Description | Example |
PackName:String; | The name of the Pack. | Set
Disk=CreateObject("CopyWriteInterface.SelectorX") If Not Disk.SelectVolume(Unit.Path&"\"& _ File.Name,Reason) then Spout(Reason) Else If Disk.ItsAnASeriesDisk then Set ASeriesDisk=Disk.ASeriesDisk Spout(ASeriesDisk.PackName) End If End If |
SerialNo:String; | The serial number of the Pack. | Set
ASeriesDisk=Disk.ASeriesDisk With ASeriesDisk Spout(.SerialNo) End With |
Owner:String; | The Owner of the Pack. | Set
ASeriesDisk=Disk.ASeriesDisk Spout(ASeriesDisk.Owner) |
DiskLabel:String; | A DiskLabelX Object. | If Not Selector.ItsAnASeriesDisk then Spout("Not an A-Series Disk") End If Set ASeriesDisk=Selector.ASeriesDisk Set Label=ASeriesDisk.DiskLabel |
HasMCPInfo:String; | Returns TRUE if this is a CM'ed Pack and therefore has an MCPInfo structure. | If ASeriesDisk.HasMCPInfo then Spout(ASeriesDisk.PackName & " has MCP Info") End If |
MCPInfo:MCPInfoX; | Returns a reference to an MCPInfoX Object. | If ASeriesDisk.HasMCPInfo then Set MCPInfo=ASeriesDisk.MCPInfo Spout(MCPInfo.MCPFileName) End If |
The DiskFileHeaderX Object provides Methods and Properties for accessing an A-Series Disk File Header.
The Reference to the DiskFileHeaderX Object can be obtained using the Header property of a SelectorX Object.
If a file has been marked as missing by Library/Maintenance, or it has been released and is marked as RIP, the Missing Attribute is TRUE and no Header Attributes other than FileNo and WhyNoHeader are defined.
Methods | ||
---|---|---|
method | Description | Example |
<none> | <none> | <none> |
These Properties are always defined.
Properties | ||
---|---|---|
Property | Description | Example |
Missing : Boolean; | Returns TRUE if the File is Missing. A File may be Missing because it was not copied by Library/Maintenance, or because the Disk Farm has been corrupted, perhaps because the Capsule for the File is missing or damaged.. | Set
TDir=Selector.TapeDirectory If Selector.Missing Then Spout("Missing:"&Selector.WhyNoHeader & _ ". File " &TDir.FileName(Selector.FileNo)) |
WhyNoHeader : String; | Returns the reason why the Header is Missing. | Spout(Selector.WhyNoHeader) |
These Properties are defined if the File is not Missing.
Properties | ||
---|---|---|
Property | Description | Example |
FileName : String; | Returns the Display Form FileName. | Spout(Selector.Header(1).FileName) |
FileKind:Integer; | FILEKIND Attribute. | Spout(Selector.Header(1).FileKind) |
FileKindMnemonic:String; | Returns
the Mnemonic for the FILEKIND attribute. This returns the same value as MCPSupportX.Mnemonic ("FILEKIND",FileKind). |
Spout(Selector.Header(7).FileKindMnemonic) |
CreationTimeStamp:TDateTime; | This timestamp combines the CREATIONDATE and CREATIONTIME file attributes. It is the date and time the physical file was opened for creation. | Spout(Selector.Header(7).CreationTimeStamp) |
TimeStamp:TDateTime; | This TIMESTAMP is used on a Cataloging system to note whether the data or attributes of a file have been changed since it was last backed up. | Spout(Selector.Header(7).TimeStamp) |
AccessTimeStamp:TDateTime; | This timestamp combines the ACCESSDATE and ACCESSTIME file attributes. It is the date and time the physical file was last altered, executed or read. (Previously known as USEDATE and LASTACCESSDATE) | Spout(Selector.Header(7).AccessTimeStamp) |
Cycle:Integer; | The CYCLE Attribute. | Spout(Selector.Header(7).Cycle) |
Version:Integer; | The VERSION Attribute. | Spout(Selector.Header(7).Version) |
ReleaseID:StandardFormNameX; | The RELEASID Attribute is returned as a reference to a StandardFormNameX Object. | For Each File In Selector Set SFN=File.ReleaseID SFN.ConvertEBCDICToASCII Spout(SFN.ToASeriesDisplay) Next |
NumberOfSectors:Integer; | The TOTALSECTORS Attribute. This is calculated by EOFSectors+REAL(EOFLastBits>0). | Spout(Selector.Header(7).NumberOfSectors) |
HeaderVersion:Integer; | The version number of the Disk File Header. Only version 6 and above are supported. | Spout(Selector.Header(7).HeaderVersion) |
FileStructure:Integer; | The FILESTRUCTURE Attribute. | Spout(MCP.Mnemonic("FILESTRUCTURE",
_ File.FileStructure)) |
Crunched:Boolean; | The CRUNCHED Attribute. | Selector.Selected(File.FileNo)=File.Crunched |
Catalogued:Boolean; | Set to TRUE if the Header is marked as being Catalogued. | If File.Catalogued then Spout(File.FileName & " is Cataloged") End If |
Title:StandardFormNameX; | The TITLE Attribute is returned as a reference to a StandardFormNameX Object. | For Each File In Selector Set SFN=File.Title SFN.ConvertEBCDICToASCII Spout(SFN.ToASeriesDisplay) Next |
Product:StandardFormNameX; | The PRODUCT Attribute is returned as a reference to a StandardFormNameX Object. | For Each File In Selector Set SFN=File.Product SFN.ConvertEBCDICToASCII Spout(SFN.ToASeriesDisplay) Next |
AlterTimeStamp:TDateTime; | This timestamp combines the ALTERDATE and ALTERTIME file attributes. It is the last date and time that the file was closed after the data in the file was altered. | Spout(Selector.Header(7).AlterTimeStamp) |
Owner:String; | The OWNER Attribute. | Spout("Owner is " &Selector.Header(1).Owner) |
Units:Integer; | The UNITS Attribute. | Spout(MCP.Mnemonic("UNITS",File.Units)) |
FileType:Integer; | The FILETYPE Attribute. | Spout(File.FileType) |
SecurityUse:Integer; | The SECURITYUSE Attribute. | Spout(MCP.Mnemonic("SECURITYUSE",
_ File.SecurityUse)) |
SecurityType:Integer; | The SECURITYTYPE Attribute. | Spout(MCP.Mnemonic("SECURITYTYPE",
_ File.SecurityType)) |
SectorSize:Integer; | The SECTORSIZE Attribute. | Spout(File.SectorSize) |
SaveFactor:Integer; | The SAVEFACTOR Attribute. | Spout(File.SaveFactor) |
RowTail:Integer; | The RowTail. | Spout(File.RowTail) |
RowSize:Integer; | The Row Size in Sectors. | Spout(File.RowSize) |
RecordType:Integer; | The RecordType. | Spout(File.RecordType) |
RecordFormat:Integer; | The RecordFormat. | Spout(File.RecordFormat) |
ReadTZ:Integer; | The READTZ Attribute. | Spout(File.ReadTZ) |
FlatName : String; | Returns a flat filename, which is a single level name, starting with the usercode and each level separated by an underscore. It is used to create a flat filename when saving a file to the Windows file system. | FileName=File.FlatName & ".txt" Spout(FileName) |
FileNo:Integer; | The File Number of this Header in the Tape Directory. It is in the range 1..FileCount-1, where the FileCount is given by the Object which provides the Header. | Spout("<" & File.FileNo & "> " & FileName) ) |
Missing:Boolean; | If
the FileHeader is marked as Missing by Library/Maintenance, or the file
has been released and is marked as RIP, this attribute returns TRUE. If Missing is TRUE, accessing any Header Attribute other than FileNo, will result in the script faulting. |
If
File.Missing then Spout("<"& File.FileNo &"> is Missing") End If |
ItsATextFileKind:Boolean; | This property returns TRUE if the File is a Text FileKind. A Text FileKind is defined to be a CANDE File defined by a FileRecFormat entry, except for DATA. | Selector.Selected(File.FileNo)=File.ItsATextFileKind |
ItsAPrinterBackupFileKind:Boolean; | This property returns TRUE if the File is a PrinterBackup FileKind. | Selector.Selected(File.FileNo)=File.ItsAPrinterbackupFileKind |
LastRecord:Integer; | The LASTRECORD Attribute. | Spout(File.LastRecord) |
BlockStructure:Integer; | The BLOCKSTRUCTURE Attribute. | Spout(MCP.Mnemonic("BLOCKSTRUCTURE",
_ File.BlockStructure)) |
AreaLength:Integer; | The AREALENGTH Attribute. | Spout(File.AreaLength) |
LastRow:Integer; | The row number of the last row in the file. This is calculated by ROUNDUP(NumberOfSectors, RowSize)-1. | Spout(File.LastRow) |
LastRowSize:Integer; | The size in sectors of the last row. | Spout(File.LastRowSize) |
LastAllocatedRow:Integer; | The row number of the last allocated row in the file. | Spout(File.LastAllocatedRow) |
NumberOfUnAllocatedRowsBeforeLastRow :Integer; |
The number of unallocated rows which are before the last row. | Spout(File.NumberOfUnAllocatedRowsBeforeLastRow) |
NumberOfAllocatedRows:Integer; | The number of rows which are allocated. | Spout(File.NumberOfAllocatedRows) |
FirstRowIndex:Integer; | The row number of the first row in the file. | Spout(File.LastRow) |
NumberOfOptionalAttributes:Integer; | The number of optional attributes in the Header. | Spout(File.NumberOfOptionalAttributes) |
FrameSize:Integer; | The FRAMESIZE Attribute. | Spout(File.FrameSize) |
LibMaintRecords:Integer; | The number of Library/Maintenance 900 Word Blocks that contain the data of the file. The distribution of the blocks into Rows, depends on the Row attributes. | Spout(File.LibMaintRecords) |
AccessTZ:Integer; | AccessTZ Attribute. | <none> |
AlterTZ:Integer; | AlterTZ Attribute. | <none> |
AttModifyTZ:Integer; | AttModifyTZ Attribute. | <none> |
BackupTZ:Integer; | BacupTZ Attribute. | <none> |
BlockLength:Integer; | BlockLength Attribute. | <none> |
BlockSize:Integer; | BlockSize Attribute. | <none> |
CCSVersion:Integer; | CCSVersion Attribute. | <none> |
CheckEOF:Integer; | CheckEOF Attribute. | <none> |
CopyDestTZ:Integer; | CopyDestTZ Attribute. | <none> |
CopyNumber:Integer; | CopyNumber Attribute. | <none> |
CopySourceTZ:Integer; | CopySourceTZ Attribute. | <none> |
CreationTZ:Integer; | CreationTZ Attribute. | <none> |
EOFLastBits:Integer; | EOFLastBits Attribute. | <none> |
EOFSector:Integer; | EOFSector Attribute. | <none> |
ExecuteTZ:Integer; | ExecuteTZ Attribute. | <none> |
ExtMode:Integer; | ExtMode Attribute. | <none> |
FileFamilyIndex:Integer; | FileFamilyIndex Attribute. | <none> |
FileLength:Integer; | FileLength Attribute. | <none> |
FileOrganization:Integer; | FileOrganization Attribute. | <none> |
FileStructureSource:Integer; | FileStructureSource Attribute. | <none> |
FlatHdrLength:Integer; | FlatHdrLength Attribute. | <none> |
Genealogy:Integer; | Genealogy Attribute. | <none> |
HdrLength:Integer; | HdrLength Attribute. | <none> |
LabelType:Integer; | LabelType Attribute. | <none> |
Location:Integer; | Location Attribute. | <none> |
MaxRecSize:Integer; | MaxRecSize Attribute. | <none> |
MaxRecSizeInBytes:Integer; | The MAXRECSIZE attribute expressed as a number of bytes. | <none> |
NFTFileKind:Integer; | NFTFileKind Attribute. | <none> |
NFTRec:Integer; | NFTRec Attribute. | <none> |
NumberOfRows:Integer; | Number of Rows. | <none> |
OrigHeaderVersion:Integer; | Original Header Version. | <none> |
PhysicalModeSize:Integer; | Physical Mode Size. | <none> |
PrinterKind:Integer; | PrinterKind Attribute. | <none> |
SizeMode:Integer; | The SIZEMODE file attribute. | <none> |
SizeOffset:Integer; | The SIZEOFFSET file attribute. | <none> |
Size2:Integer; | The SIZE2 file attribute. | <none> |
TrainID:Integer; | The TrainID. | <none> |
Alignment:Integer; | The ALIGNMENT attribute. | <none> |
APLFile:Boolean; | The APLFile attribute. | <none> |
Banner:Boolean; | The BANNER print file attribute. | <none> |
Cataloged:Boolean; | Set if the header is marked as cataloged. | <none> |
CCSVersionSet:Boolean; | Set if the CCSVersion attribute is valid. | <none> |
ClearAreas:Boolean; | The CLEARAREAS file attribute. | <none> |
Duplicated:Boolean; | The DUPLICATED file attribute. | <none> |
EOFScrubbed:Boolean; | EOFScrubbed. | <none> |
LockedFile:Boolean; | The LOCKEDFILE file attribute. | <none> |
Permanency:Boolean; | Permanency attribute. | <none> |
PrivilegedFile:Boolean; | The PrivilegedFile attribute. | <none> |
Protection:Boolean; | The PROTECTION file attribute. | <none> |
SensitiveData:Boolean; | The SENSITIVEDATA file attribute. | <none> |
Single:Boolean; | The Single attribute. | <none> |
SystemFile:Boolean; | If the header is marked as a system file, which cannot be removed. | <none> |
ToBeCrunched:Boolean; | The ToBeCrunched attribute. | <none> |
WroteLastRow:Boolean; | Set if the last row that can be allocated has been written. | <none> |
AlignFile:StandardFormNameX; | The ALIGNFILE printer file attribute. | <none> |
FormID:StandardFormNameX; | The FORMID printer file attribute. | <none> |
Identity:StandardFormNameX; | The IDENTITY file attribute. | <none> |
Note:StandardFormNameX; | The NOTE file attribute. | <none> |
PageComp:StandardFormNameX; | The PAGECOMP printer file attribute. | <none> |
SecurityGuard:StandardFormNameX; | The SECURITYGUARD file attribute. | <none> |
MixedCaseID:StandardFormNameX; | The MixedCaseID attribute. | <none> |
TransInput:StandardFormNameX; | The TransInput attribute. | <none> |
TransLib:StandardFormNameX; | The TransLib attribute. | <none> |
TransName:StandardFormNameX; | The TransName attribute. | <none> |
LicenseKey:LicenseKeyX; | The LICENSEKEY file attribute. | <none> |
HasLicenseKey:Boolean; | Set if there is a LicenseKey attribute present in the Header. | <none> |
ActiveRow[RowIndex:Integer]:Boolean; | Set if the given row is active. The RowIndex is in the Range 0..NumberOfRows-1. | <none> |
AllocatedRow[RowIndex:Integer]:Boolean; | Set if the given row has been allocated. | <none> |
DeletedRow[RowIndex:Integer]:Boolean; | Set if the given row has been deleted. | <none> |
DMReadLock[RowIndex:Integer]:Boolean; | Set if the DMSII ReadLock flag has been set for the row specified by the RowIndex. | <none> |
DMWriteLock[RowIndex:Integer]:Boolean; | Set if the DMSII WriteLock flag has been set for the row specified by the RowIndex. | <none> |
IndexWasSet[RowIndex:Integer]:Boolean; | Set if a FAMILYINDEX has been explicitly set for the row given by the RowIndex. | <none> |
RowFamilyIndex[RowIndex:Integer]:Integer; | The FAMILYINDEX where the row with the specified RowIndex should reside.. | <none> |
DMLockBits[RowIndex:Integer]:Integer; | The combined DMSII Read and Write lock bits. | <none> |
RowSizeInSectors[RowIndex:Integer]:Integer; | The size in sectors of the row specified by the RowIndex. | <none> |
SegAddress[RowIndex:Integer]:Double; | The segment address of the start of the row specified by the RowIndex. | <none> |
AttModifyTimeStamp:TDateTime; | This timestamp combines the ATTMODIFYDATE and ATTMODIFYTIME file attributes. It is the last date and time a file attribute of this physical file was explicitly modified. | Spout(Header.AttModifyTimeStamp) |
BackupTimeStamp:TDateTime; | This timestamp combines the BACKUPDATE and BACKUPTIME file attributes. It is the last date and time this file was copied using either a COPY or ARCHIVE WFL statement, or was marked as backed up by the MCP procedure MARK_FILE_BACKED_UP. | Spout(Header.BackupTimeStamp) |
CopyDestTimeStamp:TDateTime; | This timestamp combines the COPYDESTDATE and COPYDESTTIME file attributes. It is the date and time the file was copied to Disk. | Spout(Header.CopyDestTimeStamp) |
CopySourceTimeStamp:TDateTime; | This timestamp combines the COPYSOURCEDATE and the COPYSOURCETIME file attributes. It is the last date and time the physical file was copied from Disk by a COPY or ADD WFL statement which did not specify the &BACKUP option. | Spout(Header.CopySourceTimeStamp) |
ExecuteTimeStamp:TDateTime; | This timestamp combines the EXECUTEDATE and EXECUTETIME file attributes. It is the last date and time this physical file was run as a program or a library. | Spout(Header.ExecuteTimeStamp) |
ReadTimeStamp:TDateTime; | This timestamp combines the READDATE and READTIME file attributes. It is the last date and time that the file was closed after records were read from the file. | Spout(Header.ReadTimeStamp) |
The TapeDirectoryX Object provides Methods and Properties for accessing an A-Series Tape Directory.
Methods | ||
---|---|---|
Method | Description | Example |
FUNCTION LoadFromFarm(Const FileName : String; Var Reason : String) : Boolean; |
Usually the TapeDirectory Object is provided after a Volume has been mounted. However, a Disk Farm TapeDirectory is an NT File, and this method allows it to be directly loaded. If any error occurs the function returns FALSE and a Reason. | Dim DiskFarm Set DiskFarm=CreateObject( _ "CopyWriteInterface.TapeDirectoryX") If Not DiskFarm.LoadFromFarm( _ "C:\ASeriesBackup\ARC[ARC001]\File000.dir", _ Reason) then Spout(Reason) Else For T=1 To DiskFarm.FileCount-1 Step 1 Spout(DiskFarm.FileName(T)) Next End If |
These Properties are defined.
Properties | ||
---|---|---|
Property | Description | Example |
FileCount:Integer; | The number of files in the Tape Directory. File 0 is included in the count. The FileNo is in the range 1..FileCount-1. | For T=1 To DiskFarm.FileCount-1 Step 1 Spout(DiskFarm.FileName(T)) Next |
FileTitle[FileNo:Integer]:StandardFormNameX; | This property returns a reference to a StandardFormNameX object which contains the Title of the file entry selected by the FileNo index. | Dim
sfn For T=1 To DiskFarm.FileCount-1 Step 1 Set sfn=DiskFarm.FileTitle(T) sfn.ConvertEBCDICToASCII Spout(sfn.ToASeriesDisplay) Next |
FileName[FileNo:Integer]:String; | Returns the Display Form Title in ASCII of the file entry selected by the FileNo. | For T=1 To DiskFarm.FileCount-1 Step 1 Spout(DiskFarm.FileName(T)) Next |
Jam:Boolean; | Set to TRUE if the jam bit is set in the TapeDirectory Control Word. | If
TDir.Jam then Spout("Jam Format") End If |
HasFamilyList:Boolean; | Set to TRUE if the TapeDirectory has an associated Origin Family List. | If
TDir.HasFamilyList then Spout("Has a Family List") End If |
FamilyName[FileNo:Integer]:String; | Returns the origin FamilyName in ASCII of the file entry selected by the FileNo, if the Tape Directory has an Origin Family List. | For T=1 To DiskFarm.FileCount-1 Step 1 Spout(DiskFarm.FileName(T)) Next |
The StandardFormNameX Object provides Methods and Properties for manipulating an MCP StandardFormName.
For historical reasons, some information is returned using a Method, where one might expect it to be returned using a Property.
Methods | ||
---|---|---|
Method | Description | Example |
FUNCTION ToASeriesDisplay : String; |
Returns a Display Form Title in the current character set. Therefore, this function is usually preceded by a call to ConvertEBCDICToASCII. | Set sfn=DiskFarm.FileTitle(T) sfn.ConvertEBCDICToASCII Spout(sfn.ToASeriesDisplay) |
FUNCTION ToHexDisplay : String; |
Returns a Hex string of the standard form filename. | Spout(sfn.ToHexDisplay) |
PROCEDURE ConvertEBCDICToASCII; |
This procedure converts the usercode, fileids and familyname from EBCDIC to ASCII. It becomes an ASCII standard form name. | sfn.ConvertEBCDICToASCII |
PROCEDURE ConvertASCIIToEBCDIC; |
This procedure converts the usercode, fileids and familyname from ASCII to EBCDIC. It becomes a standard MCP EBCDIC standard form name. | sfn.ConvertASCIIToEBCDIC |
PROCEDURE ConvertToUpperCase; |
This procedure converts all ids to upper case. | sfn.ConvertToUpperCase |
FUNCTION FileID(Index : Integer) : String; |
This function returns the fileid specified by the index. The index must be in the range 1..FileIDs. | |
FUNCTION UserCode : String; | If the filename has a (USERCODE) then it is returned otherwise it returns empty. | |
FUNCTION FileName : String; | Returns a display form filename, without any usercode, familyname or hostname.. | |
FUNCTION UnquotedFileName : String; | Returns a display form filename as FileName, however, the fileids are not enclosed within quotes if they have non filesystem characters. | |
FUNCTION FamilyName : String; | Returns the familyname, if an ON familyname part is present, otherwise empty. | |
FUNCTION HostName : String; | Returns the hostname, if an AT hostname part is present, otherwise empty. | |
FUNCTION SetUserCode(Const UserCode : String; Var Reason : String) : Boolean; |
This function sets the usercode to the specified value, which may be empty. If any error occurs, the function returns FALSE and a Reason. | If Not
sfn.SetUserCode("USER",Reason) then Spout(Reason) End If |
FUNCTION SetFamilyName(Const FamilyName : String; Var Reason : String) : Boolean; |
This function sets the familyname to the specified value, which may be empty. If any error occurs, the function returns FALSE and a Reason. | If Not
sfn.SetFamilyName("FAMILY",Reason) then Spout(Reason) End If |
FUNCTION SetHostName(Const HostName : String; Var Reason : String) : Boolean; |
This function sets the hostname to the specified value, which may be empty. If any error occurs, the function returns FALSE and a Reason. | If Not
sfn.SetHostName("HOST",Reason) then Spout(Reason) End If |
FUNCTION SetFileID(Index : Integer; Const FileID : String: Add : Boolean: Var Reason : String) : Boolean; |
This function sets the FileID given by the Index to the specified value. The Index is in the range 1..FileIDs. If Add is TRUE, the FileID is inserted at the specified Index and the number of FileIDs is increased by 1, otherwise it replaces the FileID at that Index. If any error occurs the function returns FALSE and a Reason. | If Not
sfn.SetFileId(1,"PREFIX",TRUE,Reason) then Spout(Reason) End If |
FUNCTION TakeFileIDs(nFileIDs : Integer; Var Reason : String) : Boolean; |
This function retains the first nFileIDs and discards the rest from the standard form name. If any error occurs, the function returns FALSE and a Reason. | |
FUNCTION DropFileIDs(nFileIDs : Integer; Var Reason : String) : Boolean; |
This function drops the first nFileIDs and keeps the rest of the standard form name. If any error occurs, the function returns FALSE and a Reason. | |
FUNCTION AppendFileIDs(sfn : StandardFormNameX; Var Reason : String) : Boolean; |
Appends the FileIDs in the standard form name passed as a parameter, to the current standard form name. If any error occurs the function returns FALSE and a Reason. The result of this example is A/B/C/D/E. | Set
sfn1=CreateObject("CopyWriteInterface.StandardFormNameX") If Not sfn1.ParseTitle("A/B",FALSE,Reason) then Spout(Reason) End If Set sfn2=CreateObject("CopyWriteInterface.StandardFormNameX") If Not sfn2.ParseTitle("C/D/E",FALSE,Reason) then Spout(Reason) End If If Not sfn1.AppendFileIDs(sfn2,Reason) then Spout(Reason) End If Spout(sfn1.ToASeriesDisplay) |
FUNCTION Compare(sfn : StandardFormNameX) : Integer; |
Compares the current standard form name to the standard form name passed as a parameter. It returns -1, 0 or 1 depending on whether the current name is less than, equal to, or greater than the parameter name. The result of this example is -1, since A/B < A/B/C. | Set sfn1=CreateObject("CopyWriteInterface.StandardFormNameX") If Not sfn1.ParseTitle("A/B",FALSE,Reason) then Spout(Reason) End If Set sfn2=CreateObject("CopyWriteInterface.StandardFormNameX") If Not sfn2.ParseTitle("A/B/C",FALSE,Reason) then Spout(Reason) End If Spout(sfn1.Compare(sfn2)) |
FUNCTION ContainsPath(sfn : TStandardFormNameX) : Boolean; |
If the current standard form name contains the path specified in the sfn parameter, the function returns TRUE. In this example, A/B contains A/B/C. | Set
sfn1=CreateObject( "CopyWriteInterface.StandardFormNameX") If Not sfn1.ParseTitle("A/B",FALSE,Reason) then Spout(Reason) End If Set sfn2=CreateObject( "CopyWriteInterface.StandardFormNameX") If Not sfn2.ParseTitle("A/B/C",FALSE,Reason) then Spout(Reason) End If If sfn1.ContainsPath(sfn2) then Spout(sfn1.ToASeriesDisplay & " contains " & sfn2.ToASeriesDisplay) Else Spout(sfn1.ToASeriesDisplay & " does not contain " & sfn2.ToASeriesDisplay) End If |
FUNCTION MakeUsercodeAFileID(Var Reason : String) : Boolean; |
This function changes the usercode into the first FileID of the title. If any error occurs, it returns FALSE and a Reason. The result of this example, is USER/A/B | Set sfn=CreateObject("CopyWriteInterface.StandardFormNameX") If Not sfn.ParseTitle("(USER)A/B",FALSE,Reason) then Spout(Reason) End If If Not sfn.MakeUserCodeAFileID(Reason) then Spout(Reason) End If Spout(sfn.ToASeriesDisplay) |
PROCEDURE ClearAsOverField; |
This procedure clears the AsOver field of the standard form name. This field is not normally exposed outside the MCP. | |
PROCEDURE ClearSingleQuoteNameField; |
This procedure clears the SingleQuoteNameField, Bit [3:1] of the Qualification Byte. | |
FUNCTION GetFileNumber(Var FileNumber : Integer; Var Reason : String) : Boolean; |
This function extracts the File Number from a standard form name which specifies a file number as #<integer> or '#<integer>'. If any error occurs, it returns FALSE and a Reason. | |
FUNCTION ConvertToUserCodeForm(Var Reason : String) : Boolean; |
This function converts the standard form name to the UserCode Form of a title, in which a usercoded file begins with the keyword *USERCODE. If any error occurs, the function returns FALSE and a Reason. The result of this example is *USERCODE/USER/A/B. | Set
sfn=CreateObject("CopyWriteInterface.StandardFormNameX") If Not sfn.ParseTitle("(USER)A/B",FALSE,Reason) then Spout(Reason) End If If Not sfn.ConvertToUsercodeForm(Reason) then Spout(Reason) End If Spout(sfn.ToASeriesDisplay) |
FUNCTION ConvertFromUserCodeForm(Var Reason : String) : Boolean; |
This function converts the standard form name from the UserCode Form of a title. If any error occurs, it returns FALSE and a Reason. The result of this example is (USER)A/B. | Set sfn=CreateObject("CopyWriteInterface.StandardFormNameX") If Not sfn.ParseTitle("*USERCODE/USER/A/B",FALSE,Reason) then Spout(Reason) End If If Not sfn.ConvertFromUsercodeForm(Reason) then Spout(Reason) End If Spout(sfn.ToASeriesDisplay) |
PROCEDURE Reset; | Resets the standard form name to undefined. | |
FUNCTION Verify(Var Reason : String) : Boolean; |
This function always returns FALSE. | |
PROCEDURE Clone(SFN : StandardFormNameX); |
This procedure makes the current standard form name a clone of the standard form name passed as a parameter. | Set sfn1=CreateObject("CopyWriteInterface.StandardFormNameX") If Not sfn1.ParseTitle("A/B",FALSE,Reason) then Spout(Reason) End If Set sfn2=CreateObject("CopyWriteInterface.StandardFormNameX") sfn2.Clone(sfn1) Spout(sfn2.ToASeriesDisplay) |
These Properties are defined.
Properties | ||
---|---|---|
Property | Description | Example |
HasUserCode:Boolean; | Set to TRUE if there is a (USERCODE). | <none> |
HasAsterisk:Boolean; | Set if the filename starts with a *, indicating no usercode. | <none> |
HasUserCodeOrAsterisk:Boolean | Set if the filename starts with either a (USERCODE) or a *. | <none> |
HasNoUsercodeOrAsterisk:Boolean; | Set if the filename has neither a (USERCODE) or an asterisk. | <none> |
HasFamilyName:Boolean; | Set if the filename has an ON <familyname> part. | <none> |
HasHostName:Boolean; | Set if the filename has an AT <hostname> part. | <none> |
HasSingleQuoteName:Boolean; | Set if the filename has a single quote name, which indicates a vendor specific filename. | <none> |
TotalIDs:Integer; | The total number of identifiers, including any usercode, familyname and hostname. | <none> |
FileIDs:Integer; | The number of fileids in the filename. This does not include any usercode, familyname or hostname. | <none> |
ItsADirectory:Boolean; | Set to TRUE if the filename is in the form FILENAME/=. | <none> |
ItsAFileNumber:Boolean; | Set to TRUE if the filename is a single fileid in the form #<integer> or '#<integer>'. | <none> |
ItsAFileList:Boolean; | Set to TRUE if the filename has a single quote name and the first character is an '@'. THis syntax is used to specify an external list of names. It comes from the CTOS syntax for the same thing. | <none> |
SearchSystemFiles:Boolean; | Set to TRUE if the standard form name is the special form which selects a search of only the system files. | <none> |
SearchUsercodeFiles:Boolean; | Set to TRUE if the standard form name is the special form which selects a search of only the usercoded files. | <none> |
SpecialForm:Boolean; | Set to TRUE if the standard form name is one of the special forms which are used to search only the usercoded or system files. | <none> |
FirstFileID:String; | Returns the first fileid of the filename or else empty. | <none> |
LastFileID:String; | Returns the last fileid of the filename. | <none> |
TotalLength:Integer; | The number of bytes in the standard form name. | <none> |
TotalLengthInWords:Integer; | The number of 48-Bit Words required to contain the standard form name. | <none> |
The RegisteryX Object provides Methods and Properties for accessing the Windows Registry.
Methods | ||
---|---|---|
Method | Description | Example |
FUNCTION OpenKey(Const Key : String; CanCreate : Boolean) : Boolean; |
Opens a Registry Key which exists within the current Root Key Directory. If CanCreate is TRUE, and the Key does not exist, it is created. | Const NT_ProductOptions_Key = "\SYSTEM\CurrentControlSet\Control\ProductOptions" If Not Registry.OpenKey(NT_ProductOptions_Key, FALSE) then Spout("Invalid Key " & NT_ProductOptions_Key) End If |
PROCEDURE CloseKey; | Closes the current key. | <none> |
FUNCTION ReadString(Const Name : String) : String; |
Returns the String value associated with the data item given by the name. | Const NT_CurrentVersion_Key = "\SOFTWARE\Microsoft\Windows NT\CurrentVersion" If Not Registry.OpenKey(NT_CurrentVersion_Key, FALSE) then Spout("Invalid Key " & NT_CurrentVersion_Key) End If Spout("System: " & Registry.ReadString("ProductName")& ", " & Registry.ReadString("CurrentType")) |
FUNCTION ReadBool(Const Name : String) : Boolean; |
Returns the Boolean value associated with the data item given by the name. | <none> |
FUNCTION ReadInteger(Const Name : String) : Integer; |
Returns the Integer value associated with the data item given by the name. | Const NT_CPM_Key = "\HARDWARE\Description\System\CentralProcessor\0" If Not Registry.OpenKey(NT_CPM_Key,FALSE) then Spout("Invalid Key " & NT_CPM_Key) End If Spout("CPM 0: "& Cint(Registry.ReadInteger("~MHz")) & " MHz") |
These Properties are defined.
Properties | ||
---|---|---|
Property | Description | Example |
RootKey:Integer; (Read/Write) | Sets the Root Key. | Const HKEY_LOCAL_MACHINE = 2 Set Registry=CreateObject("CopyWriteInterface.RegistryX") Registry.RootKey=HKEY_LOCAL_MACHINE |
The ConfigurationX Object provides Methods and Properties for accessing the CopyWrite Configuration on Windows NT.
Methods | ||
---|---|---|
Method | Description | Example |
<none> | <none> | <none> |
These Properties are defined.
Properties | ||
---|---|---|
Property | Description | Example |
ScriptEngine : String; | Returns the name of the Script Engine to be used by the ODT Service. The default is VBScript. | Set
Config=CreateObject("CopyWriteInterface.ConfigurationX") Spout(Config.ScriptEngine) |
ScriptName:String | The name of the directory which contains the scripts to be used by the ODT Service. | Spout(Config.ScriptName) |
SepComp:Boolean; | Reserved for future use. | <none> |
ScriptFileKind:String; | The .extension used for scripts which will be executed by the ODT service. The default is .odt. | Spout(Config.ScriptFileKind) |
DLRoot:String; | The full path of the Disk Farm directory. The default value is C:\ASeriesBackup. It can be modified using the Metalogic | CopyWrite | Disk Farm | Configuration utility. | Spout(Config.DLRoot) |
DLImages:String; | The full path of the CD-ROM Images. The default value is C:\ASeriesImages. It can be modified using the Metalogic | CopyWrite | Image Files | Configuration utility. | Spout(Config.DLImages) |
Compression:Boolean; | If this is TRUE, when a directory is created for a new volume in the Disk farm, it is marked as compressed, and all files stored in the directory are compressed by the NT file system. It can be modified using the Disk Farm configuration utility. | If Config.Compression then Spout("Compression is Set") End If |
SharedByAll:Boolean; | If
this is TRUE, the volumes in the Disk Farm are not separated by HOSTNAME. If this is FALSE, the HOSTNAME of the originating host is used as the directory level before the volume directory. Another host can access the files, but must set the FAMILYOWNER attribute. |
If Config.SharedByAll then Spout("SharedByAll is Set") End If |
The LicenseKeyX Object provides Methods and Properties for accessing the LicenseKey attribute of a Disk File Header or in a Tape Directory entry.
Methods | ||
---|---|---|
Method | Description | Example |
<none> | <none> | <none> |
These Properties are defined.
Properties | ||
---|---|---|
Property | Description | Example |
KeyType :Integer; | Specifies
the type of LicenseKey. 0 - Null 1 - KeysFile 2 - LicenseKey |
<none> |
ItsNull:Boolean; | Returns TRUE if the KeyType is Null. | <none> |
ItsAKeysFile:Boolean; | Returns TRUE if the KeyType is KeysFile. This type of entry occurs in a Tape Directory to indicate a Keys File. | <none> |
ItsALicenseKey:Boolean; | Returns TRUE if the KeyType is LicenseKey. This type of entry occurs in a Disk File Header and in a Tape Directory. | <none> |
KeyName:String; | The name of the Key. | <none> |
KeyValue:String; | The value of the Key. | <none> |
HexDisplay:String; | The key entry as Hex characters. | <none> |
The DiskLabelX Object provides Methods and Properties for accessing the Disk Label of an A-Series Virtual Disk. The DiskLabelX Object may be provided through the DiskLabel property of an A-Series Disk, or the Load method can be used with an NT filename.
Methods | ||
---|---|---|
Method | Description | Example |
Load(Const FileName : String; Var Reason : String) : Boolean; |
Usually the DiskLabelX Object is provided by the DiskLabel property of an ASeriesDiskX Object. However, a DiskLabelX can be directly loaded from an NT Filename using this method. If any error occurs the function returns FALSE and a Reason. | <not tested> |
These Properties are defined.
Properties | ||
---|---|---|
Property | Description | Example |
FileName:String; | Returns the Windows NT title of the file which contains the Disk Label. | Set Selector=CreateObject(
_ "CopyWriteInterface.SelectorX") If Not Selector.SelectVolume( _ "C:\Disk005.asd",Reason) then Spout(Reason) End If Spout("There are " & Selector.FileCount & _ " Files on the Disk") If Not Selector.ItsAnASeriesDisk then Spout("Not an A-Series Disk") End If Set ASeriesDisk=Selector.ASeriesDisk Set Label=ASeriesDisk.DiskLabel Spout(Label.FileName) |
LabelID:String; | A string which describes the Disk Label. | Spout(Label.LabelID) |
Vol1:String; | The VOL1 Label identifying the Disk. | Spout(Label.Vol1) |
Vol2:String; | The VOL2 Label. | Spout(Label.Vol2) |
SerialNo:String; | The numeric SerialNo as a string of digits. | Spout(Label.SerialNo) |
PackName:String; | The NAME of the Pack given when it was RC'ed. | Spout(Label.PackName) |
InterchangeCode:String; | The Interchange code of the pack. | Spout(Label.InterChangeCode) |
NativeModePack:Boolean; | Set to TRUE if the InterchangeCode indicates a NativeMode Pack. | If
Label.NativeModePack then Spout("NativeMode") End If |
Owner:String; | The OWNER of the Pack given when it was RC'ed. | Spout(Label.Owner) |
CreationDate:String; | The Julian CreationDate as a string of digits. For example, 03358 | Spout(Label.CreationDate) |
DirectoryAddress:String; | The segment address of the Flat Directory. | Spout(Label.DirectoryAddress) |
BasePack:Boolean; | Set to TRUE if the Pack has a Directory and therefore can be a Base Pack. | If Label.BasePack then Spout("BasePack") End If |
MasterAvailableTableAddress:Integer; | The sector address of the Master Available Table. | Spout(Label.MasterAvailableTableAddress) |
DirectoryVersion : Integer; | The version of the Directory. | <none> |
BasePackSerialNo:String; | The SerialNo of the base Pack as a number. | Spout(Label.BasePackSerialNo) |
BasePackCreationTime:Double; | The Time the Base Pack was created. | Spout(Label.BasePackCreationTime) |
BasePackCreationDate:Integer; | The Date the Base Pack was created. | Spout(Label.BasePackCreationDate) |
BasePackCreationTimeStamp:TDateTime; | The combined Creation Date and Time of the Base Pack as a Date type. | Spout(Label.BasePackCreationTimeStamp) |
BasePackCreationSite:Integer; | The SiteID where the Base Pack was created. | Spout(Label.BasePackCreationSite) |
TR_Machine:Boolean; | Set if the TR_MCHT flag is set in the SiteId field of the Disk label. | If Label.TR_Machine then Spout("TR Machine") End If |
FamilyIndex:Integer; | The FamilyIndex of this Pack. | Spout(Label.FamilyIndex) |
nMembers:Integer; | The number of Pack Member Volumes in the Family. | Spout(Label.nMembers) |
ValidMember[Index:Integer]:Boolean; | Returns TRUE if the information for the specified FamilyIndex is valid. | For T=1 To Label.nMembers Step 1 If Label.ValidMember(T) then Spout("Member # " & T) End If Next |
MemberIsVXX1[Index:Integer]:Boolean; | Set to TRUE if the VXX1 flag is set for the given FamilyIndex. | If Label.MemberIsVXX1(T) then Spout("Is VXX1") End If |
MemberHasDirectory[Index:Integer]:Boolean; | Set to TRUE if the specified FamilyIndex has a Flat Directory. | If Label.MemberHasDirectory(T) then Spout("Has Directory") End If |
MemberIsVSS2[Index:Integer]:Boolean; | Set to TRUE if the VSS2 flag is set for the given FamilyIndex. | If Label.MemberIsVSS2(T) then Spout("Is VSS2") End If |
MemberTableType[Index:Integer]:Integer; | Returns
the TableType entry for the given FamilyIndex. DiskTableV = 1; CapacityTableV = 2; |
Spout(Label.MemberTableType(T)) |
MemberTableIndex[Index:Integer]:Boolean; | Returns the TableIndex for the given FamilyIndex. If the TableType is a CapacityTableV, then this is the index of the entry in the Capacity Table, which give the values for the MemberCapacityInSectors property. | Spout(Label.MemberTableIndex(T)) |
MemberSerialNo[Index:Integer]:Boolean; | Returns the numeric SerialNo for the given FamilyIndex. | Spout(Label.MemberSerialNo(T)) |
MemberCapacityInSectors[Index:Integer]:Double; | If the TableType indicates a CapacityTable, this returns the Disk Capacity in Sectors of the Pack with the given FamilyIndex, otherwise 0. | Spout(Label.MemberCapacityInSectors(T)) |
MemberCapacityInBytes[Index:Integer]:Double; | If the TableType indicates a CapacityTable, this returns the Disk Capacity in Bytes of the Pack with the given FamilyIndex, otherwise 0. | Spout(Label.MemberCapacityInBytes(T)) |
HasFlatHeader:Boolean; | Returns TRUE if the Pack has a Flat Directory. | If Label.HasFlatDirectory then Spout("Has FlatDirectory") End If |
FlatHeader:DiskFileHeaderX; | Returns a reference to a DiskFileHeaderX Object describing the Flat Directory Disk File Header. | If Label.HasFlatDirectory then Set Hdr=Label.FlatHeader Spout(Hdr.FileName) End If |
UnSafe:Boolean; | Returns TRUE if the Disk Label is currently opened for update by some process. Since this is most likely the A-Series Emulator, extracting files may be unsafe. | If Not Label.UnSafe then Spout("Safe to Extract Files") End If |
The MCPInfoX Object provides Methods and Properties for accessing the MCPInfo in a CM'ed A-Series Disk. The MCPInfoX Object is provided through the MCPInfo property of an ASeriesDiskX Object.
Methods | ||
---|---|---|
Method | Description | Example |
<none> | <none> | <none> |
These Properties are defined.
Properties | ||
---|---|---|
Property | Description | Example |
IsValid:Boolean; | Returns TRUE if the MCPInfo is valid, otherwise FALSE, and the values of other properties are undefined. | Set
ASeriesDisk=Selector.ASeriesDisk If ASeriesDisk.HasMCPInfo then Set MCPInfo=ASeriesDisk.MCPInfo If MCPInfo.IsValid then Spout("MCPInfo is Valid") Spout(MCPInfo.MCPFileName) End If End If |
SizeInBytes:Integer; | The size in bytes of the MCPInfo data structure. | Spout(MCPInfo.SizeInBytes) |
TodaysDate:Integer; | TodaysDate. For example, 103363 | Spout(MCPInfo.TodaysDate) |
Cycle:Integer; | The cycle of the MCPInfo Structure. Version for 4.8 is Cycle 5. | Spout(MCPInfo.Cycle) |
LMBlockSize:Integer; | Library/Maintenance BlockSize. | Spout(MCPInfo.LMBlockSize) |
SystemSerialNo:Integer; | System Serial Number. | Spout(MCPInfo.SystemSerialNo) |
LogFileSeqNo:Integer; | The next LogFile Sequence Number to be used when the log is transferred, either by a TL or when it is full. | Spout(MCPInfo.LogFileSeqNo) |
DumpDiskSize:Integer; | The size of the DumpDisk file in Sectors. | Spout(MCPInfo.DumpDiskSize) |
LastMixNo:Integer; | The last mixnumber allocated. | Spout(MCPInfo.LastMixNo) |
OpenOption:Boolean; | Open Option | If MCPInfo.OpenOption then Spout("*Open") End If |
TerminateOption:Boolean; | Terminate Option | <none> |
NoCheck:Boolean; | NoCheck Option | <none> |
LPBDOnlyOption:Boolean; | LPBDOnly Option | <none> |
AutoRMOption:Boolean; | AutoRM Option | <none> |
DiagnosticsOption:Boolean; | Diagnsotics Option | <none> |
Option7:Boolean; | MCP Option(7) | <none> |
AutoRecoveryOption:Boolean; | AutoRecovery Option | <none> |
DupSupervisorOption:Boolean; | DupSupervisor Option | <none> |
DupIntrinsicsOption:Boolean; | DupIntrinsics Option | <none> |
TransWarningsOption:Boolean; | TransWarnings Option | <none> |
AutoDCOption:Boolean; | AutoDC Option | <none> |
NoDumpOption:Boolean; | NoDump Option | <none> |
AutoRunningOption:Boolean; | AutoRunning Option | <none> |
CrunchOption:Boolean; | Crunch Option | <none> |
BackupByJobNrOption:Boolean; | BackupByJobNr Option. | <none> |
PDToDiskOption:Boolean; | PDToDisk Option. | <none> |
NoFetchOption:Boolean; | NoFetch Option. | <none> |
ResourceCheckOption:Boolean; | ResourceCheck Option | <none> |
DRTRRestrictOption:Boolean; | DRTRRestrict Option | <none> |
DirDebugOption:Boolean; | DirDebug Option | <none> |
CatalogingOption:Boolean; | Cataloging Option | If MCPInfo.CatalogingOption then Spout("*Cataloging") End If |
OKTimeAndDateOption:Boolean; | OKTimeAndDate Option | <none> |
MoreBackupFilesOption:Boolean; | MoreBackupFiles Option | <none> |
SerialNumberOption:Boolean; | SerialNumber Option | <none> |
ArchivingOption:Boolean; | Archiving Option | <none> |
CDRUnitNumberOption:Boolean; | CRDUnitNumber Option | <none> |
Option30:Boolean; | MCP Option(30) | <none> |
MoreTasksOption:Boolean; | MoreTasks Option | <none> |
KeyedIOIIOption:Boolean; | KeyedIOII Option | <none> |
MirroringOption:Boolean; | Mirroring Option | <none> |
DiagnosticDumpOption:Boolean; | DiagnosticDump Option | <none> |
AuditOption:Boolean; | Audit Option | <none> |
EOTStatisticsOption:Boolean; | EOTStatistics Option | <none> |
StrictSchedOption:Boolean; | StrictSched Option | <none> |
NetRecoveryOption:Boolean; | NetRecovery Option | <none> |
GraphDebugOption:Boolean; | GraphDebug Option | <none> |
ISCDebugOption:Boolean; | ISCDebug Option | <none> |
IODiagnosticsOption:Boolean; | IODiagnostics Option | <none> |
PortDebugOption:Boolean; | PortDebug Option | <none> |
UseCatDefaultOption:Boolean; | UseCatDefault Option | <none> |
CatTestOption:Boolean; | CatTest Option | <none> |
MCPTestOption:Boolean; | MCPTest Option | If
MCPInfo.MCPTestOption then Spout("*MCPTest") End If |
SystemDirRowSize:Integer; | SystemDirectory RowSize | Spout(MCPInfo.SystemDirRowSize) |
CompilerTarget:Integer; | CompilerTarget | Spout(MCPInfo.CompilerTarget) |
ASDFactor:Integer; | ASD Factor | Spout(MCPInfo.ASDFactor) |
PrimaryTarget:Integer; | Primary Target | Spout(MCPInfo.PrimaryTarget) |
MCPLevel:Integer; | MCP Level (4) | Spout(MCPInfo.MCPLevel) |
MCPMark:Integer; | MCP Mark (8) | Spout(MCPInfo.MCPMark) |
MCPCycle:Integer; | MCP Cycle (189) | Spout(MCPInfo.MCPCycle) |
CatalogLevel:Integer; | Catalog Level. | Spout(MCPInfo.CatalogLevel) |
ASDOlaySize:Integer; | ASDOlaySize. | Spout(MCPInfo.ASDOlaySize) |
MaxMixNumber:Integer; | Max MixNumber. | Spout(MCPInfo.MaxMixNumber) |
MaxStackNumber:Integer; | Max Stack Number. | Spout(MCPInfo.MaxStackNumber) |
stdMCPFileName:StandardFormX; | A reference to a standard form object which contains the MCP title. | Set Std=MCPInfo.stdMCPFileName Std.ConvertEBCDICToASCII Spout(Std.ToASeriesDisplay) |
MCPFileName:String; | The MCP title as an ASCII MCP display form name. | Spout(MCPInfo.MCPFileName) |
DCPPrefix:String; | The DataComInfo prefix as an ASCII display form name. | Spout(MCPInfo.DCPPrefix) |
Convention:String; | The Convention set by the ODT SYSOPS CONVENTION=<convention name>. See MultiLingual manual. | Spout(MCPInfo.Convention) |
MaxCompleted:Integer; | Maximum number of Completed entries retained by Controller. | Spout(MCPInfo.MaxCompleted) |
MaxMessages:Integer; | Maximum number of Messages retianed by Controller. | Spout(MCPInfo.MaxMessages) |
stdIntrinsics:StandardFormNameX; | A reference to a standard form object which contains the Intrinsics Title. | Set Std=MCPInfo.stdIntrinsics Std.ConvertEBCDICToASCII Spout(Std.ToASeriesDisplay) |
Intrinsics:String; | The Intrinsics Title as an ASCII display form name. | Spout(MCPInfo.Intrinsics) |
stdSupervisor:StandardFormNameX; | A reference to a standard form object which contains the Supervisor title. | Set Std=MCPInfo.stdSupervisor Std.ConvertEBCDICToASCII Spout(Std.ToASeriesDisplay) |
Supervisor:String; | The Supervisor title as an ASCII display form name. This field has been superseded by the AI table. | Spout(MCPInfo.Supervisor) |
MemSize:Integer; | Memory Size. | Spout(MCPInfo.MemSize) |
FastCacheSize:Integer; | Fast Cache Size. | Spout(MCPInfo.FastCacheSize) |
HeaderCacheSize:Integer; | Header Cache Size. | Spout(MCPInfo.HeaderCacheSize) |
D1StackCacheSize:Integer; | D1 Stack Cache Size. | Spout(MCPInfo.D1StackCacheSize) |
D1StackCacheTimeLimit:Integer; | D1 Stack Cache Time Limit. | Spout("TimeLimit="&
_ MCPInfo.D1StackCacheTimeLimit) |
UserDataCacheSize:Integer; | UserData Cache Size. | Spout(MCPInfo.UserDataCacheSize) |
Language:String; | The system language. | Spout(MCPInfo.Language) |
HostUserCode:String; | The HostUserCode set by the HU command. | Spout(MCPInfo.HostUsercode) |
TZName:String; | The TimeZone name. | Spout(MCPInfo.TZName) |
stdConfigurationFile:StandardFormNameX; | A reference to a standard form object which contains the Configuration File title. | Set Std=MCPInfo.stdConfigurationFile Std.ConvertEBCDICToASCII Spout(Std.ToASeriesDisplay) |
ConfigurationFile:String; | The Configuration File title as an ASCII display form name. Set by the ODT CF Command. | Spout(MCPInfo.ConfigurationFile) |
stdDumpHistoryFile:StandardFormNameX; | A reference to a standard form object which contains the DumpHistory File title. | Set
Std=MCPInfo.stdDumpHistoryFile Std.ConvertEBCDICToASCII Spout(Std.ToASeriesDisplay) |
DumpHistoryFile:String; | The DumpHistory File title as an ASCII display form name. Set by the ODT MDT command. | Spout(MCPInfo.DumpHistoryFile) |
Country:String; | The Country set by the ODT SYSOPS COUNTRY=<country name> command. 1..17 alphanumeric characters unchecked. | Spout(MCPInfo.Country) |
SLTable:SLTableX; | A reference to an SLTableX object which contains the MCP System Library (SL) Function Table. | Set
SLTable=MCPInfo.SLTable Spout(SLTable.SLTableSizeInWords) |
The SLTableX Object provides Methods and Procedures for accessing the MCP Function Table of System Libraries, which is maintained using the ODT SL Command.
This object is provided as a property of the MCPInfoX Object. It implements a collection of SLEntryX Objects.
Methods | ||
---|---|---|
Method | Description | Example |
FUNCTION IndexOf(Const FunctionName : String) : Integer |
Searches for the given FunctionName and returns the index of the SL entry in the SL Table, otherwise -1 if not found. | Set
SLTable=MCPInfo.SLTable T=SLTable.IndexOf("COPYWRITE") If (T>=0) then Spout(SLTable.SLEntry(T).SL) Else Spout("Not Found") End If |
These Properties are defined.
Properties | ||
---|---|---|
Property | Description | Example |
SLTableSizeInWords:Integer; | The size of the SL table in words after all segments have been reassembled. | Set
Selector=CreateObject("CopyWriteInterface.SelectorX") If Not Selector.SelectVolume("C:\Disk005.asd",Reason) then Spout(Reason) End If Set ASeriesDisk=Selector.ASeriesDisk If ASeriesDisk.HasMCPInfo then Spout(ASeriesDisk.PackName & " has MCP Info") Set MCPInfo=ASeriesDisk.MCPInfo If MCPInfo.IsValid then Set SLTable=MCPInfo.SLTable Spout(SLTable.SLTableSizeInWords) For Each SL IN SLTable Spout(SL.SL) Next End If End If |
Count:Integer; | The number of SL entries in the SL Table. | Set
SLTable=MCPInfo.SLTable Spout(SLTable.Count) |
SLEntry[Index : Integer] : SLEntryX; | Returns the SLEntryX Object with the given index, which must be in the range 0..Count-1. | Set
SLTable=MCPInfo.SLTable For T=0 To SLTable.Count-1 Step 1 Set SL=SLTable.SLEntry(T) Spout(SL.SL) Next |
The SLEntryX Object provides Properties for accessing an entry in the MCP System Library (SL) Table. An SLEntryX Object is obtained from the SLTableX Collection.
Methods | ||
---|---|---|
Method | Description | Example |
<none> | <none> | <none> |
These Properties are defined.
Properties | ||
---|---|---|
Property | Description | Example |
SizeInWords :Integer; | The size of the entry in Words. | Set
SLTable=MCPInfo.SLTable For Each SL IN SLTable Spout(SL.SizeInWords) Next |
FunctionName:String; | The SL <functionname> | Spout(SL.FunctionName) |
FileName:String; | The filename of the SL <functionname> = <filename> entry, as an ASCII Display Form Name. | Spout(SL.FileName) |
Title:StandardFormNameX; | A reference to a standard form object which contains the SL entry filename. | Set Std=SL.Title Std.ConvertEBCDICToASCII Spout(Std.ToASeriesDisplay) |
DontKangaroo:Boolean; | The DontKangaroo flag is an internal attribute for certain MCP Libraries. | <none> |
SystemFile:Boolean; | The SYSTEMFILE attribute of the SL entry. | <none> |
DontSoftInt:Boolean; | The DontSoftInt flag is an internal attribute for certain MCP Libraries. | <none> |
Pending:Boolean; | The Pending flag is an internal attribute used when SL entries are being changed. | <none> |
MCPInit:Boolean; | The MCPINIT attribute of the SL entry. | <none> |
Trusted:Boolean; | The TRUSTED attribute of the SL entry. | If SL.Trusted then Spout("Trusted") End If |
OneOnly:Boolean; | The ONEONLY attribute of the SL Entry. | <none> |
MCPLib:Boolean; | The MCPLib flag is an internal attribute for certain MCP Libraries. | <none> |
LinkClass:Boolean; | The LINKCLASS attribute of the SL entry. | Spout(SL.LinkClass) |
SL:String; | Recreates
the command string which defined this SL entry.For Example, SL GENERALSUPPORT = *SYSTEM/GENERALSUPPORT ON DISK:TRUSTED,LINKCLASS=3 |
Set SL=SLTable.SLEntry(I) With SL Spout(.SL) End With |
Attributes:String; | A string describing the attributes which are set in this SL entry, including both MCP internal and regular attributes. For Example, DontSoftInt, Trusted, LinkClass=3 | I=SLTable.IndexOf("GENERALSUPPORT") Set SL=SLTable.SLEntry(I) Spout(SL.Attributes) |
The PrintInfoX Object provides Methods and Procedures for accessing the Print System Info Array provided to Virtual Servers.
This object is provided to a Script which is invoked by the CopyWrite AutoPrint feature, and is called INFO.
The Load method is used by AutoPrint to pass the Info Array to the Object, but it may also be used by any program which can obtain a Print System Info array.
Methods | ||
---|---|---|
Method | Description | Example |
FUNCTION Load(Var Info : OleVariant; Var Reason : String) : Boolean; |
This method is used by AutoPrint to pass the Print System Info array to the PrintInfoX Object. It may be used by any program which can obtain an Info Array. Info is a Variant Array of varByte.The StringToVariantByteArray function in StringSupport may be used to provide the Info array. |
These Properties are defined.
Properties | ||
---|---|---|
Property | Description | Example |
Tr_UpCase:Boolean; | Transform to Upper Case. | <none> |
Tr_Align:Boolean; | Currently printing alignment pattern. | <none> |
Tr_Suppress:Boolean; | Suppress Carriage Control. | <none> |
Tr_Double:Boolean; | Print Double Spaced. | <none> |
Tr_TrimBlank:Boolean; | Blank trimming was done for the file. | <none> |
Tr_DataType:Boolean; | Type
of Info provided. Tr_PFileV = 0 Printing a File Tr_PHdrV = 1 Printing a Header Tr_PBannerV = 2 Printing a Banner Tr_PTrailerV = 3 Printing a Trailer Tr_PSummaryV = 4 Printing Job Summary Tr_PControlV = 5 Aligning Device Tr_PFontV = 6 Downloading a Font |
<none> |
Tr_FirstCall:Boolean; | First Call for this entity. | <none> |
Tr_LastCall:Boolean; | LatCall for this entity. | <none> |
Tr_SaveAfterPrint:Boolean; | Save the file after printing. | <none> |
Tr_Alignment:Boolean; | Alignment attribute. | <none> |
Tr_Banner:Boolean; | Banner attribute. | <none> |
Tr_Checkpoint:Boolean; | Checkpoint attribute. | <none> |
Tr_FileXForm:Boolean; | File Transform. | <none> |
Tr_Header:Integer; | Header Print Modifier. | <none> |
Tr_Trailer:Integer; | Trailer Print Modifier. | <none> |
Tr_Priority:Integer; | PrintPriority Modifier. | <none> |
Tr_DevKind:Integer; | Device
Kind Tr_LPV = 1 Line Printer Tr_IPV = 2 Image Printer Tr_DCV = 3 Datacom Printer |
<none> |
Tr_FileKind:Integer; | FileKind of input file. | <none> |
Tr_LineSize:Integer; | Size of Line. | <none> |
Tr_PageSize:Integer; | Size of Page. | <none> |
Tr_BlockSize:Integer; | Size of Block. | <none> |
Tr_UserCode:String; | Usercod of Request. | <none> |
Tr_Name:String; | Name. | <none> |
Tr_AccessCode:String; | AccessCode. | <none> |
Tr_ChargeCode:String; | ChargeCode attribute | <none> |
Tr_StationName:String; | StationName attribute. | <none> |
Tr_Note:String; | Note attribute. | Spout("Note is " & Info.Tr_Note) |
Tr_FormID:String; | FormID attribute. | <none> |
Tr_RequestNote:String; | RequestNote attribute. | <none> |
Tr_Language:String; | Language attribute. | <none> |
Tr_RequestNum:Integer; | Print System request number. | <none> |
Tr_UserName:String; | User Name. | <none> |
Tr_UserLib:Integer; | Name of the User Library. | <none> |
Tr_UserString:Integer; | The String for a User Library. | <none> |
Tr_UserLibAccess:Integer; | The LibAccess attribute for the User Library. | <none> |
Tr_PhysUnit:Double; | Physical Unit Number. | <none> |
Tr_LastCom:Integer; | The Last Command Code. | <none> |
Tr_RecSize:Integer; | Record Size in Bytes. | <none> |
Tr_AlignFile:String; | AlignFile Name. | <none> |
Tr_TrainID:Integer; | TrainID attribute. | <none> |
Tr_InfoLevel:Integer; | Version level of Info array. | <none> |
Tr_CallType:Integer; | Type
of Call. Ct_BeginRequestV = 1 Ct_EndRequestV = 2 Ct_BeginV = 3 Ct_EndV = 4 Ct_MiddleV = 5 |
<none> |
Tr_PrintCopies:Double; | Number of copies to be printed. | <none> |
Tr_PrinterKind:Integer; | Kind of Printer. | <none> |
Tr_Heading:String; | Heading. | <none> |
Tr_Length:Integer; | Length in Words of the Info Array. | <none> |
<none> |