Skip to Content
Technical Articles
Author's profile photo Sayani Ghosal

Custom COPY function using AMDP

In this blog, I will explain how to implement custom COPY planning function using AMDP.

Background

Business requirement was to develop an AMDP script to copy data from source to target cube and also implement the additional features as below:

  1. While copying data from source to target, invert few key figures

e.g. source KF1 =100 -> target KF1 = -100

  1. Read customer master attributes for few fields, in case, value for attribute is null in transactional data replace attribute value with the master data.

e.g. Master data -> Emp ID Attribute to be read -> Emp Location

Desired Output:

  1. Data should be copied from Source cube to target cube and source cube data will be unchanged (standard copy functionality achieved).
  2. Customer attributes to be populated in target from master data wherever source cube data is null
  3. Key figures(where inversion is implemented) should have reverse sign in the target cube

Planning Class Creation

  1. Create a new class in SE24 transaction
  2. Logon to ABAP Modeller in SAP HANA Studio.
  3. Navigate to Package -> Source Code Library -> Classes, open the new class.
  4. Include the below interfaces in the public section of the class.
  5. Create a structure adding all info-objects of the aggregation level and define a standard table.

eg.

  1. In the public section, specify a suitable method name for the procedure and its import export parameters.

In AMDP,

i_view        : Refers to the source data set which is to be used for planning

i_view_ref  : Refers to the reference data to be used by the planning function(optional)

e_view       : Denotes the result of the planning function post all manipulations

Other than these parameters, if there is any additional parameter specific to the planning function type it can also be passed to the method.

  1. Include the below code inside the class implementation to implement the standard methods inherited by the interfaces.
  2. Implement the below method to set the reference data selection parameter (our reference data is actually the source data for copy).
  3. Implement the TREX_EXECUTE method to call the AMDP procedure from the ABAP class.
  4. Implement the AMDP procedure.
  5. Select the master data (inside the method DAPLR_DATA_COPY).
  6. Join reference data and master data to populate the output (e_view).

Planning function class is now ready!

Planning Function Creation and execution

  1. Create new planning function type in RSPLF1 and include the class created above in it.
  2. Also ensure that below parameters are set in the function type.
  3. Create new planning function using the newly created Planning function type and use it in a planning sequence with relevant filter to implement the custom COPY functionality.

 

Assigned Tags

      5 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Haishan Zheng
      Haishan Zheng

      have created a Planning Function Type based on AMDP class.

      But when the Planning Function is executed, it cannot call

      IF_RSPLFA_SRVTYPE_TREX_EXEC~TREX_EXECUTE.

      would you please tell the steps to do the type of plan function?

      Author's profile photo Anup Kulkami
      Anup Kulkami

      Nice writeup, but it is recommended to follow template code generated by program RSPLS_SQL_SCRIPT_TOOL as starting point and enhance from there.

      If you directly start coding, there is always a chance to miss a parameter or setting and then you go scratching your head, clueless about different kinds of error message and short dumps generated by PAK.

      The error handling of this PAK is terrible.

       

      Author's profile photo Sayani Ghosal
      Sayani Ghosal
      Blog Post Author

      Thank you and you are right! Its better to use the script tool to start with.

      Mainly this blog is for understanding purpose where we know what the generated code is doing rather than blindly copying it.

      Author's profile photo Johan Fourie
      Johan Fourie

      Hi.

      Thanks for this.

      Do you maybe have any info or directions on how to call HANA SQL Script in BPC11 Standard on BW4/HANA

      Author's profile photo Gopi NA
      Gopi NA

      Hi Sayani,

       

      Thanks for the document. But I see some missing interface in your code.

      METHOD IF_RSPLFA_SRVTYPE_TREX_EXEC~TREX_EXECUTE. where is this declared?

       

      I have similar request to do with custom plan function like take data from reference and do calculations with another DSO data .

      I got syntax error when I did similar to your code. any idea to resolve?

       

      Regards

      G