【SAP】アドオンテーブル作成―全6ステップ解説

ABAP

検索しても意外と出てこないSAP:アドオンテーブルの作成手順を分かりやすく1ページにまとめました。

アドオンテーブルの作成方法を知れば、ABAPのデータ構造や裏で動いている処理内容がよくわかるようになります。本ページでは、1から10まで、つまりトランザクションコードを打つところから、テーブルの作成完了までの全ての操作を説明していきます。

このページで学べる内容
  • アドオンテーブルとは?
  • アドオンテーブルの作り方ートランザクションコード:SE11
    • 覚えておきたい必須知識出荷クラス
    • データクラス
    • サイズカテゴリ
    • アドオンテーブルの有効化

ABAPer / SAPコンサルであれば、知っておいて損はないSAP基本知識ばかりです。是非最後までご覧ください。

スポンサーリンク
スポンサーリンク

アドオンテーブルとは

アドオンテーブルとは、その名の通り "アドオン" (Add-On)で作るテーブルです。

SAPの標準テーブルを利用するだけでは実現することができない機能を実装する場合に作成されます。

アドオン

SAPの標準機能では実現できない機能を開発すること

アドオンテーブルを作成する前に、本当にそのテーブルが必要かどうか?もしくは、SAPの標準テーブルで同じような用途で利用されているものはないか?を確認しましょう。

アドオンテーブルを作りすぎると、メンテナンスが大変になりますし、その分バグの可能性も高まります。

アドオンテーブルの作成手順

早速、アドオンテーブルの作成手順を1から解説していきます。

どのようにその項目を設定するのか?をできるだけ分かりやすく解説します。

トランザクションコード:SE11

blank

SAPメニュー > ツール > ABAPワークベンチ > 開発 > ABAPディクショナリ(SE11)

トランザクションコード:SE11を実行すると「ABAPディクショナリ」という画面が表示されます。

SE11:ABAPディクショナリ

テーブル名称の入力

下記、画像の通り「DBテーブル」項目を選択し、登録したい「テーブル名称」を入力します。

ちなみに、アドオンテーブル以外でビューやデータ型を登録したい場合も本画面から登録します。

blank

テーブル名称は「英数字のみ」で構成します。テーブル名称を入力後、登録ボタンを押下します。

ちなみに、通常であれば各企業によって命名規則が存在します。通常アドオンテーブルであれば、「Z」始まりか「Y」始まりで作成することが多いです。

アドオンテーブルの頭文字

Z
Zは「アドオン」の意で用いられることが多いです。対して標準テーブルの頭文字は基本Z以外のアルファベットで構成されています。

Y
Yは「テスト用」「検証用」の意味で用いられることが多いです。そのため、開発時に試しに作ってみたい場合のアドオンテーブルはY始まりにすることが多いです。

念のため、同名のアドオンテーブルが既に登録されていないかという確認を含めて事前に「照会」ボタンを押して存在確認するのがおすすめです。

出荷クラスの設定

出荷クラスとは、移送やクライアントコピーなどの際に、テーブルデータの移送を制限する設定です。

出荷クラスとは

出荷クラスは「テーブル更新内容の責任者」「アップグレード時やクライアントコピー時のテーブル処理」を制御します。

通常「A(アプリケーションテーブル)」もしくは「C(カスタマイズテーブル)」を選択することが多いです。

blank

項目名・データエレメントの入力

項目名データエレメントを入力します。

blank

①項目名

項目名は、その名の通りテーブルの項目の名称です。アドオン項目の場合は、テーブル名称と同様「Z」か「Y」を頭文字に設定します。基本的には、クライアントを表す「MANDT」を1番上に設定します。

「Key」にチェックを入れると当該項目がそのテーブルのキー項目となり、「初期値」にチェックを入れるとその項目の初期値が「NOT NULL」になります。

キー項目

キー項目とは、レコードを一意に識別するための項目です。言い方を変えると、キー項目は1つはテーブルの中で重複していはいけない項目です。

②データエレメント

データエレメントとはテーブル項目の意味属性を決定する項目です。

通常、データエレメントは事前に定義してあるものを利用します。

データエレメントの作り方

データエレメントを指定しEnterボタンを押せば、データエレメントに紐づくドメインの「データ型」「長さ」「内容説明」などが自動で反映されます。

データエレメント項目に「MANDT」を入力しEnter押下すると、事前定義された「データ型」「長さ」「内容説明」などが自動で反映されます。
ドメイン

ドメインは、データエレメントのデータ型と項目長を決定する定義情報です。

データエレメントが意味属性と呼ばれるのに対して、ドメインは技術属性と呼ばれます。ドメインもABAPディクショナリから登録されます。

より詳しい説明を以下の記事で行っておりますので、是非ご覧ください。

ただし、このデータエレメントは必ずしも登録しておく必要はありません。

テーブル中のボタン「組込型」ボタンを押下することで、データエレメントから自動導出される "データ型" "項目長" を直接入力することができます。

この方法は、作成中のテーブルでのみ利用する項目に割り当てる場合で推奨の方法。

技術設定

先ほどの画面でテーブルの有効化ボタンを押下すると、エラーが出てテーブルの有効化が完了しません。これは、必須で設定する必要がある「技術設定」が抜けているためです。

blank

この「技術設定」画面では以下の項目を設定していきます。

  • データクラス
  • サイズカテゴリ
  • バッファタイプ

データクラス

通常は「APPL1:トランザクションデータ、透過テーブル」を選択します。

データクラスは簡単に言うと、どんな種類のデータを保存するテーブルか?を表すものです。マスタ(更新頻度:)を登録するものなのか、トランザクションデータ(更新頻度:)を登録するものなのか、などを指定します。

少しだけ詳しく説明すると、データクラスによってデータベースサーバーのどの場所(Oracleでいう表領域のこと)に保存されるかが異なります。データベースは場所によって、更新速度・読み込み速度が異なるため、データクラスの指定をすることでデータベースを効率的に利用することが目的です。

サイズカテゴリ

テーブルのデータ量(Excelでいうと行数)がどれぐらいになるか予想して「0~9」のいずれかを指定します。この設定を行うことで、作成中のアドオンテーブルが無駄なデータ容量を確保してしまうことを防ぎます。

ただ、必ずしもこのデータ量内でしかテーブルデータが作成されない、というわけではありません。多少容量を超えても問題はありません。データ容量を越えるデータが保存される場合、後からシステムで自動拡張されます。

ただし、アドオンテーブルで数十万件のデータを登録するというのはあまり無いような気がします。例外を除けば基本的には「0~2」を設定するべきかと思います。

バッファタイプ

バッファタイプは、テーブルバッファリングの設定項目です。

テーブルバッファリングを簡単に説明すると、データベースレコードをアプリケーションサーバに同期することです。テーブルバッファリングについては、ちょっと詳しい解説が必要になるため、以下のページをご覧ください。

有効化

アドオンテーブルの基本的な設定が完了したら、忘れずに「有効化」を行う必要があります。

有効化を行うまでは、データベース上に保存されていません。

ステータスが「新規」「新規(変更済)」「無効(変更済)」の状態である場合はデータベースには保存されているのではなく、ABAPディクショナリの一時領域に新規データ(変更データ)が格納されている状態です。

一時領域というと難しいかもしれませんが、いわゆる「ローカルに保存されているだけ」の状態と読み替えて頂いても問題ありません。したがって、プログラムで実際にそのテーブルを利用するには、必ず有効化が必要になります。

ABAPを1から勉強したい方は

ABAPを1から学習したい方は、以下の記事で学習するのがお勧めです。

現在、完全無料で公開しておりますので、是非ご覧ください!

タイトルとURLをコピーしました