If a failure occurs when the connector is processing a hierarchical business object with a Create or Update verb, one or more child business objects may not be processed.
The connector does not define a transaction as an operation on a complete hierarchical business object. Instead, the connector defines a separate transaction for each operation on individual parent or child business objects in a hierarchical business object. When the connector receives a business object with a Create verb, it first processes the parent business object and then processes each individual child business object. Under normal conditions, it begins a transaction for each business object in the hierarchy, creates the entity in the application, and commits the transaction.
If the connector succeeds in creating one or more child entities, and a failure occurs during the creation of another child entity, the connector rolls back the Create operation for this particular business object by backing out the entity. The connector continues processing child business objects until all the remaining entities have been created. Because there was a failure, the connector returns BON_FAIL to the integration broker for the overall operation on the business object. In addition, the Create or Update operation in the application may be incomplete. This scenario is similar for an Update transaction.
When the connector returns BON_FAIL, the complete hierarchical business object is placed in the unprocessed events queue. A system administrator needs to check the destination application and resolve the problem that caused the failure. Then the system administrator needs to resubmit the business object to the connector. Because the connector checks for the existence of application entities before creating them, the connector does not create duplicate data on a business object resubmission for those child business objects that have already been created.