需求描述:在全部公司代码、采购组织下扩展供应商主数据及创建BP角色
注意点:在对BP角色或公司代码及采购组织扩展时都要先判断系统中是否已经存在相关数据,有就变更,没有就插入,即
task = 'U' or task = 'I'
供应商主数据公司代码层级扩展
DEFINE set_company_data.
ls_company-data-&1 = ls_finance-&2.
ls_company-datax-&1 = 'X'.
END-OF-DEFINITION.
CLEAR:ls_role,lv_task.
SELECT COUNT(*) FROM but100 WHERE partner = lv_partner AND rltyp = 'FLVN00'.
IF sy-subrc = 0.
lv_task = 'U'.
ELSE.
lv_task = 'I'.
ENDIF.
ls_role-task = lv_task.
ls_role-data_key = 'FLVN00'.
ls_role-data-rolecategory = 'FLVN00'.
ls_role-data-valid_from = sy-datum.
ls_role-data-valid_to = '99991231'.
ls_role-currently_valid = 'X'.
ls_role-datax-valid_from = 'X'.
ls_role-datax-valid_to = 'X'.
APPEND ls_role TO ls_master_data-partner-central_data-role-roles.
LOOP AT lt_finance INTO DATA(ls_finance).
DATA lt_lfb1 TYPE TABLE OF lfb1.
IF lt_bukrs IS NOT INITIAL.
CLEAR lt_lfb1.
SELECT * INTO TABLE lt_lfb1
FROM lfb1 FOR ALL ENTRIES IN lt_bukrs
WHERE bukrs = lt_bukrs-bukrs
AND lifnr = lv_partner.
ENDIF.
set_company_data:
* akont akont, "统驭科目
* togru togru, "容差组
* altkn altkn, "旧供应商编号
zterm zterm, "公司代码付款条件
zwels zwels. "付款方式
ls_company-data-reprf = 'X'."检查双重发票
ls_company-datax-reprf = 'X'.
LOOP AT lt_bukrs INTO ls_bukrs.
READ TABLE lt_lfb1 WITH KEY bukrs = ls_bukrs-bukrs lifnr = lv_partner TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
ls_company-task = 'U'.
ELSE.
ls_company-task = 'I'.
ENDIF.
ls_company-data_key-bukrs = ls_bukrs-bukrs.
APPEND ls_company TO ls_master_data-vendor-company_data-company.
ENDLOOP.
ls_master_data-vendor-company_data-current_state = 'X'.
ENDLOOP.
供应商主数据采购组织层级扩展
DEFINE set_purchasing_data.
ls_purchasing-data-&1 = ls_purchase-&2.
ls_purchasing-datax-&1 = 'X'.
END-OF-DEFINITION.
CLEAR:ls_role,lv_task.
SELECT COUNT(*) FROM but100 WHERE partner = lv_partner AND rltyp = 'FLVN01'.
IF sy-subrc = 0.
lv_task = 'U'.
ELSE.
lv_task = 'I'.
ENDIF.
ls_role-task = lv_task.
ls_role-data_key = 'FLVN01'.
ls_role-data-rolecategory = 'FLVN01'.
ls_role-data-valid_from = sy-datum.
ls_role-data-valid_to = '99991231'.
ls_role-currently_valid = 'X'.
ls_role-datax-valid_from = 'X'.
ls_role-datax-valid_to = 'X'.
APPEND ls_role TO ls_master_data-partner-central_data-role-roles.
LOOP AT lt_purchase INTO DATA(ls_purchase).
DATA lt_lfm1 TYPE TABLE OF lfm1.
IF lt_ekorg IS NOT INITIAL.
CLEAR lt_lfm1.
SELECT * INTO TABLE lt_lfm1 FROM lfm1
FOR ALL ENTRIES IN lt_ekorg
WHERE ekorg = lt_ekorg-ekorg
AND lifnr = lv_partner.
set_purchasing_data:
* ekgrp ekgrp,"采购组
* inco1 inco1,"国际贸易条款(第1部分)
* inco2 inco2,"国际贸易条款(第2部分)
* kalsk kalsk,"方案组
verkf verkf,"供应商联系人
telf1 telf1,"供应商电话
waers waers,"订单货币
zterm zterm."付款条件
LOOP AT lt_ekorg INTO ls_ekorg.
READ TABLE lt_lfm1 WITH KEY ekorg = ls_ekorg-ekorg lifnr = lv_partner TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
ls_purchasing-task = 'U'.
ELSE.
ls_purchasing-task = 'I'.
ENDIF.
ls_purchasing-data_key-ekorg = ls_ekorg-ekorg.
APPEND ls_purchasing TO ls_master_data-vendor-purchasing_data-purchasing.
ENDLOOP.
ls_master_data-vendor-purchasing_data-current_state = 'X'.
ENDIF.
ENDLOOP.
APPEND ls_master_data TO lt_master_data.
网友评论