You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过链接源引用获取工作项ID?代码场景求助

提取工作项父子ID的解决方案

嘿,看你已经拿到了链接集合,接下来提取工作项ID其实很直接,我给你一步步讲清楚:

从父项链接中提取工作项ID

你当前的代码是通过findLinksByTarget查询指向目标工作项的父项链接,所以每个链接的**源(getSource())**就是父工作项的引用。我们可以这样提取ID:

// 遍历链接集合中的每一条父项链接
for (ILink link : linkCollection) {
    // 获取父工作项的引用
    IReference parentRef = link.getSource();
    // 先判断是否为工作项引用,避免类型转换异常
    if (parentRef.isItemReference()) {
        // 将引用转换为工作项的ItemHandle
        IItemHandle parentItemHandle = parentRef.resolveItemHandle();
        // 提取工作项ID(UUID转字符串)
        String parentWorkItemId = parentItemHandle.getItemId().toString();
        // 这里可以根据需求打印、存储或使用ID
        System.out.println("父工作项ID: " + parentWorkItemId);
    }
}

如果要提取子项ID(补充说明)

如果你之后需要查询子项链接(比如用findLinksBySource替代findLinksByTarget),那每个链接的**目标(getTarget())**就是子工作项的引用,逻辑完全类似:

// 假设这是查询子项链接得到的linkCollection
for (ILink link : childLinkCollection) {
    IReference childRef = link.getTarget();
    if (childRef.isItemReference()) {
        IItemHandle childItemHandle = childRef.resolveItemHandle();
        String childWorkItemId = childItemHandle.getItemId().toString();
        System.out.println("子工作项ID: " + childWorkItemId);
    }
}

几个实用小提示

  • 必须加上isItemReference()判断,防止遇到非工作项类型的引用导致转换错误
  • getItemId()返回的是UUID类型,转成字符串用toString()就能满足绝大多数场景
  • 如果后续需要完整的工作项对象,可以用itemManager.fetchCompleteItem()获取,但如果只需要ID的话,上面的代码就足够高效了

内容的提问来源于stack exchange,提问作者Rinkal Garg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:52:12