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
- 6 AHS
- 39 Alpha
- 161 App Studio
- 4 Block Chain
- 4 Bot Platform
- 16 Connected Risk APIs
- 47 Data Fusion
- 30 Data Model Discovery
- 608 Datastream
- 1.3K DSS
- 577 Eikon COM
- 4.9K Eikon Data APIs
- 7 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- Trading API
- 2.7K Elektron
- 1.3K EMA
- 236 ETA
- 519 WebSocket API
- 33 FX Venues
- 10 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 20 Messenger Bot
- 2 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 59 Open Calais
- 264 Open PermID
- 39 Entity Search
- 2 Org ID
- PAM
- PAM - Logging
- 8.4K Private Comments
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 20 RDMS
- 1.4K Refinitiv Data Platform
- 367 Refinitiv Data Platform Libraries
- 3 Refinitiv Due Diligence
- LSEG Due Diligence Portal API
- 3 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.1K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 10 World-Check Customer Risk Screener
- 990 World-Check One
- 44 World-Check One Zero Footprint
- 45 Side by Side Integration API
- Test Space
- 3 Thomson One Smart
- 1.2K TR Internal
- Global Hackathon 2015
- 2 Specialists Who Code
- 10 TR Knowledge Graph
- 150 Transactions
- 142 REDI API
- 1.7K TREP APIs
- 4 CAT
- 21 DACS Station
- 117 Open DACS
- 1.1K RFA
- 103 UPA
- 172 TREP Infrastructure
- 224 TRKD
- 886 TRTH
- 5 Velocity Analytics
- 5 Wealth Management Web Services
- 59 Workspace SDK
- 9 Element Framework
- 5 Grid
- 13 World-Check Data File
- Yield Book Analytics
- 46 中文论坛