我想在Workday中使用他們的API編輯自定義員工數據,但實際的自定義數據格式未在文檔中指定。另外,我無法找到檢索其他工作人員數據的方法。谷歌沒有找到任何使用他們的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>
你必須定義內
<wd:Business_Object_Additional_Data></wd:Business_Object_Additional_Data>
自定義對象(或其他數據)的元素。如果您的自定義對象定義爲「的TestObject」例如,你需要兩個對象和字段參考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類都是使用jaxws-maven-plugin從wsdl生成的,WorkdayCredentials類除外,請參閱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. 使用長外部API響應設置Django WSGI工作人員
- 2. Chrome開發人員工具css編輯
- 3. aspnet會員數據庫存儲額外的員工屬性
- 4. 使額外的WordPress的個人資料字段不可編輯
- 5. 使用MediaCodec API編輯MP4元數據
- 6. 針對非開發人員的工作流編輯
- 7. 畫布API和Web工作人員
- 8. 使用curl服務工作人員數據
- 9. 使uWSGI使用所有工作人員
- 10. 編輯推薦人數據
- 11. JQuery的$。員額不工作
- 12. JQuery的$。員額()不工作
- 13. 爲什麼用$就和$。員額該API調用不工作
- 14. 從開發人員客戶端工作站使用ASP.Net Web API
- 15. Youtube API使用不相關的工作人員?
- 16. 使用Mechanical Turk API獲取工作人員的國家
- 17. 的jQuery。員額不工作
- 18. 編輯數據表值增加額外的行
- 19. 動態數據在編輯頁面添加額外的列
- 20. asp.net mvc編輯會員用戶數據
- 21. $。員額(「@ Url.Action不工作
- 22. 數據表 - 無法編輯工作
- 23. datagridview中的額外列的後臺工作人員和進度欄實現?
- 24. 使用Rspec測試Sidekiq工作人員
- 25. web工作人員使用localStorage
- 26. 使用web工作人員解析HTML
- 27. ForkJoinFramework只使用兩名工作人員
- 28. 數據表編輯欄不工作
- 29. Octobercms - 帶按鈕的額外列(編輯,...)
- 30. 從專門的工作人員訪問共享工作人員