Einführung
Cloud HCM bietet die Möglichkeit, Daten aus HCM mit einer Plattform der neuen Generation mit schreibgeschütztem Datenspeicher zu extrahieren.
Ziele
Nach Abschluss dieses Tutorials erfahren Sie, wie Sie:
- Worker-Extraktionsansichten und ihre Hierarchie von Objekten abfragen
- Extraktionsjobanforderungen zum Abrufen ausgewählter Mitarbeiterhierarchiedaten asynchron weiterleiten und verfolgen
- Exportausgabedateien herunterladen
Voraussetzungen
Bevor Sie beginnen:
- Wenden Sie sich an Oracle CoE, um sicherzustellen, dass der schreibgeschützte Datenspeicher in Ihrem Pod bereitgestellt wird und Ihre Daten repliziert werden
- Führen Sie die erforderliche Sicherheitskonfiguration aus, einschließlich:
- Datensicherheit einrichten
- OAuth Client-App-Setup
Anwendungsfälle
Mit dieser Funktion können Sie die folgenden Anwendungsfälle bearbeiten.
Vollständige Datenextraktion
Die vollständige Extraktion von Mitarbeiterdaten kann eine einmalige oder periodische Aktivität sein.
Sie können die gesamte Objekthierarchie oder nur eine Teilmenge davon abrufen.
Die vollständige Datenextraktion ruft alle Datensätze ab, die den Filterkriterien entsprechen, und die Ausgabedateien können sehr groß sein.
Datumsabhängige Objekte werden ab dem angeforderten Gültigkeitsdatum abgerufen, wobei das aktuelle Extraktionsdatum der Standardwert ist.
Inkrementelle Datenextraktion
Die inkrementelle Extraktion von Mitarbeiterdaten ist in der Regel eine periodische, geplante Aktivität.
Sie können die gesamte Objekthierarchie oder nur eine Teilmenge davon abrufen.
In diesem Anwendungsfall möchten Sie nur Objekte abrufen, die seit der vorherigen Extraktionsausführung geändert wurden, wobei die erste Extraktionsausführung die Baseline ist. Um dies zu erreichen, müssen timeUpdated-Attributfilter auf jeder Ebene angewendet werden, die der Änderungserkennung unterliegt.
Inkrementelle Datenextraktionsabfrage kann zusätzliche Filterkriterien anwenden. Ausgabedateien sind im Allgemeinen kleiner als die vollständige Extraktion, da sie nur Delta enthalten.
Es werden nur aktuelle Werte von Attributen abgerufen.
Datumsabhängige Objekte werden ab dem angeforderten Gültigkeitsdatum abgerufen, wobei das aktuelle Extraktionsdatum der Standardwert ist.
Achtung:
Physisch gelöschte Datensätze werden nicht durch Filtern nachtimeUpdated zurückgegeben.
Aufgabe 1: Extraktionsansicht auswählen
Wählen Sie abhängig von den erforderlichen Objekten und Attributen aus, welche Extraktionsansicht verwendet werden soll. Verfügbare Ansichten ab Release 26A werden unten zusammen mit den Objekten und Attributen aufgeführt, die extrahiert werden können, gruppiert nach Modul.
Mehrere Sprachen :
Übersetzbare Attribute sind derzeit nur auf Englisch verfügbar.Global HR - Beschäftigung
| Modulname | oraHcmHrCoreEmployment |
|---|---|
| Modulkontextpfad | hcmHrCore/employment |
| View-Name | Attribute |
|---|---|
| actionExtracts | ID actionCode startDate endDate timeCreated timeUpdated createdBy updatedBy actionName Beschreibung |
| assignmentStatusTypeExtracts | id assignmentStatusCode fromDate toDate activeFlag defaultFlag timeCreated timeUpdated createdBy updatedBy userStatus |
| emailExtracts | id fromDate toDate emailAddress timeUpdated updatedBy timeCreated createdBy primaryFlag personDetail.id personDetail.personNumber personDetail.effectiveStartDate personDetail.effectiveEndDate type.lookupCode type.lookupType type.meaning |
| legislativeInformationExtracts | id effectiveStartDate effectiveEndDate Geschlecht maritalStatus maritalStatusChangeDate highestEducationLevel timeUpdated updatedBy timeCreated createdBy personDetail.id personDetail.personNumber personDetail.effectiveStartDate personDetail.effectiveEndDate legislation.territoryCode legislation.territoryShortName |
| legislativeInformationHistoryExtracts | id effectiveStartDate effectiveEndDate Geschlecht maritalStatus maritalStatusChangeDate highestEducationLevel timeUpdated updatedBy timeCreated createdBy personDetail.id personDetail.personNumber legislation.territoryCode legislation.territoryShortName |
| managerHierarchyExtracts | effectiveStartDate effectiveEndDate personId assignmentId managerType managerLevel managerId managerAssignmentId primaryAssignmentFlag primaryManagerFlag createdBy timeCreated updatedBy timeUpdated personAssignment.id personAssignment.effectiveStartDate personAssignment.effectiveEndDate personAssignment.effectiveSequence personAssignment.effectiveLatestChange personAssignment.assignmentType personAssignment.assignmentNumber personAssignment.primaryFlag personAssignment.businessTitle personAssignment.workAtHomeFlag personAssignment.officeBuilding personAssignment.officeFloor personAssignment.officeMailStop personAssignment.officeNumber personAssignment.primaryAssignmentFlag personAssignment.primaryWorkRelationshipFlag personAssignment.timeUpdated personAssignment.updatedBy personAssignment.timeCreated personAssignment.createdBy personAssignment.systemPersonType personAssignment.labourUnionMemberFlag personAssignment.managerFlag personAssignment.probationEndDate personAssignment.probationPeriod personAssignment.probationPeriodUnit personAssignment.normalHours personAssignment.frequency personAssignment.endTime personAssignment.startTime personAssignment.noticePeriod personAssignment.noticePeriodUOM personAssignment.workerCategory personAssignment.assignmentCategory personAssignment.hourlyPaidOrSalaried personAssignment.projectedEndDate personAssignment.projectedStartDate personAssignment.assignmentStatusType personAssignment.retirementAge personAssignment.retirementDate personAssignment.synchronizeFromPositionFlag personAssignment.fullTimeOrPartTime personAssignment.permanentAssignmentFlag personAssignment.seniorityBasis personAssignment.overtimePeriod personAssignment.adjustedFullTimeEquivalent personAssignment.annualWorkingDuration personAssignment.annualWorkingDurationUnit personAssignment.annualWorkingRatio personAssignment.standardFrequency personAssignment.standardWorkingHours personAssignment.standardAnnualWorkingDuration personAssignment.sequence personAssignment.department.id personAssignment.department.name personAssignment.department.title personAssignment.department.effectiveStartDate personAssignment.department.effectiveEndDate personAssignment.legalEmployer.id personAssignment.legalEmployer.name personAssignment.legalEmployer.effectiveStartDate personAssignment.legalEmployer.effectiveEndDate personAssignment.legislation.territoryCode personAssignment.legislation.territoryShortName personAssignment.position.id personAssignment.position.effectiveStartDate personAssignment.position.effectiveEndDate personAssignment.position.name personAssignment.position.code personAssignment.grade.id personAssignment.grade.effectiveStartDate personAssignment.grade.effectiveEndDate personAssignment.grade.name personAssignment.grade.code personAssignment.location.id personAssignment.location.effectiveStartDate personAssignment.location.effectiveEndDate personAssignment.location.name personAssignment.location.code personAssignment.location.mainAddress.id personAssignment.location.mainAddress.effectiveStartDate personAssignment.location.mainAddress.effectiveEndDate personAssignment.location.mainAddress.county personAssignment.location.mainAddress.state personAssignment.location.mainAddress.province personAssignment.location.mainAddress.townOrCity personAssignment.location.mainAddress.postalCode personAssignment.location.mainAddress.longPostalCode personAssignment.location.mainAddress.addressLine1 personAssignment.location.mainAddress.addressLine2 personAssignment.location.mainAddress.addressLine3 personAssignment.location.mainAddress.addressLine4 personAssignment.location.mainAddress.country.territoryCode personAssignment.location.mainAddress.country.territoryShortName personAssignment.job.id personAssignment.job.effectiveStartDate personAssignment.job.effectiveEndDate personAssignment.job.name personAssignment.job.code personAssignment.job.jobFunctionCode personAssignment.job.managerLevel personAssignment.job.jobFamily.id personAssignment.job.jobFamily.effectiveStartDate personAssignment.job.jobFamily.effectiveEndDate personAssignment.job.jobFamily.code personAssignment.job.jobFamily.name personAssignment.collectiveAgreement.id personAssignment.collectiveAgreement.effectiveStartDate personAssignment.collectiveAgreement.effectiveEndDate personAssignment.collectiveAgreement.name personAssignment.personType.id personAssignment.personType.userPersonType personAssignment.workerUnion.id personAssignment.workerUnion.effectiveStartDate personAssignment.workerUnion.effectiveEndDate personAssignment.workerUnion.name personAssignment.assignmentUserStatus.id personAssignment.assignmentUserStatus.userStatus personAssignment.businessUnit.id personAssignment.businessUnit.effectiveStartDate personAssignment.businessUnit.effectiveEndDate personAssignment.businessUnit.name personAssignment.account.codeCombinationId personAssignment.account.concatenatedSegments personAssignment.account.chartOfAccountsId personAssignment.ledger.ledgerId personAssignment.ledger.name personAssignment.workRelationship.id personAssignment.workRelationship.startDate personAssignment.workRelationship.workerType personAssignment.workRelationship.timeCreated personAssignment.workRelationship.timeUpdated personAssignment.localName.id personAssignment.localName.effectiveStartDate personAssignment.localName.effectiveEndDate personAssignment.localName.lastName personAssignment.localName.firstName personAssignment.localName.displayName personAssignment.localName.listName personAssignment.localName.timeCreated personAssignment.localName.timeUpdated personAssignment.globalName.id personAssignment.globalName.effectiveStartDate personAssignment.globalName.effectiveEndDate personAssignment.globalName.lastName personAssignment.globalName.firstName personAssignment.globalName.displayName personAssignment.globalName.listName personAssignment.globalName.timeCreated personAssignment.globalName.timeUpdated personAssignment.personDetail.id personAssignment.personDetail.personNumber personAssignment.personDetail.effectiveStartDate personAssignment.personDetail.effectiveEndDate personAssignment.personDetail.timeCreated personAssignment.personDetail.timeUpdated |
| nameExtracts | id effectiveStartDate effectiveEndDate lastname firstname middlenames title prefix suffix knownAs previousLastname honors militaryRank displayname fullname listname ordername type timeUpdated updatedBy timeCreated createdBy personDetail.id personDetail.personNumber personDetail.effectiveStartDate personDetail.effectiveEndDate legislation.territoryCode legislation.territoryShortname |
| nationalIdentifierExtracts | id createdBy expirationDate issueDate identifierNumber placeOfIssue timeCreated timeUpdated updatedBy personDetail.id personDetail.personNumber personDetail.effectiveStartDate personDetail.effectiveEndDate country.territoryCode country.territoryShortName type.lookupCode type.lookupType type.meaning |
| personAddressExtracts | id effectiveStartDate effectiveEndDate type primaryFlag timeCreated timeUpdated createdBy updatedBy building floorNumber townOrCity postalCode longPostalCode addressLine1 addressLine2 addressLine3 addressLine4 county state province country.territoryCode country.territoryShortName personDetail.id personDetail.personNumber personDetail.effectiveStartDate personDetail.effectiveEndDate |
| personAddressHistoryExtracts | id effectiveStartDate effectiveEndDate type primaryFlag timeCreated timeUpdated createdBy updatedBy erstellen floorNumber townOrCity postalCode longPostalCode addressLine1 addressLine2 addressLine3 addressLine4 county state provinz country.territoryCode country.territoryShortName |
| personTypeExtracts | ID systemPersonType activeFlag defaultFlag timeCreated timeUpdated createdBy updatedBy userPersonType |
| phoneExtracts | id fromDate toDate phoneNumber areaCode countryCodeNumber Erweiterung Gültigkeit timeUpdated updatedBy timeCreated createdBy primaryFlag personDetail.id personDetail.personNumber personDetail.effectiveStartDate personDetail.effectiveEndDate legislation.territoryCode legislation.territoryShortName type.lookupCode type.lookupType type.meaning |
| workerAssignmentExtracts | id effectiveStartDate effectiveEndDate effectiveSequence effectiveLatestChange assignmentType assignmentNumber primaryFlag businessTitle workAtHomeFlag officeBuilding officeFloor officeMailStop officeNumber primaryAssignmentFlag primaryWorkRelationshipFlag timeUpdated updatedBy timeCreated createdBy systemPersonType labourUnionMemberFlag managerFlag probationEndDate probationPeriod probationPeriodUnit normalHours frequency endTime startTime noticePeriod noticePeriodUOM workerCategory assignmentCategory hourlyPaidOrSalaried projectedEndDate projectedStartDate assignmentStatusType expenseCheckSendToAddress retirementAge retirementDate synchronizeFromPositionFlag fullTimeOrPartTime permanentAssignmentFlag seniorityBasis overtimePeriod adjustedFullTimeEquivalent annualWorkingDuration annualWorkingDurationUnit annualWorkingRatio standardFrequency standardWorkingHours standardAnnualWorkingDuration sequence department.id department.name department.title department.effectiveStartDate department.effectiveEndDate legalEmployer.id legalEmployer.name legalEmployer.effectiveStartDate legalEmployer.effectiveEndDate legislation.territoryCode legislation.territoryShortName position.id position.ffectiveStartDate position.effectiveEndDate position.name position.code grade.id grade.effectiveStartDate grade.effectiveEndDate grade.name grade.code location.id location.effectiveStartDate location.effectiveEndDate location.name location.code location.mainAddress.id location.mainAddress.effectiveStartDate location.mainAddress.effectiveEndDate location.mainAddress.county location.mainAddress.state location.mainAddress.province location.mainAddress.townOrCity location.mainAddress.postalCode location.mainAddress.longPostalCode location.mainAddress.addressLine1 location.mainAddress.addressLine2 location.mainAddress.addressLine3 location.mainAddress.addressLine4 location.mainAddress.country.territoryCode location.mainAddress.country.territoryShortName job.id job.effectiveStartDate job.effectiveEndDate job.name job.code job.jobFunctionCode job.managerLevel job.jobFamily.id job.jobFamily.effectiveStartDate job.jobFamily.effectiveEndDate job.jobFamily.code job.jobFamily.name collectiveAgreement.id collectiveAgreement.effectiveStartDate collectiveAgreement.effectiveEndDate collectiveAgreement.name personType.id personType.userPersonType workerUnion.id workerUnion.effectiveStartDate workerUnion.effectiveEndDate workerUnion.name assignmentUserStatus.id assignmentUserStatus.userStatus businessUnit.id businessUnit.effectiveStartDate businessUnit.effectiveEndDate businessUnit.name account.codeCombinationId account.concatenatedSegments account.chartOfAccountsId ledger.ledgerId ledger.name workRelationship.id workRelationship.startDate workRelationship.workerType workRelationship.timeCreated workRelationship.timeUpdated localName.id localName.effectiveStartDate localName.effectiveEndDate localName.lastName localName.firstName localName.displayName localName.listName localName.timeCreated localName.timeUpdated globalName.id globalName.effectiveStartDate globalName.effectiveEndDate globalName.lastName globalName.firstName globalName.displayName globalName.listName globalName.timeCreated globalName.timeUpdated personDetail.id personDetail.personNumber personDetail.effectiveStartDate personDetail.effectiveEndDate personDetail.timeCreated personDetail.timeUpdated |
| workerAssignmentHistoryExtracts | id effectiveStartDate effectiveEndDate effectiveSequence effectiveLatestChange assignmentType assignmentNumber primaryFlag businessTitle workAtHomeFlag officeBuilding officeFloor officeMailStop officeNumber primaryAssignmentFlag primaryWorkRelationshipFlag timeUpdated updatedBy timeCreated createdBy systemPersonType labourUnionMemberFlag managerFlag probationEndDate probationPeriod probationPeriodUnit normalHours frequency endTime startTime noticePeriod noticePeriodUOM workerCategory assignmentCategory hourlyPaidOrSalaried projectedEndDate projectedStartDate assignmentStatusType expenseCheckSendToAddress retirementAge retirementDate synchronizeFromPositionFlag fullTimeOrPartTime permanentAssignmentFlag seniorityBasis overtimePeriod adjustedFullTimeEquivalent annualWorkingDuration annualWorkingDurationUnit annualWorkingRatio standardFrequency standardWorkingHours standardAnnualWorkingDuration sequence department.id legalEmployer.id legislation.territoryCode legislation.territoryShortName position.id grade.id location.id location.mainAddress.id location.mainAddress.country.territoryCode location.mainAddress.country.territoryShortName job.id job.jobFamily.id collectiveAgreement.id personType.id personType.userPersonType workerUnion.id assignmentUserStatus.id assignmentUserStatus.userStatus businessUnit.id account.codeCombinationId account.concatenatedSegments account.chartOfAccountsId ledger.ledgerId ledger.name workRelationship.id localName.id globalName.id personDetail.id personDetail.personNumber |
| workRelationshipExtracts | id startDate workerType timeCreated timeUpdated workerNumber primaryFlag createdBy updatedBy readyToConvertFlag enterpriseSeniorityDate legalEmployerSeniorityDate onMilitaryServiceFlag lastWorkingDate terminationDate notificationDate projectedTerminationDate legalEmployer.id legalEmployer.name legalEmployer.effectiveStartDate legalEmployer.effectiveEndDate legislation.territoryCode legislation.territoryShortName personDetail.id personDetail.personNumber personDetail.effectiveStartDate personDetail.effectiveEndDate |
Global HR - Arbeitsstrukturen
| Modulname | oraHcmHrCoreWorkStructures |
|---|---|
| Modulkontextpfad | hcmHrCore/workStructures |
| View-Name | Attribute |
|---|---|
| gradeExtracts | ID createdBy effectiveStartDate effectiveEndDate Code timeCreated timeUpdated updatedBy Status Name |
| gradeHistoryExtracts | ID createdBy effectiveStartDate effectiveEndDate Code timeCreated timeUpdated updatedBy Status Name |
| jobExtracts | id Name effectiveStartDate effectiveEndDate Code Status createdBy timeCreated updatedBy timeUpdated |
| jobFamilyExtracts | ID Code Name effectiveStartDate effectiveEndDate Status timeUpdated updatedBy timeCreated createdBy |
| jobFamilyHistoryExtracts | ID Code Name effectiveStartDate effectiveEndDate Status timeUpdated updatedBy timeCreated createdBy |
| jobHistoryExtracts | id Name effectiveStartDate effectiveEndDate Code Status createdBy timeCreated updatedBy timeUpdated |
| locationExtracts | ID createdBy effectiveStartDate effectiveEndDate Code timeCreated timeUpdated updatedBy Status countryCode employeeLocationFlag shipToSiteFlag receivingSiteFlag billToSiteFlag officeSiteFlag detailCreatedBy detailTimeCreated detailUpdatedBy detailTimeUpdated timezoneCode Beschreibung Name |
| locationHistoryExtracts | ID createdBy effectiveStartDate effectiveEndDate Code timeCreated timeUpdated updatedBy Status countryCode employeeLocationFlag shipToSiteFlag receivingSiteFlag billToSiteFlag officeSiteFlag detailCreatedBy detailTimeCreated detailUpdatedBy detailTimeUpdated timezoneCode Beschreibung Name |
| positionExtracts | id effectiveStartDate effectiveEndDate code status hiringStatus createdBy timeCreated updatedBy timeUpdated name |
| positionHistoryExtracts | id effectiveStartDate effectiveEndDate code status hiringStatus createdBy timeCreated updatedBy timeUpdated name |
HCM Common - Ereignisse
| Modulname | oraHcmHrCoreEvents |
|---|---|
| Modulkontextpfad | hcmHrCore/events |
| View-Name | Attribute |
|---|---|
| objectChangeExtracts | id sourceObjectName groupSequence operationType dateEffectiveMode effectiveDate keyAttribute1Name keyAttribute1DataType keyAttribute1StringValue keyAttribute1NumberValue keyAttribute1DateValue keyAttribute2Name keyAttribute2DataType keyAttribute2StringValue keyAttribute2NumberValue keyAttribute2DateValue keyAttribute3Name keyAttribute3DataType keyAttribute3StringValue keyAttribute3NumberValue keyAttribute3DateValue purgeDate createdBy timeCreated updatedBy timeUpdated changeComponents.id changeComponents.physicalType changeComponents.logicalType changeComponents.oldEffectiveStartDate changeComponents.newEffectiveStartDate changeComponents.oldEffectiveEndDate changeComponents.newEffectiveEndDate changeComponents.oldEffectiveSequence changeComponents.newEffectiveSequence changeComponents.createdBy changeComponents.timeCreated changeComponents.updatedBy changeComponents.timeUpdated changeComponents.changedAttributes.changedAttributesXml |
Aufgabe 2: Extraktionsabfragen vorbereiten und testen
Jede Extraktionsansicht verfügt über eine Abfrage-API, mit der Extraktionsabfragen erstellt und getestet werden können.
| URL | /api/boss/data/objects/ora/{{moduleContextPath}}/v1/{{viewName}}/$query |
|---|---|
| HTTP-Methode | POST |
| Anforderungsvorlage |
{
"collection": {
"limit": {{limit}},
"offset": {{offset}},
"sortBy": [ {{sortAttributes}} ],
"filter": "{{topLevelFilter}}"
},
"fields": [ {{topLevelAttributes}} ],
"accessors": {
"{{childObject}}": {
"collection": {
"filter": "{{childLevelFilter}}"
},
"fields": [ {{childLevelAttributes}} ],
"accessors": {
{{nestedChildAccessors}}
}
},
...
}
}
|
| Antwortvorlage |
200 OK
{
"items": [
{{items}}
],
"hasMore": {{hasMore}}
}
|
Objekte und Attribute
Definieren Sie, welche Daten extrahiert werden sollen, d.h. welche Objekte und Attribute einbezogen werden sollen. Um untergeordnete Objekte einzubeziehen, müssen Accessor hinzugefügt werden, während bestimmte Felder im Array fields aufgelistet werden müssen. Siehe vollständiges Beispiel.
Filtern
Definieren Sie, wie Daten gefiltert werden sollen. Sie können die folgenden Ausdrücke verwenden, um Filter für Ihre Abfrage zu erstellen.
| Zweck | Ausdruck | Beispiel |
|---|---|---|
| Gleichheitstest | field = value |
ename = 'KING' |
| Ungleichheitstest | field != value |
activeFlag != true |
| Größer als ein Test Weniger als ein Test |
field > value |
sal > 1999.99 |
| Größer als oder gleichwertig zu testen Weniger als oder gleichwertig zu testen |
field >= value |
sal >= 1999.99 |
| Musterabgleich | field LIKE 'pattern' |
job LIKE 'SALES%' |
| Mitgliedschaftstest | field IN (value1, ..., valueN) |
deptno IN (10, 20, 40) |
| Vergleich der Groß-/Kleinschreibung ignorieren | field ~= value |
ename ~= 'king' |
| Existenztest (für Eins-zu-Viele-Beziehungen) | child[expression] |
assignments[startDate = null] |
| Logische UND-Verknüpfung | expression AND expression |
|
| Logische ODER-Verknüpfung | expression OR expression |
|
| Logische Negation | !(expression) |
Nach untergeordneten Objekten in einer Eins-zu-Eins-Beziehung filtern:
Bei Eins-zu-Eins-Beziehungen können Sie auf untergeordnete Objekte und deren Attribute in der Filterklausel genauso wie auf die Attribute anderer übergeordneter Objekte verweisen, z.B.legalEmployer.id in (1001, 1002).
Untergeordnete Objekte in Eins-zu-viele-Beziehungen filtern:
In seltenen Fällen von Eins-zu-Viele-Beziehungen, die durch den Plural Accessor-Namen angegeben sind, filtert der Existenztest in der obigen Tabelle Eltern, die mindestens ein Kind haben, das die Kriterien erfüllt. Dies bedeutet jedoch nicht, dass untergeordnete Datensätze automatisch gefiltert werden, wenn sie abgerufen werden. Wenn Sie sicherstellen möchten, dass Sie nur untergeordnete Datensätze erhalten, die den Kriterien entsprechen, müssen Sie den Filter auch auf der untergeordneten Ebene wiederholen.Beispiel: Wenn Sie nur Änderungskomponenten des physischen Typs UPDATE abrufen möchten, müssen Sie die folgenden Filter in der Objektänderungsabfrage anwenden:
{
"collection": {
"filter": "changeComponents[physicalType = 'UPDATE']"
},
"accessors": {
"changeComponents": {
"collection": {
"filter": "physicalType = 'UPDATE'"
},
...
Nach Gültigkeitsdatum filtern:
Bei datumsabhängigen Objekten erhalten Sie standardmäßig Daten, die ab dem aktuellen Datum gültig sind. Um Daten abzurufen, die ab einem bestimmten Datum gültig sind, verwenden Sie den HTTP-Abfrageparameter$effectiveDate.
Beispiel: Wenn Sie Daten abrufen möchten, die ab 2023-01-01 gültig sind, verwenden Sie die folgende URL für Ihre Abfrage:
/api/boss/data/objects/ora/hcmHrCore/employment/v1/{{viewPath}}/$query?$effectiveDate=2023-01-01
Sortierung
Definieren Sie, wie Daten sortiert werden sollen. Die Sortierung wird durch ein Array von Sortierattributen einschließlich der Sortierrichtung (asc oder desc) ausgedrückt. Beispiel:
"sortBy": [
{
"totalAmount": "desc"
},
{
"paidAmount": "asc"
}
]
Paging
Legen Sie fest, wie Daten paginiert werden sollen. Der Client kann das Paging steuern, indem er Grenz- und Offsetparameter bereitstellt. Beispiel:
"limit": 200, "offset": 400
Das Standardlimit ist 25 und das maximale Limit ist 1000.
Der Standard-Offset ist 0 und gibt den Anfang der Ergebnisse an.
Das hasMore-Attribut der obersten Ebene in der Antwort gibt an, ob weitere Ergebnisse abgerufen werden müssen.
Paginierung sollte nicht als alternative Methode zum Extrahieren von Daten verwendet werden. Bei der Abfrage dieser API gibt es keine Garantie, dass sich die Daten zwischen den Anforderungen nicht ändern. Verwenden Sie die asynchrone API für die Datenextraktion.
Beispiel
Die folgende Beispielextraktabfrage soll Arbeitsstelleninformationen zusammen mit Arbeitgeber- und Abteilungsdetails abrufen, die:
- Sind primäre Arbeitsstellen
- Sind vom Typ "Mitarbeiter"
- Gehören Sie nicht zu Arbeitgebern mit den IDs
10001und10002 - Gültig ab Extraktionsdatum
- Seit der vorherigen Ausführung aktualisiert (oder erstellt)
Anforderungsbeispiel
Beachten Sie den Parameter limit und die Attributbedingung timeUpdated mit dem Zeitstempel des vorherigen Exportlaufs.
POST /api/boss/data/objects/ora/hcmHrCore/employment/v1/workerAssignmentExtracts/$query
{
"collection": {
"limit": 10,
"filter": "primaryFlag = true and timeUpdated > '2025-05-01T00:00:00Z' and assignmentType = 'E' and !(legalEmployer.id in (10001, 10002))"
},
"fields": [ "id", "assignmentType", "assignmentStatusType", "effectiveStartDate", "effectiveEndDate", "businessTitle", "workAtHomeFlag", "assignmentNumber", "timeUpdated" ],
"accessors": {
"personDetail": {
"fields": [ "personNumber" ]
},
"globalName": {
"fields": [ "firstName", "lastName" ]
},
"department": {
"fields": [ "id", "name", "title" ]
},
"legalEmployer": {
"fields": [ "id", "name" ]
},
"workRelationship": {
"fields": [ "id" ]
}
}
}
Antwortbeispiel
200 OK
{
"items": [
{
"id": "300000795682243",
"assignmentType": "E",
"assignmentStatusType": "ACTIVE",
"effectiveStartDate": "2018-06-14",
"effectiveEndDate": "4712-12-31",
"businessTitle": "Aeronautical Engineer Level-9352",
"workAtHomeFlag": false,
"assignmentNumber": "EHDLWorker_190903_1637",
"timeUpdated": "2025-05-06T11:42:17.821Z",
"$id": "300000795682243",
"$context": {
"etag": "89"
},
"personDetail": {
"personNumber": "HDLWorker_190903_1637",
"$id": "100000329366771",
"$context": {
"etag": ""
}
},
"globalName": {
"firstName": "Raymond-Olivier",
"lastName": "Beer-Tröst",
"$id": "300000795668871",
"$context": {
"etag": ""
}
},
"department": {
"id": "300000044556980",
"name": "South - Venaria DC-GROUP/SFIELESOIT74155",
"title": null,
"$id": "300000044556980",
"$context": {
"etag": "13",
"links": {
"$self": {
"href": "https://example.com/api/boss/data/objects/ora/hcmHrCore/workStructures/v1/departments/300000044556980?$effectiveDate=2025-05-13"
}
}
}
},
"legalEmployer": {
"id": "300000046740247",
"name": "PSR_US_LE_1",
"$id": "300000046740247",
"$context": {
"etag": "15",
"links": {
"$self": {
"href": "https://example.com/api/boss/data/objects/ora/hcmHrCore/workStructures/v1/legalEmployers/300000046740247?$effectiveDate=2025-05-13"
}
}
}
},
"workRelationship": {
"id": "100000329414679",
"$id": "100000329414679",
"$context": {
"etag": "1"
}
}
},
{
"id": "300000795670049",
"assignmentType": "E",
"assignmentStatusType": "ACTIVE",
"effectiveStartDate": "2018-05-28",
"effectiveEndDate": "4712-12-31",
"businessTitle": "Civil Engineer-6864",
"workAtHomeFlag": false,
"assignmentNumber": "EHDLWorker_190903_11128",
"timeUpdated": "2025-05-06T11:42:25.787Z",
"$id": "300000795670049",
"$context": {
"etag": "89"
},
"personDetail": {
"personNumber": "HDLWorker_190903_11128",
"$id": "100000329383875",
"$context": {
"etag": ""
}
},
"globalName": {
"firstName": "Charlotte-Pénélope",
"lastName": "Beer-Tröst",
"$id": "300000795669677",
"$context": {
"etag": ""
}
},
"department": {
"id": "300000044582197",
"name": "Human Resources-GROUP/AT081000101",
"title": null,
"$id": "300000044582197",
"$context": {
"etag": "13",
"links": {
"$self": {
"href": "https://example.com/api/boss/data/objects/ora/hcmHrCore/workStructures/v1/departments/300000044582197?$effectiveDate=2025-05-13"
}
}
}
},
"legalEmployer": {
"id": "300000046740247",
"name": "PSR_US_LE_1",
"$id": "300000046740247",
"$context": {
"etag": "15",
"links": {
"$self": {
"href": "https://example.com/api/boss/data/objects/ora/hcmHrCore/workStructures/v1/legalEmployers/300000046740247?$effectiveDate=2025-05-13"
}
}
}
},
"workRelationship": {
"id": "100000329453488",
"$id": "100000329453488",
"$context": {
"etag": "1"
}
}
},
...
],
"hasMore": true
}
Aufgabe 3: Exportjobanforderungen weiterleiten
Nachdem die Abfrage definiert wurde, kann eine Exportjobanforderung mit der Job Scheduler-API weitergeleitet werden.
| URL | /api/saas-batch/jobscheduler/v1/jobRequests |
|---|---|
| HTTP-Methode | POST |
| Anforderungsvorlage |
{
"jobDefinitionName": "AsyncDataExtraction",
"serviceName": "boss",
"requestParameters": {
"boss.module": "{{moduleName}}",
"boss.resource.name": "{{viewName}}",
"boss.resource.version": "v1",
"boss.outputFormat": "json",
"boss.request.system.param.effectiveDate": "{{effectiveDate}}",
"boss.advancedQuery": "{{query}}"
}
}
|
| Antwortvorlage |
Bei erfolgreicher Weiterleitung wird der 202 Accepted
Location: {{jobRequestUrl}}
|
Paging beim Extrahieren von Daten:
Sie haben zwar Paginierungssteuerelemente verwendet, d.h. die Parameterlimit und offset. Beim Erstellen und Testen der Abfrage möchten Sie jedoch nicht, dass die Extraktionsergebnisse von ihnen eingeschränkt werden. Entfernen Sie die Verwendung der Parameter limit und offset beim Weiterleiten einer Abfrage.
Abfrage übergeben:
Die beim Weiterleiten der Extraktionsjobanforderung übergebene Abfrage muss eine JSON-Standardzeichenfolge aufweisen. Führen Sie die mit dem API-Endpunkt$query vorbereitete und getestete Abfrage aus, und führen Sie folgende Schritte aus:
- Alle doppelten Anführungszeichen (" → \") entweichen
- Alle Zeilenvorschubzeichen entfernen (\n)
- Potenzielle Reduzierung anderer Leerzeichen (z.B. Einrückungen)
Insgesamt möchten Sie z.B. von:
{
"collection": {
"limit": 100,
"filter": "totalAmount > 10000"
},
"fields": [ "id", "totalAmount" ]
}
Zweck:
{\"collection\": {\"filter\": \"totalAmount > 10000\"},\"fields\": [ \"id\", \"totalAmount\" ]}
Beispiel
Anforderungsbeispiel
POST /api/saas-batch/jobscheduler/v1/jobRequests
{
"jobDefinitionName": "AsyncDataExtraction",
"serviceName": "boss",
"requestParameters": {
"boss.module": "oraHcmHrCoreEmployment",
"boss.resource.name": "workerAssignmentExtracts",
"boss.resource.version": "v1",
"boss.outputFormat": "json",
"boss.advancedQuery": "{\"collection\": {\"filter\": \"primaryFlag = true and timeUpdated > '2025-05-01T00:00:00Z' and assignmentType = 'E' and !(legalEmployer.id in (10001, 10002))\"},\"fields\": [ \"id\", \"assignmentType\", \"assignmentStatusType\", \"effectiveStartDate\", \"effectiveEndDate\", \"businessTitle\", \"workAtHomeFlag\", \"assignmentNumber\", \"timeUpdated\" ],\"accessors\": {\"personDetail\": {\"fields\": [ \"personNumber\" ]},\"globalName\": {\"fields\": [ \"firstName\", \"lastName\" ]},\"department\": {\"fields\": [ \"id\", \"name\", \"title\" ]},\"legalEmployer\": {\"fields\": [ \"id\", \"name\" ]},\"workRelationship\": {\"fields\": [ \"id\" ]}}}"
}
}
Antwortbeispiel
202 Accepted Location: https://example.com/api/saas-batch/jobscheduler/v1/jobRequests/42075
Aufgabe 4: Jobabschluss prüfen
Bei der Prüfung auf Abschluss wird die Job Scheduler-API verwendet, um die Jobanforderungsdetails regelmäßig abzufragen, bis sie erfolgreich abgeschlossen wurden oder nicht erfolgreich waren.
| URL | /api/saas-batch/jobscheduler/v1/jobRequests/{{jobRequestId}} |
|---|---|
| HTTP-Methode | GET |
Erfolgreicher Abschluss:
Eine Jobanforderung wird als erfolgreich abgeschlossen betrachtet, wenn die folgenden Bedingungen erfüllt sind:| Attribut | Erwarteter Wert |
|---|---|
jobDetails.jobProgress.completed |
true |
jobDetails.jobProgress.status |
SUCCEEDED |
Nicht erfolgreich abgeschlossen:
Eine Jobanforderung gilt als nicht erfolgreich, wenn die folgende Bedingung erfüllt ist. In diesem Fall enthält das AttributjobDetails.jobProgress.message die Fehlermeldung.
| Attribut | Erwarteter Wert |
|---|---|
jobDetails.jobProgress.status |
FAILED |
Beispiel
Anforderungsbeispiel
GET /api/saas-batch/jobscheduler/v1/jobRequests/42075
Antwortbeispiele
Unter Antworten werden verschiedene Phasen eines weitergeleiteten Jobs angezeigt. Siehe insbesondere die Attribute jobProgress.status und jobProgress.completed.
Akzeptiert/in Queue gestellt
200 OK
{
"jobDetails": {
"jobRequestId": 42075,
"jobRequest": {
"jobDefinitionName": "AsyncDataExtraction",
"serviceName": "boss",
"systemDerivedVersion": "90",
"jobSubmitter": "TM-MFITZIMMONS",
"requestParameters": {
"boss.module": "oraHcmHrCoreEmployment",
"boss.resource.name": "workerAssignmentExtracts",
"boss.resource.version": "v1",
"boss.outputFormat": "json",
"boss.advancedQuery": "{\"collection\": {\"filter\": \"primaryFlag = true and timeUpdated > '2025-05-01T00:00:00Z' and assignmentType = 'E' and !(legalEmployer.id in (10001, 10002))\"},\"fields\": [ \"id\", \"assignmentType\", \"assignmentStatusType\", \"effectiveStartDate\", \"effectiveEndDate\", \"businessTitle\", \"workAtHomeFlag\", \"assignmentNumber\", \"timeUpdated\" ],\"accessors\": {\"personDetail\": {\"fields\": [ \"personNumber\" ]},\"globalName\": {\"fields\": [ \"firstName\", \"lastName\" ]},\"department\": {\"fields\": [ \"id\", \"name\", \"title\" ]},\"legalEmployer\": {\"fields\": [ \"id\", \"name\" ]},\"workRelationship\": {\"fields\": [ \"id\" ]}}}"
},
"jobRetryNumber": 0,
"timeoutThreshold": 14400
},
"jobStatus": "ENQUEUED",
"jobProgress": {
"status": "ACCEPTED",
"message": "Job is submitted",
"startTime": "2025-05-25T13:39:01Z",
"endTime": "2025-05-25T13:39:15Z",
"completedPercentage": "0",
"completed": false
}
},
"$context": {
"links": {
"$self": {
"href": "https://example.com/api/saas-batch/jobscheduler/v1/jobRequests/42075"
}
}
}
}
Wird ausgeführt
200 OK
{
"jobDetails": {
"jobRequestId": 42075,
"jobRequest": {
"jobDefinitionName": "AsyncDataExtraction",
"serviceName": "boss",
"systemDerivedVersion": "90",
"jobSubmitter": "TM-MFITZIMMONS",
"requestParameters": {
"boss.module": "oraHcmHrCoreEmployment",
"boss.resource.name": "workerAssignmentExtracts",
"boss.resource.version": "v1",
"boss.outputFormat": "json",
"boss.advancedQuery": "{\"collection\": {\"filter\": \"primaryFlag = true and timeUpdated > '2025-05-01T00:00:00Z' and assignmentType = 'E' and !(legalEmployer.id in (10001, 10002))\"},\"fields\": [ \"id\", \"assignmentType\", \"assignmentStatusType\", \"effectiveStartDate\", \"effectiveEndDate\", \"businessTitle\", \"workAtHomeFlag\", \"assignmentNumber\", \"timeUpdated\" ],\"accessors\": {\"personDetail\": {\"fields\": [ \"personNumber\" ]},\"globalName\": {\"fields\": [ \"firstName\", \"lastName\" ]},\"department\": {\"fields\": [ \"id\", \"name\", \"title\" ]},\"legalEmployer\": {\"fields\": [ \"id\", \"name\" ]},\"workRelationship\": {\"fields\": [ \"id\" ]}}}"
},
"jobRetryNumber": 0,
"timeoutThreshold": 14400
},
"jobStatus": "RUNNING",
"jobProgress": {
"jobRequestId": 42075,
"status": "RUNNING",
"message": "Job status is changed to RUNNING",
"startTime": "2025-05-25T13:39:27Z",
"endTime": "2025-05-25T13:40:25Z",
"completedPercentage": "50",
"completed": false
}
},
"$context": {
"links": {
"$self": {
"href": "https://example.com/api/saas-batch/jobscheduler/v1/jobRequests/42075"
}
}
}
}
200 OK
{
"jobDetails": {
"jobRequestId": 42075,
"jobRequest": {
"jobDefinitionName": "AsyncDataExtraction",
"serviceName": "boss",
"systemDerivedVersion": "90",
"jobSubmitter": "TM-MFITZIMMONS",
"requestParameters": {
"boss.module": "oraHcmHrCoreEmployment",
"boss.resource.name": "workerAssignmentExtracts",
"boss.resource.version": "v1",
"boss.outputFormat": "json",
"boss.advancedQuery": "{\"collection\": {\"filter\": \"primaryFlag = true and timeUpdated > '2025-05-01T00:00:00Z' and assignmentType = 'E' and !(legalEmployer.id in (10001, 10002))\"},\"fields\": [ \"id\", \"assignmentType\", \"assignmentStatusType\", \"effectiveStartDate\", \"effectiveEndDate\", \"businessTitle\", \"workAtHomeFlag\", \"assignmentNumber\", \"timeUpdated\" ],\"accessors\": {\"personDetail\": {\"fields\": [ \"personNumber\" ]},\"globalName\": {\"fields\": [ \"firstName\", \"lastName\" ]},\"department\": {\"fields\": [ \"id\", \"name\", \"title\" ]},\"legalEmployer\": {\"fields\": [ \"id\", \"name\" ]},\"workRelationship\": {\"fields\": [ \"id\" ]}}}"
},
"jobRetryNumber": 0,
"timeoutThreshold": 14400
},
"jobStatus": "RUNNING",
"jobProgress": {
"jobRequestId": 42075,
"status": "RUNNING",
"message": "Publishing BOSS job progress: JobProgress(jobRequestId=42075, resourcePath=oraHcmHrCoreEmployment/v1/workers, dataDocName=null, deploymentId=null, jobStatus=RUNNING, startTime=2025-05-25T13:40:18Z, endTime=2025-05-25T13:40:38Z, completedPercentage=30, completed=false, error=null)",
"startTime": "2025-05-25T13:40:40Z",
"endTime": "2025-05-25T13:40:40Z",
"completedPercentage": "30",
"completed": false
}
},
"$context": {
"links": {
"$self": {
"href": "https://example.com/api/saas-batch/jobscheduler/v1/jobRequests/42075"
}
}
}
}
Erfolgreich beendet
200 OK
{
"jobDetails": {
"jobRequestId": 42075,
"jobRequest": {
"jobDefinitionName": "AsyncDataExtraction",
"serviceName": "boss",
"systemDerivedVersion": "90",
"jobSubmitter": "TM-MFITZIMMONS",
"requestParameters": {
"boss.module": "oraHcmHrCoreEmployment",
"boss.resource.name": "workerAssignmentExtracts",
"boss.resource.version": "v1",
"boss.outputFormat": "json",
"boss.advancedQuery": "{\"collection\": {\"filter\": \"primaryFlag = true and timeUpdated > '2025-05-01T00:00:00Z' and assignmentType = 'E' and !(legalEmployer.id in (10001, 10002))\"},\"fields\": [ \"id\", \"assignmentType\", \"assignmentStatusType\", \"effectiveStartDate\", \"effectiveEndDate\", \"businessTitle\", \"workAtHomeFlag\", \"assignmentNumber\", \"timeUpdated\" ],\"accessors\": {\"personDetail\": {\"fields\": [ \"personNumber\" ]},\"globalName\": {\"fields\": [ \"firstName\", \"lastName\" ]},\"department\": {\"fields\": [ \"id\", \"name\", \"title\" ]},\"legalEmployer\": {\"fields\": [ \"id\", \"name\" ]},\"workRelationship\": {\"fields\": [ \"id\" ]}}}"
},
"jobRetryNumber": 0,
"timeoutThreshold": 14400
},
"jobStatus": "SUCCEEDED",
"jobProgress": {
"jobRequestId": 42075,
"status": "SUCCEEDED",
"message": "Job status is changed to SUCCEEDED",
"startTime": "2025-05-25T13:39:27Z",
"endTime": "2025-05-25T13:41:26Z",
"completedPercentage": "100",
"completed": true
}
},
"$context": {
"links": {
"$self": {
"href": "https://example.com/api/saas-batch/jobscheduler/v1/jobRequests/42075"
}
}
}
}
Aufgabe 5: Exportausgabedetails abrufen
Nachdem der Job erfolgreich abgeschlossen wurde, können die Informationen zur Ausgabedatei abgerufen werden. Dabei wird die Job File Manager-API für die jeweilige Instanz der Exportjobanforderung verwendet.
Die Ausgabe wird in komprimierten Blöcken gespeichert.
| URL | /api/saas-batch/jobfilemanager/v1/jobRequests/{{jobRequestId}}/outputFiles |
|---|---|
| HTTP-Methode | GET |
Dateigröße:
Die Dateigröße wird im Antwortattributitems.fileSize zurückgegeben und in Byte ausgedrückt.
Anlagenlink:
Die URL zum tatsächlichen Dateiinhalt wird im Antwortattributitems.$context.links.enclosure zurückgegeben.
Beispiel
Anforderungsbeispiel
GET /api/saas-batch/jobfilemanager/v1/jobRequests/42075/outputFiles
Antwortbeispiel
Im folgenden Beispiel wird die vollständige Ausgabe in zwei komprimierten Dateien gespeichert.
200 OK
{
"items": [
{
"fileName": "result_1_json.zip",
"fileSize": 9390419,
"timeCreated": "2025-04-22T22:04:22.667Z",
"$context": {
"links": {
"enclosure": {
"href": "https://example.com/api/saas-batch/jobfilemanager/v1/jobRequests/40071/outputFiles/result_1_json.zip/content"
},
"$self": {
"href": "https://example.com/api/saas-batch/jobfilemanager/v1/jobRequests/40071/outputFiles/result_1_json.zip"
}
}
}
},
{
"fileName": "result_2_json.zip",
"fileSize": 4462724,
"timeCreated": "2025-04-22T22:04:36.565Z",
"$context": {
"links": {
"enclosure": {
"href": "https://example.com/api/saas-batch/jobfilemanager/v1/jobRequests/40071/outputFiles/result_2_json.zip/content"
},
"$self": {
"href": "https://example.com/api/saas-batch/jobfilemanager/v1/jobRequests/40071/outputFiles/result_2_json.zip"
}
}
}
}
],
"totalItems": 2,
"$context": {
"links": {
"$self": {
"href": "https://example.com/api/saas-batch/jobfilemanager/v1/jobRequests/40071/outputFiles"
}
}
}
}
Aufgabe 6: Exportausgabe herunterladen
Die Exportausgabedateien können schließlich mit der Job File Manager-API für die jeweilige Instanz und Ausgabedatei der Exportjobanforderung heruntergeladen werden.
| URL | /api/saas-batch/jobfilemanager/v1/jobRequests/{{jobRequestId}}/outputFiles/{{fileName}}/content |
|---|---|
| HTTP-Methode | GET |
Tipp:
Bei Bedarf können Sie große Dateien effizienter herunterladen, indem Sie Multithread-Downloads mit dem Range-HTTP-Header wie unten implementieren.Range: {{startByte}}-{{endByte}}/{{fileSize}}
Beispiel
Anforderungsbeispiel
GET /api/saas-batch/jobfilemanager/v1/jobRequests/42075/outputFiles/result_42075.json/content
Antwortbeispiele
Tatsächliche Antwort ist binär komprimierter Dateiinhalt. Nach der Dekomprimierung ist es vollständig oder teilweise (im Falle der Verwendung des Range-Headers), unformatierte JSON-Payload, mit vollständigen oder teilweisen (im Falle eines File-Chunk) Ergebnissen der Extraktionsabfrage.
Beispiel für vollständige nicht komprimierte Ergebnisse
{"items": [
{"id":"300008335145001","assignmentType":"E","assignmentStatusType":"ACTIVE","effectiveStartDate":"2025-05-02","effectiveEndDate":"4712-12-31","businessTitle":"E7356262523","workAtHomeFlag":false,"assignmentNumber":"E7356262523","timeUpdated":"2025-05-01T07:53:15.722Z","$id":"300008335145001","$context":{"etag":"1"},"personDetail":{"personNumber":"7356262523","$id":"300008335144985","$context":{"etag":""}},"globalName":{"firstName":null,"lastName":"oracle","$id":"300008335144986","$context":{"etag":""}},"department":null,"legalEmployer":{"id":"300001939234024","name":"AORT Oracle United States","$id":"300001939234024","$context":{"etag":"6","links":{"$self":{"href":"/ora/hcmHrCore/workStructures/v1/$en-US/legalEmployers/300001939234024?$effectiveDate=2025-05-13"}}}},"workRelationship":{"id":"300008335144995","$id":"300008335144995","$context":{"etag":"1"}}},
{"id":"300000310085281","assignmentType":"E","assignmentStatusType":"ACTIVE","effectiveStartDate":"2018-03-04","effectiveEndDate":"4712-12-31","businessTitle":"Medical Technologist Corporate Level-35321","workAtHomeFlag":false,"assignmentNumber":"EHDLWorker_190409_467490","timeUpdated":"2025-05-07T15:29:46.59Z","$id":"300000310085281","$context":{"etag":"90"},"personDetail":{"personNumber":"HDLWorker_190409_467490","$id":"100000127293313","$context":{"etag":""}},"globalName":{"firstName":"Martin-David","lastName":"Oestrovsky-Krein","$id":"300000310075057","$context":{"etag":""}},"department":{"id":"300000041568062","name":"GFIN Global Controlling-GROUP/GFINGC74155","title":null,"$id":"300000041568062","$context":{"etag":"13","links":{"$self":{"href":"/ora/hcmHrCore/workStructures/v1/$en-US/departments/300000041568062?$effectiveDate=2025-05-13"}}}},"legalEmployer":{"id":"300000046740247","name":"PSR_US_LE_1","$id":"300000046740247","$context":{"etag":"15","links":{"$self":{"href":"/ora/hcmHrCore/workStructures/v1/$en-US/legalEmployers/300000046740247?$effectiveDate=2025-05-13"}}}},"workRelationship":{"id":"100000127362395","$id":"100000127362395","$context":{"etag":"1"}}}
]}
Weitere Lernressourcen
Sehen Sie sich weitere Übungen zu docs.oracle.com/learn an, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube-Kanal zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um ein Oracle Learning Explorer zu werden.
Die Produktdokumentation finden Sie im Oracle Help Center.
Daten aus schreibgeschütztem HCM-Datenspeicher exportieren
G38788-05
Januar 2026