【SE16完全攻略】SE16Hでテーブル結合!

SE16完全攻略-SE16Hでテーブル結合

SAPシステムの運用現場で、「テーブルの中身を見たい」と思うことは必ずあるはずだ。

そんなときに頼れるのが、SAPのテーブル閲覧用トランザクションコード「SE16」シリーズである。

本記事は、

  • SE16、SE16N、SE16H について、それぞれの特徴、利用する場面、注意すべき点の整理
  • HANAデータベースに最適化された、SE16Hの基本操作
  • SE16H による、テーブル結合の具体的な手順

という、SE16 シリーズを徹底解説する内容となっている。

本記事を最後まで読めば、SAP初心者から中級者まで、「テーブルの中身を調べる」ための武器を使いこなせるようになるはずだ。

目次

SE16とは?

テーブルの中身を調べるためのツール

T-CODE: SE16データブラウザ」は、SAP ERPにおいてデータベースのテーブルの中身を直接照会できるツールである。SAP開発者やコンサルタントならば、テーブルの内容をチェックするために、よく活用するT-CODEだ。

SE16 シリーズは以下のような場面で活用される。

  • トランザクションによって登録・変更されたデータの確認
  • バッチ処理後のデータ確認
  • 不正データの調査
  • データ移行時の検証
  • カスタム(アドオン)開発のデバッグ支援

SE16シリーズの種類とその違い

「SE16」の名前を冠するトランザクションはいくつも存在する。それぞれの登場背景、目的、特徴を表で整理しておこう。

SE16SE16NSE16H
対応システムSAP R/3、ECC、S/4HANAECC、S/4HANAS/4HANA
主な用途小規模なテーブルデータの表示データ更新可能テーブル結合による高度分析
特徴シンプルなUI、基本的なデータブラウザ改良されたUI、フィールド表示のカスタマイズが可能テーブル結合、グループ集計、高速表示
検索速度遅い(大量データでは非推奨)中程度高速(HANAのインメモリ最適化)
テーブル結合(JOIN)不可不可可能
レポート出力CSV等(制限あり)Excel対応Excel対応
注意点機能限定、大量データ処理時に低速誤操作リスク学習曲線高い、SAP HANA専用

SE16:データブラウザの原点

SE16は、SAP R/3 時代に導入されたデータブラウザであり、テーブルの内容を直接閲覧するための基本的なツールとして位置付けられている。​当時、ユーザーがデータベーステーブルの内容を迅速に確認できる手段が求められており、そのニーズに応える形で登場した。​

特徴
  • 任意のテーブル名を入力し、その内容を直接表示。​
  • データ照会に特化したシンプルなユーザーインターフェース。初心者でも容易に利用可能。​
活用シーン
  • 小規模なデータの確認。​
  • バッチ処理後のデータ検証。​
  • 開発中のプログラムで使用するテーブルデータの確認。​
弱点
  • 大量データの抽出時にパフォーマンスが低下することがある。​
  • 最新の機能や設定の柔軟性に欠けるので、現在ではあまり使われない。​

SE16N:ユーザビリティ向上と機能拡張

SE16の改良版として、SAP ERP Central Component(ECC)時代に導入されたのがSE16Nである。​ユーザーインターフェースの改善と機能拡張が求められ、これに応える形で登場した。​

特徴
  • UIが改良されており、フィールド名の表示切替(技術名/説明)などが可能。​
  • データのフィルタリングやソート機能が強化され、より柔軟なデータ抽出が可能。​
  • データの直接編集機能(権限により制御)を備える。​
活用シーン
  • 中規模なデータセットに対応可能。
  • テストデータの作成や編集。​
弱点
  • 不適切なデータ編集によるデータ整合性のリスクが存在。​
  • SE16と同様、大量データ処理時のパフォーマンス課題が残る。​​

SE16H:HANA時代の高速データアクセス

SAP HANAの登場により、インメモリデータベースの特性を活かした高速データアクセスが可能となった。​この新しい技術基盤に対応するため、SAP S/4HANAで導入されたのが SE16H である。​

特徴
  • HANAのインメモリ技術を活用し、大量データの高速検索が可能。​
  • SAP GUI上でのテーブル結合(JOIN)機能を搭載し、複数テーブルのデータを一度に抽出可能。​
  • 集計、フィルタリング、並べ替えなどのデータ分析機能の強化。​
活用シーン
  • 複数テーブルにまたがるデータの抽出と分析。​
  • リアルタイムでの大量データの迅速な抽出。​​​
弱点
  • HANA専用。
  • テーブル結合やグループ集計など、機能が豊富な分、学習のハードルが高い。
  • テーブル結合の操作に不慣れだと、意図しない抽出結果となる恐れがある。
  • テーブルの構造やリレーションを理解していないと、パフォーマンス低下や誤ったデータを取得してしまう(SQL文の知識が求められる)。​​

SE11:テーブル構造を調べるT-CODE

SE11:「ABAPディクショナリ(ABAP Dictionary)」は、SAPシステム内のデータ構造(テーブル、ビュー、データ要素など)を作成、表示、管理することができるトランザクションだ。

SE16がテーブルやビューの中身を見るトランザクションであるのに対し、SE11はテーブルの各項目の属性を細かく照会することが可能である。

後述するSE16Hにおいてテーブルを結合する際には、テーブルのキーとなる項目を把握しておく必要がある。このキー項目を確認するのに、SE11を利用することができる。

SE16Hの使い方 – 基本編

テーブルの内容を調べる基本的な手順

以下は、SE16H を利用してSAP標準テーブルの内容を紹介する手順である。

  1. T-CD: SE16H を起動する。
SE16H「一般テーブル照会」の画面例
  1. Dataベース」に、テーブル名またはビュー名を入力(例:EKPO)。
  2. 選択基準」に、検索条件を入力。
  3. メニューバーから「オンライン」を選択、または[F8]キーを押して検索実行。
  4. 結果が一覧表示される。

検索の件数、表示されるレコード数が多い場合は、「最大該当数」を適宜増やしてから検索する。

「選択基準」の使い方

選択基準」には検索条件となる値を入力する以外に、項目の並べ替えや、集計の方法などを指定できる。

開始値/終了値

検索条件となる値の、開始値と終了値を入力する。そのまま入力すると「From~To」となる。
「AND」や「OR」条件を指定する場合は、右隣にある[追加]ボタンを押下して条件を追加する。

出力

チェックした項目が、検索結果の一覧表に出力される。

合計

数値項目の場合に指定可能。指定した項目の合計値を算出して表示する。集計に使ったエントリ数(レコード数)も表示される。

グループ

同じ値を持つ項目をグループとして集計する場合に指定する。SQL文の「GROUP BY」に相当。

順序

複数の項目をグループまたはソート指定した際の、項目の優先順序を、1,2,3, … と数字で指定する。

ソート/ソートタイプ

指定した項目で並べ替える。昇順/降順を指定できる。

集計

指定すると、項目の平均値(AVG)、最大値(MAX)、最小値(MIN)のいずれかを取得できる。
たとえば、テーブルEKPOで「正味価格(METPR)」に「MAX」を指定して実行すると、全レコード中の正味価格の最大値が表示される。

グループ集計

同じ値のデータを纏めてグループとし、グループごとに集計や並べ替えができる。

グループごとの合計を表示する

たとえば、EKKO(購買発注明細)テーブルにおいて、品目コードごとに、発注数量や発注額を合計して表示するには、次のように設定する。

  • 品目」の「グループ」をON(チェック)
  • 発注数量」「正味発注額」の「合計」をON(チェック)
品目ごとの発注数量の合計を求めるための「選択基準」の設定

左記の設定を行い、データ抽出を実行すると次のように表示される。

品目ごとの発注数量の合計値

グループごとの最大、最小、平均を表示する

以下はEKKO(購買発注明細)テーブルにおいて、品目コードごとの、発注数量の最大値(MAX)を求める設定の例である。

品目ごとの発注数量の最大値

SE16Hの設定変更

技術設定」画面からは、SE16Hの各種設定を行える。

SE16Hのメニューから「追加」→「設定変更」を選択し、「技術設定」画面を開く。

SE16Hの「技術設定」画面

一覧出力設定

データ抽出して出力される一覧画面の設定を行う。

列ヘッダとしての技術名

列ヘッダの名称を、日本語(ローカル)名ではなく技術名で表示する。

キー列スクローラブル

デフォルトではキー列(一覧の左の列)は固定表示されており、横スクロールによって移動しないが、この設定をONにすると固定表示が解除され、横スクロールによって移動するようになる。

変換Exitなしの出力

デフォルトでは、たとえば数値項目はアルファ変換(前ゼロの除去)されて表示される。この設定をONにすると、変換Exitが無効となり、データベースに記録されている値がそのまま表示される。

最新レイアウト自動保存

一覧出力で「レイアウト変更」した際、「名前を付けて保存」をしなくても、自動的にレイアウトが保存される。

最新レイアウト自動使用

「最新レイアウト自動保存」によって保存されたレイアウトが、一覧出力する際に自動的に使用される。この設定をONにしていると、グループ集計の結果が正常に表示されない場合があるため、グループ集計を行う場合はOFFにしておいた方がよい。

列幅最適化の無効化

一覧出力の列幅の自動調整をOFFにする。列幅の調整を自身で行いたい場合、この設定はONにする。

第一画面の設定

「選択条件」など、第一画面の設定を行う。

技術列名先行

デフォルトでは左側に表示されている項目名(列名)は日本(ローカル)語であり、技術名は右側に表示されているが、この設定をONにすると、左側には技術名が表示されるようになる。

技術ビュー

「選択条件」の右側の列に、データの型や長さなど、項目の技術情報を追加で表示する。

列幅縮小

「選択条件」の列の幅を縮小する。列幅が縮小されると、横スクロールの負担を減らすことができる。

SE16Hの使い方 – 応用編:テーブル結合

テーブル結合(JOIN)の手順

以下は、EKKO(購買伝票ヘッダ)とEKPO(購買伝票明細)の2つのテーブルを結合し、両テーブルのデータを並べて一覧表示するための手順である。

  1. Dataベース」にメインテーブルとなるテーブル「EKKO」を入力し、画面右上にある「外部結合定義」の右にある「関係更新」ボタンを押下する。
メインテーブル指定と外部結合定義呼び出し
  1. 外部結合定義名」(ID)と「名称」(説明)に値を入力し、「登録」ボタンを押下する。
外部結合定義名の入力
  1. 二次テーブルの定義」の欄が入力可能になるので、「二次テーブル」にテーブル名「EKPO」を入力し、「内部結合」にチェックを入れる。
二次テーブルの定義

内部結合」にチェックを入れなかった場合、メインテーブルと二次テーブルは外部結合となる。内部結合はSQLでいう「INNER JOIN」であり、外部結合は「LEFT OUTER JOIN」である。

内部結合
(INNER JOIN)

両テーブル(EKKOとEKPO)にデータが存在するレコードのみ取得される。

外部結合
(LEFT OUTER JOIN)

メインテーブル(EKKO) に存在するレコードすべてが取得される。二次テーブル(EKPO) に対応するレコードがない場合、二次テーブル側のフィールドは NULLとなる。

  1. 出力項目定義」ボタンを押下し、二次テーブルの出力項目を選択するための「項目一覧更新」画面を開く。
出力項目定義ボタン
  1. 二次テーブルの項目一覧から、出力したい項目の「照会」チェックボックスにチェックを入れる。
出力項目の定義

チェックし終えたら、画面右下の「エントリ適用」ボタンを押下して「二次テーブルの定義」に戻る。

  1. 表示中の「二次テーブル」の行を選択し、「詳細更新」ボタンを押下、または選択行をダブルクリックする。
二次テーブルの定義より「

選択された二次テーブル」に「EKPO」が表示された状態となる。

選択された二次テーブル
選択された二次テーブル
  1. 画面下の「登録」ボタンを押下し、「二次テーブルのアクセス定義」の先頭行を入力可能な状態にする。
  1. 二次テーブルのアクセス定義」に、テーブル結合のための条件(キー項目の指定)を次のように設定する。
二次テーブルのアクセス定義
テーブル項目

二次テーブルの項目一覧から「EBELN」(購買伝票番号)を選択する。

Method

REFERENCE 参照」を選択する。

参照項目/定数

メインテーブル(EKKO)の項目「EBELN」を手入力する。
(テーブル項目名は一覧表示されないため手入力する)

開始Table

結合するメインテーブル名= EKKO を手入力する。
(この例のように、結合相手のテーブルが一つのみの場合は省略可)

  1. すべての設定を終えたら、画面右下の「エントリ適用」ボタンを押下し、登録内容を保存する。
    SE16Hの画面に戻ると、「外部結合定義」に登録した外部結合定義名が表示されているのが確認できる。
外部結合定義の登録完了

これで2つのテーブルの結合は完了である。

作成した「外部結合定義」は、SE16Hを終了しても保存される。次回SE16Hを起動し、メインテーブルにEKKOを指定すれば、保存済の外部結合定義を呼び出すことができる。

テーブル結合の注意点

テーブル結合を誤ると、期待していた抽出結果が得られず、誤った分析をしかねないため注意のこと。
テーブル結合はSQL文の知識を持って臨んだほうが無難だろう。

  • クライアント(MANDT)は、結合項目として指定する必要はない。
  • 結合する項目が不足している場合、抽出されるレコード数が爆発的に増えることがある。そうならないためには、SE11でテーブルのキー項目を確認し、テーブル結合を行う。
  • 内部結合では結合する項目の値が不一致の場合、抽出されるレコードは少なくなるか、まったく抽出されない。

二次テーブルのフィールドを一覧に表示する手順

結合した二次テーブルの項目は「選択基準」に表示されない。また、抽出したデータは、そのままでは一覧表示に表示されない。二次テーブルの項目を一覧表示させるには、データ抽出後に次の操作を行う。

なお、一覧表示に表示できる項目は、二次テーブルの項目一覧で「照会」にチェックした項目が対象である。

  1. 一覧表示のメニューボタンから「レイアウト変更」を選択する。
  1. 右側の「列セット」から、表示したい項目を選択(複数選択する場合はCtrlキーを押しながら選択する)し、「選択項目表示」ボタン(F7キー)を押下する。
レイアウト変更で表示列の選択

選択した項目が、左側の「表示される列」に移動される。

表示される列」では、項目の並び順を変更することもできる。また、選択した項目および並び順を保存したい場合は「名前を付けて保存」ボタンを押下し、設定内容を保存する。

レイアウト変更で「名前を付けて保存」
  1. 適用」ボタンを押下する。一覧に戻ると、選択した第二テーブルの項目が右の方に表示されている。

列はドラッグ&ドロップ操作で並び替えることも可能だ。

まとめ:SE16Hを使いこなしてSAPのデータ分析を極めろ

SAPにおいて、「テーブルの内容を調べる」行為はすべての業務・開発・運用の基盤である。その中核となり得る機能がSE16シリーズであり、特にS/4HANA環境ではSE16Hが最もパワフルなツールである。

SE16Hはさらに、テーブル結合ができるようになっており、複数のテーブルを結合して広範囲なデータ分析が行える。SE16Hを使いこなせば、データ分析・不正データの調査・業務レポート作成など、様々なデータの利活用が可能だ。

本記事が、SE16H を使いこなすための一助となれば幸いである。


よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA

This site uses Akismet to reduce spam. Learn how your comment data is processed.

目次