Processing multiple SQL-rows at the same time using SQL Inbound adapter
I have a database which needs to be synced to another system and considering to use the SQL Inbound adapter to 'watch' the database. The other system, however, has a bulk API so I'd prefer to send multiple SQL rows in a single message to that system. The SQL Inbound adapter seems to trigger a single call (to a process or business operation) per SQL-row. However, the documentation here: http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=... in example 5 seems to suggest that if I exclude a KeyFieldName I get multiple rows in my EnsLib.SQL. snapshot and should be able to send multiple rows to the bulk API down the line. Is this a correct interpretation of the documentation?
Secondly, If I cannot process multiple rows using the SQL Inbound Adapter, I think I should use a business process to call the sql outbound adapter (which can certainly query multiple rows) and then call the bulk API. But how do a trigger this business process? Preferably i'd like to call it every 10 seconds or something. Thoughts?
Not really. KeyFieldName only affects the tracking of processed records. Example 5 shows configuration where each row is passed each time the service querying the database is ran.
SQL Inbound Adapter always passes rows one by one.
Your options are:
What option to choose? Here are several questions, which may help you:
Hey,
How do we know it's the last record in Snapshot as it is processing all records one by one
If I had to put a trace - This is the last record
What syntax would I use?
Check this discussion.