160 lines
7.8 KiB
Markdown
160 lines
7.8 KiB
Markdown
|
|
# Requirements 模板
|
|||
|
|
|
|||
|
|
## 需求信息
|
|||
|
|
|
|||
|
|
- **需求名称**: Salesforce数据及时同步至本地数据库
|
|||
|
|
- **需求类型**: 功能需求
|
|||
|
|
- **需求编号**: REQ-001
|
|||
|
|
- **创建日期**: 2026-01-09
|
|||
|
|
- **需求版本**: v1.4.0
|
|||
|
|
- **需求提出人**: 系统管理员
|
|||
|
|
- **需求状态**: 待审核
|
|||
|
|
|
|||
|
|
## 输入引用
|
|||
|
|
|
|||
|
|
引用相关的 docs 文档链接:
|
|||
|
|
|
|||
|
|
- [0000-template.md](0000-template.md) - 需求文档模板
|
|||
|
|
- [架构决策](../decisions/adr/0001-salesforce-cdc-sync.md) - Salesforce Pub/Sub API同步方案
|
|||
|
|
- [设计文档](../design/0001-salesforce-cdc-realtime-sync.md) - Salesforce Pub/Sub API实时同步设计
|
|||
|
|
|
|||
|
|
## Context Maps
|
|||
|
|
|
|||
|
|
强制列出本次需求依赖的 Canvas 文件:
|
|||
|
|
|
|||
|
|
- [Authentication.canvas](../Authentication.canvas) - 项目架构视觉化展示
|
|||
|
|
- **相关节点**: [集成任务](node_integration_task) - 处理Salesforce的定时同步任务
|
|||
|
|
- **相关节点**: [SessionManager](node_session_manager_detail) - 会话管理,提供登录服务
|
|||
|
|
- **相关节点**: [Salesforce连接类型](node_integration_connections) - 提供与Salesforce的各种连接方式
|
|||
|
|
|
|||
|
|
## 需求目标
|
|||
|
|
|
|||
|
|
明确描述此需求的目标和预期效果,包括要解决的问题、实现的功能或达成的结果。
|
|||
|
|
|
|||
|
|
本需求的目标是通过Salesforce Pub/Sub API 同步方案,实现Salesforce数据的实时同步至本地数据库,确保本地系统能够实时获取Salesforce中的最新数据,支持业务系统的高效运行和数据分析。通过建立可靠的同步机制,解决数据延迟和不一致的问题,提高系统的整体性能和用户体验。
|
|||
|
|
|
|||
|
|
## 需求描述
|
|||
|
|
|
|||
|
|
### 概述
|
|||
|
|
|
|||
|
|
简要描述需求的整体内容和范围。
|
|||
|
|
|
|||
|
|
本需求旨在实现Salesforce数据的实时同步功能,采用Salesforce Pub/Sub API 同步方案,包括配置同步策略、执行同步操作、监控同步状态、处理同步异常等功能。同步范围包括Salesforce中的标准对象和自定义对象,仅支持基于Pub/Sub API的实时同步模式,并提供同步历史记录和统计分析功能。
|
|||
|
|
|
|||
|
|
### 详细需求
|
|||
|
|
|
|||
|
|
#### 1. 同步配置管理
|
|||
|
|
|
|||
|
|
- **需求描述**: 提供同步配置管理功能,支持配置同步对象、字段映射、同步频率、同步模式等参数。在对象表中增加is_realtime_sync字段(tinyint(1)类型)用于判断是否开启实时数据同步。在对象启用Pub/Sub API时,检查本地数据库中的batch表是否已经全量拉取存量数据,若没有则提示但仍可启用Pub/Sub API。
|
|||
|
|
- **优先级**: 高
|
|||
|
|
- **验收标准**:
|
|||
|
|
- 能够成功配置同步对象和字段映射
|
|||
|
|
- 能够设置同步频率和同步模式
|
|||
|
|
- 对象表中成功添加is_realtime_sync字段(tinyint(1)类型)
|
|||
|
|
- 配置变更后能够正确生效
|
|||
|
|
- 启用Pub/Sub API时能够检查batch表并提示存量数据拉取状态
|
|||
|
|
- **依赖关系**: 依赖于配置模块和集成模块
|
|||
|
|
- **实现建议**: 基于现有的配置管理功能,扩展同步配置的支持,并在对象表中添加实时同步开关字段
|
|||
|
|
|
|||
|
|
#### 2. 实时数据同步
|
|||
|
|
|
|||
|
|
- **需求描述**: 实现Salesforce数据的实时同步功能,采用Salesforce Pub/Sub API 同步方案,仅支持基于Pub/Sub API的实时同步模式。事件处理采用异步执行方式,upsert操作参考DataiIntegrationBatchServiceImpl中的processQueryResult方法实现。利用Pub/Sub API的自动重连和消息重试机制,提高系统可靠性。暂不考虑额外的失败重试机制。
|
|||
|
|
- **优先级**: 高
|
|||
|
|
- **验收标准**:
|
|||
|
|
- 能够成功使用Pub/Sub API订阅Salesforce事件总线并捕获变更
|
|||
|
|
- 能够成功处理和同步捕获的变更数据
|
|||
|
|
- 同步数据与Salesforce中的数据一致
|
|||
|
|
- 同步操作能够在规定时间内完成
|
|||
|
|
- 事件处理采用异步执行方式
|
|||
|
|
- upsert操作正确实现
|
|||
|
|
- Pub/Sub API的自动重连机制正常工作
|
|||
|
|
- **依赖关系**: 依赖于集成模块和会话管理
|
|||
|
|
- **实现建议**: 基于现有的集成核心功能,集成Salesforce Pub/Sub API客户端库,实现数据同步逻辑,参考DataiIntegrationBatchServiceImpl中的processQueryResult方法实现upsert操作
|
|||
|
|
|
|||
|
|
#### 3. 同步监控与日志
|
|||
|
|
|
|||
|
|
- **需求描述**: 提供同步监控和日志功能,记录同步操作的执行状态、结果和异常信息。为实时数据同步创建专门的日志表,用于记录对象数据同步的详细信息。
|
|||
|
|
- **优先级**: 中
|
|||
|
|
- **验收标准**:
|
|||
|
|
- 能够实时监控同步操作的执行状态
|
|||
|
|
- 能够查看同步操作的详细日志
|
|||
|
|
- 能够统计同步操作的执行情况
|
|||
|
|
- 成功创建实时数据同步日志表
|
|||
|
|
- 日志表能够记录对象数据同步的详细信息
|
|||
|
|
- 已实现DataiIntegrationRealtimeSyncLog实体类
|
|||
|
|
- 已实现DataiIntegrationRealtimeSyncLogController控制器
|
|||
|
|
- 提供日志查询、导出和详情查看功能
|
|||
|
|
- **依赖关系**: 依赖于集成模块和日志系统
|
|||
|
|
- **实现建议**: 基于现有的日志功能,扩展同步监控的支持,并创建专门的实时数据同步日志表
|
|||
|
|
|
|||
|
|
#### 4. 异常处理
|
|||
|
|
|
|||
|
|
- **需求描述**: 实现同步异常的处理机制,确保同步操作的可靠性。暂不考虑失败重试。
|
|||
|
|
- **优先级**: 中
|
|||
|
|
- **验收标准**:
|
|||
|
|
- 能够正确捕获和处理同步异常
|
|||
|
|
- 能够提供异常信息的详细记录
|
|||
|
|
- **依赖关系**: 依赖于集成模块和异常处理机制
|
|||
|
|
- **实现建议**: 基于现有的异常处理功能,扩展同步异常的处理支持
|
|||
|
|
|
|||
|
|
## 约束
|
|||
|
|
|
|||
|
|
列出需求实现时的约束条件,例如:
|
|||
|
|
- 技术栈限制:基于现有的Spring Boot3+Vue3技术栈
|
|||
|
|
- 性能要求:同步操作不能影响系统的正常运行
|
|||
|
|
- 安全性要求:确保同步过程中的数据安全
|
|||
|
|
- 兼容性要求:支持不同版本的Salesforce API
|
|||
|
|
- 时间限制:需要在规定的时间内完成实现
|
|||
|
|
- 其他约束:需要遵守Salesforce的API使用限制
|
|||
|
|
|
|||
|
|
## Rule Set
|
|||
|
|
|
|||
|
|
"请严格参考 @Authentication.canvas 中的状态机转移逻辑,不要自行发挥。"
|
|||
|
|
|
|||
|
|
**具体规则**:
|
|||
|
|
- 必须使用 Canvas 中定义的类名和方法名
|
|||
|
|
- 必须遵循 Canvas 中定义的调用关系
|
|||
|
|
- 必须参考 Canvas 中的流程图逻辑
|
|||
|
|
|
|||
|
|
## 验收标准
|
|||
|
|
|
|||
|
|
定义验证需求是否满足的具体标准,例如:
|
|||
|
|
- 功能完整性:所有同步功能能够正常工作
|
|||
|
|
- 性能指标:同步操作的执行时间在可接受范围内
|
|||
|
|
- 安全性要求:同步过程中的数据传输和存储安全
|
|||
|
|
- 用户体验:同步操作的操作界面友好易用
|
|||
|
|
- 其他验收标准:同步数据的准确性和一致性
|
|||
|
|
|
|||
|
|
## 风险
|
|||
|
|
|
|||
|
|
识别需求可能带来的风险,例如:
|
|||
|
|
- 技术实现风险:Salesforce API的变更可能影响同步功能
|
|||
|
|
- 时间风险:实现复杂度可能导致项目延期
|
|||
|
|
- 成本风险:可能需要额外的资源投入
|
|||
|
|
- 质量风险:同步数据的准确性可能受到影响
|
|||
|
|
- 其他潜在风险:网络连接不稳定可能影响同步可靠性
|
|||
|
|
|
|||
|
|
## 需求变更记录
|
|||
|
|
|
|||
|
|
| 日期 | 变更内容 | 变更原因 | 变更人 | 审核人 | 状态 |
|
|||
|
|
|------|---------|---------|--------|--------|------|
|
|||
|
|
| 2026-01-09 | 更新需求文档,明确is_realtime_sync字段类型、batch表检查逻辑、upsert实现方式和事件处理方式 | 需求细节确认 | 系统管理员 | - | 待审核 |
|
|||
|
|
| 2026-01-09 | 更新需求文档,移除全量和增量同步,只保留CDC同步 | 需求范围调整 | 系统管理员 | - | 待审核 |
|
|||
|
|
| 2026-01-09 | 更新需求文档,添加Salesforce CDC相关内容 | 架构决策变更 | 系统管理员 | - | 待审核 |
|
|||
|
|
| 2026-01-09 | 创建需求文档 | 初始需求 | 系统管理员 | - | 待审核 |
|
|||
|
|
|
|||
|
|
## 相关人员
|
|||
|
|
|
|||
|
|
- **需求提出人**: 系统管理员 - 联系方式
|
|||
|
|
- **需求负责人**: 系统管理员 - 联系方式
|
|||
|
|
- **技术负责人**: 开发工程师 - 联系方式
|
|||
|
|
- **测试负责人**: 测试工程师 - 联系方式
|
|||
|
|
- **其他相关人员**: 运维工程师 - 联系方式
|
|||
|
|
|
|||
|
|
## 评审信息
|
|||
|
|
|
|||
|
|
- **评审日期**: -
|
|||
|
|
- **评审人员**: -
|
|||
|
|
- **评审结果**: -
|
|||
|
|
- **评审意见**: -
|
|||
|
|
- **修改建议**: -
|