SAP Adapter - transaction Id ($tid)


When sending and receiving information to/from an SAP system via the SAP Adapter, a transaction Id is available in the pipeline. I’m wondering if the $tid value is generated by the SAP system or the SAP Adapter. If generated by the SAP Adapter is that transaction Id also stored on the SAP system, so that a transaction could be traced back to SAP.




Typcially TransactionID is generated by SAP System but if the SAP Adapter receives a message without a transaction ID, it can create one for the message.

Refer to SAP_Adapter_Users_Guide.pdf, it has all the relevant information about managing transactions and transaction store.




I’ve been through the documentation, but I didn’t find any clear statement of who’s responsible for generating the transaction id. When sending data to an SAP system you could ask the SAP Adapter for an id, but is that translated to a request to the SAP system for an Id, or is that an Id actually created by the adapter?


You can do both: if you use the Service, you can obtain a TID from the SAP system. By default the SAP Adapter generates a TID locally. (At least in the SAP Business Connector. Not sure about webMethods.)

But in any case: it’s only a GUID, doesn’t matter much whether it’s generated on SAP side or inside the integration server. In both cases you can track the status of the TID on SAP side by looking at one of these two DB tables:
ARFCRSTATE (if a tRFC is sent from the Adapter into the SAP system)
ARFCSSTATE (if SAP sends a tRFC to the Adapter)

In both cases the TID and corresponding status information is deleted from these tables, when the sending side performs the “Confirm TID” step. E.g., if the Adapter is the sending side.