on 06-14-2016 5:31 PM
Hi All -
I am working on BW 7.5 SP02, and AO 2.3. I have FOX, and EXIT AMDP planning function, and data slice.
If data slice is active, I encountered an error if I run planning function for both FOX, and AMDP Exit planning functions.
Both planning functions run successfully if I deactivate/remove the data slice in RSPLAN.
Both planning functions encounter errors if data slice is deactivated in runtime via ABAP Logic.
The error messages are captured in below & I also captured the ST22 Log in this message.
a) LCL_CHECK_COLLECTOR~EXECUTE_CHECK-01-
b) Screen capture below
Could I kindly please ask your help to advise how to resolve this issue?
fyi, I have already had a look to both below SAP Notes, but apparently it can't be implemented to our system.
2125814 - BW-IP PAK: "merging multi value dicts is not implemented" in index server trace
2069393 - BW-IP (PAK): Error in PAK after saving planning data
Many thanks,
Daniel
Hi Daniel,
operations to be executed in HANA (via PAK) are put into a queue and the real execution is triggered on demand. If something failed it is not clear to detect the element in queue that caused the problem. One option to find out something is to follow the instructions you have already posted here in the screen shot, i.e. check the HANA indexserver traces and search for 'ple_'.
Another option is to set some debug parameters: in transaction SU3 set:
RSPLS_HDB_CHECK = HDB_IMMEDIATE
and
RSPLS_HDB_PE_TRACE = Y
The above parameters lead to sequential execution of the steps in the queue and fill some log information.
Then run the planning function using RSPLAN, you might stop in the debugger here: class CL_RSR_PE_ADAPTER, method LOG_CALL:
...
if p_s_trex_rc-return_code <> 0 or p_s_trex_rc-subrc <> 0.
check cl_rsr_pe_adapter=>sp_unit_test_mode = abap_false.
" An error occured in function module TREX_EXT_PE_...
" You may want to take a look at:
" the current PE-Session : l_s_log-pe_session
" the name of the PE-operation: l_s_log-method
" the PE error message : l_s_log-text
" the callstack : l_t_callstack
break-point. "#EC NOBREAK
endif.
...
Check the contents of the variable l_s_log-text and l_t_callstack. The latter contains the checks performed by the system.
Regards,
Gregor
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Gregor Dieckmann wrote:
Hi Daniel,
operations to be executed in HANA (via PAK) are put into a queue and the real execution is triggered on demand. If something failed it is not clear to detect the element in queue that caused the problem. One option to find out something is to follow the instructions you have already posted here in the screen shot, i.e. check the HANA indexserver traces and search for 'ple_'.
Another option is to set some debug parameters: in transaction SU3 set:
RSPLS_HDB_CHECK = HDB_IMMEDIATE
and
RSPLS_HDB_PE_TRACE = Y
The above parameters lead to sequential execution of the steps in the queue and fill some log information.
Then run the planning function using RSPLAN, you might stop in the debugger here: class CL_RSR_PE_ADAPTER, method LOG_CALL:
...
if p_s_trex_rc-return_code <> 0 or p_s_trex_rc-subrc <> 0.
check cl_rsr_pe_adapter=>sp_unit_test_mode = abap_false.
" An error occured in function module TREX_EXT_PE_...
" You may want to take a look at:
" the current PE-Session : l_s_log-pe_session
" the name of the PE-operation: l_s_log-method
" the PE error message : l_s_log-text
" the callstack : l_t_callstack
break-point. "#EC NOBREAK
endif.
...
Check the contents of the variable l_s_log-text and l_t_callstack. The latter contains the checks performed by the system.
Regards,
Gregor
Hello Gregor - Many thanks for your feedback. I will revert back to you.
Cheers,
Daniel.
Hello Gregor -
I debugged class CL_RSR_PE_ADAPTER, method LOG_CALL.
I found these below
a) I can find the Sequences what Methods have been executed,
b) L_S_LOG-TEXT = EXECUTE_CHECK, when it reached the external break-point.
Could I kindly please ask your advice what it means?
Does it mean that it has an issue when it run EXECUTE_CHECK method?
Kindly please ask your help, or pointer on this issue.
and appreciate it much,
Many thanks,
Daniel
Hi Gregor -
Thanks a lot for this one.
I query to this table.
SELECT * FROM m_tracefile_contents
WHERE FILE_NAME = 'indexserver_303.195.trc';
I downloaded, and search PLE_*
I can find this error message:
}[56/-1] 2016-06-15 03:47:31.727115 e pleRtCustPop ple_sqlscript_cppop.cpp(00569) : PleSqlscriptPop: Ptime Error ( 305 ) while executing \"CALL \"SAPABAP1\".\"ZCL_RSPLS_DS_ABAP_002C=>HANA_DS\"( \"SAPABAP1\".\"_SYS_CE_cv025_sqlscript_MappingNode_popid_514_5755ED4C5C3DAEDDE10000000AD60C1C_1194\", \"E_VIEW\" => ? )\": single-row query returns more than one row: [305] \"SAPABAP1\".\"ZCL_RSPLS_DS_ABAP_002C=>HANA_DS\": line 13 col 5 (at pos 339): [305] (range 3) single-row query returns more than one row exception: single-row query returns more than one row\n[119124]{320515}[56/-1] 2016-06-15 03:47:31.728243 e Executor PlanExecutor.cpp(00858) : plan plan7419209@sapwwp:30003 failed with rc 34051
E_VIEW\" => ? )\": single-row query returns more than one row: [
This E_VIEW table is filled up in our data slice.
My understanding is from this error, we cannot have duplicate data, isn't ?
Is my understanding correct?
I attached the my SQL Script below, and I suspect it's due of UNION ALL.
Do you know if SQL has a command to make distinct like ABAP : DELETE ADJACENT ... COMPARING... ??
Kindly please ask your feedback,
Many thanks,
Daniel
Appendix:
itab_1 =
SELECT t1."/BIC/YXPBPEID" AS "/BIC/YXPBPEID",
t1."/BIC/YXPEVNPPM" AS "/BIC/YXPEVNPPM",
t1."/BIC/YXBPEACCT" AS "/BIC/YXBPEACCT",
t1."/BIC/YXCHRTACC" AS "/BIC/YXCHRTACC",
t1."/BIC/YXPVERS" AS "/BIC/YXPVERS",
t1."CALQUART1" AS "CALQUART1",
t1."FISCPER3" AS "FISCPER3",
t1."FISCVARNT" AS "FISCVARNT",
t1."FISCYEAR" AS "FISCYEAR",
t1."/BIC/YXINPWRB" AS "/BIC/YXINPWRB"
FROM :I_VIEW t1
INNER JOIN "ZCL_RSPLS_DS_ABAP_002C=>/BIC/AYXPPMD6200#covw" t2
ON t1."/BIC/YXPEVNPPM" = t2."/BIC/YXPEVNPPM" AND
t1."/BIC/YXPVERS" = t2."/BIC/YXPVERS" AND
t1."/BIC/YXINPWRB" = t2."/BIC/YXINPWRB"
WHERE ( t1."FISCYEAR" = :LV_BASEYR AND t1."FISCPER3" > t2."/BIC/YXPMCNT" ) OR
( t1."FISCYEAR" = ( :LV_BASEYR + 1 ) AND ( "FISCPER3" + 1 ) > t2."/BIC/YXPMCNT" ) ;
itab_2 =
SELECT t1."/BIC/YXPBPEID" AS "/BIC/YXPBPEID",
t1."/BIC/YXPEVNPPM" AS "/BIC/YXPEVNPPM",
t1."/BIC/YXBPEACCT" AS "/BIC/YXBPEACCT",
t1."/BIC/YXCHRTACC" AS "/BIC/YXCHRTACC",
t1."/BIC/YXPVERS" AS "/BIC/YXPVERS",
t1."CALQUART1" AS "CALQUART1",
t1."FISCPER3" AS "FISCPER3",
t1."FISCVARNT" AS "FISCVARNT",
t1."FISCYEAR" AS "FISCYEAR",
t1."/BIC/YXINPWRB" AS "/BIC/YXINPWRB"
FROM :I_VIEW t1
INNER JOIN "ZCL_RSPLS_DS_ABAP_002C=>/BIC/AYXPPMD6200#covw" t2
ON t1."/BIC/YXPEVNPPM" = t2."/BIC/YXPEVNPPM" AND
t1."/BIC/YXPVERS" = t2."/BIC/YXPVERS" AND
t1."/BIC/YXINPWRB" = t2."/BIC/YXINPWRB"
WHERE ( t1."FISCYEAR" = :LV_BASEYR AND t1."FISCPER3" > t2."/BIC/YXPQCNT" ) OR
( t1."FISCYEAR" = ( :LV_BASEYR + 1 ) AND ( "FISCPER3" + 1 ) > t2."/BIC/YXPQCNT" ) ;
itab_3 =
SELECT t1."/BIC/YXPBPEID" AS "/BIC/YXPBPEID",
t1."/BIC/YXPEVNPPM" AS "/BIC/YXPEVNPPM",
t1."/BIC/YXBPEACCT" AS "/BIC/YXBPEACCT",
t1."/BIC/YXCHRTACC" AS "/BIC/YXCHRTACC",
t1."/BIC/YXPVERS" AS "/BIC/YXPVERS",
t1."CALQUART1" AS "CALQUART1",
t1."FISCPER3" AS "FISCPER3",
t1."FISCVARNT" AS "FISCVARNT",
t1."FISCYEAR" AS "FISCYEAR",
t1."/BIC/YXINPWRB" AS "/BIC/YXINPWRB"
FROM :I_VIEW t1
INNER JOIN "ZCL_RSPLS_DS_ABAP_002C=>/BIC/AYXPPMD6200#covw" t2
ON t1."/BIC/YXPEVNPPM" = t2."/BIC/YXPEVNPPM" AND
t1."/BIC/YXPVERS" = t2."/BIC/YXPVERS" AND
t1."/BIC/YXINPWRB" = t2."/BIC/YXINPWRB"
WHERE ( t1."FISCYEAR" > ( :LV_BASEYR + 2 + t2."/BIC/YXPYCNT" ) ) ;
e_view =
select * from :ITAB_1
UNION ALL
select * from :ITAB_2
UNION ALL
select * from :ITAB_3;
Hello Gregor -
I think my suspect is wrong.
The culprit is this SQL
SELECT "/BIC/YXPBASEYR" AS "YXPBASEYR" INTO lv_baseyr
FROM "/BIC/PYXPEVNPPM"
WHERE "/BIC/YXPEVNPPM" IN ( SELECT "/BIC/YXPEVNPPM" FROM :i_view );
Apparently from the SELECT Query, it comes back with more than 1 record.
I have used keyword TOP 1, but it's not supported .
Do you have any thought what SQL Query Command can only return 1 record?
Many thanks,
Daniel
User | Count |
---|---|
82 | |
9 | |
9 | |
7 | |
7 | |
7 | |
6 | |
6 | |
5 | |
5 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.