Skip to Content
0
Former Member
Mar 23, 2009 at 05:08 PM

Customer Exit value is no valid characteristic of InfoProvider <Agg Level>

97 Views

Dear all,

Based on the concept of the howto "howto derive a variable from another variable" i've created a customer exit.

Purpose of exit seems pretty logic, to derive a variable from another variable. 😊

The related query looks to the Profit Center Hierarchy.

In that hierarchy there are several "dummy" profit centers defined.

If one of the dummies is selected the related (parent) hierarchy node should be derived.

Profit Center has the componding object CO_Area (e.g. 1000).

So if 1000/O4005 is selected the variable should selected the parent hierachy node (1000O4)

If 1000/O6006 is selected the variable should selected the parent hierachy node (1000O6) and so on.

I have created the following code:

I program in the existing project ZHR

That program contains: EXIT_SAPLRRS0_001

That function exit contains: ZXRSRU01

==================CODE==============

&----


*& Include ZXRSRU01

&----


tables: /BI0/TPROFIT_CTR,

/BI0/HPROFIT_CTR.

DATA: L_S_RANGE TYPE RSR_S_RANGESID.

DATA: L_S_RANGE2 TYPE RSR_S_RANGESID.

DATA: LOC_VAR_RANGE LIKE RRRANGEEXIT.

case i_vnam.

<lots of code>

when 'ZV_ZCHIPAFD1_07'.

data : txtsh_save2 like /BI0/TPROFIT_CTR-txtsh,

parent_save2 like /BI0/HPROFIT_CTR-PARENTID,

node_save like /BI0/HPROFIT_CTR-nodename,

wa_prof2 like /BI0/HPROFIT_CTR.

* if i_step = '2'. "after pop-up

loop at I_T_VAR_RANGE into LOC_VAR_RANGE

where VNAM = 'ZV_ZCHIPAFD1_06'.

clear l_s_range2.

concatenate '1000' LOC_VAR_RANGE-LOW into node_save.

select single parentid from /BI0/HPROFIT_CTR into parent_save where ( IOBJNM = '0PROFIT_CTR' and

NODENAME = node_save ).

select * from /BI0/HPROFIT_CTR into wa_Prof2 where ( IOBJNM = '0HIER_NODE' ) order by PARENTID descending. "alle knooppunten

check wa_prof2-nodename(5) = '1000O'. "Alleen OKP's

check wa_prof2-tlevel ge '03'. "hoogste knooppunt level

if parent_save = wa_prof2-nodeid.

* concatenate '1000' wa_prof2-nodename4 '( 10001000_IP)' into l_s_range2-low.+

* concatenate '1000' wa_prof2-nodename4 '( 10001000_IP)' into l_s_range2-high.+

move:

wa_prof2-nodename to l_s_range2-low,

wa_prof2-nodename to l_s_range2-high,

'I' to l_s_range2-sign,

'EQ' to l_s_range2-opt.

parent_save = wa_prof2-PARENTID.

endif.

endselect.

if not l_s_range2 is initial.

append l_s_range2 to e_t_range.

endif.

=====================END CODE=================

Ok, first of all the comment you see is in Dutch.

Second!!! the code works :-)...with debugger in RSRT i get the value i want. --> 1000O4

Ok, it works partly, cause if i run the query i get the following error:

1000O4 isnt a valide characteristic of the InfoProvider ZALIP_04_

Meldingsnr. BRAIN122

Diagnosis

Customer enhancement RSR00002 or the implementation of BAdI RSR_OLAB_BADI delivers 1000O4 as the characteristic to be calculated. 1.is, however, not a valid key figure for InfoProvider ZAL_IP_04.

System Response

The information from 1000O4 is ignored.

Procedure

Check the exit.

I also changed the output to

O4

1000/O4

[ 1000/O4 ]

[ 1000O4 ]

+1000O4(Text Node)

etc.

But i always get the same error!!!

The query should be a input ready query based on aggregation level (based on multiprovider) (related to Integrated Planning).

Any ideas???

Edited by: B. de Boer on Mar 23, 2009 6:09 PM

Edited by: B. de Boer on Mar 23, 2009 6:09 PM