您的位置:首页 > 其它

FB01 F-02 BAPI: BAPI_ACC_DOCUMENT_POST

2021-02-14 20:50 671 查看

最简单的过账:

FB01或者F-02

FB03查看

一般默认都是BAPI_ACC_DOCUMENT_POST

三个参数


demo代码

CLEAR: ls_acc_gl,ls_acc_cur,lt_acc_cur[],lt_acc_cur[],ls_doc_header.
    ls_doc_header-header_txt   =
    ls_doc_header-username   = sy-uname.
    ls_doc_header-comp_code  =
    ls_doc_header-doc_date   =
    ls_doc_header-pstng_date = 
    ls_doc_header-fisc_year  =
    ls_doc_header-fis_period = 
    ls_doc_header-doc_type   = 'SA'.

    ls_acc_gl-item_text  =
    ls_acc_gl-itemno_acc  = 1.
    ls_acc_gl-doc_type = 'SA'.
    ls_acc_gl-comp_code = 
    ls_acc_gl-pstng_date = 
    ls_acc_gl-fisc_year  = 
    ls_acc_gl-fis_period = 
    ls_acc_gl-gl_account  = 


    APPEND  ls_acc_gl TO lt_acc_gl.

    ls_acc_gl-itemno_acc  = 2.
    ls_acc_gl-gl_account  = 


    APPEND  ls_acc_gl TO lt_acc_gl.

    ls_acc_cur-itemno_acc = 1.
    ls_acc_cur-currency =  
    ls_acc_cur-amt_doccur = 
    APPEND ls_acc_cur TO lt_acc_cur.

    ls_acc_cur-itemno_acc = 2.
    ls_acc_cur-currency =  
    ls_acc_cur-amt_doccur =   
    APPEND ls_acc_cur TO lt_acc_cur.

    CALL FUNCTION 'BAPI_ACC_DOCUMENT_CHECK'
      EXPORTING
        documentheader = ls_doc_header
      TABLES
        accountgl      = lt_acc_gl
        currencyamount = lt_acc_cur
        return         = lt_return.

    READ TABLE lt_return TRANSPORTING NO FIELDS
      WITH KEY type = 'E'.
 
    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,将扩展字段传入


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


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: