Table of Contents

Core system support modules

Module SYSMOD Core system support modules

Description

The central module SYSMOD holds functions and procedures to be used for many generic the following functional areas:

Chaining between Transactions

The SYSMOD module supplies a set of procedures to chain between the different transactions. The TD Basic statement 'chain' should therefore not be used as this would otherwise prevent the standard logging and tracing functions from running.

The transaction ID transferred should be specified without its file extension.

If the developer wants to transfer records to the transaction, these records have to be transferred into the SysStream using SAVEDATA before any of the procedures are started. Contents of central system records are automatically transferred to the chained transaction. To distinguish between the different records in SysStream, use the option in TD Basic's SAVEDATA command to include a 'section header'. The 'section header' to be used should be the header defined by the receiving transaction. Usually this is the module ID of the record to be transferred.

The group of routines supporting chaining share the common prefix Lnk

Sample

To pass a currently loaded CUR record to the database info transaction for currencies (ID = DBICUR), the following code could be used:

SaveData( CUR, SysStream, "CUR" )
LnkCallTransaction( "DBICUR" )

To pass the finally edited CUR record back to the calling transaction inside the editing module, the return to the calling transaction could be coded as follows:

SaveData( CUR, SysStream, "CUR" )
ReturnToCaller

Handling of Status Display

The status line can be filled once an event is completed. Here, transactions usually chronicle the fact that the report of the last result is complete. Otherwise, events executed inside a transaction (e.g. printing a hardcopy) would report success or failure via a status message.

Therefore transactions should not clear the status line upon entry or exit. The trigger to set status messages should be an action (printing, database update, status modification etc.). A successful or unsuccessful action should be recorded in the status window.

The TD-Basic procedure 'status' is used to set the status window.

Central Modification Log

The central modification log stores all modified master file table records as AIJ images. The central table 'SLG' is used to keep track of the different images.

To make use of the logging functions, the database amending rules which are iudentified by an appended WithLog are to be used to maintain database records. Another effect of using this central database access is to be able to centrally maintain additional functionality.

Sample

To read an address the following command should be coded:

SdbRead( ADR, ADR\INR )

Supporting Pending Transactions

In handling the deletion of records and the interruption of entries in new transactions, the system supports a strategy to save the data for a certain period. Status information are maintained in the 'SPT' table. The transaction used to reload the transaction is stored in this table. Central functions allow a certain entry to be selected and data to be retrieved.

Technically, the ID of the transaction which accepts the data is stored in the table. The SPT record itself is transferred to this transaction. The transaction then tests whether an SPT record has been transferred to it, or not. If it has, this SPT record is locked when the transactions starts to avoid retrievals being duplicated.

Having retrieved a pending or deleted transaction, the user can cancel the retrieval of the entry. In this case, the SPT record becomes unlocked and the software reverts to the retrieving transaction. Otherwise, the SPT record is deleted when the transaction record has been successfully stored.

The supporting rules are all prefixed by Spt.

When calling a function, the following figurative constants should be used:

Dump of Transaction Status

To enable programmers to dump the status of a transaction in situations where they don't know how to proceed, a procedure SysDump has been supplied in the SYSMOD module. The purpose of this procedure is to inform the user of the application about the dump, enable the user to display and/or print the dump message and to store a complete transaction image on disk.

All calls to the SysDump routine are automatically recorded in the dump subdirectory of the application. The system automatically creates files for each dump. A smaller file with the extension LST stores some information about the occurrence of the dump. This file might usually be printed and sent via fax to the supporting center which supports the application. For foreground transactions, an additional file with the extension DSP is created to store information about the current screen contents. This file can be used to display the current status of the affected panels using the Display panel function of TradeDesign. The third file with the extension DMP holds a complete transaction dump of all data stored within the transaction. This file might be useful in analysing the reason for the dump.

To enable an application to include application-specific information into the printed dump information, the contents of a \SYSMOD\DumpStream are automatically included into the created LST file as context information.

Similarly, the 'SysDumpInfo' procedure can be used in situations in which dump information is required but the transaction does not have to be canceled. The dump is created, but the transaction continues.

After having stored the LST file, the TradeDesign viewer TDVIEW is automatically called to display this file.


Properties

Property YES/NO
Single page frame No
Show toolbar No
Show menu No
Show statusbar No
Show hint No
Fit panel size No

Datafields

Name Description Data Type Len Dec. View lines View type Inst. Visible Codetable
DDESNDSTREAM Stream to register sent requests Stream 16 0 Source Yes Public
OBJNAM readable identification of currently processed object Text 60 1 Edit Yes Public
TRNNAM Transaction title Text 60 1 Edit Yes Public
SPTDATA Stream to pass pending data to storage Stream 1 0 Source Yes Public
InterruptINFSTM Textual Information in case of Interrupt Stream 40 1 Source Yes Public
GUIEXI GUI Exit Button Control 16 1 Button Yes Public
GUIHOM GUI Home Button Control 16 1 Button Yes Public
GUIBCK GUI Back Control 16 1 Button Yes Public

Datafield Description and Properties

Datafield DDESNDSTREAM Stream to register sent requests

Description

Internally used stream to register DDE-Send requests to be able to link DDE-Receives to the context of the sending routine. Holds the pair <class>=<instance> for every issued DDE-Send within the current transaction.


Datafield OBJNAM readable identification of currently processed object

Description

The field OBJNAM is usually filled by a defaultrule of the transaction with the unique key identifying the object the transaction is working on.


Datafield TRNNAM Transaction title

Description

Initially set with the technical title of the transaction read via GetTitle. The transaction might dynamically modify this title to adopt it according to the selection or status of the transaction.


Datafield SPTDATA Stream to pass pending data to storage

Description

Stream to support the SPT-System.

The originally data of picked up SPT is stored in cache. This stream is used to collect all data to be stored in savedata structure. The intended use is in methods as “CodSptSaveTxt”, “HandleInterruptTransactionxxx”, “SprSaveAddInsInSptdata” etc.


Datafield InterruptINFSTM Textual Information in case of Interrupt

Description

Filled by call to InterruptTransactionAddInfo

If HandleInterruptTransaction is executed by application the trigger can supply additional information for output to any log output by adding text to this field

Any log output (e.g. LOGMOD) should output text from here in their 'InterruptTransaction'-procedure


Rules

Rule Name Additional
function AtpGetFrameName text static
function CheckComplianceForOBJTYP boolean static
function ConvertBlockHtml text global
function DateFromString datetype global
function DateTimeFromString datetime global
function DDEServerName text static
function EvtWrite text static
function FmtNumber text global
function FmtTime text global
function FmtTimeShort text global
function getallNETTVersion numeric static
function GetAppPanTitle text global
function GetCallingTransaction text global
function GetContextPanel panel method
function GetFieldDesc text global
function GetFromZip text global
function GetInitialTransaction text global
function GetJobname text global
function GetPostableMethod text global
function GetRegionForEntity text global
function GetSwitch text global
function GetSystemName text static
function GetTitleWithClient text global
function HlpTextBreakLongLines text static
function IncSPTRemappingNeeded boolean global
function InternalCreateHelpTxt text method
function IsAccruingGleActive boolean static
function IsAlternativeComplianceActive boolean static
function IsAutostartRequested boolean global
function IsBatchmode boolean global
function IsDemoSystem boolean static
function isExportFinance boolean global
function isFacilityConfigActive boolean global
function IsGitMode boolean static
function IsIncMessageLoaded boolean static
function IsInfoSession boolean global
function IsInPostQueue boolean static
function IsStructuredInfoActive boolean static
function IsSwiftXMLActiveX boolean static
function IsSwiftXMLPaymentsActive boolean static
function IsTarget2Active boolean static
function IsTblMacFromFilNam boolean global
function IsTFaaSUser boolean static
function IsTFaaSVersion boolean static
function IsUETR boolean global
function LnkGetCurrentPanel text global
function LnkGetLoadDataLabel text global
function NormalizeOneField text global
function prepareXmlForHtml text static
function RecGetGrpMod module global
function RecGetInr text global
function RecGetObj text global
function RecGetPath text global
function RecGetRecMod module global
function RecGetSysObjPath text global
function RecHoldsVer boolean global
function RecIsEmptyInr boolean global
function SLAGetLatestStart datetime method
function SLAGetTargetTime datetime method
function SLAGetTransactionBufferDuration numeric method
function SLAGetTransactionProcessingDuration numeric method
function SLAGetTransactionReleaseDuration numeric method
function SptIsAnyLoaded boolean global
function SptIsAutLoaded boolean global
function SptIsCorLoaded boolean global
function SptIsDelLoaded boolean global
function SptIsExeLoaded boolean global
function SptIsIncLoaded boolean global
function SptIsLoaded boolean global
function SptIsManLoaded boolean global
function SptIsRimLoaded boolean global
function SptStaOfOtherEntryForObj text global
function SqlAndCondition text global
function SqlFldUpper text global
function SqlGetInClause text static
function SqlLitLower text global
function SqlLitUpper text global
function StreamGetNameInSubDir text global
function StreamGetSubDirPath text global
function UseOIDC boolean static
sub AllUsgGetStream static
sub AllUsgSetCodeValues static
sub AllUsgSetValues static
sub AllUsrGetStream static
sub AllUsrSetCodeValues static
sub AtpLoad method
sub CacheDbRead global
sub CacheDbReadSql global
sub ClientPrintFrame static
sub CopyModifiedAttribute global
sub CtxHlpDisplay method
sub CtxHlpEdit method
sub CtxSetDebuglevel_Appl method
sub CtxSetDebuglevel_basexec method
sub CtxSetDebuglevel_builtin method
sub CtxSetDebuglevel_Comm method
sub CtxSetDebuglevel_Default method
sub CtxSetDebuglevel_flow method
sub CtxSetDebuglevel_Info method
sub CtxSetDebuglevel_Prof method
sub CtxSetDebuglevel_rules method
sub CtxSetDebuglevel_sql method
sub CtxSetDebuglevel_sqldata method
sub CtxSetDebuglevel_user method
sub CtxShowFieldinStatus method
sub CtxShowFldInsp method
sub DbCommitStateCheck static
sub DbCommitStateSave static
sub DDESendStream global
sub DeleteSectionFromStream global
sub DisableAndClearField static
sub ErrorAsterisk global
sub ErrorMandatory global
sub ErrorShowStatus global
sub EtyLoad method
sub EtySet static
sub GetSysInfOneEntry static
sub GetSysInfStream static
sub InternalCreateHelpKeys method
sub InternalCtxHlpHandle global
sub InternalHlpRead method
sub InternalPromptMsg method
sub InterruptTransactionAddInfo method
sub LnkCallTransaction global
sub LnkCallTransactionAndSetReturn global
sub LnkChainTransaction global
sub LnkExit global
sub LnkHandleInterruptTransaction method
sub LnkReturnToCaller global
sub LnkReturnToCallerKeepSPT global
sub LnkReturnToFirst global
sub LnkSetPassedPanel global
sub MenuFitAllPages global
sub MenuFitHeight global
sub MenuFitWidth global
sub MenuPrint global
sub MenuZoom100 global
sub MenuZoom125 global
sub MenuZoom200 global
sub MenuZoom50 global
sub MenuZoom75 global
sub PopupAppPan global
sub PostSetDependingData static
sub PromptMsgWhenDone static
sub QueUpdate global
sub RecLoadData global
sub RecSaveData global
sub RegisterButton_010 method
sub RegisterButton_700 method
sub RegisterButton_900 method
sub SendExtEvent static
sub SetCodeValuesFrom static
sub SetFieldtoDescription global
sub SetHeaderTitle static
sub SetModifiedByApplication global
sub SetStyleBut static
sub SetUseOIDC static
sub SptAddToInfTxt global
sub SptClear global
sub SptDeleteEntry global
sub SptGetLoadDataStream global
sub SptLoadData global
sub SptPrepareSavForInterrupt static
sub SptQueUpdate method
sub SptReinstIncSpt static
sub SptSaveDataRoot global
sub SptSaveEntry static
sub SptUpdateInDb static
sub SptWriteLog global
sub SQLSetCommittedRead global
sub SQLSetDirtyRead global
sub StreamLoadInDirectory global
sub StreamLoadInSubDir global
sub StreamSaveInDirectory global
sub StreamSaveInSubDir global
sub SysDump global
sub SysDumpInfo global
sub TlbGenViewDocu global
sub TlbHardcopy global
sub TlbHlpDisplay global
sub TlbModFields global
sub TlbSaveImage global
sub TlbShowAbout global
sub TlbSysDump global
sub TlbTrnViewDocu global

Rules Description and Comments

function ConvertBlockHtml( in Argtxt text ) : text global

rule to convert / prepare a text to be output into a HTML document
ArgTxt holds the text to be converted into a HTML compatible format


function DDEServerName : text static

Retrieve name to be used as first argument of DDESend


function EvtWrite( in ArgTyp text, in ArgInr text, in ArgRtn text, in ArgTxt text ) : text static

Routine used to create an event entry. The routine returns the
INR of the created event for optional reference.
ArgTyp should be OBJTYP of the owning object
ArgInr could optionally hold the INR of the owning object
ArgRtn
ArgTxt should be GetText ( Errorcode ) if


function FmtNumber( in ArgNum numeric, in ArgUil text, in ArgFmt text ) : text global

Function to format a numeric value (e.g. rate) fitting to the passed language

ArgNum holds the numeric value to be formated with all digits to be used
potential rounding has to take place before calling this routine
ArgUil optionally holds the target language (2-character)
If passed blank the current UIL (value of GetUil) is used to
determine the relevant decimal delimiter.
ArgFmt holds additional optional formating parameter to define the number of decimals,
and a language independent thousand separator and decimal point.
If the first character holds a value of 0 - 9 the number defines the number of
of decimals. If a blank value is passed all non zero decimals are returned.
The second character optionaly defines the thousand separator
(use “-” to avoid thousand separators)
a non blank third character defines the decimal point.
The forth character might hold a “+” to output a leading “+” for positive numbers

A sample usage is to format a number with more than 3 digits and no thousand separator
FmtNumber( Year( Today ), “”, “0-” )
or to get fixed 5 decimals with the default thousand separator FmtNumber( $Mar, “”, “5” )

Corresponding function: STGMOD.FmtInteger, FmtTime, FmtTimeShort


function FmtTime( in ArgNum numeric ) : text global

returns the passed number in displayable time format

ArgNum is the time in format hh,mmss

the result is a text in format hh:mm:ss

Corresponding function: STGMOD.FmtInteger, FmtNumber, FmtTimeShort


function FmtTimeShort( in ArgNum numeric ) : text global

returns the passed number in displayable time format

ArgNum is the time in format hh,mmss or hh,mm

the result is a text in format hh:mm

Corresponding function: STGMOD.FmtInteger, FmtNumber, FmtTime


function GetAppPanTitle( in ArgCap text ) : text global

Routine to create the title of an application panel
ArgCap Heading of the panel to be shown


function GetCallingTransaction : text global

returns the name of the calling transaction.
On top level an empty string is returned.


function GetContextPanel : panel method

Determine, whether current Panel is Popuppanel
The purpose is to return the relevant panel


function GetFieldDesc( in ArgFld text, in ArgTbl text, in ArgUil text ) : text global

Function to determine a field decription in the current UIL
ArgPth holds the full fieldname within the current transaction optional with the leading transaction name
ArgTbl holds optionally the tablename the field stored in
ArgUil holds optionally the UIL to be used
The description text is primarily searched in the following search order
1 - n. HLP table as transaction field using the full instance path cutting down one leading node after the other
n+1. HLP table as database field
n+2. GetDescription to load the programmed description
n+3. The Fieldname enclosed in [ ]
Sample usage: $Txt = GetFieldDesc( GetErrorFieldName, “”, “” )


function GetFromZip( in ArgPath text, in ArgFil text ) : text global

Routine to extract a file from a directory created with ArgPath +“.unzip”

ArgPath holds the filepath of the file to be loaded. When directories are zipped
the last directory is the basename of a ZIP-File holding the zipped files.
ArgFil holds the filename, usually an INR followed by the fileextension. In case
of special subdirectories (e.g. splitmsg in docs) ArgFil might include this
subdirectory as prefix.

returns full filepathname of temporarily created unzip file

If the ZIP-file needed to unzip the requested file is not found an errorcode 1000 is returned

all errorcodes are exported to the caller.

corresponding functions: StreamLoadInDirectory, StreamSaveInDirectory


function GetInitialTransaction : text global

returns the transactionname of the initial transaction
of the current session.


function GetJobname : text global

retrieve name of job if it was passed from caller via
FRMSTK\CURTXT or from JOBMOD in JOBTSK via SSN

Corresponding functions: IsAutostartRequested


function GetPostableMethod( in ArgMod module, in ArgRul text ) : text global

Function to return the postable line to call a method.
The purpose is to allow the relative specification of a method in the module one level above the current module with the notation “..\xxx” or the same module with the notation “.\xxx”.
Only relative specifications of a method are modified.
Absolute specifications, thus specifications starting with a `\` or specifications without any path portion are returned unmodified.

ArgMod hold the moduleinstance relative to which the methodname is specified (Normally `self`).
ArgRul holds the rulename (with or without any necessary arguments).

The intended use is to pass static or global methods without a path and methods which are located in the same module with a leading “.\” (or with ..\ for methods implemented in the calling module)


function GetSwitch( in ArgSwt text ) : text global

retrieve a switch whether it was passed via FRMSTK\CURCTX from caller
or via commandline (e.g. from JOBMOD in JOBTSK via SSN)
This routine is intended to be used to accept passed parameter within a application transaction.
Use LnkGetSwitch in transactions where there is no SYSMOD available or where parameters
will only be passed by commandline.

Corresponding functions: LnkGetSwitch, GetSwitchFromLine, IsAutostartRequested


function GetSystemName : text static

Retrieve the unique system name to be used as postfix when setting a DDE-Topic


function IsAutostartRequested : boolean global

Function to check whether a transaction should automatically be started

Corresponding functions: GetJobname, GetSwitch


function IsIncMessageLoaded : boolean static

checks, if the actual transaction is initiated originally by an incoming message.
Return TRUE even if transaction i.e. has been send to correction and picked up again inbetween


function IsInPostQueue( in ArgFun text ) : boolean static

Checks, if the routine ArgFun is already in the postqueue.
This function is intended for check whether a routine is already posted
before an asynchronous post of a routine is issued to avoid multiple executions
of the same routine.
ArgFun is used as Text and the Postqueue is searched for any occurrence of the
Text passed in ArgFun.


function IsTblMacFromFilNam( in argobjtyp text ) : boolean global

List of tables without INR, that use MacFromFileName in SLGNOI


function LnkGetCurrentPanel : text global

Function to retrieve the currently active panel.
The intended use to pass the currently used panel to the next transaction.


function NormalizeOneField( in ArgTxt text, in ArgAddChr text ) : text global

Function to create a normalized field contents. Convert everything to uppercase and eliminate special character.
ArgTxt holds the text to be normalized
ArgAddChr holds additional character which should stay unmodified
The intended use of this function is to create a fast searchable and case insensitive content. These
converted content might be stored in the database as searchfield and might then be used when
searching the database.


function RecGetGrpMod( in ArgRec module ) : module global

The Argument may be a record, a recordgroup or
a module of type SYSOBJ
The function returns a modulepointer to the record or
the group record of a record group.


function RecGetInr( in ArgRec module ) : text global

The function returns the contents of the INR of the record
or the main record of a recordgroup.

ArgRec may be a record, a recordgroup or a module of type SYSOBJ

If the passed module does not hold an INR the routine returns an empty value.


function RecGetObj( in ArgRec module ) : text global

The Argument may be a record, a recordgroup or
a module of type SYSOBJ
The function returns the objecttype of the record or
the main record of a group.


function RecGetPath( in ArgRec module ) : text global

The function returns the complete path of the module holding
the record or the main record of a group.
ArgRec may be a record, a recordgroup or a module of type SYSOBJ


function RecGetRecMod( in Rec module ) : module global

The Argument may be a record, a recordgroup or
a module of type SYSOBJ
The function returns a modulepointer to the record or
the main record of a record group.


function RecGetSysObjPath( in ArgSysObj text ) : text global

Internal function to return the full path of a SYSOBJ.

The argument is the full path of the SYSOBJ to be read.

If the SYSOBJ holds a relative path, the absolute path is
evaluated and stored in SYSOBJ for later reference.


function RecHoldsVer( in rec module ) : boolean global

The Argument may be a record, a recordgroup or
a module of type SYSOBJ
The function returns true, if the records holds a field
with the name VER.


function RecIsEmptyInr( in rec module ) : boolean global

The Argument may be a record, a recordgroup or
a module of type SYSOBJ
The function returns true, if the INR is empty.


function SLAGetLatestStart( in argTARDATTIM datetime, in argETG text, in argETY text, in argCLA text, in argFRM text, in argSLACLA text, in argCHA text ) : datetime method

return point of time when processing of argCLA must be started inorder to reach argTARDATTIM


function SLAGetTargetTime( in argBEGDATTIM datetime, in argETG text, in argETY text, in argFRM text, in argSLACLA text, in argCHA text ) : datetime method

return targettime (by adding maximum duration from SLA to starting date)


function SLAGetTransactionBufferDuration( in argETG text, in argETY text, in argFRM text, in argSLACLA text, in argCHA text ) : numeric method

return assumed duration reuqired to release specified transaction in specified class


function SLAGetTransactionProcessingDuration( in argETG text, in argETY text, in argCLA text, in argFRM text, in argSLACLA text, in argCHA text ) : numeric method

return assumed processing duration (in minutes) for specified transaction in specified class for specified SLA and channnel


function SLAGetTransactionReleaseDuration( in argETG text, in argETY text, in argFRM text, in argSLACLA text, in argCHA text ) : numeric method

return assumed duration (in minutes) required to release specified transaction in specified class


function SptIsAnyLoaded : boolean global

Function to check whether any Spt-item is loaded on entry of the transaction
returns true if any spt item is loaded


function SptIsAutLoaded : boolean global

Function to check whether an Spt-item of type AUT (automatic processing) is loaded
on entry of the transaction.
returns true if AUT item is loaded.


function SptIsCorLoaded : boolean global

function to check whether a correction spt-item is loaded on entry of the transaction.
returns true if an corrected spt-item is loaded.


function SptIsDelLoaded : boolean global

returns true if an deleted item is loaded.


function SptIsExeLoaded : boolean global

Function to check whether an Spt-item of type EXE (recalculation) is loaded
on entry of the transaction.
returns true if EXE item is loaded.


function SptIsIncLoaded : boolean global

returns true if an incoming item is loaded. i.e. `INC`oming or `STP` straight through


function SptIsLoaded( in Arg text ) : boolean global

Function to check whether one of the passed SPT status is loaded
Arg holds a single SPT status or a blank delimited list of multiple SPT status to be checked
If any of the passed status is set the routine returns true

Usually the symbolic name used to identify the SPT status should be used on call.
(eg. SptIsLoaded( SptAfterDeletion + “ ” + SptAfterRejection ) )


function SptIsManLoaded : boolean global

returns true if an item for manual processing is loaded.


function SptIsRimLoaded : boolean global

Function to check whether an Spt-item of type RIM (registration) is loaded on entry of the transaction.
returns true if RIM item is loaded.


function SptStaOfOtherEntryForObj( in ArgMod module ) : text global

Routine to search of SPT entries of the passed object.
If currently a SPT entry is active, this entry is explicitly excluded.
If any other active SPT is found its status is returned as function result. Otherwise a blank status is returned.

ArgMod holds the object SPT`s are searched for


function SqlAndCondition( in ArgSql text, in ArgCon text ) : text global

function to put a condition above an existing condition.
ArgSql holds the combined sql condition incl. a potential leading where clause
(Normally the base condition)
ArgCon holds the condition which should be logically put above the condition described in the SQL.
(Normally the multientity selector condition created by SdbEtyGenInsSql or SdbEtyGenTblSql)
The function returns a SQL condition incl. a leading where clause with optional parenthesis around the existing sql and logically ANDed condition.


function SqlFldUpper( in ArgTxt text ) : text global

Used to apply the SQL function to convert field contents to uppercase.
So that the resulting SQL-expression defines a case insensitive search.
The name of the column to be accessed has to be passed.
For references to literals use SqlLitUpper.


function SqlLitUpper( in ArgTxt text ) : text global

Used to create a literal converted to uppercase to be used in sql.
Intended to enable SQL-expressions defining a case insensitive search.
The literal has to be passed without the usual necessary single quotes.
single quotes passed as part of the literal are doubled to keep the
sql errorfree and to enable searching for single quotes.
For references to database fields use SqlFldUpper.


function StreamGetNameInSubDir( in ArgDir text, in ArgFil text ) : text global

Routine to generate the full filepath for a file in a subdirectory structure.

ArgDir holds the root directoryname to be used within the DATA partition (i.e. TRNDATA, DELETE, DOCS etc.)
ArgFil holds the filename, usually an INR followed by the fileextension

corresponding functions: StreamGetSubDirPath, StreamLoadInSubDir, StreamSaveInSubDir


function StreamGetSubDirPath( in ArgDir text, in ArgFil text ) : text global

Routine to generate the full directory pathname including the dynamically
created subdirectory for a stream in a subdirectory structure.
The result does not include the filename.

ArgDir holds the root directoryname to be used in the DATA partition (i.e. TRNDATA, DELETE etc.)
ArgFil holds the filename, usually an INR followed by the fileextension

corresponding functions: StreamGetNameInSubDir, StreamLoadInSubDir, StreamSaveInSubDir


sub AllUsgGetStream( inout ArgStm stream ) static

Generates a stream of all usergroups within the current entity.
This Stream is intended to be used to SetCodeValues in Comboboxes
used to select a usergroup.
Corresponding functions: AllUsgSetCodeValues


sub AllUsgSetCodeValues( in ArgField field ) static

AllUsgSetCodeValues is used set the codevalues of
all usergroups into the Codevalues of a passed field.
The passed field has to be an 6 digit text and has
to hold an associated fixed length codetable.
Corresponding functions: AllUsgGetStream


sub AllUsgSetValues( in ArgField field ) static

AllUsgSetValues is used set the values of
all usergroups of the current entity and the current entitygroup into the values of a passed field.
The passed field normally is a 6 digit textfield which is used as combobox with codetable USGTXT
This rule should normally be called in the init


sub AllUsrGetStream( inout ArgStm stream ) static

Generates a stream of all users within the current entity.
This Stream is intended to be used to SetCodeValues in Comboboxes
used to select a user.
Corresponding functions: AllUsrSetCodeValues


sub AllUsrSetCodeValues( in ArgField field ) static

AllUsrSetCodeValues is used set the codevalues of
all users into the Codevalues of a passed field.
The passed field has to be an 8 digit text and has
to hold an associated fixed length codetable.
Corresponding functions: AllUsrGetStream


sub CacheDbRead( inout ArgRec module, in ArgValue text, in ArgField text ) global

This procedure performs a CACHED read on a table via a direct access field,
usually INR or COD. When accessing via OWNREF or EXTKEY or other not
technically unique fields the routine CacheDbReadSql together with
SdbEtyGenSql should be used.
This routine does NOT support multientity operation.
Corresponding functions: CacheDbReadSql
Via EXIT the return to caller takes place with the errorcode of the DBRead


sub CacheDbReadSql( inout Rec module, in ArgSql text ) global

This procedure performs a CACHED read on a table via a passed where
and optional order clause.
When accessing via OWNREF or EXTKEY or other not technically unique
fields the routine SdbEtyGenSql or other routines have to be used
to include the required multientity clauses.
This routine itself does NOT support multientity operation.
Corresponding functions: CacheDbRead
Via EXIT the return to caller takes place with the errorcode of the DBRead


sub ClientPrintFrame( in DocPan panel, in PanDsc text ) static

print document panel


sub CopyModifiedAttribute( in ArgSource field, in ArgTarget field ) global

Copy the modification attribute from ArgSource to ArgTarget

The standard behaviour is, that all fields input by a user are set to modified (by TradeDesign). If there are
logical copies of those fields within the application this rule might be used to copy the modification attribute.
E.g. xxx\OWNUSR holds the USR\EXTKEY within a table to identify the owning user. If the selection routine
operates on USR\EXTKEY to search for a USR entry, this IsModified attribute set by the manual input into
the USR\EXTKEY field might be copied with the CopyModifiedAttribute rule to xxx\OWNUSR to reflect the
modification attribute.

Corresponding functions: SetModified, IsModified, SetModifiedByApplication


sub CtxHlpDisplay method

Routine to be used in contextmenu to display the contexthelp
of the field the cursor is currently pointing to.


sub CtxHlpEdit method

Routine to be used in contextmenu to edit the contexthelp
of the field the cursor is currently pointing to.


sub CtxSetDebuglevel_Appl method

Routine to be used in contextmenu to select the debuglevel user defined Rules


sub CtxSetDebuglevel_basexec method

Routine to be used in contextmenu to select the debuglevel basic execution


sub CtxSetDebuglevel_builtin method

Routine to be used in contextmenu to select the debuglevel Built_in functions


sub CtxSetDebuglevel_Comm method

Routine to be used in contextmenu to select the debuglevel Communication


sub CtxSetDebuglevel_Default method

Routine to be used in contextmenu to select the debuglevel user defined Rules


sub CtxSetDebuglevel_flow method

Routine to be used in contextmenu to select the debuglevel flow calculation


sub CtxSetDebuglevel_Info method

Routine to be used in contextmenu to select the debuglevel Informational


sub CtxSetDebuglevel_Prof method

Routine to be used in contextmenu to select the debuglevel Profiling


sub CtxSetDebuglevel_rules method

Routine to be used in contextmenu to select the debuglevel Rules


sub CtxSetDebuglevel_sql method

Routine to be used in contextmenu to select the debuglevel SQL commands


sub CtxSetDebuglevel_sqldata method

Routine to be used in contextmenu to select the debuglevel SQL commands


sub CtxSetDebuglevel_user method

Routine to be used in contextmenu to select the debuglevel user defined Rules


sub CtxShowFieldinStatus method

Routine to be used in contextmenu to show the information about
the field in the status line.


sub DbCommitStateCheck static

This rule could be called to check for the occurrence of implicit or explicit commits or rollbacks during a database transaction. A previous call to DbCommitStateSave is required.
The intended use is in SAV events after finalizing the update phase
Corresponding functions: DbCommitStateSave


sub DbCommitStateSave static

This rule could be called to save the database transaction status to be able to check for the occurrence of implicit or explicit commits or rollbacks during a database transaction
The intended use is in SAV events to save the transaction state after finalizing the check phase when starting the update phase
Corresponding functions: DbCommitStateCheck


sub DDESendStream( in ArgTrn text, in ArgTop text, inout ArgStr stream ) global

Rule to submit a stream to a DDE-Server.
ArgTrn holds the Transaction to be started within the DDE-Server
ArgTop holds the Topic to be used as DDE-Topic
ArgStr holds the Stream with the data to be passed to the DDE-Server


sub DisableAndClearField( inout ArgFld field ) static

Service Routine to be used to cleanup a field which is not used
within the current context


sub ErrorAsterisk( in Argblk text ) global

Service routine to display an error message if passed text holds a `*`-character.
ArgBlk holds the textblock to be checked for *-character


sub ErrorMandatory global

Service routine to be called to show the standard errormessage for mandatory fields.


sub ErrorShowStatus global

Service routine to be called after unsuccessful check to show the erroneous field in the status line


sub EtyLoad( in ArgEty text ) method

Routine to temporarily set the current entity to the passed value.
It is not changed when calling another transaction. This setting
is automatically rolled back in case of error`s or when returning
from the current or chaining to another transaction.

ArgEty holds the ETY\EXTKEY of the required entity

Corresponding function: EtySet


sub EtySet( in ArgEty text ) static

Routine to set the current entity to the passed value and thus change the current
active entity permanent up to the next EtySet or to the end of the session.

ArgEty holds the ETY\EXTKEY of the required entity
If the entity is not found the not-found error code is returned

Corresponding function: EtyLoad


sub GetSysInfOneEntry( in ArgLin text, inout ArgVal text, inout ArgRes text, in ArgTag text, inout ArgTags stream ) static

Function to return the calculated result accordingly to ArgLin
ArgLin holds the line describing the value to be extracted. This text is usually read from SYSINF.INI
ArgVal returns the name of the returned value
ArgRes returns the value


sub GetSysInfStream( inout ArgStm stream ) static

Generates text showing system information similar to the information shown in SYSINF.
ArgStm holds the result as line by line text with a leading and inserted group headings.
If ArgStm is not empty the result is appended to the end of the original stream contents.
This stream is intended to be used in SysDump or other routines
which need to document the current system context.


sub InternalCtxHlpHandle( in ArgAction text ) global

Generate HLP-Key out of context menu


sub InternalPromptMsg method

Function to finally signal all collected messages to the user via prompt or notify.
Caution: This routine executes a DbCommit incase it is executed in background
Corresponding function: PromptMsgWhenDone


sub InterruptTransactionAddInfo( in arg text ) method

add information for output in case of interrupt


sub LnkCallTransaction( in Frame text ) global

Call transaction, current transaction is pushed onto transaction stack.
Execution of LnkReturnToCaller will restart the currenttransaction.
Corresponding functions: LnkChainTransaction, LnkCallTransactionAndSetReturn, LnkLeaveAction…


sub LnkCallTransactionAndSetReturn( in Frame text, in RetFrame text ) global

Call transaction with specification of return transaction
Corresponding functions: LnkChainTransaction, LnkCallTransaction, LnkLeaveAction…


sub LnkChainTransaction( in Frame text ) global

Call transaction, without pushing something onto the transaction stack.
Execution of LnkReturnToCaller will restart the transaction which called
the current transaction.
Corresponding functions: LnkCallTransaction, LnkCallTransactionAndSetReturn, LnkLeaveAction…


sub LnkExit global

Final exit of the application. Should be called to terminat a session.
Normally this routine is handled by the menu system and should not
be used in normal application transactions.
Corresponding functions: LnkReturnToCaller, LnkReturnToFirst, LnkReturnToCallerKeepSPT, LnkLeaveAction…


sub LnkHandleInterruptTransaction method

central handler to call all defined methods “HandleInterruptTransaction”


sub LnkReturnToCaller global

Routine to return to caller taken from transaction stack. That`s the normal
exit routine of a application transaction.
Corresponding functions: LnkReturnToFirst, LnkReturnToCallerKeepSPT, LnkExit


sub LnkReturnToCallerKeepSPT( in ArgFlg text ) global

Routine to return to caller taken from transaction stack and keeping an existing SPT.
ArgFlg specifies whether SPT-Locks are allowed or not.
A nonspace value allows locked SPT entries.
Corresponding functions: LnkReturnToCaller, LnkReturnToFirst, LnkExit, LnkLeaveAction…


sub LnkReturnToFirst global

function to return to the initial transaction bypassing the transaction stack.
Corresponding functions: LnkReturnToCaller, LnkReturnToCallerKeepSPT, LnkExit, LnkLeaveAction…


sub LnkSetPassedPanel( in ArgPan text ) global

Routine to set the panel to be used upon startup of the next
transaction chained via LnkCallTransaction or LnkChainTransaction.


Routine to be used in contextmenu when displaying a document
show all pages of the document in the panel.


Routine to be used in contextmenu when displaying a document
to fit the document into the height of the panel.


Routine to be used in contextmenu when displaying a document
to fit the document into the width of the panel.


Routine to be used in contextmenu when displaying a document
to allow the printout of the document.


Routine to be used in contextmenu when displaying a document
to show the document in 100% of the original size.


Routine to be used in contextmenu when displaying a document
to show the document in 125% of the original size.


Routine to be used in contextmenu when displaying a document
to show the document in 200% of the original size.


Routine to be used in contextmenu when displaying a document
to show the document in 50% of the original size.


Routine to be used in contextmenu when displaying a document
to show the document in 75% of the original size.


sub PopupAppPan( in ArgPan panel, in ArgCap text, in ArgPrs boolean ) global

Routine to popup an application panel
ArgPan the Panel to be used
ArgCap Heading of the panel to be shown
ArgPrs Persistency flag. When set to true the popup of the panel is persistent
Intended to be used to popup an application panel. Direct use of PopupTitledFrame should
be avoided and this routine be used.


sub PromptMsgWhenDone( in ArgTxt text ) static

The passed text will be prompted (or sent via Notify) after completion of the current basic execution
If multiple calls are issued within a single basic execution all text`s are concatenated together and prompted with one single prompt
ArgTxt holds the text to be used
Corresponding function: InternalPromptMsg


sub QueUpdate( in argOBJTYP text, in argOBJINR text, in argOBJSUBID text, in argHLDFLG text ) global

Release or (logically) delete specified QUE entry / entries
if argOBJSUBID =“*” entries for all OBJSUBIDs are deleted/released


sub RecLoadData( inout rec module ) global

Loads record/recordgroup from Sysstream. The record has been passed
with RecSaveData before calling LnkCallTransaction or LnkChainTransaction.
Has to be used in the init phase of a transaction. Automatically
loads the data from a picked up SPT entry if any SPT is used.


sub SetFieldtoDescription( inout ArgFld field, in ArgFldLst text, in ArgTbl text, in ArgCon text ) global

Central method to load a field with a decoding / descripting text based on a sql condition describing the
database entry to hold the descripting values.

ArgFld holds the target field to be loaded
ArgFldLst holds the comma separated list of fieldnames to be loaded
ArgTbl holds the table to be accessed to load the contents to be shown
ArgCon holds the condition to be used for the access

The intended use is to load fields to be shown on panels describing a shown code or key.
By using SetFieldToConcatenatedText the length of the description field might be any suitable
length. If the resulting texts gets too long it will be cut and displayed with trailing dots.

If multiple fields are to be loaded the result will show the values in a comma separated list suppressing
empty field values.

e.g. SetFieldtoDescription( ETYDSC, “NAM, ETG”, “ETY”, “EXTKEY = ” + SqlLit( REC\ETY ) )


sub SetModifiedByApplication( in ArgTarget field ) global

The modification attribute of ArgTarget is set to modified-2 to represent an internal defaulting / setting of a field.

Use this rule if a field shall be flagged as modified and the modification is not directly triggered by a user input.

Corresponding functions: SetModified, IsModified, CopyModifiedAttribute


sub SptClear global

Releases loaded SPT-Entry and clears the local variables


sub SptDeleteEntry( inout ArgSpt SPT ) global

deletes pending item including fileimage.


sub SptGetLoadDataStream( inout ArgStream stream ) global

Supplies the stream holding the LoadData structure of the picked up
transaction to the application


sub SptLoadData( inout Rec module ) global

Loads data of a pending record or record group
Procedure has to be called in the init phase of a transaction


sub SptPrepareSavForInterrupt( inout ArgSpt SPT ) static

prepare SPT before save
ArgSpt holds the SPT to be saved
use the rule previous to SptSaveEntry called in HandleInterruptTransaction in order to fill cleared fields again
if SPT-fields are not cleared before “Re-Break”, the old content is kept


sub SptReinstIncSpt( inout ArgSpt SPT, in ArgFil text ) static

reinstantiate included incoming-SPT if exists
ArgPath holds the absolute pathname of file holding SPT data


sub SptSaveDataRoot global

Bring SPTDATA in to registerstream to avoid duplicate storage


sub SptSaveEntry( inout ArgSpt SPT, in ArgRec module, in ArgSta text, in ArgSptDatStm stream, in ArgEtg text, in ArgEty text ) static

save ArgRec as item of passed type ArgSta
if it is an module group, the whole group is stored
all SaveData structure to be stored for SPT has to be set in ArgSptDatStm by caller
ArgSpt holds the preloaded SPT
ArgEtg holds the required entity group or blank if the current entity group shall be taken.
ArgEty holds the required entity or blank if the current entity shall be taken.


sub SptUpdateInDb( inout ArgSpt SPT, in ArgSta text ) static

update ArgSpt in database and write the log entry
optionally sets status of stored SPT if nonempty ArgSta is passed


sub SptWriteLog( in ArgSpt SPT, in ArgFu text ) global

internal function to write the SPT log
ArgSpt holds the SPT to be processed
ArgFu holds the functioncode
Possible function codes are “I”nsert, “P”ickup, “U”pdate, “D”elete


sub SQLSetCommittedRead global

Sets the isolationlevel to committed read for Informix or DB2 Database Systems


sub SQLSetDirtyRead global

Sets the isolationlevel to dirty read for Informix or DB2 Database Systems


sub StreamLoadInDirectory( inout ArgStr stream, in ArgPath text, in ArgFil text ) global

Routine to read a stream from a directory created with StreamSaveInDirectory

ArgStr holds the stream to be filled
ArgPath holds the filepath of the file to be loaded. When directories are zipped
the last directory is the basename of a ZIP-File holding the zipped files.
ArgFil holds the filename, usually an INR followed by the fileextension. In case
of special subdirectories (e.g. splitmsg in docs) ArgFil might include this
subdirectory as prefix.

In case the ZIP-File needed to unzip the requested file is not found an errorcode 1000 is returned

all errorcodes are exported to the caller.

corresponding functions: GetFromZip, StreamSaveInDirectory


sub StreamLoadInSubDir( inout ArgStr stream, in ArgDir text, in ArgFil text ) global

Routine to read a stream from a subdirectory structure created with StreamSaveInSubDir

ArgStr holds the stream to be filled
ArgDir holds directoryname to be used in the DATA partition (i.e. TRNDATA, DELETE etc.)
ArgFil holds the filename, usually an INR followed by the fileextension
all errorcodes are exported to the caller.

corresponding functions: StreamGetNameInSubDir, StreamGetSubDirPath, StreamSaveInSubDir


sub StreamSaveInDirectory( in ArgStr stream, in ArgNam text ) global

Routine to write a stream into a directory and optionally create it.
With the exception of the check for the existence of the target
directory, all errorcodes are exported to the caller.
ArgStr hold the stream to be saved.
ArgNam holds the complete filepath where the stream shall be saved.

corresponding functions: StreamLoadInDirectory


sub StreamSaveInSubDir( in ArgStr stream, in ArgDir text, in ArgFil text ) global

Routine to save a stream into a subdirectory structure and optionally create
a missing subdirectory.

ArgStr holds the stream to be saved
ArgDir holds the base directoryname to be used in the DATA partition (i.e. TRNDATA, DELETE etc.)
ArgFil holds the filename, usually an INR followed by the fileextension
all errorcodes are exported to the caller.

corresponding functions: StreamGetNameInSubDir, StreamGetSubDirPath, StreamLoadInSubDir


sub SysDump( in CancelText text ) global

function to store an image of the currently active transaction and issue a
message. Additionally a rollback is issued and the transaction is terminated.
Designer have the optional choice to continue the transaction for debugging purpose.


sub TlbGenViewDocu global

Display general application documentation


sub TlbHardcopy global

Creates a printed hardcopy of the currently visible panel.


sub TlbHlpDisplay global

Display context sensitive field help on hotkey / toolbar


sub TlbSaveImage global

Stores a DSP-imagefile of the currently active transaction.


sub TlbSysDump global

issues a dump of the currently active transaction.


sub TlbTrnViewDocu global

Display transaction documentation of current transaction


function AtpGetFrameName : text static

Rule to return the currently loaded ATP transaction

corresponding function: AtpLoad


function prepareXmlForHtml( in ArgXML text ) : text static

Conversion to a “html-view-field-handable” XML (removes the XML-Header and adds border to the table - if present)
copied from “SYSWRN.SysWarningSet”
ArgXML: XML-Content that should be formated into HTML-Like content
Returns: HML-Like content


sub AtpLoad( in ArgTrn text ) method

Routine to load the current transaction to the passed value and thus change the current
active ATP / ETP profile up to the next EtyLoad or to the next chain.

ArgTrn holds the transaction name of the required transaction
If the entity is not found the not-found error code is returned

This rule is intended to be used in generic transaction which are acting on behalf of other transactions

corresponding function: AtpGetFrameName


function IsDemoSystem : boolean static

Function to check whether the Application is et to Demo Mode


function DateFromString( in ArgDateTxt text, in ArgFmt text ) : datetype global

Returns TradeDesign date from string ArgDateTxt given in any format
ArgDateTxt - string with date
ArgFmt - optional parameter with expected date format e.g.: DDMMYYYY, YYMMDD, DD-MMM-YY etc
if date does not fit the given format - error 114 will be raised
if format is not provided - the function will try to guess format
if date can't be unambiguously resolved - errorcode 115 will be raised

For datetime conversion use correspondent function: DateTimeMakeFromString

Available separators are: “/”, “-”, “.”, “ ”, no separator
If there is no separator, month must be numeric, otherwise both textual and numeric month supported
The date string might contain week day which is ignored
The day might contain English suffix (i.e. 1st, 2nd, 3rd, 4th, etc) which is ignored

If date parse failed - returns errorcode 110

If date does not contain Year (e.g. 01/01 or January 1st) - the year is defaulted with today's year
If year is not complete (e.g. 31/12/20) the year will be complemented according to Swift rule:

79 - 19xx

⇐ 79 - 20xx

If date does not contain month and/or day - month/day are defaulted with 01 January
and negative errorcode -110 raised

The input string can be in any of the following formats:

DD/MM/YYYY
DD/Jan/YYYY
YYYY-MM-DD
YYYY-APR-DD
MM/DD/YYYY
MM/DD/YY
YYYY/MM/DD
YYYY/December/DD
YY/MM/DD
YY/Dec/DD
DD/MM/YY
DDMMYYYY
MMDDYYYY
DDMMYY
MMDDYY
YYYYMMDD
YYMMDD
DD January YYYY
January DD YYYY
YYYY January DD
January 25th


function DateTimeFromString( in ArgDateTxt text ) : datetime global

Extracts TradeDesign datetime format from timestamp text ArgDateTxt
Datetime returned is in the current timezone of the system

Timestamp can be in any format
If datetime cannot be retrieved - errorcode will be raised and NULLDATETIME returned

If timestamp does not contain some data, the missing data will be defaulted to epoch start timestamp
1970-01-01T00:00:00Z
In the current system timezone tdContextTZSYSTEM


Correspondent function to get Date only: DateFromString


function getallNETTVersion : numeric static

Function returns the version of the connected allNETT/RIVO
If no specific version is configured in DBISYS, function will return an empty value
Currently ONLY available allNETT/RIVO version is version 6.4, thus there is no need to use this function.


function IsAlternativeComplianceActive : boolean static

Function to check whether the Alternative Compliance Check is active


function SqlGetInClause( in ArgStm stream ) : text static

This function converts given stream ArgStm into SQL clause for IN usage


sub SptAddToInfTxt( in ArgTxt text ) global

Rule to add the passed text to \SYSMOD\SPT
ArgTxt a textblock to be added to the current content of INFTXT
If the resulting text is not empty and the display flag is not set it will automatically be set to “1”


function GetRegionForEntity( in ArgEty ETY ) : text global

Returns the 4 digit Region Code from Entity Group the passed ETY is linked to


function IncSPTRemappingNeeded( in ArgSPT SPT, in ArgFrm text ) : boolean global

Returns true in case the passed incoming SPT (message) requires to be remapped because it had been mapped to a different transaction than the one it should be loaded with
This might happen in case a pending incoming SPT is patched to be picket up with another transaction without using SPTRER transaction
SPT holds the frame to which the last mapping had been executet in SPT\MAPFRM.
Re Mapping is required in case
- MAPFRM and targetframe are not empty AND
-Targetframe <> SPTROU AND
- MAPFRM <> <MEMO> AND
- MAPFRM <> SPT\FRM AND
- SPT\sTA is incoming


function IsTarget2Active : boolean static

Function to check whether the Swift Release November 2020 is active
Date effictive of the update is November 22, 2020.
Date effective going-live of T2 RTGS postponed by ECB to 20-March-2023


function IsTFaaSVersion : boolean static

Function to check whether the current installation is a TFaaS installation or not


function SqlLitLower( in ArgTxt text ) : text global

Used to create a literal converted to lowercase to be used in sql.
Intended to enable SQL-expressions defining a case insensitive search.
The literal has to be passed without the usual necessary single quotes.
single quotes passed as part of the literal are doubled to keep the
sql errorfree and to enable searching for single quotes.


function IsSwiftXMLActiveX : boolean static

Not needed yet, as also after November 2025 DOKA must be able to send Swift FIN MT and Swift FINplus MX messages.
A FINplus MX (XML only) support is not announced by Swift so far.


function IsSwiftXMLPaymentsActive : boolean static

Function to check whether the Swift XML Payment Release is active
Date effictive of the update is November 23, 2025.


function IsUETR( in ArgUETR text ) : boolean global

returns TRUE if the passed agument is determined as UETR


sub SendExtEvent( in ArgButton text, in ArgModule text, in ArgUserAction text ) static

Sends an event to Totango to track predefined user actions. Only active in SaaS environments
ArgButton Button which had been clicked (if any)
ArgModule Module name - used by CustomerSucessTeam as logical module. Valid content e.g. “Administrator”, “Menu”, “Interface”
ArgUserAction Totango User Action to track, e.g. “added”, “deleted”, …


function IsStructuredInfoActive : boolean static

Function to check whether the “Structured Info and Attachments” is actived (DBISYS)


function IsTFaaSUser : boolean static

Function to check whether the current user is a TFaaS user
On TFaaS systems all customer user have to be defined as TFaaS user, Surecomp users are not marked as TFaaS user


function UseOIDC : boolean static

Function to check whether the current installation uses OIDC or not


sub SetUseOIDC static

Function to set that current installation uses OIDC


function HlpTextBreakLongLines( in ArgTxt text ) : text static

function to break longer lines of a help text into multiple lines

ArgTxt holds the HTML-Version of the text to be shown with then TD command ShowHelpText

This function support the indentation of lines following a line starting with “- ” up to
another line starting with “- ” or an empty line or a horizontal rule ( =<hr> ) line

The rule assumes that each text line ends with <br> followed by a CR


sub DeleteSectionFromStream( inout ArgStream stream, in ArgStartLine numeric, in ArgEndLine numeric ) global

removes all lines (including ArgStartline and ArgEndLine) from passed ArgStream
ArgStream = stream from which a section of lines should be removed
ArgStartline = first line of the section that is removed from the ArgStream
ArgEndLine = last line of the section which is removed from ArgStream


sub SetStyleBut ( inout ArgBut field, in ArgIcoPreFix text, in ArgIcoPstFix text ) static

Sets the postfix of an bitbutton icon (usually empty or “_” followed by a color name) in the values of that field
ArgBut BitButton field for which values are to be set
ArgIconPrefix : Prefix of the icon file name used to identify it in the values
ArgIcoPstFix : Postfix of the icon file name.
All icon files <ArgIcoPreFix><ArgIcoPstFix>.png have to exist in frame directory with same size and the file ArgIcoPreFix.png has to be set in the values of ArgBut to define the bitbutton


Modules

Module class Instance Comment
SSN SSN This instance of SSN holds the information about the currently
executing session itself and should not be modified by the
application.
USR USR
SPT SPT
SLG SLG
HLP HLP
EVT EVT
FRMSTK FRMSTK
SYSPTH SYSPTH
ETY ETY
TMPSTM TMPSTM This instance might freely be used and should always be cleared after usage to avoid storage of big blocks of unused data.
SYSTTG SYSTTG
SYSKCK SYSKCK
SLGNOI SLGNOI
SYSSDB SYSSDB
SYSTRC SYSTRC
NTFMOD NTFMOD
ATP ATP
ETP ETP
STGMOD STGMOD
ORD WRKORD
SYSMNU SYSMNU
QUE QUE
ATP WRKATP
ETP WRKETP
SLA WRKSLA
SLE WRKSLE
USG USG
SMLLGN SMLLGN