Implementing BOMs

In concrete terms, developing a BOM involves providing an implementation of the BOM interfaces appropriate to the Business Object Type that is being made transportable. There are in total eleven different types of BOM that may need to be implemented for each Business Object type. However, note that it is not generally necessary to provide implementations of all of the BOM types. Out-of-the-box implementations are provided for five of the BOM types, and, provided these are suitable, bespoke BOMs do not need to be provided for these.

The different BOM types are illustrated in the following table:

S.No

Interface

Responsibility

OOTB Implementation Available

1

AuthorisationBOM

Determine whether or not the user is authorized to act on a Business Object.

Y – OOTB implementation uses SecurityBOM to determine authorisation.

2

DeleteBOM

Delete a Business Object.

N

3

DependentBOM

Provide a list of other Business Objects upon which a Business Object is dependent.

N

4

ExistenceBOM

Determine whether or not there is a Business Object already present on the target system.

N

5

InformationalBOM

Provide various information about the Business Object

N

6

PostCommitActionBOM

Perform a Business Object - specific activity after the transaction applying a Change Set has been committed.

Y – No-Op OOTB implementation provided.

7

PreCommitActionBOM

Perform a Business Object - specific activity immediately before the transaction applying a Change Set is committed.

Y - No-Op OOTB implementation provided.

8

PreCommitActionTypeBOM

Perform a Business Object Type - specific activity immediately before the transaction applying a Change Set is committed.

Y - No-Op OOTB implementation provided.

9

RevertChangeSetConstructionHandlerBOM

Add extra Business Objects to a Change Set being created for revert purposes.

Y - No-Op OOTB implementation provided.

10

ReadAndUpsertBOM

Create an XML document with the content of a Business Object; Populate the database with the content of the XML document.

N

11

SecurityBOM

Provide the SIDs that a user is required to have in order to read and write the Business Object.

N – but if an AuthorisationBOM is provided, then a SecurityBOM does not need to be implemented.

Details on how the BOMs are used are provided in the next section (CTM Core Process Flow), which describes the CTM Core Process Flow. Additionally, for more detailed technical information on each of the BOM types, please refer to the Javadoc of the interfaces, which are all contained in the curam.util.ctm.bom package. Finally, further details on implementing the BOM interfaces are provided in the next chapter, Developing BOMs