Showing results for 
Search instead for 
Did you mean: 

Does a BW AMDP routine support the reuse of other AMDP routines?

0 Kudos

Hello World 🙂

I have a running BW transformation, with an implemented AMDP routine. This is working proper, but because I want to reuse some parts of the AMDP routine I thought I can create an ABAP helper class with an AMDP method, that can be called via the BW ADMP routine. If I just use ABAP, everything is working fine - I can reuse the defined AMDP method in other AMDP routines within my ABAP helper class, but when trying the same in the AMDP routine of my BW transformation the activation of the transformation fails:

[11806]{235050}[29/207997678] 2019-07-11 08:16:44.978701 e CalcEngine ceUtils.cpp(01616) : Utils::resolveTemplateOpReference: Could not find referenced scenario: Scenario name is empty (TemplateOp reference name: E80::SAPABAP1:/BIC/A3R23AAT4HMDVVB3UVPSE0R6W=>PROCEDURE (t -1))
[11806]{235050}[29/207997678] 2019-07-11 08:16:44.979080 e CalcEngine ceCalcScenarioModelerInternal.cpp(00149) : The following errors occurred: Inconsistent calculation model (34011)
Details (Errors):
- scenario: Failed to resolve referenced template scenario E80::SAPABAP1:/BIC/A3R23AAT4HMDVVB3UVPSE0R6W=>PROCEDURE (t -1) in node FUNCTION_CALL.4.

The procedure implementation of the AMDP routine looks like the following:

  METHOD procedure BY DATABASE PROCEDURE FOR HDB LANGUAGE SQLSCRIPT OPTIONS READ-ONLY using zcl_bi_pp07_handler=>get_current_version_amdp.
    declare lv_current_version NVARCHAR(6);

    call "ZCL_BI_PP07_HANDLER=>GET_CURRENT_VERSION_AMDP" ( EV_RETURN  => :lv_current_version );

      outTab = SELECT :lv_current_version as "/BIC/DX_CMVERS",
              FROM :intab as inTab;

      errortab = select '' as "ERROR_TEXT" ,
           '' as "SQL__PROCEDURE__SOURCE__RECORD"
         from dummy
        where dummy <> 'X';


Does anyone have an idea why it's happen? Is this a limitation of BW transformations?

Best Regards,

View Entire Topic
0 Kudos

We've had same problem and solved by re-activating both AMDP (or re-transport both in target system).