WBS要素や原価センタ、統計キー数値などのマスタデータをツリー状にして、階層構造で保持する機能としてグループ機能があります。
それぞれ特別なトランザクションから階層構造を作成していき、照会画面から確認することができるのですが、アドオンプログラムなどから、その情報を利用する場合には標準テーブルからデータを取得する必要があります。
SAPのシステムでは階層構造を持つグループ機能を『セット』と呼んでいます。
- SETHEADER:セットの基本的な情報が保存されている。
- SETNODE:セットとセットの関連が格納されている
- SETLEAF:セットに紐付いているマスタ値が格納されている。
各マスタデータから上位層のセットを取得する方法
例えば、WBS要素に対してWBS要素グループが定義されており、そのWBS要素を最下層として上位のWBS要素グループを取得する場合、以下の順で取得できます。
※原価要素グループや利益センタグループ、その他のグループでも同じ方法で取得できます。
①SETLEAFでWBS要素が含まれるWBS要素を取得
SETの構造として、一番最下層には直接マスタを定義しているグループがくる形になります。
上の画像でいうと、黄緑の部分がWBS要素と、そのすぐ上のWBS要素グループがSETLEAFに格納されています。まずはそれを取得する形です。
②上位階層のWBS要素グループを取得
WBS要素グループ間の親子関係が保存されているテーブルがSETNODEなので、そのテーブルから上位階層を取得します。補助セット名(SUBSETNAME)に①で取得したセット名を指定してデータを抽出すれば、その上位のグループを取得できる形です。
グループは任意の深さで階層を作ることができるため、階層が深い場合はSETNODEを繰り返し読んでいけば最上位層までたどり着けます。
各データ毎のセットクラス
各グループデータが同じテーブルで保存されているため、それを判別するためのデータが必要となります。セットクラスという項目が各セット用テーブルの項目として用意されており、以下のようにデータが切り分けられています。
セットクラス | グループ |
0101 | 原価センタグループ |
0102 | 原価要素グループ |
0104 | 統計キー数値グループ |
0105 | 活動タイプグループ |
0106 | 利益センタグループ |
0109 | 勘定グループ |
0110 | WBS要素グループ |
実際には他にもセットクラスが用意されていますが、よく使うものだけをピックアップして記載しました。
コメント