Usage Dependencies in Software Components

There is a useful functionality to reuse objects from one software component in another one.

You can define this usage dependency in SLD or in ESR (software dependencies & underlying software components).

It is needed if want to enhance Standard Enterprise Services or when you create a shared pool of objects that is strictly reused and not copied into other Software Components.

  • Data Type Enhancements (to enhance SAP Data Types)
  • Central Mappings, Function Libraries

Please do not use it to share interface objects across several components/systems.

Different release/deploy/maintenance cycles in the connected systems require a clearly decoupled approach which is also reflected by the software components. In case your data types/message types/service interfaces are equal in both software components, simply copy them over. Starting from then on, you have to add a new field in both components (or you copy again by overwriting the target object).

Key takeaway: Decoupling is more important than reuse (in this case)!

No Mapping required!

As your software components will use their own namespaces you should be careful designing the messages. When you copy over the message type from SWC_1 to SWC_2, the XML Namespace in SWC_2 will automatically have the Namespace of SWC_1. To use this feature smarter, simply use a cross-component, company-wide, global namespace.

XML Namespace in the Message Type: http://<company-domain>/xi/GLOBAL
Btw: This is approach is also used by SAP to design their namespaces.

Example

  • SWC_1: OTC_RETAILER 2016 of whitepaper-id.com
    Namespace: http://whint.de/xi/OTC/RETAILER
  • SWC_2: OTC_SAP_ERP 6.0 of whitepaper-id.com
    Namespace: http://whint.de/xi/OTC/SAP/ERP
  • XML Namespace across all SWC: http://whint.de/xi/GLOBAL