Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Release R15.000
June 2015
Warning: This document is protected by copyright law and international treaties. Unauthorised reproduction of this document, or any portion of it, may
result in severe and criminal penalties, and will be prosecuted to the maximum extent possible under law.
Table Of Contents
Introduction 3
Overview 3
Conventions Used in this Document 3
Example OFS Requests 3
Other Features 5
Multi-company processing 5
Message Logging 5
API Hooks 5
Security and OFS 5
Encryption of Message 6
Wrapping Messages with Tags 8
Request Syntax Overview 9
Transactions 9
Enquiries 12
Clearing 12
XML reports 13
Response Syntax Overview 14
Transactions 14
Enquiries 15
Clearing 15
XML Reports 15
Setup 18
TEC OFS Interface - Response 19
Using OFS from API Code 20
Using OFS.POST.MESSAGE 20
TSA Service Definition 20
Adding OFS Bulk Requests via API 21
OFS special characters 26
Summary: What this How To will show you 26
Prerequisites 26
Environment 27
Overview 27
Scenarios: 27
Conclusion 29
OFS special characters 30
Summary: What this How To will show you 30
Prerequisites 30
Environment 30
Overview 30
Scenarios: 30
Conclusion 33
Intended Audience
This User Guide is intended for the use of Internal Temenos users and Clients.
Overview
OFS (Open Financial Service) is an interface that allows transactions and queries requests to be processed by T24.
This information may be found in other chapters of the T24 Connectivity User Guides, and XML schema information may be found at
www.temenos.com.
OFS is the single point of entry to T24. Every single interaction with T24 is driven through OFS.
l Transactions
l Enquiries
l Clearing
l XML report requests
Transaction Request
ABBREVIATION,,TEST.USER/654321,SEC,ORIGINAL.TEXT=SECTOR
ABBREVIATION,/I,TEST.USER/654321,SEC,ORIGINAL.TEXT=SECTOR
ABBREVIATION,,TEST.USER/654321/DE0010001,SEC,ORIGINAL.TEXT=SECTOR
ABBREVIATION,//VALIDATE,TEST.USER/654321,SEC,ORIGINAL.TEXT=SECTOR
ABBREVIATION,OFS.VERSION,TEST.USER/654321,SEC,ORIGINAL.TEXT=SECTOR
ABBREVIATION,OFS.VERSION //VALIDATE,TEST.USER/654321,SEC,ORIGINAL.TEXT=SECTOR2
ABBREVIATION,/D,TEST.USER/654321,SEC
HELPTEXT.MENU,/D,TEST.USER/654321,OFS.TEST
HELPTEXT.MENU,,TEST.USER/654321,OFS.TEST,APPLICATION:1:=SECTOR,DESCRIPT:1:=Sector
HELPTEXT.MENU,OFS.DEMO/I/PROCESS,TEST.USER/654321,OFS.TEST,APPLICATION:1:-
:=SECTOR,DESCRIPT:1:=Sector,APPLICATION:2:=INDUSTRY,DESCRIPT:2:=Industry,DESCRIPT:2:2=Industrie
The following example relates to a foreign exchange swap transaction where information is required for both legs of the swap. The _ (under-
score) character is used to delimit information for record 1 from record 2:
FOREX,GTS//PROCESS,GTUSER/QWERTY,,DEAL.TYPE-
=SW,COUNTERPARTY:-
:=100076,CURRENCY.BOUGHT::=USD,AMOUNT.BOUGHT::=500000,CURRENCY.SOLD::=GBP,SPOT.RATE::=1.6,DEAL.DATE::=20011026,VALUE.DATE.BUY:
1M,FORWARD.RATE::=_ 1.55,REVALUATION.TYPE:_ 1:=_ IN,NOTES:1_ 1="first leg"_ "second leg",NOTES:_ 2:_ "second-
line":VALUE.DATE.BUY::=20011028_1M,
The following example relates to an AA Arrangement Activity update. To populate An AA.ARR.<PROPERTY CLASS> within an arrangement,
the convention PROPERTY:N:1=<Property to be updated>,FIELD.NAME:N:1=<Field from this property to be updated>,FIELD.VALUE:N:1-
1=<Value to be placed in this field> should be followed, as in the below example:
AA.ARRANGEMENT.ACTIVITY,OFS/I/PROCESS,INPUTT/123456,,ARRANGEMENT=NEW,ACTIVITY:1:1=LENDING-NEW-
ARRANGEMENT,EFFECTIVE.DATE:1:1-
=20130718,CUSTOMER:1:-
1=100100,PRODUCT:1:1=PERSONAL.LOAN,CURRENCY:1:1=USD,PROPERTY:1:1=COMMITMENT,FIELD.NAME:1:1=AMOUNT:1:1,FIELD.VALUE:1:1=1000,FIE
Enquiry Request
ENQUIRY.SELECT,,TEST.USER/654321,CURRENCY-LIST
ENQUIRY.SELECT,,TEST.USER/654321,CURRENCY-LIST,@ID:LK=C...
XML.REPORT,XML,TEST.USER/654321,XML.CURRENCY.LIST
TEC
TEC.OFS.INTERFACE,,TEST.USER/654321,,FLUSH
TEC.OFS.INTERFACE,,TEST.USER/654321,,API.RESPONSE,MY.API,VERSION ROUTINE,1234
Clearing Request
CLEARING,,TEST.USER/654321,OFS.DEMO,TXNREF1,33537,USD,10000,C,SALARY_TXNREF2,32549,USD,8000,C,SALARY
CLEARING,,TEST.USER/654321,OFS.DEMO,TXNREF1,33537,USD,10000,C,SALARY_,32549,USD,8000,C,SALARY
Multi-company processing
OFS will allow transactions to be processed in any company that the user has access. The company for the transaction can be specified as part
of the message syntax.
Message Logging
A logging facility is provided for all messages for a particular service. This can log all traffic, exception messages, communication start and end
or no messages. Full history of each message can be recorded if required. The details are stored in the OFS.REQUEST.DETAIL file if message
audit is required. If message auditing is required, full details of the message and subsequent processing statuses will be recorded. Message log-
ging is configured in OFS.SOURCE.
API Hooks
Processing can be customised to suit specific requirements by the use of API at various points within the processing path. This is configured in
OFS.SOURCE. User routines can be incorporated at the following points:
Note: A valid sign on and password must be supplied before the online server can accept a message.
Once validated all access to data is controlled using the standard SMS definitions specified in the user profile.
It is possible to block applications from being used with OFS by any user. This may be done by adding NOFS to the ADDITIONAL.INFO field
of the PGM.FILE for the application to be blocked.
Note: As the PGM.FILE application controls various aspects of the running of applications; changes should only be made with the
utmost caution. While adding .NOFS to the ADDITIONAL.INFO field will simply prevent the use of OFS on that application, other
changes could damage the integrity of the system.
Encryption of Message
OFS.SOURCE
There are two fields in OFS.SOURCE which handle encryption: OFS.MESSAGE.DECRYPT & DECRYPT.KEY
If OFS.MESSAGE.DECRYPT is set to ‘Yes’, then a valid record in OFS.DECRYPT.KEY is required which contains the necessary information for
Decryption.
OFS.DECRYPT.KEY
The MSG.DECRYPT.KEY field contains the key with which the decryption will take place. The field CIPHER.METHOD holds the desired
Decryption method.
The facility of Encrypting and Decrypting a message in JBASE is handled by using the ENCRYPT and DECRYPT commands respectively.
This is done by adding to the start of a message a tag packaged between < > signs and repeating the tag packaged between </ >. The ‘/’ sign
indicates the end of the message, c.f. XML tags.
Example:
<MSG1>ABBREVIATION,INPUTT/******,SEC,ORIGINAL.TEXT=SECTOR</MSG1>
In the example above the confirmation message returned will also be prefixed with <MSG1> and suffixed with </MSG1>.
OFS uses a comma delimited message syntax. Here, the components of the message are colour coded so that it is easier to identify the com-
ponents in the following examples:
Operation
User Information
Contains the details of the T24 user that will execute the transaction passed to T24, including sign on name, password and company code
delimited by the / character in the following syntax:
USER.NAME/PASSWORD/COMPANY
The company is optional. Hence both of the below examples are valid:
TEST.USER/654321/GB0010001
TEST.USER/654321
When no company is specified, the default company for the user will be used.
Replace option
There is a special option which can be used but with due care, that will allow records to be cleared and re-input. For example replacing a multi-
value set containing 5 records with a new set containing only 3.
If used the preceding / characters need to be included with ALL MANDATORY fields.
CUSTOMER,/I/PROCESS//0,TEST.USER/654321/GB0010001///1,100966,MNEMONIC=AIRFRG,SHORT.NAME=AIRBOURNE FRIEGHT,NAME.1-
=AIRBOURNEFRIEGHT,STREE-
T=3101WESTERN,TOWN.COUNTRY=SEATTLE,RRELATION.CODE:1=1,REL.CUSTOMER:1=100300,SECTOR=2001,ACCOUNT.OFFICER=1,INDUSTRY=1000,TARGET
NATIONALITY=US,CUSTOMER.STATUS=1,RESIDENCE=US,LANGUAGE=1
CUSTOMER,/I/PROCESS//0,TEST.USER/654321////1,100966,MNEMONIC=AIRFRG,SHORT.NAME=AIRBOURNE FRIEGHT,NAME.1-
=AIRBOURNEFRIEGHT,STREE-
T=3101WESTERN,TOWN.COUNTRY=SEATTLE,RRELATION.CODE:1=1,REL.CUSTOMER:1=100300,SECTOR=2001,ACCOUNT.OFFICER=1,INDUSTRY=1000,TARGET
NATIONALITY=US,CUSTOMER.STATUS=1,RESIDENCE=US,LANGUAGE=1
These are specific to the type of request. Refer to the following sections for more detail.
Transactions
In this section we refer to the following message:
Operation
Any valid T24 application or abbreviation is permitted.
Options
VERSION/FUNCTION/PROCESSING FLAG
Where no FUNCTION is specified, it defaults to I. Where no processing flag is specified, it defaults to PROCESS. VALIDATE indicates the all
normal processing takes place without actually updating the database, an example use of which would be to return all default fields. PROCESS
indicates that the message is to be committed to the database.
Note: Care should be taken when using the V function in OFS as this may cause long running processes to be invoked.
Note: BUILD” and “POPULATE” are OFS operations which are set in Browser XML requests. Front end will set this OFS$OPERATION
based on the user’s action in Browser. It has nothing to do with plain OFS message.
ID Information
Specifies the transaction reference to be used, and must be a valid key to the application being invoked. If this is left blank, this can be auto-
matically allocated for new transactions by those applications that support this feature.
TRANSACTION.ID/MESSAGE.ID
TRANSACTION.ID
If specified, the id of the message being currently processed can be passed in.
Data
FieldName:MultiValueNumber:SubValueNumber=Content
Contains the data required to create/update the transaction, this is repeated for as many data items as required, each item being separated by a
‘,’ where:
FieldName must be defined in the STANDARD.SELECTION record for the application. At least one field must be specified where the function
is I.
l MultiValueNumber targets a specific multi value. If not set, then the first multi value is assumed. Not required for non – multi value
fields.
l SubValueNumber targets a specific sub value. If not set, then the first sub value is assumed. Not required for non – sub value fields.
l Content defines the data to be set to the specified field will be validated as per the standard application.
If ‘NULL’ is specified as field data, OFS will blank the field of all data. This should not be used to remove multi-values or sub values. As with
any data entry / modification in OFS, the validation rules must be observed. Should a mandatory entry field be set to NULL then an error would
be generated.
To remove multi-value or sub value fields a minus sign (-) should be entered into the field data. Only the first field needs be specified as a
minus to remove a sub or multi value set.
Note: If a ‘,’ (comma) character is required within the field content then it should be replaced by the ‘?’ (Question mark) character.
The version will also control the handling of error messages and override conditions. The following options are available:
NAU processing
There is a facility on VERSION to specify optional functionality for the processing of transactions via OFS where $NAU records exist. The field
NAU.PROCESSING in VERSION can be set according to the type of NAU processing required.
0 Reject messages.
1 Overlay message.
Refer to the section Processing NAU Records in VERSION chapter for a detailed explanation of this feature.
When using OFS to update LD.LOANS.AND.DEPOSITS with LD.SCHEDULE.DEFINE, the GTS.CONTROL field on both versions must be set
to 1, overrides and accepted and errors placed on hold.
Therefore, following the standard syntax that is used for the AA.ARRANGEMENT.ACTIVITY, the OFS script should contain PROPERTY:1:1-
1=<name of first property to be updated>,FIELD.NAME:1:1=<first field on this property to be updated>,FIELD.VALUE:1:1=<value to place
into this field>,FIELD.NAME:1:2=<second field on this property to be updated>,FIELD.VALUE:1:2=<value to place in this second field>
(repeat FIELD.NAME/FIELD VALUE updates for all fields withing property 1),PROPERTY:2:1=<name of second property to be
updated>,FIELD.NAME:2:1=<first field on second property to be updated> and so on. Below is an example:
AA.ARRANGEMENT.ACTIVITY,OFS/I/PROCESS,INPUTT/123456,,ARRANGEMENT=NEW,ACTIVITY:1:1=LENDING-NEW-
ARRANGEMENT,EFFECTIVE.DATE:1:1-
=20130718,CUSTOMER:1:-
1=100100,PRODUCT:1:1=PERSONAL.LOAN,CURRENCY:1:1=USD,PROPERTY:1:1=COMMITMENT,FIELD.NAME:1:1=AMOUNT:1:1,FIELD.VALUE:1:1=1000,FIE
Enquiries
ENQUIRY.SELECT,,TEST.USER/654321,CURRENCY-LIST,@ID:LK=C...
Operation
ENQUIRY.SELECT
Options
There are no options used for enquiries.
ID Information
ENQUIRY.ID
Data
SELECTION.FIELD:OPERAND=CRITERIA
The selection criteria with which to run the enquiry (optional) where:
SELECTION.FIELD is the name of the field to select and must be either a valid SELECTION.FLDS for the Enquiry or defined in the
STANDARD.SELECTION record for the FILE.NAME of the Enquiry.
l OPERAND is the operand for the selection, must be specified with a SELECTION.FLDS, may be EQ, NE, GE, GT, LE, LT, UL, LK, and
NR.
l CRITERIA is the data value for the SELECTION.FLDS and requested operand for the selection
Clearing
CLEARING,US0010001,TEST.USER/654321,PAYPAY,7654321,23884,USD,20000,D,NET SALARY
Operation
To process a query request, the operation must be set to CLEARING
ID Information
AC.ENTRY.PARAM.ID
The ID to the AC.ENTRY.PARAM record that is used to define the layout of the data section.
Data
Each part of the entry should be separated by the character defined in the FIELD.DELIM field of the AC.ENTRY.PARAM record. It is recom-
mended that a comma is used.
Configuration
The layout of the data section of OFS Clearing is controlled using AC .ENTRY.PARAM. For further details on configuring AC.ENTRY.PARAM,
refer to the section on the Generic Accounting Interface in the Local Clearing User Guide.
XML reports
XML.REPORT,XML,TEST.USER/654321,PXML.CURRENCY.LIST
Operation
XML.REPORT
Options
Either XML or ID. ID returns the HOLD.CONTROL key that was produced when the report was run, such that the XML can be extracted asyn-
chronously. XML will return the XML result.
ID Information
REPORT.CONTROLID
Data
Not required. It is possible to verify ENQUIRY records and have the &HOLD& ID or the entire XML message brought back in the return mes-
sage.
The application title has changed from ENQUIRY .REPORT to XML.REPORT, the OFS module will translate the XML.REPORT script and
apply it to the application ENQUIRY.REPORT.
Configuration
XML reports are configured via ENQUIRY .REPORT , where the OUTPUT.FORMAT should be set to XML and the corresponding
REPORT.CONTROL record has the FORM.NAME set to HOLD. Refer to the Enquiry user guide for more detail.
OFS uses a comma delimited response syntax. Each request type has a different response syntax detailed below.
Transactions
Overview
The response syntax for a transaction request is returned in the following format:
Transaction ID
This will either contain the id supplied initially, or if no id was supplied the next available id (if generated).
Message ID
Contains the OFS message reference of the processed message.
Success Indicator
This flag will indicate the success or failure of the request for both application and enquiry transactions. The following values can be returned:
1 Successful transaction
-1 Error encountered
Response Data
A successfully processed update will return the fully populated record as a repeating string separated by a comma in the same format as the
data passed to OFS:
FieldName:MultiValueNumber:SubValueNumber=Content
A transaction encountering errors will return the list of fields that were in error, separated by a comma, in the following formant:
FieldName:MultiValueNumber:SubValueNumber=ErrorMessage
Where:
l FieldName must be defined in the STANDARD.SELECTION record for the application. At least one field must be specified where the
function is I.
l MultiValueNumber targets a specific multi value. If not set, then the first multi value is assumed. Not required for non – multi value
fields.
l SubValueNumber targets a specific sub value. If not set, then the first sub value is assumed. Not required for non – sub value fields.
l Content defines the data to be set to the specified field will be validated as per the standard application.
l ErrorMessage contains error message generated for the associated Field name, Multi Value, sub value. The message will be returned
with variable elements expanded.
Overview
The data returned from enquiry will be in the following format, in three sections:
Where:
l Identifier - contains an identifier to determine which element of the header / caption is being defined. May be alphanumeric defined in
the underlying ENQUIRY.
l Text - Contains the text for the corresponding identifier.
Column Details
Identifier1:format type1:label1/Identifier2:format type2:label2
@ID::Key/CCY.NAME::Name
Where :
l Identifier - contains the column identifier, which can be a name or a number. Each column to return information must be defined in
the underlying ENQUIRY.
l Format type - contains the type of data contained in the column. This information can be used for formatting. Possible types include
DATE (formatted using standard date formats) and AMOUNT (formatted to an amount with decimal format).
l Label - indicates the name of the column used as the column header.
Response Data
Row value <TAB>
Each row will be comprised of a number of columns defined in the previous element of the message data. For each column the value will be
returned delimited by the <tab> character. Each row is delimited by a ‘,’.
The returned fields are separated by the tab (ASCII 9) character with lines separated by ‘,’ (comma).
Clearing
Currently the Clearing interface does not give a response for a successful transaction.
XML Reports
Overview
REPORT ID/MESSAGE REFERENCE/SUCCESS INDICATOR/RESPONSE DATA
XML.CURRENCY.LIST //1/<T24>…</T24>
Report ID
The ID of the report that was run.
Message Reference
The OFS message reference, where applicable.
Success Indicator
l 1 indicates the request was processed successfully.
l -1 indicates that an error was encountered, in which case the Response Data holds the error message
Response Data
Contains either the key to the &HOLD& table, e.g. 137740002641133401, where the contents of the report has been stored, or the actual XML
response itself. An example of the XML output is shown below in “pretty print” format. For further information refer to the OFSML schema doc-
umentation.
<ofsmlHeader>
<requestId>0001159949.01</requestId>
<requestTimeStamp>2006-SEP-22T16:39:09Z</requestTimeStamp>
<requestExpiryTime>P0Y0M1DT0H0M0S</requestExpiryTime>
</ofsmlHeader>
<serviceResponse>
<ofsReport docType="XML.REPORT">
<dataSet name="CURRENCY-LIST">
<record>
<field index="1">CAD</field>
</record>
<record>
<field index="1">CHF</field>
</record>
</dataSet>
</ofsReport>
</serviceResponse>
Before OFS can be used, some simple configuration of OFS.SOURCE is required. Refer to the appendix for details of the fields that are on
OFS.SOURCE and their use.
Note: This deals only with the configuration of OFS itself. Details on the configuration of the connectivity layer (also referred to as “the
connectors” or “TOCF”) can be found in the user guide chapter “T24 Temenos Connector”.
1,ITEM.ID=API.RESPONSE,KEY=MY.API,DETAIL=VERSION ROUTINE,VALUE=1234
Success Indicator
l 1 indicates the request was processed successfully.
l -1 indicates that an error was encountered, in which case the Response Data holds the error message
Response Data
Confirms the data that was sent in the request:
ITEM.ID=PASSED.ITEM,KEY=PASSED.KEY,DETAIL=PASSED.DETAIL,VALUE=PASSED.VALUE
Using OFS.POST.MESSAGE
Do not use OFS.GLOBUS.MANAGER, OFS.REQUEST.MANAGER or OFS.PROCESSOR.MANAGER directly. These routines are internal
routines and do NOT form part of the T24 public API (and transaction boundaries will become corrupt if these routines are invoked directly).
Instead, the routine OFS.POST.MESSAGE should be used.
A TSA service has been created to process OFS messages from outside a transaction.
The local API calls OFS.POST.MESSAGE, passing the OFS.SOURCE record to use and one or many OFS messages (delimited by a value mark -
VM). The response is the key to the OFS.MESSAGE.QUEUE table.
OFS.POST.MESSAGE writes the request out the to the OFS.MESSAGE.QUEUE table, which is the trigger table for OFS.MESSAGE.SERVICE.
The service picks up the message and processes through OFS.PROCESS.MANAGER. Once processed, the record is removed from
OFS.MESSAGE.QUEUE and posted to OFS.RESPONSE.QUEUE with the same key with OFS response success/fail flag in the first field and
the actual OFS response in the 2nd field.
A second service, OFS.RESPONSE.QUEUE, purges the OFS.RESPONSE.QUEUE file according to the minutes entered into the
ATTRIBUTE.VALUE field on the TSA.SERVICE record. If a record is older than the time entered it will be deleted.
The ATTRIBUTE.TYPE and ATTRIBUTE.VALUE field have no validation on them as they are free form fields to be used for any and all
TSA.SERVICE records to contain any value that a service may require. For the OFS TSA service minutes are required in the
ATTRIBUTE.VALUE field. If a numeric value is not entered into this field records will not be purged off the OFS.RESPONSE.QUEUE file when
the same TSA service is run.
Local routines that are calling Public API should each have a valid entry in EB.API and need to be referenced in a version within the field
BEFORE.AUTH.RTN.
The local routine is then called during authorisation of a record in the specified version.
The local routine calls the public API ofs.addLocalRequest which adds the local requests into the current transaction management.
Note that local requests can only be added to the transaction management queue during the authorisation phase.
CALL ofs.addLocalRequest(ofsRequest,insertOrAppend,error)
insertOrAppend (incoming) INSERT to insert at the start of the local txn queue
ADD to add to the end of the local txn queue. This is the default method
ofs.isTxnSuccessful(status)
l Enquiries can’t be launched through local messages and the use of ENQUIRY.SELECT is not supported.
l Allowed functions in the local requests are I (Input), A (Authorize), D (Delete) and R (Reverse)
Flow Diagram
This diagram shows the OFS processing flows in detail
l Attach a local routine in version MM.MONEY.MARKET, CALLDEP to add FT message during authorisation of MM contracts.
l Attached routine will call the public API ofs.addLocalRequest to add FT message in the local queue.
This screenshot shows the FUNDS.TRANSFER transaction that has been created.
Note: Child transactions will have parent transaction ID in the audit information.
ofs.addLocalRequest
Will be used to add local OFS request during authorization stage from a routine specified in the VERSION field BEFORE.AUTH.RTN.
Arguments
insertOrAppend (incoming) INSERT to insert at the start of the local txn queue
ADD to add to the end of the local txn queue. This is the default method
ofs.initLocalRequest
Will be used to initialize the variables used in local OFS request process. It has no arugments.
ofs.localRequestExists
To check whether local queue is available or not.
Arguments
ofs.isTxnSuccessful
To check if there is any error during bulk process in the system.
Arguments
bulkProcessStatus (outgoing) returns 1 if there are no errors in the system during bulk processing
Must be set to null before callout.
I_OFS.LOCAL.PROCESS.COMMON
The following two common variables have been introduced in this insert, and it can be used in local code if needed.
The objective of this document is to illustrate the usage of replacement characters in the place of reserved characters and other special char-
acters that are supported by OFS.
Prerequisites
N/A
Overview
SPECIAL CHARACTERS IN OFS: Usage of special characters in OFS are illustrated under four categories:
a. OFS supports replacement characters, when there is a requirement to use reserved characters which has a special meaning in OFS.
The OFS reserved characters and their corresponding replacement characters are:
Scenarios:
? Question Mark:
OFS Request
SECTOR,/I/PROCESS,INPUTT/123456,700,DESCRIPTION::=CORPORATE?SECTOR,SHORT.NAME::=CORPSEC
OFS Response
700//1,DESCRIPTION:1:1-
1=CORPORATE,SECTOR,SHORT.NAME:1:1=CORPSEC,RECORD.STATUS:1:1=INAU,CURR.NO:1:1=1,INPUTTER:1:1=14499_ INPUTTER_
_OFS_TEST.TELNET,DATE.TIME:1:1=1207161236,CO.CODE:1:1=US0010001,DEPT.CODE:1:1=1
| Pipeline:
OFS Request
SECTOR,/I/PROCESS,INPUTT/123456,700,DESCRIPTION::=CORPORATE|SECTOR,SHORT.NAME::=CORPSEC
OFS Response
700//1,DESCRIPTION:1:1-
1=CORPORATE"SECTOR,SHORT.NAME:1:1=CORPSEC,RECORD.STATUS:1:1=INAU,CURR.NO:1:1=1,INPUTTER:1:1=96264_ INPUTTER_
_OFS_TEST.TELNET,DATE.TIME:1:1=1207161238,CO.CODE:1:1=US0010001,DEPT.CODE:1:1=1
^ Caret:
The ^ (Caret Symbol) is primarily used as a replacement character for the Transaction ID part of the OFS string, as shown in the e.g., below.
OFS Request
TSA.SERVICE,/I/PROCESS,INPUTT/123456,BNK^OFS.MESSAGE.SERVICE,DESCRIPTION::-
:=DESC,WORK.PROFILE::=ONE,USER::=SEAT.USER,SERVICE.CONTROL::=START
OFS Response
BNK/OFS.MESSAGE.SERVICE//1,DESCRIPTION:1:1-
=DESC,WORK.PROFILE:1:-
1=ONE,SERVER.STATUS:1:1=AUTHORISER,USER:1:1=SEAT.USER,SERVICE.CONTROL:1:1=START,DATE:1:1=20001130,STARTED:1:1=01/02/2010
14:32:03,STOPPED:1:1=23/01/2012
20:44:40,ELAPSED:1:1=17310:12:37,RECORD.STATUS:1:1=INAU,CURR.NO:1:1=6,INPUTTER:1:1=99964_INPUTTER__OFS_
TEST.TELNET,DATE.TIME:1:1=1207161244,CO.CODE:1:1=DE0010001,DEPT.CODE:1:1=1
OFS Request
SECTOR,/I/PROCESS,INPUTT/123456,700,DESCRIPTION::=CORPORATE^^SECTOR,SHORT.NAME::=CORPSEC
OFS Response
700//1,DESCRIPTION:1:1-
1=CORPORATE//SECTOR,SHORT.NAME:1:1=CORPSEC,RECORD.STATUS:1:1=INAU,CURR.NO:1:1=1,INPUTTER:1:1=99964_
INPUTTER__OFS_TEST.TELNET,DATE.TIME:1:1=1207161331,CO.CODE:1:1=US0010001,DEPT.CODE:1:1=1
A look at the OFS response clearly displays that, escape sequences used in the request are replaced by the corresponding characters in the
response.
Consider if a OFS response must display the same escape sequence characters used in the request. However the appropriate changes must
reflect in the record stored in the application. If so, then set the value SPECIAL.CHAR.CONV in the attribute field of the OFS.SOURCE record.
OFS Request
SECTOR,/I/PROCESS,INPUTT/123456,7001,DESCRIPTION::=CORPORATE^^SECTOR,SHORT.NAME::=CORPSEC
OFS Response
7001//1,DESCRIPTION:1:1-
1=CORPORATE^^SECTOR,SHORT.NAME:1:1=CORPSEC,RECORD.STATUS:1:1=INAU,CURR.NO:1:1=1,INPUTTER:1:1=87694_
INPUTTER__OFS_TEST.TELNET,DATE.TIME:1:1=1207161336,CO.CODE:1:1=US0010001,DEPT.CODE:1:1=1
OFS Request
OFS Response
BNK^OFS.MESSAGE.SERVICE//1,DESCRIPTION:1:1=USE_ O'UNDERSCORE,WORK.PROFILE:1:1-
=ONE,SERVER.STATUS:1:-
:1=AUTHORISER,USER:1:1=SEAT.USER,SERVICE.CONTROL:1:1=START,DATE:1:1=20001130,STARTED:1:1=01^02^2010
14:32:03,STOPPED:1:1=23^01^2012 20:44:40,ELAPSED:1:1-
1=17310:12:37,RECORD.STATUS:1:1=INAU,CURR.NO:1:1=6,INPUTTER:1:1=15628_ INPUTTER_ _ OFS_ TEST.TELNET,DATE.TIME:1:1-
1=1207161409,CO.CODE:1:1=DE0010001,DEPT.CODE:1:1=1
NULL passed directly as the field value, will result in an ‘INPUT MISSING’ response for the field, as NULL is ignored.
OFS Request
SECTOR,/I/PROCESS,INPUTT/123456,1011,DESCRIPTION::="\NULL",SHORT.NAME::="NULL VALUE"
OFS Response
1011/TLNT120267802617418.00/1,DESCRIPTION:1:1=NULL,SHORT.NAME:1:1=NULL VALUE,RECORD.STATUS:1:1-
1=INAU,CURR.NO:1:1=1,INPUTTER:1:1=78026_ INPUTTER_ _ OFS_ TELNET,DATE.TIME:1:1-
1=1211140450,CO.CODE:1:1=GB0010001,DEPT.CODE:1:1=1
OFS Request
OFS Response
SECTOR,TST/TEST130364677336130.02/1,RECORDS.PER.PAGE:1:1=1,FIELDS.PER.LINE:1:1=1,NO.OF.AUTH:1:1=0,
LOCAL.REF.FIELD:1:1=LOCAL.REF,REPORT.LOCKS:1:1=YES,DESCRIPTION:1:1=CONFIRM(Y/N)?,CURR.NO:1:1=2,
INPUTTER:1:1=46773_INPUTTER__OFS_TELNET,DATE.TIME:1:1=1302051002,AUTHORISER:1:1=46773_INPUTTER_OFS_
TELNET,CO.CODE:1:1=US0010001,DEPT.CODE:1:1=1
_ (underscore) ---> Used for Forex transactions for separating the legs.
// (Double slash) ---> Used for LD transactions for defining the schedules.
Conclusion
Reserved Characters (comma (,), Double quotes (”), forward slash (/)) must not be used in the OFS message directly. They must be replaced by
OFS replacement characters.
OFS replacement characters required directly in field data must be wrapped within % i.e., %|%,%^%,%?%
The special messages category ( _ and //) must not be used directly in the OFS message.
Characters apart from these namely., @,( and { can be used as the same in the OFS request.
The objective of this document is to illustrate the usage of replacement characters in the place of reserved characters and other special char-
acters that are supported by OFS.
Prerequisites
N/A
Environment
The Screen shots, functionality and workflow are based on a Model Bank R12
Overview
SPECIAL CHARACTERS IN OFS: Usage of special characters in OFS are illustrated under four categories:
a. OFS supports replacement characters, when there is a requirement to use reserved characters which has a special meaning in OFS.
The OFS reserved characters and their corresponding replacement characters are:
Scenarios:
? Question Mark:
OFS Request
SECTOR,/I/PROCESS,INPUTT/123456,700,DESCRIPTION::=CORPORATE?SECTOR,SHORT.NAME::=CORPSEC
OFS Response
700//1,DESCRIPTION:1:1-
1=CORPORATE,SECTOR,SHORT.NAME:1:1=CORPSEC,RECORD.STATUS:1:1=INAU,CURR.NO:1:1=1,INPUTTER:1:1=14499_ INPUTTER_
_OFS_TEST.TELNET,DATE.TIME:1:1=1207161236,CO.CODE:1:1=US0010001,DEPT.CODE:1:1=1
| Pipeline:
OFS Request
SECTOR,/I/PROCESS,INPUTT/123456,700,DESCRIPTION::=CORPORATE|SECTOR,SHORT.NAME::=CORPSEC
OFS Response
700//1,DESCRIPTION:1:1-
1=CORPORATE"SECTOR,SHORT.NAME:1:1=CORPSEC,RECORD.STATUS:1:1=INAU,CURR.NO:1:1=1,INPUTTER:1:1=96264_ INPUTTER_
_OFS_TEST.TELNET,DATE.TIME:1:1=1207161238,CO.CODE:1:1=US0010001,DEPT.CODE:1:1=1
^ Caret:
The ^ (Caret Symbol) is primarily used as a replacement character for the Transaction ID part of the OFS string, as shown in the e.g., below.
OFS Request
TSA.SERVICE,/I/PROCESS,INPUTT/123456,BNK^OFS.MESSAGE.SERVICE,DESCRIPTION::-
:=DESC,WORK.PROFILE::=ONE,USER::=SEAT.USER,SERVICE.CONTROL::=START
OFS Response
BNK/OFS.MESSAGE.SERVICE//1,DESCRIPTION:1:1-
=DESC,WORK.PROFILE:1:-
1=ONE,SERVER.STATUS:1:1=AUTHORISER,USER:1:1=SEAT.USER,SERVICE.CONTROL:1:1=START,DATE:1:1=20001130,STARTED:1:1=01/02/2010
14:32:03,STOPPED:1:1=23/01/2012
20:44:40,ELAPSED:1:1=17310:12:37,RECORD.STATUS:1:1=INAU,CURR.NO:1:1=6,INPUTTER:1:1=99964_INPUTTER__OFS_
TEST.TELNET,DATE.TIME:1:1=1207161244,CO.CODE:1:1=DE0010001,DEPT.CODE:1:1=1
OFS Request
SECTOR,/I/PROCESS,INPUTT/123456,700,DESCRIPTION::=CORPORATE^^SECTOR,SHORT.NAME::=CORPSEC
OFS Response
700//1,DESCRIPTION:1:1-
1=CORPORATE//SECTOR,SHORT.NAME:1:1=CORPSEC,RECORD.STATUS:1:1=INAU,CURR.NO:1:1=1,INPUTTER:1:1=99964_
INPUTTER__OFS_TEST.TELNET,DATE.TIME:1:1=1207161331,CO.CODE:1:1=US0010001,DEPT.CODE:1:1=1
A look at the OFS response clearly displays that, escape sequences used in the request are replaced by the corresponding characters in the
response.
Consider if a OFS response must display the same escape sequence characters used in the request. However the appropriate changes must
reflect in the record stored in the application. If so, then set the value SPECIAL.CHAR.CONV in the attribute field of the OFS.SOURCE record.
OFS Request
SECTOR,/I/PROCESS,INPUTT/123456,7001,DESCRIPTION::=CORPORATE^^SECTOR,SHORT.NAME::=CORPSEC
OFS Response
7001//1,DESCRIPTION:1:1-
1=CORPORATE^^SECTOR,SHORT.NAME:1:1=CORPSEC,RECORD.STATUS:1:1=INAU,CURR.NO:1:1=1,INPUTTER:1:1=87694_
INPUTTER__OFS_TEST.TELNET,DATE.TIME:1:1=1207161336,CO.CODE:1:1=US0010001,DEPT.CODE:1:1=1
OFS Request
TSA.SERVICE,/I/PROCESS,INPUTT/123456,BNK^OFS.MESSAGE.SERVICE,DESCRIPTION::=USE'_ 'O'UNDERSCORE,WORK.PROFILE::-
:=ONE,USER::=SEAT.USER,SERVICE.CONTROL::=START
OFS Response
BNK^OFS.MESSAGE.SERVICE//1,DESCRIPTION:1:1=USE_ O'UNDERSCORE,WORK.PROFILE:1:1-
=ONE,SERVER.STATUS:1:-
:1=AUTHORISER,USER:1:1=SEAT.USER,SERVICE.CONTROL:1:1=START,DATE:1:1=20001130,STARTED:1:1=01^02^2010
14:32:03,STOPPED:1:1=23^01^2012 20:44:40,ELAPSED:1:1-
1=17310:12:37,RECORD.STATUS:1:1=INAU,CURR.NO:1:1=6,INPUTTER:1:1=15628_ INPUTTER_ _ OFS_ TEST.TELNET,DATE.TIME:1:1-
1=1207161409,CO.CODE:1:1=DE0010001,DEPT.CODE:1:1=1
NULL passed directly as the field value, will result in an ‘INPUT MISSING’ response for the field, as NULL is ignored.
OFS Request
SECTOR,/I/PROCESS,INPUTT/123456,1011,DESCRIPTION::="\NULL",SHORT.NAME::="NULL VALUE"
OFS Response
1011/TLNT120267802617418.00/1,DESCRIPTION:1:1=NULL,SHORT.NAME:1:1=NULL VALUE,RECORD.STATUS:1:1-
1=INAU,CURR.NO:1:1=1,INPUTTER:1:1=78026_ INPUTTER_ _ OFS_ TELNET,DATE.TIME:1:1-
1=1211140450,CO.CODE:1:1=GB0010001,DEPT.CODE:1:1=1
OFS Request
OFS Response
SECTOR,TST/TEST130364677336130.02/1,RECORDS.PER.PAGE:1:1=1,FIELDS.PER.LINE:1:1=1,NO.OF.AUTH:1:1=0,
LOCAL.REF.FIELD:1:1=LOCAL.REF,REPORT.LOCKS:1:1=YES,DESCRIPTION:1:1=CONFIRM(Y/N)?,CURR.NO:1:1=2,
INPUTTER:1:1=46773_INPUTTER__OFS_TELNET,DATE.TIME:1:1=1302051002,AUTHORISER:1:1=46773_INPUTTER_OFS_
TELNET,CO.CODE:1:1=US0010001,DEPT.CODE:1:1=1
// (Double slash) ---> Used for LD transactions for defining the schedules.
Conclusion
Reserved Characters (comma (,), Double quotes (”), forward slash (/)) must not be used in the OFS message directly. They must be replaced by
OFS replacement characters.
OFS replacement characters required directly in field data must be wrapped within % i.e., %|%,%^%,%?%
The special messages category ( _ and //) must not be used directly in the OFS message.
Characters apart from these namely., @,( and { can be used as the same in the OFS request.