用BAPI_PO_CHANGE修改(ME23N)PO出貨日期的方法

* Call BAPI function

DATA: lt_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE,
lt_poschedule LIKE bapimeposchedule OCCURS 0 WITH HEADER LINE,
lt_poschedulex LIKE bapimeposchedulx OCCURS 0 WITH HEADER LINE,
l_line TYPE i,
l_flag(1),
l_ebeln LIKE ekko-ebeln,
l_werks LIKE ekpo-werks.

LOOP AT it_itab.
CLEAR: l_line, l_flag.
lt_poschedule-po_item = it_itab-ebelp.
lt_poschedule-sched_line = '0001'.
lt_poschedule-del_datcat_ext = 'D'.
lt_poschedule-delivery_date = it_itab-eindt.
APPEND lt_poschedule.
CLEAR lt_poschedule.
*上面要轉的參數,在下面都要給'X'值.如po_itemx = 'X'.
lt_poschedulex-po_item = it_itab-ebelp.
lt_poschedulex-po_itemx = 'X'.
lt_poschedulex-sched_line = '0001'.
lt_poschedulex-sched_linex = 'X'.
lt_poschedulex-del_datcat_ext = 'X'.
lt_poschedulex-delivery_date = 'X'.
APPEND lt_poschedulex.
CLEAR lt_poschedulex.
DESCRIBE TABLE lt_poschedule LINES l_line.
AT END OF ebeln.
CLEAR l_ebeln.
l_werks = it_itab-werks.
l_ebeln = it_itab-ebeln.
CALL FUNCTION 'BAPI_PO_CHANGE'
EXPORTING
*PO NO.
purchaseorder = it_itab-ebeln
*TEST RUN
testrun = p_test
TABLES
return = lt_return
poschedule = lt_poschedule
poschedulex = lt_poschedulex.
LOOP AT lt_return.
IF lt_return-type = 'E' OR lt_return-type = 'A'
OR ( lt_return-type = 'I' AND lt_return-id = 'VD' ).
g_text = lt_return-message.
PERFORM add_error_log USING g_text 'X'.
l_flag = 'X'.
ENDIF.
ENDLOOP.
IF l_flag = 'X'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
DELETE it_itab WHERE werks = l_werks AND ebeln = l_ebeln.
ENDIF.
IF l_flag = space AND p_test IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.
CLEAR: lt_poschedule, lt_poschedule[], lt_return, lt_return[],
lt_poschedulex, lt_poschedulex[].
ENDAT.
ENDLOOP.

SORT it_error BY ebeln ebelp.
DELETE ADJACENT DUPLICATES FROM it_error.
DELETE it_itab WHERE flag = 'X'.
DESCRIBE TABLE it_itab LINES g_success.

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/90072/viewspace-934484/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/90072/viewspace-934484/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值