SAP ECC / S/4HANAからのアドホック抽出
すでにわかっている情報(テーブル名、トランザクションコード、保存済みのSAPクエリ)から出発して、SAP ECCまたはS/4HANAからデータを自分で取り出します。検索でオブジェクトを選び、その項目や選択画面を確認し、実際の行をプレビューし、プランをチェックしてから、結果をテーブルに格納するワークフローステップを保存します。
- SAPシステムにネットワークアクセスできるPlaidLinkエージェント。 PlaidLinkのインストールを参照してください。
- SAP ECC / S/4HANAインスタンス接続。 SAP ECCおよびS/4HANAコネクタを参照してください。その接続のSAPユーザーが、すべての抽出を実行するRFCユーザーです。
- SAPにインストールされたPlaidCloud SAPパッケージ。 SAP Basisチームが、SAPシステムごとに1回インストールします。
- 抽出するオブジェクトに対する RFCユーザーのSAP権限。SAP権限を参照してください。
ステップを選ぶ
Section titled “ステップを選ぶ”3つのステップはすべて、ワークフローのステップメニューの SAP にあります。
| ステップ | 用途 |
|---|---|
| SAP: アドホック抽出 | SAPテーブルを全件または増分で読み取ります。 |
| SAP: トランザクション/レポートの実行 | トランザクションコードまたはABAPレポートプログラムを実行し、その結果を格納します。 |
| SAP: クエリの実行 (SQ01) | 保存済みのSAPクエリを実行し、その結果を格納します。 |
すべてのステップは、同じ3つのフィールド(エージェント、SAP接続、結果用の ターゲットテーブル)から始まります。
SAPオブジェクトを検索する
Section titled “SAPオブジェクトを検索する”エージェントと接続を選択すると、ステップの検索で、一致するSAPオブジェクト(ステップに応じて テーブル、トランザクション、クエリ)が一覧表示されます。名前、トランザクションコード、または説明の語句を入力します。SAPの * ワイルドカードを使用できます。SAPが提供しないオブジェクトも、理由とともにグレーアウトされた状態で表示されます。
テーブルを選ぶと、その項目が説明とともに一覧表示され、キー項目が自動入力されます。トランザクション、レポート、クエリを選ぶと、そのオブジェクトに対してSAP自身が定義した項目から作成された選択画面が フィルター タブに表示されます。テーブルやプログラムの内部の知識は不要です。
テーブルを抽出する
Section titled “テーブルを抽出する”SAP: アドホック抽出 を使用します。
-
SAP抽出 タブで、テーブルを検索して選択します。
-
RFC読み取り関数 を入力します。これは、Basisチームがインストールした、PlaidCloud SAPパッケージのテーブル読み取り関数です。
-
キー列 を確認します。PlaidCloudは、SAPのデータディクショナリから、クライアント項目を除いたテーブルの主キーを入力します。それらがまさに主キーであることを確認するチェックボックスをオンにしてください。SAPは、それ以外の列の組み合わせを拒否します。
-
絞り込みフィルター タブで、フィルターを追加します。既知の列をクリックして行を追加し、含める または 除外 を選択し、演算子(等しい、等しくない、より大きい、以上、より小さい、以下、範囲内、範囲外、パターンを含む、パターンを含まない)を選び、値ヘルプを使ってSAPから有効な値を直接選択します。同じ列に複数の行を追加すると、いずれかの値に一致する行が対象になり、範囲内 または 範囲外 には範囲を追加します。大きなSAPテーブルには、日付範囲や会社コードなど、少なくとも1つのフィルターが必要です。
-
実行のたびに新規および変更された行だけを読み取るには、増分 タブを設定します。増分テーブル抽出を参照してください。
-
可視性と定義 タブで、制御対象の列 を設定します。制御対象の列を参照してください。
通貨キーが同じテーブルにある CURR 金額列は、真の値で格納されます。PlaidCloudは各金額を通貨の小数桁数に応じてシフトするため、日本円の金額は円単位で格納されます。通貨キーのない金額列はSAPが保存しているとおりに格納され、実行時にその列名を示す警告が報告されます。
SAPクライアント(mandt) と スライスサイズ は任意です。クライアントを空白のままにすると、接続のデフォルトのクライアントが使用されます。
トランザクションまたはレポートを実行する
Section titled “トランザクションまたはレポートを実行する”SAP: トランザクション/レポートの実行 を使用します。
-
SAP実行 タブで、トランザクションを検索して選択するか、Report/Program にレポートプログラム名を入力して 選択画面を検索 をクリックします。どちらか一方を選びます。
-
フィルター タブで、選択画面に入力します。フォームは、トランザクションまたはレポート自体のSAP選択画面から作成されます。空白のフィールドは、そのフィールドについてフィルターなしで実行されます。
保存済みのSAPバリアントから始めるには、SAPバリアントから開始 から選択します。PlaidCloudはバリアントの保存済みの値でフィルターフォームを入力し、バリアント自身の値のうち引き継げなかったものをフォームの横に一覧表示します。それらについては、SAPがレポート自身のデフォルトを使用します。別のバリアントを選ぶとフォームの値が置き換えられます。その後でフィールドを編集しても、選択済みとして表示されるバリアントは変わりません。
-
最大行数 を設定します。デフォルトは10,000で、最大50,000です。いずれの場合もSAPはトランザクションまたはレポート全体を実行し、上限はPlaidCloudが読み戻す行数を制限します。
-
実行時間の長いレポートでは、Run as a background job をオンにし、必要に応じて ジョブ名(非同期のみ) を指定します。
-
可視性と定義 タブで、制御対象の列 を設定します。
対話型の入力、ポップアップ、画面が必要なレポートは、無人では実行できません。SAPが拒否し、何も格納されず、ステップはSAPからの理由を報告します。そのようなレポートは、代わりにSAP GUIで実行してください。
SAPクエリを実行する
Section titled “SAPクエリを実行する”SAP: クエリの実行 (SQ01) を使用します。
-
SAP実行 タブで、クエリを検索して選択します。クエリを選ぶと、ワークスペース、ユーザーグループ、クエリ名 が入力されます。ワークスペース を選び、ユーザーグループ と クエリ名 を直接入力することもできます。
-
フィルター タブで、クエリ自身の選択画面に入力します。これは、作成者がSQ01で設定したものと同じパラメーターとselect-optionsです。空白のフィールドは、そのフィールドについてフィルターなしで実行されます。
-
最大行数 を設定します。デフォルトは10,000で、最大50,000です。
-
可視性と定義 タブで、制御対象の列 を設定します。
ワークスペース、ユーザーグループ、クエリ名 を変更すると、別のクエリ用に作成されたフィルターフォームはクリアされます。切り替えた後は、選択画面をもう一度検索してください。
制御対象の列
Section titled “制御対象の列”すべてのSAP抽出ステップには、制御対象の列 が必要です。これは、ステップが格納する列のうちの1つで、たとえば会社コードの BUKRS などです。これがないとステップは保存できず、その列が格納される列に含まれていない場合、実行では行が1件も格納されません。
プレビュー、プラン、権限
Section titled “プレビュー、プラン、権限”各ステップの 事前チェック グループには3つのボタンがあります。どれも、ステップの保存を妨げません。
| ボタン | 表示される内容 |
|---|---|
| プレビュー | サンプル行。テーブルのプレビューでは、先頭の行を直接読み取ります。トランザクション、レポート、クエリの場合、プレビューはSAP内で100行を上限とする別のサンプルとして実行されるため、フォームが先に確認を求めます。何も格納されません。 |
| プラン | 抽出の実行方法(キー列、行数の見積もり、SAPに送信される選択条件)と、抽出を妨げる可能性のあるすべての事項。プランが拒否されると、構成を変更するか、新しいプランが問題なく返されるまで、作成して実行 と 保存して実行 は無効になります。ステップは引き続き保存できます。 |
| SAP権限が必要です | オブジェクトに必要なSAP権限。Basisチームと共有するためのものです。この一覧は参考情報です。 |
RFCユーザーには、SAP内の場合とまったく同じように、SAP標準の権限チェックが適用されます。
| 抽出 | 権限 |
|---|---|
| テーブル | S_TABU_NAM または S_TABU_DIS の表示、アクティビティ 03 |
| トランザクション | S_TCODE |
| レポート | レポートの権限グループに対する S_PROGRAM SUBMIT |
権限が不足していると、SAPの権限なしエラーと、上記の付与を一覧表示した対処方法とともに、実行が失敗します。PlaidCloudは独自の権限チェックを追加せず、SAP権限が必要です の一覧に基づいてステップをブロックすることもありません。
増分テーブル抽出
Section titled “増分テーブル抽出”SAP: アドホック抽出 の 増分 タブで、Run incrementally をオンにして、ウォーターマーク列 を入力します。次のいずれかである必要があります。
- 日付列(SAP型
DATS) - UTCタイムスタンプ列(SAP型
TZNTSTMPSまたはTZNTSTMPL)
SAP型 UTCL のタイムスタンプ列はサポートされておらず、ウォーターマーク列を絞り込みフィルターの列として兼用することもできません。
最初の実行ではテーブル全体を読み取ります。以降の実行では、最後のウォーターマークから ルックバック を差し引いた時点以降の行だけを読み取り、それらをキー列でマージします。ウォーターマークは、実行全体の格納が完了した後にのみ進みます。SAPの終了日が未設定を表す日付 99991231 がウォーターマークになることはありません。実行日より1日を超えて先の日付は、ウォーターマークを実行日に留め、タイムスタンプは実行の開始時刻より先にウォーターマークを進めることはありません。
列の格納方法
Section titled “列の格納方法”SAP: アドホック抽出 は、SAPのデータディクショナリにある実際の型で、すべての列を格納します。
| SAP型 | 格納形式 |
|---|---|
日付(DATS) |
日付。空白、初期値、無効な日付は空(NULL)として格納されます。無効な日付があると、ステップは警告付きで終了します。 |
金額、数量、小数(CURR / QUAN / DEC) |
厳密な小数。金額の通貨キー列が同じテーブルにあり、かつ抽出に含まれている場合、PlaidCloudは金額を通貨の真の小数桁数にシフトします。そうでない場合は、SAPが保存しているとおりに格納されます。小数点以下が10桁を超える、整数部が28桁を超える、または小数桁数が宣言されていない小数は、代わりにテキストとして格納され、ステップはその列名を示す警告付きで終了します。 |
| 整数 | 整数。 |
浮動小数点(FLTP) |
倍精度浮動小数点数。 |
10進浮動小数点(DF16_* / DF34_*) |
厳密なテキスト。 |
短いUTCタイムスタンプ(TZNTSTMPS) |
タイムスタンプ(秒単位)。 |
長いUTCタイムスタンプ(TZNTSTMPL、UTCL) |
2026-01-03T10:15:00.123456Z のようなUTCのISOテキスト。タイムスタンプ列では失われてしまう小数部が保持されます。 |
時刻(TIMS)、コード(NUMC)、テキスト(CHAR) |
SAPが保存しているとおりのテキスト。先頭のゼロは保持されます。 |
列のSAP型が変更されると、抽出はテーブル全体を列の新しい型で置き換え、ステップはその列名を示す警告付きで終了します。増分抽出では、これが同じ実行内で行われます。その読み取りが完了しない場合、以降の実行は、成功するまで同じ警告とともにテーブル全体を読み取り続け、成功した時点で増分実行が再開されます。
SAP: トランザクション/レポートの実行 は、金額列を数値として格納し、それ以外のすべての列をテキストとして格納します。SAP: クエリの実行 (SQ01) は、金額、整数、日付の列をそれらの型で格納し、それ以外のすべての列をテキストとして格納します。必要な場合は、後続のステップで型を変換してください。
SAP: アドホック抽出 の1回の実行は、500万行を読み取るか、240分実行すると、処理中のスライスを完了した後で一時停止します。ステップは失敗ではなく警告付きで終了し、次の実行は行を失うことなく、中断した箇所から続行します。
- SAP ECCおよびS/4HANAコネクタ — 接続フィールド。
- SAPステップ — すべてのSAPワークフローステップ。
- PlaidLink — エージェントのインストールとアップグレード。