如何更新 ABAP 散列 table

How to update a ABAP Hashed table

如何更新 ABAP Hased table?

Java 语句的等价物是什么:

hashMap.put("myKey", "myValue");

在 ABAP 中?

工作示例:

TYPES: BEGIN OF LINE,
    COL1,
    COL2,
  END OF LINE.

DATA:   WA TYPE LINE,
      ITAB TYPE HASHED TABLE OF LINE WITH UNIQUE KEY COL1.

WA-COL1 = 'X'. INSERT WA INTO TABLE ITAB.
WA-COL1 = 'Y'. INSERT WA INTO TABLE ITAB.
WA-COL1 = 'Y'. INSERT WA INTO TABLE ITAB. "Not added

假设您只对 put() 对 hashMap 内容的影响感兴趣,而不关心它的值 returns,等价的是:

INSERT VALUE #( KEY = 'myKey' VALUE = 'myValue' ) INTO TABLE hashMap.

不同之处在于,对于现有密钥,条目不会更新,但 SY-SUBRC 将设置为 4,因此您必须做一些额外的工作。内部 table hashMap 需要定义为 HASHED TABLE WITH UNIQUE KEY KEY 和至少具有字段 KEY 和 VALUE 的类型。

另见:SAP Help