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