我想在tAPI F-48的BAPI_ACC_DOCUMENT_POST中添加预提税代码

2020-09-14 00:34发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我想在BAPI_ACC_DOCUMENT_POST中为标准tcode F-48添加Witholding税代码。

要求:预提税应按总帐科目总金额(含税)计算,而不应按供应商计算。

例如。

如果总金额为11,800卢比,则预提税额应为11,800 * 2.00%= 236

然后在FB03 Tcode中输入文档编号

然后条目应该看起来像

总帐金额-11564

供应商基本金额10000

税额1 9%900

税额2 9%900

预提税额-236

然后如何在程序中编写它。 预先谢谢你

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我想在BAPI_ACC_DOCUMENT_POST中为标准tcode F-48添加Witholding税代码。

要求:预提税应按总帐科目总金额(含税)计算,而不应按供应商计算。

例如。

如果总金额为11,800卢比,则预提税额应为11,800 * 2.00%= 236

然后在FB03 Tcode中输入文档编号

然后条目应该看起来像

总帐金额-11564

供应商基本金额10000

税额1 9%900

税额2 9%900

预提税额-236

然后如何在程序中编写它。 预先谢谢你

付费偷看设置
发送
2条回答
compass1988
1楼-- · 2020-09-14 00:55

您是否已阅读参考操作说明(带有示例) 2083799-复合SAP注意:记帐过帐 BAPIs ,并使用诸如" BAPI_ACC_DOCUMENT_POST"," Witholding"

SAP小黑
2楼-- · 2020-09-14 01:12

之类的关键字检查必需的注释我定义了特殊总帐指标,但仍然无法获得我拥有的结果 与您共享了该屏幕。

es_documentheader-obj_type ='BKPFF'。
合并sy-datum sy-uzeit INTO es_documentheader-obj_key。
es_documentheader-bus_act ='RFBU'。
es_documentheader-username = sy-uname。"用户 "当前用户名
es_documentheader-header_txt ='测试'。 " lt_data-bktxt。"标题文本
es_documentheader-comp_code ='5000'。 " lt_data-bukrs。"公司代码
es_documentheader-doc_date = sy-datum。 " lt_data-bldat。"文档日期
es_documentheader-pstng_date = sy-datum。 " lt_data-budat。"发布日期
es_documentheader-doc_type ='KZ'。 " lt_data-blart。"文档类型'AA'。
es_documentheader-fisc_year ='2018'。 " lt_data-gjahr。"会计年度
es_documentheader-ref_doc_no ='Test123'。 " lt_data-xblnr。"参考文档号
es_documentheader-doc_status ='4'。 "已检查并完成发布

lt_data-bukrs ='5000'。
lt_data-mwskz ='15'。
lt_data-waers ='INR'。
lt_data-rewwr = 236 。

*********************************************** *******
呼叫功能'CALCULATE_TAX_FROM_GROSSAMOUNT'
导出
i_bukrs = lt_data-bukrs
i_mwskz = lt_data-mwskz
i_waers = lt_data-waers
i_wrbtr = lt_data- rewwr
导入
e_fwnav = e_fwnav
e_fwnvv = e_fwnvv
e_fwste = e_fwste
e_fwast = e_fwast
桌子
t_mwdat = t_mwdat
没发现1 br> country_not_found = 2
mwskz_not_valid = 4
account_not_found = 5
different_discount_base = 6
different_tax_base = 7
txjcd_not_valid = 8
not_found = 9
ktosl_not_found = 10
kalsm_not_found = 11
parameter_error = 12
knumh_not_found = 13
kschl_not_found = 14
unknown_error = 15
其他=16。
如果sy-subrc <> 0 。
*在此处实施适当的错误处理
ELS E.
读取表t_mwdat INTO wa_mwdat索引1。
ENDIF。
***************************** *********************
*在t_mwdat处循环INTO wa_mwdat。
count = count + 1.
******* ******人口总帐帐户***************
清除:is_accountgl。
lv_item_no = lv_item_no + 1.
is_accountgl-itemno_acc = lv_item_no。< br> is_accountgl-gl_account ='0002515701'。 " lt_data-hkont。"总帐科目
is_accountgl-item_text ='TEST1'。 " lt_data-bktxt1。"标题文本
is_accountgl-acct_type ='S'。
is_accountgl-alloc_nmbr ='12345'。 " lt_data-zuonr1。"项目分配编号
is_accountgl-comp_code ='5000'。 " lt_data-bukrs。"公司代码
附加is_accountgl到it_accountgl。

REFRESH:lt_lfbw []。


从lfbw
中选择带有wt_withcd
的lifnr bukrs从ltblfw
其中lifnr ='MUM001'" wa_vendoritem-vendor_no
AND bukrs ='5000'。" wa_vendoritem-comp_code
* AND wt_subjct ='X'。

如果lt_lfbw []不是 初始化。
将lt_lfbw循环到ls_lfbw中。
wa_accountwt-itemno_acc = is_accountgl-itemno_acc。
wa_accountwt-wt_type = ls_lfbw-witht。
wa_accountwt-wt_code = ls_lf it_accountwt。
清除:ls_lfbw。
ENDLOOP。
ENDIF。


清除is_currencyamount。
is_currencyamount-itemno_acc = is_accountgl-itemno_acc。 " lv_item_no。
is_currencyamount-curr_type ='00'。
is_currencyamount-currency ='INR'。" lt_data-waers。 " wa_mwdat-kawrt。"货币密钥
is_currencyamount-amt_doccur ='-236'。" "本地货币金额
APPEND is_currencyamount到it_currencyamount。
CLEAR is_currencyamount。
CLEAR is_accountgl。

* ENDLOOP。

********* 税码详细信息



****填充供应商数据
lv_item_no = lv_item_no + 1.
wa_vendoritem-itemno_acc = lv_item_no。
wa_vendoritem-vendor_no ='MUM001' 。" lt_data-lifnr。 "供应商代码
wa_vendoritem-comp_code ='5000'。" lt_data-bukrs。 "公司代码
wa_vendoritem-bline_date = sy-datum。" lt_data-zfbdt1。 "基准日期
wa_vendoritem-item_text ='TEST'。" lt_data-bktxt。 "标题文本
wa_vendoritem-businessplace ='5000'。" lt_data-bupla。 "营业地点
wa_vendoritem-sectioncode ='5000'。" lt_data-secco。 "部分代码
wa_vendoritem-tax_code ='15'。" lt_data-mwskz。 "税码
wa_vendoritem-sp_gl_ind ='A'。
附加wa_vendoritem到it_vendoritem。

清除is_currencyamount。
is_currencyamount-itemno_acc = wa_vendoritem-itemno_acc ='a-mount_ 00"。
is_currencyamount-currency ='INR'。" lt_data-waers。 "货币密钥
is_currencyamount-amt_doccur ='200'。" wa_mwdat-kawrt。
is_currencyamount-amt_base ='200'。 " wa_mwdat-kawrt。
APPEND is_currencyamount到它_currencyamount。




LOOP AT t_mwdat进入wa_mwdat。
清除:gv_hkont。
从j_1it030k中选择一个单键 br> INTO gv_hkont
ktopl ='9000'
AND ktosl = wa_mwdat-ktosl
AND mwskz ='15'
AND bupla ='5000'。


lv_item_no = lv_item_no + 1.
is_accounttax-itemno_acc = lv_item_no。
is_accounttax-gl_account = gv_hkont。" wa_mwdat-hkont。 "税收总账科目is_accounttax-cond_key = wa_mwdat-kschl。"条件类型'JISG'。
is_accounttax-acct_key = wa_mwdat-ktosl。 "交易密钥'JIS'。
is_accounttax-tax_code ='15'。" lv_tax_code。 "税码'15'。
is_accounttax-tax_rate = wa_mwdat-msatz。"税率'9'。
is_accounttax-itemno_tax = wa_vendoritem-itemno_acc。 "计数。
APPEND is_accounttax到it_accounttax3。


is_currencyamount-itemno_acc = lv_item_no。
is_currencyamount-curr_type ='00'。
is_currencyamount-currency ='INR'。 -waers。"'EUR'
is_currencyamount-amt_doccur = wa_mwdat-wmwst。
is_currencyamount-amt_base = wa_mwdat-kawrt。
is_currencyamount-currency_iso ='INR'。" lt_data-waers。"'INR'。
APPEND is_currencyamount到it_currencyamount。
CLEAR is_currencyamount。
ENDLOOP。



将it_accounttax3导出到内存ID'IT_ACCOUNTTAX2'。"导出到FM" FI_TAX_GET_TAX_ACCOUNTS"
***传递已填充的BAPI表
呼叫功能'BAPI_ACC_DOCUMENT_POST'
导出
documentheader = es_documentheader
TABLES
accountgl = it_accountgl
accountpayable = it_vendoritem
accounttax = it_accounttax3
currencyamount = it_currencyamount
返回= it_return
accountwt = it_accountwt。
免费内存ID'IT_ACCOUNTTAX2'。
清除:is_return。
读取表it_​​retur n WITH KEY type ='S'INTO is_return。
***提交工作******
如果sy-subrc =0。
调用函数'BAPI_TRANSACTION_COMMIT'
导出
等待='X'。
清除is_return。
ELSE。

ENDIF。

请指导我在构建适当逻辑方面所欠缺的地方

一周热门 更多>