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
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 创建预留
12、BAPI_RESERVATION_CHANGE 修改和删除预留
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_CANCEL 发票的冲销
PM模块
1、BAPI_OBJCL_CREATE 、BAPI_OBJCL_CHANGE、BAPI_OBJCL_GETDETAIL
计量点通用属性导入
2、MEASUREM_DOCUM_RFC_SINGLE_001 计量凭证创建
FI模块
1、K_HIERARCHY_TABLES_READ 成本要素组明细
2、BAPI_ACC_DOCUMENT_POST 创建会计凭证
3、BAPI_ACC_DOCUMENT_REV_POST 反冲会计凭证
PS模块
1、BAPI_PS_INITIALIZATION、BAPI_BUS2001_CREATE、BAPI_PS_PRECOMMIT 创建项目定义
2、BAPI_PS_INITIALIZATION、BAPI_BUS2054_CREATE_MULTI、BAPI_PS_PRECOMMIT 创建WBS
创建WBS的时候,注意参数 wbs_left和 wbs_up,这个是创建有层级的WBS必须要填写的
3、KBPP_EXTERN_UPDATE_CO 修改项目和WBS的预算
AUTHORITY-CHECK OBJECT ‘S_TCODE’ ID ‘TCD’ FIELD ‘MM01′.
IF sy-subrc 0.
MESSAGE ‘本用户沒有”MM01”的使用权限’ TYPE ‘S’.
*其中MM01可换成自己需要的事物吗
LEAVE TO SCREEN 0 .
ENDIF.
ABAP 在内表中删除重复行
内表要进行排序 然后删除重复行
SORT <内表> BY <字段> [ascending/descending].
DELETE ADJACENT DUPLICATES FROM <内表> COMPARING ALL FIELDS.
用来抓取数据提搞速度,
写法1:
SELECT MATNR BUDAT
INTO(ITAB-MATNR,ITAB-BUDAT)
FROM AUFM
WHERE MATNR IN P_MATNR AND
BUDAT IN P_BUDAT.
写法2:
SELECT MATNR BUDAT
INTO corresponding fields of table itab
FROM AUFM
WHERE MATNR IN P_MATNR AND
BUDAT IN P_BUDAT.
以前的程序运行所得的结果都是一样的, 但获取数据的速度,方法1 比方法2 快, 为什么呢?
取少数项目值时用INTO赋值到 变量中,取得项目多时应使用INTO TABLE,
对应的内表中的项目定义顺序最好和SELECT所选项目顺序相同,然后直接使用INTO TABLE itab,
而不是用CORRESPONDING FIELD,CORRESPONDING FIELD语句使编程人员方便编程,
不用一个一个对照项目顺序,但实际上这部分功能没有省,而是系统替你来完成的,
系统赋值前,要先对照是否项目名相同,相同才赋,不同继续向下比较,所以很费系统资源,
编程序本身就是“一劳永逸”的事情,还是建议在编写的时候多费点心思调整好,
可为将来千万次的调用,提高意想不到的效率。
1.产生空白列
语法:
SELECTION-SCREEN SKIP [
Example:
SELECTION-SCREEN SKIP 2.
产生两列空白列
2.产生底线
语法:
SELECTION-SCREEN ULINE /
Example:
SELECTION-SCREEN ULINE /10(30).
自第10格开始产生长度30的底线
3.印出备注说明
语法:
SELECTION-SCREEN COMMENT /
Example:
REMARK = ‘Pls enter your name’.
SELECTION-SCREEN COMMENT /10(30) REMARK.
4. 同一列中输入数个资料项
语法:
SELECTION-SCREEN BEGIN OF LINE.
……
SELECTION-SCREEN END OF LINE.
Example:
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 20.
PARAMETERS NAME(10).
SELECTION-SCREEN POSITION 40.
PARAMETERS BIRTH TYPE D.
SELECTION-SCREEN END OF LINE.
在20格输入NAME内容, 40格输入 BIRTH的内容
5. 绘出BLOCK PANEL
语法:
SELECTION-SCREEN BEGIN OF BLOCK
[WITH FRAME [TITLE
…….
SELECTION-SCREEN END OF BLOCK
Example:
SELECTION-SCREEN BEGIN OF BLOCK RADIO
WITH FRAME .
PARAMETER R1 RADIOBUTTON GROUP GR1.
PARAMETER R2 RADIOBUTTON GROUP GR1.
PARAMETER R3 RADIOBUTTON GROUP GR1.
SELECTION-SCREEN END OF BLOCK RADIO.