BAPI_ACC_DOCUMENT_POST无法发布/创建新的会计凭证

2020-08-21 09:19发布

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

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


大家好,

我在使用BAPI_ACC_DOCUMENT_POST发布/创建新的会计凭证时遇到问题。 谁能在这里找到问题所在? 谢谢

这是标题部分。

gw_documentheader-fisc_year = gw_post_rec-gjahr。
gw_documentheader-header_txt ='CAYEAUTO'。

gw_documentheader-pstng_date = gw_post_rec-budat。
gw_documentheader-doc_date = gw_documentheader-pstng_date。

gw_documentheader-ref_doc_no = gw_post_rec-xblnr

如果gw_post_rec-bschl ='21'或
gw_post_rec-bschl ='31'。

gw_documentheader-doc_type ='KI'。

ELSEIF gw_post_rec-bschl = '25 'OR
gw_post_rec-bschl ='50'。

gw_documentheader-doc_type ='ZP'。

ENDIF。
gw_documentheader-fis_period ='12'。 " gw_post_rec-monat。
gw_documentheader-comp_code = gw_post_rec-bukrs。

gw_documentheader-index = g_doc_count。

gw_documentheader_p-doc_status ='4'。
gw_documentheader_p-obj_type ='ZBKPF'。 "'BKPFF'。
*
*
l_belnr = gw_documentheader-ac_doc_no + 1.
合并l_belnr
gw_documentheader-comp_code
gw_documentheader-fisc_year

INTO gw_documentheader- obj_key。
* gw_documentheader-obj_key ='l'。
** gw_documentheader-obj_key = gw_documentheader-ref_doc_no。"'$"。 " gw_documentheader_p-ac_doc_no。
gw_documentheader-obj_sys = l_logsys。

将gw_documentheader附加到gt_documentheader。

这是我的应付帐款。

gw_accountpayable-itemno_acc = g_doc_count。
如果gw_post_rec-bschl ='21'。
gw_accountpayable-vendor_no = gw_post_rec-lifnr。
ELSEIF gw_post_rec-bschl = '31'。
='1001941'。
ENDIF。

gw_accountpayable-comp_code = gw_post_rec-bukrs。
gw_accountpayable-gl_account = gw_post_rec-hkont。

gw_accountpayable-bus_area = gw_post_rec-gsber。

gw_accountpayable-item_text ='CAYEAUTO'。

gw_accountpayable-bline_date = gw_documentheader-doc_date。
gw_accountpayable-pmnt_block = gw_post_rec-zlspr。
gw_accountpayable-pymt_cur ='SGD'。 " gw_post_rec-pycur。
gw_accountpayable-dsct_days1 = gw_post_rec-zbd1t。
gw_accountpayable-dsct_pct1 = gw_post_rec-zbd1p。
gw_accountpayable-dsct_ds gw_accountpayable-pymt_amt = gw_post_rec-wrbtr。

gw_accountpayable-index = g_doc_count。

附加gw_accountpayable至gt_accountpayable。

(20.8 kB)

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

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


大家好,

我在使用BAPI_ACC_DOCUMENT_POST发布/创建新的会计凭证时遇到问题。 谁能在这里找到问题所在? 谢谢

这是标题部分。

gw_documentheader-fisc_year = gw_post_rec-gjahr。
gw_documentheader-header_txt ='CAYEAUTO'。

gw_documentheader-pstng_date = gw_post_rec-budat。
gw_documentheader-doc_date = gw_documentheader-pstng_date。

gw_documentheader-ref_doc_no = gw_post_rec-xblnr

如果gw_post_rec-bschl ='21'或
gw_post_rec-bschl ='31'。

gw_documentheader-doc_type ='KI'。

ELSEIF gw_post_rec-bschl = '25 'OR
gw_post_rec-bschl ='50'。

gw_documentheader-doc_type ='ZP'。

ENDIF。
gw_documentheader-fis_period ='12'。 " gw_post_rec-monat。
gw_documentheader-comp_code = gw_post_rec-bukrs。

gw_documentheader-index = g_doc_count。

gw_documentheader_p-doc_status ='4'。
gw_documentheader_p-obj_type ='ZBKPF'。 "'BKPFF'。
*
*
l_belnr = gw_documentheader-ac_doc_no + 1.
合并l_belnr
gw_documentheader-comp_code
gw_documentheader-fisc_year

INTO gw_documentheader- obj_key。
* gw_documentheader-obj_key ='l'。
** gw_documentheader-obj_key = gw_documentheader-ref_doc_no。"'$"。 " gw_documentheader_p-ac_doc_no。
gw_documentheader-obj_sys = l_logsys。

将gw_documentheader附加到gt_documentheader。

这是我的应付帐款。

gw_accountpayable-itemno_acc = g_doc_count。
如果gw_post_rec-bschl ='21'。
gw_accountpayable-vendor_no = gw_post_rec-lifnr。
ELSEIF gw_post_rec-bschl = '31'。
='1001941'。
ENDIF。

gw_accountpayable-comp_code = gw_post_rec-bukrs。
gw_accountpayable-gl_account = gw_post_rec-hkont。

gw_accountpayable-bus_area = gw_post_rec-gsber。

gw_accountpayable-item_text ='CAYEAUTO'。

gw_accountpayable-bline_date = gw_documentheader-doc_date。
gw_accountpayable-pmnt_block = gw_post_rec-zlspr。
gw_accountpayable-pymt_cur ='SGD'。 " gw_post_rec-pycur。
gw_accountpayable-dsct_days1 = gw_post_rec-zbd1t。
gw_accountpayable-dsct_pct1 = gw_post_rec-zbd1p。
gw_accountpayable-dsct_ds gw_accountpayable-pymt_amt = gw_post_rec-wrbtr。

gw_accountpayable-index = g_doc_count。

附加gw_accountpayable至gt_accountpayable。

(20.8 kB)
付费偷看设置
发送
5条回答
能不能别闹
1楼-- · 2020-08-21 09:37
数据:l_loop_index类型i。
   数据:l_status_count类型i,
         l_result_count类型TYPE I,
         l_error_flag TYPE c,
         l_status TYPE icon_d,
         l_belnr TYPE belnr_d。

   数据:l_obj_key类型bapiache09-obj_key。
   数据:l_logsys类型bapiache09-obj_sys。

   数据:l_nr_range_nr TYPE inri-nrrangenr,
         l_object TYPE inri-object。

   刷新:gt_check_result,
            gt_post_result。

   清除:l_loop_index,
            g_belnr1,
            g_bukrs,
            g_budat。

   通话功能'FIBL_GET_LOGSYS'
     输入
       ex_logsys = l_logsys。


 *当l_loop_index 如果以前的检查中存在错误,请忽略该记录
   读取表gt_status INTO gw_status
     WITH KEY索引= l_loop_index
               类型='E'。

 *->在文档中发现错误。 添加错误状态消息并
 *忽略记录
   如果sy-subrc = 0。

     循环至gt_status INTO gw_status
       WHERE索引= l_loop_index。
       gw_status-type ='E'。
       gw_status-status = icon_led_red。

       将gw_status附加到gt_check_result。
       将gw_status附加到gt_final_result。
       l_error_flag = gc_x。
     结局。

     如果l_error_flag = gc_x。
       如果g_check是INITIAL。
         g_check = 8。
       万一。
 *继续。
     万一。
   万一。

   刷新:gt_documentheader_p,
            gt_accountgl_p,
            gt_accountreceivable_p,
            gt_accountpayable_p,
            gt_currencyamount_p,
            gt_criteria_p,
            gt_accounttax_p,
            gt_bapiret2_p,
            gt_accountreceivivable_b,
            gt_currencyamount_b,
            gt_accountgl_b,
            gt_accounttax_b,
            gt_bapiret2_b。

 **文件标题
   将gt_documentheader循环到gw_documentheader中。
     " WHERE索引= l_loop_index。

     gw_documentheader_p = gw_documentheader。
     gw_documentheader_p-bus_act ='RFBU'。
     gw_documentheader_p-username = sy-uname。

     如果gw_documentheader_p-doc_type EQ'RV'
     或gw_documentheader_p-doc_type EQ'RC'
     或gw_documentheader_p-doc_type EQ'RR'。


       gw_documentheader_p-obj_type ='ZBKPF'。
       gw_documentheader_p-obj_key = gw_documentheader_p-ac_doc_no。
       gw_documentheader_p-obj_sys = l_logsys。

     ELSEIF gw_documentheader_p-doc_type EQ'RE'
     或gw_documentheader_p-doc_type EQ'KI'
     或gw_documentheader_p-doc_type EQ'ZP'。

       gw_documentheader_p-ac_doc_no =空格。
 * gw_documentheader_p-doc_status ='4'。
       gw_documentheader_p-obj_type ='ZBKPF'。  "'BKPFF'。
 *
 *
       l_belnr = gw_documentheader_p-ac_doc_no + 1。
       合并l_belnr
                   gw_documentheader_p-comp_code
                   gw_documentheader_p-fisc_year

                   INTO gw_documentheader_p-obj_key。
 * gw_documentheader_p-obj_key ='l'。
 ** gw_documentheader_p-obj_key = gw_documentheader-ref_doc_no。  "'$'。" gw_documentheader_p-ac_doc_no。
       gw_documentheader_p-obj_sys = l_logsys。

     万一。
     将gw_documentheader_p附加到gt_documentheader_p。

   结局。

 ** GL
   将gt_accountgl循环到INTO gw_accountgl。" WHERE索引= l_loop_index。
     gw_accountgl_p = gw_accountgl。
     将gw_accountgl_p附加到gt_accountgl_p。
   结局。

 ** AR
   将gt_accountreceivable循环到INTO gw_accountreceivable。
     "其中的索引= l_loop_index。
     gw_accountreceivable_p = gw_accountreceivable。
     将gw_accountreceivable_p附加到gt_accountreceivable_p。
   结局。

 ** AP
   将gt_accountpayable循环到INTO gw_accountpayable。
     " WHERE索引= l_loop_index。
     gw_accountpayable_p = gw_accountpayable。
     附加gw_accountpayable_p至gt_accountpayable_p。
   结局。

 **货币-过帐金额
   将gt_currencyamount循环到INTO gw_currencyamount。
     " WHERE索引= l_loop_index。
     gw_currencyamount_p = gw_currencyamount。
     APPEND gw_currencyamount_p到gt_currencyamount_p。
   结局。

 **标准-利润细分
   环环gt_criteria并进入gw_criteria。" WHERE索引= l_loop_index。
     gw_criteria_p = gw_criteria。
     附加gw_criteria_p至gt_criteria_p。
   结局。

 **账户税
   环转到gt_accounttax,然后输入到gw_accounttax。",WHERE索引= l_loop_index。
     gw_accounttax_p = gw_accounttax。
     附加gw_accounttax_p至gt_accounttax_p。
   结局。

 ***过帐文件
 *清除l_obj_key。
 *如果l_loop_index> 1。
 * CONCATENATE'Refer'(t11)g_bukrs g_belnr1 INTO
 * gw_documentheader_p-header_txt由空格分隔。
 *    万一。

   刷新gt_bapiret2_p。
   通话功能'BAPI_ACC_DOCUMENT_CHECK'
     出口
       documentheader = gw_documentheader_p
     桌子
       accountgl = gt_accountgl_p
       应收帐款= gt_accountreceivable_p
       应付款= gt_accountpayable_p
       accounttax = gt_accounttax_p
       currencyamount = gt_currencyamount_p
       return = gt_bapiret2_p。

   如果gt_bapiret2_p不是INITIAL。
     通话功能'BAPI_ACC_DOCUMENT_POST'
       出口
         documentheader = gw_documentheader_p
       输入
         obj_key = l_obj_key
       桌子
         accountgl = gt_accountgl_p
         应收帐款= gt_accountreceivable_p
         应付款= gt_accountpayable_p
         accounttax = gt_accounttax_p
         currencyamount = gt_currencyamount_p
         return = gt_bapiret2_p。

     如果l_obj_key ='$'。
 *循环至gt_bapiret2_p INTO gw_bapiret2_p
 * WHERE类型='A'或类型='E'或类型='X'。
       l_status = icon_led_red。
 *        出口。
 * ENDLOOP。

     其他。
       等待最多10秒。

       通话功能'BAPI_TRANSACTION_COMMIT'
         出口
           等待= gc_x。

 *提交工作并等待。

 *取消冻结发票凭证
 *仅在没有错误的情况下取消阻止
       UNASSIGN 。
       在gt_bsik分配处循环播放。
          -zlspr =空间。
       结局。
       从表gt_bsik更新bsik。
       提交工作。

       gw_check_result-belnr = l_obj_key + 0(10)。

       清除l_status_count。
       描述表gt_bapiret2_p行l_result_count。

       l_status = icon_led_green。

     万一。



   ENDIF。
太Q了
2楼-- · 2020-08-21 09:39

您的问题是什么。

所有行都在一个文档中创建?

如果是的话,请使用代码附加完整的代码 选项

My梦
3楼-- · 2020-08-21 09:42

对于检索到的BSIK的每一行,我创建了四行要发布的文档。

第一对:

为供应商发布密钥21和31。

第二对:

为总帐帐户发布密钥25和50。

因此您可以想象BSIK输入的每个循环,

我的第一个过帐:我有1个文档抬头行,在应付账款表中有2个条目,在货币表中有2个条目。

第二次过帐:我有1个文档标题行,我的帐户总帐表中2个条目和货币表中2个条目。

这个概念对吗?

jovirus
4楼-- · 2020-08-21 09:59

RETURN参数有什么错误?

从屏幕快照看来,文档已创建。 如果是这种情况,请检查在BAPI调用之后是否已调用Commit语句。

我是小鹏鹏啊
5楼-- · 2020-08-21 09:40

在CALL FUNCTION'BAPI_ACC_DOCUMENT_POST'之后使用以下内容

CALL FUNCTION'BAPI_TRANSACTION_COMMIT'
导出

wait = gc_x。

尽管BAPI状态成功,但是不会创建任何会计凭证。 我在今天输入日期的FB03或表BKPF中搜索了今天的输入,但没有找到。

一周热门 更多>