ABAP:BP 供应商创建修改BAPI和供应商银行信息创建修改BAPI(来源于网络)

ABAP:BP 供应商创建修改BAPI和供应商银行信息创建修改BAPI
供应商创建及BAPI:cl_md_bp_maintain=>maintain
供应商银行信息创建BAPI:BAPI_BUPA_BANKDETAIL_ADD
供应商银行信息更新BAPI:BAPI_BUPA_BANKDETAIL_CHANGE
复制代码

FORM frm_create_bp .DATA: lt_zfis006 TYPE TABLE OF zfis006,ls_zfis006 LIKE LINE OF lt_zfis006.DATA: lv_id TYPE sysuuid_x16 .DATA: exc_ref             TYPE REF TO cx_root,lt_partnerguid_list TYPE bu_partner_guid_t,ls_partnerguid_list LIKE LINE OF lt_partnerguid_list.DATA: lt_return TYPE  bapiretm.DATA: lv_bpartnerguid TYPE bu_partner_guid_bapi,lv_partnerguid  TYPE but000-partner_guid."BP数据DATA: lt_data      TYPE cvis_ei_extern_t,ls_data      TYPE cvis_ei_extern,ls_partner   TYPE bus_ei_extern,ls_common    TYPE bus_ei_bupa_central,ls_roles     TYPE bus_ei_bupa_roles,lt_roles     TYPE bus_ei_bupa_roles_t,ls_bank      TYPE bus_ei_bupa_bankdetail,lt_bank      TYPE bus_ei_bupa_bankdetail_t,ls_industry  TYPE bus_ei_bupa_industrysector,lt_industry  TYPE bus_ei_bupa_industrysector_t,lt_phone     TYPE bus_ei_bupa_telephone_t,ls_phone     TYPE bus_ei_bupa_telephone,lt_fax       TYPE bus_ei_bupa_fax_t,ls_fax       TYPE bus_ei_bupa_fax,lt_smtp      TYPE bus_ei_bupa_smtp_t,ls_smtp      TYPE bus_ei_bupa_smtp,ls_addresses TYPE bus_ei_bupa_address,lt_addresses TYPE bus_ei_bupa_address_t,ls_bpheader  TYPE bus_ei_header."供应商数据DATA: lt_company TYPE vmds_ei_company_t,ls_company TYPE vmds_ei_company,ls_purchas TYPE vmds_ei_purchasing,lt_purchas TYPE vmds_ei_purchasing_t,ls_vendor  TYPE vmds_ei_extern,ls_header  TYPE vmds_ei_header.DATA: ls_bankdetail TYPE bapibus1006_bankdetail.DATA: ls_bankdetail_x TYPE bapibus1006_bankdetail_x,lv_type         TYPE char1.DATA: lt_return2 TYPE TABLE OF bapiret2.CLEAR:lt_zfis006[].LOOP AT gt_out ASSIGNING <fs_out> WHERE sel = 'X' AND color NE 'C510'.CLEAR: lv_bpartnerguid, lv_partnerguid, ls_header, ls_vendor, ls_bpheader, ls_common,ls_roles, lt_roles, lt_roles[], ls_phone, lt_phone, lt_phone[], ls_smtp, lt_smtp, lt_smtp[],ls_addresses, lt_addresses, lt_addresses[], ls_bank, lt_bank, lt_bank[], ls_company, lt_company, lt_company[],ls_data, lt_data, lt_data[].SELECT SINGLE partner_guid FROM but000 INTO lv_partnerguid WHERE partner = <fs_out>-lifnr .CASE 'X' .WHEN rb_c .               "创建TRY .lv_bpartnerguid = cl_uuid_factory=>create_system_uuid( )->create_uuid_x16( ).CATCH cx_uuid_error INTO exc_ref."返回消息<fs_out>-zcode = 'E'.<fs_out>-zmsgl  = exc_ref->get_text( ).<fs_out>-color = 'C610' .CLEAR: lv_id .APPEND INITIAL LINE TO lt_zfis006 ASSIGNING FIELD-SYMBOL(<fs_zfis006>) .TRY.CALL METHOD cl_system_uuid=>if_system_uuid_static~create_uuid_c32RECEIVINGuuid = lv_id.CATCH cx_uuid_error .MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDTRY.<fs_zfis006>-uuid  = lv_id .<fs_zfis006>-lifnr = <fs_out>-lifnr .<fs_zfis006>-pernr = <fs_out>-pernr .<fs_zfis006>-sname = <fs_out>-sname .<fs_zfis006>-begda = <fs_out>-begda .<fs_zfis006>-endda = <fs_out>-endda .<fs_zfis006>-ztask = 'C' .<fs_zfis006>-zcode = <fs_out>-zcode .<fs_zfis006>-zmsgl = <fs_out>-zmsgl .<fs_zfis006>-zdate = sy-datum .<fs_zfis006>-ztime = sy-uzeit .<fs_zfis006>-zname = sy-uname .CONTINUE .ENDTRY.ls_header-object_task = 'I' .ls_data-ensure_create-create_vendor = 'X'.WHEN rb_m OR rb_d .       "修改 冻结TRY .cl_system_uuid=>if_system_uuid_static~convert_uuid_x16(EXPORTING uuid = lv_partnerguidIMPORTING uuid_c32 = lv_bpartnerguid).CATCH cx_uuid_error INTO DATA(exc_ref1).ENDTRY.ls_header-object_task = 'U'.ENDCASE .ls_header-object_instance-lifnr = <fs_out>-lifnr .ls_vendor-header = ls_header .IF rb_d = 'X' .    "冻结ls_vendor-central_data-central-data-sperr = 'X' .ls_vendor-central_data-central-datax-sperr = abap_true.ENDIF ."headerls_bpheader-object_task                   = 'M'.ls_bpheader-object_instance-bpartner      = <fs_out>-lifnr.          "BP号ls_bpheader-object_instance-bpartnerguid  = lv_bpartnerguid.         "BP GUID"commonls_common-data-bp_control-category  = '2'.                           "业务伙伴类别ls_common-data-bp_control-grouping  = <fs_out>-group.                "业务伙伴分组ls_common-data-bp_centraldata-partnerlanguageiso  = 'ZH'.            "语言ls_common-data-bp_centraldata-searchterm1         = <fs_out>-pernr.  "搜索项1ls_common-data-bp_centraldata-searchterm2         = <fs_out>-zbmen.  "搜索项2ls_common-data-bp_centraldata-title_key           = '0003'.          "称谓ls_common-datax-bp_centraldata-partnerlanguageiso = abap_true.ls_common-datax-bp_centraldata-searchterm1        = abap_true.ls_common-datax-bp_centraldata-searchterm2        = abap_true.ls_common-datax-bp_centraldata-title_key          = abap_true.ls_common-data-bp_organization-name1  = <fs_out>-sname.              "名称ls_common-datax-bp_organization-name1 = abap_true.ls_roles-task       = 'M'.ls_roles-data_key   = 'FLVN00'.                                      "角色类别APPEND ls_roles TO lt_roles.CLEAR: ls_roles.ls_roles-task       = 'M'.ls_roles-data_key   = 'FLVN01'.                                      "角色类别APPEND ls_roles TO lt_roles.CLEAR: ls_roles."phonels_phone-contact-task = 'M'.ls_phone-contact-data-telephone   = <fs_out>-telf1.                  "电话号码ls_phone-contact-datax-telephone  = abap_true.APPEND ls_phone TO lt_phone.CLEAR: ls_phone."emaills_smtp-contact-task = 'M'.ls_smtp-contact-data-e_mail   = <fs_out>-telbx.                       "邮箱ls_smtp-contact-datax-e_mail  = abap_true.APPEND ls_smtp TO lt_smtp.CLEAR: ls_smtp."addrls_addresses-data-postal-data-country     = <fs_out>-land1.          "国家代码ls_addresses-data-postal-data-languiso    = 'ZH'.                    "语言ls_addresses-data-postal-data-street      = <fs_out>-locat.          "地址ls_addresses-data-postal-data-city        = <fs_out>-locat.          "城市ls_addresses-data-postal-data-postl_cod1  = '000000' .               "邮编ls_addresses-data-postal-datax-country    = abap_true.ls_addresses-data-postal-datax-langu_iso  = abap_true.ls_addresses-data-postal-datax-street     = abap_true.ls_addresses-data-postal-datax-city       = abap_true.ls_addresses-data-postal-datax-postl_cod1 = abap_true.APPEND ls_addresses TO lt_addresses.CLEAR: ls_addresses."bankIF <fs_out>-bankl IS NOT INITIAL .ls_bank-task = 'M'.ls_bank-data-bank_ctry      = <fs_out>-banks.ls_bank-data-bank_key       = <fs_out>-bankl.ls_bank-data-bank_acct      = <fs_out>-bankn.ls_bank-data-accountholder  = <fs_out>-emfsl.ls_bank-data-bank_ref       = <fs_out>-bkref.ls_bank-data-bankdetailvalidfrom = <fs_out>-begda_yh. "ADD BY ZJ 20230803 银行信息有效起始日期ls_bank-data-bankdetailvalidto = <fs_out>-endda_yh. "ADD BY ZJ 20230803 银行信息有效结束日期ls_bank-datax-bank_ctry     = abap_true.ls_bank-datax-bank_key      = abap_true.ls_bank-datax-bank_acct     = abap_true.ls_bank-datax-bank_ref      = abap_true.ls_bank-datax-accountholder = abap_true.ls_bank-datax-bankdetailvalidfrom = abap_true. "ADD BY ZJ 20230803 银行信息有效起始日期ls_bank-datax-bankdetailvalidto = abap_true. "ADD BY ZJ 20230803 银行信息有效结束日期APPEND ls_bank TO lt_bank.CLEAR: ls_bank.ENDIF .ls_partner-header                                 = ls_bpheader.ls_partner-central_data-common                    = ls_common.ls_partner-central_data-role-roles                = lt_roles.ls_partner-central_data-bankdetail-bankdetails    = lt_bank.ls_partner-central_data-communication-phone-phone = lt_phone.ls_partner-central_data-communication-smtp-smtp   = lt_smtp.ls_partner-central_data-address-addresses         = lt_addresses."companyls_company-task = 'M'.ls_company-data_key   = <fs_out>-bukrs.ls_company-data-akont = <fs_out>-akont.ls_company-data-zterm = <fs_out>-zterm.ls_company-datax-akont = abap_true.ls_company-datax-zterm = abap_true.APPEND ls_company TO lt_company.CLEAR: ls_company.ls_vendor-company_data-company = lt_company.CLEAR: ls_company.ls_data-partner = ls_partner.ls_data-vendor  = ls_vendor.APPEND ls_data TO lt_data."维护cl_md_bp_maintain=>maintain(EXPORTINGi_data     = lt_dataIMPORTINGe_return   = lt_return).READ TABLE lt_return INTO DATA(ls_return) INDEX 1.DATA(lt_msg) = ls_return-object_msg.LOOP AT lt_msg INTO DATA(ls_msg) WHERE type CA 'AEX'.EXIT.ENDLOOP.IF sy-subrc <> 0.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = abap_true.********** 更新银行信息"判断表中有没有供应商的银行信息CLEAR:ls_bankdetail,ls_bankdetail_x,lv_type,lt_return2.SELECT SINGLE bkvidFROM but0bkINTO @DATA(lv_bkvid)WHERE partner = @<fs_out>-lifnrAND bankl = @<fs_out>-banklAND bankn = @<fs_out>-banknAND bkref = @<fs_out>-bkref.IF sy-subrc EQ 0.lv_type = 'U'.ELSE.lv_type = 'I'.ENDIF.ls_bankdetail-bank_ctry = <fs_out>-land1."国家ls_bankdetail-bank_key = <fs_out>-bankl."银行代码ls_bankdetail-bank_acct = <fs_out>-bankn."账号ls_bankdetail-bank_ref = <fs_out>-bkref."参考ls_bankdetail-bankdetailvalidfrom = <fs_out>-begda_yh."有效起始日期ls_bankdetail-bankdetailvalidto = <fs_out>-endda_yh."有效截至日期"插入银行信息IF lv_type EQ 'I'.CALL FUNCTION 'BAPI_BUPA_BANKDETAIL_ADD'EXPORTINGbusinesspartner = <fs_out>-lifnrbankdetaildata  = ls_bankdetailTABLESreturn          = lt_return2.ELSE."修改银行信息的日期ls_bankdetail_x-bankdetailvalidfrom = abap_true.ls_bankdetail_x-bankdetailvalidto = abap_true.CALL FUNCTION 'BAPI_BUPA_BANKDETAIL_CHANGE'EXPORTINGbusinesspartner  = <fs_out>-lifnrbankdetailid     = lv_bkvidbankdetaildata   = ls_bankdetailbankdetaildata_x = ls_bankdetail_xTABLESreturn           = lt_return2.ENDIF.CLEAR:lv_bkvid.LOOP AT lt_return2 TRANSPORTING NO FIELDS WHERE type CA 'AEX'.EXIT.ENDLOOP.IF sy-subrc = 0.<fs_out>-zcode = 'E'.<fs_out>-zmsgl = '供应商创建成功,银行信息更新失败' .<fs_out>-color = 'C610' .CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = abap_true.<fs_out>-zcode = 'S'.<fs_out>-zmsgl = '成功' .<fs_out>-color = 'C510' .CLEAR: lv_id .APPEND INITIAL LINE TO lt_zfis006 ASSIGNING <fs_zfis006> .TRY.CALL METHOD cl_system_uuid=>if_system_uuid_static~create_uuid_c32RECEIVINGuuid = lv_id.CATCH cx_uuid_error .MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDTRY.<fs_zfis006>-uuid  = lv_id .<fs_zfis006>-lifnr = <fs_out>-lifnr .<fs_zfis006>-pernr = <fs_out>-pernr .<fs_zfis006>-sname = <fs_out>-sname .<fs_zfis006>-begda = <fs_out>-begda .<fs_zfis006>-endda = <fs_out>-endda .IF rb_c = 'X' .<fs_zfis006>-ztask = 'C' .ELSEIF rb_m = 'X' .<fs_zfis006>-ztask = 'M' .ELSEIF rb_d = 'X' .<fs_zfis006>-ztask = 'D' .ENDIF .<fs_zfis006>-zcode = <fs_out>-zcode .<fs_zfis006>-zmsgl = <fs_out>-zmsgl .<fs_zfis006>-zdate = sy-datum .<fs_zfis006>-ztime = sy-uzeit .<fs_zfis006>-zname = sy-uname .ENDIF.
********** 更新银行信息ELSE.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.<fs_out>-zcode = 'E'.LOOP AT lt_msg INTO ls_msg WHERE type CA 'AEX'.<fs_out>-zmsgl = <fs_out>-zmsgl && ls_msg-message && '/'.ENDLOOP.<fs_out>-color = 'C610' .CLEAR: lv_id .APPEND INITIAL LINE TO lt_zfis006 ASSIGNING <fs_zfis006> .TRY.CALL METHOD cl_system_uuid=>if_system_uuid_static~create_uuid_c32RECEIVINGuuid = lv_id.CATCH cx_uuid_error .MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDTRY.<fs_zfis006>-uuid  = lv_id .<fs_zfis006>-lifnr = <fs_out>-lifnr .<fs_zfis006>-pernr = <fs_out>-pernr .<fs_zfis006>-sname = <fs_out>-sname .<fs_zfis006>-begda = <fs_out>-begda .<fs_zfis006>-endda = <fs_out>-endda .IF rb_c = 'X' .<fs_zfis006>-ztask = 'C' .ELSEIF rb_m = 'X' .<fs_zfis006>-ztask = 'M' .ELSEIF rb_d = 'X' .<fs_zfis006>-ztask = 'D' .ENDIF .<fs_zfis006>-zcode = <fs_out>-zcode .<fs_zfis006>-zmsgl = <fs_out>-zmsgl .<fs_zfis006>-zdate = sy-datum .<fs_zfis006>-ztime = sy-uzeit .<fs_zfis006>-zname = sy-uname .ENDIF.ENDLOOP .IF lt_zfis006[] IS NOT INITIAL .MODIFY zfis006 FROM TABLE lt_zfis006 .COMMIT WORK .ENDIF .MESSAGE: '操作完成' TYPE 'S' .
ENDFORM.

代码2

CASE SRM_SUPPLIER_IN-ZMOD.
WHEN 'ADD'.
SELECT MAX( BUT000~PARTNER )
INTO L_BPARTNER
FROM BUT000
WHERE BUT000~BU_GROUP = 'ST07'.
L_BPARTNER = L_BPARTNER + 1.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = L_BPARTNER
IMPORTING
OUTPUT = L_BPARTNER.
CALL FUNCTION 'CONVERSION_EXIT_ISOLA_INPUT'
EXPORTING
INPUT = 'ZH'
IMPORTING
OUTPUT = LS_ADDRESS-LANGU "语言
EXCEPTIONS
UNKNOWN_LANGUAGE = 1
OTHERS = 2.
L_PARTN_CAT = '2'.
L_PARTN_GRP = 'ST07'.
LS_CENTRAL-TITLE_KEY = '0003'. "称谓
LS_CENTRAL_ORGAN-NAME1 = SRM_SUPPLIER_IN-NAME_ORG1. "名称1IF SRM_SUPPLIER_IN-BU_SORT1 IS INITIAL.
LS_CENTRAL-SEARCHTERM1 = SRM_SUPPLIER_IN-NAME_ORG1(20). "检索项
ELSE.
LS_CENTRAL-SEARCHTERM1 = SRM_SUPPLIER_IN-BU_SORT1. "检索项
ENDIF.
LS_ADDRESS-STREET = SRM_SUPPLIER_IN-STREET. "街道
LS_ADDRESS-CITY = SRM_SUPPLIER_IN-CITY1. "城市
LS_ADDRESS-COUNTRY = 'CN'. "国家
CALL FUNCTION 'BAPI_BUPA_CREATE_FROM_DATA'
EXPORTING
BUSINESSPARTNEREXTERN = L_BPARTNER
PARTNERCATEGORY = L_PARTN_CAT
PARTNERGROUP = L_PARTN_GRP
CENTRALDATA = LS_CENTRAL
CENTRALDATAORGANIZATION = LS_CENTRAL_ORGAN
ADDRESSDATA = LS_ADDRESS
IMPORTING
BUSINESSPARTNER = L_BPARTNER
TABLES
RETURN = LT_RETURN1
.
CLEAR:RETURN_MESSAGE, L_MSG1.
LOOP AT LT_RETURN1 WHERE TYPE CA 'AEX'.CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
MSGID = LT_RETURN1-ID
MSGNR = LT_RETURN1-NUMBER
MSGV1 = LT_RETURN1-MESSAGE_V1
MSGV2 = LT_RETURN1-MESSAGE_V2
MSGV3 = LT_RETURN1-MESSAGE_V3
MSGV4 = LT_RETURN1-MESSAGE_V4
IMPORTING
MESSAGE_TEXT_OUTPUT = RETURN_MESSAGE.
L_MSG1 = L_MSG1 && '##' && RETURN_MESSAGE.
CLEAR RETURN_MESSAGE.
ENDLOOP.
IF L_MSG1 IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' "commit--信息提交
EXPORTING
WAIT = 'X'. "地址信息提交
L_VENDOR = L_BPARTNER.CLEAR LS_BAPIBUS1006_BANKDETAIL.
LS_BAPIBUS1006_BANKDETAIL-BANK_KEY = SRM_SUPPLIER_IN-BANKL.
LS_BAPIBUS1006_BANKDETAIL-BANK_CTRY = 'CN'. "银行国家
LS_BAPIBUS1006_BANKDETAIL-ACCOUNTHOLDER = SRM_SUPPLIER_IN-KOINH. "账户持有人
LS_BAPIBUS1006_BANKDETAIL-BANK_ACCT = SRM_SUPPLIER_IN-BANK_NO. "银行账户CLEAR LS_BAPIBUS1006_BANKDETAIL_X.
LS_BAPIBUS1006_BANKDETAIL_X-BANK_KEY = 'X'.
LS_BAPIBUS1006_BANKDETAIL_X-BANK_CTRY = 'X'.
LS_BAPIBUS1006_BANKDETAIL_X-ACCOUNTHOLDER = 'X'.
LS_BAPIBUS1006_BANKDETAIL_X-BANKACCOUNTNAME = 'X'.
CLEAR: LT_RETURN3, LT_RETURN3[].CALL FUNCTION 'BAPI_BUPA_BANKDETAIL_ADD'
EXPORTING
BUSINESSPARTNER = L_BPARTNER
BANKDETAILDATA = LS_BAPIBUS1006_BANKDETAIL
TABLES
RETURN = LT_RETURN3.
CLEAR L_MSG3.
LOOP AT LT_RETURN3 WHERE TYPE = 'E' OR TYPE = 'A'. " OR TYPE = 'W'.
CONCATENATE LT_RETURN3-MESSAGE L_MSG3 INTO L_MSG3 SEPARATED BY ';'. "银行信息创建不成功
CONDENSE L_MSG3.
ENDLOOP.
IF L_MSG3 = ''.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'. "银行信息提交(即银行信息创建成功)*分配角色
CLEAR: LT_RETURN4,LT_RETURN4[].
CALL FUNCTION 'BAPI_BUPA_ROLE_ADD_2' "财务视图
EXPORTING
BUSINESSPARTNER = L_BPARTNER
BUSINESSPARTNERROLECATEGORY = 'FLVN00'
BUSINESSPARTNERROLE = 'FLVN00'
TABLES
RETURN = LT_RETURN4.CLEAR L_MSG4.
LOOP AT LT_RETURN4 WHERE TYPE = 'E' OR TYPE = 'A'.
CONCATENATE LT_RETURN4-MESSAGE L_MSG4 INTO L_MSG4 SEPARATED BY ';'.
CONDENSE L_MSG4.
ENDLOOP.IF L_MSG4 = ''.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.CLEAR: LS_MASTER_DATA,LS_COMPANY,LT_MASTER_DATA.
LS_MASTER_DATA-HEADER-OBJECT_TASK = 'M'.
LS_MASTER_DATA-HEADER-OBJECT_INSTANCE-LIFNR = L_VENDOR.LS_MASTER_DATA-CENTRAL_DATA-CENTRAL-DATA-KTOKK = 'ST07'. "供应商帐户组
LS_MASTER_DATA-CENTRAL_DATA-CENTRAL-DATA-STENR = SRM_SUPPLIER_IN-TAXNUM."社会信用号LS_MASTER_DATA-CENTRAL_DATA-CENTRAL-DATAX-KTOKK = 'X'. "供应商帐户组
LS_MASTER_DATA-CENTRAL_DATA-CENTRAL-DATAX-STENR = 'X'."社会信用号LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-NAME = SRM_SUPPLIER_IN-NAME_ORG1+0(35). "名称1
LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-NAME_2 = SRM_SUPPLIER_IN-NAME_ORG1+35(5). "名称2
IF SRM_SUPPLIER_IN-BU_SORT1 IS INITIAL.
LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-SORT1 = SRM_SUPPLIER_IN-NAME_ORG1+0(20). "检索项
ELSE.
LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-SORT1 = SRM_SUPPLIER_IN-BU_SORT1. "属性(SAP为搜索项 1)
ENDIF.LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-STREET = SRM_SUPPLIER_IN-STREET. "街道/门牌号
LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-CITY = SRM_SUPPLIER_IN-CITY1. "城市
LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-COUNTRY = 'CN'. "国家
LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-LANGU = '1'. "语言LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-NAME = 'X'. "名称1
LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-NAME_2 = 'X'. "名称2
LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-SORT1 = 'X'. "属性(SAP为搜索项 1)
LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-STREET = 'X'. "街道/门牌号
LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-CITY = 'X'. "城市
LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-COUNTRY = 'X'. "国家
LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-LANGU = 'X'. "语言LS_COMPANY-TASK = 'M'.
LS_COMPANY-DATA_KEY-BUKRS = '6010'. "公司代码
LS_COMPANY-DATA-AKONT = '2202020000'. "统驭科目
LS_COMPANY-DATAX-AKONT = 'X'.
LS_COMPANY-DATA-ZTERM = SRM_SUPPLIER_IN-ZTERM. "付款条件
LS_COMPANY-DATAX-ZTERM = 'X'.
LS_COMPANY-DATA-ZWELS = 'BEFGHIJKLM'. "付款方式
LS_COMPANY-DATAX-ZWELS = 'X'.
APPEND LS_COMPANY TO LS_MASTER_DATA-COMPANY_DATA-COMPANY.
LS_COMPANY-DATA_KEY-BUKRS = '7010'. "公司代码
APPEND LS_COMPANY TO LS_MASTER_DATA-COMPANY_DATA-COMPANY.
LS_COMPANY-DATA_KEY-BUKRS = '8010'. "公司代码
APPEND LS_COMPANY TO LS_MASTER_DATA-COMPANY_DATA-COMPANY.
LS_COMPANY-DATA_KEY-BUKRS = '9010'. "公司代码
APPEND LS_COMPANY TO LS_MASTER_DATA-COMPANY_DATA-COMPANY.
LS_COMPANY-DATA_KEY-BUKRS = '9020'. "公司代码
APPEND LS_COMPANY TO LS_MASTER_DATA-COMPANY_DATA-COMPANY.APPEND LS_MASTER_DATA TO LT_MASTER_DATA-VENDORS[].
VMD_EI_API=>INITIALIZE( ).CALL METHOD VMD_EI_API=>MAINTAIN_BAPI
EXPORTING
IS_MASTER_DATA = LT_MASTER_DATA
IMPORTING
ES_MASTER_DATA_CORRECT = L1
ES_MESSAGE_CORRECT = L2
ES_MASTER_DATA_DEFECTIVE = L3
ES_MESSAGE_DEFECTIVE = L4.IF L4-IS_ERROR = ''.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.FREE: LS_MASTER_DATA,LS_PURCHASING,LT_MASTER_DATA.
CLEAR: LS_MASTER_DATA,LS_PURCHASING,LT_MASTER_DATA,LT_MASTER_DATA-VENDORS[].
CALL FUNCTION 'BAPI_BUPA_ROLE_ADD_2'
EXPORTING
BUSINESSPARTNER = L_BPARTNER
BUSINESSPARTNERROLECATEGORY = 'FLVN01'
BUSINESSPARTNERROLE = 'FLVN01'
TABLES
RETURN = LT_RETURN5.
LOOP AT LT_RETURN5 WHERE TYPE = 'E' OR TYPE = 'A'.
CONCATENATE LT_RETURN5-MESSAGE L_MSG5 INTO L_MSG4 SEPARATED BY ';'.
CONDENSE L_MSG5.
ENDLOOP.
IF L_MSG5 = ''.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' "角色信息提交(即角色创建成功)
EXPORTING
WAIT = 'X'.
LS_MASTER_DATA-HEADER-OBJECT_TASK = 'M'.
LS_MASTER_DATA-HEADER-OBJECT_INSTANCE-LIFNR = L_BPARTNER.
LS_MASTER_DATA-CENTRAL_DATA-CENTRAL-DATA-KTOKK = 'ST07'. "供应商帐户组
LS_MASTER_DATA-CENTRAL_DATA-CENTRAL-DATAX-KTOKK = 'X'. "供应商帐户组
"采购数据
LS_MASTER_DATA-PURCHASING_DATA-CURRENT_STATE = 'X'. "采购完成数据的标识
LS_PURCHASING-FUNCTIONS-CURRENT_STATE = 'X'."合作伙伴完成数据的标识
LS_PURCHASING-TASK = 'M'.
LS_PURCHASING-DATA_KEY-EKORG = '6010'.
LS_PURCHASING-DATA-WAERS = 'CNY'.
LS_PURCHASING-DATAX-WAERS = 'X'.
LS_PURCHASING-DATA-ZTERM = SRM_SUPPLIER_IN-ZTERM.
LS_PURCHASING-DATAX-ZTERM = 'X'.
LS_PURCHASING-DATA-VERKF = SRM_SUPPLIER_IN-VERKF.
LS_PURCHASING-DATAX-VERKF = 'X'.
LS_PURCHASING-DATA-TELF1 = SRM_SUPPLIER_IN-TELF1.
LS_PURCHASING-DATAX-TELF1 = 'X'.LS_FUNCTIONS-TASK = 'M'.
LS_FUNCTIONS-DATA_KEY-PARVW = 'BA'.
APPEND LS_FUNCTIONS TO LS_PURCHASING-FUNCTIONS-FUNCTIONS.LS_FUNCTIONS-DATA_KEY-PARVW = 'LF'.
APPEND LS_FUNCTIONS TO LS_PURCHASING-FUNCTIONS-FUNCTIONS.LS_FUNCTIONS-DATA_KEY-PARVW = 'RS'.
APPEND LS_FUNCTIONS TO LS_PURCHASING-FUNCTIONS-FUNCTIONS.APPEND LS_PURCHASING TO LS_MASTER_DATA-PURCHASING_DATA-PURCHASING.LS_PURCHASING-DATA_KEY-EKORG = '9010'.APPEND LS_PURCHASING TO LS_MASTER_DATA-PURCHASING_DATA-PURCHASING.APPEND LS_MASTER_DATA TO LT_MASTER_DATA-VENDORS[].VMD_EI_API=>INITIALIZE( ).CALL METHOD VMD_EI_API=>MAINTAIN_BAPI
EXPORTING
IV_COLLECT_MESSAGES = 'X'
IS_MASTER_DATA = LT_MASTER_DATA
IMPORTING
ES_MASTER_DATA_CORRECT = L1
ES_MESSAGE_CORRECT = L2
ES_MASTER_DATA_DEFECTIVE = L3
ES_MESSAGE_DEFECTIVE = L5.IF L5-IS_ERROR = ''.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
SRM_SUPPLIER_RETURN-LIFNR = L_BPARTNER.
SRM_SUPPLIER_RETURN-INFO = '供应商主数据创建成功'.
RETURN-ZMESS = '供应商主数据创建成功'.
RETURN-ZISOK = 'Y'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.DATA LS_L5 LIKE LINE OF L5-MESSAGES.
LOOP AT L5-MESSAGES INTO LS_L5 WHERE TYPE = 'E' OR TYPE = 'A'.
CONCATENATE L_MSGL5 LS_L5-MESSAGE INTO L_MSGL5 SEPARATED BY ';'.
CONDENSE L_MSGL5.
ENDLOOP.
SRM_SUPPLIER_RETURN-LIFNR = L_BPARTNER.
SRM_SUPPLIER_RETURN-INFO = L_MSGL5 .
RETURN-ZMESS = '业务伙伴创建成功,创建采购视图失败'.
RETURN-ZISOK = 'N'.
ENDIF.
ELSE.
SRM_SUPPLIER_RETURN-LIFNR = L_BPARTNER.
SRM_SUPPLIER_RETURN-INFO = L_MSGL5 .
RETURN-ZMESS = '业务伙伴创建成功,创建采购视图基础失败'.
RETURN-ZISOK = 'N'.
ENDIF.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.DATA LS_L4 LIKE LINE OF L4-MESSAGES.
LOOP AT L4-MESSAGES INTO LS_L4 WHERE TYPE = 'E' OR TYPE = 'A'.
CONCATENATE L_MSGL4 LS_L4-MESSAGE INTO L_MSGL4 SEPARATED BY ';'.
CONDENSE L_MSGL4.
ENDLOOP.
SRM_SUPPLIER_RETURN-LIFNR = L_BPARTNER.
SRM_SUPPLIER_RETURN-INFO = L_MSGL4 .
RETURN-ZMESS = '创建业务合作伙伴成功,创建财务视图失败'.
RETURN-ZISOK = 'N'.ENDIF.ELSE.
ROLLBACK WORK.
SRM_SUPPLIER_RETURN-LIFNR = L_BPARTNER.
SRM_SUPPLIER_RETURN-INFO = L_MSG4.
RETURN-ZMESS = '业务伙伴创建成功,创建财务视图基础失败'.
RETURN-ZISOK = 'N'.
ENDIF.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
SRM_SUPPLIER_RETURN-LIFNR = L_BPARTNER.
SRM_SUPPLIER_RETURN-INFO = L_MSG3 .
RETURN-ZMESS = '创建业务合作伙伴成功,创建银行信息失败'.
RETURN-ZISOK = 'N'.ENDIF.ELSE.
ROLLBACK WORK.
CLEAR:RETURN_MESSAGE.
SRM_SUPPLIER_RETURN-LIFNR = L_BPARTNER.
SRM_SUPPLIER_RETURN-INFO = L_MSG1.
RETURN-ZMESS = '业务伙伴创建失败'.
RETURN-ZISOK = 'N'.
ENDIF.
RETURN-ZNUM = ZNUM.
RETURN-DATUM = SY-DATUM.
RETURN-UZEIT = SY-UZEIT.WHEN 'MOD'.CALL FUNCTION 'CONVERSION_EXIT_ISOLA_INPUT'
EXPORTING
INPUT = 'ZH'
IMPORTING
OUTPUT = LS_ADDRESS-LANGU "语言
EXCEPTIONS
UNKNOWN_LANGUAGE = 1
OTHERS = 2.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = SRM_SUPPLIER_IN-PARTNER
IMPORTING
OUTPUT = L_BPARTNER.
SELECT SINGLE *
FROM BUT000
WHERE PARTNER = L_BPARTNER
AND BU_GROUP = 'ST07'.
IF SY-SUBRC NE 0.
SRM_SUPPLIER_RETURN-LIFNR = L_BPARTNER.
SRM_SUPPLIER_RETURN-INFO = '业务合作伙伴' && L_BPARTNER && '在SAP中不存在,不允许修改.'.
RETURN-ZMESS = '业务合作伙伴' && L_BPARTNER && '在SAP中不存在,不允许修改.'.
RETURN-ZISOK = 'N'.
RETURN-ZNUM = ZNUM.
RETURN-DATUM = SY-DATUM.
RETURN-UZEIT = SY-UZEIT.ENDIF.L_PARTN_CAT = '2'.
L_PARTN_GRP = 'ST07'.
LS_CENTRAL-TITLE_KEY = '0003'. "称谓
LS_CENTRALDATA_X-TITLE_KEY = 'X'.
LS_CENTRAL_ORGAN-NAME1 = SRM_SUPPLIER_IN-NAME_ORG1. "名称1
LS_CENTRALDATAORGANIZATION_X-NAME1 = 'X'.
IF SRM_SUPPLIER_IN-BU_SORT1 IS INITIAL.
LS_CENTRAL-SEARCHTERM1 = SRM_SUPPLIER_IN-NAME_ORG1(20). "检索项
ELSE.
LS_CENTRAL-SEARCHTERM1 = SRM_SUPPLIER_IN-BU_SORT1. "检索项
ENDIF.
LS_CENTRALDATA_X-SEARCHTERM1 = 'X'.
IF SRM_SUPPLIER_IN-ZTYPE = 'D'.
LS_CENTRAL-CENTRALARCHIVINGFLAG = 'X'. "中心归档标记
ENDIF.
LS_ADDRESS-STREET = SRM_SUPPLIER_IN-STREET. "街道
LS_ADDRESS-CITY = SRM_SUPPLIER_IN-CITY1. "城市
LS_ADDRESS-COUNTRY = 'CN'. "国家
SY-LANGU = '1'.
CALL FUNCTION 'BAPI_BUPA_CENTRAL_CHANGE'
EXPORTING
BUSINESSPARTNER = L_BPARTNER
CENTRALDATA = LS_CENTRAL
CENTRALDATAORGANIZATION = LS_CENTRAL_ORGAN
CENTRALDATA_X = LS_CENTRALDATA_X
CENTRALDATAORGANIZATION_X = LS_CENTRALDATAORGANIZATION_X
TABLES
RETURN = LT_RETURN1.
CLEAR:RETURN_MESSAGE, L_MSG1. "20160721新增
LOOP AT LT_RETURN1 WHERE TYPE CA 'AEX'.CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
MSGID = LT_RETURN1-ID
MSGNR = LT_RETURN1-NUMBER
MSGV1 = LT_RETURN1-MESSAGE_V1
MSGV2 = LT_RETURN1-MESSAGE_V2
MSGV3 = LT_RETURN1-MESSAGE_V3
MSGV4 = LT_RETURN1-MESSAGE_V4
IMPORTING
MESSAGE_TEXT_OUTPUT = RETURN_MESSAGE.
L_MSG1 = L_MSG1 && '##' && RETURN_MESSAGE.
CLEAR RETURN_MESSAGE.
ENDLOOP.
IF L_MSG1 IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' "commit--信息提交
EXPORTING
WAIT = 'X'. "地址信息提交CLEAR LS_BAPIBUS1006_BANKDETAIL.
LS_BAPIBUS1006_BANKDETAIL-BANK_KEY = SRM_SUPPLIER_IN-BANKL.
LS_BAPIBUS1006_BANKDETAIL-BANK_CTRY = 'CN'. "银行国家
LS_BAPIBUS1006_BANKDETAIL-ACCOUNTHOLDER = SRM_SUPPLIER_IN-KOINH. "账户持有人
LS_BAPIBUS1006_BANKDETAIL-BANK_ACCT = SRM_SUPPLIER_IN-BANK_NO. "银行账户CLEAR LS_BAPIBUS1006_BANKDETAIL_X.
LS_BAPIBUS1006_BANKDETAIL_X-BANK_KEY = 'X'.
LS_BAPIBUS1006_BANKDETAIL_X-BANK_CTRY = 'X'.
LS_BAPIBUS1006_BANKDETAIL_X-ACCOUNTHOLDER = 'X'.
LS_BAPIBUS1006_BANKDETAIL_X-BANK_ACCT = 'X'.
CLEAR: LT_RETURN3, LT_RETURN3[].
CALL FUNCTION 'BAPI_BUPA_BANKDETAIL_CHANGE' "银行信息
EXPORTING
BUSINESSPARTNER = L_BPARTNER
BANKDETAILID = '0001'
BANKDETAILDATA = LS_BAPIBUS1006_BANKDETAIL
BANKDETAILDATA_X = LS_BAPIBUS1006_BANKDETAIL_X
TABLES
RETURN = LT_RETURN3.CLEAR L_MSG3.
LOOP AT LT_RETURN3 WHERE TYPE = 'E' OR TYPE = 'A'. " OR TYPE = 'W'.
CONCATENATE LT_RETURN3-MESSAGE L_MSG3 INTO L_MSG3 SEPARATED BY ';'. "银行信息修改不成功
CONDENSE L_MSG3.
ENDLOOP.
IF L_MSG3 = ''.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'. "银行信息提交(即银行信息修改成功)CLEAR: LS_ADDRESS, LS_ADDRESS_X.
LS_ADDRESS-COUNTRY = 'CN'.
LS_ADDRESS-CITY = SRM_SUPPLIER_IN-CITY1.
LS_ADDRESS-STREET = SRM_SUPPLIER_IN-STREET.
LS_ADDRESS-LANGU = 1.LS_ADDRESS_X-COUNTRY = 'X'.
LS_ADDRESS_X-CITY = 'X'.
LS_ADDRESS_X-STREET = 'X'.
LS_ADDRESS_X-LANGU = 'X'.
CLEAR LT_BAPIADTEL.
LT_BAPIADTEL-STD_NO = 'X'.* LT_BAPIADTEL-EXTENSION = GS_ITAB-TEL_EXTENS. "电话-分机
APPEND LT_BAPIADTEL.CLEAR LT_BAPIADTEL_X.
LT_BAPIADTEL_X-STD_NO = 'X'.
LT_BAPIADTEL_X-TELEPHONE = 'X'. "电话
APPEND LT_BAPIADTEL_X.CALL FUNCTION 'BAPI_BUPA_ADDRESS_CHANGE'
EXPORTING
BUSINESSPARTNER = L_BPARTNER
ADDRESSDATA = LS_ADDRESS
ADDRESSDATA_X = LS_ADDRESS_X
TABLES
BAPIADTEL = LT_BAPIADTEL
BAPIADFAX = LT_BAPIADFAX
BAPIADTEL_X = LT_BAPIADTEL_X
BAPIADFAX_X = LT_BAPIADFAX_X
RETURN = LT_RETURN2.
CLEAR L_MSG4. "20160721新增
LOOP AT LT_RETURN2 WHERE TYPE = 'E' OR TYPE = 'A'. " OR TYPE = 'W'.
CONCATENATE LT_RETURN2-MESSAGE L_MSG4 INTO L_MSG4 SEPARATED BY ';'.
CONDENSE L_MSG4.
ENDLOOP.
IF L_MSG4 = ''.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.CLEAR: LS_MASTER_DATA,LS_COMPANY,LT_MASTER_DATA.
LS_MASTER_DATA-HEADER-OBJECT_TASK = 'M'.
LS_MASTER_DATA-HEADER-OBJECT_INSTANCE-LIFNR = L_BPARTNER.LS_MASTER_DATA-CENTRAL_DATA-CENTRAL-DATA-KTOKK = 'ST07'. "供应商帐户组
LS_MASTER_DATA-CENTRAL_DATA-CENTRAL-DATA-STENR = SRM_SUPPLIER_IN-TAXNUM."社会信用号LS_MASTER_DATA-CENTRAL_DATA-CENTRAL-DATAX-KTOKK = 'X'. "供应商帐户组
LS_MASTER_DATA-CENTRAL_DATA-CENTRAL-DATAX-STENR = 'X'."社会信用号
IF SRM_SUPPLIER_IN-ZTYPE = 'F'.
LS_MASTER_DATA-CENTRAL_DATA-CENTRAL-DATA-SPERR = 'X'."中心记账冻结
LS_MASTER_DATA-CENTRAL_DATA-CENTRAL-DATA-SPERM = 'X'."采购组织冻结
LS_MASTER_DATA-CENTRAL_DATA-CENTRAL-DATAX-SPERR = 'X'."记账冻结
LS_MASTER_DATA-CENTRAL_DATA-CENTRAL-DATAX-SPERM = 'X'."采购组织冻结
ENDIF.LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-NAME = SRM_SUPPLIER_IN-NAME_ORG1+0(35). "名称1
LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-NAME_2 = SRM_SUPPLIER_IN-NAME_ORG1+35(5). "名称2
IF SRM_SUPPLIER_IN-BU_SORT1 IS INITIAL.
LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-SORT1 = SRM_SUPPLIER_IN-NAME_ORG1(20). "检索项
ELSE.
LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-SORT1 = SRM_SUPPLIER_IN-BU_SORT1. "属性(SAP为搜索项 1)
ENDIF.LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-STREET = SRM_SUPPLIER_IN-STREET. "街道/门牌号
LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-CITY = SRM_SUPPLIER_IN-CITY1. "城市
LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-COUNTRY = 'CN'. "国家LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATA-LANGU = 1.LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-NAME = 'X'. "名称1
LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-NAME_2 = 'X'. "名称2
LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-SORT1 = 'X'. "属性(SAP为搜索项 1)
LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-STREET = 'X'. "街道/门牌号
LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-CITY = 'X'. "城市
LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-COUNTRY = 'X'. "国家
LS_MASTER_DATA-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-LANGU = 'X'. "语言LS_COMPANY-TASK = 'M'.
LS_COMPANY-DATA_KEY-BUKRS = '6010'. "公司代码
LS_COMPANY-DATA-AKONT = '2202020000'. "统驭科目
LS_COMPANY-DATAX-AKONT = 'X'.
LS_COMPANY-DATA-ZTERM = SRM_SUPPLIER_IN-ZTERM. "付款条件
LS_COMPANY-DATAX-ZTERM = 'X'.
LS_COMPANY-DATA-ZWELS = 'BEFGHIJKLM'. "付款方式
LS_COMPANY-DATAX-ZWELS = 'X'.
APPEND LS_COMPANY TO LS_MASTER_DATA-COMPANY_DATA-COMPANY.
LS_COMPANY-DATA_KEY-BUKRS = '7010'. "公司代码
APPEND LS_COMPANY TO LS_MASTER_DATA-COMPANY_DATA-COMPANY.
LS_COMPANY-DATA_KEY-BUKRS = '8010'. "公司代码
APPEND LS_COMPANY TO LS_MASTER_DATA-COMPANY_DATA-COMPANY.
LS_COMPANY-DATA_KEY-BUKRS = '9010'. "公司代码
APPEND LS_COMPANY TO LS_MASTER_DATA-COMPANY_DATA-COMPANY.
LS_COMPANY-DATA_KEY-BUKRS = '9020'. "公司代码APPEND LS_COMPANY TO LS_MASTER_DATA-COMPANY_DATA-COMPANY.APPEND LS_MASTER_DATA TO LT_MASTER_DATA-VENDORS[].VMD_EI_API=>INITIALIZE( ).CALL METHOD VMD_EI_API=>MAINTAIN_BAPI
EXPORTING
IS_MASTER_DATA = LT_MASTER_DATA
IMPORTING
ES_MASTER_DATA_CORRECT = L1
ES_MESSAGE_CORRECT = L2
ES_MASTER_DATA_DEFECTIVE = L3
ES_MESSAGE_DEFECTIVE = L4.IF L4-IS_ERROR = ''.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.*******采购组织
FREE: LS_MASTER_DATA,LS_PURCHASING,LT_MASTER_DATA.
CLEAR: LS_MASTER_DATA,LS_PURCHASING,LT_MASTER_DATA,LT_MASTER_DATA-VENDORS[].
CALL FUNCTION 'BAPI_BUPA_ROLE_ADD_2'
EXPORTING
BUSINESSPARTNER = L_BPARTNER
BUSINESSPARTNERROLECATEGORY = 'FLVN01'
BUSINESSPARTNERROLE = 'FLVN01'
TABLES
RETURN = LT_RETURN5.
LOOP AT LT_RETURN5 WHERE TYPE = 'E' OR TYPE = 'A'.
CONCATENATE LT_RETURN5-MESSAGE L_MSG5 INTO L_MSG4 SEPARATED BY ';'.
CONDENSE L_MSG5.
ENDLOOP.
IF L_MSG5 = ''.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' "角色信息提交(即角色创建成功)
EXPORTING
WAIT = 'X'.
LS_MASTER_DATA-HEADER-OBJECT_TASK = 'M'.
LS_MASTER_DATA-HEADER-OBJECT_INSTANCE-LIFNR = L_BPARTNER.
LS_MASTER_DATA-CENTRAL_DATA-CENTRAL-DATA-KTOKK = 'ST07'. "供应商帐户组
LS_MASTER_DATA-CENTRAL_DATA-CENTRAL-DATAX-KTOKK = 'X'. "供应商帐户组
"采购数据
LS_MASTER_DATA-PURCHASING_DATA-CURRENT_STATE = 'X'. "采购完成数据的标识
LS_PURCHASING-FUNCTIONS-CURRENT_STATE = 'X'."合作伙伴完成数据的标识
LS_PURCHASING-TASK = 'M'.
LS_PURCHASING-DATA_KEY-EKORG = '6010'.
LS_PURCHASING-DATA-WAERS = 'CNY'.
LS_PURCHASING-DATAX-WAERS = 'X'.
LS_PURCHASING-DATA-ZTERM = SRM_SUPPLIER_IN-ZTERM.
LS_PURCHASING-DATAX-ZTERM = 'X'.
LS_PURCHASING-DATA-VERKF = SRM_SUPPLIER_IN-VERKF.
LS_PURCHASING-DATAX-VERKF = 'X'.
LS_PURCHASING-DATA-TELF1 = SRM_SUPPLIER_IN-TELF1.
LS_PURCHASING-DATAX-TELF1 = 'X'.LS_FUNCTIONS-TASK = 'M'.
LS_FUNCTIONS-DATA_KEY-PARVW = 'BA'.
APPEND LS_FUNCTIONS TO LS_PURCHASING-FUNCTIONS-FUNCTIONS.LS_FUNCTIONS-DATA_KEY-PARVW = 'LF'.
APPEND LS_FUNCTIONS TO LS_PURCHASING-FUNCTIONS-FUNCTIONS.LS_FUNCTIONS-DATA_KEY-PARVW = 'RS'.
APPEND LS_FUNCTIONS TO LS_PURCHASING-FUNCTIONS-FUNCTIONS.APPEND LS_PURCHASING TO LS_MASTER_DATA-PURCHASING_DATA-PURCHASING.LS_PURCHASING-DATA_KEY-EKORG = '9010'.APPEND LS_PURCHASING TO LS_MASTER_DATA-PURCHASING_DATA-PURCHASING.APPEND LS_MASTER_DATA TO LT_MASTER_DATA-VENDORS[].VMD_EI_API=>INITIALIZE( ).CALL METHOD VMD_EI_API=>MAINTAIN_BAPI
EXPORTING
IV_COLLECT_MESSAGES = 'X'
IS_MASTER_DATA = LT_MASTER_DATA
IMPORTING
ES_MASTER_DATA_CORRECT = L1
ES_MESSAGE_CORRECT = L2
ES_MASTER_DATA_DEFECTIVE = L3
ES_MESSAGE_DEFECTIVE = L5.IF L5-IS_ERROR = ''.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
SRM_SUPPLIER_RETURN-LIFNR = L_BPARTNER.
SRM_SUPPLIER_RETURN-INFO = '供应商主数据修改成功'.
RETURN-ZMESS = '供应商主数据修改成功'.
RETURN-ZISOK = 'Y'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.LOOP AT L5-MESSAGES INTO LS_L5 WHERE TYPE = 'E' OR TYPE = 'A'.
CONCATENATE L_MSGL5 LS_L5-MESSAGE INTO L_MSGL5 SEPARATED BY ';'.
CONDENSE L_MSGL5.
ENDLOOP.
SRM_SUPPLIER_RETURN-LIFNR = L_BPARTNER.
SRM_SUPPLIER_RETURN-INFO = L_MSGL5 .
RETURN-ZMESS = '业务伙伴修改成功,修改采购视图失败'.
RETURN-ZISOK = 'N'.
ENDIF.ELSE.
SRM_SUPPLIER_RETURN-LIFNR = L_BPARTNER.
SRM_SUPPLIER_RETURN-INFO = L_MSGL5 .
RETURN-ZMESS = '业务伙伴修改成功,修改采购视图基础失败'.
RETURN-ZISOK = 'N'.ENDIF.ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.LOOP AT L4-MESSAGES INTO LS_L4 WHERE TYPE = 'E' OR TYPE = 'A'.
CONCATENATE L_MSGL4 LS_L4-MESSAGE INTO L_MSGL4 SEPARATED BY ';'.
CONDENSE L_MSGL4.
ENDLOOP.
SRM_SUPPLIER_RETURN-LIFNR = L_BPARTNER.
SRM_SUPPLIER_RETURN-INFO = L_MSGL4 .
RETURN-ZMESS = '供应商主数据修改成功,修改财务视图失败'.
RETURN-ZISOK = 'N'.ENDIF.ELSE.
ROLLBACK WORK.
SRM_SUPPLIER_RETURN-LIFNR = L_BPARTNER.
SRM_SUPPLIER_RETURN-INFO = L_MSG4.
RETURN-ZMESS = '供应商主数据修改成功,修改财务视图基础失败'.
RETURN-ZISOK = 'N'.
ENDIF.ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
SRM_SUPPLIER_RETURN-LIFNR = L_BPARTNER.
SRM_SUPPLIER_RETURN-INFO = L_MSG3 .
RETURN-ZMESS = '修改业务合作伙伴成功,修改银行信息失败'.
RETURN-ZISOK = 'N'.
ENDIF.ELSE.
ROLLBACK WORK.
CLEAR:RETURN_MESSAGE.
SRM_SUPPLIER_RETURN-LIFNR = L_BPARTNER.
SRM_SUPPLIER_RETURN-INFO = L_MSG1.
RETURN-ZMESS = '业务伙伴修改失败'.
RETURN-ZISOK = 'N'.
ENDIF.
RETURN-ZNUM = ZNUM.
RETURN-DATUM = SY-DATUM.
RETURN-UZEIT = SY-UZEIT.ENDCASE.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/774747.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue添加监听页面未操作倒计时-跳转页面

1、声明定时器变量 countDown: 120, countDownTimer: null, 2、倒计时函数 // 倒计时countDownFun() {this.countDownTimer setInterval(() > {this.countDown - 1;if (this.countDown < 0) {clearInterval(this.countDownTimer);this.countDownTimer null;localStor…

SpringBoot学习笔记一、SpringBoot应用初创建以及应用

一、创建SpringBoot的两种方式 1.Spring Initializr方式创建 &#xff08;1&#xff09;第一步在IDEA中选择 File-->NEW-->Project &#xff0c;选择 Spring Initializr &#xff0c;指定Maven坐标、包名、指定 JDK 版本 1.8 &#xff0c;然后点击Next 。如下图&#x…

AcWing 1247.后缀表达式

思路&#xff1a;贪心 由题目中我们可以知道&#xff0c;我们需要计算的是一个后缀表达式&#xff0c;要求尽可能的运算出最大的数。它给了我们加号和负号&#xff0c;让我们自己安排需要怎么做。 其实这里涉及到一个小学的知识点&#xff0c;也就是在括号遇到负号的时候&…

配置文件 application properties

配置文件 application properties 1 参数交由配置文件集中管理 Value(“${}”)用于外部配置的属性注入 在之前编写的程序中进行文件上传时&#xff0c;需要调用AliOSSUtils工具类&#xff0c;将文件上传到阿里云OSS对象存储服务当中。而在调用工具类进行文件上传时&#xff0c…

tensorflow安装以及在Anaconda中安装使用

在遥感领域进行深度学习时&#xff0c;通常使用python进行深度学习&#xff0c;会使用到tensorflow的安装&#xff0c;今天小编就给大家介绍如何在Anaconda中安装tensorflow&#xff01; 下载Anaconda Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open…

文件服务: 功能介绍

文章目录 一、需求背景二、核心功能1、功能要求2、非工能要求 三、存储方式四、实现方式五、技术栈说明 一、需求背景 二、核心功能 1、功能要求 文件上传文件预览文件分片上传文件分片合并文件秒传文件断点续传文件下载 2、非工能要求 高扩展性&#xff1a;方便添加新的存…

浮动布局与定位布局

目录 前言: 浮动布局&#xff08;Float Layout&#xff09;: 定位布局&#xff08;Positioning Layout&#xff09;: 1.传统布局: 1.1文档流布局: 1.1.1基本的布局方式: 1.1.2 块级元素: 1.1.3调整元素: 1.2浮动布局: 1.2.1浮动布局允许元素向左或向右浮动&#xff0c;使…

前端学习-HTML基础

一、简介 1.介绍 网页就是html文件&#xff0c;前端编写代码->浏览器解析代码->呈现网页 谷歌浏览器Blink内核最好 2.Web标准 让网页设计排版更统一规范 结构&#xff1a;对网页元素进行整理和分类&#xff0c;html 表现&#xff1a;设置网页元素的板式、颜色、大小等外…

PTL库位电子标签系统仓库目视化管理解决方案

PTL库位电子标签系统是一种先进的仓库管理技术&#xff0c;通过数字化和智能化手段实现了仓库目视化管理&#xff0c;为仓储行业带来了革命性的改变。本文将从PTL库位电子标签系统的特点、优势以及在仓库目视化管理中的应用等方面进行探讨。 PTL库位电子标签系统具有以下特点&a…

握手和挥手

TCP/IP协议的三次握手四次挥手 就是ACK发来发去 位于OSI模型的哪层&#xff1a; Tcp协议&#xff1a;传输层&#xff08;类似的还有websocket的 wss协议&#xff09; http协议&#xff1a;应用层 挥手的契机是nodejs的http模块决定的 如果没有开启请求头的Connection: keep-al…

STM32F10X开发环境的搭建

一、keil软件安装 找到keil软件包&#xff0c;解压缩&#xff0c;找到keil5安装软件&#xff1a; 鼠标右键选择以管理员权限运行。点击next&#xff0c;直到安装结束。 安装完成后在桌面会出现keil5软件图标&#xff1a; 然后再安装相应的芯片支持包&#xff1a;我们用的是stm…

精酿啤酒:多阶段发酵工艺的特点与优势

Fendi Club啤酒采用多阶段发酵工艺&#xff0c;这种工艺在啤酒酿造中具有显著的特点和优势。 首先&#xff0c;多阶段发酵工艺是一种复杂的酿造过程&#xff0c;它包括多个阶段的发酵和陈化过程。这种工艺需要切确控制每个阶段的时间、温度和酵母种类等参数&#xff0c;以确保…

基于DWT(离散小波变换)的图像水印算法,Matlab实现

博主简介&#xff1a; 专注、专一于Matlab图像处理学习、交流&#xff0c;matlab图像代码代做/项目合作可以联系&#xff08;QQ:3249726188&#xff09; 个人主页&#xff1a;Matlab_ImagePro-CSDN博客 原则&#xff1a;代码均由本人编写完成&#xff0c;非中介&#xff0c;提供…

商标跨类异议与跨类保护!

有个朋友对普推知产老杨说收到某邮件&#xff0c;名下商标让某公司抢注了现在公告期&#xff0c;让赶紧提出来异议去处理下&#xff0c;怎么会有这样的事&#xff0c;相同的名称基本上在同类别相关产品是无法公告和获得初审的。 经详细检索分析后&#xff0c;发现不是这样一回…

easyx查找算法可视化--顺序查找/二分查找/分块查找

&#x1f482; 个人主页:pp不会算法^ v ^ &#x1f91f; 版权: 本文由【pp不会算法v】原创、在CSDN首发、需要转载请联系博主 &#x1f4ac; 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 文章目录 概述演示源码获取 概述 #顺序存储的顺序查找 √ #链式存…

python 中判断文件、目录是否存在的方法

判断目录是否存在并创建目录 一、实现上传文件功能二、判断目录是否存在的办法2.1、使用os模块2.1.1、判断目录是否存在2.1.2、os.makedirs()&#xff1a;递归创建目录 2.2、使用pathlib模块2.2.1、path.exist()判断目录是否存在2.2.1、path.mkdir()&#xff1a;创建目录 2.3、…

Unity3d C#转换微信小游戏 Dotween插件在苹果(IOS)设备中异常问题高性能模式修复

问题 使用minigame-unity-webgl-transform插件转换微信小游戏&#xff0c;功能在安卓和开发工具上都能正常&#xff0c;不过使用Dotween(版本DOTweenPro v1.0.244)插件实现的功能在苹果系统中却都不能正常对比如下&#xff1a; 云移动正常&#xff1a; 云移动IOS异常&#x…

3-iperf3 使用什么工具可以检测网络带宽、延迟和数据包丢失率等网络性能参数呢?

(1)iperf3简介 1.iperf3简介 2.用途&#xff08;特点&#xff09; 3.下载iperf3地址 &#xff08;2&#xff09;实战 1.iperf3参数 &#xff08;1&#xff09;通用参数&#xff08;客户端和服务器端都是适用的&#xff09; &#xff08;2&#xff09;客户端参数 实验1&…

题目:合唱队形(蓝桥OJ 0724)

问题描述&#xff1a; 解题思路&#xff1a; LIS的拓展&#xff0c;枚举i&#xff0c;以i位置为最长上升子序列的终点、最长下降子序列的起点。将上升与下降的值相加得以i位置为最高点得队形总人数。最后比较每个i位置&#xff08;1~n&#xff09;总人数的大小得最大队形总人数…

企业产品网络安全建设日志3月20

今天主要以下几个事情 确定了OCI当前情况下&#xff0c;更新某安全配置会导致链接中断 这问题说大不大&#xff0c;说小不小。 由此引申出各云服务器产品的完善度&#xff1a; AWS&#xff1e;OCI&#xff1e;其他 国内一些安全公司提供的WAF功能&#xff0c;缺点在于其全球的…