The central module SYSMOD holds functions and procedures to be used for many generic the following functional areas:
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
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
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.
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.
To read an address the following command should be coded:
SdbRead( ADR, ADR\INR )
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:
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.
Property | YES/NO |
---|---|
Single page frame | No |
Show toolbar | No |
Show menu | No |
Show statusbar | No |
Show hint | No |
Fit panel size | No |
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 |
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.
The field OBJNAM is usually filled by a defaultrule of the transaction with the unique key identifying the object the transaction is working on.
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.
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.
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
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 |
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
Retrieve name to be used as first argument of DDESend
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 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
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
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
Routine to create the title of an application panel
ArgCap Heading of the panel to be shown
returns the name of the calling transaction.
On top level an empty string is returned.
Determine, whether current Panel is Popuppanel
The purpose is to return the relevant panel
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, “”, “” )
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
returns the transactionname of the initial transaction
of the current session.
retrieve name of job if it was passed from caller via
FRMSTK\CURTXT or from JOBMOD in JOBTSK via SSN
Corresponding functions: IsAutostartRequested
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)
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
Retrieve the unique system name to be used as postfix when setting a DDE-Topic
Function to check whether a transaction should automatically be started
Corresponding functions: GetJobname, GetSwitch
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
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.
List of tables without INR, that use MacFromFileName in SLGNOI
Function to retrieve the currently active panel.
The intended use to pass the currently used panel to the next transaction.
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.
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.
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.
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.
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
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.
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.
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.
The Argument may be a record, a recordgroup or
a module of type SYSOBJ
The function returns true, if the INR is empty.
return point of time when processing of argCLA must be started inorder to reach argTARDATTIM
return targettime (by adding maximum duration from SLA to starting date)
return assumed duration reuqired to release specified transaction in specified class
return assumed processing duration (in minutes) for specified transaction in specified class for specified SLA and channnel
return assumed duration (in minutes) required to release specified transaction in specified class
Function to check whether any Spt-item is loaded on entry of the transaction
returns true if any spt item is loaded
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 to check whether a correction spt-item is loaded on entry of the transaction.
returns true if an corrected spt-item is loaded.
returns true if an deleted item is loaded.
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.
returns true if an incoming item is loaded. i.e. `INC`oming or `STP` straight through
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 ) )
returns true if an item for manual processing is loaded.
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.
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 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.
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.
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.
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
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
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
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
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
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
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
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
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
print document panel
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
Routine to be used in contextmenu to display the contexthelp
of the field the cursor is currently pointing to.
Routine to be used in contextmenu to edit the contexthelp
of the field the cursor is currently pointing to.
Routine to be used in contextmenu to select the debuglevel user defined Rules
Routine to be used in contextmenu to select the debuglevel basic execution
Routine to be used in contextmenu to select the debuglevel Built_in functions
Routine to be used in contextmenu to select the debuglevel Communication
Routine to be used in contextmenu to select the debuglevel user defined Rules
Routine to be used in contextmenu to select the debuglevel flow calculation
Routine to be used in contextmenu to select the debuglevel Informational
Routine to be used in contextmenu to select the debuglevel Profiling
Routine to be used in contextmenu to select the debuglevel Rules
Routine to be used in contextmenu to select the debuglevel SQL commands
Routine to be used in contextmenu to select the debuglevel SQL commands
Routine to be used in contextmenu to select the debuglevel user defined Rules
Routine to be used in contextmenu to show the information about
the field in the status line.
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
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
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
Service Routine to be used to cleanup a field which is not used
within the current context
Service routine to display an error message if passed text holds a `*`-character.
ArgBlk holds the textblock to be checked for *-character
Service routine to be called to show the standard errormessage for mandatory fields.
Service routine to be called after unsuccessful check to show the erroneous field in the status line
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
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
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
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.
Generate HLP-Key out of context menu
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
add information for output in case of interrupt
Call transaction, current transaction is pushed onto transaction stack.
Execution of LnkReturnToCaller will restart the currenttransaction.
Corresponding functions: LnkChainTransaction, LnkCallTransactionAndSetReturn, LnkLeaveAction…
Call transaction with specification of return transaction
Corresponding functions: LnkChainTransaction, LnkCallTransaction, LnkLeaveAction…
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…
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…
central handler to call all defined methods “HandleInterruptTransaction”
Routine to return to caller taken from transaction stack. That`s the normal
exit routine of a application transaction.
Corresponding functions: LnkReturnToFirst, LnkReturnToCallerKeepSPT, LnkExit
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…
function to return to the initial transaction bypassing the transaction stack.
Corresponding functions: LnkReturnToCaller, LnkReturnToCallerKeepSPT, LnkExit, LnkLeaveAction…
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.
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.
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
Release or (logically) delete specified QUE entry / entries
if argOBJSUBID =“*” entries for all OBJSUBIDs are deleted/released
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.
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 ) )
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
Releases loaded SPT-Entry and clears the local variables
deletes pending item including fileimage.
Supplies the stream holding the LoadData structure of the picked up
transaction to the application
Loads data of a pending record or record group
Procedure has to be called in the init phase of a transaction
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
reinstantiate included incoming-SPT if exists
ArgPath holds the absolute pathname of file holding SPT data
Bring SPTDATA in to registerstream to avoid duplicate storage
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.
update ArgSpt in database and write the log entry
optionally sets status of stored SPT if nonempty ArgSta is passed
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
Sets the isolationlevel to committed read for Informix or DB2 Database Systems
Sets the isolationlevel to dirty read for Informix or DB2 Database Systems
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
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
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
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
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.
Display general application documentation
Creates a printed hardcopy of the currently visible panel.
Display context sensitive field help on hotkey / toolbar
Stores a DSP-imagefile of the currently active transaction.
issues a dump of the currently active transaction.
Display transaction documentation of current transaction
Rule to return the currently loaded ATP transaction
corresponding function: AtpLoad
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
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 to check whether the Application is et to Demo Mode
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
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 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 to check whether the Alternative Compliance Check is active
This function converts given stream ArgStm into SQL clause for IN usage
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”
Returns the 4 digit Region Code from Entity Group the passed ETY is linked to
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 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 to check whether the current installation is a TFaaS installation or not
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.
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 to check whether the Swift XML Payment Release is active
Date effictive of the update is November 23, 2025.
returns TRUE if the passed agument is determined as UETR
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 to check whether the “Structured Info and Attachments” is actived (DBISYS)
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 to check whether the current installation uses OIDC or not
Function to set that current installation uses OIDC
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
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
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
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 |