SAP供应商维护程序样例

*&---------------------------------------------------------------------*
*& Report  Z_MDM_EXEC_001
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT z_mdm_exec_001.
TABLESzmdm_lif_cwzk.
DATAgs_mdmid TYPE zmdm_mdmid.
DATAgt_lifnr TYPE TABLE OF zmdm_lifnr,
      gt_gsrz  TYPE TABLE OF zmdm_lif_gsrz,
      gt_ustel TYPE TABLE OF zmdm_lif_us_tel,
      gt_cwzk  TYPE TABLE OF zmdm_lif_cwzk,
      gt_cgst  TYPE TABLE OF zmdm_lif_cgst,
      gt_cwst  TYPE TABLE OF zmdm_lif_cwst,
      gt_gdxx  TYPE TABLE OF zmdm_lif_gdxx.
DATABEGIN OF gt_lfa1 OCCURS 0,
        lifnr TYPE lfa1-lifnr,
      END OF gt_lfa1.
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
PARAMETERS:
p_mdmid LIKE zmdm_lif_cwzk-mdmid OBLIGATORY.
SELECT-OPTIONS:
s_lifnr FOR zmdm_lif_cwzk-zlifnr.
SELECTION-SCREEN END OF BLOCK blk1.

START-OF-SELECTION.
  PERFORM frm_refresh.
  PERFORM frm_get_data.
  IF gt_lifnr[] IS NOT INITIAL.
    PERFORM frm_lifnr_edit.
    PERFORM frm_modify_data.
    PERFORM frm_rfc_return.
  ENDIF.
*&---------------------------------------------------------------------*
*&      Form  FRM_REFRESH
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_refresh .
  CLEARgs_mdmid.
  REFRESHgt_lifnr,gt_gsrz,gt_ustel,gt_cwzk,gt_cgst,gt_cwst,gt_gdxx.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  FRM_GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_get_data .
  SELECT SINGLE INTO gs_mdmid
    
FROM zmdm_mdmid
    
WHERE mdmid p_mdmid.
  IF sy-subrc 0.
    "基本信息
    SELECT INTO TABLE gt_lifnr
      
FROM zmdm_lifnr
      
WHERE mdmid  =  p_mdmid
        
AND zlifnr IN s_lifnr.
    "联系人信息
    SELECT INTO TABLE gt_ustel
      
FROM zmdm_lif_us_tel
      
WHERE mdmid  =  p_mdmid
        
AND zlifnr IN s_lifnr.
    "采购视图
    SELECT INTO TABLE gt_cgst
      
FROM zmdm_lif_cgst
      
WHERE mdmid  =  p_mdmid
      
AND zlifnr IN s_lifnr.
    "财务视图(公司代码)
    SELECT INTO TABLE gt_cwst
        
FROM zmdm_lif_cwst
        
WHERE mdmid  =  p_mdmid
        
AND zlifnr IN s_lifnr.

  ENDIF.

 
  
IF gt_lifnr[] IS NOT INITIAL.
    SELECT lifnr INTO TABLE gt_lfa1
      
FROM lfa1
      
FOR ALL ENTRIES IN gt_lifnr
      
WHERE lifnr gt_lifnr-zlifnr.
  ENDIF.
                                                            
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  FRM_LIFNR_EDIT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_lifnr_edit .
  DATAls_jbxx  TYPE zmdms_lifnr_jbxx.

  LOOP AT gt_lifnr INTO DATA(ls_lifnr).
    CLEARls_jbxx.
    "供应商维护
    MOVE-CORRESPONDING ls_lifnr TO ls_jbxx.
    PERFORM frm_lifnr_bapi USING    ls_jbxx
                                    ls_lifnr
-zlifnr
                           
CHANGING ls_lifnr-message.
    IF ls_lifnr-message IS INITIAL.
      ls_lifnr-stats 'S'.
    ELSE.
      ls_lifnr-stats 'E'.
    ENDIF.
    ls_lifnr-muser sy-uname.
    ls_lifnr-mdate sy-datum.
    ls_lifnr-mtime sy-uzeit.
    MODIFY gt_lifnr FROM ls_lifnr.
    CLEARls_lifnr.
  ENDLOOP.

  READ TABLE gt_lifnr INTO ls_lifnr WITH KEY stats 'E'.
  IF sy-subrc 0.
    gs_mdmid-stats 'E'.
    LOOP AT gt_lifnr INTO ls_lifnr WHERE stats 'E'.
      gs_mdmid-message gs_mdmid-message && '/' && ls_lifnr-zlifnr &&
                        
':' && ls_lifnr-message.
      CLEARls_lifnr.
    ENDLOOP.
  ELSE.
    gs_mdmid-stats 'S'.
  ENDIF.
  gs_mdmid-muser sy-uname.
  gs_mdmid-mdate sy-datum.
  gs_mdmid-mtime sy-uzeit.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  FRM_LIFNR_BAPI
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_LS_JBXX  text
*      -->P_LS_LIFNR_ZLIFNR  text
*      -->P_LS_LIFNR_MDMID  text
*      <--P_LV_MSG  text
*----------------------------------------------------------------------*
FORM frm_lifnr_bapi  USING    ps_jbxx STRUCTURE zmdms_lifnr_jbxx
                              p_lifnr
                     
CHANGING p_msg.

  DATAls_vendors     TYPE vmds_ei_extern,         "常规数据
        ls_company     TYPE vmds_ei_company,        "

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值