ABAP 値の代入・移動:Move命令

  データ定義&編集

概要

ABAPにて変数に対して値を代入できる命令がMOVEだ。変数だけではなく、ワークエリア(構造)や内部テーブルにも使用できるが、=(イコール)でも同じ結果が得られる為使用頻度は低いだろう。
筆者はCorresponding オプションを使用したい場合に使用している。

サンプルコード

*値の代入
TYPES: BEGIN OF TY_A,
COL_A1(2) TYPE C,
COL_A2(2) TYPE C,
END OF TY_A.

TYPES: BEGIN OF TY_B,
COL_B1(2) TYPE C,
COL_B2(2) TYPE C,
END OF TY_B.

DATA: WA_A TYPE TY_A,</span>
  WA_B TYPE TY_B.</span>

DATA: WA_A TYPE TY_A,
    WA_B TYPE TY_B.

WA_A-COL_A1 = 'A1'.
WA_A-COL_A2 = 'A2'.

*この例ではWA_A-COL_A1からWA_B-COL_B1へ、WA_A-COL_A2からWA_B-COL_B2へ値が代入される。
MOVE WA_A TO WA_B.

*同一名の項目へ値の代入
TYPES: BEGIN OF TY_A,
 COL_A1(2) TYPE C,
 COL_A2(2) TYPE C,
 COL_A3(2) TYPE C,
 END OF TY_A.

TYPES: BEGIN OF TY_B,
 COL_A2(2) TYPE C,
 COL_A3(2) TYPE C,
 COL_A1(2) TYPE C,
 END OF TY_B.

DATA: WA_A TYPE TY_A,
 WA_B TYPE TY_B.

WA_A-COL_A1 = 'A1'.
WA_A-COL_A2 = 'A2'.
WA_A-COL_A3 = 'A3'.

*この例ではWA_A-COL_A1は必ずWA_B-COL_A1、WA_A-COL_A2は必ずWA_B-COL_A2、WA_A-COL_A3は必ずWA_B-COL_A3へ値が
*代入されるというのが大きな特徴だろう。順序が違っていても同じ名称に代入される為使用頻度は高めだろう。
MOVE-CORRESPONDING WA_A TO WA_B.

Typeの定義方法はこちらを参照
Dataの定義方法はこちらを参照