SAP 各模块常用的BAPI

本文详细列举了SAP中PM、PP等模块的常用BAPI,包括工艺路线、计划订单、生产订单、看板控制周期等业务操作的相关API,涵盖了从创建、修改到确认等全过程。
摘要由CSDN通过智能技术生成
MM模块
1、 BAPI_MATERIAL_SAVEDATA 创建物料主数据
注意参数EXTENSIONIN的使用,可以创建自定义字段
例如:WA_BAPI_TE_MARA-MATERIAL = ITAB_UP-MATNR.
         T_EXTENSIONIN-STRUCTURE = 'BAPI_TE_MARA'.
         T_EXTENSIONIN-VALUEPART1 = WA_BAPI_TE_MARA.
        APPEND T_EXTENSIONIN.
 
        WA_BAPI_TE_MARAX-MATERIAL = ITAB_UP-MATNR.
   T_EXTENSIONINX-STRUCTURE = 'BAPI_TE_MARAX'.
        T_EXTENSIONINX-VALUEPART1 = WA_BAPI_TE_MARAX.
       APPEND T_EXTENSIONINX.
 
2、 BAPI_OBJCL_CREATE 分类视图的创建
 
3、 BAPI_OBJCL_GETCLASSES 分类视图得到详细信息
 
4、 BAPI_MATERIAL_SAVEREPLICA 物料视图的扩充
 
5、 BAPI_GOODSMVT_CREATE 创建物料凭证 注意表T158G可以决定goodsmvt_code
 
      GOODSMVT_CODE参数对应值:
  01 MB01
  02 MB31
  03 MB1A
  04 MB1B
  05 MB1C
  06 MB11
  07 MB04
 
6、 BAPI_GOODSMVT_CANCEL 冲销物料凭证
 
7、 BAPI_PR_CREATE 创建PR
 
8、 BAPI_PO_CREATE1 创建PO
 
9、 BAPI_PO_CHANGE 修改PO和删除PO
 
10、WS_REVERSE_GOODS_ISSUE 冲销交货单的过账发货
 
11、BAPI_RESERVATION_CREATE1 创建预留   如果要检查ATP,必须使用
      BAPI_RESERVATION_CREATE
 
12、BAPI_RESERVATION_CHANGE 修改和删除预留
 
13、PRICES_CHANGE PRICES_POST 更改物料移动平均价或者标准价格
 
 
如果要检查ATP,必须使用第二个
SD模块
1、 BAPI_SALESORDER_CREATEFROMDAT2 创建销售订单
 
2、 SD_SALESDOCUMENT_CREATE 创建销售订单
 
3、 BAPI_OUTB_DELIVERY_CREATE_SLS 根据销售订单创建交货单
 
4、 BAPI_BILLINGDOC_CREATEMULTIPLE 创建发票,注意参数ref_doc_ca
 
5、 BAPI_SALESORDER_CHANGE 修改或者删除销售订单
 
6、 MB_CANCEL_GOODS_MOVEMENT 冲销交货单的过账发货
 
7、 BAPI_BILLINGDOC_CANCEL1 发票的冲销
 
8、 BAPI_OUTB_DELIVERY_CHANGE 修改外向交货单
 
9、 SD_DELIVERY_UPDATE_PICKING 修改外向交货单拣配数量
 
10、WS_DELIVERY_UPDATE 外向交货单的发货过账

11、SD_CUSTOMER_MAINTAIN_ALL   创建客户 。
        table参数中有很多表,其中X打头代表要插入的数据,Y打头代表要删除的数据。
DATA: TMP   TYPE STRING,
      LEN   TYPE I,
      FLAG  TYPE CHAR1,
      SY_SUBRC(2) TYPE C.

CLEAR :E_MESS.

*--判断是否存在同名客户
IF I_KNA1-KUNNR IS INITIAL.
  SELECT SINGLE NAME1 INTO TMP
    FROM KNA1
   WHERE NAME1 = I_KNA1-NAME1
     AND NAME2 = I_KNA1-NAME2
    .
  IF SY-SUBRC = 0.
    FLAG    = 'X'.
    E_STATU = 'E'.
    E_MESS  = '存在名称相同的客户'.
  ENDIF.
ENDIF.
*--判断邮编的长度
LEN = STRLEN( I_KNA1-PSTLZ ).
IF LEN <> 6.
  FLAG    = 'X'.
  E_STATU = 'E'.
  E_MESS  = '邮编应该是6位数'.
ENDIF.

IF FLAG = ''.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  EXPORTING
    INPUT         = I_KNA1-KUNNR
  IMPORTING
    OUTPUT        = I_KNA1-KUNNR
          .

  I_KNA1-LAND1 = 'CN'.
  I_KNA1-SPRAS = 1.
**--客户的销售数据
  I_KNVV-KUNNR = I_KNA1-KUNNR.
*  I_KNVV-VKORG =  ' ' ."销售组织
  I_KNVV-VTWEG =  '10' .      "分销渠道
  I_KNVV-SPART =  '00' .      "产品组
*  I_KNVV-BZIRK =  ' ' ."销售地区
*  I_KNVV-VKBUR =  ' ' ."销售部门
  I_KNVV-WAERS =  'RMB' .     "货币
  I_KNVV-KALKS =  '1' .       "定价过程
  I_KNVV-VERSG =  '1' .       "客户统计组
  I_KNVV-ANTLF =  '9'.        "最大部分交货
  I_KNVV-VSBED = '01'. "装运条件
  I_KNVV-KZAZU = 'X'.  "订单组合chk
  I_KNVV-ZTERM = '9101'.    "付款条件
  I_KNVV-KABSS = '0001'. "  付款担保过程
  I_KNVV-KKBER = '9999'.   "信贷控制范围
  I_KNVV-KTGRD = '01'.   "账户分配组

  IF I_KNA1-KTOKD = 'A001'.
    I_KNVV-KDGRP =  '11'.  "客户组
    I_KNVV-KONDA =  '01'.  "价格组
    I_KNB1-FDGRV = 'E1'.    " 现金管理组
  ELSEIF I_KNA1-KTOKD = 'A002'.
    I_KNVV-KDGRP =  '21'.  "客户组
    I_KNVV-KONDA =  '02'.  "价格组
    I_KNB1-FDGRV = 'E2'.    " 现金管理组
  ENDIF.
**--客户的公司数据

  I_KNB1-KUNNR = I_KNA1-KUNNR.
  I_KNB1-BUKRS = I_KNVV-VKORG.
*  I_KNB1-AKONT = ''.   "统驭科目
  I_KNB1-ZTERM = '9101'.   "付款条件
  I_KNB1-XZVER = 'X'.  "付款历史记录chk
**--银行
  READ TABLE T_XKNBK INDEX 1.
  IF I_KNA1-KUNNR IS NOT INITIAL.
    SELECT SINGLE * INTO T_YKNBK
      FROM KNBK
     WHERE KUNNR = I_KNA1-KUNNR
       AND BANKS = 'CN'.
    IF SY-SUBRC EQ 0.
      APPEND T_YKNBK.
    ENDIF.
  ENDIF.

  T_XKNBK-KUNNR = I_KNA1-KUNNR.
  T_XKNBK-BANKS = 'CN'.         "银行国家代码
  T_XKNBK-BANKL = '20000'.      "银行码
  MODIFY T_XKNBK INDEX 1 TRANSPORTING KUNNR BANKS BANKL.

**--客户联系人
  READ TABLE T_XKNVK INDEX 1.
  IF I_KNA1-KUNNR IS NOT INITIAL.
    SELECT SINGLE * INTO T_YKNVK
      FROM KNVK
     WHERE KUNNR = I_KNA1-KUNNR.
    IF SY-SUBRC EQ 0.
      APPEND T_YKNVK.
    ENDIF.
  ENDIF.

  T_XKNVK-KUNNR = I_KNA1-KUNNR.
  T_XKNVK-NAMEV = '#'.
  T_XKNVK-ABTNR = '0002'.
  T_XKNVK-PAFKT = '02'.
  MODIFY T_XKNVK INDEX 1 TRANSPORTING KUNNR NAMEV ABTNR PAFKT.
**  合作伙伴
  IF I_KNA1-KUNNR IS NOT INITIAL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值