studio-web
latest
false
重要 :
このコンテンツの一部は機械翻訳によって処理されており、完全な翻訳を保証するものではありません。 新しいコンテンツの翻訳は、およそ 1 ~ 2 週間で公開されます。
UiPath logo, featuring letters U and I in white

Studio Web ガイド

最終更新日時 2025年10月31日

Workday からワーカー階層を抽出する

次のチュートリアルでは、API ワークフローの主な機能を効果的に使用する方法について説明します。
  • 入力スキーマと出力スキーマ
  • コネクタ アクティビティ
  • コネクタ HTTP アクティビティ
  • JavaScript 式
  • 応答を書式設定および変換する
  • ワークフローを Orchestrator にパブリッシュする
Workday には、広範で機密性の高い従業員データが含まれています。API ワークフローを使用すると、特定の情報を抽出して変換できます。このチュートリアルでは、ワークフローは姓と名の要求に基づいて従業員の階層を取得します。
Workday API の完全なワークフロー
Workday への有効な接続が必要です。
  1. API ワークフローを作成します
  2. データ マネージャーを開き、[] プロパティと [] プロパティを入力として追加します。これらのプロパティは、後で $workflow.input オブジェクトを介して参照できます。
  3. コネクタを追加し、次の Workday (REST) アクティビティを使用するように設定します。 従業員を名前または ID で検索します
    1. [ 検索文字列または ID ] フィールドで [式エディター] を開き、以下を書き込みます。
      $workflow.input.firstName + " " + $workflow.input.lastName$workflow.input.firstName + " " + $workflow.input.lastName
    従業員を名前または ID で検索 - Workday アクティビティ
  4. ワークフローをデバッグし、成功した応答を確認します。しかし、労働者はゼロでした。
  5. [条件分岐 (if)] アクティビティを追加し、次のスニペットを [条件] として使用します。
    $context.outputs.Workers_1.content.length <= 0$context.outputs.Workers_1.content.length <= 0
  6. [条件分岐 (if)] アクティビティの[Then] 分岐に [ 応答] アクティビティを追加し、次のように設定します。
    • タイプ - 失敗
    • 詳細
      { "notFound": "No workers found for given input" }{ "notFound": "No workers found for given input" }
  7. ワークフローを再度デバッグします。必要な入力を指定しなかったため、ワークフローは自動的にこの応答に進み、ワークフローのステータスが 「失敗」に設定されます。
  8. 次のペイロードで デバッグ構成 を定義します。
    {
      "firstName": "Betty",
      "lastName": "Liu"
    }{
      "firstName": "Betty",
      "lastName": "Liu"
    }
    
  9. [出力 スキーマ] の [ コンテンツ] プロパティに結果が表示され始めるまで、ワークフローを デバッグ します。
    デバッグ ワークフローとコンテンツ プロパティ
  10. [条件分岐 (if)] アクティビティの[Else] 分岐に [繰り返し (コレクションの各要素)] アクティビティ> ループ を追加し、次のように設定します。
    • $context.outputs.Workers_1.content$context.outputs.Workers_1.content
    • 項目名 - currentItem
    • 結果の蓄積 - オン
  11. Workday REST[繰り返し (コレクション Workday RESTの各要素)] アクティビティの本体に、) コネクタ用の 3 つの [HTTP 要求] アクティビティを追加します。
    • Workday REST HTTP 要求 1: 直属の部下を検索する
    • Workday REST HTTP 要求 2: 組織の詳細の検索
    • Workday REST HTTP 要求 2: ピアの検索
    つまり、このアクティビティは、ループ内のすべての作業者について、前述の詳細情報 (直属の部下、組織の詳細、同僚) を返します。
  12. Workday REST HTTP 要求 1: 直属の部下を探すアクティビティを次のように設定します。
    • メソッド - GET
    • 要求 URL
      "/common/v1/uipath_dpt1/workers/" + $currentItem.id + "/directReports""/common/v1/uipath_dpt1/workers/" + $currentItem.id + "/directReports"
      ここで、 uipath_dpt1/workers はサンドボックス定義の一部です。
  13. [Workday REST HTTP 要求 2: 組織の詳細を検索] アクティビティを次のように設定します。
    • メソッド - GET
    • 要求 URL
      "/common/v1/uipath_dpt1/supervisoryOrganizations/" + $currentItem.primaryJob.supervisoryOrganization.id"/common/v1/uipath_dpt1/supervisoryOrganizations/" + $currentItem.primaryJob.supervisoryOrganization.id
      ここで、 uipath_dpt1/supervisoryOrganizations はサンドボックス定義の一部です。
  14. [Workday REST HTTP 要求 3: ピアを検索] アクティビティを次のように設定します。
    • メソッド - GET
    • 要求 URL
      "/common/v1/uipath_dpt1/supervisoryOrganizations/" + $currentItem.primaryJob.supervisoryOrganization.id + "/workers""/common/v1/uipath_dpt1/supervisoryOrganizations/" + $currentItem.primaryJob.supervisoryOrganization.id + "/workers"
      ここで、 uipath_dpt1/supervisoryOrganizations はサンドボックス定義の一部です。
  15. ワークフローを再度デバッグします。ワークフローは、これら 3 つの HTTP 要求に対して (最初のアクティビティの結果の数に基づいて) 指定された回数だけ正常にループします。
  16. [繰り返し (コレクションの各 要素)] アクティビティの本体で、前の 3 つの Workday REST HTTP 要求 アクティビティの後に [ スクリプト] アクティビティを追加します。
  17. [スクリプト] アクティビティを設定するには、[式エディター] で Autopilot ジェネレーターを使用して次のプロンプトを指定します。

    前の 3 つのアクティビティから、3 つのオブジェクトを作成します。オブジェクト 1 は「manager」であり、記述子を name として、person.email email として返す必要があります。オブジェクト 2 は 3 番目の http 要求からのピアであり、すべての結果をループし、記述子を "name" として、primaryworkemail を "email" として返す必要があります。最後に、すべての最初の http 結果とレポート名 (記述子) と primaryworkemail を email としてループするオブジェクト "reports" を追加します。

    生成される JavaScript コードは次のようになります。

    return {
    
        // Details on the worker
    
        manager: {
    
            name: $currentItem.descriptor,
    
            email: $currentItem.person.email
    
        },
    
        // Details for their peers
    
        peers: $context.outputs.Workday_REST_HTTP_Request_1.content.data.map(peer => ({
    
            name: peer.descriptor,
    
            email: peer.primaryWorkEmail
    
        })).filter(peers => peers.name !== $currentItem.descriptor), // Filter out the employee itself,
    
        // Details for their direct reports
    
        reports: $context.outputs.Workday_REST_HTTP_Request_3.content.data.map(report => ({
    
            name: report.descriptor,
    
            email: report.primaryWorkEmail
    
        }))
    
    }return {
    
        // Details on the worker
    
        manager: {
    
            name: $currentItem.descriptor,
    
            email: $currentItem.person.email
    
        },
    
        // Details for their peers
    
        peers: $context.outputs.Workday_REST_HTTP_Request_1.content.data.map(peer => ({
    
            name: peer.descriptor,
    
            email: peer.primaryWorkEmail
    
        })).filter(peers => peers.name !== $currentItem.descriptor), // Filter out the employee itself,
    
        // Details for their direct reports
    
        reports: $context.outputs.Workday_REST_HTTP_Request_3.content.data.map(report => ({
    
            name: report.descriptor,
    
            email: report.primaryWorkEmail
    
        }))
    
    }
    
  18. [繰り返し (コレクションの各要素)] ループの外に [応答] アクティビティを追加し、次のように設定します。
    • タイプ - 成功
    • 詳細
      $context.outputs.For_Each_1.results$context.outputs.For_Each_1.results
    この手順は、[ 繰り返し (コレクション の各要素)] ループによって生成された結果の完全なリストを返すようにワークフローに指示します。
  19. ワークフローをエンドツーエンドでデバッグします。実行が成功し、応答スキーマがニーズを満たす必要があります。
  20. ワークフローが正常に実行されたとき の出力 スキーマを生成します。
    1. [実行結果] パネルの [ 出力] セクションに移動します。
    2. [ クリップボードにコピー] を選択します。
    3. [データ マネージャー] パネルの [ 出力] セクションに移動します。
    4. [ ペイロードから生成] を選択します。
    5. [出力] > [実行] 出力からコピーした出力を貼り付けます。
    API ワークフローに入力スキーマと出力スキーマが含まれるようになり、プラットフォームをまたいで呼び出せるようになりました。
  21. API ワークフローを Orchestrator にパブリッシュします

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

サポートを受ける
RPA について学ぶ - オートメーション コース
UiPath コミュニティ フォーラム
Uipath Logo
信頼とセキュリティ
© 2005-2025 UiPath. All rights reserved.