on 2018 Mar 07 11:05 AM
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.
Request clarification before answering.
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")
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 14 | |
| 8 | |
| 6 | |
| 6 | |
| 3 | |
| 3 | |
| 2 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.