while a reworked version of the Enhancement Guide is still in process, I would like to address a specfic topic that we discussed here in the development team recently: Usage of reuse component Status & Action Management in TM.
Status & Action Management (SAM) was used in the first TM releases to model and define the statuses and the status change behavior of the TM Business Objects. Corresponding SAM content can be found in the DB Tables /BSAM/* e.g. via SE16. Table /BSAM/I_STMSCH e.g. lists the available Schemas that are still in use in the TM releases 8.x and 9.x.
Nevertheless, SAM has the disadvantage that it can hardly be enhanced. Moreover, as per TM 8.0 the status management was also implemented manually to gain more flexibility, i.e. some of the statuses are simply modelled as attributes on the corresponding BO nodes. The values of these attributes are e.g. determined by related BOPF Determinations that comprise the logic for determining the status value based on the current BO (node) data.
My experience with the first TM implementation projects is that customers have quite some time enhanced the BO (nodes) with a few new attributes to refelct customer-specific statuses that are then determined by a new BOPF Determination added via the Enhancement Workbench.
That is actually the recommended procedure to enhance the status management of a TM BO, i.e. add any new status requirements as an additional status attribute to the corresponding BO node and place some coding into a new Determination to determine the required value depending on the current node data. The advantage is that it works just like any other field extension that is moreover easy to place on any required UI. Simple, fast and reliable approach.
You should not try to enhance the SAM schemas that are deliverd with the standard as this potentialy can cause quite some inconsistencies. Complicated, time consuming and therefore potentially not reliable approach.
PS: But keep in mind. Add as few Determinations as possible and as much as necessary. Group Determinations as much as possible (equal triggering condition & transactional point in time) to make sure that TM does not slow down in its performance. Don’s place a Determination per attribute…