Workday 用 Anypoint Connector (Workday Connector) をバージョン 12.0.0 にアップグレードします。
このリリースでの変更
このリリースには、次の変更が含まれています。
-
Workday API を 34.0 にアップグレード
-
Workday Student Core Web サービスを呼び出すための
Student Core 操作を追加 -
On New Objects 入力元を、データをより効率よくポーリングするOn Modified Objects 入力元に変更。詳細は、「On Modified Objects 入力元」を参照してください。
-
ヘッダーを属性として返すようにすべての操作を変更
-
新しい
Response Timeout 項目とResponse Timeout Unit 項目を使用して、入力元 (On Modified Objects) とすべてのコネクタ操作で応答タイムアウトを設定する機能を追加 -
接続タイムアウト項目を、値と時間単位の項目に分割
詳細は「接続種別の変更」を参照してください。
-
Reconnect オブジェクトとReconnect Forever オブジェクトからblocking 項目を削除 -
WORKDAY:UNKNOWN エラー種別を削除
接続種別の変更
以下の項目は、値と時間単位の項目に分割されました。
| v11.1.x の項目 | 変更後 |
|---|---|
Connection Idle Timeout (接続アイドルタイムアウト) |
Connection Idle Timeout (接続アイドルタイムアウト) と Connection Idle Timeout Unit (接続アイドルタイムアウト単位) |
Connection Timeout (接続タイムアウト) |
Connection Timeout (接続タイムアウト) と Connection Timeout Unit (接続タイムアウト単位) |
On Modified Objects 入力元
Workday Connector バージョン 11.1.x の On New Objects 入力元は、指定された期間の最初から現在まで Workday リソースのデータをポーリングしていました。この処理を Workday インスタンスの各ワーカーに対して行っていたため、インスタンスに数千ものワーカーが含まれている場合は、時間効率が非常に悪くなっていました。
新しい On Modified Objects 入力元は、常に指定された期間で最新のデータをポーリングします。1 回のポーリングの反復後、この入力元は最も古い瞬間を前回の最も新しい瞬間として設定し、最も新しい瞬間を現在の日付と時刻として設定します。これらのポーリングの変更により、On Modified Objects 入力元は On New Objects 入力元よりはるかに効率的になりました。
On Modified Objects 入力元は、次の Web サービスと操作で使用できます。
-
Human Resources Web Service-
Get Job Profiles 操作
-
-
Recruiting Web サービス-
Get Evergreen Requisitions 操作 -
Get Job Requisitions 操作
-
-
Staffing Web サービス-
Get Workers 操作 -
Get Positions 操作
-
次の例は、On Modified Objects 入力元の使い方を示しています。この例の動作は次のようになります。
-
HTTP Listener は、localhost:8081/put-worker パス上でイベントをリスンします。HTTP Listener がこのパス上でイベントを検出すると、最初のフローを開始します。このフローは、新しい役職を作成し、作成された役職に対して新しいワーカーを雇用します。 -
On Modified Objects 入力元は、サーバー上でのデータの変更をリスンします。新しいワーカーが雇用されたというメッセージを入力元が受け取ると、次のフローを開始します。このフローは、ワーカーの情報を Anypoint Studio コンソールに記録します。
この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを XML エディターに貼り付けます。必要に応じて、環境に合わせて値を変更します。
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:workday="http://www.mulesoft.org/schema/mule/workday" xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/workday http://www.mulesoft.org/schema/mule/workday/current/mule-workday.xsd">
<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" >
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<workday:config-version-34-config
name="Workday-Config" doc:name="Workday Config version 34" timeZone="UTC+01:00">
<workday:basic-authentication-api-v34-connection userName="user" password="password" tenantName="tenant" hostName="host.com"/>
</workday:config-version-34-config>
<flow name="create-worker-flow" >
<http:listener doc:name="/put-worker" config-ref="HTTP_Listener_config" path="/put-worker" />
<ee:transform doc:name="testData">
<ee:message>
</ee:message>
<ee:variables >
<ee:set-variable variableName="testData" ><![CDATA[%dw 2.0
output application/java
var randomNumber = randomInt(999999999) as String
---
{
countryReference: "USA",
countryReferenceID: "bc33aa3152ec42d4995f4791a106ed09",
communicationUsageTypeID: "Home",
currentDate: (now() - |P1D|) as Date,
employeeEmailAddress: "test_email" ++ randomNumber ++ "@gmail.com",
employeeFirstName: "Jim",
employeeLastName: "Jones_" ++ randomNumber,
employeeTypeID: "Casual",
jobPositionTitle: "test-position-" ++ randomNumber,
jobProfileID: "37600",
locationID: "San_Francisco_site" ,
organizationReferenceID: "Human_Resources_supervisory",
positionTimeTypeID: "Full_time"
}]]></ee:set-variable>
</ee:variables>
</ee:transform>
<ee:transform doc:name="Prepare Create Position Request">
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/xml
ns ns0 urn:com.workday/bsvc
---
{
ns0#Create_Position_Request @(ns0#version: "v33.2"): {
ns0#Create_Position_Data: {
ns0#Supervisory_Organization_Reference @(ns0#"Descriptor": "Descriptive"): {
ns0#ID @(ns0#"type": "Organization_Reference_ID"): vars.testData.organizationReferenceID
},
ns0#Position_Data: {
ns0#Job_Posting_Title: vars.testData.jobPositionTitle
},
ns0#Position_Group_Restrictions_Data: {
ns0#Availability_Date : vars.testData.currentDate,
ns0#Earliest_Hire_Date: vars.testData.currentDate
}
}
}
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<workday:staffing operation="Create_Position" doc:name="Create Position" config-ref="Workday-Config"/>
<ee:transform doc:name="Prepare Hire Employee Request">
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/xml
ns ns0 urn:com.workday/bsvc
---
{
ns0#Hire_Employee_Request @(ns0#version: "v33.2"): {
ns0#Hire_Employee_Data:{
ns0#Applicant_Data: {
ns0#Personal_Data: {
ns0#Name_Data: {
ns0#Legal_Name_Data: {
ns0#Name_Detail_Data: {
ns0#Country_Reference @(ns0#"Descriptor": "Country_Reference"): {
ns0#ID @(ns0#"type": "ISO_3166-1_Alpha-3_Code"): vars.testData.countryReference
},
ns0#First_Name: vars.testData.employeeFirstName,
ns0#Last_Name: vars.testData.employeeLastName,
}
}
},
ns0#Contact_Data: {
ns0#Email_Address_Data @(ns0#"Delete": "false" , ns0#"Do_Not_Replace_All": "false") : {
ns0#Email_Address : vars.testData.employeeEmailAddress,
ns0#Usage_Data @(ns0#"Public": "false"): {
ns0#Type_Data @(ns0#"Primary": "true") : {
ns0#Type_Reference @(ns0# "Descriptor": "Type_Reference"): {
ns0#ID @(ns0#"type": "Communication_Usage_Type_ID "): vars.testData.communicationUsageTypeID
}
}
}
}
}
}
},
ns0#Organization_Reference @(ns0# "Descriptor": "Organization_Reference"): {
ns0#ID @(ns0#"type": "Organization_Reference_ID"): vars.testData.organizationReferenceID
},
ns0#Position_Reference @(ns0# "Descriptor": "Position_Reference"): {
ns0#ID @(ns0#"type": "WID"): payload.ns0#Create_Position_Response.ns0#Position_Reference.ns0#ID
},
ns0#Hire_Date: vars.testData.currentDate,
ns0#Hire_Employee_Event_Data: {
ns0#Employee_Type_Reference @(ns0# "Descriptor": "Hire_Reference"): {
ns0#ID @(ns0#"type": "Employee_Type_ID "): vars.testData.employeeTypeID
},
ns0#Position_Details: {
ns0#Job_Profile_Reference @(ns0# "Descriptor": "Hire_Reference"): {
ns0#ID @(ns0#"type": "Job_Profile_ID "): vars.testData.jobProfileID
},
ns0#Location_Reference @(ns0# "Descriptor": "Hire_Reference"): {
ns0#ID @(ns0#"type": "Location_ID"): vars.testData.locationID
},
ns0#Position_Time_Type_Reference @(ns0# "Descriptor": "Hire_Reference"): {
ns0#ID @(ns0#"type": "Position_Time_Type_ID"): vars.testData.positionTimeTypeID
}
}
}
}
}
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<workday:staffing operation="Hire_Employee" doc:name="Hire Employee" config-ref="Workday-Config" />
</flow>
<flow name="listener-flow" >
<workday:modified-objects-listener objectType="WORKERS" doc:name="On Modified Objects Listener" config-ref="Workday-Config">
<scheduling-strategy >
<fixed-frequency />
</scheduling-strategy>
</workday:modified-objects-listener>
<logger level="INFO" doc:name="Logger - On Modified Objects" message='#[payload]'/>
</flow>
</mule>
アップグレード前提条件
Workday Connector をバージョン 11.1.x からバージョン 12.0.0 にアップグレードする前に、以下の作業を行う必要があります。
-
以前のバージョンに復元する必要がある場合に備えて、ファイル、データ、設定のバックアップを作成します。
-
Workday Connector v12.0 をインストールし、以前に Workday Connector v11.1.x に含まれていた Workday 操作を置き換えます。
アップグレード手順
Workday Connector v11.1.x から Workday Connector v12.0 にアップグレードする手順は、次のとおりです。
-
Studio で Mule プロジェクトを作成します。
-
[Mule Palette (Mule パレット)] ビューで、[Search in Exchange (Exchange 内を検索)] をクリックします。
-
[Add Dependencies to Project (連動関係をプロジェクトに追加)] ウィンドウで、検索項目に「
Workday」と入力します。 -
[Available modules (使用可能なモジュール)] セクションで、[Workday Connector (Workday Connector)] を選択し、[Add (追加)] をクリックします。
-
[Finish (完了)] をクリックします。
-
pom.xml ファイルでworkday-connector 連動関係のバージョンが12.0.0 であることを確認します。
Studio はコネクタを自動的にアップグレードします。
アップグレードを確認する
コネクタの最新バージョンをインストールしたら、次の手順に従ってアップグレードを確認します。
-
Studio の [Problems (問題)] または [Console (コンソール)] ビューでエラーがないことを確認します。
-
プロジェクトの
pom.xml ファイルをチェックして、問題がないことを確認します。 -
接続をテストして、操作が機能することを確認します。