2013-11-14 36 views
0

我有下面的代碼,做什麼,我想要它做的,但是我想添加額外的代碼,這樣的領域任何空白記錄exit_prnt_layoutexit_web_layout在表hrp5021與文本標準填充。我知道如何從表格中提取數據,但我很難理解如何添加此功能。我對abap很陌生,很感激。填充空字段與SAP ABAP硬編碼的文本表

TABLES: hrp5021. 

DATA: hrp5021_wa TYPE hrp5021. 

PARAMETERS: objid LIKE hrp5021-objid. 

END-OF-SELECTION. 
SELECT SINGLE * FROM hrp5021 INTO hrp5021_wa 
       WHERE plvar = '01' 
       AND otype = 'VA' 
       AND objid = objid 
       AND istat = '4' 
       AND exit_prnt_layout = 'STANDARD'. 
IF sy-subrc = 0. 
     hrp5021_wa-exit_prnt_layout = 'SMARTFORM'. 
    UPDATE hrp5021 FROM hrp5021_wa. 
     WRITE:/ 'VA', objid, 'was changed to Smartform'. 
ELSE. 
     WRITE:/ 'No entry for conversion found'. 
ENDIF. 

回答

3

免責聲明

這是幾乎從未一個好主意,直​​接更新SAP標準表。如果您剛接觸SAP,則可以從該語句中刪除「幾乎」。

因此,雖然我會回答你的問題,我強烈建議你嘗試找到一個SAP認可的方式來更新使用BDC,BAPI或發佈功能模塊必要的字段。

下面的代碼將更新所有條目,其中exit_prnt_layout是空白:

update hrp5021 set exit_prnt_layout = 'STANDARD' 
    where exit_prnt_layout = space. 

write:/ sy-dbcnt ' entries updated'. 

與同爲exit_web_layout:

update hrp5021 set exit_web_layout = 'STANDARD' 
    where exit_web_layout = space. 

write:/ sy-dbcnt ' entries updated'. 
+0

@ ESTI我完全同意你在不應該的條款直接更新SAP表,我也認識到,它不是一個好主意,但那是需要什麼。感謝您的回覆,我對您的工作採用了類似的方法。但是你的代碼會做我想做的事。 ** UPDATE SET hrp5021 = exit_prnt_layout '標準' exit_web_layout = '標準' WHERE exit_prnt_layout = '' OR exit_web_layout = ''。** – user2916178

0

請添加一個「提交作品」,一succesfull更新後,所以在您的實際LUW未決的交易得到物理致力於在DBMS數據庫。

+1

好像矯枉過正,頂多我會犯的每100次更新。 – tomdemuyt

+0

我通過luw說。應該知道他的事務依賴關係。 – icbytes

+2

作爲運算表示:上面的代碼「作品」,假設他的意思是被成功執行從「標準」爲「智能表」的​​現有更新。在程序結尾處有一個隱含的數據庫提交。另見http://help.sap.com/saphelp_nw04s/helpdata/en/41/7af4bca79e11d1950f0000e82de14a/content.htm對LUW的和隱式提交/回滾更多信息。 – Esti