Using IBase Components in Change Requests

Requirement

We want to display and select IBase Components in Change Requests.

Challenge

In SAP Standard IBase Components are not supported on CR level, only on CD Header level and CR Item Level (Scope Assignment Block). Therefore there is not only a UI configuration to do.

Solution

We can reuse the solution already implemented for Change Documents.

However, this is a dirty solution, because it contains one modification, one modified enhancement and two copy-past source code clones.

This is acceptable as temporary solution only till SAP will implement it in Standard. Let’s hope it will happen soon.

Steps

  1. Exchange Context Node Controller of AIC_CMCR_H/AICCMCRHeaderEF-BTREFOBJMAIN from CL_SRQM_H_BTREFOBJ_CN to CL_AIC_CMCD_IBASE_CN. Use the enhancement technique on context node controller level to do that. (We have to do it manually because of technical reasons).
  2. Generalize context node controller CL_AIC_CMCD_IBASE_CN to work with CDs and CRs. Therefore correct definition of attribute MR_VIEW_CONTROLLER from CL_AIC_CMCD_AICCMCDHEADER_IMPL to CL_SRQM_RFC_REQUESTFORCH0_IMPL (or OBJECT) by modification.
  3. Add component usage CUSolmanIbaseValueHelp to AIC_CMCR_H and implement view controller methods OP_FINDIBASECOMPONENT and EH_ONSELIBASECOMPONENT analogous to AIC_CMCD_H by copy & past.
  4. Configure Status Dependent Input Readiness (SPRO -> … -> Adjust UI objects by User Status) for UI element „IBASE_COMPONENT“ to make fields editable at the right time (usually analogous to Project ID).
  5. Configure UI and make fields //BTREFOBJMAIN/IBINSTANCE + //BTREFOBJMAIN/IBINSTANCEDESC visible and editable.
  6. Copy Control is usually working fine because the hidden fields are already used in Standard CR to store IBase Component copied from preceeding Incident.
  7. Steps 1 – 5 are needed for editability and selectability. For display only step 5 is sufficient.