【SAP】アドオンテーブル作成―全6ステップ解説ABAPTwitterFacebookはてブPocketLINEコピー2020.02.07検索しても意外と出てこないSAP:アドオンテーブルの作成手順を分かりやすく1ページにまとめました。アドオンテーブルの作成方法を知れば、ABAPのデータ構造や裏で動いている処理内容がよくわかるようになります。本ページでは、1から10まで、つまりトランザクションコードを打つところから、テーブルの作成完了までの全ての操作を説明していきます。SAPコンサルであれば、知っておいて損はない重要知識です。最後までご覧ください。忘れずにABAPを1から勉強したい方はアドオンテーブルとはアドオンテーブルとは、その名の通り「アドオン」で作るテーブルです。SAPの標準テーブルを利用するだけでは実現することができない機能を実装する場合に作成されます。アドオンテーブルを作成する前に、本当にそのテーブルが必要かどうか?もしくは、SAPの標準テーブルで同じような用途で利用されているものはないか?を確認しましょう。アドオンテーブルを作りすぎると、メンテナンスが大変になりますし、その分バグの可能性も高まります。アドオンテーブルの作成手順を1から解説していきます。どのようにその項目を設定するのか?をできるだけ分かりやすく解説します。ABAPディクショナリ(SE11)トランザクションコード:SE11を実行すると「ABAPディクショナリ」という画面が表示されます。SE11:ABAPディクショナリこの画面は、テーブルデータだけではなく、データ型・構造定義など、SAPで利用されるデータ定義の全てを管理する画面です。詳細はこちらのページでご覧ください。【SAP】SE11―ABAPディクショナリを5分で解説SAPの透過テーブル、構造、データエレメントなどを一元管理するABAPディクショナリ機能について解説します。使い方はもちろん、システム的な仕組みも説明します。下記、画像の通り「DBテーブル」項目を選択し、登録したい「テーブル名称」を入力します。ちなみに、アドオンテーブル以外でビューやデータ型を登録したい場合も本画面から登録します。テーブル名称は「英数字のみ」で構成します。テーブル名称を入力後、登録ボタンを押下します。ちなみに、通常であれば各企業によって命名規則が存在します。通常アドオンテーブルであれば、「Z」始まりか「Y」始まりで作成することが多いです。アドオンテーブルの頭文字ZZは「アドオン」の意で用いられることが多いです。対して標準テーブルの頭文字は基本Z以外のアルファベットで構成されています。YYは「テスト用」「検証用」の意味で用いられることが多いです。そのため、開発時に試しに作ってみたい場合のアドオンテーブルはY始まりにすることが多いです。念のため、同名のアドオンテーブルが既に登録されていないかという確認を含めて事前に「照会」ボタンを押して存在確認するのがおすすめです。出荷クラスとは、移送やクライアントコピーなどの際に、テーブルデータの移送を制限する設定です。出荷クラスとは出荷クラスは「テーブル更新内容の責任者」「アップグレード時やクライアントコピー時のテーブル処理」を制御します。通常「A(アプリケーションテーブル)」「C(カスタマイズテーブル)」を選択することが多いです。項目名とデータエレメントを入力します。項目名は、その名の通りテーブルの項目の名称です。アドオン項目の場合は、テーブル名称と同様「Z」か「Y」を頭文字に設定します。基本的には、クライアントを表す「MANDT」を1番上に設定します。クライアントとは?SAPでは、1つのシステム上に複数の環境を定義することができます。この複数の環境をSAPでは「クライアント」と呼びます。)とは何か?クライアントとは何か?クライアント依存・非依存の違い―。移送とは何か?移送の仕組みを網羅的に解説します。SAPシステムの全体像をつかむにはこのページでOKです。NULL」になります。データエレメントデータエレメントは、基本的に事前にABAPディクショナリに登録してあるものを指定します。上記画像、データエレメント項目に「MANDT」を入力しEnter押下すると、事前定義された「データ型」「長さ」「内容説明」などが自動で反映されます。データエレメントを登録する必要はありません。テーブル中のボタン「組込型」ボタンを押下することで、「データ型」「長さ」などを直接入力することができます。この方法は、作成中のテーブルでのみ利用する項目に割り当てる場合でのみ推奨です。同じ項目(例えば「登録日付」など)を複数のテーブルで用いる場合を考えてみましょう。登録日付に対して、データエレメントA、データ型は「D」(※SAP標準で「日付」型を)、長さは8文字である、と定義します。「登録日付」という項目を他テーブルで使うことが見込まれる場合、予めデータエレメントを作成しておけば、他テーブルでその項目を利用する場合、登録する際の効率が上がります。再度、「データ型」「長さ」「内容説明」などを登録する必要が無くなるからです。システム導入の後半などに当該項目の「内容説明」を変えたいなどの要件が発生した際に、項目すべてに同じデータエレメントが割当たっていれば、データエレメントのみを変更することで対応が可能です。メンテナビリティの向上につながります。「組込型」で作成した場合は、テーブル1つ1つ修正する必要が出てきてしまいます。先ほどの画面でテーブルの有効化ボタンを押下すると、エラーが出てテーブルの有効化が完了しません。これは、必須で設定する必要がある「技術設定」が抜けているためです。この「技術設定」画面では以下の項目を設定していきます。データクラスサイズカテゴリバッファタイプデータクラス通常は「APPL1:トランザクションデータ、透過テーブル」を選択します。データクラスは簡単に言うと、どんな種類のデータを保存するテーブルか?を表すものです。マスタ(更新頻度:低)を登録するものなのか、トランザクションデータ(更新頻度:高)を登録するものなのか、などを指定します。詳しく説明すると、データクラスによってデータベースサーバーのどの場所(Oracleで言う「表領域」のこと)に保存されるかが異なります。データベースは場所によって、更新速度・読み込み速度が異なるため、データクラスの指定をすることでデータベースを効率的に利用することを目的としています。サイズカテゴリテーブルのデータ量(Excelでいうと行数)がどれぐらいになるか予想して「0~9」のいずれかを指定します。この設定を行うことで、作成中のアドオンテーブルが無駄なデータ容量を確保してしまうことを防ぎます。このデータ量内でしかテーブルデータが作成されない、というわけではありません。多少容量を超えても問題はありません。データ容量を越えるデータが保存される場合、後からシステムで自動拡張されます。アドオンテーブルで数十万件のデータを登録するというのはあまり無いような気がします。例外を除けば基本的には「0~2」を設定するべきかと思います。バッファタイプバッファタイプは、テーブルバッファリングの設定項目です。テーブルバッファリングを簡単に説明すると、データベースレコードをアプリケーションサーバに同期することです。テーブルバッファリングについては、ちょっと詳しい解説が必要になるため、以下のページをご覧ください。テーブルバッファリング―3タイプ別解説アドオンテーブル作成の応用編。バッファ種別とメリット・デメリットを丸っと解説します。it-biz.online2019.08.23有効化を忘れずにアドオンテーブルの基本的な設定が完了したら、忘れずに「有効化」を行う必要があります。有効化を行うまでは、データベース上に保存されていません。ステータスが「新規」「新規(変更済)」「無効(変更済)」の状態である場合はデータベースには保存されているのではなく、ABAPディクショナリの一時領域に新規データ(変更データ)が格納されている状態です。一時領域というと難しいかもしれませんが、いわゆる「ローカルに保存されているだけ」の状態と読み替えて頂いても問題ありません。したがって、プログラムで実際にそのテーブルを利用するには、必ず有効化が必要になります。ABAPを1から勉強したい方はABAPを1から学習したい方は、以下の記事で学習するのがお勧めです。【ABAP入門】SAPを構成するプログラミング言語―ABAP(あばっぷ)の勉強方法を初心者向けに1つのページにまとめました。基本的な構文ルールから、内部テーブルの利用、システム項目まで!このページを理解すれば、簡単な機能の実装が可能になります。テーブルシェアするTwitterFacebookはてブPocketLINEコピービズドットオンラインをフォローするビズドットオンラインビズドットオンライン関連記事ABAP【ABAP】3分で学ぶSORT命令―内部テーブルのソート【初心者向け】SORT命令を用いた内部テーブルの並び替え方法について解説しています。DESCENDING」オプションや、項目指定の「BY」オプションなどを丸っと解説しています。2020.01.08ABAP【ABAP】MESSAGE命令―メッセージの出力方法MESSAGE命令についてサンプルコード付きで解説します。メッセージタイプによる処理の差異や、コーディング時の注意点をまとめています。2020.01.08SAPSAP理解の第1歩―トランザクションコードとは?【SAP】トランザクションコードとは何か?SAP初心者でも分かりやすいように画像付きで解説しています。(ちょっとした裏技も・・・・?)2020.01.31ABAP【ABAP】LOOP―ループ処理のツボLOOP~ENDLOOPで行うループ処理について、初心者向けに解説しています。構文ルールや、WHEREオプション/FROM~TOオプションの使い方・パフォーマンスの違いについてサンプルコードで説明しています。LOOP処理を使う際の注意点も紹介していますので、是非ご覧ください。WORK」命令について説明します。2020.01.06ABAP【ABAP】3分で理解できる!IF/CASE―条件分岐の使い分け【ABAP入門】ABAPで条件分岐を行うIF文/CASE文の基本を解説します。IF文は何となくわかるけど、CASE文って何?という疑問のお持ちの方にサンプルコード付きでIF文/CASE文の使い分けを分かりやすく解説します。ビズドットオンライン.HOMESAPWEBデザインIT-SkillsLifeHackVBAタイトルとURLをコピーしました。