您的位置:首页 > 其它

FI_ITEMS_MASS_CHANGE 批量更新 凭证文本 (凭证被锁、一些项目没更改到的解决方法)

2013-06-24 15:18 661 查看
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_GJAHR) VALUE(PP_BUZEI)

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 .
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐