Asking on behalf of Thomas Hall [CGI]:
"Is it possible to confirm whether you can (possibly by protocol.fillArray!) only partially fill rows in a table (and that this will cause the remaining column parameters to have fewer entries as a result), and if so, whether that would cause notifyprotocol(321, tableID, columnIndexes) to fail?"
Hi,
Allow me to elaborate a bit more on this question.
When you want to update a table (different rows and columns) in one bulk call but don't need to update the whole table, you have different options depending on the use-case.
Already note that each call mentioned below supports the use of protocol.Leave and protocol.Clear allowing to respectively keep the corresponding cell value unchanged, or clear it. So, in the below descriptions, when I say values need to be provided, such value can be protocol.Leave resulting in not updating the cell.
- protocol.FillArray(NoDelete)
- you need to provide values for each column
- you need to provide the same amount of cell values for each updated column. (1 on 1 row mapping between each column set of data)
- you don't need to update all rows, other rows will be deleted or not depending if you use FillArray or fillArrayNoDelete. Also note that FillArray also has a SaveOption argument allowing delete or not other rows.
- NotifyProtocol 220 (aka NT_FILL_ARRAY_WITH_COLUMN)
- you don't need to update all columns. you can freely chose for which columns you provide new values. Other columns will remain untouched on pre-existing rows, and will be not initialized on new rows.
- you still need to provide the same amount of cell values for each columns to be updated. (1 on 1 row mapping between each column set of data)