BAPI开发资料介绍
- 格式:ppt
- 大小:1.16 MB
- 文档页数:52


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_codeGOODSMVT_CODE参数对应值: 01 MB01 02 MB31 03 MB1A 04 MB1B 05 MB1C 06 MB11 07 MB046、 BAPI_GOODSMVT_CANCEL 冲销物料凭证7、 BAPI_PR_CREATE 创建PR8、 BAPI_PO_CREATE1 创建PO9、 BAPI_PO_CHANGE 修改PO和删除PO10、WS_REVERSE_GOODS_ISSUE 冲销交货单的过账发货11、BAPI_RESERVATION_CREATE1 创建预留如果要检查ATP,必须使⽤BAPI_RESERVATION_CREATE12、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_ca5、 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 创建客户。
业务顾问需要掌握的BAPI的测试及注意事项SAP的BAPI全称为Business Application Programming Interface(业务应用程序编程接口),是SAP产品中业务对象模型的标准接口,BAPI是客户代码和第三方应用程序与SAP产品交互的主要方法。
在SAP/ERP项目实施中经常会要使用BAPI来实现一些业务需求,如果是第一次使用BAPI除了查看官方的相关说明外,更重要的还要进行测试来明确这个BAPI如何使用及能否实现相关的功能。
测试BAPI除了写一个ABAP程序测试外,还可以直接用SE37来进行测试,使用SE37测试操作简单,即使是完全不懂开发的业务顾问也可以进行,在实际项目实施中有些ABAP开发程序员并不熟悉业务,经常需要业务顾问帮忙测试下BAPI明确需要输入那些参数。
方式1:模拟测试,这种方式虽然执行了这个BAPI,但并没有更新数据库,所以只能显示测试结果,相关业务数据并没有更新。
备注:有些BAPI可能已经将提交更新数据库代码写在了BAPI函数模块里面,那么模拟测试和实际测试没有区别。
方式2:实际测试,这种方式不但执行了这个BAPI,同时也更新了数据库,所以不但会显示测试结果,相关业务数据也实际更新了。
下面通过一个例子来具体说明这2种方式测试的具体操作步骤方式1具体操作步骤:输入事务码SE37,回车进入如下界面输入需要测试的函数模块(BAPI),点击测试图标进入如下界面上面“导入参数”各代表什么值,可以通过如下步骤查询到对应的描述。
这个BAPI的输入参数比较简单,只需要输入2个参数即可,但如果复杂的BAPI,它需要录入参数非常多,如果不熟悉前台业务操作,很难输入完整的参数,导致测试失败,就是非常了解业务的业务顾问,一般都需要多次反复测试,才能明确要录入那些参数,所以在项目中ABAP开发程序员经常需要业务顾问帮忙测试,告诉他应该录入哪些参数。
输入参数后,点击执行,进入如下界面为E或A的信息,就表示这个BAPI执行成功了(如图1),如果RETURN返回值的内表不为空,并且有E类错误信息,表示这个BAPI执行失败(如图2),具体原因可以MESSAGE信息来判断。
ABAP ME59N BAPI函数是针对采购订单和采购申请中的未清项的处理函数。
采购订单中未清项是指尚未生成凭证或尚未校准的项。
通过使用ME59N BAPI函数,可以有效地处理未清项,对采购订单进行合理的处理。
本文将详细介绍ABAP ME59N BAPI函数的相关内容,包括其功能、使用方法、常见问题及解决方案等。
希望能够通过本文的介绍,帮助读者更加深入地了解和掌握ABAP ME59N BAPI函数的相关知识。
一、ABAP ME59N BAPI函数的功能ABAP ME59N BAPI函数主要用于处理采购订单和采购申请中的未清项。
其主要功能包括:1. 生成凭证:对于已经完成的采购订单或者采购申请,可以使用ME59N BAPI函数生成相应的凭证,方便后续的财务处理。
2. 校准项:对于未能及时校准的项,可以使用ME59N BAPI函数进行校准,确保采购订单的准确性和完整性。
3. 自动处理:ME59N BAPI函数可以实现对未清项的自动处理,提高工作效率并减少手工操作的繁琐性。
二、ABAP ME59N BAPI函数的使用方法使用ABAP ME59N BAPI函数的方法如下所示:1. 调用BAPI函数:在ABAP程序中,通过调用BAPI函数的方式来使用ME59N BAPI函数。
具体调用方法可参考相关的开发文档或者示例代码。
2. 传入参数:在调用ME59N BAPI函数时,需要传入相关的参数,包括采购订单号、采购申请号等信息,以便函数能够准确地处理相应的未清项。
3. 处理结果:ME59N BAPI函数处理完成后,会返回相应的处理结果,包括成功或者失败等信息。
根据返回的结果,可以进一步处理相应的业务逻辑。
三、ABAP ME59N BAPI函数的常见问题及解决方案在实际使用ABAP ME59N BAPI函数时,可能会遇到一些常见的问题,以下是一些可能的问题及相应的解决方案:1. 参数传递错误:在调用ME59N BAPI函数时,可能会因为参数传递错误而导致处理失败。
ABAP开发规范目录1ABAP对象命名规范 (5)1.1开发类 (5)1.2程序名 (5)1.3数据字典 (6)1.3.1表/结构/数据元素/域 (6)1.3.2表类型 (6)1.3.3范围表类型 (6)1.3.4搜索帮助 (6)1.3.5锁对象 (6)1.4函数组及函数模块 (7)1.4.1函数组 (7)1.4.2函数模块 (7)1.5BADI实施 (7)1.6消息类 (8)1.7类 (8)1.8SMARTFORM (8)1.9自定义权限对象 (8)1.10E NHANCEMENT PROJECT (8)1.11W EB S ERVICE命名 (8)1.12P ROXY 命名 (9)2通用ABAP代码规范 (10)2.1代码格式 (10)2.1.1Pretty Printer (10)2.1.2Spacing (10)2.1.3代码行 (11)2.1.4代码注释 (12)2.2程序变量 (12)2.2.1变量使用说明 (12)2.2.2命名规范 (13)2.2.3常量 (14)2.2.4全局变量 (16)2.2.5内表/结构 (17)2.2.6文本变量 (19)2.3常用语句格式 (20)2.3.1Message (20)2.3.2Call function (20)2.3.3Perform (20)2.3.4Select (21)2.3.5IF (22)2.3.6CHECK (22)2.3.7LOOP (23)2.3.8READ (24)2.3.9WHILE (24)2.3.10DO (24)2.3.11CASE (25)2.3.12CONCATENATE (26)3报表程序规范 (27)3.1程序结构 (27)3.1.1数据初始化子程序 (29)3.1.2数据存取子程序 (30)3.1.3数据处理子程序 (30)3.1.4数据组合子程序 (31)3.1.5数据输出子程序 (32)4子程序规范 (33)4.1模块化代码 (33)4.2参数 (34)4.2.1参数命名 (34)4.2.2参数类型 (34)4.2.3Table参数 (34)4.2.4参数个数要求 (35)4.2.5参数对齐 (37)4.3子程序结构 (37)4.4P ERFORM语句 (38)4.5子程序注释 (39)5功能模块规范 (40)5.1函数模块结构 (40)5.2函数返回值 (40)5.3函数调用 (40)6屏幕对话程序规范 (42)6.1屏幕逻辑流结构 (42)6.2PAI/PBO/POV模块 (43)6.2.1User-command模块 (44)7BADI增强规范 (47)8CMOD增强规范 (49)9BTE增强规范 (50)10程序性能相关代码规范 (51)10.1SQL语句 (51)10.2内表操作 (56)10.3其他语句 (64)10.3.1CASE语句 (64)10.3.2WHILE语句 (64)10.3.3比较语句 (65)附录 (66)1.1SAP业务模块命名表 (66)1.2数据字典对象类型命名表 (66)版本控制1ABAP对象命名规范1.1开发类Z<XX>_<Short text><XX>-业务模块,见附录1<Short text>-简短描述,英文1.2程序名Z<XXY>_<Short text><XX>-业务模块,见附录1<Y>-程序类型代码<Short text>-简短描述,英文注:用于特定程序的include程序按以下方式命名:<主程序名>_<Xnn>, nn-两位流水码1.3数据字典1.3.1表/结构/数据元素/域Z<TXX>_<Short text><T>-数据字典对象类型,参见附表2<XX>-业务模块,见附录1<Short text>-简短描述,英文1.3.2表类型[Z_]<structure >_T[Z_]-如果< structure >名称以Z开头,则可省略<structure>-使用的结构名1.3.3范围表类型[Z_]<dataelement>_T[Z_]-如果<dataelement>名称以Z开头,则可省略<dataelement>-使用的数据元素名1.3.4搜索帮助Z<XX>_SH_<Short text><XX>-业务模块,见附录1<Short text>-简短描述,英文1.3.5锁对象E[Z] <tablename>[Z]-如果<tablename>名称以Z开头,则可省略<tablename>-表名1.4函数组及函数模块1.4.1函数组Z<XX>_<nn><XX>-业务模块,见附录1<nn>-两位流水码1.4.2函数模块<FunctionGroup>_<Short text><FunctionGroup>-函数模块所在的函数组名< Short text >-函数基本功能的短文本1.5BADI实施a) Custom Business Add-inZ<XX>_BADI_< Short text><XX>-业务模块,见附录1< Short text >-BADI 定义的名称b) Custom Business Add-in ImplementationZ<XX>_BADIM_< Short text><XX>-业务模块,见附录1< Short text >-BADI 定义的名称c) SAP Business Add-in ImplementationZ<XX>_IMPL_< Short text><XX>-业务模块,见附录1< Short text >-BADI 定义的名称d) SAP BADI Method< Short text >-自由定义,但有意义,简单描述该方法实现的功能1.6消息类Z<XX>_<nn><XX>-业务模块,见附录1< Short text >-简短描述,英文1.7类Z<XX>_<Short text><XX>-业务模块,见附录1<Short text>-简短描述,英文1.8SMARTFORM[Z]<Reportname>_<Short text>[Z]-如果<Reportname>名称以Z开头,则可省略<Short text>-简短描述,英文1.9自定义权限对象Z<XX>_<Short text><XX>-业务模块,见附录1<Short text>-简短描述,英文1.10Enhancement projectZ<XX><nnnn><XX>-业务模块,见附录1<nnnn>-四位流水码1.11Web Service命名ZWS<XX>_<Short text><XX>-业务模块,见附录1<Short text>-简短描述,英文1.12Proxy 命名Z<XX>_<Short text><XX>-业务模块,见附录1<Short text>-简短描述,英文2通用ABAP代码规范2.1代码格式2.1.1 Pretty Printer所有程序代码应使用pretty printer功能进行规范,包含:代码缩进;关键字大写,其余小写。