# 多个对象数据插入目标系统 ## 接口信息 - **接口名称**: 多个对象数据插入目标系统 - **接口路径**: `/integration/object/insertMultipleData` - **请求方法**: POST - **接口描述**: 该方法用于将本地数据库中的多个对象数据批量插入到目标Salesforce系统。插入操作会依次处理每个对象,查询本地表中该对象的所有批次数据,然后通过SOAP API插入到目标系统。插入成功后,会将返回的ID保存到new_id字段,并更新is_insert字段。即使某个对象插入失败,也会继续插入其他对象。 ## 请求参数 ### 请求体 | 参数名 | 类型 | 必填 | 说明 | 示例 | |--------|------|------|------|------| | ids | Integer[] | 是 | 对象ID数组 | [1, 2, 3] | | targetOrgType | String | 是 | 目标ORG类型 | "sandbox" | ### 请求示例 ```json { "ids": [1, 2, 3], "targetOrgType": "sandbox" } ``` ```http POST /integration/object/insertMultipleData Content-Type: application/json { "ids": [1, 2, 3], "targetOrgType": "sandbox" } ``` ## 响应参数 ### 响应格式 ```json { "code": 200, "msg": "操作成功", "data": { "success": true, "message": "多对象数据插入完成", "totalObjects": 3, "successCount": 2, "failureCount": 1, "totalInserted": 5000, "duration": 15000, "objectResults": [ { "success": true, "message": "对象数据插入完成", "objectId": 1, "objectApi": "Account", "objectLabel": "账户", "totalBatches": 5, "successBatches": 5, "failedBatches": 0, "totalInserted": 2000, "duration": 5000, "batchResults": [] }, { "success": true, "message": "对象数据插入完成", "objectId": 2, "objectApi": "Contact", "objectLabel": "联系人", "totalBatches": 3, "successBatches": 3, "failedBatches": 0, "totalInserted": 3000, "duration": 8000, "batchResults": [] }, { "success": false, "message": "没有找到任何批次", "objectId": 3 } ] } } ``` ### 响应字段说明 | 字段名 | 类型 | 说明 | 示例 | |--------|------|------|------| | code | Integer | 响应状态码,200表示成功,其他表示失败 | 200 | | msg | String | 响应消息,成功时返回"操作成功",失败时返回错误信息 | 操作成功 | | data | Object | 响应数据,包含插入结果信息 | - | | data.success | Boolean | 操作结果 | true | | data.message | String | 操作消息 | 多对象数据插入完成 | | data.totalObjects | Integer | 总对象数 | 3 | | data.successCount | Integer | 成功对象数 | 2 | | data.failureCount | Integer | 失败对象数 | 1 | | data.totalInserted | Integer | 总插入记录数 | 5000 | | data.duration | Long | 总耗时(毫秒) | 15000 | | data.objectResults | Array | 每个对象的插入结果列表 | - | | data.objectResults[].success | Boolean | 对象插入结果 | true | | data.objectResults[].message | String | 对象插入消息 | 对象数据插入完成 | | data.objectResults[].objectId | Integer | 对象ID | 1 | | data.objectResults[].objectApi | String | 对象API | Account | | data.objectResults[].objectLabel | String | 对象标签 | 账户 | | data.objectResults[].totalBatches | Integer | 总批次数量 | 5 | | data.objectResults[].successBatches | Integer | 成功批次数量 | 5 | | data.objectResults[].failedBatches | Integer | 失败批次数量 | 0 | | data.objectResults[].totalInserted | Integer | 该对象插入记录数 | 2000 | | data.objectResults[].duration | Long | 该对象耗时(毫秒) | 5000 | | data.objectResults[].batchResults | Array | 批次结果列表 | - | ### 响应示例(失败) ```json { "code": 500, "msg": "对象ID不能为空", "data": null } ``` ```json { "code": 500, "msg": "目标ORG类型不能为空", "data": null } ``` ## 权限要求 - **权限标识**: `integration:object:insertData` - **说明**: 需要登录认证,且用户需要具有插入对象数据的权限 ## 业务规则 1. 如果对象ID数组为空,返回错误信息"对象ID不能为空" 2. 如果目标ORG类型为空,返回错误信息"目标ORG类型不能为空" 3. 即使某个对象插入失败,也会继续插入其他对象 4. 每个对象的插入结果都会记录在 objectResults 中 5. 最终的 success 字段始终为 true,表示批量操作完成,具体成功/失败数量通过 successCount 和 failureCount 体现 ## 异常处理 | 异常场景 | 响应码 | 响应消息 | |----------|---------|----------| | 对象ID数组为空 | 500 | 对象ID不能为空 | | 目标ORG类型为空 | 500 | 目标ORG类型不能为空 | | 插入多个对象数据时发生异常 | 500 | 插入多个对象数据时发生异常: [异常信息] | ## 使用场景 1. 管理员需要批量将多个对象的数据插入到目标Salesforce系统 2. 数据迁移场景,需要将多个对象的数据从本地数据库迁移到目标系统 3. 测试环境准备,需要批量插入多个对象的测试数据 ## 注意事项 1. 批量插入操作可能会耗时较长,特别是对于数据量较大的对象 2. 建议在非高峰期执行批量插入操作 3. 即使某个对象插入失败,也会继续插入其他对象 4. 可以通过 objectResults 查看每个对象的详细插入结果 5. 进度信息仅在插入进行中存在,插入完成后会被清除 ## 相关接口 - [对象数据插入目标系统](0011-update-object-data-to-target.md) - 将本地数据库中的指定对象数据插入到目标Salesforce系统 - [查询指定对象的插入进度](0012-query-insert-progress.md) - 查询指定对象的插入进度 - [查询所有正在插入的对象进度](0013-query-all-insert-progress.md) - 查询所有正在插入的对象进度列表 - [多个对象数据更新目标系统](0017-update-multiple-object-data-to-target.md) - 将本地数据库中的多个对象数据更新到目标Salesforce系统