bapi_acc_document_post使用说明


bapi_acc_document_post使用说明

 

之前写过一篇关于bapi_acc_document_post的博客,再看觉得实在粗糙,自己都不甚明白,对他人就更起不到帮助了,故今天再梳理一下。

 

bapi_acc_document_post适用于创建会计凭证,功能与前台FB01等相同,其输出是创建的会计凭证号。 该bapi时常与badi ACC_DOCUMENT配合使用,在标准功能的基础上实现客户化需求。

1.    bapi常用参数说明

参数名

说明

用法举例

DOCUMENTHEADER

财务凭证抬头结构,存放凭证类型、日期等

*  抬头
    ls_documentheader
- doc_type    = 'SA'. "总帐科目凭证
    ls_documentheader
- username    sy - uname .
    ls_documentheader
- comp_code   pt_main - bukrs .
    ls_documentheader
- doc_date    pt_main - budat_cb .
    ls_documentheader
- pstng_date  pt_main - budat_cb .
    ls_documentheader
- fisc_year   pt_main - budat_cb+0 (4).
    ls_documentheader
- fis_period  pt_main - budat_cb+4 (2).
    ls_documentheader
- ref_doc_no  pt_main - belnr .  "CO凭证

ACCOUNTGL

存放与总账相关的行项目信息。

    ls_accountgl - itemno_acc  lv_itemno .         "行项目号
      ls_accountgl
- item_text   pt_main - kstar_txt . "科目描述
      ls_accountgl
- gl_account  pt_main - kstar .     "科目
      ls_accountgl
- costcenter  pt_main - kostl .     "成本中心
      
APPEND  ls_accountgl  TO  lt_accountgl .
      
CLEAR  ls_accountgl .

ACCOUNTRECEIVABLE

存放与客户相关的行项目信息,可设定特殊总账标识。

  ls_accountreceivable - itemno_acc  = 10.                "行项目号
    ls_accountreceivable
- customer    pt_main - bukrs_in .  "转入方公司代码
    ls_accountreceivable
- sp_gl_ind   = 'E'.               "特殊总账标识
    
APPEND  ls_accountreceivable  TO  lt_accountreceivable .
    
CLEAR  ls_accountreceivable .

ACCOUNTPAYABLE

存放与供应商相关的行项目信息,可设定特殊总账标识。

  lv_itemno  lv_itemno +  10.
    ls_accountpayable
- itemno_acc  lv_itemno .          "行项目号
    ls_accountpayable
- vendor_no   pt_main - bukrs .      "转出方公司代码
    ls_accountpayable
- sp_gl_ind   = 'D'.             "特殊总账标识
    
APPEND  ls_accountpayable  TO  lt_accountpayable .
    
CLEAR  ls_accountpayable .

ACCOUNTTAX

存放与税相关行项目

***************行项目30 税
    ls_accounttax
- itemno_acc  = 30.                      "行项目号
    ls_accounttax
- gl_account  = '0022210118'.            "科目
    ls_accounttax
- tax_code    = 'X3'.                   "税码
    
APPEND  ls_accounttax  TO  lt_accounttax .
    
CLEAR  ls_accounttax .

CURRENCYAMOUNT

存放所有行项目与金额相关的信息,正负对应的记账码系统能自动处理一些,如正40,负50等。

**    行项目金额设定
    lv_sum 
lv_sum *  ( -1 ).
    ls_currencyamount
- itemno_acc  lv_itemno .         "行项目号
    ls_currencyamount
-currency   = 'RMB'.             "货币单位
    ls_currencyamount
- amt_doccur  lv_sum .            "合计金额
    
APPEND  ls_currencyamount  TO  lt_currencyamount .
    
CLEAR  ls_currencyamount .

2.    实例讲解

通过Tcd:FB01创建一张凭证,分别有以下行项目(无需分析业务合理性,只能技术角度考虑)

 

行项目号

科目

金额

说明

特殊总账

10

020101

1000

总账科目

20

YH50

500

客户

09E

30

YHG3

1590-

供应商

39E

40

22210118

90

税X3, 6%


 

 

上述数据使用bapi过账时,设定如下

1、 行项目10存入 ACCOUNTGL

2、 行项目20存入应收,总账标识E

3、 行项目30存入应付,总账标识D

4、 行项目40存入税,税基、税额、税码都要填写。

5、 10-40行对应的金额都要存入 CURRENCYAMOUNT。

 

代码见附件

效果

bapi_acc_document_post.docx


请使用浏览器的分享功能分享到微信等