We have a Real Time info provider on which we had BPS configuration(CR, DS and rest of the configuration).
Now we are using the same real time info provider for IP configuration. Planning functions and custom planning functions are working using IP.
But the Characteristic Relation with derivation on Exit class, is not working in IP. we have used used super class CL_RSPLS_CR_EXIT_BASE, to derive CR derivation class. and implemented IF_RSPLS_CR_METHODS~DERIVE.
to derive certian fields.
Do you have any reason why this CR derviation Exit is not working in IP, where as on the same cube BPS side it is working.
kept a break point still this exit is not triggering.
Do i need to do any additional configuration or should i deactivate BPS CR and DS? Please advise me.
Edited by: Pundari_PVP on Aug 9, 2011 8:18 AM
Edited by: Pundari_PVP on Aug 9, 2011 8:32 AM
Did you uperform the next steps:
1. Create class, let's say ZZ_CL_RSPLS_CR_EXIT_BASE with superclass CL_RSPLS_CR_EXIT_BASE.
2. Redefine DERIVE method with code like this (just implement your own algorith inside)
METHOD if_rspls_cr_methods~derive. **** infrastructure needed by the buffer: DATA: l_s_mesg TYPE if_rspls_cr_types=>tn_s_mesg, l_is_valid TYPE rs_bool. FIELD-SYMBOLS: <l_th_buf> TYPE HASHED TABLE, <l_s_buf> TYPE ANY. CLEAR e_t_mesg. **** use the buffer? **** o_use_buffer is switched on by default in the constructor IF o_use_buffer = rs_c_true. * yes: ASSIGN o_r_th_buf->* TO <l_th_buf>. ASSIGN o_r_s_buf->* TO <l_s_buf>. <l_s_buf> = c_s_chas. READ TABLE <l_th_buf> INTO <l_s_buf> FROM <l_s_buf>. IF sy-subrc = 0. IF o_r_is_valid->* = rs_c_true. c_s_chas = <l_s_buf>. RETURN. ELSE. IF e_t_mesg IS SUPPLIED. APPEND o_r_s_mesg->* TO e_t_mesg. ENDIF. RAISE EXCEPTION TYPE cx_rspls_failed EXPORTING msgid = o_r_s_mesg->msgid msgty = o_r_s_mesg->msgty msgno = o_r_s_mesg->msgno msgv1 = o_r_s_mesg->msgv1 msgv2 = o_r_s_mesg->msgv2 msgv3 = o_r_s_mesg->msgv3 msgv4 = o_r_s_mesg->msgv4. ENDIF. ENDIF. ENDIF. **** Start of derivation algorithm FIELD-SYMBOLS: <source_char> TYPE ANY. FIELD-SYMBOLS: <target_char> TYPE ANY. ASSIGN COMPONENT '/BIC/YOUR_SOURCE_CHAR' OF STRUCTURE <l_s_buf> TO <source_char>. ASSIGN COMPONENT '/BIC/YOUR_TARGET_CHAR' OF STRUCTURE <l_s_buf> TO <target_char>. <source_char> = <target_char>. l_is_valid = 'X'. **** End of derivation algorithm * update the buffer with the result: * l_s_mesg should contain a message in the 'invalid' case * l_is_valid should indicate whether derivation was possible * <l_s_buf> should contain the derived fields IF o_use_buffer = rs_c_true. o_r_is_valid->* = l_is_valid. IF o_r_is_valid->* = rs_c_true. INSERT <l_s_buf> INTO TABLE <l_th_buf>. c_s_chas = <l_s_buf>. ELSE. IF e_t_mesg IS SUPPLIED. o_r_s_mesg->* = l_s_mesg. APPEND l_s_mesg TO e_t_mesg. ENDIF. INSERT <l_s_buf> INTO TABLE <l_th_buf>. RAISE EXCEPTION TYPE cx_rspls_failed EXPORTING msgid = l_s_mesg-msgid msgty = l_s_mesg-msgty msgno = l_s_mesg-msgno msgv1 = l_s_mesg-msgv1 msgv2 = l_s_mesg-msgv2 msgv3 = l_s_mesg-msgv3 msgv4 = l_s_mesg-msgv4. ENDIF. ENDIF. ENDMETHOD.
3. Create CR base on this ZZ class and select suitable source and target characteristics