首先看FB01前台操作,前台成功了才能测试BAPI
一般而言FB01 对应的BAPI是用 BAPI_ACC_DOCUMENT_POST
这个简单的demo 主要参数就那么几个
调用即可:check 可以防止跳号
CALL FUNCTION 'BAPI_ACC_DOCUMENT_CHECK'
EXPORTING
documentheader = ls_doc_header
TABLES
accountgl = lt_acc_gl
currencyamount = lt_acc_cur
return = lt_return.
CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
EXPORTING
documentheader = ls_doc_header
IMPORTING
obj_type = lv_type
obj_key = lv_key
obj_sys = lv_sys
TABLES
accountgl = lt_acc_gl
currencyamount = lt_acc_cur
return = lt_return.
下面内容可以参考博文:
http://blog.sina.com.cn/s/blog_3f2c03e30100mk24.html
有一些参数在BAPI_ACC_DOCUMENT_POST的输入和表参数中根本没有,如记账码Posting Key、原因代码Reason Code,
解决办法大体如下:
1、se11创建结构,必须包含行项目号POSNR字段,和其他需要扩展的字段,如记账码Posting Key、原因代码Reason Code
2、SE19实现BADI增强ACC_DOCUMENT,这个增强是用来将BAPI_ACC_DOCUMENT_POST参数表EXTENSION2传入系统表
3、使用BAPI_ACC_DOCUMENT_POST参数表EXTENSION2,将扩展字段传入
3、使用BAPI_ACC_DOCUMENT_POST参数表EXTENSION2,将扩展字段传入
DATA: ACCOUNTGL TYPE STANDARD TABLE OF BAPIACGL09.
DATA: CURRENCY_AMOUNT TYPE STANDARD TABLE OF BAPIACCR09.
DATA: RETURN TYPE STANDARD TABLE OF BAPIRET2 WITH HEADER LINE.
DATA: IT_EXTENSION2 TYPE STANDARD TABLE OF BAPIPAREX WITH HEADER LINE.
DATA: WA_ZEXTEN LIKE ZEXTEN. ”ZEXTEN就是刚才SE11创建的那个结构
*& EXTENSION2 扩展字段增强部分
WA_ZEXTEN-POSNR = '0000000010'. "凭证行项目
WA_ZEXTEN-RSTGR = '171'. "凭证行项目原因代码
IT_EXTENSION2-STRUCTURE = 'ZEXTEN'.
IT_EXTENSION2-VALUEPART1 = WA_ZEXTEN.
APPEND IT_EXTENSION2.
*执行BAPI
CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
EXPORTING
DOCUMENTHEADER = HEADER
TABLES
ACCOUNTGL = ACCOUNTGL
CURRENCYAMOUNT = CURRENCY_AMOUNT
RETURN = RETURN
EXTENSION2 = IT_EXTENSION2
更多内容,欢迎关注微信订阅号:SAP干货铺