177 lines
6.0 KiB
Markdown
177 lines
6.0 KiB
Markdown
|
|
# 多个对象数据更新目标系统
|
|||
|
|
|
|||
|
|
## 接口信息
|
|||
|
|
|
|||
|
|
- **接口名称**: 多个对象数据更新目标系统
|
|||
|
|
- **接口路径**: `/integration/object/updateMultipleData`
|
|||
|
|
- **请求方法**: POST
|
|||
|
|
- **接口描述**: 该方法用于将本地数据库中的多个对象数据批量更新到目标Salesforce系统。更新操作会依次处理每个对象,查询本地表中该对象的所有批次数据,然后通过SOAP API更新到目标系统。更新时使用new_id作为目标系统的ID,更新成功后,更新is_update字段。即使某个对象更新失败,也会继续更新其他对象。
|
|||
|
|
|
|||
|
|
## 请求参数
|
|||
|
|
|
|||
|
|
### 请求体
|
|||
|
|
|
|||
|
|
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|
|||
|
|
|--------|------|------|------|------|
|
|||
|
|
| ids | Integer[] | 是 | 对象ID数组 | [1, 2, 3] |
|
|||
|
|
| targetOrgType | String | 是 | 目标ORG类型 | "sandbox" |
|
|||
|
|
|
|||
|
|
### 请求示例
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"ids": [1, 2, 3],
|
|||
|
|
"targetOrgType": "sandbox"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
```http
|
|||
|
|
POST /integration/object/updateMultipleData
|
|||
|
|
Content-Type: application/json
|
|||
|
|
|
|||
|
|
{
|
|||
|
|
"ids": [1, 2, 3],
|
|||
|
|
"targetOrgType": "sandbox"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 响应参数
|
|||
|
|
|
|||
|
|
### 响应格式
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"msg": "操作成功",
|
|||
|
|
"data": {
|
|||
|
|
"success": true,
|
|||
|
|
"message": "多对象数据更新完成",
|
|||
|
|
"totalObjects": 3,
|
|||
|
|
"successCount": 2,
|
|||
|
|
"failureCount": 1,
|
|||
|
|
"totalUpdated": 5000,
|
|||
|
|
"duration": 15000,
|
|||
|
|
"objectResults": [
|
|||
|
|
{
|
|||
|
|
"success": true,
|
|||
|
|
"message": "对象数据更新完成",
|
|||
|
|
"objectId": 1,
|
|||
|
|
"objectApi": "Account",
|
|||
|
|
"objectLabel": "账户",
|
|||
|
|
"totalBatches": 5,
|
|||
|
|
"successBatches": 5,
|
|||
|
|
"failedBatches": 0,
|
|||
|
|
"totalUpdated": 2000,
|
|||
|
|
"duration": 5000,
|
|||
|
|
"batchResults": []
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"success": true,
|
|||
|
|
"message": "对象数据更新完成",
|
|||
|
|
"objectId": 2,
|
|||
|
|
"objectApi": "Contact",
|
|||
|
|
"objectLabel": "联系人",
|
|||
|
|
"totalBatches": 3,
|
|||
|
|
"successBatches": 3,
|
|||
|
|
"failedBatches": 0,
|
|||
|
|
"totalUpdated": 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.totalUpdated | 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[].totalUpdated | 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:updateData`
|
|||
|
|
- **说明**: 需要登录认证,且用户需要具有更新对象数据的权限
|
|||
|
|
|
|||
|
|
## 业务规则
|
|||
|
|
|
|||
|
|
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系统
|
|||
|
|
- [查询指定对象的更新进度](0014-query-update-progress.md) - 查询指定对象的更新进度
|
|||
|
|
- [查询所有正在更新的对象进度](0015-query-all-update-progress.md) - 查询所有正在更新的对象进度列表
|
|||
|
|
- [多个对象数据插入目标系统](0016-insert-multiple-object-data-to-target.md) - 将本地数据库中的多个对象数据插入到目标Salesforce系统
|