2 of 2 people found this helpful
Apologies that it has taken so long for someone to respond to your question.
The IAFTransactable interface is probably not what you are looking for in the case you have described, as it is used for making changes to system objects that can be checked in and out (Elements, Templates etc) and provides the 'sandbox' functionality. Changes to actual time series are not transactable in this sense.
When you mention preserving data integrity, can I assume that you are referring to data compression, ie you don't want compression to occur on these values? If this is the case, that is managed by configuring the appropriate point attributes on the receiving PI points (such as compdev and compressing). For lab data it's pretty standard to turn off compression for these tags, and is also common to turn the step attribute on to prevent data interpolation by clients. I would refer you to the documentation at PI Server Compression Testing for more information.
Whether you use single or bulk AF SDK calls to write data to the PI Data Archive, the compression settings on the receiving PI points will control the data compression.
Lastly, the AFBufferOption should have no impact here - this is more for data buffering when your client application is running on a client machine. Unless you need to rely on buffering for handling connectivity issues between your client and the server, or need to use N-way buffering to multiple servers then you can use the AFListData.UpdateValues overload without the AFBufferOption parameter.