0
如果選中「LOCK」複選框,我的程序只會鎖定用戶。 這一切都工作並更新USR02表中的用戶記錄。發生此更改時,我想更新我的內部表「IT_USR02」以模擬對USR02所做的更改。如何在對其他表格進行更改後更新內部表格?
SELECT-OPTIONS: USER_ID FOR USR02-BNAME.
START-OF-SELECTION.
SELECT BNAME
USTYP
UFLAG
FROM USR02
INTO TABLE IT_USR02
WHERE BNAME IN USER_ID.
** WHERE UFLAG EQ P_UFLAG.
IF IT_USR02[] IS NOT INITIAL.
LOOP AT IT_USR02 INTO ST_USR02.
IF LOCK = 'X'.
CALL FUNCTION 'BAPI_USER_LOCK'
EXPORTING
USERNAME = ST_USR02-BNAME
TABLES
RETURN = I_BAPI_RETURN.
MOVE-CORRESPONDING IT_USR02[] TO IT_ZATO_LOCK_UNLOCK[].
MODIFY ZATO_LOCK_UNLOCK FROM TABLE IT_ZATO_LOCK_UNLOCK.
ENDIF.
ENDLOOP.
後,本質上是「BAPI_USER_LOCK」函數被調用我想在IT_USR02表要作出改變。從那裏我將IT_USR02的內容複製到我的自定義表ZATO_LOCK_UNLOCK。這裏的一切似乎工作正常,我只是不知道如何更新我的內部表。任何幫助,將不勝感激。
代碼不完整 - LOCK從哪裏來,以及您想要寫回到表中的是哪種更改?你沒有改變循環中的任何東西。 – vwegert
'LOCK'指的是一個複選框,我想存儲的是我的自定義表(ZATO_LOCK_UNLOCK)中的BNAME,USTYP和UFLAG值。程序運行後,它不會更新IT_USR02中的值,而IT_USR02不會更新定製表。它改變了我們如何將改變從USR02複製到我的IT_USR02的難題。 – oceanlab1
您不會更改BNAME或USTYP,因此無需更新它,對吧?而且你並沒有爲自己確定UFLAG的新價值,所以你需要從數據庫或BAPI_USER_GETDETAIL中讀取。 – vwegert