0recvalstck

Upload: nitischo000

Post on 04-Jun-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/13/2019 0RECVALSTCK

    1/3

    PROGRAM trans_routine.

    *---------------------------------------------------------------------** CLASS routine DEFINITION*---------------------------------------------------------------------***---------------------------------------------------------------------*CLASS lcl_transform DEFINITION. PUBLIC SECTION.

    TYPES: BEGIN OF _ty_s_SC_1,* InfoObject: 0STOCKTYPE Stock type. STOCKTYPE TYPE /BI0/OISTOCKTYPE,* InfoObject: 0STOCKCAT Stock Categories. STOCKCAT TYPE /BI0/OISTOCKCAT,* InfoObject: 0BWAPPLNM Application component. BWAPPLNM TYPE /BI0/OIBWAPPLNM,* InfoObject: 0STOCKRELEV BW: Relevance to Stock. STOCKRELEV TYPE /BI0/OISTOCKRELEV,* InfoObject: 0CPQUABU BW: Amount in base unit of measure.

    CPQUABU TYPE /BI0/OICPQUABU,* InfoObject: 0PROCESSKEY BW: Transaction Key. PROCESSKEY TYPE /BI0/OIPROCESSKEY,* InfoObject: 0BASE_UOM Base Unit of Measure. BASE_UOM TYPE /BI0/OIBASE_UOM,* InfoObject: 0INDSPECSTK Indicator: Valuation of Special Stock. INDSPECSTK TYPE /BI0/OIINDSPECSTK, END OF _ty_s_SC_1. TYPES: BEGIN OF _ty_s_TG_1,* InfoObject: 0RECVALSTCK Quantity Received into Valuated Stock. RECVALSTCK TYPE /BI0/OIRECVALSTCK, END OF _ty_s_TG_1.

    PRIVATE SECTION.

    TYPE-POOLS: rsd, rstr.

    *$*$ begin of global - insert your declaration only below this line *-*... "insert your code here*$*$ end of global - insert your declaration only before this line *-*

    METHODS compute_0RECVALSTCK IMPORTING request type rsrequest datapackid type rsdatapid

    SOURCE_FIELDS type _ty_s_SC_1 EXPORTING RESULT type _ty_s_TG_1-RECVALSTCK monitor type rstr_ty_t_monitor RAISING cx_rsrout_abort cx_rsrout_skip_record cx_rsrout_skip_val. METHODS invert_0RECVALSTCK

  • 8/13/2019 0RECVALSTCK

    2/3

    IMPORTING i_th_fields_outbound TYPE rstran_t_field_inv i_r_selset_outbound TYPE REF TO cl_rsmds_set i_is_main_selection TYPE rs_bool i_r_selset_outbound_complete TYPE REF TO cl_rsmds_set i_r_universe_inbound TYPE REF TO cl_rsmds_universe CHANGING c_th_fields_inbound TYPE rstran_t_field_inv c_r_selset_inbound TYPE REF TO cl_rsmds_set c_exact TYPE rs_bool.ENDCLASS. "routine DEFINITION*$*$ begin of 2nd part global - insert your code only below this line *... "insert your code here*$*$ end of 2nd part global - insert your code only before this line *

    *---------------------------------------------------------------------** CLASS routine IMPLEMENTATION*---------------------------------------------------------------------***---------------------------------------------------------------------*CLASS lcl_transform IMPLEMENTATION.

    METHOD compute_0RECVALSTCK.

    * IMPORTING* request type rsrequest* datapackid type rsdatapid* SOURCE_FIELDS-STOCKTYPE TYPE /BI0/OISTOCKTYPE* SOURCE_FIELDS-STOCKCAT TYPE /BI0/OISTOCKCAT* SOURCE_FIELDS-BWAPPLNM TYPE /BI0/OIBWAPPLNM* SOURCE_FIELDS-STOCKRELEV TYPE /BI0/OISTOCKRELEV* SOURCE_FIELDS-CPQUABU TYPE /BI0/OICPQUABU* SOURCE_FIELDS-PROCESSKEY TYPE /BI0/OIPROCESSKEY* SOURCE_FIELDS-BASE_UOM TYPE /BI0/OIBASE_UOM* SOURCE_FIELDS-INDSPECSTK TYPE /BI0/OIINDSPECSTK* EXPORTING* RESULT type _ty_s_TG_1-RECVALSTCK

    DATA: MONITOR_REC TYPE rsmonitor.

    *$*$ begin of routine - insert your code only below this line *-*... "insert your code here*-- fill table "MONITOR" with values of structure "MONITOR_REC"*- to make monitor entries... "to cancel the update process* raise exception type CX_RSROUT_ABORT.... "to skip a record* raise exception type CX_RSROUT_SKIP_RECORD.... "to clear target fields

    * raise exception type CX_RSROUT_SKIP_VAL.

    IF ( SOURCE_FIELDS-processkey EQ '000' "Other Receipts OR SOURCE_FIELDS-processkey EQ '001' "Goods Receipt / Vendor OR SOURCE_FIELDS-processkey EQ '004' "Material Transfer / Receipt OR SOURCE_FIELDS-processkey EQ '005' "Stock Adjustment InvD OR SOURCE_FIELDS-processkey EQ '006' "Stock Adjustment Other OR SOURCE_FIELDS-processkey EQ '010' ) "Receipt from Stock Transfer AND SOURCE_FIELDS-bwapplnm EQ 'MM'* only movements which are relevant for stock control

  • 8/13/2019 0RECVALSTCK

    3/3

    * additional check if orders on hand or projekt stock* and if they are valuated (A or M) AND SOURCE_FIELDS-stockrelev EQ '1' AND SOURCE_FIELDS-cpquabu 0 AND ( SOURCE_FIELDS-stockcat IS INITIAL OR ( SOURCE_FIELDS-stockcat CA 'EQ' AND SOURCE_FIELDS-indspecstk CA 'AM' ) ). RESULT = SOURCE_FIELDS-cpquabu.* if the returncode is zero, the result will be updated

    ELSE.* if the returncode is not equal zero, the result will not be updated

    ENDIF.

    *$*$ end of routine - insert your code only before this line *-* ENDMETHOD. "compute_0RECVALSTCK*----------------------------------------------------------------------** Method invert_0RECVALSTCK*----------------------------------------------------------------------*** This subroutine needs to be implemented only for direct access* (for better performance) and for the Report/Report Interface

    * (drill through).* The inverse routine should transform a projection and* a selection for the target to a projection and a selection* for the source, respectively.* If the implementation remains empty all fields are filled and* all values are selected.**----------------------------------------------------------------------***----------------------------------------------------------------------* METHOD invert_0RECVALSTCK.

    *$*$ begin of inverse routine - insert your code only below this line*-*

    ... "insert your code here*$*$ end of inverse routine - insert your code only before this line *-*

    ENDMETHOD. "invert_0RECVALSTCKENDCLASS. "routine IMPLEMENTATION