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