コンテンツフレーム起動

フィールドシンボル 文書を SAP ライブラリストラクチャに組み込む

フィールドシンボルは、他の項目のプレースホルダ、つまりシンボルです。フィールドシンボルは、項目として物理的な領域を占有することなく、その内容を指し示します。フィールドシンボルは、任意のデータオブジェクトを指すことができます。フィールドシンボルが指すデータオブジェクトは、フィールドシンボルがプログラムで宣言された後に、フィールドシンボルに割り当てられます。 

プログラムでフィールドシンボルをアドレスするということは、フィールドシンボルに割り当てられた項目をアドレスすることでもあります。割当後は、フィールドシンボルを参照する場合も項目自体を参照する場合も ABAP 上の違いはありません。プログラム内のフィールドシンボルをアドレスする前に、項目をフィールドシンボルに割り当てます。 

フィールドシンボルには、C 言語で使用される参照解除されたポインタ ( 内容演算子 * が適用されるポインタ) と共通点があります。しかしながら、メモリアドレス ( 参照) を含み、内容演算子なしで使用できる ABAP のポインタに、本当の意味で等しいのは、ABAP オブジェクトの参照変数だけです( 追加情報については、データ参照を参照してください)

フィールドシンボルを使用してプログラムされた操作はすべて、フィールドシンボルに割り当てられた項目に適用されます。たとえば、2 つのフィールドシンボルに対する MOVE 命令は、1 つ目のフィールドシンボルに割り当てられた項目の内容を、2 つ目のフィールドシンボルに割り当てられた項目に移動します。フィールドシンボル自体が指す項目は、MOVE 命令の実行後も実行前と同じです。

データ型を指定する場合もしない場合も、フィールドシンボルは登録可能です。データ型が指定されなかった場合、フィールドシンボルは、割り当てられた項目の技術属性すべてを継承します。データ型を指定した場合は、ASSIGN 命令でフィールドシンボルと割り当て項目の互換性がチェックされます。 

フィールドシンボルは、データオブジェクトをアドレスする際に高い柔軟性を発揮します。

        項目の一部を処理するときは、オフセットと長さを動的に指定することができます。

        フィールドシンボルを別のフィールドシンボルに割り当てることができるので、項目の一部をアドレスすることもできます。

        フィールドシンボルの割当は、項目の境界の外まで拡張することができます。したがって、メモリ内の一般的なシーケンスを効率的にアドレスすることができます。

        フィールドシンボルに、割り当てられている項目の技術属性とは別の技術属性を指定することも可能です。

フィールドシンボルの柔軟性は、特定の問題に画期的なソリューションをもたらします。その反面、エラーが発生しやすくなるのも事実です。項目は、実行時までフィールドシンボルに割り当てられないので、フィールドシンボルの操作に関する構文チェックとセキュリティチェックの効果は限られたものになります。この状況が、実行時エラーや間違ったデータ割当につながる場合もあります。

実行時エラーは問題としてはっきり現れますが、間違ったデータ割当は非常に発見しにくいので、危険です。ですから、他の ABAP 命令で同じ結果が達成できない場合のみ、フィールドシンボルを使用するようにしてください。

たとえば、項目内容によってオフセットと長さが異なる文字列の一部を処理しようとしているとします。この場合、フィールドシンボルを使用することもできます。しかし、MOVE 命令でも変動するオフセットと長さを指定できるので、フィールドシンボルではなく MOVE 命令を使用してください。MOVE 命令 は、項目の境界を超えてメモリをアドレスすることはないので、MOVE 命令 ( 必要に応じて補助変数を設定可能) を使用したほうが、フィールドシンボルを使用するよりずっと安全です。 ただし、フィールドシンボルによってパフォーマンスが向上する場合もあります。

フィールドシンボルの定義

データオブジェクトのフィールドシンボルへの割当

 

 

 

コンテンツフレーム終了