日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

abap对采购订单强制置为”交货已完成“状态(BAPI_PO_CHANGE、BAPI_PO_RELEASE、BAPI_PO_RESET_RELEASE)

發(fā)布時間:2025/3/20 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 abap对采购订单强制置为”交货已完成“状态(BAPI_PO_CHANGE、BAPI_PO_RELEASE、BAPI_PO_RESET_RELEASE) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

項目中,需要對一些采購訂單做強制“交貨已完成”,如果采購訂單已批準,是不能用BAPI_PO_CHANGE更改狀態(tài)的,只有先除去“批準”狀態(tài) ,再“交貨已完成”,然后再置為批準狀態(tài),下面是函數(shù)代碼,希望對用到的兄弟有幫助。

DATA:PO_NUMBER?LIKE?EKKO-EBELN.

DATA :T_POITEM? LIKE ?BAPIMEPOITEM? OCCURS ? 0 ? WITH ? HEADER ? LINE .
DATA :T_POITEMX? LIKE ?BAPIMEPOITEMX? OCCURS ? 0 ? WITH ? HEADER ? LINE .
DATA :T_RETURN? LIKE ?BAPIRET2? OCCURS ? 0 ? WITH ? HEADER ? LINE .
DATA :?LV_FRGKE? LIKE ?EKKO-FRGKE,
??????LV_FRGSX? LIKE ?EKKO-FRGSX.

DATA : RETURN ? TYPE ? TABLE ? OF ?BAPIRETURN? WITH ? HEADER ? LINE .

REFRESH ? OUTPUT .
CLEAR ? OUTPUT .

SORT ? INPUT ? BY ?EBELN.
LOOP ? AT ? INPUT .
????? CLEAR ?T_POITEM.
????? REFRESH ?T_POITEM.
????? CLEAR ?T_POITEMX.
????? REFRESH ?T_POITEMX.

????? MOVE -CORRESPONDING? INPUT ? TO ? OUTPUT .

????? CLEAR ?LV_FRGKE.
????? SELECT ? SINGLE
????????????FRGKE
????????????FRGSX
???????????? INTO ?(LV_FRGKE,LV_FRGSX)
???????????? FROM ?EKKO
???????????? WHERE ?EBELN?=? INPUT -EBELN.
*?????如果采購訂單被批準了,則先取消批準,才能修改
?????? IF ?LV_FRGKE?=? 'R' .

????????? CALL ? FUNCTION ? 'BAPI_PO_RESET_RELEASE'
?????????????? EXPORTING
????????????????PURCHASEORDER?=? INPUT -EBELN
????????????????PO_REL_CODE???=?LV_FRGSX
????????????????USE_EXCEPTIONS?=? 'X'
?????????????? TABLES
???????????????? RETURN ?=? RETURN .
????????? CLEAR ? RETURN .
????????? READ ? TABLE ? RETURN ? WITH ? KEY ? TYPE ?=? 'E' .
????????? IF ?SY-SUBRC? EQ ? 0 .
???????????? OUTPUT -FLAG?=? 'E' .
???????????? OUTPUT - MESSAGE ?=? RETURN - MESSAGE .
????????? ENDIF .
?????? ENDIF .

?????? IF ? OUTPUT -FLAG?<>? 'E' .
?????????PO_NUMBER?=? INPUT -EBELN.

?????????T_POITEM-PO_ITEM?=? INPUT -EBELP.
?????????T_POITEM-NO_MORE_GR?=? 'X' .
????????? APPEND ?T_POITEM.
????????? CLEAR ?T_POITEM.

?????????T_POITEMX-PO_ITEM?=? INPUT -EBELP.
?????????T_POITEMX-PO_ITEMX?=? 'X' .
?????????T_POITEMX-NO_MORE_GR?=? 'X' .
????????? APPEND ?T_POITEMX.
????????? CLEAR ?T_POITEMX.


????????? CALL ? FUNCTION ? 'BAPI_PO_CHANGE'
???????????? EXPORTING
??????????????PURCHASEORDER?=?PO_NUMBER
???????????? TABLES
?????????????? RETURN ????????=?T_RETURN
??????????????POITEM????????=?T_POITEM
??????????????POITEMX???????=?T_POITEMX.
??????????? READ ? TABLE ?T_RETURN? WITH ? KEY ? TYPE ?=? 'E' .
??????????? IF ?SY-SUBRC? EQ ? 0 .
????????????? OUTPUT -FLAG?=? 'E' .
????????????? OUTPUT - MESSAGE ?=?T_RETURN- MESSAGE .
????????????? ROLLBACK ? WORK .
??????????? ELSE .
????????????? OUTPUT -FLAG?=? 'S' .
????????????? OUTPUT - MESSAGE ?=? '交貨已完成更改成功!' .
????????????? CALL ? FUNCTION ? 'BAPI_TRANSACTION_COMMIT'
??????????????? EXPORTING
????????????????? WAIT ?=? 'X' .
??????????? ENDIF .
?????? ENDIF .

*?????如果采購訂單被批準了,則先取消批準,修改交貨已完成后,在重新設置上批準狀態(tài)
?????? IF ?LV_FRGKE?=? 'R' ? AND ? OUTPUT -FLAG?<>? 'E' .
????????? CALL ? FUNCTION ? 'BAPI_PO_RELEASE'
?????????????? EXPORTING
????????????????PURCHASEORDER?=? INPUT -EBELN
????????????????PO_REL_CODE???=?LV_FRGSX
????????????????USE_EXCEPTIONS?=? 'X'
?????????????? TABLES
???????????????? RETURN ?=? RETURN .
?????? ENDIF .

?????? APPEND ? OUTPUT .
?????? CLEAR ? OUTPUT .
ENDLOOP .

總結

以上是生活随笔為你收集整理的abap对采购订单强制置为”交货已完成“状态(BAPI_PO_CHANGE、BAPI_PO_RELEASE、BAPI_PO_RESET_RELEASE)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。