简介

使用 dataLoadDataSets REST API 自动执行 HCM 数据加载程序 (HDL) 和 HCM 电子表格数据加载程序 (HSDL) 集成。

目标

在本教程里,您将:

  • 了解如何将文件上载到 Oracle WebCenter Content 服务器。
  • 启动 HCM 数据加载程序和 HCM 电子表格数据加载程序。
  • 监视数据集和业务对象状态,检索消息和处理信息。

先决条件

要完成本教程中的步骤,您需要:

  1. 访问使用 HDL REST API。
  2. 按照配置 HCM 数据加载程序 (HDL) 访问和了解 HDL 安全选项教程中的 REST 访问步骤操作,确保您授予对使用 REST 服务创建 HCM 数据加载程序数据集权限的访问权限,以便完成任务 2。

  3. 要完成通过 REST 启动 HSDL 的步骤,您需要将您的角色分配给 ORA_PER_JOB HSDL 模板或要为其启动 HSDL 的模板。
  4. 按照授予访问权限以运行 HCM 电子表格数据加载程序教程中的分配角色的数据集访问权限步骤操作。

  5. 使用 Base 64 编码对文件进行编码的功能。
  6. Postman,用于提交 REST API 调用。
  7. 本教程中的示例使用 Postman 变量来引用环境和其他更改的值。

    变量 说明
    {{env}} 环境路径。
    {{user}} 用户名。
    {{RequestId}} 用于唯一标识数据集的值。
    {{DataSetBusObjId}} 用于唯一标识数据集中的业务对象记录的值。
    {{ProcessId}} 用于唯一标识为数据集提交的流程的值。

    注意:

    您需要在 REST 调用正文中更改的其他值以蓝色显示。例如, <file_name>
  8. 如果您希望能够使用 REST 生成失败的行文件,则还需要启用 Oracle WebCenter 内容对错误文件的访问。
    • 在“设置和维护”中,找到 HCM 数据加载程序功能区,然后单击配置 HCM 数据加载程序
    • 搜索 Enable Oracle WebCenter Content Access to Error Files 参数,并将该参数设置为“No(否)”以外的任何值。
    • 搜索启用 Oracle WebCenter
    • 保存并关闭它。


任务 1:将数据文件上载到 Oracle WebCenter Content Server

有多种方法可以将文件上载到 Oracle WebCenter Content 服务器,此任务提供两个不同的 REST 选项:HCM 数据加载程序 dataLoadDataSets 资源上可用的 uploadFile 定制操作和 Oracle WebCenter REST 资源。

如果要完成后续步骤,您可以下载并使用以下文件:


HCM 数据加载程序 uploadFile 操作

  1. 打开 Postman 并为此 URL 创建新的 POST 请求:
  2. https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/action/uploadFile
  3. 指定以下 JSON 正文:
  4. {
    "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 上文件的唯一标识符。未提供时自动生成。

  5. 为请求配置授权。用户必须具有 Upload data for Human Capital Management file based import 角色层次结构。
  6. Content-Type 标头设置为值:
    application/vnd.oracle.adf.action+json
  7. 单击发送
  8. 响应将采用以下格式:

    {
        "result": {
            "Status": "SUCCESS",
            "ContentId": "UCMFA00078879"
        }
    }
  9. 检查响应并记下内容 ID。启动 HDL 和 HSDL 时需要标识文件。
  10. Base64 对 Jobs.csv 文件进行编码并使用这些步骤上载 csv 文件。

Oracle WebCenter REST

Oracle WebCenter REST 资源的优点是您不必首先对文件进行编码,因此此 REST 服务将能够加载更大的源文件。但是,使用起来要复杂一些。

HCM 数据加载程序 uploadFile 操作仅将文件上载到 Oracle WebCenter 上的 HCM 数据加载程序导入账户。此 API 将允许您上载到用户有权访问的任何 Oracle WebCenter 账户。

创建请求

  1. 打开 Postman 并为此 URL 创建新的 POST 请求:
  2. https://{{env}}/documents/files/data
  3. 在正文中指定以下 form-data
  4. 关键信息
    metadataValues
    {
    "dDocAuthor":"{{user}}",
    "dDocTitle":"<file_name>",
    "dSecurityGroup":"FAFusionImportExport",
    "dDocAccount":"hcm$/dataloader$/import$",
    "dDocType":"Document"
    }

    注意:

    <file_name> 替换为您的文件名。
    primaryFile

  5. 将鼠标悬停在 primaryFile 键上以显示“文本/文件”选项列表,并将值设置为文件
    将鼠标悬停在 primaryFile 条目上可查看“文本/文件”选项列表。

  6. 为请求配置授权。用户必须具有 Upload data for Human Capital Management file based import 角色层次结构。
  7. 保存请求。您现在可以上载文件。

上载文件

在此步骤中,您将使用上面创建的请求将 zip 和 csv 文件上载到 Oracle WebCenter Content 服务器。

  1. 在请求的正文表单数据中,单击选择文件
    将鼠标悬停在 primaryFile 条目上可查看“文本/文件”选项列表。

    提示:

    仅当 primaryFile 选项列表设置为 File 时, Select File(选择文件)按钮才可用。
  2. 使用文件浏览器查找并选择文件。
  3. 将鼠标悬停在 primaryFile 条目上可查看“文本/文件”选项列表。

  4. 编辑 metadataValuesdDocTitle 值以指定文件的名称。
    将鼠标悬停在 primaryFile 条目上可查看“文本/文件”选项列表。

    提示:

    启动 HCM 数据加载程序时,数据集名称将默认为此处提供的值。
  5. 单击发送
  6. 响应将采用以下格式:

    {
        "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"
    }
  7. 检查响应并记下内容 ID。启动 HDL 和 HSDL 时需要标识文件。
  8. 注意:

    Oracle WebCenter Content REST API 使用 dDocName 标签返回内容 ID。
  9. 对 csv 文件重复执行 Upload File 步骤。


任务 2:启动批量数据加载

使用 HCM 数据加载程序上载数据

在此步骤中,您将调用 createFileDataSet 定制操作来启动 HDL 以处理以前加载到 Oracle WebCenter Content 服务器上的 hcm$/dataloader$/import$ 帐户的文件。

  1. 在 Postman 中为此 URL 创建新的 POST 请求:
  2. https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/action/createFileDataSet

    注意:

    您将需要使用 REST 服务创建 HCM 数据加载程序数据集功能安全权限才能提交此请求。
  3. 指定以下 JSON 正文:
  4. {
        "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 参数的默认值。
  5. 为请求配置授权。用户必须具有 Use REST Service - Data Load Data Sets 角色层次。
  6. Content-Type 标头设置为值:
    application/vnd.oracle.adf.action+json
  7. 单击发送
  8. 响应将采用以下格式:

    {
        "result": {
            "Status": "SUCCESS",
            "RequestId": "107468"
        }
    }

    注意:

    响应中的 RequestId 用于使用 dataLoadDataSets 资源检索数据集信息。


使用 HCM 电子表格数据加载程序上载数据

在此步骤中,您将调用 createSpreadsheetDataSet 定制操作来启动 HSDL,以处理以前加载到 Oracle WebCenter Content 服务器上的 hcm$/dataloader$/import$ 帐户的文件。

必须为您用于上载文件的 HSDL 模板配置文件。

  1. 在 Postman 中为此 URL 创建新的 POST 请求:
  2. https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/action/createSpreadsheetDataSet
  3. 指定以下 JSON 正文:
  4. {
        "contentId" : "<content_id>",
        "templateCode" : "ORA_PER_JOB"
    }

    提示:

    <content_id> 值替换为文件的内容 ID。

    提示:

    ORA_PER_JOB 模板是可用于加载作业的预配置模板。您可以使用运行电子表格数据加载程序任务查找模板代码。

    唯一的必需参数是 contentIdtemplateCode 。以下参数可用于 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。

  5. 为请求配置授权。用户必须具有 Use REST Service - Data Load Data Sets 角色层次。
  6. Content-Type 标头设置为值:
    application/vnd.oracle.adf.action+json
  7. 单击发送
  8. 响应将采用以下格式:
    {
        "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 监视。

监视特定数据集

  1. 在 Postman 中为此 URL 创建新的 GET 请求:
  2. https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}

    注意:

    {{RequestId}} 替换为提交文件时返回的 RequestId 值。
  3. 配置请求的授权,然后单击发送
  4. 响应将采用以下格式:

    {
        "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": [
        ...
        ]
    }
  5. 对 csv 文件重复,响应将返回电子表格相关元素的信息。

识别出错的数据集

使用此 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 数据集具有多个业务对象文件时,您可能希望监视各个业务对象的状态。

复核数据集中的所有业务对象

  1. 在 Postman 中为此 URL 创建新的 GET 请求:
  2. https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}/child/businessObjects?onlyData=true

    注意:

    {{RequestId}} 替换为提交文件时返回的 RequestId 值。
  3. 为请求配置授权,然后单击发送
  4. 响应将采用以下格式:

    {
        "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": [
                ...


监视数据集中的特定业务对象

  1. 在 Postman 中为此 URL 创建新的 GET 请求:
  2. 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
  3. 为请求配置授权,然后单击发送
  4. 响应将采用以下格式:

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


标识出错的业务对象

  1. 使用此 URL 检索加载期间出错的数据集中所有业务对象的汇总信息:
  2. 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
  3. 为请求配置授权,然后单击发送
  4. 响应将采用以下格式:

    {
        "items": [
            {
                "DataSetBusObjId": 300100621962439,
                "LoadOrder": 2,
                "BusinessObjectName": "Job",
                "TransferStatusCode": "SUCCESS",
                "ImportStatusCode": "SUCCESS",
                "LoadStatusCode": "ERROR",
                "FileLineTotalCount": 24,
                "FileLineImportErrorCount": 0,
                "ObjectTotalCount": 23,
                "ObjectLoadErrorCount": 15
            }
        ]...


任务 5:检索消息

当数据集有错误时,您可以检索为其生成的消息以及每个消息所针对的记录标识符。

检索数据集的所有消息

  1. 在 Postman 中为此 URL 创建新的 GET 请求:
  2. 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 值。
  3. 配置请求的授权,然后单击发送
  4. 响应将采用以下格式:

    {
        "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$ 帐户下载生成的失败行文件。

为数据集生成失败的行文件

  1. 在 Postman 中为此 URL 创建新的 POST 请求:
  2. https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}/action/generateFailedLinesFile

    注意:

    {{RequestId}} 替换为提交文件时返回的 RequestId 值。
  3. 指定以下 JSON 正文:
  4. {
      "includeMessagesFlag" : "Y",
      "messageLanguage" : "US",
      "fileEncryption" : "PGPUNSIGNED",
      "encryptionKey" : "<customer-key>"
    }

    提示:

    <customer-key> 替换为您用于加密文件的 PGP 证书的名称。提供在 Security Console(安全控制台)Certificates(证书)页中指定的名称。
    后面是 sample-arch-image.png 的说明

    以下参数可用于此自定义操作:

    Parameter (参数) 说明 默认值 必需
    includeMessagesFlag 确定该文件中是否包含警告和错误消息。供应 Y 或 N。 "N"
    messageLanguage 用于标识提供消息的语言的双字母代码。 “美国”
    fileEncryption 用于加密生成的文件的加密类型。

    有效值为 PGPUNSIGNED、PGPSIGNED 和 NONE。

    总是。不加密文件时,必须指定 NONE。
    encryptionKey 用于加密生成的文件的 PGP 证书。这必须在安全控制台的 PGP 证书列表中提供。HDL 将使用公钥加密您的文件,以便您使用私钥解密。 当 fileEncryption 为 PGPUNSIGNED 或 PGPSIGNED 时。

  5. Content-Type 标头设置为值:
    application/vnd.oracle.adf.action+json
  6. 配置请求的授权,然后单击发送
  7. 响应将采用以下格式:
    {
        "result": {
            "Status": "SUCCESS",
            "RequestId": "107640",
            "ErrorFileContentID": "107468_ERRFILE",
            "UserInfo": "The file will be available on the Oracle WebCenter on completion of this process."
        }
    }

  8. 使用此 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"
    }

为业务对象生成失败的行文件

generateFailedLinesFile 定制操作也可用于子 businessObjects 资源。它具有与数据集级别自定义操作相同的参数。

  1. 在 Postman 中为此 URL 创建新的 POST 请求:
  2. https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}/child/businessObjects/{{DataSetBusObjId}}/action/generateFailedLinesFile

    注意:

    {{RequestId}} 替换为提交文件时返回的 RequestId 值,将 {{DataSetBusObjId}} 替换为要为其生成文件的数据集中业务对象的 DataSetBusObjId。
  3. 指定以下 JSON 正文:
  4. {
      "includeMessagesFlag" : "Y",
      "messageLanguage" : "US",
      "fileEncryption" : "PGPUNSIGNED",
      "encryptionKey" : "customer-key"
    }
  5. Content-Type 标头设置为值:
    application/vnd.oracle.adf.action+json
  6. 配置请求的授权,然后单击发送
  7. 响应将采用以下格式:
    {
        "result": {
            "Status": "SUCCESS",
            "RequestId": "107669",
            "ErrorFileContentID": "107468_JOB_ERRFILE",
            "UserInfo": "The file will be available on the Oracle WebCenter on completion of this process."
        }
    }
  8. 使用此 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"
    }


任务 7:检索已提交的流程详细信息

可以检索有关为数据集提交的流程和子流程的信息。

检索流程详细信息

通常,您会看到数据集中每个业务对象的传输、导入和加载流程以及任何业务对象和数据集发布流程的记录。如果您已提交数据集的进一步处理,例如重新提交加载、提交回滚或生成失败的行行,将会有其他流程。

  1. 在 Postman 中为此 URL 创建新的 GET 请求:
  2. https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}/child/processes?onlyData=true&fields=ProcessId,ProcessCode,BusinessObjectName,FileActionCode,TotalCount,ErrorCount,ElapsedTime,ThreadsAllocated,ThreadsUsed
  3. 配置请求的授权,然后单击发送
  4. 这就是响应查找包含 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,这将详细说明提交的各个发布流程。

  1. 在 Postman 中为此 URL 创建新的 GET 请求:
  2. 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。
  3. 配置请求的授权,然后单击发送
  4. 这就是响应查找为 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 元素指示业务对象是否支持回退。

提交数据集的处理

  1. 在 Postman 中为此 URL 创建新的 POST 请求:
  2. https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}/action/submit

    注意:

    {{RequestId}} 替换为提交文件时返回的 RequestId 值。
  3. 指定以下 JSON 正文:
  4. {
    "fileAction" : "LOAD"
    }

    以下参数可用于此自定义操作:

    Parameter (参数) 说明 默认值
    fileAction 有效值为 LOAD 和 ROLLBACK。

    提示:

    对于 HSDL 文件,如果您仅导入该文件,则无法使用 REST 加载该文件,而是为模板生成电子表格,提取数据集并从电子表格上载该文件。
    "LOAD"
    loadConcurrentThreads 要分配给加载进程的最大并发线程数。 默认自加载的最大并发线程数参数。

  5. Content-Type 标头设置为值:
    application/vnd.oracle.adf.action+json
  6. 配置请求的授权,然后单击发送
  7. 响应将采用以下格式:
    {
        "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:停止正在处理的数据集或业务对象

您可以请求停止处理中的数据集和业务对象。

停止处理数据集

  1. 在 Postman 中为此 URL 创建新的 POST 请求:
  2. https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}/action/stop

    没有用于此操作的参数。

  3. Content-Type 标头设置为值:
    application/vnd.oracle.adf.action+json
  4. 配置请求的授权,然后单击发送
  5. 如果数据集当前未在进行中,您将得到以下响应:

    {
        "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 阶段表数据

  1. 在 Postman 中为此 URL 创建新的 POST 请求:
  2. https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}/action/deleteDataSet

    没有用于此操作的参数。

  3. Content-Type 标头设置为值:
    application/vnd.oracle.adf.action+json
  4. 配置请求的授权,然后单击发送

删除 HSDL 阶段表数据

提交此操作将从 HSDL 和 HDL 中转表中删除数据集。

  1. 在 Postman 中为此 URL 创建新的 POST 请求:
  2. https://{{env}}/hcmRestApi/resources/11.13.18.05/dataLoadDataSets/{{RequestId}}/action/deleteSpreadsheetDataSet

    没有用于此操作的参数。

  3. Content-Type 标头设置为值:
    application/vnd.oracle.adf.action+json
  4. 配置请求的授权,然后单击发送


更多学习资源

通过 docs.oracle.com/learn 浏览其他实验室,或者通过 Oracle Learning YouTube 频道访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心