機械翻訳について

SFQLでqueryMore操作を使用して、SAP SuccessFactorsから800を超えるレコードをフェッチ

SAP SuccessFactorsから一度に800を超えるレコードをフェッチする必要がある場合は、queryMore操作を使用します。

SFQL問合せオブジェクトは、SAP SuccessFactorsから最初の800レコードを取得し、サーバー側のquerySessionIdを作成します。 queryMore (SFQL)コールは、後続のレコードを最大800レコード・チャンクで処理し、SAP SuccessFactorsレスポンスで新しく生成されたquerySessionIdを返します。 結果セットのレコードを反復処理するには、結果セットのすべてのレコードが処理されるまで(hasMoreフラグがtrue)、通常はqueryMore(SFQL)を繰り返し呼び出します。 hasMoreフラグがfalseの場合、問合せによってレコードが返されなくなった後にのみ、whileループが終了します。

SFQL操作のSAP SuccessFactorsから返されるレスポンスには、次の構造があります:
numResults
hasMore
querySessionId
  • numResults: numResults変数には、SAP SuccessFactorsから取得されたレコードの数が含まれます。

  • hasMore: hasMoreレスポンスはブール値です。 trueが返された場合は、フェッチできるレコードがさらにあります。 falseが返された場合、フェッチできるレコードはなくなります。

  • querySessionId: querySessionIDでは、SAP SuccessFactorsから取得された最後のレコードの値が格納されます。 当初は価値がありません。ローカルquerySessionIDは、空の単一引用符('')で初期化されます。

Oracle IntegrationqueryMore操作を実装するには、次のステップを実行します:
  1. Oracle Integrationにログインします。

  2. 「SOAPアダプタ」接続および「SAP SuccessFactorsアダプタ」接続を作成します。

  3. オーケストレーテッド統合を作成します。

  4. 「トリガー」セクションからトリガー側に「SOAPアダプタ」をドラッグ・アンド・ドロップして構成します。

  5. assignアクティビティを「アクション」セクションからドラッグ・アンド・ドロップし、次の2つの変数を作成します:

    • $hasMore -----ハードコードhasMore=“true”

    • $querySessionId ----空の値を持つハードコード

  6. whileループ・アクティビティをドラッグ・アンド・ドロップし、whileループで条件hasMore =’true'を指定します。

  7. 「SAP SuccessFactorsアダプタ」をwhileループの中にドラッグ・アンド・ドロップし、次のSFQL問合せで構成します。 問合せは、通常の問合せまたはバインド問合せにすることができます。

    Query : Select status from the user
    Bind Query : Select status from the user where status='&status'
  8. 「SOAPアダプタ」 「SAP SuccessFactorsアダプタ」「SAP SuccessFactorsアダプタ」との間に、“hasMore”のassignアクティビティで作成した変数を使用してマッピングを作成します。

    hasMore(Variable)----------> status (Query input parameter)
  9. リクエスト・マッピングの完了後、whileループ内で「SAP SuccessFactorsアダプタ」の横にあるもう1つのassignアクティビティをドラッグ・アンド・ドロップし、次のように、最初のassignアクティビティで作成した変数にqueryMoreレスポンスを割り当てます:

    $querySessionId ------>    nsmpr2:querySessionId
    $hasMore--------------->   nsmpr2:hasMore
  10. SuccessFactorsから受け取ったレスポンスを確認します。 条件が最初にチェックされます。 条件が満たされると、レコードがフェッチされます。

    • hasMoreの値がtrueの場合、whileループに入ります。

    • hasMoreの値がfalseの場合、条件は満たされず、whileループは終了します。

    これでSuccessFactorsのqueryMore操作の起動が完了しました。 さらに、オーケストレーションでは、ビジネス要件に応じてアダプタとアクティビティを追加できます。