Cannot retrive data in VBA from AdxRtHistory
Hello,
I need help with AdxRtHistory.
I request data via VBA but does not wait for data to be retrieved.
With myAdxRtHist
While (.DataStatus = RT_DS_NULL_EMPTY Or .DataStatus = RT_DS_PARTIAL) And .RunStatus = RT_RS_BUSY
Wend
End With
Could you please help me make vba wait until it gets an answer from Reuters ?
Thanks a lot,
Hamza
Best Answer
-
VBA is single threaded. While your loop is running, it occupies the thread disallowing AdxRtHistory object to retrieve and process the data. AdfinX Real-Time API is asynchronous by design. Rather than trying to trick it into producing synchronous behavior, I would strongly advise that you follow the asynchronous pattern and split your code into the procedure that requests the data and immediately exits, and OnUpdate event callback, which will be raised once the object finished retrieving the data. See the tutorial following the link below for further details and an example.
https://developers.thomsonreuters.com/eikon-apis/com-apis-use-microsoft-office/learning?content=3558&type=learning_material_itemIf however you must opt for synchronous data retrieval, then you need to make sure to include in the body of your loop the DoEvents statement to cede the execution thread and allow messages from Windows message queue to be processed. I would also strongly advise to implement a timeout to prevent an endless loop. Attached is a quick and dirty example. In production you will want to include a lot more error handling, as the synchronous retrieval pattern makes the example more error prone. I cannot help but wonder if the addition of timeout implementation based on an arbitrary timeout interval and extra error handling are worth whatever it is that you're trying to achieve by implementing synchronous retrieval.
adxrthistorysynchronous.zip0
Categories
- All Categories
- 6 AHS
- 37 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 中文论坛