SAP BP客商维护BAPIAPI

编程入门 行业动态 更新时间:2024-10-08 06:24:38

SAP BP<a href=https://www.elefans.com/category/jswz/34/1693376.html style=客商维护BAPIAPI"/>

SAP BP客商维护BAPIAPI

前情提要

仅列出常用的BAPI,大家可以到具体的函数组中发现更多用法;角色可以创建的时候直接维护,或者单独维护;找不到BAPI的,比如公司代码,使用API来维护。

BAPI清单
创建BP
BAPI功能
BAPI_BUPA_CREATE_FROM_DATA创建BP, 包括中心数据、地址等
BAPI_BUPA_FS_CREATE_FROM_DATA2功能同上,多一个角色分配功能
角色维护
BAPI功能
BAPI_BUPA_ROLES_GET_2获取分配的Role(按日期)
BAPI_BUPA_ROLE_ADD_2添加Role
BAPI_BUPA_ROLE_CHANGE修改已存在的Role属性
BAPI_BUPA_ROLE_EXIST_CHECK_2校验Role是否存在
BAPI_BUPA_ROLE_REMOVE删除已分配的Role
中心数据维护
BAPI功能
BAPI_BUPA_CENTRAL_GETDETAIL获取中心数据
BAPI_BUPA_CENTRAL_CHANGE修改中心数据
地址信息维护
BAPI功能
BAPI_BUPA_ADDRESSES_GET获取所有地址信息
BAPI_BUPA_ADDRESS_ADD添加地址信息
BAPI_BUPA_ADDRESS_CHANGE修改已存在的地址信息
BAPI_BUPA_ADDRESS_GETDETAIL获取某个地址的详细信息
BAPI_BUPA_ADDRESS_GET_NUMBERS获取地址对应的address number
BAPI_BUPA_ADDRESS_REMOVE删除地址信息
银行信息维护
BAPI功能
BAPI_BUPA_BANKDETAILS_GET获取所有的银行信息
BAPI_BUPA_BANKDETAIL_ADD添加银行信息
BAPI_BUPA_BANKDETAIL_CHANGE修改银行信息
BAPI_BUPA_BANKDETAIL_GETDETAIL获取单个银行的详细信息
BAPI_BUPA_BANKDETAIL_NUMBERS获取银行ID
BAPI_BUPA_BANKDETAIL_REMOVE删除银行信息
Identification Number(标识号/证件号码)
BAPI功能
BAPI_IDENTIFICATIONDETAILS_GET获取所有标识号
BAPI_IDENTIFICATION_GET_DETAIL获取单个标识号的详细信息
BAPI_IDENTIFICATION_ADD新增标识号
BAPI_IDENTIFICATION_CHANGE修改标识号
BAPI_IDENTIFICATION_REMOVE删除标识号
API
API功能
CMD_EI_API_EXTRACT读取BP客户信息
VMD_EI_API_EXTRACT读取BP供应商信息
VMD_EI_API维护BP供应商
CMD_EI_API维护BP客户
CL_MD_BP_MAINTAIN维护BP(较全功能)
增强
BADI功能
PARTNER_UPDATEBP创建或修改
ADDRESS_UPDATEBP地址(通信)数据维护
表清单(更新中)

BP
客户
供应商

API示例代码(维护公司代码)
  • 维护客户
form maintain_cust_company  using  u_bp_basic type zsmdg_bp_input_basic_requ_bp_comp_tab type zmdg_bp_input_company_req_tchanging c_return_table type bapiret2_tab."获取BP关联的客户编码,默认1对1select single partner,b~partner_guid,customerfrom but000 as binner join cvi_cust_link as con c~partner_guid eq b~partner_guidwhere partner eq @u_bp_basic-bp_headerinto @data(ls_bp_cust).data:ls_master_data type cmds_ei_main,ls_customer    type cmds_ei_extern,ls_central     type cmds_ei_cmd_central,ls_company     type cmds_ei_company,lt_company     type cmds_ei_company_t,ls_message     type cvis_message.clear ls_master_data.clear ls_customer.loop at u_bp_comp_tab into data(ls_bp_comp).ls_company-task = 'M'.ls_company-data_key-bukrs = ls_bp_comp-company.ls_company-data-akont = '1122010000'.ls_company-data-loevm = ls_bp_comp-loevm_b.ls_company-datax-akont = abap_true.ls_company-datax-loevm = abap_true.append ls_company to lt_company.endloop.ls_central-data-ktokd = 'DEBI'.ls_central-datax-ktokd = abap_true.ls_customer = value #(header = value #(object_instance = value #( kunnr = ls_bp_cust-customer )object_task = 'M' )central_data = value #(central = ls_centraladdress = value #( postal = value #( data = value #(name = u_bp_basic-zzbpnmcity = u_bp_basic-zzcitycountry = u_bp_basic-ref_postalangu = '1')datax = value #(name = abap_truecity = abap_truecountry = abap_truelangu = abap_true))))company_data = value #(  company = lt_company current_state = abap_true )).append ls_customer to ls_master_data-customers.cmd_ei_api=>initialize( ).cmd_ei_api=>lock( iv_kunnr = ls_bp_cust-customer ).cmd_ei_api=>maintain(exportingis_master_data = ls_master_dataimportinges_error = ls_message).cmd_ei_api=>unlock( iv_kunnr = ls_bp_cust-customer ).read table ls_message-messages transporting no fields with key type = 'E'.if sy-subrc ne 0.call function 'BAPI_TRANSACTION_COMMIT'exportingwait = abap_true.else.call function 'BAPI_TRANSACTION_ROLLBACK'.endif.append lines of ls_message-messages to c_return_table.
endform.
  • 维护供应商
form maintain_ven_company  using   u_bp_basic type zsmdg_bp_input_basic_requ_bp_comp_tab type zmdg_bp_input_company_req_tchanging c_return_table type bapiret2_tab."获取BP关联的供应商编码,默认1对1select single partner,b~partner_guid,vendorfrom but000 as binner join cvi_vend_link as von v~partner_guid eq b~partner_guidwhere partner eq @u_bp_basic-bp_headerinto @data(ls_bp_vend).data:ls_master_data type vmds_ei_main,ls_vendor      type vmds_ei_extern,ls_company     type vmds_ei_company,lt_company     type vmds_ei_company_t,ls_central     type vmds_ei_vmd_central,ls_message     type cvis_message.clear ls_master_data.clear ls_vendor.loop at u_bp_comp_tab into data(ls_bp_comp).ls_company-task = 'M'.ls_company-data_key-bukrs = ls_bp_comp-company.ls_company-data-akont = '2202020000'.ls_company-data-loevm = ls_bp_comp-loevm_b.ls_company-datax-akont = abap_true.ls_company-datax-loevm = abap_true.append ls_company to lt_company.endloop.ls_central-data-ktokk = 'KRED'.ls_central-datax-ktokk = abap_true.ls_vendor = value #(header = value #(object_instance = value #( lifnr = ls_bp_vend-vendor )object_task = 'M' )central_data = value #(central = ls_centraladdress = value #( postal = value #( data = value #(name = u_bp_basic-zzbpnmcity = u_bp_basic-zzcitycountry = u_bp_basic-ref_postalangu = '1')datax = value #(name = abap_truecity = abap_truecountry = abap_truelangu = abap_true))))company_data = value #(  company = lt_company  current_state = abap_true )).append ls_vendor to ls_master_data-vendors.vmd_ei_api=>initialize( ).vmd_ei_api=>lock( iv_lifnr = ls_bp_vend-vendor ).vmd_ei_api=>maintain(exportingis_master_data = ls_master_dataimportinges_error = ls_message).vmd_ei_api=>unlock( iv_lifnr = ls_bp_vend-vendor ).read table ls_message-messages transporting no fields with key type = 'E'.if sy-subrc ne 0.call function 'BAPI_TRANSACTION_COMMIT'exportingwait = abap_true.else.call function 'BAPI_TRANSACTION_ROLLBACK'.endif.append lines of ls_message-messages to c_return_table.
endform.
备注

多个BAPI连续使用的话,好像要单独commit, 比如先创建BP的中心数据,然后按顺序分配维护地址,分配角色,维护银行,维护公司代码等,如果中间步骤出错,可以考虑停止,或者是跳过错误的步骤,进行下一步。

更多推荐

SAP BP客商维护BAPIAPI

本文发布于:2024-03-09 03:10:24,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1723560.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:客商   SAP   BP   BAPIAPI

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!