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% | |
![](https://i-blog.csdnimg.cn/blog_migrate/e439973d5031d77fd781bfdcc36f33b2.png)
上述数据使用bapi过账时,设定如下
1、 行项目10存入 ACCOUNTGL
2、 行项目20存入应收,总账标识E
3、 行项目30存入应付,总账标识D
4、 行项目40存入税,税基、税额、税码都要填写。
5、 10-40行对应的金额都要存入 CURRENCYAMOUNT。
代码见附件
效果
![](https://i-blog.csdnimg.cn/blog_migrate/43b0c58eec46db4bdd009da18c201d0a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7f97a04d30e9618230a2beef387a0e5e.png)