簡介
使用 dataLoadDataSets REST API 自動化您的 HCM 資料載入器 (HDL) 和 HCM 試算表資料載入器 (HSDL) 整合。
目標
在本教學中,您將:
- 瞭解如何將檔案上傳至 Oracle WebCenter Content 伺服器。
- 啟動「HCM 資料載入器」與「HCM 試算表資料載入器」。
- 監視資料集與業務物件狀態、擷取訊息與處理資訊。
必要條件
若要完成本教學課程的步驟,您需要:
- 存取 HDL REST API。
- 若要完成透過 REST 起始 HSDL 的步驟,您必須將角色指派給 ORA_PER_JOB HSDL 範本,或您要起始 HSDL 的範本。
- 可以使用 Base 64 編碼來編碼檔案。
- 提交 REST API 呼叫的 Postman。
- 如果您想要使用 REST 產生失敗的行檔案,您也必須啟用 Oracle WebCenter 內容對錯誤檔案的存取。
- 如果您已啟用 Redwood,請開啟資料交換工作區中可用的設定 HCM 資料載入器任務。
或者,從設定與維護存取此任務
- 搜尋啟用 Oracle WebCenter Content 存取錯誤檔案參數,並將覆寫設為「否」以外的任何項目。
- 儲存並關閉。
依照設定 HCM 資料載入器 (HDL) 存取與瞭解 HDL 安全性選項教學課程中的 REST 存取步驟進行,確保您將存取權授予使用 REST 服務建立 HCM 資料載入器資料集權限,以完成任務 2。
請依照授予執行 HCM 試算表資料載入器教學課程中的指派角色的資料集存取步驟進行。
本教學課程中的範例使用 Postman 變數來參照環境和其他變更的值。
| 變數 | 描述 |
|---|---|
| {{env}} | 環境路徑。 |
| {{user}} | 使用者名稱。 |
| {{RequestId}} | 用來唯一識別資料集的值。 |
| {{DataSetBusObjId}} | 用來唯一識別資料集內業務物件記錄的值。 |
| {{ProcessId}} | 用來唯一識別針對資料集提交之處理的值。 |
附註:
您需要在 REST 呼叫的內文中變更的其他值會以藍色顯示。例如, <file_name> 。
工作 1:將您的資料檔上傳至 Oracle WebCenter Content Server
有多種方法可將檔案上傳至 Oracle WebCenter Content 伺服器,此工作提供兩種不同的 REST 選項:HCM 資料載入器 dataLoadDataSets 資源和 Oracle WebCenter REST 資源上可用的 uploadFile 自訂動作。
如果您想要完成後續步驟,可以下載並使用下列檔案:
- HCM 資料載入器的新職等與 Jobs.zip 。
- HCM 試算表資料載入器的 Jobs.csv 。
HCM 資料載入器 uploadFile 動作
- 開啟 Postman 並為此網址建立新的 POST 要求:
- 指定下列 JSON 主體:
- 設定要求的授權。使用者必須具有以人力資本管理檔案為基礎的匯入上傳資料角色階層。
- 將 Content-Type 標頭設為下列值:
application/vnd.oracle.adf.action+json
- 按一下傳送。
- 複查回應並記下「內容 ID」。在起始 HDL 和 HSDL 時,必須識別檔案。
- Base64 將 Jobs.csv 檔案編碼,並使用這些步驟上傳 csv 檔案。
https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/action/uploadFile
{
"content" : "UEsDBBQAAAAIAJF+Qle0P8ZqHgEAAAQFAAAJAAAAR3JhZGUuZGF0ldPNaoQwEAfw+4LvsG+wmhhKDz2ERGyg2S269LqkGovQKqRxT3n4xu6Hxj3IQECZTH4h/BmZHSmnR+pyo2rtsqbRlW3PurTKWK7srJR19Vi4dLLed5fa+u+1slc/2tHbYTv8urIfTKUL3cRx8vLfsx3bo43Mijy73pg8k2QXj8ulTwna+YUT98rfTnnBT9KX2UHKw95J1akvbbaJo/NtmIaWGgo0BNPwUsOBhmFautTSQEthGllqJNBItIF4gt1zEF3dntt6UN8+zc6a9nOw/SWWqRsUi2BoBUcBDkpJMLyC4wAHhSZYuoKnAQ7KUDCygpMAB0bKp9HirdHVMkQOmy0eowcOzTnYcPEYB9w9qGkf9tyP95vn/+isHG3+AFBLAwQUAAAACAAbSlJXX/ch5FMCAAC9CgAABwAAAEpvYi5kYXTNldFumzAYhe8r9R14g5Fut7uwwElYY0LBq7SryCNOZI1AZUy1SH74GQdDnJCY9mpSpIjkP+ezzzGAIAYhwED+qH5LuNvRXLB3mgnCRUgElRkVQbWl7d/6OyYHfTEnB1Yc9U/ASERTy3lTFIkSY6bmUrpvCsIxPbxVnPCjFjalmq9KLUWkJHvKV/SdFjKrGp7TlO58f/ZdTXrtyOMDgukC6uU9+b7/xZ+pjwzWCK1juQxXmwysYLYJ1nHWXnoZKWitpGXdFIKUwhuGJJDzn6vVBkcIylTKC/kEVJxe4WjJKn5FdUEto/8ZrGfRIj3LtivNJmGFQCAGCzmzhVMZYXTOCBlXJ7HiN7dzYj3ZBm4WSp/xkCEi/A8VrNxfBohA+gxxFC9GQ+xN3Lw2b5vZ9fZJtOXnxutR096APG/wFu+8TGMzEWiqHIBWnfeJT5aPm5ik61CtDcVYMxNebZtcdFs80C5VM4VHUx083Ly2gQtmV+mn0LadGz/M9r1ec62Cb/DhwqrY9v3QOkzdI+uwb+P27F7ncF677epexWuiya8spwpPa7Y1qd+Ffe3EbgDsCPAvzZv2Nfdh1jfj44a9BBsMMwxPcb40pGDi2D4fBK8KD9NaqEpHT1GvnAQxB+eSYE6NBAG++Sw46d2cCG9AiCJ94UXYA9sDK1ktOGnPw+gujMRtvlRvsQQG2nuZetkbzZnaSy3GjbvxSb7DopXxhEUbySRzc6so6/7WuOU66QZIwK8hiYQcVY2FMw4jmmY/BGL8J6TSC6cx+kdIR7gfTqd4fPgHUEsBAhQAFAAAAAgAkX5CV7Q/xmoeAQAABAUAAAkAJAAAAAAAAAAgAAAAAAAAAEdyYWRlLmRhdAoAIAAAAAAAAQAYANn4TRNA9dkBAAAAAAAAAAAAAAAAAAAAAFBLAQIUABQAAAAIABtKUldf9yHkUwIAAL0KAAAHACQAAAAAAAEAIAAAAEUBAABKb2IuZGF0CgAgAAAAAAABABgAjuYejz/12QEAAAAAAAAAAAAAAAAAAAAAUEsFBgAAAAACAAIAtAAAAL0DAAAAAA==",
"fileName" : "Grades and Jobs.zip"
}
附註:
"content" 的值是新等級和 Jobs.zip 檔案的 Base64 編碼版本。需有內容與 fileName 參數。uploadFile 自訂動作可使用下列參數:
| Parameter - 參數 | 描述 |
|---|---|
| content | 要載入的 Base64 編碼檔案。 |
| fileName | 檔案的名稱。 |
| contentId | Oracle WebCenter 內容伺服器上檔案的唯一 ID。未提供時自動產生。 |
回應的格式如下:
{
"result": {
"Status": "SUCCESS",
"ContentId": "UCMFA00078879"
}
}
Oracle WebCenter REST
Oracle WebCenter REST 資源的優點在於,您不需要先將檔案編碼,因此此 REST 服務將能夠載入更大的來源檔案。不過,使用過程會更加複雜。
HCM 資料載入器 uploadFile 動作只會上傳檔案至 Oracle WebCenter 上的 HCM 資料載入器匯入帳戶。此 API 可讓您上傳至使用者可存取的任何 Oracle WebCenter 帳戶。
建立要求
- 開啟 Postman 並為此網址建立新的 POST 要求:
- 在「本文」中指定下列表單資料:
- 將游標暫留在 primaryFile 鍵上以顯示「文字 / 檔案」選項清單,並將值設為檔案。
- 針對要求設定授權。使用者必須具有以人力資本管理檔案為基礎的匯入上傳資料角色階層。
- 儲存要求。您現在可以上傳檔案。
https://{{env}}/documents/files/data
| 要點 | 數值 |
|---|---|
| metadataValues | {
"dDocAuthor":"{{user}}",
"dDocTitle":"<file_name>",
"dSecurityGroup":"FAFusionImportExport",
"dDocAccount":"hcm$/dataloader$/import$",
"dDocType":"Document"
}
附註: 將 <file_name> 取代為您的檔案名稱。 |
| primaryFile |
上傳檔案
在此步驟中,您將使用上面建立的要求,將壓縮檔和 CSV 檔案上傳至 Oracle WebCenter Content 伺服器。
- 在要求的「本文」表單資料中,按一下選取檔案
秘訣:
只有當 primaryFile 選項清單設定為檔案時,才能使用選取檔案按鈕。 - 使用「檔案瀏覽器」尋找並選取您的檔案。
- 編輯 metadataValues 金鑰 dDocTitle 值以指定檔案的名稱。
秘訣:
當您起始「HCM 資料載入器」時,資料集名稱會預設為您在此處提供的值。 - 按一下傳送。
- 複查回應並記下「內容 ID」。在起始 HDL 和 HSDL 時,必須識別檔案。
- 重複 csv 檔案的上傳檔案步驟。
回應的格式如下:
{
"dWebExtension": "zip",
"dRevClassID": "213206",
"createdBy": "VISION_INTEGRATION",
"modifiedBy": "VISION_INTEGRATION",
"XFND_RANDOM": "4641327459804635554",
"dReleaseState": "N",
"dPublishState": "",
"dID": "213551",
"xComments": "",
"errorCode": "0",
"title": "Grades and Jobs.zip",
"size": "1125",
"createdTime": "10/3/23 7:27 AM",
"dDocName": "UCMFA00213206",
"mimeType": "application/zip",
"dRevRank": "0",
"dDocID": "426034",
"name": "New Grades and Jobs.zip",
"dDocAccount": "hcm$/dataloader$/import$",
"ownedBy": "VISION_INTEGRATION",
"xStorageRule": "FusionStorageRule",
"dStatus": "DONE",
"modifiedTime": "10/3/23 7:27 AM",
"XFND_SIGNATURE": "Y-Qs7rQwyYANlmfo-....",
"errorKey": "!csServiceStatusMessage_checkin,UCMFA00213206",
"dExtension": "zip",
"dWorkflowState": "",
"XFND_SCHEME_ID": "1",
"XFND_CERT_FP": "901B32887DDC81F780757624",
"dPublishType": "",
"dUser": "VISION_INTEGRATION",
"dSecurityGroup": "FAFusionImportExport",
"errorMessage": "Successfully checked in content item 'UCMFA00213206'.",
"dRevisionID": "1",
"version": "1"
}
附註:
Oracle WebCenter Content REST API 使用 dDocName 標籤來傳回內容 ID。任務 2:起始大量資料載入
使用 HCM 資料載入器上傳資料
在此步驟中,您會呼叫 createFileDataSet 自訂動作來起始 HDL,以處理先前載入至 Oracle WebCenter Content 伺服器上 hcm$/dataloader$/import$ 帳戶的檔案。
- 在 Postman 中,請為此 URL 建立新的 POST 要求:
- 指定下列 JSON 主體:
- 針對要求設定授權。使用者必須具有使用 REST 服務 - 資料載入資料集角色階層。
- 將 Content-Type 標頭設為下列值:
application/vnd.oracle.adf.action+json
- 按一下傳送。
https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/action/createFileDataSet
附註:
您需要有使用 REST 服務建立 HCM 資料載入器資料集功能安全性權限,才能提交此要求。{
"contentId" : "<content_id>"
}
秘訣:
將 <content_id> 值取代為您檔案的內容 ID。唯一的必要參數為 contentId 。createFileDataSet 自訂動作可使用下列參數:
| Parameter - 參數 | 描述 | 設定提供預設值的 HCM 資料載入器參數 |
|---|---|---|
| contentId | Oracle WebCenter 內容伺服器上檔案的唯一 ID。 | |
| fileAction | 有效值為 IMPORT_AND_LOAD 和 IMPORT_ONLY。 | 檔案作業 |
| dataSetName | 資料集的名稱。預設為檔案的文件標題。 | |
| importConcurrentThreads | 要指派給匯入處理的並行執行緒數上限。 | 匯入的最大並行執行緒數 |
| loadConcurrentThreads | 要指定給載入處理作業的並行繫線數目上限。 | 載入的最大並行執行緒數 |
| importMaxErrorPercentage | 匯入終止前發生錯誤的記錄百分比上限。 | 匯入錯誤最大百分比 |
| loadMaxErrorPercentage | 載入終止前發生錯誤的記錄百分比上限。 | 載入錯誤最大百分比 |
| fileEncryption | 用於來源檔案的加密 。
提供 NONE、PGPUNSIGNED 或 PGPSIGNED。 秘訣: 建議您一律先加密檔案,再將檔案上傳至 Oracle WebCenter。HCM 資料載入器匯入帳戶通常由各種使用者存取,所有使用者都可以下載和複查未加密的檔案內容。 |
檔案解密 |
| verificationKey | 用於來源檔案加密的驗證金鑰。fileEncryption 為 PGPSIGNED 時提供。 | |
| deleteSourceFile | 指示在將資料匯入暫存表格後,是否應刪除來源檔案。 | 刪除來源檔 |
附註:
表格中的最後一個資料欄會指定設定 HCM 資料載入器任務中的參數名稱,該任務會定義每個 REST API 參數的預設值。回應的格式如下:
{
"result": {
"Status": "SUCCESS",
"RequestId": "107468"
}
}
附註:
回應中的 RequestId 是用來使用 dataLoadDataSets 資源擷取資料集資訊。使用 HCM 試算表資料載入器上傳資料
在此步驟中,您會呼叫 createSpreadsheetDataSet 自訂動作來起始 HSDL,以處理先前載入至 Oracle WebCenter Content 伺服器上 hcm$/dataloader$/import$ 帳戶的檔案。
您必須為用來上傳檔案的 HSDL 範本塑造檔案。
- 在 Postman 中,請為此 URL 建立新的 POST 要求:
- 指定下列 JSON 主體:
- 針對要求設定授權。使用者必須具有使用 REST 服務 - 資料載入資料集角色階層。
- 將 Content-Type 標頭設為下列值:
application/vnd.oracle.adf.action+json
- 按一下傳送。 回應的格式如下:
https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/action/createSpreadsheetDataSet
{
"contentId" : "<content_id>",
"templateCode" : "ORA_PER_JOB"
}
秘訣:
將 <content_id> 值取代為您檔案的內容 ID。秘訣:
ORA_PER_JOB 範本是可供載入工作的預先設定範本。您可以使用執行試算表資料載入器任務來尋找範本代碼。唯一的必要參數為 contentId 與 templateCode 。createSpreadsheetDataSet 自訂動作可使用下列參數:
| Parameter - 參數 | 描述 | 設定提供預設值的 HCM 資料載入器參數 |
|---|---|---|
| contentId | Oracle WebCenter 內容伺服器上檔案的唯一 ID。 | |
| templateCode | 上傳檔案的試算表範本代碼。 | |
| fileAction | 有效值為 IMPORT_AND_LOAD 和 IMPORT_ONLY。
秘訣: 如果您只匯入檔案,則無法使用 REST 進行監視或載入,而是產生範本的試算表、擷取資料集,然後從試算表上傳。 |
"IMPORT_AND_LOAD" |
| dataSetName | 資料集的名稱。 | 預設為範本代碼與時間戳記。 |
| importConcurrentThreads | 要指派給匯入處理的並行執行緒數上限。 | 匯入的最大並行執行緒數 |
| loadConcurrentThreads | 要指定給載入處理作業的並行繫線數目上限。 | 載入的最大並行執行緒數 |
| importMaxErrorPercentage | 匯入終止前發生錯誤的記錄百分比上限。 | 匯入錯誤最大百分比 |
| loadMaxErrorPercentage | 載入終止前發生錯誤的記錄百分比上限。 | 載入錯誤最大百分比 |
| fileEncryption | 用於來源檔案的加密 。
提供 NONE、PGPUNSIGNED 或 PGPSIGNED。 秘訣: 建議您一律先加密檔案,再將檔案上傳至 Oracle WebCenter。HCM 資料載入器匯入帳戶通常由各種使用者存取,所有使用者都可以下載和複查未加密的檔案內容。 |
檔案解密 |
| verificationKey | 用於來源檔案加密的驗證金鑰。fileEncryption 為 PGPSIGNED 時提供。 | |
| deleteSourceFile | 指示在將資料匯入暫存表格後,是否應刪除來源檔案。 | 刪除來源檔 |
| headerIncludedFlag | 指示標頭是否包含在來源檔案中,以命名檔案中包含的屬性。 | "Y" |
| attributeDelimiter | 用來分隔檔案中值的字元。 | "," (逗號)。 |
| newLineIndicator | 用來表示新明細行的字元。 | "n",前面加上逸出字元。 |
| escapeIndicator | 用於遁離屬性值內分界字元的字元。 | "/" (反斜線), |
| dateFormat | 日期格式用於日期資料類型的屬性 | 預設格式為 YYYY/MM/DD。 |
{
"result": {
"Status": "SUCCESS",
"RequestId": "107483",
"UserInfo": "",
"Review": "https://{env}/hcmUI/oracle/apps/hcm/enterpriseSetup/hdlSpreadsheetLoader/di/GenericHdlSpreadsheet.xlsx?layoutCode=ORA_PER_JOB&dataSetName="Job#2024-08-06 11:40:56"",
"FileAction": "IMPORT_AND_LOAD",
"DataSetName": ""Job#2024-08-06 11:40:56""
}
}
附註:
使用回應中的 RequestId ,使用 dataLoadDataSets 資源來監督資料集的狀態。秘訣:
使用複查連結,從 HSDL 範本產生試算表以複查資料集。作業 3:監視資料集狀態
在此步驟中,您將使用 dataLoadDataSets 資源監督資料集狀態。此資源可用來監督 HDL 和 HSDL 資料集。
秘訣:
僅匯入的 HSDL 檔案不會在 HCM 資料載入器暫存表格中建立資料集,且無法使用 REST 進行監視。監督特定資料集
- 在 Postman 中,請為此 URL 建立新的 GET 要求:
- 設定要求的授權,然後按一下傳送。
- 對 CSV 檔案重複執行,回應會傳回「試算表」相關元素的資訊。
https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}
附註:
送出檔案時傳回的 {{RequestId}} 值會取代為 RequestId 。回應的格式如下:
{
"RequestId": 107468,
"DataSetId": 300100621962415,
"ContentId": "UCMFA00103266",
"DataSetName": "Grades and Jobs.zip",
"DataSetStatusCode": "ORA_IN_ERROR",
"DataSetStatusMeaning": "Error",
"TransferStatusCode": "SUCCESS",
"TransferStatusMeaning": "Success",
"ImportStatusCode": "SUCCESS",
"ImportStatusMeaning": "Success",
"LoadStatusCode": "ERROR",
"LoadStatusMeaning": "Error",
"SourceTypeCode": "ZIP_DAT_FILE",
"SourceTypeMeaning": "Compressed DAT file",
"IntegrationTypeCode": null,
"IntegrationTypeMeaning": null,
"ImportPercentageComplete": 100,
"LoadPercentageComplete": 100,
"ImportSuccessPercentage": 100,
"LoadSuccessPercentage": 59,
"FileLineTotalCount": 38,
"FileLineImportErrorCount": 0,
"FileLineImportSuccessCount": 38,
"ObjectTotalCount": 37,
"ObjectLoadErrorCount": 15,
"ObjectRollbackErrorCount": 0,
"ObjectSuccessCount": 22,
"ObjectUnprocessedCount": 0,
"SpreadsheetTemplateCode": null,
"SpreadsheetTemplateName": null,
"SpreadsheetTemplateUserTypeCode": null,
"SpreadsheetTemplateUserTypeMeaning": null,
"SpreadsheetMessage": null,
"FileSize": 1175,
"CreatedBy": "HCM_USER10",
"CreationDate": "2024-08-06T11:38:28+00:00",
"LastUpdatedBy": "HCM_USER10",
"LastUpdateDate": "2024-08-06T11:40:04.127+00:00",
"ProtectedFlag": false,
"Review": null,
"FailedLinesFileContentId": null,
"FailedLinesFileEncryptionType": null,
"FailedLinesFileEncryptionKey": null,
"links": [
...
]
}
識別錯誤的資料集中
使用此 URL 來擷取發生錯誤之所有資料集的摘要資訊:
https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets?q=DataSetStatusCode=ORA_IN_ERROR&fields=RequestId,DataSetName,DataSetStatusCode,ImportStatusCode,LoadStatusCode,SourceTypeCode,FileLineTotalCount,FileLineImportErrorCount,ObjectTotalCount,ObjectLoadErrorCount,LastUpdateDate&onlyData=true
回應的格式如下:
{
"items": [
{
"RequestId": 107483,
"DataSetName": "Job#2024-08-06 11:40:56",
"DataSetStatusCode": "ORA_IN_ERROR",
"ImportStatusCode": "SUCCESS",
"LoadStatusCode": "ERROR",
"SourceTypeCode": "SPREADSHEET",
"FileLineTotalCount": 6,
"FileLineImportErrorCount": 0,
"ObjectTotalCount": 6,
"ObjectLoadErrorCount": 2,
"LastUpdateDate": "2024-08-06T11:42:13.333+00:00"
},
{
"RequestId": 107468,
"DataSetName": "Grades and Jobs.zip",
"DataSetStatusCode": "ORA_IN_ERROR",
"ImportStatusCode": "SUCCESS",
"LoadStatusCode": "ERROR",
"SourceTypeCode": "ZIP_DAT_FILE",
"FileLineTotalCount": 38,
"FileLineImportErrorCount": 0,
"ObjectTotalCount": 37,
"ObjectLoadErrorCount": 15,
"LastUpdateDate": "2024-08-06T11:40:04.127+00:00"
},...
監視特定 HSDL 範本的資料集
使用此 URL 擷取以特定試算表範本載入之所有資料集的摘要資訊:
https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets?q=SpreadsheetTemplateCode=ORA_PER_JOB&fields=RequestId,DataSetName,ImportStatusCode,LoadStatusCode,SourceTypeCode,ObjectTotalCount,ObjectLoadErrorCount,Review&onlyData=true
回應的格式如下:
{
"items": [
{
"RequestId": 107483,
"DataSetName": "Job#2024-08-06 11:40:56",
"ImportStatusCode": "SUCCESS",
"LoadStatusCode": "ERROR",
"SourceTypeCode": "SPREADSHEET",
"ObjectTotalCount": 6,
"ObjectLoadErrorCount": 2,
"Review": "https://cptapniqy.fusionapps.ocs.oc-test.com:443/hcmUI/oracle/apps/hcm/enterpriseSetup/hdlSpreadsheetLoader/di/GenericHdlSpreadsheet.xlsx?layoutCode=ORA_PER_JOB&dataSetName=Job#2024-08-06 11:40:56"
}
],
"count": 1,
"hasMore": false,
"limit": 25,
"offset": 0,
"links": [
...
任務 4:監視業務物件狀態
當您的 HDL 資料集有多個業務物件檔案時,您可能會想要監視個別業務物件的狀態。
複查資料集中的所有業務物件
- 在 Postman 中,請為此 URL 建立新的 GET 要求:
- 設定要求的授權,然後按一下傳送。
https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}/child/businessObjects?onlyData=true
附註:
送出檔案時傳回的 {{RequestId}} 值會取代為 RequestId 。回應的格式如下:
{
"items": [
{
"DataSetBusObjId": 300100621962438,
"BusinessObjectDiscriminator": "Grade",
"BusinessObjectName": "Grade",
"DatFileName": "Grade.dat",
"LoadOrder": 1,
"BusinessObjectId": 300100028324439,
"TransferStatusCode": "SUCCESS",
"TransferStatusMeaning": "Success",
"ImportStatusCode": "SUCCESS",
"ImportStatusMeaning": "Success",
"LoadStatusCode": "SUCCESS",
"LoadStatusMeaning": "Success",
"ImportPercentageComplete": 100,
"LoadPercentageComplete": 100,
"ImportSuccessPercentage": 100,
"LoadSuccessPercentage": 100,
"FileLineTotalCount": 14,
"FileLineImportErrorCount": 0,
"FileLineImportSuccessCount": 14,
"ObjectTotalCount": 14,
"ObjectLoadErrorCount": 0,
"ObjectRollbackErrorCount": 0,
"ObjectSuccessCount": 14,
"ObjectUnprocessedCount": 0,
"DataSetId": 300100621962415,
"RequestId": 107468,
"CreatedBy": "HCM_USER10",
"CreationDate": "2024-08-06T11:38:29+00:00",
"LastUpdateDate": "2024-08-06T11:39:24.490+00:00",
"LastUpdatedBy": "FUSION_APPS_HCM_ESS_LOADER_APPID",
"RollbackEnabledFlag": false,
"FailedLinesFileContentId": null,
"FailedLinesFileEncryptionType": null,
"FailedLinesFileEncryptionKey": null
},
{
"DataSetBusObjId": 300100621962439,
"BusinessObjectDiscriminator": "Job",
"BusinessObjectName": "Job",
"DatFileName": "Job.dat",
"LoadOrder": 2,
"BusinessObjectId": 300100028327309,
"TransferStatusCode": "SUCCESS",
"TransferStatusMeaning": "Success",
"ImportStatusCode": "SUCCESS",
"ImportStatusMeaning": "Success",
"LoadStatusCode": "ERROR",
"LoadStatusMeaning": "Error",
"ImportPercentageComplete": 100,
"LoadPercentageComplete": 100,
"ImportSuccessPercentage": 100,
"LoadSuccessPercentage": 34,
"FileLineTotalCount": 24,
"FileLineImportErrorCount": 0,
"FileLineImportSuccessCount": 24,
"ObjectTotalCount": 23,
"ObjectLoadErrorCount": 15,
"ObjectRollbackErrorCount": 0,
"ObjectSuccessCount": 8,
"ObjectUnprocessedCount": 0,
"DataSetId": 300100621962415,
"RequestId": 107468,
"CreatedBy": "HCM_USER10",
"CreationDate": "2024-08-06T11:38:29.004+00:00",
"LastUpdateDate": "2024-08-06T11:39:58.914+00:00",
"LastUpdatedBy": "FUSION_APPS_HCM_ESS_LOADER_APPID",
"RollbackEnabledFlag": false,
"FailedLinesFileContentId": null,
"FailedLinesFileEncryptionType": null,
"FailedLinesFileEncryptionKey": null
}
],
"count": 2,
"hasMore": false,
"limit": 25,
"offset": 0,
"links": [
...
監視資料集中的特定業務物件
- 在 Postman 中,請為此 URL 建立新的 GET 要求:
- 設定要求的授權,然後按一下傳送。
https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}/child/businessObjects/{{DataSetBusObjId}}?onlyData=true&fields=DataSetBusObjId,BusinessObjectName,LoadOrder,TransferStatusCode,ImportStatusCode,LoadStatusCode,ImportSuccessPercentage,LoadSuccessPercentage,FileLineTotalCount,FileLineImportErrorCount,ObjectTotalCount,ObjectSuccessCount,ObjectLoadErrorCount
附註:
將 {{RequestId}} 取代為送出檔案時傳回的 RequestId 值,將 {{DataSetBusObjId}} 取代為您要擷取之業務物件記錄的 DataSetBusObjId 。回應的格式如下:
{
"DataSetBusObjId": 300100621962439,
"BusinessObjectName": "Job",
"LoadOrder": 2,
"TransferStatusCode": "SUCCESS",
"ImportStatusCode": "SUCCESS",
"LoadStatusCode": "ERROR",
"ImportSuccessPercentage": 100,
"LoadSuccessPercentage": 34,
"FileLineTotalCount": 24,
"FileLineImportErrorCount": 0,
"ObjectTotalCount": 23,
"ObjectSuccessCount": 8,
"ObjectLoadErrorCount": 15
}
識別發生錯誤的業務物件
- 使用此 URL 擷取載入期間發生錯誤之資料集內所有業務物件的摘要資訊:
- 設定要求的授權,然後按一下傳送。
https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}/child/businessObjects?q=LoadStatusCode=ERROR&fields=DataSetBusObjId,LoadOrder,BusinessObjectName,TransferStatusCode,ImportStatusCode,LoadStatusCode,FileLineTotalCount,FileLineImportErrorCount,ObjectTotalCount,ObjectLoadErrorCount&onlyData=true
回應的格式如下:
{
"items": [
{
"DataSetBusObjId": 300100621962439,
"LoadOrder": 2,
"BusinessObjectName": "Job",
"TransferStatusCode": "SUCCESS",
"ImportStatusCode": "SUCCESS",
"LoadStatusCode": "ERROR",
"FileLineTotalCount": 24,
"FileLineImportErrorCount": 0,
"ObjectTotalCount": 23,
"ObjectLoadErrorCount": 15
}
]...
作業 5:擷取訊息
當資料集有錯誤時,您可以擷取為其產生的訊息,以及每個訊息所依據記錄的識別碼。
擷取資料集的所有訊息
- 在 Postman 中,請為此 URL 建立新的 GET 要求:
- 設定要求的授權,然後按一下傳送。
https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}/child/messages?totalResults=true&orderBy=DatFileName,FileLine&fields=DatFileName,BusinessObjectDiscriminator,OriginatingProcessCode,FileLine,ConcatenatedUserKey,SourceSystemOwner,SourceSystemId,SourceReference001,MessageTypeCode,MessageText,MessageUserDetails&onlyData=true
附註:
送出檔案時傳回的 {{RequestId}} 值會取代為 RequestId 。回應的格式如下:
{
"items": [
{
"DatFileName": "Job.dat",
"BusinessObjectDiscriminator": "Job",
"OriginatingProcessCode": "LOAD",
"FileLine": 4,
"ConcatenatedUserKey": "HDL_SNR_SALES_CONS-COMMON",
"SourceSystemOwner": null,
"SourceSystemId": null,
"SourceReference001": "HDL_SNR_SALES_CONS",
"MessageTypeCode": "ERROR",
"MessageText": "You need to enter a valid value for the JobFamilyId attribute. The current values are HDL_SALES.",
"MessageUserDetails": null
},
{
"DatFileName": "Job.dat",
"BusinessObjectDiscriminator": "Job",
"OriginatingProcessCode": "LOAD",
"FileLine": 10,
"ConcatenatedUserKey": "HDL_MRKT_DIR-COMMON",
"SourceSystemOwner": null,
"SourceSystemId": null,
"SourceReference001": "HDL_MRKT_DIR",
"MessageTypeCode": "ERROR",
"MessageText": "You need to enter a valid value for the JobFamilyId attribute. The current values are HDL_MARKETING.",
"MessageUserDetails": null
},
{
"DatFileName": "Job.dat",
"BusinessObjectDiscriminator": "Job",
"OriginatingProcessCode": "LOAD",
"FileLine": 5,
"ConcatenatedUserKey": "HDL_SALES_MGR-COMMON",
"SourceSystemOwner": null,
"SourceSystemId": null,
"SourceReference001": "HDL_SALES_MGR",
"MessageTypeCode": "ERROR",
"MessageText": "The FT value for the FullPartTime attribute is invalid and doesn't exist in the list of values.",
"MessageUserDetails": null
},
...
作業 6:產生失敗的明細行檔案
除了直接擷取訊息資訊之外,您還可以起始產生失敗的行檔案。這些檔案包含所有發生錯誤的資料行,並可選擇性包含訊息文字。
秘訣:
您可以從 Oracle WebCenter 上的 hcm$/dataloader$/export$ 帳戶下載產生的失敗行檔案。產生資料集的失敗明細行檔案
- 在 Postman 中,請為此 URL 建立新的 POST 要求:
- 指定下列 JSON 主體:
- 將 Content-Type 標頭設為下列值:
application/vnd.oracle.adf.action+json
- 設定要求的授權,然後按一下傳送。 回應的格式如下:
- 您可以使用此 GET URL 從 dataLoadDataSets 資源擷取檔案詳細資訊:
https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}?onlyData=true&fields=FailedLinesFileContentId,FailedLinesFileEncryptionType,FailedLinesFileEncryptionKey回應的外觀如下:附註:
送出檔案時傳回的 {{RequestId}} 值會取代為 RequestId 。{ "FailedLinesFileContentId": "107468_ERRFILE", "FailedLinesFileEncryptionType": "PGPUNSIGNED", "FailedLinesFileEncryptionKey": "customer-key" }
https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}/action/generateFailedLinesFile
附註:
送出檔案時傳回的 {{RequestId}} 值會取代為 RequestId 。{
"includeMessagesFlag" : "Y",
"messageLanguage" : "US",
"fileEncryption" : "PGPUNSIGNED",
"encryptionKey" : "<customer-key>"
}
秘訣:
將 <customer-key> 取代為您用來加密檔案的 PGP 憑證名稱。提供在安全主控台的憑證頁面中指定的名稱。
此自訂動作可使用下列參數:
| Parameter - 參數 | 描述 | 預設值 | 這是必要欄位。 |
|---|---|---|---|
| includeMessagesFlag | 決定是否在檔案中包含警告與錯誤訊息。供給 Y 或 N。 | "N" | |
| messageLanguage | 識別提供訊息之語言的兩個字母代碼。 | 「美國」 | |
| fileEncryption | 用以加密產生之檔案的加密類型。 有效值為 PGPUNSIGNED、PGPSIGNED 及 NONE。 |
永遠。若未加密檔案,您必須指定 NONE。 | |
| encryptionKey | 用以加密產生之檔案的 PGP 憑證。這必須在安全主控台的 PGP 憑證清單中取得。HDL 將以公開金鑰加密您的檔案,以便使用您的私密金鑰進行解密。 | fileEncryption 為 PGPUNSIGNED 或 PGPSIGNED 時。 |
{
"result": {
"Status": "SUCCESS",
"RequestId": "107640",
"ErrorFileContentID": "107468_ERRFILE",
"UserInfo": "The file will be available on the Oracle WebCenter on completion of this process."
}
}
產生業務物件的失敗明細行檔案
businessObjects 子項資源也提供 generateFailedLinesFile 自訂動作。它的參數與資料集層級自訂動作的參數相同。
- 在 Postman 中,請為此 URL 建立新的 POST 要求:
- 指定下列 JSON 主體:
- 將 Content-Type 標頭設為下列值:
application/vnd.oracle.adf.action+json
- 設定要求的授權,然後按一下傳送。 回應的格式如下:
- 您可以使用此 GET URL 從 dataLoadDataSets 資源擷取檔案詳細資訊:
https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}/child/businessObjects/{{DataSetBusObjId}}?onlyData=true&fields=FailedLinesFileContentId,FailedLinesFileEncryptionType,FailedLinesFileEncryptionKey回應的外觀如下:您也可以從 businessObjects 資源取得最新的檔案詳細資訊,如作業 4 所述。回應將包含下列欄位:
{ "FailedLinesFileContentId": "107468_JOB_ERRFILE", "FailedLinesFileEncryptionType": "PGPUNSIGNED", "FailedLinesFileEncryptionKey": "customer-key" }
https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}/child/businessObjects/{{DataSetBusObjId}}/action/generateFailedLinesFile
附註:
將 {{RequestId}} 取代為送出檔案時所傳回的 RequestId 值,並將您要產生檔案之資料集內業務物件的 {{DataSetBusObjId}} 取代為 DataSetBusObjId。{
"includeMessagesFlag" : "Y",
"messageLanguage" : "US",
"fileEncryption" : "PGPUNSIGNED",
"encryptionKey" : "customer-key"
}
{
"result": {
"Status": "SUCCESS",
"RequestId": "107669",
"ErrorFileContentID": "107468_JOB_ERRFILE",
"UserInfo": "The file will be available on the Oracle WebCenter on completion of this process."
}
}
作業 7:擷取已提交的處理明細
您可以擷取針對資料集提交之處理與子處理的相關資訊。
擷取處理明細
一般而言,您會看到資料集內每個業務物件的移轉、匯入及載入處理記錄,以及任何業務物件與資料集後處理。如果您已提交資料集的進一步處理,例如重新提交載入、提交回復或產生失敗的明細行明細行,將會有其他處理。
- 在 Postman 中,請為此 URL 建立新的 GET 要求:
- 設定要求的授權,然後按一下傳送。
https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}/child/processes?onlyData=true&fields=ProcessId,ProcessCode,BusinessObjectName,FileActionCode,TotalCount,ErrorCount,ElapsedTime,ThreadsAllocated,ThreadsUsed
這是回應尋找包含 Worker 業務物件之資料集的方式。在此範例中,已為業務物件提交兩次「載入」。
{
"items": [
{
"ProcessId": 300100618948404,
"ProcessCode": "ORA_TRANSFER_OBJECT",
"BusinessObjectName": "Worker",
"FileActionCode": null,
"TotalCount": 540,
"ErrorCount": 0,
"ElapsedTime": "+000000000 00:00:40.347000",
"ThreadsAllocated": 8,
"ThreadsUsed": 1
},
{
"ProcessId": 300100618948432,
"ProcessCode": "ORA_IMPORT_OBJECT",
"BusinessObjectName": "Worker",
"FileActionCode": null,
"TotalCount": 540,
"ErrorCount": 0,
"ElapsedTime": "+000000000 00:00:13.475000",
"ThreadsAllocated": 8,
"ThreadsUsed": 8
},
{
"ProcessId": 300100618950528,
"ProcessCode": "ORA_LOAD_OBJECT",
"BusinessObjectName": "Worker",
"FileActionCode": "IMPORT_AND_LOAD",
"TotalCount": 54,
"ErrorCount": 54,
"ElapsedTime": "+000000000 00:00:43.242000",
"ThreadsAllocated": 8,
"ThreadsUsed": 3
},
{
"ProcessId": 300100618950575,
"ProcessCode": "ORA_HDL_POST_PROCESS",
"BusinessObjectName": "Worker",
"FileActionCode": null,
"TotalCount": 0,
"ErrorCount": 0,
"ElapsedTime": "+000000000 00:00:43.444000",
"ThreadsAllocated": null,
"ThreadsUsed": null
},
{
"ProcessId": 300100619031844,
"ProcessCode": "ORA_LOAD_OBJECT",
"BusinessObjectName": "Worker",
"FileActionCode": "ORA_LOAD",
"TotalCount": 54,
"ErrorCount": 11,
"ElapsedTime": "+000000000 00:14:56.706000",
"ThreadsAllocated": 8,
"ThreadsUsed": 3
},
{
"ProcessId": 300100619039767,
"ProcessCode": "ORA_HDL_POST_PROCESS",
"BusinessObjectName": "Worker",
"FileActionCode": null,
"TotalCount": 0,
"ErrorCount": 0,
"ElapsedTime": "+000000000 00:00:34.738000",
"ThreadsAllocated": null,
"ThreadsUsed": null
},
{
"ProcessId": 300100619039775,
"ProcessCode": "ORA_ORACLE_SEARCH",
"BusinessObjectName": "Worker",
"FileActionCode": null,
"TotalCount": 0,
"ErrorCount": 0,
"ElapsedTime": "+000000000 00:01:41.009000",
"ThreadsAllocated": null,
"ThreadsUsed": null
}
...
擷取子處理資訊
子處理是處理資源的子項資源。它會擷取指定處理所提交之子處理的明細。對於移轉、匯入、載入處理,這將會是多執行緒處理的明細。對於 ORA_HDL_POST_PROCESS,這會詳細說明提交的個別後續處理。
- 在 Postman 中,請為此 URL 建立新的 GET 要求:
- 設定要求的授權,然後按一下傳送。
https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}/child/processes/{{ProcessId}}/child/subprocesses?onlyData=true&fields=ProcessName,ProcessId,ProcessCode,Elapsedtime,ProcessStatusMeaning
附註:
將 {{RequestId}} 取代為送出檔案時所傳回的 RequestId 值,並將子處理的 {ProcessId}} 取代為 ProcessId。這是回應可能如何尋找針對 Worker 業務物件提交的 ORA_HDL_POST_PROCESS 處理。
{
"items": [
{
"ProcessName": "Refresh Manager Hierarchy",
"ProcessId": 300100619039790,
"ProcessCode": "WORKER_REFRESHMANAGERHIERARCHY",
"Elapsedtime": "+000000000 00:00:08.216000",
"ProcessStatusMeaning": "Succeeded"
},
{
"ProcessName": "Update Person Search Keywords",
"ProcessId": 300100619037746,
"ProcessCode": "WORKER_UPDATEPERSONSEARCHKEYWORDS",
"Elapsedtime": "+000000000 00:00:09.093000",
"ProcessStatusMeaning": "Succeeded"
},
{
"ProcessName": "EMEA Localization Postprocessing",
"ProcessId": 300100619037756,
"ProcessCode": "WORKER_EMEALOCALIZATIONPOSTPROCESSING",
"Elapsedtime": "+000000000 00:00:02.959000",
"ProcessStatusMeaning": "Succeeded"
},
{
"ProcessName": "Global Tax Reporting Unit Maintenance",
"ProcessId": 300100619037764,
"ProcessCode": "WORKER_GLOBALTAXREPORTINGUNITMAINTENANCE",
"Elapsedtime": "+000000000 00:00:02.702000",
"ProcessStatusMeaning": "Succeeded"
}
...
作業 8:提交現有資料集的處理
如果僅匯入您的「HCM 資料載入器」檔案,或您想要嘗試載入先前失敗的記錄,則您可以提交資料集的載入。如果您已成功載入記錄,則可以提交資料集的回復。只有支援回復動作的業務物件才會起始回復。
秘訣:
businessObjects 資源上的 RollbackEnabledFlag 元素會指出業務物件是否支援回復。提交資料集的處理
- 在 Postman 中,請為此 URL 建立新的 POST 要求:
- 指定下列 JSON 主體:
- 將 Content-Type 標頭設為下列值:
application/vnd.oracle.adf.action+json
- 設定要求的授權,然後按一下傳送。 回應的格式如下:
https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}/action/submit
附註:
送出檔案時傳回的 {{RequestId}} 值會取代為 RequestId 。{
"fileAction" : "LOAD"
}
此自訂動作可使用下列參數:
| Parameter - 參數 | 描述 | 預設值 |
|---|---|---|
| fileAction | 有效值為 LOAD 與 ROLLBACK。
秘訣: 對於 HSDL 檔案,如果您只匯入檔案,則無法以 REST 載入該檔案,而是產生範本的試算表、擷取資料集,然後從試算表上傳該檔案。 |
「載入」 |
| loadConcurrentThreads | 要指定給載入處理作業的並行繫線數目上限。 | 預設自載入的最大並行執行緒數參數。 |
{
"result": {
"Status": "SUCCESS",
"RequestId": "107683"
}
}
提交資料集內業務物件的處理
提交自訂動作也可用於具有相同參數的業務物件層級,但僅提交由 URL 指定的業務物件處理。
使用此 URL 來起始特定業務物件的處理。
https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}/child/businessObjects/{{DataSetBusObjId}}/action/submit
附註:
在您複查資料集內的業務物件時,將 {{DataSetBusObjId}} 取代為傳回的 DataSetBusObjId 值。秘訣:
您可以透過 Base64 編碼、上傳和提交 JobFamily.zip 檔案來進行測試,此檔案會建立上述錯誤的 Job.dat 檔案所參照的工作系列。成功載入職系後,如上所述,針對資料集內的資料集或「職務」業務物件起始 LOAD。
作業 9:停止進行中資料集或業務物件
您可以要求停止進行中的資料集與業務物件。
停止處理資料集
- 在 Postman 中,請為此 URL 建立新的 POST 要求:
- 將 Content-Type 標頭設為下列值:
application/vnd.oracle.adf.action+json
- 設定要求的授權,然後按一下傳送。
https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}/action/stop
沒有此動作的參數。
如果資料集目前不在進行中,您將會改為取得此回應:
{
"result": "You can't stop processing this data set because it isn't being processed. Check the current status of the data set."
}
停止處理業務物件
停止自訂動作也可用於業務物件層級。使用此 URL 要求停止特定業務物件的處理:
https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}/child/businessObjects/{{DataSetBusObjId}}/action/stop
附註:
在您複查資料集內的業務物件時,將 {{DataSetBusObjId}} 取代為傳回的 DataSetBusObjId 值。任務 10:刪除資料集
您可刪除資料集的階段表資料 (若尚未處理)。
刪除 HDL 階段表格資料
- 在 Postman 中,請為此 URL 建立新的 POST 要求:
- 將 Content-Type 標頭設為下列值:
application/vnd.oracle.adf.action+json
- 設定要求的授權,然後按一下傳送。
https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}/action/deleteDataSet
沒有此動作的參數。
刪除 HSDL 階段表資料
提交此動作將會從 HSDL 與 HDL 階段表中刪除您的資料集。
- 在 Postman 中,請為此 URL 建立新的 POST 要求:
- 將 Content-Type 標頭設為下列值:
application/vnd.oracle.adf.action+json
- 設定要求的授權,然後按一下傳送。
https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}/action/deleteSpreadsheetDataSet
沒有此動作的參數。
相關連結
- 解決方案手冊:將資料載入 Oracle Fusion Cloud Human Capital Management (HCM)
- 使用者指南:HCM 資料載入器
- HCM 資料載入器 Oracle by 範例教學課程
作業段落說明將檔案載入 Oracle WebCenter Content 伺服器的其他方式。
其他學習資源
在 docs.oracle.com/learn 上探索其他實驗室,或在 Oracle Learning YouTube 頻道上存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。