SAP供应商和客户的创建

本文详细介绍了如何使用VMD_EI_API类和MAINTAIN_DIRECT_INPUT方法创建供应商,包括输入参数设置、数据填充以及创建后的确认操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进来遇到一个创建供应商的需求,由于在系统中关于供应商和客户的创建比较特殊,且没有相关函数进行创建,

找到一个类和方法来创建,类名:VMD_EI_API  方法名:MAINTAIN_DIRECT_INPUT,类似的

* 供应商表头
  ls_vendors-header-object_instance-lifnr lv_vendor.  "供应商
  ls_vendors-header-object_task 'M'.              "创建/更改
* 通用数据
  ls_vendors-central_data-central-data-stceg       stceg.      "增值税登记号
  ls_vendors-central_data-central-data-ktokk       '0001'.     "账户组
  ls_vendors-central_data-central-data-j_1kfrepre  j_1kfrepre"代表名称
  ls_vendors-central_data-central-datax-stceg      'X'.        "增值税登记号
  ls_vendors-central_data-central-datax-ktokk      'X'.        "账户组
  ls_vendors-central_data-central-datax-j_1kfrepre 'X'.        "代表名称
* 电话
  ls_phone-contact-data-telephone phone.
  APPEND ls_phone TO ls_vendors-central_data-address-communication-phone-phone.
  CLEAR ls_phone.
* 邮箱
  ls_smtp-contact-data-e_mail      smtp.
  APPEND ls_smtp TO ls_vendors-central_data-address-communication-smtp-smtp.
  CLEAR ls_smtp.

  ls_vendors-central_data-address-postal-data-name         name.       "名称
  ls_vendors-central_data-address-postal-data-name_2       name.       "名称
  ls_vendors-central_data-address-postal-data-sort1        sort1.      "属性(SAP为搜索项 1)
  ls_vendors-central_data-address-postal-data-street       street.     "街道/门牌号
  ls_vendors-central_data-address-postal-data-postl_cod1   postl_cod1"邮政编码
  ls_vendors-central_data-address-postal-data-city         city.       "城市
  ls_vendors-central_data-address-postal-data-country      country.    "国家
  ls_vendors-central_data-address-postal-data-region       region.     "地区
  ls_vendors-central_data-address-postal-data-langu        '1'.        "语言
  ls_vendors-central_data-address-postal-datax-name        'X'.
  ls_vendors-central_data-address-postal-datax-name_2      'X'.
  ls_vendors-central_data-address-postal-datax-sort1       'X'.
  ls_vendors-central_data-address-postal-datax-street      'X'.
  ls_vendors-central_data-address-postal-datax-postl_cod1  'X'.
  ls_vendors-central_data-address-postal-datax-city        'X'.
  ls_vendors-central_data-address-postal-datax-country     'X'.
  ls_vendors-central_data-address-postal-datax-region      'X'.
  ls_vendors-central_data-address-postal-datax-langu       'X'.
* 采购组织数据
  ls_purchasing-task 'M'.
  ls_purchasing-data_key-ekorg '1000'.
  ls_purchasing-data-waers waers.
  ls_purchasing-data-verkf verkf.
  ls_purchasing-data-telf1 telf1.
  ls_purchasing-data-eikto eikto.
  ls_purchasing-data-webre  'X'.
  ls_purchasing-datax-waers 'X'.
  ls_purchasing-datax-verkf 'X'.
  ls_purchasing-datax-telf1 'X'.
  ls_purchasing-datax-webre 'X'.
  ls_purchasing-datax-eikto 'X'.

  IF requesttype 'CREATE'.
    ls_functions-task 'I'.
    ls_functions-data_key-parvw 'BA'.
    ls_functions-data-defpa ''.
    ls_functions-data-partner lv_vendor.
    ls_functions-datax-defpa 'X'.
    ls_functions-datax-partner 'X'.
    APPEND ls_functions TO lt_functions.
    ls_functions-data_key-parvw 'LF'.
    ls_functions-data-defpa ''.
    ls_functions-data-partner lv_vendor.
    ls_functions-datax-defpa 'X'.
    ls_functions-datax-partner 'X'.
    APPEND ls_functions TO lt_functions.
    ls_functions-data_key-parvw 'RS'.
    ls_functions-data-defpa ''.
    ls_functions-data-partner lv_vendor.
    ls_functions-datax-defpa 'X'.
    ls_functions-datax-partner 'X'.
    APPEND ls_functions TO lt_functions.
    ls_purchasing-functions-functions lt_functions.
  ENDIF.
  APPEND ls_purchasing TO ls_vendors-purchasing_data-purchasing.
  CLEAR ls_purchasing.

  APPEND ls_vendors TO lt_vendors.
  CLEAR ls_vendors.
  ls_main-vendors lt_vendors.

* 创建或者更新供应商
  CALL METHOD vmd_ei_api=>maintain_direct_input
    EXPORTING
      is_master_data           ls_main
    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'.
    return_status 'S'.
    IF requesttype 'CREATE'.
      return_value '供应商创建成功!'.
    ELSEIF requesttype 'UPDATE'.
      return_value '供应商更新成功!'.
    ENDIF.
    sapcode lv_vendor.
  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    return_status 'F'.
    CLEAR ls_message.
    READ TABLE l4-messages INTO ls_message WITH KEY type 'E'.
    IF sy-subrc 0.
      MESSAGE ID ls_message-id
              TYPE ls_message-type
              NUMBER ls_message-number
              WITH  ls_message-message_v1
                    ls_message-message_v2
                    ls_message-message_v3
                    ls_message-message_v4
              INTO return_value.
    ENDIF.
  ENDIF.

### 如何在SAP创建供应商SAP系统中,创建供应商的过程涉及多个步骤,主要包括业务伙伴的创建及其角色的定义。以下是详细的指南: #### 1. 创建业务伙伴 业务伙伴是SAP系统中的核心对象之一,它可以扮演多种角色(如供应商客户)。要创建一个新的业务伙伴,可以通过事务码 `BP` 进入。 ```plaintext 输入事务码 BP 并回车。 ``` 在业务伙伴创建界面中,会看到顶部菜单栏中有多个选项卡,用于指定业务伙伴的不同属性。对于简单测试或基本需求,只需维护带有红色星号标记的必填字段以及一些额外的关键信息[^3]。 - **业务伙伴编号**:这是唯一标识符,通常由系统自动生成或者手动输入。需要注意的是,具体的编号格式可能受到后台配置的影响,例如可能是纯数字或者是字母与数字的组合。 - **地址信息**:此信息便于后续搜索联系。 完成基本信息填写后,保存记录以确认业务伙伴已成功创建。 #### 2. 添加供应商角色 虽然已经创建了业务伙伴,但它还无法直接参与到采购活动中,因为它尚未被赋予特定的角色——比如作为供应商参与采购订单处理。因此,需要进一步为其添加“供应商”这一角色。 重新打开事务码 `BP`,通过查找功能定位到刚刚创建的业务伙伴并击进入其详情页面。在此处点击修改按钮,并导航至供应商相关设置区域。 ##### a. 维护公司代码视图 (FLVN00) 选择第一个供应商视图 FLVN00,它主要用于描述供应商与某个特定公司之间的关系。此时可以从先前录入的基础数据中继承部分内容,但仍需补充必要的细节,例如: - **公司代码**:指明哪个公司将与此供应商合作; - **统驭科目**:关联会计核算条目以便日后生成凭证。 完成后记得执行公司代码的具体维护操作。 ##### b. 配置采购组织视图 (FLVN01) 接着切换到第二个视图 FLVN01,这里侧重于设定采购层面的内容,包括但不限于: - **采购组织**:限定负责协调此次交易活动的部门; - **货币类型**:规定方使用的结算币种。 同样地,依据实际场景调整参数后再予以存储。 以上两步均告一段落后,则标志着整个供应商建立过程圆满结束。 #### 注意事项 在整个过程中,请务必关注企业内部既有的规章制度技术框架条件,因为它们可能会对某些环节施加约束力。例如,不同环境下供应商代号命名规则或许存在区别等情形都需要提前考量清楚[^3]。 ```python # 示例脚本展示如何调用T-code 'BP'来启动业务伙伴创建流程 from pyrfc import Connection def create_business_partner(): conn = Connection( ashost="your_host", sysid="SYSID", client="client_number", user="username", passwd="password" ) result = conn.call('Z_CREATE_BUSINESS_PARTNER', PartnerType='Supplier') return result['PartnerNumber'] if __name__ == "__main__": partner_id = create_business_partner() print(f"New Business Partner ID: {partner_id}") ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值