FI_ITEMS_MASS_CHANGE 批量更新 凭证文本 (凭证被锁、一些项目没更改到的解决方法)
FI_ITEMS_MASS_CHANGE 批量更新 憑證文本,這個函數本身也是個BDC的程序 ,一行一行的去更改憑證行項目,問題是,LOOP循環批量更新的時候常發生 Item 001得到更改,Item 002 003 卻沒有改, 并給出錯誤說:憑證被鎖。 起原因是原函數是異步更新的,參見原函數中的:
????call?transaction?'FB02'??using????bdcdata
?????????????????????????????mode? ? bdcmode
?????????????????????????????update???'A'
?????????????????????????????messages?into?msgtab.
其中?update???'A'即是 。
在 T-code se80 中 把原函數copy一份出來,修改這里為:
????call?transaction?'FB02'??using????bdcdata
?????????????????????????????mode?????bdcmode
*?????????????????????????????update???'A'
?????????????????????????????update???'S'
?????????????????????????????messages?into?msgtab.
這就是同步更新,但是比較慢點 。
*-------一下為調用程序段-------------------------------------
*僅作參考 有待改進。?
FORM?MASS_CHANGE_FRM?USING?VALUE(PP_BELNR)?VALUE(PP_BUKRS)
???????????????????????????VALUE(PP_SGTXT)?value(PP_bschl).
????data:?l_irc?type?I,l_line?type?I??.
* ? 所改字段之值?
??????wa_bseg-sgtxt???=?PP_sgtxt.
????it_buztab-bukrs??=?PP_bukrs.
????it_buztab-belnr??=?PP_belnr.
????it_buztab-gjahr??=?PP_gjahr.
????it_buztab-buzei??=?PP_buzei.
????it_buztab-bschl??=?pp_bschl.?"posting?key
*????it_buztab-koart??=?'S'.????"leixing
????APPEND?it_buztab.
????it_fldtab-fname?=?'SGTXT'.
????it_fldtab-aenkz??=?'X'.
????APPEND?it_fldtab.
*CALL?FUNCTION寫入銀行科目的內文
????CALL?FUNCTION?'Z_FI_ITEMS_MASS_CHANGE'
??????EXPORTING
????????s_bseg?????=?wa_bseg
??????IMPORTING
????????errtab?????=?it_errtab
??????TABLES
????????it_buztab??=?it_buztab
????????it_fldtab??=?it_fldtab
??????EXCEPTIONS
????????bdc_errors?=?1
????????OTHERS?????=?2.
????l_irc?=?sy-subrc?.
????commit?WORK?and?wait.
????IF?l_irc?EQ?0.
????else.
??????CLEAR?wa_errtab?.
??????it_mess-bukrs???=?PP_bukrs.
??????it_mess-belnr???=?PP_belnr.
??????it_mess-gjahr???=?PP_gjahr.
??????it_mess-buzei???=?PP_buzei.
??????it_mess-irc?=?l_irc?.
??????DESCRIBE?TABLE?it_errtab?LINES?l_line.
??????READ?TABLE?it_errtab?INDEX?l_line?INTO?wa_errtab.
*BDC消息處理.
??????CALL?FUNCTION?'MESSAGE_TEXT_BUILD'
????????EXPORTING
??????????msgid???????????????=?wa_errtab-err-msgid
??????????msgnr???????????????=?wa_errtab-err-msgnr
??????????msgv1???????????????=?wa_errtab-err-msgv1(50)
??????????msgv2???????????????=?wa_errtab-err-msgv2(50)
??????????msgv3???????????????=?wa_errtab-err-msgv3(50)
??????????msgv4???????????????=?wa_errtab-err-msgv4(50)
????????IMPORTING
??????????message_text_output?=?l_text.
??????it_mess-msgtxt??=?l_text.
??????APPEND?it_mess.
????endif.
????CLEAR:it_errtab,it_errtab[],it_buztab,it_buztab[],it_fldtab,it_fldtab[],wa_bseg.
ENDFORM?.
總結
以上是生活随笔為你收集整理的FI_ITEMS_MASS_CHANGE 批量更新 凭证文本 (凭证被锁、一些项目没更改到的解决方法)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP外币评估 fagl_fc_val
- 下一篇: FAGLF101 应收(付)重组配置和操