メイン コンテンツをスキップする 補完的コンテンツへスキップ

SAP ODataデータセットでレコードを挿入またはアップデート

次のジョブでは、既存のSAP ODataデータセットにレコードを挿入し、SAP ODataの検索とフィルター機能を使って同じデータセットにあるレコードをいくつかアップデートします。

コンポーネントをリンク

Procedure

  1. [Palette] (パレット)からtFixedFlowInputコンポーネント、tSAPODataInputコンポーネントを2つ、tLogRowコンポーネントを2つ、tMapコンポーネント、tSAPODataOutputコンポーネントを2つドラッグ&ドロップします。
  2. [Row] (行) > [Main] (メイン)接続を使って、tFixedFlowInput最初のtSAPODataOutputコンポーネントに接続させます。
  3. [Trigger] (トリガー) > [On Subjob Ok] (サブジョブがOKの場合)接続を使って、tFixedFlowInputtSAPODataInputコンポーネントに接続させます。
  4. [Row] (行) > [Main] (メイン)接続を使って、tSAPODataInputtLogRow、2番目のtMapを接続させ、[Row] (行) > [FLOW] (フロー)接続を使ってそのtMapを2番目のtSAPODataOutputに接続させます。
    Studioにおけるジョブの概要。

コンポーネントを設定

Procedure

  1. tFixedFlowInputコンポーネントをダブルクリックし、[Edit schema] (スキーマを編集)フィールドの横にある3点ボタンをクリックして定義します。
    このユースケースでは、Kunnr (String)、Name1 (String)、Name2 (String)、Text (String)、Street (String)、Pstlz (String)、City (String)、Waers (String)、Erdat (Date)、Ertim (Date)、SAP__Messages (String)という11のカラムがスキーマに含まれています。

    変更を次のコンポーネントにプロパゲートします。

  2. コンポーネントの[Mode] (モード)エリアで[Use Inline Table] (インラインテーブルを使用)を選択し、プラスアイコンをクリックして次の3つのレコードを追加します:
    tFixedFlowInputコンポーネントの設定。
  3. tSAPODataOutputコンポーネントをダブルクリックし、SAP ODataサービスにレコードが挿入されるよう設定します。
    SAP ODataサービスのURLアドレス、カタログサービスのパス、それらへのアクセスに使用する認証情報を入力します。
    このユースケースでは、SAP OData検索機能を使い、ZB_CUSTOMERというAPIグループIDでサービスをフィルタリングします。
    このデータセットに新しいレコードを挿入したい場合は、[Entity set] (エンティティセット)を選択し、[Output action] (出力アクション)[Insert] (挿入)を選択します。
    tSAPODataOutputコンポーネントの[Basic settings] (基本設定)ビュー。
  4. tSAPODataInputコンポーネントをダブルクリックし、最初のサブジョブに挿入されたレコードのみを取得するように設定します。
    tSAPODataInputコンポーネントで定義したのと同じ接続パラメーター、APIグループ ID、エンティティセットを入力します。
    このユースケースでは、"+pid+"文字が含まれているTextカラムのレコードをフィルタリングするために[Use $filter] ($filterを使用)オプションを使い、以下のカラムをフィルタリングするために[Use $select] ($selectを使用)オプションを使います:
    Kunnr,Name1,Name2,Street,Pstlz,City,Waers,Erdat,SAP__Messages
    生のデータではなくレコードを取得する場合は、[Return type] (戻り値のタイプ)フィールドで[Record] (レコード)を選択します。
    tSAPODataInputコンポーネントの[Basic settings] (基本設定)ビュー。
  5. 最初のtLogRowコンポーネントをダブルクリックし、実行時にジョブ実行コンソールにテーブルとして結果が入力されるよう、[Table] (テーブル)[Print content with log4j] (log4jでコンテンツを入力)を選択します。
  6. tMapコンポーネントをダブルクリックして、そのエディターを開きます。
    アップデートしたいレコードだけがマッピングされていることを確認します。
    レコードがマッピングされているtMapエディターのビュー。
  7. 2番目のtSAPODataOutputコンポーネントをダブルクリックし、SAP ODataサービスにパッチが適用されるよう設定します。
    tSAPODataInputコンポーネントで定義したのと同じ接続パラメーター、APIグループ ID、エンティティセットを入力します。
    データセットのレコードを置き換えるのではなく、パッチを当てたい場合は、[Output Action] (出力アクション)で必ず[Update] (アップデート)を選択し、[Update] (アップデート)タイプで[Patch] (パッチ)を選択します。
    tSAPODataOutputコンポーネントの[Basic settings] (基本設定)ビュー。
  8. 2番目のtSAPODataInputコンポーネントをダブルクリックし、最初のtSAPODataInputと同じように設定します。
  9. 2番目のtLogRowコンポーネントをダブルクリックし、実行時にジョブ実行コンソールにテーブルとして結果が入力されるよう、[Table] (テーブル)[Print content with log4j] (log4jでコンテンツを入力)を選択します。

ジョブを実行

Procedure

  1. Ctrl + Sを押してジョブを保存します。
  2. F6を押して実行します。

Results

挿入操作の結果は最初のテーブルに表示され、アップデート(パッチ)操作の結果は2番目のテーブルに表示されます。挿入およびアップデートされた3つのレコードを確認できます。
[Execution] (実行)タブのビューで、挿入およびアップデート操作の結果が示されている状態。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。