创建供应商资料,BP
&---------------------------------------------------------------------
*& Report Z_YY_PRG_007
&---------------------------------------------------------------------
*&
&---------------------------------------------------------------------
REPORT Z_YY_PRG_007.

CONSTANTS:
    g_object_task_i TYPE bus_ei_object_task VALUE ‘I’.

DATA: lv_tabix            TYPE sy-tabix,
        lt_data             TYPE cvis_ei_extern_t,
        ls_data             TYPE cvis_ei_extern,
        lt_return           TYPE bapiretm,
        ls_return           TYPE bapireti,
        ls_msg              TYPE bapiretc,
        ls_partner          TYPE bus_ei_extern,
        ls_vendor           TYPE vmds_ei_extern,
        lt_roles            TYPE bus_ei_bupa_roles_t,
        ls_roles            TYPE bus_ei_bupa_roles,
        lt_addresses        TYPE bus_ei_bupa_address_t,
        ls_addresses        TYPE bus_ei_bupa_address,
        lt_phone            TYPE bus_ei_bupa_telephone_t,
        ls_phone            TYPE bus_ei_bupa_telephone,
        lt_remarks          TYPE bus_ei_bupa_comrem_t,
        ls_remarks          TYPE bus_ei_bupa_comrem,
        lt_bankdetails      TYPE bus_ei_bupa_bankdetail_t,
        ls_bankdetails      TYPE bus_ei_bupa_bankdetail,
        lt_company          TYPE vmds_ei_company_t,
        ls_company          TYPE vmds_ei_company,
        lt_purchasing       TYPE vmds_ei_purchasing_t,
        ls_purchasing       TYPE vmds_ei_purchasing,
        lt_functions        TYPE vmds_ei_functions_t,
        ls_functions        TYPE vmds_ei_functions,
        lv_partner_guid     TYPE bu_partner_guid,
        ls_cvis_error       TYPE cvis_error,
        lt_bapiret2         TYPE bapiret2_t,
        ls_bapiret2         TYPE bapiret2,
* 根据伙伴GUID取出供应商编号
        lt_partnerguid_list TYPE bu_partner_guid_t,
        ls_partnerguid_list TYPE bu_partner_guid,
        lt_vendor_list      TYPE cvis_vend_link_t,
        ls_vendor_list      TYPE cvi_vend_link…

DATA: l_str TYPE string.
*  zfmparavalsave1 ‘ZZMM_VENDOR_CREATE’.
*  zfmparavalsave2 ‘B’.

*  LOOP AT i_data.
*    CLEAR:
*      ls_data,
*      lt_data.

*    lv_tabix = sy-tabix.

*    IF i_data-title_medi IS INITIAL.
*      i_data-title_medi = ‘0003’.
*    ENDIF.
*
*    IF i_data-spras IS INITIAL.
*      i_data-spras = sy-langu.
*    ENDIF.
*
*    IF i_data-bukrs IS INITIAL.
*      i_data-bukrs = ‘1000’.
*    ENDIF.
*
DATA:LV_lifnr TYPE lfbk-lifnr.
  LV_lifnr = ‘8999990’.
    CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’
      EXPORTING
        input  =  LV_lifnr
      IMPORTING
        output = LV_lifnr.

*    SELECT SINGLE but000~partner
*      INTO ls_partner-header-object_instance-bpartner
*      FROM but000
*      WHERE partner = i_data-lifnr.
*
*    IF sy-subrc = 0.
*      i_data-zis_ok = ‘4’.
*      i_data-msg    = ‘供应商’ && i_data-lifnr  && ‘已存在!’.
*      MODIFY i_data INDEX lv_tabix.
*      RETURN.
*    ENDIF.

TRY .
        lv_partner_guid = cl_uuid_factory=>create_system_uuid( )->create_uuid_x16( ).
      CATCH cx_uuid_error.

"返回消息
    ENDTRY.
    "基本信息
    ls_partner-header-object_task                  = g_object_task_i.
    ls_partner-header-object_instance-bpartner     = LV_lifnr."i_data-lifnr.
    ls_partner-header-object_instance-bpartnerguid = lv_partner_guid.
业务合作伙伴数据的中心数据*******************************
    ls_partner-central_data-common-data-bp_control-category         = 2."2.                 "业务伙伴类别
    ls_partner-central_data-common-data-bp_control-grouping         = ‘ZV10’."i_data-ktokk.      "业务伙伴分组
    ls_partner-central_data-common-data-bp_centraldata-title_key    = ‘0003’."i_data-title_medi. "称谓
    ls_partner-central_data-common-data-bp_centraldata-searchterm1  = ‘TEST001’."i_data-sortl.      "检索项
    ls_partner-central_data-common-data-bp_organization-name1       = ‘TEST001’."i_data-vender.     "供应商名称
    ls_partner-central_data-common-data-bp_organization-name2       = ‘TEST001’."i_data-zbz1.       "供应商名称
    ls_partner-central_data-common-datax-bp_centraldata-searchterm1 = abap_true.
    ls_partner-central_data-common-datax-bp_organization-name1      = abap_true.
    ls_partner-central_data-common-datax-bp_organization-name2      = abap_true.

CLEAR:lt_roles.
    ls_roles-task     = ‘I’.
    ls_roles-data_key = ‘FLVN00’.     "采购角色
    APPEND ls_roles TO lt_roles.
    ls_roles-task     = ‘I’.
    ls_roles-data_key = ‘FLVN01’.     "公司角色
    APPEND ls_roles TO lt_roles.
    ls_partner-central_data-role-roles = lt_roles.
    "地址信息
    CLEAR lt_addresses.
    ls_addresses-task = g_object_task_i.
*    ls_addresses-data-postal-data-street   = i_data-stras.            "街道
    ls_addresses-data-postal-data-country  = ‘CN’."i_data-land1.            "国家
    ls_addresses-data-postal-data-langu    = ‘ZH’."i_data-spras.            "语言
*    ls_addresses-data-postal-datax-street  = abap_true.
    ls_addresses-data-postal-datax-country = abap_true.
    ls_addresses-data-postal-datax-langu   = abap_true.

"手机
*    CLEAR lt_phone.
*    ls_phone-contact-task            = g_object_task_i.
*    ls_phone-contact-data-telephone  = i_data-telf1.    "电话1
*    ls_phone-contact-data-r_3_user   = ‘3’.             "移动电话
*    ls_phone-contact-datax-telephone = abap_true.
*    ls_phone-contact-datax-r_3_user  = abap_true.
    "手机备注1(联系人)
*    CLEAR lt_remarks.
*    ls_remarks-task             = g_object_task_i.
*    ls_remarks-data-langu       = i_data-spras.
*    ls_remarks-data-comm_notes  = i_data-contacts.
*    ls_remarks-datax-langu      = abap_true.
*    ls_remarks-datax-comm_notes = abap_true.
*    APPEND ls_remarks TO lt_remarks.
*    ls_phone-remark-remarks = lt_remarks.
*    APPEND ls_phone TO lt_phone.

*    ls_addresses-data-communication-phone-phone = lt_phone.

APPEND ls_addresses TO lt_addresses.
    ls_partner-central_data-address-addresses = lt_addresses.

"银行信息
*    CLEAR lt_bankdetails.
**    IF i_data-banks IS NOT INITIAL.
*      ls_bankdetails-task                  = g_object_task_i.
*      ls_bankdetails-data_key              = ‘0001’.
*      ls_bankdetails-data-bank_ctry        = ‘CN’."i_data-banks.
*      ls_bankdetails-data-bank_key         = ‘12334DM’."i_data-bankl.
*      ls_bankdetails-data-bank_acct        = ‘123ZH’."i_data-bankn.
**      ls_bankdetails-data-accountholder    = ‘KZM’."i_data-koinh.
**      ls_bankdetails-data-bankaccountname  = i_data-accname.
*
*      ls_bankdetails-datax-bank_ctry       = abap_true.
*      ls_bankdetails-datax-bank_key        = abap_true.
*      ls_bankdetails-datax-bank_acct       = abap_true.
*      ls_bankdetails-datax-accountholder   = abap_true.
*      ls_bankdetails-datax-bankaccountname = abap_true.
*
*      APPEND ls_bankdetails TO lt_bankdetails.
*      ls_partner-central_data-bankdetail-bankdetails = lt_bankdetails.
*    ENDIF.
    ls_vendor-header-object_instance-lifnr = LV_lifnr."i_data-lifnr.
    ls_vendor-header-object_task           = g_object_task_i.
公司代码数据********************************************

DATA:LV_akont TYPE lfb1-akont.
  LV_akont = ‘2202010000’.
    CLEAR:lt_company.
    CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’   " 统驭科目补零
      EXPORTING
        input  = LV_akont
      IMPORTING
        output = LV_akont.

ls_company-task           = g_object_task_i.
    ls_company-data_key-bukrs = ‘1110’."i_data-bukrs.         "公司代码
    ls_company-data-akont     = ‘2202010000’."i_data-akont.         "统驭科目
*    ls_company-data-zuawa     = i_data-zuawa.         "排序码
    ls_company-data-zterm     = ‘M060’."i_data-zterm.         "付款条件
    ls_company-data-GUZTE = ‘M060’.
    ls_company-data-reprf     = ‘X’. "i_data-reprf.         "检查重复发票
    ls_company-datax-akont    = abap_true.
*    ls_company-datax-zuawa    = abap_true.
    ls_company-datax-zterm    = abap_true.
    ls_company-datax-GUZTE = abap_true.
    ls_company-datax-reprf    = abap_true.
    APPEND ls_company TO lt_company.

*     ls_company-task           = g_object_task_i.
*    ls_company-data_key-bukrs = ‘2000’."i_data-bukrs.         "公司代码
*    ls_company-data-akont     = ‘1123010100’."i_data-akont.         "统驭科目
**    ls_company-data-zuawa     = i_data-zuawa.         "排序码
*    ls_company-data-zterm     = ‘0001’."i_data-zterm.         "付款条件
**    ls_company-data-reprf     = i_data-reprf.         "检查重复发票
*    ls_company-datax-akont    = abap_true.
*    ls_company-datax-zuawa    = abap_true.
*    ls_company-datax-zterm    = abap_true.
*    ls_company-datax-reprf    = abap_true.
*    APPEND ls_company TO lt_company.

ls_vendor-company_data-company = lt_company.

采购数据************************************************
    CLEAR:lt_purchasing.
    ls_purchasing-task           = g_object_task_i.
    ls_purchasing-data_key-ekorg = ‘1110’ . "i_data-ekorg.  "采购组织
    ls_purchasing-data-waers     = ‘HKD’ . "i_data-waers.  "货币
    ls_purchasing-data-webre     = ‘X’. "i_data-webre.  "基于收货的发票校验
    ls_purchasing-data-zterm     = ‘M060’. "i_data-zterm.  "付款条件
*    ls_purchasing-data-ekgrp     = i_data-ekgrp.
    ls_purchasing-datax-waers    = abap_true.
    ls_purchasing-datax-webre    = abap_true.
    ls_purchasing-datax-zterm    = abap_true.
*    ls_purchasing-datax-ekgrp    = abap_true.

CLEAR lt_functions.
*    ls_functions-task           = g_object_task_i.
*    ls_functions-data_key-parvw = ‘BA’. " PANERFUNCTION中 OA 对应的输出是 BA
*    ls_functions-data-partner   = LV_lifnr. "i_data-lifnr.
*    ls_functions-datax-partner  = abap_true.
*    APPEND ls_functions TO lt_functions.

ls_functions-task           = g_object_task_i.
    ls_functions-data_key-parvw = ‘RS’. " PANERFUNCTION中 RS 对应的输出是 PI
    ls_functions-data-partner   = LV_lifnr. "i_data-lifnr.
    ls_functions-datax-partner  = abap_true.
    APPEND ls_functions TO lt_functions.

ls_functions-task           = g_object_task_i.
    ls_functions-data_key-parvw = ‘LF’. " PANERFUNCTION中 LF 对应的输出是 VN
    ls_functions-data-partner   = LV_lifnr. "i_data-lifnr.
    ls_functions-datax-partner  = abap_true.
    APPEND ls_functions TO lt_functions.

ls_purchasing-functions-functions = lt_functions.
    APPEND ls_purchasing TO lt_purchasing.
    ls_vendor-purchasing_data-purchasing = lt_purchasing.

ls_data-partner = ls_partner.
    ls_data-vendor  = ls_vendor.
    ls_data-ensure_create-create_vendor = abap_true.
    APPEND ls_data TO lt_data.

*call bapi创建供应商主数据
    cl_md_bp_maintain=>maintain(
      EXPORTING
        i_data   = lt_data
      IMPORTING
        e_return = lt_return ).

DATA:LV_msg TYPE char100.
*    CLEAR i_data-msg.
    LOOP AT lt_return INTO ls_return.

LOOP AT ls_return-object_msg INTO ls_msg WHERE type = ‘E’ OR type = ‘A’.

*        CONCATENATE i_data-msg ls_msg-message INTO DATA(LV_msg).
        LV_msg =   ls_msg-message.
      ENDLOOP.

ENDLOOP.

*    IF i_data-msg IS INITIAL.
   IF ls_msg IS INITIAL.

CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT’
        EXPORTING
          wait = abap_true.

* 根据伙伴GUID取出供应商编号
      CLEAR: lt_partnerguid_list,lt_vendor_list.
      ls_partnerguid_list = ls_partner-header-object_instance-bpartnerguid.
      APPEND ls_partnerguid_list TO lt_partnerguid_list.
      lt_vendor_list = cvi_mapper=>get_instance( )->get_assigned_vendors_for_bps(
                                                i_partner_guids = lt_partnerguid_list ).
      IF lt_vendor_list IS NOT INITIAL.
        READ TABLE lt_vendor_list INTO ls_vendor_list INDEX 1 .
        IF sy-subrc EQ 0.
          CONCATENATE ‘供应商’ ls_vendor_list-vendor ‘创建成功!’ INTO ls_msg.
*          i_data-lifnr  = ls_vendor_list-vendor.
*          i_data-zis_ok = ‘0’.

ENDIF.
      ELSE.
        "可能创建成功了BP,但未创建成功Vendor

ls_cvis_error = cvi_mapper=>get_instance( )->undo_assignments(
                                                i_for_partners = lt_partnerguid_list ).

LV_msg    = ‘供应商创建出错,供应商部分数据出错,请检查是否是BP伙伴功能问题’.
*        i_data-zis_ok = ‘4’.

ENDIF.

ELSE.
      CALL FUNCTION ‘BAPI_TRANSACTION_ROLLBACK’.
*      i_data-zis_ok = ‘4’.
    ENDIF.

WRITE:LV_msg.
MESSAGE LV_msg type ‘S’.

*    SHIFT i_data-lifnr  LEFT DELETING LEADING ‘0’.
*    SHIFT i_data-akont LEFT DELETING LEADING ‘0’.

*    MODIFY i_data INDEX lv_tabix.

*  ENDLOOP.

*  MODIFY zmm_vendor_log FROM TABLE i_data.
*
*  zfmparavalsave2 ‘R’.

Sap Program 自动创建供应商资料,BP相关推荐

  1. SAP WM 自动创建TO单的JOB运行报错 - Enter the storage unit type - 对策

    SAP WM 自动创建TO单的JOB运行报错 - Enter the storage unit type - 对策 报错如下: 详细信息: Log for automatic creation of ...

  2. SAP WM自动创建TO后台作业报错 - Processing Type没有维护 - 之对策

    SAP WM自动创建TO后台作业报错 - Processing Type没有维护 - 之对策 笔者所在的D项目上,需要设置自动创建TO的后台作业.笔者为程序RLAUTA10定义了变式,然后设置了后台作 ...

  3. sap客户主数据bapi_【SD系列】SAP SD模块-创建供应商主数据BAPI

    公众号:matinal 本文作者:matinal 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 关于创建供应商主数据BAPI:SD_CUSTOMER_MAINTAIN_ ...

  4. SAP script 自动创建销售订单机器人,协同Excel

    首先要开启SAP的脚本 参考 ​​​​​​SAP系统开启脚本录制和回放功能 - 简书 参考一边生成销售订单的过程 注意不要有额外的操作 记录下脚本 If Not IsObject(applicatio ...

  5. 【MM系列】SAP S/4 HANA 1511的BP角色创建及供应商数据的创建方法

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP S/4 HANA 1511的 ...

  6. SAP MM公司间STO里的交货单自动创建?

    SAP MM公司间STO里的交货单自动创建? SAP标准系统里,公司间STO的后续外向交货单,是可以通过后台配置的方式自动创建的,即ME21N创建好公司间STO单据的同时,自动触发交货单. 本文就是简 ...

  7. SAP收货时自动创建采购订单

        在实际业务中,常常出现到货物料没有订单或订单未批准的现象,按照SAP的标准流程,应该拒绝收货.但在实际业务中,这些物料可能是紧急采购的急件,如不及时处理,将会影响生产计划的安排.对于这种特殊情 ...

  8. SAP License:MM根据收货自动创建采购订单

    在实际业务中,常常出现到货物料没有订单或订单未批准的现象,按照SAP的标准流程,应该拒绝收货.但在实际业务中,这些物料可能是紧急采购的急件,如不及时处理,将会影响生产计划的安排.对于这种特殊情况,其实 ...

  9. SAP创建供应商及采购订单

    SAP创建供应商及采购订单 创建全流程 创建供应商 创建采购订单 创建全流程 创建供应商 供应商是一个角色,创建角色的TCODE有很多,具体选择那个看系统是否完成对该TCODE功能的维护,键入BP,进 ...

最新文章

  1. SQL对象名无效怎么办法 华骨龙
  2. 请问一个表的update能同时触发两个触发器吗?
  3. Perform the Combo CodeForces - 1311C(字符串反转+树状数组)
  4. JDK 12 Early Access Build 12中的原始字符串文字支持
  5. POSIX条件变量API函数
  6. 诺基亚AirScale支持低频段和高频段5G服务 确保运营商投资收入
  7. VHDL常用操作符介绍
  8. 搭建了Pycharm对话平台
  9. Soulver:不光会算,还懂你所言的计算器
  10. 用fpga实现永磁同步电机控制_永磁同步电机控制系统仿真系列文章—旋转变压器...
  11. 一个奇妙、离奇的算法题
  12. Python-ZFJObsLib完美生成iOS垃圾代码
  13. office转换pdf [doc,docx,xls,xlsx]
  14. 微信小程序客服自动推送欢迎语php,如何实现小程序客服自动提示回复小程序卡片,弹出对应内容?小程序客服系统...
  15. 前馈神经网络练习:使用tensorflow进行葡萄酒种类识别
  16. Python入门学习笔记(五)——文件、文件系统
  17. 把单元格一分为二_怎么把单元格上下一分为二
  18. 修改IE设置(修改注册表)允许活动内容在我的电脑的文件运行
  19. 从Realme GT的安兔兔跑分开始谈起
  20. 解释reverse=True等python基础问题

热门文章

  1. 学习笔记--EMI是什么?
  2. WinInet + MFC 写vc驿站助手
  3. IDEA中文件或文件夹 如何重命名?解决方法如下
  4. 【vue期末作业】化妆品商城系统
  5. 免费刷会员和六钻工具?小心通过QQ传播的灰鸽子Backdoor.Win32.Gpigeon.gem
  6. Unity实现弹幕功能
  7. 云服务器的地域怎么选择?
  8. 你没看过的V神早期神文,现在读起来仍受益匪浅
  9. 小试debian-7.11.0-amd64+Plone5.1.2全文检索和预览中文WORD中文PDF
  10. ringbuffer的特别之处