Custom COPY function using AMDP
In this blog, I will explain how to implement custom COPY planning function using AMDP.
Business requirement was to develop an AMDP script to copy data from source to target cube and also implement the additional features as below:
- While copying data from source to target, invert few key figures
e.g. source KF1 =100 -> target KF1 = -100
- 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
- Data should be copied from Source cube to target cube and source cube data will be unchanged (standard copy functionality achieved).
- Customer attributes to be populated in target from master data wherever source cube data is null
- Key figures(where inversion is implemented) should have reverse sign in the target cube
Planning Class Creation
- Create a new class in SE24 transaction
- Logon to ABAP Modeller in SAP HANA Studio.
- Navigate to Package -> Source Code Library -> Classes, open the new class.
- Include the below interfaces in the public section of the class.
- Create a structure adding all info-objects of the aggregation level and define a standard table.
- In the public section, specify a suitable method name for the procedure and its import export parameters.
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.
- Include the below code inside the class implementation to implement the standard methods inherited by the interfaces.
- Implement the below method to set the reference data selection parameter (our reference data is actually the source data for copy).
- Implement the TREX_EXECUTE method to call the AMDP procedure from the ABAP class.
- Implement the AMDP procedure.
- Select the master data (inside the method DAPLR_DATA_COPY).
- Join reference data and master data to populate the output (e_view).
Planning function class is now ready!
Planning Function Creation and execution
- Create new planning function type in RSPLF1 and include the class created above in it.
- Also ensure that below parameters are set in the function type.
- 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.
have created a Planning Function Type based on AMDP class.
But when the Planning Function is executed, it cannot call
would you please tell the steps to do the type of plan function?
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.
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.
Thanks for this.
Do you maybe have any info or directions on how to call HANA SQL Script in BPC11 Standard on BW4/HANA
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?