Contribution via RFA

We are attempting (Reiffeisenbank) to use RFA API (in JAVA) to make contributions to Testing Reuters Pages (called TEST=REIF).
So far we have been able to make contributions via Excel (sending (or uploading) values from Excel to TEST=REIF).
But now we would like to replace this Excel sheet by RFA API app.Among many examples that are part of the RFA library I have found
PostingConsumer example (can be found on the path Examples\com\reuters\rfa\example\omm\) to be a possible candidate to solve our problem.
This app contains a text file called post_input.txt with tag=value pairs.Can you please explain how to set up such file so that it works the same way
as the attached excel sheet that I am sending you below? Or is there a simpler way how to make the aforementioned contribution work with RFA API?
Kind regards,
Lukas Hluze,Reiffesenbank a.s.
Best Answer
-
For the MILP your application needs to “push” your data
via the OMM Post message with the following conditions to the TREP server- Off-stream post (post via the login stream)
- The data must be in the OMM update message
- No sequence number
Then,
TREP will push that data to the MLIP server via the OMM Post message. The example of post_input.txt file for the above conditions is followingname=TPRIONIP=RAIF service= DCS_MARKETLINK type=offstream part=single sequence=false id=true UseRefreshLock=false ack=true userRightsMask=create attrib=attribInfo attribData=false payload=update_msg payloadMsgAttrib=attribInfo payloadMsgAttribData=false payloadMsgPayload=data
The RFA Java' StarterConsumer_Post example hard code a contribution data in the PostItemManager.java’s
createPayloadOMMMsg() function. You can modify it to send your data with the following code as followingif (payloadDataType == OMMTypes.FIELD_LIST){
// ***** Payload : Field List - Start ***** //
_payloadOMMEncoder.encodeFieldListInit(OMMFieldList.HAS_STANDARD_DATA, (short)0, (short)1, (short)0);
//FID 22 (BID)
_payloadOMMEncoder.encodeFieldEntryInit((short)22, OMMTypes.REAL);
double value = 0.2;
long longValue = Rounding.roundDouble2Long(value, OMMNumeric.EXPONENT_NEG4);
_payloadOMMEncoder.encodeReal(longValue,OMMNumeric.EXPONENT_NEG4);
//FID 25 (ASK)
_payloadOMMEncoder.encodeFieldEntryInit((short)25, OMMTypes.REAL);
value = -1.8;
longValue = Rounding.roundDouble2Long(value, OMMNumeric.EXPONENT_NEG4);
_payloadOMMEncoder.encodeReal(longValue,OMMNumeric.EXPONENT_NEG4);
_payloadOMMEncoder.encodeAggregateComplete();
// ***** Payload : Field List - End ***** //
}0
Answers
-
Hi Lukas
I don't see an xl attachment on this post so not sure what fields are required or it it is ATS, MARKETLINK or other Service you are trying to contribute to so I'll cover both ATS and MLIP.
Use the following entries in the post_input.txt file
MARKETLINK
- name=<RIC> i.e. TEST=REIF
- service=MARKETLINK [or appropriate for the site]
- type=offstream sequence=false payload=update_msg payloadMsgPayload=data
- 'ack=' & 'id=' should either be both true or both false.
ATS
Can use the same settings as for MLIP with Service set to the ATS Service name. ATS does also support onstream Posting and sequence numbers if these are required.
The contribution data section for this seletion is in PostItemManager class from line 973.
if (payloadDataType == OMMTypes.FIELD_LIST)
{
// ***** Payload : Field List - Start ***** //
_payloadOMMEncoder.encodeFieldListInit(OMMFieldList.HAS_STANDARD_DATA, (short)0,
(short)1, (short)0);
_payloadOMMEncoder.encodeFieldEntryInit((short)1, OMMTypes.UINT);
_payloadOMMEncoder.encodeUInt(400);
_payloadOMMEncoder.encodeAggregateComplete();
// ***** Payload : Field List - End ***** //
}This contributes the value '400' to FID 1 (PROD_PERM) which would only work with an ATS RIC.
You will need add your desired fields and values etc here ensuring the correct types are used for the fields being updated.Since the post_input.txt is read each time the app is run, in production you might want to change PostItemManager to just set the values in the code and not have it read this file each time.
/Maurice
0
Categories
- All Categories
- 3 Polls
- 6 AHS
- 36 Alpha
- 166 App Studio
- 6 Block Chain
- 4 Bot Platform
- 18 Connected Risk APIs
- 47 Data Fusion
- 34 Data Model Discovery
- 690 Datastream
- 1.4K DSS
- 629 Eikon COM
- 5.2K Eikon Data APIs
- 11 Electronic Trading
- 1 Generic FIX
- 7 Local Bank Node API
- 3 Trading API
- 2.9K Elektron
- 1.4K EMA
- 255 ETA
- 559 WebSocket API
- 39 FX Venues
- 15 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 25 Messenger Bot
- 3 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 60 Open Calais
- 279 Open PermID
- 45 Entity Search
- 2 Org ID
- 1 PAM
- PAM - Logging
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 23 RDMS
- 2K Refinitiv Data Platform
- 716 Refinitiv Data Platform Libraries
- 4 LSEG Due Diligence
- LSEG Due Diligence Portal API
- 4 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.2K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 12 World-Check Customer Risk Screener
- 1K World-Check One
- 46 World-Check One Zero Footprint
- 45 Side by Side Integration API
- 2 Test Space
- 3 Thomson One Smart
- 10 TR Knowledge Graph
- 151 Transactions
- 143 REDI API
- 1.8K TREP APIs
- 4 CAT
- 27 DACS Station
- 121 Open DACS
- 1.1K RFA
- 106 UPA
- 194 TREP Infrastructure
- 229 TRKD
- 918 TRTH
- 5 Velocity Analytics
- 9 Wealth Management Web Services
- 95 Workspace SDK
- 11 Element Framework
- 5 Grid
- 19 World-Check Data File
- 1 Yield Book Analytics
- 48 中文论坛