cancel
Showing results for 
Search instead for 
Did you mean: 

How to solve [2620] executor: plan operation failed;ceVerticalUnionPop::executePop:?

alexander_stettler
Participant
10,703

Hello,

I'm trying to implement an AMDP field routine but when I execute the DTP the DTP is running into an error: column store error: search table error: [2620] executor: plan operation failed;ceVerticalUnionPop::executePop: the input ... ADSO DPP02_A02 000 E RS_EXCEPTION column store error: search table error: [2620] executor: plan operation failed;ceVerticalUnionPop::executePop: the input ... 20.180.307.103.703,8218510

Does anyone of you knows what this message is saying?

The corresponding AMDP looks like the following:

  types:
    begin of TN_S_IN1,
       DF_PLNQUNT type /BI0/OIDF_PLNQUNT, " InfoObject: 0DF_PLNQUNT
       MATERIAL type /BI0/OIMATERIAL, " InfoObject: 0MATERIAL
       PLANT type /BI0/OIPLANT, " InfoObject: 0PLANT
       RECORD type C length 56,
       SQL__PROCEDURE__SOURCE__RECORD type C length 56,
    end of TN_S_IN1 .
  ...
  types:
    begin of TN_S_OUT1,
       /BIC/XPP02PVAL type /BIC/OIXPP02PVAL, " InfoObject: XPP02PVAL
       RECORD type C length 56,
       SQL__PROCEDURE__SOURCE__RECORD type C length 56,
    end of TN_S_OUT1 .
METHOD PROCEDURE BY DATABASE PROCEDURE FOR HDB LANGUAGE SQLSCRIPT OPTIONS READ-ONLY using /BIC/AWMM01W0100 /BI0/PPLANT.
    outtab = SELECT COALESCE ( mbew."PRICE_STD" / mbew."PRICE_UNIT" * inTab."DF_PLNQUNT", 0) as "/BIC/XPP02PVAL",
                    inTab.RECORD,
                    inTab.SQL__PROCEDURE__SOURCE__RECORD
               FROM :intab as inTab
               left outer join ( SELECT mb."MATERIAL",
                                        pl."PLANT",
                                        mb."PRICE_STD",
                                        mb."PRICE_UNIT",
                                        mb."CURRENCY",
                                        MAX(mb."FISCPER")
                                  FROM "/BIC/AWMM01W0100" as mb
                                  inner join "/BI0/PPLANT" as pl on pl."COMP_CODE" = mb."COMP_CODE"
                                  where pl."OBJVERS"  = 'A'
                                  group by mb.MATERIAL, pl."PLANT", mb.PRICE_STD, mb.PRICE_UNIT, mb.CURRENCY
                                ) as mbew on inTab."MATERIAL"   = mbew."MATERIAL"
                                         and inTab."PLANT"      = mbew."PLANT";

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

If I set a break point and execute the AMDP, everything is looking fine => outtab is showing some data in the table preview within the debuger.


View Entire Topic
wzeller1
Explorer
0 Kudos

We had the same error message "[2620] executor: plan operation failed;ceVerticalUnionPop::executePop" and solved it. The complete error message (found in SM21, because DTP process monitor trimed the error message) was"[...] the input columns 0CURRENCY and ZCUS_TYPE have different sizes: 1191106 and 1191103". With that and the "VerticalUnionPop" we found the cause of error. We had a very simple Left Join in field routine to lookup masterdata. We know the recommendation from Torsten Kessler

"9.1.7.3 Recommendations regarding AMDP field routines

We do not recommend to use field routine to implement complex logic like reading additional data or implement complex business logic." source

but we didn't thought, that our simple Left Join falls into the "complex logic" category. The curious thing is, when the error occurs we retry the DTP some minutes later and we get no error. We can't explain that behavior.

Final solution and recommendation for us (and maybe others): avoid any Join in AMDP field routine and use standard transfer rules (for instance "Masterdata lookup")