datai/datai-scenes/datai-scene-salesforce/docs/requirements/2026-01-28-001-PartnerAPI源org实现.md

121 lines
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 需求文档
## 元数据
- 需求编号001
- 创建时间2026-01-28
- 创建人AI Assistant
- 状态:进行中
- 优先级:高
## 需求概述
`datai-salesforce-partner` 模块中实现 Salesforce Partner API 的完整功能,提供对 Salesforce 源 orgSource Org的数据操作能力包括 CRUD 操作、批量操作、查询功能、描述功能、认证和会话管理、高级功能等。
## 目标
1. 实现 Partner API 的所有核心功能,提供完整的 Salesforce 数据操作能力
2. 集成 `datai-salesforce-auth` 模块的会话管理功能
3. 提供 REST API 接口,支持外部系统调用
4. 默认实现源 orgSource Org类型的数据操作
## 功能需求
### 核心功能
#### 1. CRUD 操作
- **Create**: 创建新记录
- **Retrieve**: 检索单个记录
- **Update**: 更新记录
- **Delete**: 删除记录
- **Upsert**: 更新或插入记录
- **Merge**: 合并记录
#### 2. 批量操作
- **Create 批量**: 批量创建记录
- **Update 批量**: 批量更新记录
- **Delete 批量**: 批量删除记录
- **Upsert 批量**: 批量更新或插入记录
#### 3. 查询功能
- **Query**: 执行 SOQL 查询
- **QueryAll**: 查询所有记录(包括已删除的)
- **QueryMore**: 获取查询结果的下一页
- **Search**: 执行 SOSL 搜索
#### 4. 描述功能
- **DescribeGlobal**: 描述所有可用对象
- **DescribeSObject**: 描述特定对象
- **DescribeSObjects**: 描述多个对象
- **DescribeLayout**: 描述对象布局
- **DescribeTabs**: 描述标签页
- **DescribeQuickActions**: 描述快速操作
#### 5. 认证和会话
- **Login**: 用户登录(集成 SessionManager
- **Logout**: 用户登出
- **ChangeOwnPassword**: 修改自己的密码
- **SessionHeader**: 会话头信息管理
#### 6. 高级功能
- **ConvertLead**: 转换线索
- **EmptyRecycleBin**: 清空回收站
- **ProcessSubmitRequest**: 处理提交请求
- **GetUserInfo**: 获取用户信息
- **GetServerTimestamp**: 获取服务器时间戳
### 次要功能
- SOAP 头部设置QueryOptions、AssignmentRuleHeader、EmailHeader 等)
- 错误处理和异常管理
- 结果封装和返回
## 非功能需求
### 性能要求
- 暂不考虑连接池、并发控制、缓存等性能优化
- 每次调用都创建新连接
### 安全要求
- 集成 `datai-salesforce-auth` 模块的会话管理
- 使用 SessionManager 获取 Session ID 和 Server URL
- 优先使用 `datai-salesforce-common` 模块中的现有异常
### 兼容性要求
- 支持 Salesforce Partner API v65.0
- 兼容 Java 22
- 兼容 Spring Boot 框架
## 技术约束
### 必须使用的框架或库
- **partner.jar**: Salesforce Partner API 客户端Connector、PartnerConnection、SObject、QueryResult、SaveResult 等)
- **datai-salesforce-auth**: 使用 SessionManager 管理会话
- **datai-salesforce-common**: 使用现有异常类
### 必须遵循的设计模式
- Service 层模式:提供业务逻辑封装
- Controller 层模式:提供 REST API 接口
- 直接使用 partner.jar 中的现有类,不进行不必要的二次封装
### 必须继承的基类
- 无特殊基类要求
### 自定义类原则
- 优先使用 partner.jar 中的现有类
- 如果确实有需求需要使用自定义类,则新增
- 新增前需要严格判断必要性
## 成功标准
1. **功能完整性**: 所有 Partner API 核心功能都已实现并通过测试
2. **认证集成**: 成功集成 SessionManager能够获取 Session ID 和 Server URL
3. **API 接口**: 提供 REST API 接口,支持外部系统调用
4. **异常处理**: 正确处理各种异常情况,使用合适的异常类
5. **代码质量**: 代码符合项目规范,无编译错误和警告
## 相关文档
- [子需求索引](./sub/index.md) - 子需求文档索引
- [设计文档](../design/2026-01-28-001-PartnerAPI源org实现设计.md) - 待创建
- [决策记录](../decisions/adr/2026-01-28-001-ADR-PartnerAPI源org实现技术选型.md) - 待创建
- [变更日志](../changelog/2026-01-30-001-changelog.md) - 认证和会话管理变更日志
- [复盘文档](../retros/2026-01-30-001-retro.md) - 认证和会话管理复盘
- [API 文档](../api-docs/2026-01-30-001-api.md) - 认证和会话管理 API 文档
- [参考文档](../reference-code/sforce/docs/partner-module.md) - Partner API 功能说明