在sap abap中用硬编码文本填充表中的空字段

时间:2013-11-14 18:30:55

标签: sql-update sap abap

我有以下代码可以执行我想要的操作,但是我想添加其他代码,以便表格中的字段 exit_prnt_layout exit_web_layout 的任何空白记录 hrp5021 用文字 STANDARD 填写。我知道如何从表中提取数据,但我很难理解如何添加此功能。我很擅长和帮助表示赞赏。

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. 

2 个答案:

答案 0 :(得分: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'.

答案 1 :(得分:0)

请在成功更新后添加&#34;提交工作&#34;,以便实际LUW中的待处理事务物理提交到dbms上的db。