月TOP合并层

56 篇文章 0 订阅




PROGRAM trans_routine.


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

*  Attributs
    DATA:
      p_check_master_data_exist
            TYPE RSODSOCHECKONLY READ-ONLY,
*-    Instance for getting request runtime attributs;
*     Available information: Refer to methods of
*     interface 'if_rsbk_request_admintab_view'
      p_r_request
            TYPE REF TO if_rsbk_request_admintab_view READ-ONLY.

  PRIVATE SECTION.

    TYPE-POOLSrsdrstr.

*   Rule specific types
    TYPES:
      BEGIN OF _ty_s_TG_1,
*      Field: RECORD.
        RECORD           TYPE RSARECORD,
*      InfoObject: ZMATERIAL 物料.
        /BIC/ZMATERIAL           TYPE /BIC/OIZMATERIAL,
*      InfoObject: ZGRID 网格值.
        /BIC/ZGRID           TYPE /BIC/OIZGRID,
*      InfoObject: ZSTORE 店铺主数据.
        /BIC/ZSTORE           TYPE /BIC/OIZSTORE,
*      InfoObject: ZFLAG2 标志2.
        /BIC/ZFLAG2           TYPE /BIC/OIZFLAG2,
*      InfoObject: ZBZIRK 合并片区.
        /BIC/ZBZIRK           TYPE /BIC/OIZBZIRK,
*      InfoObject: ZSYB 事业部.
        /BIC/ZSYB           TYPE /BIC/OIZSYB,
*      InfoObject: ZCHANNEL 渠道.
        /BIC/ZCHANNEL           TYPE /BIC/OIZCHANNEL,
*      InfoObject: ZXM_DD 督导姓名.
        /BIC/ZXM_DD           TYPE /BIC/OIZXM_DD,
*      InfoObject: ZPQJL 片区经理.
        /BIC/ZPQJL           TYPE /BIC/OIZPQJL,
*      InfoObject: ZZJNAME 总监名称.
        /BIC/ZZJNAME           TYPE /BIC/OIZZJNAME,
*      InfoObject: ZCLASSL 产品大类.
        /BIC/ZCLASSL           TYPE /BIC/OIZCLASSL,
*      InfoObject: ZCLASSM 产品中类.
        /BIC/ZCLASSM           TYPE /BIC/OIZCLASSM,
*      InfoObject: ZCLASSS 产品小类.
        /BIC/ZCLASSS           TYPE /BIC/OIZCLASSS,
*      InfoObject: ZBRAND 品牌.
        /BIC/ZBRAND           TYPE /BIC/OIZBRAND,
*      InfoObject: ZFLAG 标志.
        /BIC/ZFLAG           TYPE /BIC/OIZFLAG,
*      InfoObject: 0CALMONTH 日历年/月.
        CALMONTH           TYPE /BI0/OICALMONTH,
*      InfoObject: 0RECORDMODE BW 增量处理: 更新模式.
        RECORDMODE           TYPE RODMUPDMOD,
*      InfoObject: 0CALMONTH2 日历月.
        CALMONTH2           TYPE /BI0/OICALMONTH2,
*      InfoObject: 0CALQUART1 季度.
        CALQUART1           TYPE /BI0/OICALQUART1,
*      InfoObject: 0CALYEAR 日历年.
        CALYEAR           TYPE /BI0/OICALYEAR,
*      InfoObject: 0CALQUARTER 日历年/季度.
        CALQUARTER           TYPE /BI0/OICALQUARTER,
*      InfoObject: 0CUSTOMER 客户编号.
        CUSTOMER           TYPE /BI0/OICUSTOMER,
*      InfoObject: 0DISTR_CHAN 分销渠道.
        DISTR_CHAN           TYPE /BI0/OIDISTR_CHAN,
*      InfoObject: ZQDLX 渠道.
        /BIC/ZQDLX           TYPE /BIC/OIZQDLX,
*      InfoObject: ZATWTBCC 尺寸文本.
        /BIC/ZATWTBCC           TYPE /BIC/OIZATWTBCC,
*      InfoObject: ZATWTBYS 颜色文本.
        /BIC/ZATWTBYS           TYPE /BIC/OIZATWTBYS,
*      InfoObject: ZPER_DD 督导ID.
        /BIC/ZPER_DD           TYPE /BIC/OIZPER_DD,
*      InfoObject: ZAREA_MAR 片区经理.
        /BIC/ZAREA_MAR           TYPE /BIC/OIZAREA_MAR,
*      InfoObject: ZZJCODE 总监编号.
        /BIC/ZZJCODE           TYPE /BIC/OIZZJCODE,
*      InfoObject: ZPRTK3 物料K3码.
        /BIC/ZPRTK3           TYPE /BIC/OIZPRTK3,
*      InfoObject: ZDTLQTY 零售数量.
        /BIC/ZDTLQTY           TYPE /BIC/OIZDTLQTY,
*      InfoObject: 0BASE_UOM 基本计量单位.
        BASE_UOM           TYPE /BI0/OIBASE_UOM,
*      InfoObject: ZDTLFTAMT 实收金额.
        /BIC/ZDTLFTAMT           TYPE /BIC/OIZDTLFTAMT,
*      InfoObject: 0LOC_CURRCY 本币.
        LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,
*      InfoObject: ZZJXJ_AMT 经销总额.
        /BIC/ZZJXJ_AMT           TYPE /BIC/OIZZJXJ_AMT,
*      InfoObject: ZRTRLAMT 终端零售总额(即按终端零售单价计算得的总金额).
        /BIC/ZRTRLAMT           TYPE /BIC/OIZRTRLAMT,
*      InfoObject: ZNTJAMT 南通成本价总额.
        /BIC/ZNTJAMT           TYPE /BIC/OIZNTJAMT,
*      InfoObject: ZSLPX 按数量排序.
        /BIC/ZSLPX           TYPE /BIC/OIZSLPX,
*      InfoObject: ZJEPX 按金额排序.
        /BIC/ZJEPX           TYPE /BIC/OIZJEPX,
*      InfoObject: ZSYBSLTOP 事业部数量排名.
        /BIC/ZSYBSLTOP           TYPE /BIC/OIZSYBSLTOP,
*      InfoObject: ZSYBJETOP 事业部金额排名.
        /BIC/ZSYBJETOP           TYPE /BIC/OIZSYBJETOP,
      END   OF _ty_s_TG_1.
    TYPES:
      _ty_t_TG_1        TYPE STANDARD TABLE OF _ty_s_TG_1
                        WITH NON-UNIQUE DEFAULT KEY.

*$*$ 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
      new_record__end_routine
        IMPORTING
          source_segid             type rstran_segid
          source_record            type sytabix
        EXPORTING
          record_new               type sytabix.

    METHODS
      end_routine
        IMPORTING
          request                  type rsrequest
          datapackid               type rsdatapid
          segid                    type rsbk_segid
        EXPORTING
          monitor                  type rstr_ty_t_monitors
        CHANGING
          RESULT_PACKAGE              type _ty_t_TG_1
        RAISING
          cx_rsrout_abort
          cx_rsbk_errorcount.
    METHODS
      inverse_end_routine
        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 end_routine
*----------------------------------------------------------------------*
*       Calculation of result package via end routine.
*       Note: Update of target fields depends on rule assignment in
*       transformation editor. Only fields that have a rule assigned,
*       are updated to the data target.
*----------------------------------------------------------------------*
*   <-> result package
*----------------------------------------------------------------------*
  METHOD end_routine.
*=== Segments ===

    FIELD-SYMBOLS:
      <RESULT_FIELDS>    TYPE _ty_s_TG_1.

    DATA:
      MONITOR_REC     TYPE rstmonitor.

*$*$ 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.

   DATAl_t_ZSYB TYPE STANDARD TABLE OF _ty_s_TG_1,
         l_t_ZSYB1 TYPE STANDARD TABLE OF _ty_s_TG_1,
          l_wa_ZSYB LIKE LINE OF l_t_ZSYB,
          l_wa_result TYPE _ty_s_TG_1,
          l_t_result TYPE _ty_t_TG_1,
          l_line TYPE I,
          l_datum type sy-datum.

Break-POINT.


L_T_ZSYB[] RESULT_PACKAGE[].
LOOP AT L_T_ZSYB INTO L_WA_ZSYB.
IF L_WA_ZSYB-/BIC/ZFLAG2 'D1'.
APPEND L_WA_ZSYB TO L_T_ZSYB1.
ENDIF.
ENDLOOP.

CLEAR:L_WA_RESULT,L_WA_ZSYB.
LOOP AT RESULT_PACKAGE INTO L_WA_RESULT.
LOOP AT L_T_ZSYB1 INTO L_WA_ZSYB
WHERE /BIC/ZSYB L_WA_RESULT-/BIC/ZSYB
 AND CALMONTH L_WA_RESULT-CALMONTH
 AND /BIC/ZMATERIAL L_WA_RESULT-/BIC/ZMATERIAL
 AND /BIC/ZGRID L_WA_RESULT-/BIC/ZGRID.
 L_WA_RESULT-/BIC/ZSYBSLTOP L_WA_ZSYB-/BIC/ZSLPX.

ENDLOOP.
MODIFY RESULT_PACKAGE FROM L_WA_RESULT.
ENDLOOP.

LOOP AT L_T_ZSYB INTO L_WA_ZSYB.
IF L_WA_ZSYB-/BIC/ZFLAG2 'D2'.
APPEND L_WA_ZSYB TO L_T_ZSYB1.
ENDIF.
ENDLOOP.

CLEAR:L_WA_RESULT,L_WA_ZSYB.
LOOP AT RESULT_PACKAGE INTO L_WA_RESULT.
LOOP AT L_T_ZSYB1 INTO L_WA_ZSYB
WHERE /BIC/ZSYB L_WA_RESULT-/BIC/ZSYB
 AND CALMONTH L_WA_RESULT-CALMONTH
 AND /BIC/ZMATERIAL L_WA_RESULT-/BIC/ZMATERIAL
 AND /BIC/ZGRID L_WA_RESULT-/BIC/ZGRID.
 L_WA_RESULT-/BIC/ZSYBJETOP L_WA_ZSYB-/BIC/ZJEPX.
 ENDLOOP.
MODIFY RESULT_PACKAGE FROM L_WA_RESULT.
ENDLOOP.





*$*$ end of routine - insert your code only before this line         *-*
  ENDMETHOD.                    "end_routine
*----------------------------------------------------------------------*
*       Inverse method inverse_end_routine
*----------------------------------------------------------------------*
*       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.
*----------------------------------------------------------------------*
*       Customer comment:
*----------------------------------------------------------------------*
  METHOD inverse_end_routine.

*   IMPORTING
*     i_r_selset_outbound          TYPE REF TO cl_rsmds_set
*     i_th_fields_outbound         TYPE HASHED TABLE
*     i_r_selset_outbound_complete TYPE REF TO cl_rsmds_set
*     i_r_universe_inbound         TYPE REF TO cl_rsmds_universe
*   CHANGING
*     c_r_selset_inbound           TYPE REF TO cl_rsmds_set
*     c_th_fields_inbound          TYPE HASHED TABLE
*     c_exact                      TYPE rs_bool

*$*$ 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.                    "inverse_end_routine

  METHOD new_record__end_routine.

***** IMPLEMENTATION  is only visible in generated program *****

  ENDMETHOD.
ENDCLASS.                    "routine IMPLEMENTATION

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值