SAP ABAP IMG Activity WRMA_DSO (BAdI: Customer-Specific DataStore Objects for RMA (Partition))
Hierarchy
BI_CONT (Software Component) Business Intelligence Content
   BW-BCT-ISR (Application Component) Retail and Consumer Goods
     RS_BCT_WRMA (Package) BW: Content IBU Retail - Retail Method of Accounting
IMG Activity
ID WRMA_DSO BAdI: Customer-Specific DataStore Objects for RMA (Partition)  
Transaction Code S_B75_08000042   (empty) 
Created on 20100330    
Customizing Attributes WRMA_DSO   Customer-Specific DataStore Objects for RMA (Partition) 
Customizing Activity WRMA_DSO   Definition of Customer-Specific DataStore Objects for RMA 
Document
Document Class SIMG   Hypertext: Object Class - Class to which a document belongs.
Document Name WRMA_DSO    

Use

This BAdI allows the replacement of the read access to DataStore objects (DSO's) of SAP's standard RMA solution by customer-defined InfoProviders in case that the standard DSO's cannot (solely) be used. Possible use cases are:

  • The RMA raw and result data DSO's (0RMA_DS01 and 0RMA_DS02) need to be split into several customer-defined info providers, because otherwise the active table would get too large.
  • Access to the trade foundation DSO's from recasting needs to be accelerated, for instance, by using an aggregate DSO instead. This affects the following standard DSO's:
    • 0RSL_DS51
    • 0RT_DS52
    • 0RT_DS53
    • 0RT_DS54
    • 0RT_DS55
    • 0LIV_DS01
    • 0ISRADS01

Note that the read access to any of the mentioned trade foundation DSO's from outside the RMA solution is not affected by an implementation of this BAdI.

The parameters of method GET_CUSTOM_DSO have the following meaning:

  • I_DSO_STD: Name of the DSO which would be accessed in standard. This parameter can have one of the following values: 0RMA_DS01, 0RMA_DS02, 0RMA_DS13, 0RSL_DS51, 0RT_DS52, 0RT_DS53, 0RT_DS54, 0RT_DS55, 0LIV_DS01, 0ISRADS01
  • IS_SITE_RANGES: Select option for site interval. Only single values and pure intervals are allowed. This means that IS_SITE_RANGES must be of one of the two following kinds:
    • SIGN = 'I', OPT = 'EQ', LOW = <single value>
    • SIGN = 'I', OPT = 'BT', LOW = <lower bound of interval>, HIGH = <upper bound of interval>
  • E_DSO_CUSTOM: Provided that your data for the site interval specified by IS_SITE_RANGES are contained in a single custom DSO, with this parameter, you return the name of your custom DSO which shall be accessed instead of the DSO given by I_DSO_STD
  • E_DSO_TABNAME: Provided that your data for the site interval specified by IS_SITE_RANGES are contained in a single custom DSO, with this parameter, you return the name of the active table of your custom DSO which shall be accessed instead of the DSO given by I_DSO_STD
  • ET_DSO_CUSTOM: Provided that your data for the site interval specified by IS_SITE_RANGES are contained in multiple custom DSO's, with this parameter, you return a table with each line of that table specifying one of the multiple custom DSO's and the corresponding active table together with the part interval of IS_SITE_RANGES which defines the data for the sites which are stored in that particular custom DSO

Note: In the case that the data for multiple sites have to be accessed at the same time the system will first sort selection criteria by site, and then provide the lower and the upper bound of the result of sorting in parameter IS_SITE_RANGES to the BAdI method, rather than calling the BAdI for each value of the multiple sites individually.

Requirements

This BAdI should be implemented only if a very high volume of data has to be kept in the info providers of trade foundation and RMA.

Standard settings

The standard info providers are used for read access.

Activities

When implementing this BAdI, you must return both the name of DSO - parameter E_DSO_CUSTOM - and the name of the active table of the DSO - parameter E_DSO_TABNAME. If the interval of sites for which data have to be read are spread across multiple customer-defined physical info providers, which have to be read instead of the standard DSO, you need to return the information about those multiple info providers in an internal table - parameter ET_DSO_CUSTOM. In that case, you have to leave parameters E_DSO_CUSTOM and E_DSO_TABNAME empty.

In case that you have to partition one of the above-mentioned DSO's SAP recommends that you define a mapping table in your system which stores for each interval of sites the name of the DSO which contains the data for those sites. In case that the intervals in that mapping table do not coincide with the intervals handed over to the BAdI method, you have to make sure that the intervals of result table ET_DSO_CUSTOM must fully comprise the interval specified in IS_SITE_RANGES. It does not matter if the intervals you return partially go beyond the interval of IS_SITE_RANGES.

Content-wise, you copy the standard DSO to your relevant custom DSO's of the mapping table. When copying the transformations underneath either 0RMA_DS01, 0RMA_DS02 or 0RMA_DS13, the source code of the standard transformation will call BAdI method GET_CUSTOM_DSO in order to make sure that all data are directed only to the relevant custom DSO without you having to adjust the standard transformation.

As for the trade foundation DSO's, SAP rather recommends that you aggregate the data in a custom DSO of the same structure, since no specific logic is in place within the underlying transformations which would take custom DSO's into account.

Example

Since DSO 0RMA_DS01 would become too large otherwise, you partition your sites in the following 5 custom DSO's per site intervals, defined in a mapping, say, ZRMA_DSO:

DSO            Site interval

ZRMA_DS91    A001 - A999

ZRMA_DS92    B001 - B999

ZRMA_DS93    C001 - C999

ZRMA_DS94    D001 - D999

ZRMA_DS95    E001 - E999

Now, method GET_CUSTOM_DSO is called with I_DSO_STD = '0RMA_DS01', and the site interval of IS_SITE_RANGES specified as A500 - B499. Then, you would read sequentially your table ZRMA_DSO, and create an entry in result table ET_DSO_CUSTOM for each record found in ZRMA_DSO, where either the lower bound or the higher bound of IS_SITE_RANGES or both lie within the interval specified by that particular record of ZRMA_DSO. Thus, you would return ET_DSO_CUSTOM as follows:

DSO            DSO_TABNAME        SITE_RANGES

ZRMA_DS91    /BIC/AZRMA_DS9100    A001 - A999

ZRMA_DS92    /BIC/AZRMA_DS9200    B001 - B999

The system would then look up in DSO's ZRMA_DS91 and ZRMA_DS92 instead of 0RMA_DS01 for records matching the selection criteria.

Business Attributes
ASAP Roadmap ID 204   Establish Functions and Processes 
Mandatory / Optional 2   Optional activity 
Critical / Non-Critical 1   Critical 
Country-Dependency A   Valid for all countries 
Assigned Application Components
Documentation Object Class Documentation Object Name Current line number Application Component Application Component Name
SIMG WRMA_DSO 0 ARS0000023 Business Content and Extractors 
Maintenance Objects
Maintenance object type E   Business Add-In - Definition 
History
Last changed by/on SAP  20100426 
SAP Release Created in 705