简介
使用 dataLoadDataSets REST API 自动执行 HCM 数据加载程序 (HDL) 和 HCM 电子表格数据加载程序 (HSDL) 集成。
目标
在本教程里,您将:
- 了解如何将文件上载到 Oracle WebCenter Content 服务器。
- 启动 HCM 数据加载程序和 HCM 电子表格数据加载程序。
- 监视数据集和业务对象状态,检索消息和处理信息。
先决条件
要完成本教程中的步骤,您需要:
- 访问使用 HDL REST API。
- 要完成通过 REST 启动 HSDL 的步骤,您需要将您的角色分配给 ORA_PER_JOB HSDL 模板或要为其启动 HSDL 的模板。
- 使用 Base 64 编码对文件进行编码的功能。
- Postman,用于提交 REST API 调用。
- 如果您希望能够使用 REST 生成失败的行文件,则还需要启用 Oracle WebCenter 内容对错误文件的访问。
- 打开数据交换工作区中可用的配置 HCM 数据加载程序任务(如果已启用 Redwood)。
或者,从设置和维护访问此任务
- 搜索 Enable Oracle WebCenter Content Access to Error Files 参数,并将该参数设置为“No(否)”以外的任何值。
- 保存并关闭它。
按照配置 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 资源上可用的 uploadFile 定制操作和 Oracle WebCenter REST 资源。
如果要完成后续步骤,您可以下载并使用以下文件:
- 新薪资级别和 Jobs.zip (适用于 HCM 数据加载程序)。
- HCM 电子表格数据加载程序的 Jobs.csv 。
HCM 数据加载程序 uploadFile 操作
- 打开 Postman 并为此 URL 创建新的 POST 请求:
- 指定以下 JSON 正文:
- 为请求配置授权。用户必须具有 Upload data for Human Capital Management file based import 角色层次结构。
- 将 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" 的值是 New Grades and Jobs.zip 文件的 Base64 编码版本。需要提供内容和 fileName 参数。以下参数可用于 uploadFile 定制操作:
| Parameter (参数) | 说明 |
|---|---|
| content | 要加载的 Base64 编码文件。 |
| fileName | 文件名称。 |
| contentId | Oracle WebCenter Content Server 上文件的唯一标识符。未提供时自动生成。 |
响应将采用以下格式:
{
"result": {
"Status": "SUCCESS",
"ContentId": "UCMFA00078879"
}
}
Oracle WebCenter REST
Oracle WebCenter REST 资源的优点是您不必首先对文件进行编码,因此此 REST 服务将能够加载更大的源文件。但是,使用起来要复杂一些。
HCM 数据加载程序 uploadFile 操作仅将文件上载到 Oracle WebCenter 上的 HCM 数据加载程序导入账户。此 API 将允许您上载到用户有权访问的任何 Oracle WebCenter 账户。
创建请求
- 打开 Postman 并为此 URL 创建新的 POST 请求:
- 在正文中指定以下 form-data :
- 将鼠标悬停在 primaryFile 键上以显示“文本/文件”选项列表,并将值设置为文件。
- 为请求配置授权。用户必须具有 Upload data for Human Capital Management file based import 角色层次结构。
- 保存请求。您现在可以上载文件。
https://{{env}}/documents/files/data
| 关键信息 | 值 |
|---|---|
| metadataValues | {
"dDocAuthor":"{{user}}",
"dDocTitle":"<file_name>",
"dSecurityGroup":"FAFusionImportExport",
"dDocAccount":"hcm$/dataloader$/import$",
"dDocType":"Document"
}
注意: 将 <file_name> 替换为您的文件名。 |
| primaryFile |
上载文件
在此步骤中,您将使用上面创建的请求将 zip 和 csv 文件上载到 Oracle WebCenter Content 服务器。
- 在请求的正文表单数据中,单击选择文件
提示:
仅当 primaryFile 选项列表设置为 File 时, Select File(选择文件)按钮才可用。 - 使用文件浏览器查找并选择文件。
- 编辑 metadataValues 键 dDocTitle 值以指定文件的名称。

提示:
启动 HCM 数据加载程序时,数据集名称将默认为此处提供的值。 - 单击发送。
- 检查响应并记下内容 ID。启动 HDL 和 HSDL 时需要标识文件。
- 对 csv 文件重复执行 Upload File 步骤。
响应将采用以下格式:
{
"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 正文:
- 为请求配置授权。用户必须具有 Use REST Service - Data Load Data Sets 角色层次。
- 将 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 Content Server 上文件的唯一标识符。 | |
| 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 正文:
- 为请求配置授权。用户必须具有 Use REST Service - Data Load Data Sets 角色层次。
- 将 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 Content Server 上文件的唯一标识符。 | |
| 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 证书的名称。提供在 Security Console(安全控制台)的 Certificates(证书)页中指定的名称。
以下参数可用于此自定义操作:
| 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."
}
}
为业务对象生成失败的行文件
generateFailedLinesFile 定制操作也可用于子 businessObjects 资源。它具有与数据集级别自定义操作相同的参数。
- 在 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 加载该文件,而是为模板生成电子表格,提取数据集并从电子表格上载该文件。 |
"LOAD" |
| 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."
}
停止处理业务对象
stop 自定义操作也可用于业务对象级别。使用此 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 Example 教程
Operate 部分介绍了将文件加载到 Oracle WebCenter Content 服务器的其他方法。
更多学习资源
通过 docs.oracle.com/learn 浏览其他实验室,或者通过 Oracle Learning YouTube 频道访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。