Ich möchte benutzerdefinierte Mitarbeiterdaten in Workday mit ihrer API bearbeiten, aber das eigentliche benutzerdefinierte Datenformat ist nicht in der Dokumentation angegeben. Außerdem konnte ich keine Möglichkeit finden, zusätzliche Arbeitsdaten abzurufen. Google findet keine Beispiele für die Verwendung der API (Edit_Worker_Additional_Data-Funktion).Bearbeite zusätzliche Daten mit Workday API
Antwort
So würde die SOAP-Anfrage aussehen, einschließlich aller optionalen Parameter.
<?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>
Sie haben das Custom Object (oder zusätzliche Daten) Elemente innerhalb
<wd:Business_Object_Additional_Data></wd:Business_Object_Additional_Data>
definieren Wenn Ihr benutzerdefiniertes Objekt als „Testobject“ beispielsweise definiert ist, müssen Sie sowohl das Objekt und Feldreferenz IDs, und es würde so aussehen:
<wd:Business_Object_Additional_Data>
<cus:TestObject>
<cus:TestObjectField>Value</cus:TestObjectField>
</cus:TestObject>
</wd:Business_Object_Additional_Data>
Wenn Sie Java verwenden, ist hier eine Beispielverwendung der Workday-API zum Aktualisieren von Arbeitsdaten. Dies ist nicht der Edit_Worker_Additional_Data, aber sie arbeiten alle sehr ähnlich und vielleicht hilft dieses Code-Snippet jemandem zu beginnen. Alle Java-Klassen hier werden aus dem wsdl unter Verwendung von jaxws-maven-plugin erzeugt, mit Ausnahme der WorkdayCredentials-Klasse, siehe hierzu 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. Zusätzliche Informationen mit Facebook API?
- 2. Geo-redisis, zusätzliche Daten speichern
- 3. Wo finde ich die ausgehenden Nachrichten von Workday?
- 4. Lade Daten von SharedPreferences und bearbeite Listenansicht
- 5. matplotlib xaxis.set_major_formatter zusätzliche Daten
- 6. API für zusätzliche Speicherdetails Softlayer
- 7. Zusätzliche Daten mit einer MySQL-Spalte verknüpfen
- 8. Benutzer mit django-allauth zusätzliche Daten hinzufügen
- 9. fehlendes Argument bearbeite Daten mit Upload Bild in Codeigniter
- 10. Senden von serialisierten Daten plus zusätzliche Daten mit Ajax
- 11. Wie bearbeite ich created_at von twitter json API
- 12. WebAPI - Rückgabedatei und zusätzliche Daten
- 13. Excel-Hilfe - Versuchen, IF und WORKDAY-Funktionen zu verwenden
- 14. Zusätzliche Verzeichnisse mit Behat
- 15. Cryptocurrency API mit Daten?
- 16. Wie bearbeite ich eine ExcelTable mit EPPlus
- 17. Aktualisierung Magento SOAP V1 api zusätzliche Attribute
- 18. 2Checkout API - Wie bearbeite ich einen wiederkehrenden Verkauf
- 19. nodejs, mongodb - Wie bearbeite ich Daten aus mehreren Abfragen?
- 20. Wie bearbeite/bearbeite ich große Textmengen in WPF?
- 21. bash Einsatz zusätzliche Header und Daten
- 22. API-Daten mit MongoDB-Daten kombinieren
- 23. Zusätzliche Spalte basierend auf gepaarten Daten (muate)
- 24. MySQL - group_concat zieht zusätzliche falsche Daten ein
- 25. Wie extrahiere ich zusätzliche Daten von LinqDataSource?
- 26. jQuery Autocomplete - Wie behandelt man zusätzliche Daten?
- 27. Select2 - Zusätzliche Daten über Ajax-Anruf zurückgeben
- 28. SQL Zusätzliche Daten in der Datumsspalte
- 29. Wie Schleife zuoptip zusätzliche Daten in chart.js
- 30. Wie bearbeite und erhalte ich Daten aus einer Textdatei?