最简单的过账:

FB01或者F-02

FB01 F-02 BAPI: BAPI_ACC_DOCUMENT_POST_java

FB01 F-02 BAPI: BAPI_ACC_DOCUMENT_POST_java_02

FB01 F-02 BAPI: BAPI_ACC_DOCUMENT_POST_java_03

FB03查看

一般默认都是BAPI_ACC_DOCUMENT_POST

三个参数


demo代码

CLEARls_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,将扩展字段传入

FB01 F-02 BAPI: BAPI_ACC_DOCUMENT_POST_java_04


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