08-13-2019, 12:17 AM
(07-25-2019, 09:35 PM)mark_talluto Wrote: The value of the batch routines is that you can communicate with multiple records on multiple tables in the same call. Using batch can turn 10k record transactions into a single call.
It may be of interest to know that the basic methods feed internally to the batch routines. Looping through each request should not be any less reliable than batching your calls into a single transaction. Looping your calls will be slower.
That said, you should see 100% accuracy using either method. Did you get an error message in your message box indicating there was a problem with the five records that failed? It would be helpful if you would elaborate on your testing so we can locate possible bugs.
Calls that fail to reach the cloud are automatically cached. The next attempt to make a cloud call will flush the cache for you. If you have time, please send us a test stack so we can reproduce the issue. Thanks.
Thank you mark_talluto.
Apologies for the delay in response. Other projects have required my attention. efrain.c's code above helps but I'm trying to wrap my head around arrays and using cdb_batchUpdate. If anyone can point me in the right direction, I'd appreciate it. My script takes a variable containing lines of tab-delimited data and updates records in a table. My data looks like this (see attachment). The top row in bold contains the names of the keys.
on writeRecordToDB
global myVar
set itemDelimiter to tab
put "thisCustID" & tab & "thisFullName" & tab & "thisLastName" & tab & "thisBalance" & tab & "thisCode" & tab & "thisStatus" & tab & "thisRecordID" into theLineItems
put "CUSTOMERS" into tTable
put "cloud" into tTarget
set itemDelimiter to tab
repeat for each line DBrecordLine of myVar
repeat with itemCount = 1 to (the number of items of theLineItems)
do "put item" && itemCount && "of DBrecordLine into" && (item itemCount of theLineItems)
end repeat
put thisRecordID into tRecordID
put thisCustID into tDataA["CUSTOMER_ID"]
put thisFullName into tDataA["FULL_NAME"]
put thisLastName into tDataA["LAST_NAME"]
put thisBalance into tDataA["BALANCE"]
put thisCode into tDataA["CODE"]
put thisStatus into tDataA["STATUS"]
cdb_update tDataA,tTable,tRecordID,tTarget
end repeat -- looping through each line of myVar
end writeRecordToDB
How would I use cdb_batchUpdate to accomplish this without needing to update one record at a time? Thanks in advance.