Workday HR スポークの機能を拡張
Workday HR スポークをデフォルトの機能を超えて拡張します (新しい入力および出力フィールドの追加など)。
Workday HR スポークを拡張するには、アドミンが次のことを認識していることを確認してください Workday パブリック Web サービス API Workdayシステムを設定できます。
[ワーカーの検索 (Look up Workers)] アクションを拡張
スポークとともに使用可能な [ワーカーを検索 (Look up Workers)] アクションは、必要な入力と出力のほとんどを提供します。このアクションに入力と出力を追加する前に、デフォルトのスポークアクションを使用する方法を確認してください。
このアクションは、 Workday HR スポークの入力フィールドデータピルを関連する Workday 要求 XML メッセージに変換し、Workday 応答 XML メッセージを ServiceNow ワークフロースタジオ の出力フィールドデータピルとして同期的にレンダリングします。サンプル要求メッセージとサンプル応答メッセージを必ず確認します。
デフォルトの [ワーカーを検索] アクションのコピーを作成して、変更または拡張します。
このアクションの要求基準の一部としてポジション参照 ID を追加するには、次を行います。
注:
- 通常の入力フィールドまたは [追加フィールド] 入力フィールドに目的の入力があるかどうかを必ず確認します。目的の入力が含まれていない場合は、次の手順を実行して、必要な入力フィールドを手動で作成します。
- [ワーカーを検索] アクションは、[追加フィールド] 入力フィールドのポジション参照 ID 要求要素をサポートしています。デモンストレーションの目的で、このフィールドは UI に手動で追加されています。
- Workday 要求メッセージでポジション参照 ID がどのように構成されているかを評価して、理解します。ポジション参照 ID を要求メッセージに追加するための XPath は、Workday Public Web Services コミュニティ投稿のとおり、2 つあります。
- ポジション参照タイプ属性:Get_Workers_Request/Request_Criteria/Position_Reference/@type
- Public Web Services のドキュメントによると、上記の属性値はハードコードされた「ポジション ID」です。
- ポジション参照値:Get_Workers_Request/Request_Criteria/Position_Reference
- 上記の実際の値は、スポークアクションの新しい入力フィールドです。
- [アクションの入力] ステップで入力変数を作成します。[ 入力の作成] をクリックし、単純な文字列タイプの入力変数を追加します。
- 前処理スクリプトステップで入力変数を作成します。
- [変数の作成] をクリックします。
- 入力変数名を [position_reference_id] という名前で追加します。
- [入力変数] から [ポジション参照 ID] データピルをドラッグし、入力変数の値にドロップします。
- [スクリプト] セクションの [var organizationReferenceStr] のデザインパターンを活用します。
- この例の [Workday Get Worker Request] メッセージに一致する XML ノードを作成します。
- それに応じて、[スクリプト] セクションで適切なデザインパターンを見つけます。この例では、ポジション参照用にこの XML ノードをビルドする必要があります。
<bsvc:Position_Reference bsvc:Descriptor="string"> <bsvc:ID bsvc:type="Position_ID">string</bsvc:ID> </bsvc:Position_Reference> - 上記の XML を類似の XML ノードと比較する場合、関連するデザインパターンスクリプトを活用するために、組織参照が適しています。[スクリプト] セクションでは、関連するスクリプトスニペットは「var organizationReferenceStr」の下にあります。
<bsvc:Organization_Reference bsvc:Descriptor="string"> <bsvc:ID bsvc:type="Organization_ID">string</bsvc:ID> </bsvc:Organization_Reference> - [var organizationReferenceStr] コードスニペットを利用して、ポジション参照 XML ノードを適切にビルドします。
- 同じスクリプトの [var request] セクションで、デザインパターンを活用し、出力変数を定義します。
- SOAP ステップにポジション XML ノードを作成します。
- 適宜、「Workday Get Worker Request メッセージ」およびポジション参照ノードを参照してください。
- 保存して公開します。
- 適宜、「Workday Get Worker Request メッセージ」およびポジション参照ノードを参照してください。
- アクションをテストします。
- これはデータストリームアクションであるため、フローを使用してテストする必要があります。その中でアクションを含むサンプルフローを作成します。
- ポジション ID を入力し、フローをテストします。
- [実行 (execution)]を開き、SOAP ステップに移動して、ポジション参照を含む更新済み XML 要素ノードが作成されているかどうかを確認します。
- これはデータストリームアクションであるため、フローを使用してテストする必要があります。その中でアクションを含むサンプルフローを作成します。
Workday スポークアクションの出力フィールドを追加および変更
Workday スポークを拡張して、ローカルの名と姓を取得します。
- Workday 要求メッセージでローカルの名前がどのように構成されているかを評価して、理解します。
- ローカルの名:この要素の XPath は、Get_Workers_Response/Response_Data/Worker/Worker_Data/Personal_Data/Name_Data/Legal_Name_Data/Name_Detail_Data/Local_Name_Detail_Data/First_Name
- ローカルの姓:この要素の XPath は、Get_Workers_Response/Response_Data/Worker/Worker_Data/Personal_Data/Name_Data/Legal_Name_Data/Name_Detail_Data/Local_Name_Detail_Data/Last_Name
- [スクリプトパーサー] ステップの正式名デザインパターンを活用して、ローカルの正式名のスニペットを作成します。
var LocalFirstName = xmlDoc.getNodeText(Worker_DataXpath.concat("wd:Personal_Data/wd:Name_Data/wd:Legal_Name_Data/wd:Name_Detail_Data/wd:Local_Name_Detail_Data/wd:First_Name")); var LocalLastName = xmlDoc.getNodeText(Worker_DataXpath.concat("wd:Personal_Data/wd:Name_Data/wd:Legal_Name_Data/wd:Name_Detail_Data/wd:Local_Name_Detail_Data/wd:Last_Name")); var LocalLegalName = { LocalFirstName: LocalFirstName, LocalLastName: LocalLastName, }; - [LocalLegalName] を [PersonalData] オブジェクトに追加します。
- [出力] ステップで出力変数を作成します。
- [出力を編集 (Edit Output)] をクリックします。
- 出力フィールドは、正確な Workday 応答メッセージ階層に従う必要はありません。ステップ 2 の XPath が正しい Workday XPath に従っている限り、スポークアクションはそれに応じて要素をレンダリングできます。この場合、[個人データ (Personal Data)] の下に [ローカル正式名 (Local Legal Name)] を追加するだけで十分です。注:[名前] セクションの文字列変数名は、上記の手順 2 で定義したものと同じ変数名と一致する必要があります。
- アクションを保存して公開します。注:[ワーカーを検索 (Look up Workers)] アクションには、データストリームアクションが保持できる出力要素の最大数があります。コピーしたアクションを新しい出力要素で公開中にエラーが発生した場合は、不要な出力要素をいくつか削除して、もう一度公開を試みます。
- アクションをテストします。
- テストワーカーのサブジェクトが Workday でローカルの名と姓を持っていることを確認します。
- サンプルフローを作成し、それにアクションを追加し、応答をログに記録して出力要素を検証します。
- フローをテストして実行するために、関連するテストワーカーサブジェクトの従業員 ID を入力します。
- ログと実行を検証して、ローカルの名と姓が正しく取得されているかどうかを検証します。