如何使用RTC(EWM) Java API获取快照的日期?
使用Java API获取RTC(EWM)快照的日期
核心逻辑
RTC中的快照对应ISnapshot接口,它继承自IAuditable,因此可以通过快照管理类获取实例后直接调用日期相关方法;若需要查看快照的历史版本日期,逻辑和工作项类似,借助IItemManager处理审计句柄即可。
代码实现
1. 获取快照的创建/最新修改日期
先通过ISnapshotManager获取目标快照实例,再调用内置方法拿到日期:
// 获取SnapshotManager客户端实例 ISnapshotManager snapshotManager = (ISnapshotManager) teamRepository.getClientLibrary(ISnapshotManager.class); // 替换为实际的快照ID String targetSnapshotId = "your-snapshot-id"; // 获取完整快照对象(使用FULL_PROFILE加载所有属性) ISnapshot snapshot = snapshotManager.findSnapshotById(targetSnapshotId, ISnapshot.FULL_PROFILE, monitor); // 输出核心日期信息 System.out.println("快照创建日期: " + snapshot.created()); System.out.println("快照最后修改日期: " + snapshot.modified());
2. 获取快照的历史版本日期
如果需要追溯快照的所有修改历史,可复用工作项历史查询的核心逻辑,仅需替换对象类型:
IItemManager itemManager = teamRepository.itemManager(); // 快照本身实现了IAuditable,直接转换为审计句柄 List<?> historyStateHandles = itemManager.fetchAllStateHandles((IAuditableHandle) snapshot.getItemHandle(), monitor); System.out.println("快照历史版本修改记录:"); // 倒序遍历历史(从最新版本到最早版本) for (int i = historyStateHandles.size() - 1; i >= 0; i--) { IAuditableHandle auditHandle = (IAuditableHandle) historyStateHandles.get(i); // 获取历史版本的完整快照实例 ISnapshot historicalSnapshot = (ISnapshot) itemManager.fetchCompleteState(auditHandle, monitor); System.out.println("历史版本修改日期: " + historicalSnapshot.modified()); }
和工作项代码的适配差异
- 工作项通过
IWorkItemClient获取实例,快照需使用ISnapshotManager - 核心对象类型从
IWorkItem替换为ISnapshot,但两者均实现IAuditable接口,因此历史查询的核心流程完全复用
内容的提问来源于stack exchange,提问作者angelo
相关产品推荐
相关产品推荐

