1 Reply Latest reply: Aug 16, 2011 9:41 PM by Andrey Uryukin RSS

Characteristic Relation with derivation on Exit class is not working

Pundari PVP
Currently Being Moderated

Hi,

 

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.

 

 

Thanks.

 

Edited by: Pundari_PVP on Aug 9, 2011 8:18 AM

 

Edited by: Pundari_PVP on Aug 9, 2011 8:32 AM

  • Re: Characteristic Relation with derivation on Exit class is not working
    Andrey Uryukin
    Currently Being Moderated

    Hi.

     

    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

     

    Regards.