APIを使用してWorkdayのカスタム従業員データを編集したいが、ドキュメントに実際のカスタムデータ形式が指定されていない。また、私は追加のワーカーデータを取得する方法を見つけることができませんでした。 Googleは、このAPI(Edit_Worker_Additional_Data関数)の使用例を見つけません。Workday APIを使用して作業者の追加データを編集する
1
A
答えて
2
これは、すべてのオプションパラメータを含むSOAPリクエストの様子です。
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<env:Body>
<wd:Edit_Worker_Additional_Data_Request
xmlns:wd="urn:com.workday/bsvc"
wd:version="v28.0">
<wd:Business_Process_Parameters>
<wd:Auto_Complete>true</wd:Auto_Complete>
<wd:Run_Now>true</wd:Run_Now>
<wd:Comment_Data>
<wd:Comment>abcdef</wd:Comment>
<wd:Worker_Reference>
<wd:ID wd:type="Contingent_Worker_ID">abcdef</wd:ID>
</wd:Worker_Reference>
</wd:Comment_Data>
</wd:Business_Process_Parameters>
<wd:Worker_Custom_Object_Data>
<wd:Effective_Date>2017-07-20</wd:Effective_Date>
<wd:Worker_Reference>
<wd:ID wd:type="Contingent_Worker_ID">abcdef</wd:ID>
</wd:Worker_Reference>
<wd:Business_Object_Additional_Data></wd:Business_Object_Additional_Data>
</wd:Worker_Custom_Object_Data>
</wd:Edit_Worker_Additional_Data_Request>
</env:Body>
</env:Envelope>
カスタムオブジェクトは、例えば、「TestObject」として定義されている場合
<wd:Business_Object_Additional_Data></wd:Business_Object_Additional_Data>
内のカスタムオブジェクト(または追加データ)の要素を定義する必要があり、あなたは、オブジェクトやフィールドリファレンスの両方が必要になりますIDは次のようになります。
<wd:Business_Object_Additional_Data>
<cus:TestObject>
<cus:TestObjectField>Value</cus:TestObjectField>
</cus:TestObject>
</wd:Business_Object_Additional_Data>
2
Javaを使用している場合、ワーカーデータを更新するWorkday APIの使用例を次に示します。 これはEdit_Worker_Additional_Dataではありませんが、すべて同じように動作します。とこのコードスニペットが役立ちます。ここのすべてのJavaクラスは、WorkdayCredentialsクラスを除いて、jaxws-maven-pluginを使用してwsdlから生成されます(Workday Soap API - User Name/Passwordを参照)。
public void updateWorkerContactInfo(Worker worker) throws WorkerDataException,
WorkerDataInvalidException {
HumanResourcesPort hrPort = hrService.getHumanResources();
BindingProvider bp = (BindingProvider) hrPort;
WorkdayCredentials.addWorkdayCredentials(bp,
config.getWdIntegrationUsername(),
config.getWdIntegrationPassword());
MaintainContactInformationForPersonEventRequestType body
= new MaintainContactInformationForPersonEventRequestType();
body.setAddOnly(false);
BusinessProcessParametersType params = new BusinessProcessParametersType();
params.setAutoComplete(false);
params.setRunNow(false);
body.setBusinessProcessParameters(params);
ContactInformationForPersonEventDataType contactData
= new ContactInformationForPersonEventDataType();
edu.bowdoin.workdayservice.data.hr.WorkerObjectType workerObjectType
= new edu.bowdoin.workdayservice.data.hr.WorkerObjectType();
edu.bowdoin.workdayservice.data.hr.WorkerObjectIDType idType
= new edu.bowdoin.workdayservice.data.hr.WorkerObjectIDType();
idType.setType("Employee_ID");
idType.setValue(worker.getWorkerId());
workerObjectType.getID().add(idType);
contactData.setWorkerReference(workerObjectType);
Date effectiveDate = new Date();
// set the effective date to the hire date + 1 day, this has to be
// greater than any other change to the worker address data, for
// example during the new hire process
if (worker.getHireDate() != null) {
DateTime hireDate = new DateTime(worker.getHireDate());
DateTime hireDatePlus1Day = hireDate.plusDays(1);
DateTime today = DateTime.now();
// only use hire date plus 1 if it is after today's date
if (hireDatePlus1Day.isAfter(today)) {
effectiveDate = hireDatePlus1Day.toDate();
}
}
contactData.setEffectiveDate(dateToXMLGregorian(effectiveDate));
ContactInformationDataType contactDataType
= new ContactInformationDataType();
EmailAddressInformationDataType emailAddressDataType
= new EmailAddressInformationDataType();
emailAddressDataType.setEmailAddress(worker.getPrimaryWorkEmail());
CommunicationMethodUsageInformationDataType usageDataType
= new CommunicationMethodUsageInformationDataType();
usageDataType.setPublic(true);
CommunicationUsageTypeDataType usageTypeData
= new CommunicationUsageTypeDataType();
usageTypeData.setPrimary(true);
CommunicationUsageTypeObjectType usageTypeObjectType
= new CommunicationUsageTypeObjectType();
CommunicationUsageTypeObjectIDType usageTypeObjectID
= new CommunicationUsageTypeObjectIDType();
usageTypeObjectID.setType("Communication_Usage_Type_ID");
usageTypeObjectID.setValue("WORK");
usageTypeObjectType.getID().add(usageTypeObjectID);
usageTypeData.setTypeReference(usageTypeObjectType);
usageDataType.getTypeData().add(usageTypeData);
emailAddressDataType.getUsageData().add(usageDataType);
contactDataType.getEmailAddressData().add(emailAddressDataType);
contactData.setWorkerContactInformationData(contactDataType);
body.setMaintainContactInformationData(contactData);
try {
hrPort.maintainContactInformation(body);
} catch (edu.bowdoin.workdayservice.data.hr.ProcessingFaultMsg e) {
throw new WorkerDataException(e.getMessage(), e);
} catch (edu.bowdoin.workdayservice.data.hr.ValidationFaultMsg e) {
throw new WorkerDataInvalidException(e.getMessage(), e);
} finally {
}
}
関連する問題
- 1. GitHub APIを使用してファイルにコミットメッセージを編集して追加する
- 2. 追加のURLパラメータを使用してaclを編集する
- 3. Angularjs編集して更新し、別のデータを追加する
- 4. Pixlr APIを使用してテキストを追加/編集できますか?
- 5. tfs作業項目の新しい編集可能フィールドを追加します。
- 6. LEADTOOLSを使用してDICOMファイルの患者データを編集するには
- 7. 剣道の編集者の最後にコンテンツを追加する
- 8. 新しく追加した作業項目フィールドを編集できません
- 9. Wikipedia API最終編集者
- 10. Javascriptを使用して作業日を追加する
- 11. woocommerce編集サブスクリプションページ(管理者)にボタンを追加する
- 12. 記事/ページを追加/編集できる管理者のウェブサイト
- 13. クロムウェブストアのレビューを編集者として編集します
- 14. Javaを使用して画像を追加し、.docでヘッダーを編集する
- 15. GitHub API - 管理者の共同編集者を追加するにはどうすればよいですか?
- 16. セッションを使用して、適切なユーザーの編集ボタンを追加する
- 17. 剣道の編集者はjQueryのステップで作業していませんか?
- 18. グラフAPIを使用してFacebookページに管理者を追加
- 19. MailChimp API 3.0を使用して加入者を追加するPHP
- 20. Grocerycrudの編集操作を追加してください
- 21. phpのjqueryダイアログを使用してデータを編集する
- 22. LINQを使用してWCFデータサービスのデータを編集する
- 23. 編集コントロールにテキストを追加しますか? (Windows API)
- 24. PHPでAPIを使用してPHPファイルを編集する
- 25. PowerShell over KuduコマンドAPIを使用してファイルを編集する
- 26. 同じブレードを使用してコンテンツを追加および編集するベストプラクティス
- 27. htmlに追加する前にajaxデータを編集する
- 28. CheckedListBox編集/追加
- 29. Wordpress Plugin APIを使用して.htaccessを編集しますか?
- 30. jQueryを使用して行データを編集する方法