和大家分享一个小TIP
生活随笔
收集整理的這篇文章主要介紹了
和大家分享一个小TIP
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在用BAPI創建物料憑證后,如果還要更新透明表中APPEND STRUCTURE里字段的值,最好是在UPDATA 或者MODIFY 前面加上 ? WAIT UP TO 2 SECONDS. 這樣一句話.
等數據庫更新之后就能更改字段的值了,不然記錄是不存在的.
例子:
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
? EXPORTING
? ? GOODSMVT_HEADER ? ? ? ? ? = GOODSMVT_HEADER
? ? GOODSMVT_CODE ? ? ? ? ? = GOODSMVT_CODE
? TESTRUN ? ? ? ? ? ? ? = TESTRUN
? GOODSMVT_REF_EWM ? ? ? ? = GOODSMVT_REF_EWM
IMPORTING
? GOODSMVT_HEADRET ? ? ? ? = GOODSMVT_HEADRET
? MATERIALDOCUMENT ? ? ? ? = MATERIALDOCUMENT
? MATDOCUMENTYEAR ? ? ? ? ? = MATDOCUMENTYEAR
? TABLES
? ? GOODSMVT_ITEM ? ? ? ? ? = GOODSMVT_ITEM
? GOODSMVT_SERIALNUMBER ? ? ? = GOODSMVT_SERIALNUMBER
? ? RETURN ? ? ? ? ? ? ? ? = RETURN
* ? GOODSMVT_SERV_PART_DATA ? ? =
* ? EXTENSIONIN ? ? ? ? ? ? =
? ? ? ? .
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
WAIT UP TO 2 SECONDS. "讓系統等待2秒,以便數據庫能夠更新
SELECT SINGLE * FROM MKPF INTO CORRESPONDING FIELDS OF W_MKPF
? WHERE MBLNR = MATERIALDOCUMENT
? AND MJAHR = MATDOCUMENTYEAR.
IF SY-SUBRC IS INITIAL.
? SORT IT_ALL BY ZTKAID DESCENDING.
? READ TABLE IT_ALL INDEX 1. "任意讀取一條truck ID
? W_MKPF-ZTKAID = IT_ALL-ZTKAID.
? IF MOVE_TYPE = '315'.
? ? W_MKPF-FLAG = 'Y'.
? ENDIF.
? UPDATE MKPF SET ZTKAID = W_MKPF-ZTKAID
? FLAG = W_MKPF-FLAG
? WHERE MBLNR = MATERIALDOCUMENT
? AND MJAHR = MATDOCUMENTYEAR.
? IF SY-SUBRC = 0 .
? ? MESSAGE S015.
? ? PERFORM CREAT_SU_BY_CALL_FUNCTION.
? ENDIF.
ELSE.
? MESSAGE W014.
ENDIF.
等數據庫更新之后就能更改字段的值了,不然記錄是不存在的.
例子:
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
? EXPORTING
? ? GOODSMVT_HEADER ? ? ? ? ? = GOODSMVT_HEADER
? ? GOODSMVT_CODE ? ? ? ? ? = GOODSMVT_CODE
? TESTRUN ? ? ? ? ? ? ? = TESTRUN
? GOODSMVT_REF_EWM ? ? ? ? = GOODSMVT_REF_EWM
IMPORTING
? GOODSMVT_HEADRET ? ? ? ? = GOODSMVT_HEADRET
? MATERIALDOCUMENT ? ? ? ? = MATERIALDOCUMENT
? MATDOCUMENTYEAR ? ? ? ? ? = MATDOCUMENTYEAR
? TABLES
? ? GOODSMVT_ITEM ? ? ? ? ? = GOODSMVT_ITEM
? GOODSMVT_SERIALNUMBER ? ? ? = GOODSMVT_SERIALNUMBER
? ? RETURN ? ? ? ? ? ? ? ? = RETURN
* ? GOODSMVT_SERV_PART_DATA ? ? =
* ? EXTENSIONIN ? ? ? ? ? ? =
? ? ? ? .
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
WAIT UP TO 2 SECONDS. "讓系統等待2秒,以便數據庫能夠更新
SELECT SINGLE * FROM MKPF INTO CORRESPONDING FIELDS OF W_MKPF
? WHERE MBLNR = MATERIALDOCUMENT
? AND MJAHR = MATDOCUMENTYEAR.
IF SY-SUBRC IS INITIAL.
? SORT IT_ALL BY ZTKAID DESCENDING.
? READ TABLE IT_ALL INDEX 1. "任意讀取一條truck ID
? W_MKPF-ZTKAID = IT_ALL-ZTKAID.
? IF MOVE_TYPE = '315'.
? ? W_MKPF-FLAG = 'Y'.
? ENDIF.
? UPDATE MKPF SET ZTKAID = W_MKPF-ZTKAID
? FLAG = W_MKPF-FLAG
? WHERE MBLNR = MATERIALDOCUMENT
? AND MJAHR = MATDOCUMENTYEAR.
? IF SY-SUBRC = 0 .
? ? MESSAGE S015.
? ? PERFORM CREAT_SU_BY_CALL_FUNCTION.
? ENDIF.
ELSE.
? MESSAGE W014.
ENDIF.
總結
以上是生活随笔為你收集整理的和大家分享一个小TIP的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何把文件模版上传到SAP数据库层.
- 下一篇: 在TABLE CONTROL 输入完一行