Skip to Content

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

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.


Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

1 Answer

  • Best Answer
    Mar 08 at 08:17 AM

    I've found a solution for the issue:

    Transaction SM21 was showing the following log entry:

    Datenbankfehler 2048 beim EXE aufgetreten
    column store error: search table error: [2620] executor: plan operation failed;ceVerticalUnionPop::executePop: the input column 0BASE_UOM has a length (1972) shorter than expected (4663).

    That indicates that the issue occur after the AMDP. But the root cause was indeed the result of the AMDP. After checking the entries on INTAB (117 entries) and OUTTAB (273 entries) it was clear that the issue is related to a SELECT statement that selects duplicate entries...
    After adapting the SQL Script, the issue don't occur.

    Nevertheless the error message is a little bit confusing! ;-)

    Add comment
    10|10000 characters needed characters exceeded

    • What was the change in the code you applied? Do INTAB and OUTTAB need to have the same amount of entries?

      I have a similar issue (OUTTAB has less entries than INTAB), but the code was working fine for several months. Must have been a SAP note which changed the behaviour.