SAP 项目中开发用到的BAPI

SAP 项目中开发用到的BAPI

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的预算

 

abap 判断当前用户是否有某事物码权限

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.

 

ABAP Select Skill

用来抓取数据提搞速度,

写法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语句使编程人员方便编程,
不用一个一个对照项目顺序,但实际上这部分功能没有省,而是系统替你来完成的,
系统赋值前,要先对照是否项目名相同,相同才赋,不同继续向下比较,所以很费系统资源,
编程序本身就是“一劳永逸”的事情,还是建议在编写的时候多费点心思调整好,
可为将来千万次的调用,提高意想不到的效率。

SELECTIOIN-SCREEN 用法

1.产生空白列

 

语法:

 

SELECTION-SCREEN SKIP [<n>]

 

Example:

 

SELECTION-SCREEN SKIP 2.

 

产生两列空白列

 

2.产生底线

 

语法:

 

SELECTION-SCREEN ULINE / <pos>(length)

 

Example:

 

SELECTION-SCREEN ULINE /10(30).

 

自第10格开始产生长度30的底线

 

3.印出备注说明

 

语法:

 

SELECTION-SCREEN COMMENT / <pos>(length) <name>

 

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 <block>

 

[WITH FRAME [TITLE <title>].

 

…….

 

SELECTION-SCREEN END OF BLOCK <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.

给SAP系统安装联机帮助(事务码SR13)

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值