SAP integration projects have a learning curve that lies not in C# or the protocols — it lies in SAP’s data model and the way each SAP client customizes standard objects for their particular operation.
This project required joint work with the client’s SAP functional teams to map exactly which SAP object corresponded to each scale software operation, which fields were mandatory, which had business validations and what call sequence guaranteed transactional consistency. That analysis work — invisible in the final code — is what determines whether an ERP integration works in production or generates exceptions nobody can explain.
The decision to use SOAP for transactions and OData for queries was not arbitrary: SOAP provides explicit contracts and structured error handling for operations that must be confirmed, while OData gives flexibility for ad-hoc queries that plant operators need without having to define them all at design time.