月TOP合并层
2016-01-29 12:06
417 查看
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-POOLS: rsd, rstr.
* 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.
DATA: l_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
相关文章推荐
- wordpress网站打开速度优化压缩html代码
- PowerVR 7架构解析
- Kernel sysctl configuration file for Linux
- docker registry私服搭建
- 周TOP排名
- linux 常用命令
- 《OpenCV学习笔记》---第一篇 第一个程序
- 提升tomcat服务器性能的六条经验
- 日TOP排名
- Hadoop 2.x伪分布式环境搭建
- 大型网站系统架构的演化
- Linux查看CPU和内存使用情况
- 月TOP 模型-季度到年
- shell脚本的符号说明
- (转)网站隔几天打不开,多次重启Apache解决办法
- OpenCL入门
- Kubernetes集群管理部署过程(centos7)
- grep 命令系列:使用 grep 命令来搜索多个单词
- CentOS下php安装mcrypt扩展
- linux命令-touch