生成AIプロンプト|マスターデータのテーブル抽出

生成AI用プロンプト|マスターデータのテーブルを抽出する

SAPシステム(SAP ERP, SAP S/4HANA)の機能名(トランザクションコード、T-CD)から、その機能がアクセスしているデータテーブルの一覧を、生成AIを使って作成してみよう。

本記事は、ChatGPTGoogle Gemini(旧Bard)などの生成AIに、貼り付けるだけヒヤリングシートを作成できる、プロンプト(命令文)を紹介する。

SAPシステムの中身は非公開

SAPシステムも情報システムの一つだ。

そのデータは、リレーショナルデータベース(RDB)のテーブルに保存されている。

たとえば、「品目マスタ」(T-CD:MM01)のテーブルなら、MARA, MAKT, MARC... など複数のテーブルに保存されていることが知られている。

しかし、どのマスタが、どのテーブルに保存されているか、といった具体的な情報を、SAP社は大々的に公開していない。

SAPシステムの中身は、基本的に非公開なのだ。

個々の機能や、画面プログラム(トランザクションコード、T-CD)が使用しているテーブルを知りたい、と思ったら、SAPコンサルトなど、SAPシステムの専門家に尋ねることになる。
最近なら、ネットを検索して調べることもできる。
いずれにしても、個々の機能や画面プログラムに使われているテーブルを、いちいち検索して調べるのは、かなり面倒だ。

面倒な調べ物なら、スーパー 時短ツール = 生成AI の出番である。

生成AIは、SAPシステムの専門家でもある

だから、データが格納されているテーブルを教えてもらうことだって、できるはずだ。

このプロンプトサンプルでは、SAPシステムのトランザクションコード(T-CD)を指定すると、データが格納されているテーブルの一覧表を出力することができる

プロンプトサンプル

#依頼
あなたは{#役割}です。SAP S/4HANAのプログラム開発を行うため、S/4HANAのマスタデータに使われているテーブルの調査をしています。次の{#ルール}を必ず守り、{マスタ名}からマスタ名を読み取って、そのマスタで使われている透過テーブル(物理テーブル名)を{#形式}の形式で全て出力してください。

#役割
SAPシステムのコンサルタント

#形式
-タブ区切り表形式
列は「マスタ名」「テーブル名(透過テーブル名)」「テーブルの日本語名」

#ルール
-一つのマスタに対し、透過テーブルは複数存在することが多い。発見した透過テーブルは全て列挙すること。
透過テーブルが複数見つかった場合、カンマで区切り、一列に表示すること。
-回答結果の値をダブルクォーテーションで囲まない。
-回答結果の値の両端にダブルクォーテーションが付いていた場合、ダブルクォーテーションを除去する。
-あなたが実際のS/4HANAにアクセスできないことは理解しているので、それを述べる必要はない。
-回答は{#形式}による結果のみを出力すること。回答に関する補足説明や注意書きは不要。
-詳細な情報について、質問者はシステムのデータ辞書や関連ドキュメントを参照するので、それを勧める文章は不要。
-回答は日本語で。

{#マスタ名}
品目マスタ
BOMマスタ
作業区マスタ
作業手順マスタ
ビジネスパートナー(得意先)
ビジネスパートナー(仕入先)
購買情報


プロンプトの使い方と解説

  • 上のプロンプトサンプル全体を生成AIのチャットボックスにコピペし、「#マスタ名」の次の行から、テーブルを抽出したいマスタ名称を列挙(編集)する。
    マスタ名を列挙(編集)したら、あとは生成AIに問い合わせるだけ。結果はタブ区切りの表形式で表示される。
  • 出力される列は「マスタ名」「テーブル名(透過テーブル名)」「テーブルの日本語名」 の3列。
  • 列をタブ区切りとしている理由は、一つのマスタにテーブルが複数存在する場合(大半は複数のテーブルから構成されている)、見つかったテーブルをカンマ区切りで同一列内に表示させるためである。
    タブはExcelなどのスプレッドシートに展開する際の、セル間の区切り文字となる。
  • 「回答結果の値は、ダブルクォーテーションで囲まない」としているのは、タブ区切りやCSVなどテキスト形式で出力した場合、結果の値の両端がダブルクォーテーションで囲まれる場合があるためである。
    「ダブルクォーテーションで囲まない」の記述がない場合、結果の値によってはダブルクォーテーションで囲まれるケースがあったので追加した(囲まれないケースもあったが、どのような基準でそうなるのかは不明)。
  • 見つかったテーブルを行単位に出力したい場合は、
    「-透過テーブルが複数見つかった場合、見つかった全てのテーブルをカンマ区切りで出力する。」
    の部分を
    「-透過テーブルが複数見つかった場合、行単位に出力する。」
    とする。

出力結果の例

ChatGPT 3.5

この記事を書いている時点では、GPT3.5はこのお題目に対しては実用的でなく、SAPシステムに対する専門性という点で疑問符がついた

ChatGPT 3.5が出力したSAP S/4HANAのマスターテーブルの一覧(最初)

上のように、品目マスタのテーブルは「MARA」しか回答してくれなかった。間違ってはいないが、一つだけというのは回答としては少なすぎる。

日本語のテーブル名は知らないようである。MARAの日本語名は「一般商品データ」であるが、入力値のマスタ名をオウム返ししているだけだった(他のテーブルについても同様)。

ビジネスパートナーは「BUT000(BP: 一般データ I)」を主要なテーブルとして回答すべきだが、S/4HANAの前身であるSAP ERPの時代のテーブル「KNA1(得意先マスタ)」と「LFA1(仕入先マスタ)」だけを回答している。これは入力値に、カッコ書きで「得意先マスタ」と「仕入先マスタ」を追加したためかもしれないが、依頼を忠実に読み取る能力が欠けているようである。

また、検索するタイミングなのか、テーブル名を答えられず誤魔化すことがあった。
(素直に「わかりません」と言えばいいのに・・・)

ChatGPT 3.5が出力したSAP S/4HANAのマスターテーブルの一覧

このように、できることでもできないと回答するのは、不完全な情報の提供を避けるためのセーフガードなのかもしれない。
(人間でもそういうことをやる)

しかし、GPT 3.5に回答できることは既に知っているので、以下のように背中を押してやれば、答えるようになる。
(これまた、人間でもそう)

ChatGPT 3.5が出力したSAP S/4HANAのマスターテーブルの一覧

いずれにしても、テーブルの情報はSAPシステムの「中身」まで知っていないと答えられない質問である。ChatGPT 3.5 の専門性は、「中身」までは知っていないことを示唆している。

では、専門性に関して、ChatGPT 4 はどうだろうか?

ChatGPT 4

ChatGPT 4では、複数のテーブル名を網羅的に回答してくれた。品目マスタに関しては、8個のテーブルを挙げてくれている。

ChatGPT 4が出力したS/4HANAのマスターデータテーブルのリスト

細かいことを言えば、品目マスタを構成するテーブルは「MAPR(需要予測)」など他にもあるが、一般的に利用頻度は高くないので、8個という回答は実用的で十分合格点だと思う。

GPT 4は GPT 3.5 と比べて、豊富なトレーニングデータと正確な回答を提供する能力を持っており、この事例はそれがよくわかる。GPT 4 は専門家に匹敵する知識を備えているとされているが、嘘ではないようだ。

回答の全てのテーブルをチェックしているわけではないが、回答は全体的に正しい情報なので、ゼロベースで調査するよりも生産性はかなり高まると思う。

回答結果をリファレンスしつつ、追加調査を実施して補完するようにすれば、ChatGPT 4 は非常に有益な、調査時短ツールとなるだろう。

Google Bard

Bardはちょっと酷かった。回答の数・正しさ、いずれも不正確である。はっきり言ってデタラメ

Google Bardが出力したS/4HANAのマスターデータテーブルのリスト

品目マスタのテーブルとして挙げられた「MSEG(入出庫伝票明細)」は、品目マスタとは直接関係が無いテーブルである。
「MATNR」はテーブルではなく「品目コード」というフィールド(列名)を答えている。「MAKT」は「品目テキスト」テーブルで、これが唯一正しい回答だった。

他のテーブルについても誤回答が多く、この回答を信じてアドオンプログラムなどの開発を行えば、開発の現場は混乱してしまうだろう。

SAPシステムのテーブル抽出に関して言えば、Bardよりも ChatGPT 4 の方が正確だったので、ChatGPT 4 の専門性はBardを凌駕していると言える(この記事を書いている時点の感想)。
BardはGoogleが持つ莫大な量の記事を利用していると考えられていたので、ChatGPTの方が正確という結果は意外だった。

まとめ

SAPシステムの機能の新旧比較調査について、各生成AIのできる・できないを下表に纏めておく。
マスタデータをメンテナンスする画面名称(T-CD)から、SAPシステムの透過テーブルを、どれだけ正確に、網羅的に回答できるかという視点で3段階評価(この記事の投稿時点)した。

ChatGPT 3.5ChatGPT 4Google Bard
テーブルの正しさ★★★★★★☆☆☆
テーブルの網羅性★★☆★★★☆☆☆

ChatGPT 4 から得られる情報は、質・量ともに申し分ないChatGPT 3.5 でも十分実用的なレベルと言っていいだろう。
Google Bardは誤回答が多く、SAPシステムのテーブル調査など「SAPシステムの中身」に踏み込んだ調査に利用するのは危険と言わざるをえない。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です