PR

【SAP/ABAP】テーブルとは?種類・操作方法を5分で整理

ABAP

SAP・ABAPの大きな特徴の1つが「テーブル」という概念です。

参考 変数・構造・テーブルの違いとは?

標準テーブル、アドオンテーブル、内部テーブルなど、ABAP初心者にとっては少々とっつきにくい様々なテーブルが存在します。

このページでは、SAP/ABAP初心者向けに様々なテーブルの種類を整理して解説。また、テーブルの作成方法やINSERT・DELETEなどの操作方法までわかりやすく1つのページに整理しました。

このページで学べる内容
  • テーブルとは?
    • テーブルの種類
  • テーブルの操作方法(CRUD)

SAPエンジニアやABAPerを目指す方であれば知らないと恥ずかしい基本知識ですので、是非最後までご覧ください。

参考 ABAPの基本構文ルール

スポンサーリンク

SAPの「テーブル」とは?

「テーブルとは何か?」を簡単に説明するとデータベースにおいてデータを管理する基本的な単位と言えます。

参考 データベースとは?

テーブルは、行(レコード)と列(フィールド)から成り、各フィールドには特定のデータ型と長さが設定されています。テーブルを用いて、関連するデータを構造化し、管理することができます。

テーブルとは?
図1:テーブルとは?

Excelのようなものだと理解できればOKです。SAPでは、企業の日々の業務データがテーブルに格納され、これらのデータはトランザクション処理やレポート作成、決定支援システムなどで利用されるなど、SAPというシステムで重要な役割を果たしています。

SAPにおける様々な「テーブル」

以下に、SAPにおける「テーブル」の種類をできるだけMECEな形で整理してみました。

テーブルの種類説明
標準テーブルSAPが提供するデータベースに実際に存在するテーブル
 トランスペアレントテーブル1つの論理テーブルが1つの物理的なデータベーステーブルに対応する
 プールテーブル複数の論理テーブルが1つの物理的なデータベーステーブルに格納される
 クラスタテーブル複数の論理テーブルが一緒に格納され、リンクされる
アドオンテーブルユーザーやパートナー企業が特定のビジネス要件を満たすためにデータベースに作成するテーブル
内部テーブルABAPプログラム内で一時的にデータを保持する
 標準内部テーブルデータが挿入された順に保持される
 ソート済み内部テーブルキーに基づいて自動的にソートされる
 ハッシュ済み内部テーブルユニークなキーを使用してデータを直接アクセスする

SAPでは、大きく分けて標準テーブルアドオンテーブル内部テーブルという3種類のテーブルが存在しています。

それぞれが明確な目的と役割を持ち、シーンによって適切に使い分けられる必要があります。ここでは、それぞれのテーブルの意味や目的、そのシステム的な特徴を1つ1つ整理していきましょう。

標準テーブル

標準テーブルとは、SAPにデフォルトで組み込まれているテーブルのことを指します。

これらのテーブルは、特定のビジネスプロセスや業務フローをサポートするために、SAPによって設計されており、各種業務データやマスタデータを格納します。

主な標準テーブルは以下の通り。よく耳にすることがあるはずのテーブル名かと思います。

テーブル名説明
BKPF会計伝票ヘッダ。全ての財務トランザクションに関するヘッダ情報(会計伝票番号、伝票日付、伝票タイプなど)が格納されています。
BSEG会計伝票明細。会計伝票の各明細行に関するデータ(借方または貸方の勘定科目、金額、通貨など)が格納されています。
MARA物料マスタ。物料マスタの全てのデータ(物料番号、物料タイプ、産業部門など)が格納されています。
VBAK販売伝票ヘッダ。販売伝票のヘッダ情報(販売伝票番号、販売伝票タイプ、販売組織など)が格納されています。
VBAP販売伝票明細。販売伝票の各明細行のデータ(物料番号、数量、単位、価格など)が格納されています。
KNA1顧客マスタ。顧客マスタの全てのデータ(顧客番号、名前、住所など)が格納されています。
LFA1ベンダーマスタ。ベンダーマスタの全てのデータ(ベンダー番号、名前、住所など)が格納されています。

標準テーブルはシステム的な特徴から主に次の3つの種類に分けられます。基本的な考え方は同じですが、それぞれの特徴を理解しておくと効率的なコーディングが可能になります。

  1. トランスペアレントテーブル: 最も基本的なテーブルタイプ。1つの論理テーブルが1つの物理的なデータベーステーブルに対応します。物理データベースにおける各行と列が、トランスペアレントテーブルの行と列と一対一で対応します。
  2. プールテーブル: 複数の論理テーブルが1つの物理的なデータベーステーブル(テーブルプール)に格納される。データベースを効率的に利用することが可能になる。
  3. クラスタテーブル: 複数の論理テーブルが1つの物理的なデータベーステーブル(テーブルクラスタ)に一緒に格納され、リンクされる。関連性の高いデータを一緒に保管するために使用されます。

SAPでは、画面の見た目のまま実際のデータベースに登録されるわけではありません。トランスペアレントテーブルは、行と列の形でDBに格納されていますが、プールテーブル・クラスタテーブルについては、そのままの形では格納されてはいないのです。

プールテーブル・クラスタテーブルについては以下の記事で詳しく解説しておりますので、合わせて↓ご覧ください。

アドオンテーブル(カスタムテーブル)

アドオンテーブルとは、SAPにデフォルトで存在しないが、特定のビジネス要件を満たすために後から追加されるデータベーステーブルのことを指します。

つまり、SAPエンジニアやABAPerによってその企業のために独自に作成されるテーブルのことです。

アドオンテーブルは、企業独自のデータフィールドや構造を持つことができます。通常、「Z」始まりの名称で定義され、日本でSAPを利用している企業であればほとんどの企業でこのアドオンテーブルが活用されています。

熟練のSAPエンジニアでも、アドオンテーブルはその企業のSAP開発に関わっていない限り仕様を知らないため、新しくその企業のSAP開発に関わる際には、まず初めにアドオンテーブルの一覧やその仕様を確認するというが一般的。

内部テーブル

内部テーブルとは、プログラム実行時にのみメモリ上に存在するテーブルのことです。

プログラムが実行されている間だけ存在し、プログラムが終了すると自動的にメモリから削除されます。

内部テーブルは、大量のデータを効率的に処理するための重要なプログラミングツールであり、以下のような多くの用途があります。

  • データベーステーブルからデータを読み込み、それを加工、フィルタリング、またはソートする。
  • レポートを生成するための集計データを計算・保存する。
  • ユーザーインターフェース(画面)で一覧表示を行うためのデータを保持する。
  • 独自の複雑なデータ構造を作成する。

内部テーブルはさらに細かな種類に応じて以下4つのタイプがあります。

  1. 標準テーブル(Standard Tables)
  2. ソートテーブル(Sorted Tables)
  3. ハッシュテーブル(Hashed Tables)
  4. レンジテーブル(Range Table)

テーブルの種類まとめ

テーブルの種類説明
標準テーブルSAPが提供するデータベースに実際に存在するテーブル
 トランスペアレントテーブル1つの論理テーブルが1つの物理的なデータベーステーブルに対応する
 プールテーブル複数の論理テーブルが1つの物理的なデータベーステーブルに格納される
 クラスタテーブル複数の論理テーブルが一緒に格納され、リンクされる
アドオンテーブルユーザーやパートナー企業が特定のビジネス要件を満たすためにデータベースに作成するテーブル
内部テーブルABAPプログラム内で一時的にデータを保持する
 標準内部テーブルデータが挿入された順に保持される
 ソート済み内部テーブルキーに基づいて自動的にソートされる
 ハッシュ済み内部テーブルユニークなキーを使用してデータを直接アクセスする

テーブル操作(CRUD)

ここからは、各種テーブルに対するCRUD操作(登録・取得・更新・削除)の方法を詳しく見ていきましょう。

ABAPでは、①標準テーブル/アドオンテーブルに対する操作と、②内部テーブルに対する操作が微妙に異なります。

例えば、標準/アドオンテーブルからデータを取得する際はSELECT文ですが、内部テーブルからデータを取得する際にはREAD TABLE文です。

以下にそれぞれのパターンに応じたCRUD操作の一覧を整理しましたので、まずは以下を頭に入れましょう。詳しい構文ルールや処理の内容はリンク先のページでご確認いただけます。

操作標準テーブル & アドオンテーブル内部テーブル
Create(作成)INSERT命令APPEND命令またはINSERT命令
Read(読み込み)SELECT命令READ TABLE命令
Update(更新)UPDATE命令UPDATE命令またはMODIFY命令
Delete(削除)DELETE命令DELETE命令

↑の表は基本的なCRUD操作のみをカバーしており、より高度な操作には追加で理解すべき内容がいくつか存在します。

上記、基本的な操作方法を理解できた方は、応用的な内容として↓の記事をご確認ください。

SAP:テーブルのまとめ

  1. テーブルとは何か?
    • テーブルはデータベースに格納されるデータの基本的な形式で、行(レコード)と列(フィールド)から構成される。
  2. テーブルの種類
    • 物理的なテーブル
      • 標準テーブル:SAPが提供するデフォルトのテーブルで、標準的なビジネスプロセスに必要なデータを保持。
      • アドオンテーブル:特定のアドオンソフトウェアまたはカスタマイズされたアプリケーションで使用するために作成されるテーブル。
    • 論理的なテーブル
      • 内部テーブル:ABAPプログラムが実行されている間だけ存在し、プログラムが終了すると自動的にメモリから削除される一時的なテーブル。

初めてABAPを勉強するのは結構難しいですよね。

でもその悩みを抱えているのは一人じゃありません。全てのABAP使いが同じ道を進んできました。

ABAPをはじめとするプログラミングスキルを武器に、時間と場所に捉われない自由な生き方を目指してみませんか?

あなたの技術、もっと価値ある場所で活かしませんか?
SAPエンジニアのキャリア支援はこちらから↓

No.1 > 外資系・IT業界などハイクラスの転職なら【アクシスコンサルティング】blank
4人に1人のコンサルタントが選ぶパートナー!
ビッグ4やアクセンチュアへの転職を実現し年収1000万へ。

No.2 > IT・Web転職特化エージェント【レバテックキャリアblank
blank
サービス利用者数20万人突破。

平均年収アップ率77%であなたの転職成功を保証します。

No.3 > blankリクルートエージェント
blank
\転職支援実績NO.1/

応募が殺到しすぎるが故に・・・非公開にせざるを得ない魅力的な求人が多数!

読者料典 【完全無料】ABAP:学習カリキュラム ←こちらから!

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
ABAPSAP
シェアする
ビズドットオンラインをフォローする
blank
ビズドットオンライン
タイトルとURLをコピーしました