*&---------------------------------------------------------------------*
*& Report Z_MDM_EXEC_001
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT z_mdm_exec_001.
TABLES: zmdm_lif_cwzk.
DATA: gs_mdmid TYPE zmdm_mdmid.
DATA: gt_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.
DATA: BEGIN 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 .
CLEAR: gs_mdmid.
REFRESH: gt_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 .
DATA: ls_jbxx TYPE zmdms_lifnr_jbxx.
LOOP AT gt_lifnr INTO DATA(ls_lifnr).
CLEAR: ls_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.
CLEAR: ls_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.
CLEAR: ls_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.
DATA: ls_vendors TYPE vmds_ei_extern, "常规数据
ls_company TYPE vmds_ei_company, "