소개

클라우드 HCM은 읽기 전용 데이터 저장소가 있는 차세대 플랫폼을 사용하여 HCM에서 데이터를 추출하는 기능을 제공합니다.

목표

이 자습서를 완료하면 다음 방법을 이해할 수 있습니다.

  • 근로자 추출 뷰 및 객체 계층 질의
  • 선택된 근로자 계층 데이터 검색을 위한 추출 작업 요청을 비동기적으로 제출 및 추적합니다.
  • 추출 출력 파일 다운로드

필요 조건

시작하기 전에:

  1. Oracle CoE에 문의하여 읽기 전용 데이터 저장소가 Pod에 프로비전되고 데이터가 복제되고 있는지 확인하십시오.
  2. 다음을 포함하여 필수 보안 구성 수행:
    • 데이터 보안 설정
    • OAuth 클라이언트 앱 설정

사용 사례

이 기능을 통해 다음과 같은 사용 사례를 해결할 수 있습니다.

전체 데이터 추출

근로자 데이터의 전체 추출은 일회성 또는 주기적 활동일 수 있습니다.

전체 객체 계층 또는 하위 집합만 검색할 수 있습니다.

전체 데이터 추출은 필터링 조건과 일치하는 모든 레코드를 검색하며 출력 파일이 매우 클 수 있습니다.

현재 추출 일자가 기본값인 요청 유효 일자를 기준으로 유효 일자 객체가 검색됩니다.

증분 데이터 추출

근로자 데이터의 증분 추출은 일반적으로 정기적인 스케줄링된 활동입니다.

전체 객체 계층 또는 하위 집합만 검색할 수 있습니다.

이 사용 사례에서는 첫 번째 추출 실행이 기준선인 이전 추출 실행 이후 변경된 객체만 검색하려고 합니다. 이를 위해서는 변경 감지가 적용되는 모든 레벨에서 timeUpdated 속성 필터를 적용해야 합니다.

증분 데이터 추출 질의는 추가 필터링 기준을 적용할 수 있습니다. 출력 파일은 델타만 포함하므로 일반적으로 전체 추출과 비교하여 크기가 작습니다.

속성의 현재 값만 검색됩니다.

현재 추출 일자가 기본값인 요청 유효 일자를 기준으로 유효 일자 객체가 검색됩니다.

주의:

물리적으로 삭제된 레코드는 timeUpdated로 필터링하여 반환되지 않습니다.

작업 1: 추출 뷰 선택

필요한 객체 및 속성에 따라 사용할 추출 뷰를 선택합니다. 릴리스 26A부터 사용 가능한 뷰는 추출할 수 있는 객체 및 속성과 함께 모듈별로 그룹화되어 있습니다.

유효 일자 객체의 경우 일반적으로 지정된 일자를 기준으로 유효한 데이터를 반환하는 정규 뷰와 모든 유효 일자 레코드를 반환하는 내역 뷰를 찾을 수 있습니다.

다국어:

번역 가능한 속성은 현재 영어로만 제공됩니다.

글로벌 HR - 고용

모듈 이름 oraHcmHrCoreEmployment
모듈 컨텍스트 경로 hcmHrCore/employment

뷰 이름 속성
actionExtracts ID
actionCode
startDate
endDate
timeCreated
timeUpdated
createdBy
updatedBy
actionName
설명
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
성인
maritalStatus
maritalStatusChangeDate
highestEducationLevel
timeUpdated
updatedBy
timeCreated
createdBy
personDetail.id
personDetail.personNumber
personDetail.effectiveStartDate
personDetail.effectiveEndDate
legislation.territoryCode
legislation.territoryShortName
legislativeInformationHistoryExtracts ID
effectiveStartDate
effectiveEndDate
성인
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
building
floorNumber
townOrCity
postalCode
longPostalCode
addressLine1
addressLine2
addressLine3
addressLine4
county
state
province
country.territoryCode
country.territoryShortName
personTypeExtracts ID
systemPersonType
activeFlag
defaultFlag
timeCreated
timeUpdated
createdBy
updatedBy
userPersonType
phoneExtracts ID
fromDate
toDate
phoneNumber
areaCode
countryCodeNumber
확장
유효성
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

글로벌 HR - 근무 구조

모듈 이름 oraHcmHrCoreWorkStructures
모듈 컨텍스트 경로 hcmHrCore/workStructures

뷰 이름 속성
gradeExtracts ID
createdBy
effectiveStartDate
effectiveEndDate
코드
timeCreated
timeUpdated
updatedBy
상태
이름
gradeHistoryExtracts ID
createdBy
effectiveStartDate
effectiveEndDate
코드
timeCreated
timeUpdated
updatedBy
상태
이름
jobExtracts ID
이름
effectiveStartDate
effectiveEndDate
코드
상태
createdBy
timeCreated
updatedBy
timeUpdated
jobFamilyExtracts ID
코드
이름
effectiveStartDate
effectiveEndDate
상태
timeUpdated
updatedBy
timeCreated
createdBy
jobFamilyHistoryExtracts ID
코드
이름
effectiveStartDate
effectiveEndDate
상태
timeUpdated
updatedBy
timeCreated
createdBy
jobHistoryExtracts ID
이름
effectiveStartDate
effectiveEndDate
코드
상태
createdBy
timeCreated
updatedBy
timeUpdated
locationExtracts ID
createdBy
effectiveStartDate
effectiveEndDate
코드
timeCreated
timeUpdated
updatedBy
상태
countryCode
employeeLocationFlag
shipToSiteFlag
receivingSiteFlag
billToSiteFlag
officeSiteFlag
detailCreatedBy
detailTimeCreated
detailUpdatedBy
detailTimeUpdated
timezoneCode
설명
이름
locationHistoryExtracts ID
createdBy
effectiveStartDate
effectiveEndDate
코드
timeCreated
timeUpdated
updatedBy
상태
countryCode
employeeLocationFlag
shipToSiteFlag
receivingSiteFlag
billToSiteFlag
officeSiteFlag
detailCreatedBy
detailTimeCreated
detailUpdatedBy
detailTimeUpdated
timezoneCode
설명
이름
positionExtracts ID
effectiveStartDate
effectiveEndDate
코드
상태
hiringStatus
createdBy
timeCreated
updatedBy
timeUpdated
이름
positionHistoryExtracts ID
effectiveStartDate
effectiveEndDate
코드
상태
hiringStatus
createdBy
timeCreated
updatedBy
timeUpdated
이름

HCM 공통 - 이벤트

모듈 이름 oraHcmHrCoreEvents
모듈 컨텍스트 경로 hcmHrCore/events
뷰 이름 속성
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

작업 2: 추출 Query 준비 및 테스트

각 추출 뷰에는 추출 쿼리를 작성하고 테스트할 수 있는 쿼리 API가 있습니다.

URL /api/boss/data/objects/ora/{{moduleContextPath}}/v1/{{viewName}}/$query
HTTP 메소드 POST
템플리트 요청
{
    "collection": {
        "limit": {{limit}},
        "offset": {{offset}},
        "sortBy": [ {{sortAttributes}} ],
        "filter": "{{topLevelFilter}}"
    },
    "fields": [ {{topLevelAttributes}} ],
    "accessors": {
        "{{childObject}}": {
            "collection": {
                "filter": "{{childLevelFilter}}"
            },
            "fields": [ {{childLevelAttributes}} ],
            "accessors": {
                {{nestedChildAccessors}}               
            }
        },
        ...
    }
}
응답 템플리트
200 OK

{
	"items": [
		{{items}}
	],
	"hasMore": {{hasMore}}
}

객체 및 속성

추출할 데이터, 즉 포함할 객체 및 속성을 정의합니다. 하위 객체를 포함하려면 액세서를 추가해야 하는 반면, 특정 필드를 포함하려면 fields 배열에 액세서를 나열해야 합니다. 전체 예제를 참조하십시오.

필터링

데이터 필터링 방법을 정의합니다. 다음 표현식을 사용하여 쿼리에 대한 필터를 작성할 수 있습니다.

용도 표현식
동등 테스트 field = value ename = 'KING'
부등식 테스트 field != value activeFlag != true
보다 큼 테스트
보다 작음 테스트
field > value
field < value
sal > 1999.99
hireDate < '2000-01-01'
timeUpdated> '1900-01-01T13:51:54Z'
다음보다 크거나 같음, 테스트
다음보다 작거나 같음
field >= value
field <= value< code>
sal >= 1999.99
hireDate <= '2000-01-01'
timeUpdated >= '1900-01-01T13:51:54Z'
패턴 일치 field LIKE 'pattern' job LIKE 'SALES%'
멤버십 테스트 field IN (value1, ..., valueN) deptno IN (10, 20, 40)
대소문자 비민감도 비교 field ~= value
field ~!= value
field ~> value
field ~< value
field ~>= value
field ~<= value
field ~LIKE 'pattern'
field ~IN (value1, ..., valueN)
ename ~= 'king'
존재 테스트(일대다 관계의 경우) child[expression] assignments[startDate = null]
논리 접속사 expression AND expression  
논리적 분리 expression OR expression  
논리적 부정 !(expression)  

일대일 관계에서 하위 객체로 필터링:

일대일 관계의 경우 다른 상위 객체의 속성(예: legalEmployer.id in (1001, 1002))과 마찬가지로 필터 절에서 하위 객체 및 해당 속성을 참조할 수 있습니다.

일대다 관계에서 하위 객체 필터링:

복수 접근자 이름으로 표시된 일대다 관계의 경우 드물지만 위 테이블의 존재 테스트는 기준을 충족하는 하위 항목이 하나 이상 있는 상위 항목을 필터링합니다. 그러나 하위 레코드가 검색될 경우 자동으로 필터링된다는 의미는 아닙니다. 기준과 일치하는 하위 레코드만 가져오도록 하려면 하위 레벨에서도 필터를 반복해야 합니다.

예를 들어, 물리적 유형 UPDATE의 변경 구성요소만 검색하려는 경우 객체 변경 질의에서 다음 필터를 적용해야 합니다.


{
    "collection": {
        "filter": "changeComponents[physicalType = 'UPDATE']"
    },
    "accessors": {
        "changeComponents": {
            "collection": {
                "filter": "physicalType = 'UPDATE'"
            },
...
                

유효 일자별 필터링:

유효 일자 객체의 경우 기본적으로 현재 일자를 기준으로 유효한 데이터를 가져옵니다. 특정 날짜를 기준으로 유효한 데이터를 검색하려면 $effectiveDate HTTP 질의 매개변수를 사용합니다.

예를 들어, 2023-01-01부터 유효한 데이터를 검색하려면 질의에 다음 URL을 사용합니다.

/api/boss/data/objects/ora/hcmHrCore/employment/v1/{{viewPath}}/$query?$effectiveDate=2023-01-01

정렬

데이터 정렬 방법을 정의합니다. 정렬은 정렬 방향(asc 또는 desc)을 포함한 정렬 속성 배열로 표현됩니다. 예:

"sortBy": [
    {
        "totalAmount": "desc"
    },
    {
        "paidAmount": "asc"
    }
]

페이징

데이터 페이지 매김 방법을 정의합니다. 클라이언트는 제한 및 오프셋 매개변수를 제공하여 페이징을 제어할 수 있습니다. 예:

"limit": 200,
"offset": 400

기본 제한은 25이고 최대 제한은 1000입니다.

기본 오프셋은 0이며 결과의 시작을 나타냅니다.

응답의 최상위 레벨 hasMore 속성은 인출할 결과가 더 있는지 여부를 나타냅니다.

페이지 매김은 데이터를 추출하는 다른 방법으로 사용해서는 안됩니다. 이 API를 쿼리할 때는 요청 간에 데이터가 변경되지 않는다는 보장이 없습니다. 데이터 추출을 위해 비동기 API를 사용합니다.

아래의 추출 질의 예는 법적 고용주 및 부서 세부정보와 함께 지정 정보를 검색하도록 설계되었습니다.

  • 기본 지정임
  • 사원 유형
  • ID가 1000110002인 법적 고용주에 속하지 않습니다.
  • 추출 일자를 기준으로 유효
  • 이전 실행 이후 업데이트(또는 생성)되었습니다.

요청 예

이전 추출 실행의 시간 기록과 함께 limit 매개변수 및 timeUpdated 속성 조건을 확인합니다.

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" ]
        }
    }
}
				

응답 예

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
}

태스크 3: 추출 작업 요청 제출

쿼리가 정의되면 작업 스케줄러 API를 사용하여 추출 작업 요청을 제출할 수 있습니다.

URL /api/saas-batch/jobscheduler/v1/jobRequests
HTTP 메소드 POST
템플리트 요청
{
    "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}}"
    }
}

boss.request.system.param.effectiveDate는 현재 일자와 다른 일자 기준으로 유효한 데이터를 검색하려는 경우에만 제공해야 하는 선택적 매개변수입니다.

응답 템플리트

제출이 성공하면 202 응답 코드가 Location 헤더와 함께 특정 작업 요청 인스턴스를 가리키는 URL과 함께 반환됩니다.

202 Accepted
 
Location: {{jobRequestUrl}}

데이터 추출 시 페이징:

페이지 매김 제어(예: limitoffset 매개변수)를 사용했을 수 있지만 질의를 작성하고 테스트할 때 추출 결과의 제약을 받지 않도록 해야 합니다. 질의를 제출할 때 limitoffset 매개변수 사용을 제거합니다.

질의 전달:

추출 작업 요청을 제출할 때 전달된 질의는 표준 JSON 문자열 형식이어야 합니다. $query API 엔드포인트를 사용하여 준비 및 테스트한 질의를 수행하고 다음을 수행합니다.
  • 모든 큰따옴표 이스케이프(" → \")
  • 줄바꿈 문자 제거(\n)
  • 다른 공백(예: 들여쓰기)을 잠재적으로 줄입니다.

전반적으로, 예를 들어, 다음과 같습니다.

{
    "collection": {
        "limit": 100,
        "filter": "totalAmount > 10000"
    },
    "fields": [ "id", "totalAmount" ]
}

목적:

{\"collection\": {\"filter\": \"totalAmount > 10000\"},\"fields\": [ \"id\", \"totalAmount\" ]}

요청 예

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\" ]}}}"
    }
}

응답 예

202 Accepted
 
Location: https://example.com/api/saas-batch/jobscheduler/v1/jobRequests/42075

작업 4: 작업 완료 확인

완료 확인에는 작업 스케줄러 API를 사용하여 작업 요청 세부 정보가 성공적으로 완료되거나 실패할 때까지 주기적으로 폴링하는 작업이 포함됩니다.

URL /api/saas-batch/jobscheduler/v1/jobRequests/{{jobRequestId}}
HTTP 메소드 GET

완료 성공:

다음 조건이 충족되면 작업 요청이 성공적으로 완료된 것으로 간주됩니다.
속성 예상 값
jobDetails.jobProgress.completed true
jobDetails.jobProgress.status SUCCEEDED

완료 실패:

다음 조건이 충족되면 작업 요청이 실패한 것으로 간주됩니다. 이 경우 jobDetails.jobProgress.message 속성에 오류 메시지가 포함됩니다.
속성 예상 값
jobDetails.jobProgress.status FAILED

요청 예

GET /api/saas-batch/jobscheduler/v1/jobRequests/42075

응답 예

아래 응답은 제출된 작업의 여러 단계를 보여줍니다. 특히 jobProgress.statusjobProgress.completed 속성을 참조하십시오.

수락/대기열에 넣음
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"
            }
        }
    }
}
실행 중
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"
            }
        }
    }
}
완료됨
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"
            }
        }
    }
}

작업 5: 추출 출력 세부정보 인출

작업이 성공적으로 완료되면 출력 파일 정보를 인출할 수 있습니다. 여기에는 특정 추출 작업 요청 인스턴스에 대해 작업 파일 관리자 API를 사용하는 작업이 포함됩니다.

출력은 압축된 청크로 저장됩니다.

URL /api/saas-batch/jobfilemanager/v1/jobRequests/{{jobRequestId}}/outputFiles
HTTP 메소드 GET

파일 크기:

파일 크기는 items.fileSize 응답 속성에 반환되며 바이트 단위로 표시됩니다.

외장 장치 링크:

실제 파일 내용에 대한 URL은 items.$context.links.enclosure 응답 속성에 반환됩니다.

요청 예

GET /api/saas-batch/jobfilemanager/v1/jobRequests/42075/outputFiles

응답 예

아래 예제에서 전체 출력은 두 개의 압축된 파일에 저장됩니다.

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"
            }
        }
    }
}

태스크 6: 추출 출력 다운로드

마지막으로 추출 출력 파일은 특정 추출 작업 요청 인스턴스 및 출력 파일에 대한 작업 파일 관리자 API를 사용하여 다운로드할 수 있습니다.

URL /api/saas-batch/jobfilemanager/v1/jobRequests/{{jobRequestId}}/outputFiles/{{fileName}}/content
HTTP 메소드 GET

참고:

필요한 경우 아래와 같이 범위 HTTP 헤더를 사용하여 다중 스레드 다운로드를 구현하여 대용량 파일을 보다 효율적으로 다운로드할 수 있습니다.

Range: {{startByte}}-{{endByte}}/{{fileSize}}

요청 예

GET /api/saas-batch/jobfilemanager/v1/jobRequests/42075/outputFiles/result_42075.json/content

응답 예

실제 응답은 이진 압축 파일 내용입니다. 압축이 풀리면 전체 또는 부분(Range 헤더 사용 시), 형식이 지정되지 않은 JSON 페이로드가 추출 질의의 전체 또는 부분(파일 조각의 경우) 결과와 함께 제공됩니다.

전체 압축되지 않은 결과 예제
{"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"}}}
]}

추가 학습 자원

docs.oracle.com/learn에서 다른 랩을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.