虚拟CUBE 基于FUNCTION MODULE的代码

 

FUNCTION ZRT_C01.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(I_INFOPROV) TYPE  RSINFOPROV
*"     REFERENCE(I_TH_SFC) TYPE  RSDRI_TH_SFC
*"     REFERENCE(I_TH_SFK) TYPE  RSDRI_TH_SFK
*"     REFERENCE(I_T_RANGE) TYPE  RSDRI_T_RANGE
*"     REFERENCE(I_TX_RANGETAB) TYPE  RSDRI_TX_RANGETAB
*"     VALUE(I_FIRST_CALL) TYPE  RS_BOOL
*"     VALUE(I_PACKAGESIZE) TYPE  I DEFAULT 1000
*"  EXPORTING
*"     REFERENCE(E_T_DATA) TYPE  STANDARD TABLE
*"     REFERENCE(E_END_OF_DATA) TYPE  RS_BOOL
*"     REFERENCE(E_T_MSG) TYPE  RS_T_MSG
*"  EXCEPTIONS
*"      WRONG_INPUT
*"      READ_ACCESS_ERROR
*"----------------------------------------------------------------------
*initialize
  CLEAR: e_t_data, e_t_msg.
* this is specific to infoprovider ZVT_DEMO
  CHECK i_infoprov = 'ZRT_C01'.
  FIELD-SYMBOLS: <l_s_sbook> TYPE m_s_sbook01,
                 <l_s_data>  TYPE ANY.
  " DATA: abap_compdescr_tab TYPE abap_compdescr.
  DATA: l_t_component TYPE abap_compdescr_tab,
        i_t_sbook     TYPE m_t_sbook01.
* initialize
  CLEAR e_t_data.
* Data selection / only Business Customer

  types:
      BEGIN OF m_s_sbook01,
      GSXX01(20) TYPE c,                              "公司代码
      DZBM01(20) TYPE c,                              "金立门店
      SPBM(20)   TYPE c,                              "商品
      THDH(16)   type n,                              "提单号
      XSLB(4)    TYPE c,                              "渠道
      FHRQ       TYPE D,                              "发货日期
      XSSL(16)   TYPE p DECIMALS 4,                    "销售数量
      XSJE(16)   TYPE P DECIMALS 4,                    "销售金额
      SKJE(16)   TYPE P DECIMALS 4,                    "红卡使用金额
      REGION     type /BIC/PZPLANT-/BIC/ZREGION,      "大区
      DEPTMNT    type /BIC/PZPLANT-/BIC/ZDEPTMNT,     "分部
      SALES_GRP  type /BIC/PZPLANT-SALES_GRP,         "一二级分部
      PLANT      type /BIC/PZPLANT-/BIC/ZPLANT,        "门店
      PROD_HIER  type /BIC/PZARTICLE-PROD_HIER,        "品牌
      MAT_CAT    type /BIC/PZARTICLE-/BIC/ZMAT_CAT,    "品类
      RPA_WGH1   type /BIC/PZARTICLE-RPA_WGH1,         "品类1
      RPA_WGH2   type /BIC/PZARTICLE-RPA_WGH2,         "品类2
      RPA_WGH3   type /BIC/PZARTICLE-RPA_WGH3,         "品类3
      RPA_WGH4   type /BIC/PZARTICLE-RPA_WGH4,         "品类4
      BUS_CTR    type /BIC/PZARTICLE-/BIC/ZBUS_CTR,    "三大业务中心
      END OF m_s_sbook01.
  DATA m_t_sbook01 TYPE STANDARD TABLE OF m_s_sbook01 WITH DEFAULT KEY INITIAL SIZE 10.
  "data i_t_sbook TYPE STANDARD TABLE OF m_s_sbook.

  DATA carrid_wa01 TYPE m_s_sbook01.

*************************************取金立实时数据*****************************************************************************

  EXEC SQL.
    connect to 'RT_ORA' as 'CONN'
  ENDEXEC.

  check sy-subrc = 0.

  EXEC SQL.
    OPEN dbcur FOR
      SELECT GSXX01,DZBM01,SPBM,THDH,XSLB,XSSL,XSJE,SKJE,FHRQ
      FROM MV_RTSALES_FAST
  ENDEXEC.

  DO.
    EXEC SQL.
      FETCH NEXT dbcur INTO :carrid_wa01-GSXX01, :carrid_wa01-DZBM01, :carrid_wa01-SPBM, :carrid_wa01-THDH, :carrid_wa01-XSLB, :carrid_wa01-XSSL, :carrid_wa01-XSJE, :carrid_wa01-SKJE, :carrid_wa01-FHRQ
    ENDEXEC.
    IF sy-subrc <> 0.
      EXIT.
    else.
      append carrid_wa01 to m_t_sbook01.

    ENDIF.
  ENDDO.
  EXEC SQL.
    CLOSE dbcur
  ENDEXEC.

  EXEC SQL.
    DISCONNECT 'CONN'
  ENDEXEC.

 

****************************取门店主数据*********************************************************

  types:
    BEGIN OF m_s_sbook_c01m,
    REGION     type /BIC/PZPLANT-/BIC/ZREGION,      "大区
    DEPTMNT    type /BIC/PZPLANT-/BIC/ZDEPTMNT,     "分部
    SALES_GRP  type /BIC/PZPLANT-SALES_GRP,         "一二级分部
    PLANT      type /BIC/PZPLANT-/BIC/ZPLANT,        "门店
    END OF m_s_sbook_c01m.
  DATA m_t_sbook_c01m TYPE STANDARD TABLE OF m_s_sbook_c01m WITH DEFAULT KEY INITIAL SIZE 10.
  data wa_c01m type m_s_sbook_c01m.

  SELECT
            /BIC/ZDEPTMNT as DEPTMNT  "分部
            /BIC/ZPLANT   as PLANT    "门店
            /BIC/ZREGION  as REGION   "大区
            SALES_GRP     as SALES_GRP "一二级分部
          INTO CORRESPONDING FIELDS OF TABLE m_t_sbook_c01m
          FROM /BIC/PZPLANT.

**************************取商品主数据***********************************************
  types:
      BEGIN OF m_s_sbook_c01S,
      ARTICLE       type  /BIC/PZARTICLE-/BIC/ZARTICLE,    "商品编码
      PROD_HIER     type /BIC/PZARTICLE-PROD_HIER,         "品牌
      MAT_CAT       type /BIC/PZARTICLE-/BIC/ZMAT_CAT,     "品类
      RPA_WGH1      type /BIC/PZARTICLE-RPA_WGH1,          "品类1
      RPA_WGH2      type /BIC/PZARTICLE-RPA_WGH2,         "品类2
      RPA_WGH3      type /BIC/PZARTICLE-RPA_WGH3,         "品类3
      RPA_WGH4      type /BIC/PZARTICLE-RPA_WGH4,         "品类4
      BUS_CTR       type /BIC/PZARTICLE-/BIC/ZBUS_CTR,    "三大业务中心
      END OF m_s_sbook_c01S.
  DATA m_t_sbook_c01S TYPE STANDARD TABLE OF m_s_sbook_c01S WITH DEFAULT KEY INITIAL SIZE 10.
  data wa_c01S type m_s_sbook_c01S.

  SELECT
             /BIC/ZARTICLE   as ARTICLE
             PROD_HIER       as PROD_HIER
             /BIC/ZMAT_CAT   as MAT_CAT
             RPA_WGH1        as RPA_WGH1
             RPA_WGH2        as RPA_WGH2
             RPA_WGH3        as RPA_WGH3
             RPA_WGH4        as RPA_WGH4
             /BIC/ZBUS_CTR   as BUS_CTR
          INTO CORRESPONDING FIELDS OF TABLE m_t_sbook_c01S
          FROM /BIC/PZARTICLE.

  clear carrid_wa01.
  clear wa_c01S.
  clear wa_c01m.
  SORT m_t_sbook_c01m by plant.
  SORT m_t_sbook_c01s by ARTICLE.
  loop at m_t_sbook01 into carrid_wa01.
    READ TABLE m_t_sbook_c01m INTO wa_c01m WITH KEY plant = carrid_wa01-DZBM01 BINARY SEARCH.
    carrid_wa01-DEPTMNT   = wa_c01m-DEPTMNT.
    carrid_wa01-REGION    = wa_c01m-REGION.
    carrid_wa01-SALES_GRP = wa_c01m-SALES_GRP.
    MODIFY m_t_sbook01 FROM carrid_wa01.

    READ TABLE m_t_sbook_c01S INTO wa_c01S WITH KEY ARTICLE = carrid_wa01-SPBM BINARY SEARCH.
    carrid_wa01-PROD_HIER  = wa_c01S-PROD_HIER.
    carrid_wa01-MAT_CAT    = wa_c01S-MAT_CAT.
    carrid_wa01-RPA_WGH1   = wa_c01S-RPA_WGH1.
    carrid_wa01-RPA_WGH2   = wa_c01S-RPA_WGH2.
    carrid_wa01-RPA_WGH3   = wa_c01S-RPA_WGH3.
    carrid_wa01-RPA_WGH4   = wa_c01S-RPA_WGH4.
    carrid_wa01-BUS_CTR    = wa_c01S-BUS_CTR.
    MODIFY m_t_sbook01 FROM carrid_wa01.
  endloop.


  move m_t_sbook01 to i_t_sbook.

***********************************************************************************************

  if sy-subrc = 0. "
* create a working area
    ASSIGN LOCAL COPY OF INITIAL LINE OF e_t_data TO <l_s_data>.
* get description of components of <L_S_DATA>
    PERFORM get_type_components(SAPLRSDRC_SERVICES)
    USING <l_s_data>
    CHANGING l_t_component.
* data transformation
* move line by line
    LOOP AT i_t_sbook ASSIGNING <l_s_sbook>.
      PERFORM move_sbook_to_data01
      USING <l_s_sbook>
             i_th_sfc
             i_th_sfk
             l_t_component
      CHANGING <l_s_data>.
* append to output data
      append <l_s_data> to E_T_DATA.
    ENDLOOP.
  endif.
* all data are selected
  E_END_OF_DATA = 'X'.

ENDFUNCTION.

*---------------------------------------------------------------------*
***INCLUDE LZVIRTCF02 .
*---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form move_budget_to_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_<L_S_BOOK> text
* -->P_I_TH_SFC text
* -->P_I_TH_SFK text
* -->P_L_T_COMPONENT text
* <--P_<L_S_DATA> text
*----------------------------------------------------------------------*
FORM move_sbook_to_data01
USING i_s_sbook     TYPE m_s_sbook01
      i_th_sfc      TYPE RSDRI_TH_SFC
      i_th_sfk      TYPE RSDRI_TH_SFK
      i_t_component TYPE abap_compdescr_tab
CHANGING e_s_data   TYPE any.
* define FIELD-SYMBOLS
  FIELD-SYMBOLS: <l_s_component> TYPE abap_compdescr,
                 <l_comp_data> TYPE ANY,
                 <l_s_sfc> TYPE RSDRI_S_SFC,
                 <l_s_sfk> TYPE RSDRI_S_SFK.
* Datadeclaration
  DATA: l_compno TYPE i,
        l_t_component TYPE abap_compdescr_tab,
        l_s_sbook TYPE m_s_sbook01.
* initialize
  CLEAR e_s_data.
  l_s_sbook = i_s_sbook.
* ******* Transformation of all needed SBOOK Fields ****************
********************************Characteristics********************************************
* (1)ZCOM_CODE ----------------------------------------------------------
  IF NOT i_s_sbook-GSXX01 IS INITIAL.
* get alias name from SFC
    READ TABLE i_th_sfc ASSIGNING <l_s_sfc>
    WITH TABLE KEY chanm = 'ZCOM_CODE'.
    IF sy-subrc = 0.
* get number of target column
      READ TABLE i_t_component ASSIGNING
      <l_s_component>
      WITH KEY name = <l_s_sfc>-CHAALIAS.
      IF sy-subrc = 0.
* number of target data component
        l_compno = sy-tabix.
* get target data component
        ASSIGN COMPONENT l_compno OF STRUCTURE e_s_data TO <l_comp_data>.
        move i_s_sbook-GSXX01 to <l_comp_data>.
      ENDIF.
    ENDIF.
  ENDIF.
* (2)ZPLANT ----------------------------------------------------------
  IF NOT i_s_sbook-DZBM01 IS INITIAL.
* get alias name from SFC
    READ TABLE i_th_sfc ASSIGNING <l_s_sfc>
    WITH TABLE KEY chanm = 'ZPLANT'.
    IF sy-subrc = 0.

* get number of target column
      READ TABLE i_t_component ASSIGNING
      <l_s_component>
      WITH KEY name = <l_s_sfc>-CHAALIAS.
      IF sy-subrc = 0.
* number of target data component
        l_compno = sy-tabix.
* get target data component
        ASSIGN COMPONENT l_compno OF STRUCTURE e_s_data TO <l_comp_data>.
        move i_s_sbook-DZBM01 to <l_comp_data>.

      ENDIF.
    ENDIF.
  ENDIF.
* (3)ZARTICLE ----------------------------------------------------------
  IF NOT i_s_sbook-SPBM IS INITIAL.
* get alias name from SFC
    READ TABLE i_th_sfc ASSIGNING <l_s_sfc>
    WITH TABLE KEY chanm = 'ZARTICLE'.
    IF sy-subrc = 0.
* get number of target column
      READ TABLE i_t_component ASSIGNING
      <l_s_component>
      WITH KEY name = <l_s_sfc>-CHAALIAS.
      IF sy-subrc = 0.
* number of target data component
        l_compno = sy-tabix.
* get target data component
        ASSIGN COMPONENT l_compno OF STRUCTURE e_s_data TO <l_comp_data>.
        move i_s_sbook-SPBM to <l_comp_data>.
      ENDIF.
    ENDIF.
  ENDIF.
* (4)ZBSTKD----------------------------------------------------------
  IF NOT i_s_sbook-THDH IS INITIAL.
* get alias name from SFC
    READ TABLE i_th_sfc ASSIGNING <l_s_sfc>
    WITH TABLE KEY chanm = 'ZBSTKD'.
    IF sy-subrc = 0.
* get number of target column
      READ TABLE i_t_component ASSIGNING
      <l_s_component>
      WITH KEY name = <l_s_sfc>-CHAALIAS.
      IF sy-subrc = 0.
* number of target data component
        l_compno = sy-tabix.
* get target data component
        ASSIGN COMPONENT l_compno OF STRUCTURE e_s_data TO <l_comp_data>.
        move i_s_sbook-THDH to <l_comp_data>.
      ENDIF.
    ENDIF.
  ENDIF.
*
* (5)0DISTR_CHAN----------------------------------------------------------
  IF NOT i_s_sbook-XSLB IS INITIAL.
* get alias name from SFC
    READ TABLE i_th_sfc ASSIGNING <l_s_sfc>
    WITH TABLE KEY chanm = '0DISTR_CHAN'.
    IF sy-subrc = 0.
* get number of target column
      READ TABLE i_t_component ASSIGNING
      <l_s_component>
      WITH KEY name = <l_s_sfc>-CHAALIAS.
      IF sy-subrc = 0.
* number of target data component
        l_compno = sy-tabix.
* get target data component
        ASSIGN COMPONENT l_compno OF STRUCTURE e_s_data TO <l_comp_data>.
        move i_s_sbook-XSLB to <l_comp_data>.
      ENDIF.
    ENDIF.
  ENDIF.
* (6)ZFHRQ ----------------------------------------------------------
  IF NOT i_s_sbook-FHRQ IS INITIAL.
* get alias name from SFC
    READ TABLE i_th_sfc ASSIGNING <l_s_sfc>
    WITH TABLE KEY chanm = 'ZFHRQ'.
    IF sy-subrc = 0.
* get number of target column
      READ TABLE i_t_component ASSIGNING
      <l_s_component>
      WITH KEY name = <l_s_sfc>-CHAALIAS.
      IF sy-subrc = 0.
* number of target data component
        l_compno = sy-tabix.
* get target data component
        ASSIGN COMPONENT l_compno OF STRUCTURE e_s_data TO <l_comp_data>.
        move i_s_sbook-FHRQ to <l_comp_data>.
      ENDIF.
    ENDIF.
  ENDIF.


* (7)ZDEPTMNT ----------------------------------------------------------
  IF NOT i_s_sbook-DEPTMNT IS INITIAL.
* get alias name from SFC
    READ TABLE i_th_sfc ASSIGNING <l_s_sfc>
    WITH TABLE KEY chanm = 'ZDEPTMNT'.
    IF sy-subrc = 0.
* get number of target column
      READ TABLE i_t_component ASSIGNING
      <l_s_component>
      WITH KEY name = <l_s_sfc>-CHAALIAS.
      IF sy-subrc = 0.
* number of target data component
        l_compno = sy-tabix.
* get target data component
        ASSIGN COMPONENT l_compno OF STRUCTURE e_s_data TO <l_comp_data>.
        move i_s_sbook-DEPTMNT to <l_comp_data>.
      ENDIF.
    ENDIF.
  ENDIF.

* (8)ZREGION ----------------------------------------------------------
  IF NOT i_s_sbook-REGION IS INITIAL.
* get alias name from SFC
    READ TABLE i_th_sfc ASSIGNING <l_s_sfc>
    WITH TABLE KEY chanm = 'ZREGION'.
    IF sy-subrc = 0.
* get number of target column
      READ TABLE i_t_component ASSIGNING
      <l_s_component>
      WITH KEY name = <l_s_sfc>-CHAALIAS.
      IF sy-subrc = 0.
* number of target data component
        l_compno = sy-tabix.
* get target data component
        ASSIGN COMPONENT l_compno OF STRUCTURE e_s_data TO <l_comp_data>.
        move i_s_sbook-REGION to <l_comp_data>.
      ENDIF.
    ENDIF.
  ENDIF.

* (9)0SALES_GRP ----------------------------------------------------------
  IF NOT i_s_sbook-SALES_GRP  IS INITIAL.
* get alias name from SFC
    READ TABLE i_th_sfc ASSIGNING <l_s_sfc>
    WITH TABLE KEY chanm = '0SALES_GRP '.
    IF sy-subrc = 0.
* get number of target column
      READ TABLE i_t_component ASSIGNING
      <l_s_component>
      WITH KEY name = <l_s_sfc>-CHAALIAS.
      IF sy-subrc = 0.
* number of target data component
        l_compno = sy-tabix.
* get target data component
        ASSIGN COMPONENT l_compno OF STRUCTURE e_s_data TO <l_comp_data>.
        move i_s_sbook-SALES_GRP  to <l_comp_data>.
      ENDIF.
    ENDIF.
  ENDIF.

* (10)0LOC_CURRCY ----------------------------------------------------------
  IF NOT i_s_sbook-XSJE  IS INITIAL.
* get alias name from SFC
    READ TABLE i_th_sfc ASSIGNING <l_s_sfc>
    WITH TABLE KEY chanm = '0LOC_CURRCY '.
    IF sy-subrc = 0.
* get number of target column
      READ TABLE i_t_component ASSIGNING
      <l_s_component>
      WITH KEY name = <l_s_sfc>-CHAALIAS.
      IF sy-subrc = 0.
* number of target data component
        l_compno = sy-tabix.
* get target data component
        ASSIGN COMPONENT l_compno OF STRUCTURE e_s_data TO <l_comp_data>.
        move 'RMB'  to <l_comp_data>.
      ENDIF.
    ENDIF.
  ENDIF.
** (11)0UNIT ----------------------------------------------------------
*  IF NOT i_s_sbook-JCSL IS INITIAL.
** get alias name from SFC
*    DATA UNIT(4) TYPE C.
*    UNIT = 'ST'.
*    READ TABLE i_th_sfc ASSIGNING <l_s_sfc>
*    WITH TABLE KEY chanm = '0UNIT'.
*    IF sy-subrc = 0.
** get number of target column
*      READ TABLE i_t_component ASSIGNING
*      <l_s_component>
*      WITH KEY name = <l_s_sfc>-CHAALIAS.
*      IF sy-subrc = 0.
** number of target data component
*        l_compno = sy-tabix.
** get target data component
*        ASSIGN COMPONENT l_compno OF STRUCTURE e_s_data TO <l_comp_data>.
*        move UNIT  to <l_comp_data>.
*      ENDIF.
*    ENDIF.
*  ENDIF.
* (12)0PROD_HIER ----------------------------------------------------------
  IF NOT i_s_sbook-PROD_HIER IS INITIAL.
* get alias name from SFC
    READ TABLE i_th_sfc ASSIGNING <l_s_sfc>
    WITH TABLE KEY chanm = '0PROD_HIER'.
    IF sy-subrc = 0.
* get number of target column
      READ TABLE i_t_component ASSIGNING
      <l_s_component>
      WITH KEY name = <l_s_sfc>-CHAALIAS.
      IF sy-subrc = 0.
* number of target data component
        l_compno = sy-tabix.
* get target data component
        ASSIGN COMPONENT l_compno OF STRUCTURE e_s_data TO <l_comp_data>.
        move i_s_sbook-PROD_HIER  to <l_comp_data>.
      ENDIF.
    ENDIF.
  ENDIF.
* (13)ZMAT_CAT ----------------------------------------------------------
  IF NOT i_s_sbook-MAT_CAT IS INITIAL.
* get alias name from SFC
    READ TABLE i_th_sfc ASSIGNING <l_s_sfc>
    WITH TABLE KEY chanm = 'ZMAT_CAT'.
    IF sy-subrc = 0.
* get number of target column
      READ TABLE i_t_component ASSIGNING
      <l_s_component>
      WITH KEY name = <l_s_sfc>-CHAALIAS.
      IF sy-subrc = 0.
* number of target data component
        l_compno = sy-tabix.
* get target data component
        ASSIGN COMPONENT l_compno OF STRUCTURE e_s_data TO <l_comp_data>.
        move i_s_sbook-MAT_CAT  to <l_comp_data>.
      ENDIF.
    ENDIF.
  ENDIF.
* (14)0RPA_WGH1 ----------------------------------------------------------
  IF NOT i_s_sbook-RPA_WGH1 IS INITIAL.
* get alias name from SFC
    READ TABLE i_th_sfc ASSIGNING <l_s_sfc>
    WITH TABLE KEY chanm = '0RPA_WGH1'.
    IF sy-subrc = 0.
* get number of target column
      READ TABLE i_t_component ASSIGNING
      <l_s_component>
      WITH KEY name = <l_s_sfc>-CHAALIAS.
      IF sy-subrc = 0.
* number of target data component
        l_compno = sy-tabix.
* get target data component
        ASSIGN COMPONENT l_compno OF STRUCTURE e_s_data TO <l_comp_data>.
        move i_s_sbook-RPA_WGH1  to <l_comp_data>.
      ENDIF.
    ENDIF.
  ENDIF.
* (15)0RPA_WGH2 ----------------------------------------------------------
  IF NOT i_s_sbook-RPA_WGH2 IS INITIAL.
* get alias name from SFC
    READ TABLE i_th_sfc ASSIGNING <l_s_sfc>
    WITH TABLE KEY chanm = '0RPA_WGH2'.
    IF sy-subrc = 0.
* get number of target column
      READ TABLE i_t_component ASSIGNING
      <l_s_component>
      WITH KEY name = <l_s_sfc>-CHAALIAS.
      IF sy-subrc = 0.
* number of target data component
        l_compno = sy-tabix.
* get target data component
        ASSIGN COMPONENT l_compno OF STRUCTURE e_s_data TO <l_comp_data>.
        move i_s_sbook-RPA_WGH2  to <l_comp_data>.
      ENDIF.
    ENDIF.
  ENDIF.
* (16)0RPA_WGH3 ----------------------------------------------------------
  IF NOT i_s_sbook-RPA_WGH3 IS INITIAL.
* get alias name from SFC
    READ TABLE i_th_sfc ASSIGNING <l_s_sfc>
    WITH TABLE KEY chanm = '0RPA_WGH3'.
    IF sy-subrc = 0.
* get number of target column
      READ TABLE i_t_component ASSIGNING
      <l_s_component>
      WITH KEY name = <l_s_sfc>-CHAALIAS.
      IF sy-subrc = 0.
* number of target data component
        l_compno = sy-tabix.
* get target data component
        ASSIGN COMPONENT l_compno OF STRUCTURE e_s_data TO <l_comp_data>.
        move i_s_sbook-RPA_WGH3  to <l_comp_data>.
      ENDIF.
    ENDIF.
  ENDIF.
* (17)0RPA_WGH4----------------------------------------------------------
  IF NOT i_s_sbook-RPA_WGH4 IS INITIAL.
* get alias name from SFC
    READ TABLE i_th_sfc ASSIGNING <l_s_sfc>
    WITH TABLE KEY chanm = '0RPA_WGH4'.
    IF sy-subrc = 0.
* get number of target column
      READ TABLE i_t_component ASSIGNING
      <l_s_component>
      WITH KEY name = <l_s_sfc>-CHAALIAS.
      IF sy-subrc = 0.
* number of target data component
        l_compno = sy-tabix.
* get target data component
        ASSIGN COMPONENT l_compno OF STRUCTURE e_s_data TO <l_comp_data>.
        move i_s_sbook-RPA_WGH4  to <l_comp_data>.
      ENDIF.
    ENDIF.
  ENDIF.

* (18)ZBUS_CTR----------------------------------------------------------
  IF NOT i_s_sbook-XSLB IS INITIAL.
* get alias name from SFC
    READ TABLE i_th_sfc ASSIGNING <l_s_sfc>
    WITH TABLE KEY chanm = 'ZBUS_CTR'.
    IF sy-subrc = 0.
* get number of target column
      READ TABLE i_t_component ASSIGNING
      <l_s_component>
      WITH KEY name = <l_s_sfc>-CHAALIAS.
      IF sy-subrc = 0.
* number of target data component
        l_compno = sy-tabix.
* get target data component
        ASSIGN COMPONENT l_compno OF STRUCTURE e_s_data TO <l_comp_data>.
        move i_s_sbook-XSLB  to <l_comp_data>.
      ENDIF.
    ENDIF.
  ENDIF.

****************************Key Figures **********************************************
* (1)ZSAL_QTY1 ----------------------------------------------------------
  IF NOT i_s_sbook-XSSL IS INITIAL.
* get alias name from SFC
    READ TABLE I_TH_SFK ASSIGNING <l_s_sfk>
    WITH TABLE KEY kyfnm = 'ZSAL_QTY1 '.
    IF sy-subrc = 0.
* get number of target column
      READ TABLE i_t_component ASSIGNING
      <l_s_component>
      WITH KEY name = <l_s_sfk>-kyfalias.
      IF sy-subrc = 0.
* number of target data component
        l_compno = sy-tabix.
* get target data component
        ASSIGN COMPONENT l_compno OF STRUCTURE e_s_data TO <l_comp_data>.
*        move
        <l_comp_data> = i_s_sbook-XSSL.
      ENDIF.
    ENDIF.
  ENDIF.
* (2)ZSAL_AMT1 ----------------------------------------------------------
  IF NOT i_s_sbook-XSJE IS INITIAL.
* get alias name from SFC
    READ TABLE i_th_sfk ASSIGNING <l_s_sfk>
    WITH TABLE KEY kyfnm = 'ZSAL_AMT1'.
    IF sy-subrc = 0.
* get number of target column
      READ TABLE i_t_component ASSIGNING
      <l_s_component>
      WITH KEY name = <l_s_sfk>-kyfalias.
      IF sy-subrc = 0.
* number of target data component
        l_compno = sy-tabix.
* get target data component
        ASSIGN COMPONENT l_compno OF STRUCTURE e_s_data TO <l_comp_data>.
*        move
        <l_comp_data> = i_s_sbook-XSJE.
      ENDIF.
    ENDIF.
  ENDIF.

* (3)ZSKJE ----------------------------------------------------------
  IF NOT i_s_sbook-SKJE  IS INITIAL.
* get alias name from SFC
    READ TABLE i_th_sfk ASSIGNING <l_s_sfk>
    WITH TABLE KEY kyfnm = 'ZSKJE'.
    IF sy-subrc = 0.
* get number of target column
      READ TABLE i_t_component ASSIGNING
      <l_s_component>
      WITH KEY name = <l_s_sfk>-kyfalias.
      IF sy-subrc = 0.
* number of target data component
        l_compno = sy-tabix.
* get target data component
        ASSIGN COMPONENT l_compno OF STRUCTURE e_s_data TO <l_comp_data>.
*        move
        <l_comp_data> = i_s_sbook-SKJE .
      ENDIF.
    ENDIF.
  ENDIF.
ENDFORM. " move_budget_to_data

 

 

 

 

FUNCTION-POOL ZBW_GRP.                      "MESSAGE-ID ..
Tables: sbook,/BIC/PZPLANT,/BIC/PZARTICLE.
TYPE-POOLS: rs, rsd, rsdd, rsdpm, rsdpr, rsdu.

****************************************************************************************
***                              ZRT_C01                                        ***
**************************************************************************************
types:
    BEGIN OF m_s_sbook01,
    GSXX01(20) TYPE c,                              "公司代码
    DZBM01(20) TYPE c,                              "金立门店
    SPBM(20)   TYPE c,                              "商品
    THDH(16)   type n,                              "提单号
    XSLB(4)    TYPE N,                              "渠道
    FHRQ       TYPE D,                              "发货日期
    XSSL(16)   TYPE p DECIMALS 4,                    "销售数量
    XSJE(16)   TYPE P DECIMALS 4,                    "销售金额
    SKJE(16)   TYPE P DECIMALS 4,                    "红卡使用金额
    REGION     type /BIC/PZPLANT-/BIC/ZREGION,      "大区
    DEPTMNT    type /BIC/PZPLANT-/BIC/ZDEPTMNT,     "分部
    SALES_GRP  type /BIC/PZPLANT-SALES_GRP,         "一二级分部
    PLANT      type /BIC/PZPLANT-/BIC/ZPLANT,        "门店
    PROD_HIER  type /BIC/PZARTICLE-PROD_HIER,        "品牌
    MAT_CAT    type /BIC/PZARTICLE-/BIC/ZMAT_CAT,    "品类
    RPA_WGH1   type /BIC/PZARTICLE-RPA_WGH1,         "品类1
    RPA_WGH2   type /BIC/PZARTICLE-RPA_WGH2,         "品类2
    RPA_WGH3   type /BIC/PZARTICLE-RPA_WGH3,         "品类3
    RPA_WGH4   type /BIC/PZARTICLE-RPA_WGH4,         "品类4
    BUS_CTR    type /BIC/PZARTICLE-/BIC/ZBUS_CTR,    "三大业务中心
    END OF m_s_sbook01.

types:
      m_t_sbook01 TYPE STANDARD TABLE OF m_s_sbook01 WITH DEFAULT KEY INITIAL SIZE 10.
  "data i_t_sbook TYPE STANDARD TABLE OF m_s_sbook.
****************************门店主数据结构*********************************************************

  types:
    BEGIN OF m_s_sbook_c01m,
    REGION     type /BIC/PZPLANT-/BIC/ZREGION,      "大区
    DEPTMNT    type /BIC/PZPLANT-/BIC/ZDEPTMNT,     "分部
    SALES_GRP  type /BIC/PZPLANT-SALES_GRP,         "一二级分部
    PLANT      type /BIC/PZPLANT-/BIC/ZPLANT,        "门店
    END OF m_s_sbook_c01m.
DATA m_t_sbook_c01m TYPE STANDARD TABLE OF m_s_sbook_c01m WITH DEFAULT KEY INITIAL SIZE 10.
data wa_c01m type m_s_sbook_c01m.

**************************取商品主数据***********************************************
types:
    BEGIN OF m_s_sbook_c01S,
    ARTICLE       type  /BIC/PZARTICLE-/BIC/ZARTICLE,    "商品编码
    PROD_HIER     type /BIC/PZARTICLE-PROD_HIER,         "品牌
    MAT_CAT       type /BIC/PZARTICLE-/BIC/ZMAT_CAT,     "品类
    RPA_WGH1      type /BIC/PZARTICLE-RPA_WGH1,          "品类1
    RPA_WGH2      type /BIC/PZARTICLE-RPA_WGH2,         "品类2
    RPA_WGH3      type /BIC/PZARTICLE-RPA_WGH3,         "品类3
    RPA_WGH4      type /BIC/PZARTICLE-RPA_WGH4,         "品类4
    BUS_CTR       type /BIC/PZARTICLE-/BIC/ZBUS_CTR,    "三大业务中心
    END OF m_s_sbook_c01S.
DATA m_t_sbook_c01S TYPE STANDARD TABLE OF m_s_sbook_c01S WITH DEFAULT KEY INITIAL SIZE 10.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值