内部テーブルと作業領域の違い

内部テーブルと作業領域の違い

内部テーブルと作業領域の違いは何ですか?

内部テーブルは、データベーステーブルに似た一時的な二次元メモリ構造です。 Internaltableに複数のレコードを格納することができ、レコードポインタを使用して、読み取り、追加、削除、変更などの活動を行うことができます。

一方、作業領域は、内部テーブルまたはデータベーステーブルのTYPEofで宣言された変数です。 それは一度に一つのrecordatだけを格納することができます。 作業領域の個々の列を名前で参照します。

“WITH HEADER LINE”句を使用して内部テーブルを宣言すると、内部テーブル自体が作業領域として機能します。 たとえば、ITABは作業領域であり、ITABは内部テーブルです。ORACLE PLSQLに精通している場合、作業領域は%ROW_TYPEに似ており、internalは表のタイプに似ています。

headerlineの有無にかかわらず内部テーブルを使用する方法の詳細については、

headerline:

内部テーブルオブジェクトを作成するときに、同じ名前のヘッダー行を宣言することもできます。 内部テーブルを処理するときに、ヘッダー行asa作業領域を使用できます。 内部テーブルで使用するABAPステートメントには、内部テーブルにヘッダ行がある場合に使用できる短い形式があります。 これらのステートメントは、ヘッダー行を暗黙的な作業領域として自動的に仮定します。 次の表に、ヘッダー行のない内部表に使用する必要があるステートメントと、ヘッダー行のある内部表に使用できる同等のステートメントを示します:

ヘッダー行のない操作
ヘッダー行の操作

すべてのテーブルタイプの操作

<wa>をテーブル<itab>に挿入します。
テーブルITABを挿入します。

<wa>を<itab>に集めます。
<itab>を収集します。

テーブル<itab>を読みます。.. <wa>に入る。
テーブル<itab>を読みます。..

テーブル<itab>を<wa>から変更します。..
テーブル<itab>を変更します。..

<itab>を<wa>から変更します。..どこだ..
<itab>を修正します。.. どこだ..

テーブル<itab>を<wa>から削除します。
テーブル<itab>を削除します。

ITABでループして<wa>に入ります。..
..

インデックステーブル

の操作は、<wa>を<itab>に追加します。
<itab>を追加します。

<wa>を<itab>に挿入します。..
<itab>を挿入します。..

<itab>を<wa>から変更します。..
<itab>を修正します。..

ヘッダー行を作業領域として使用すると、短い文を使用できます; ただし、割り当ての起源とターゲットをすぐに認識することができないため、必ずしも理解しやすいとは限りません。さらに、テーブルとそのヘッダー行にsamenameがあるという事実は、内部テーブル全体との操作で混乱を引き起こす可能性があります。 混乱を避けるためには、異なる名前の作業領域を持つ内部テーブルを使用する必要があります。

次の例は、同じ関数を持つ二つのプログラムを示しています。 一方はヘッダ行を使用し、他方は使用しません。ヘッダー行の

タイプ:行の先頭、
COL1タイプI、
COL2タイプI、
行の終わり。

データITAB型一意キー
COL1
ヘッダー行を持つ行のハッシュテーブル。

は4回行います。
ITAB-COL1=SY-INDEX.
ITAB-COL2=SY-INDEX**2.
テーブルITABを挿入します。

ITAB-COL1=2.
ITABからテーブルITABを読み取ります。

ITAB-COL2=100.
テーブルITABを変更します。

ITAB-COL1=4.
テーブルITABを削除します。

ITABでループします。
書き込み:/ITAB-COL1,ITAB-COL2.

ヘッダー行なし:

タイプ:行の先頭、
COL1タイプI、
COL2タイプI、
行の終わり。

データ: ITABタイプ一意のキー COL1を持つ行のハッシュテーブル、WAはITABの行のように。

は4回行います。
WA-COL1=SY-INDEX.
WA-COL2=SY-INDEX**2.
WAをテーブルITABに挿入します。

WA-COL1=2.
テーブルITABをWAからWAに読み込みます。

WA-COL2=100.
WAからテーブルITABを変更します。

WA-COL1=4.
WAからテーブルITABを削除します。

イタブでループしてWAに入ります。
書き込み:/WA-COL1,WA-COL2.

どちらの場合も、リストは次のように表示されます:

1 1

2 100

3 9

headerlineを使用しないプログラム内のステートメントは、理解しやすいです。 さらに、内部テーブルのキーを指定するだけの作業領域を持つことができますが、テーブルの他の値は割り当てられません。

また読む
リストボックスプログラムの例

ABAPブックリスト
ABAP/4認定、プログラミング、Smartforms、Sapscriptsおよびオブジェクト指向プログラミングブック

Smart Forms
SAP Smartforms

ABAPメニュー:
ABAP Example Hintsand Tips

Return to Index:-
SAP ABAP/4 Programming,Basis Administration, Configuration Hints and Tips

コメントを残す

メールアドレスが公開されることはありません。