【问题标题】:Using the Rally API to re-rank multiple stories使用 Rally API 重新排列多个故事
【发布时间】:2012-03-07 03:50:15
【问题描述】:

我一直在考虑使用 Rally API 创建一个应用程序,以便在拖放工作区中根据特定标准(应 / 帮助我们的几个产品所有者的请求)执行一些简单的自动排名故事。

我通过调整故事序列的“排名”属性来做到这一点(我确保将排名值保持在与自动重新排序之前相同的总体最小/最大范围内)。我调用了 API 以单独(快速连续地)更新每个故事的排名。

测试应用程序时,我发现有时在运行自动排名应用程序后,某些屏幕(例如看板)会告诉我“手动排名工作区禁用拖放重新排名”(以及看板将不再让我拖放,尽管其他屏幕(例如积压)仍然允许我拖放,并且工作区设置仍然设置为拖放)。删除故事,或在积压屏幕上重新排列它们将使事情恢复正常。

在尝试了一些想法来解决这个问题后,我想如果我快速连续地更新多个故事的排名,后端可能会对这些(可能是多个/并发的)请求感到困惑。在每个故事的 API 调用之间引入延迟似乎可以避免该问题,为了加快速度,我现在仅在前一个故事的排名更新调用“updateComplete”函数后更新 API 中的故事排名。

根据后端排名,上面最后一段中的假设是否有意义?是否有任何 Javascript API 调用可以一次更新多个故事? (否则我对在之前的 API “rank update”调用返回正常后才调用 API “update rank”的解决方案感到非常满意)。

【问题讨论】:

    标签: rally


    【解决方案1】:

    听起来您发现后端排名可能存在问题。您收到的警告源于董事会试图确定您所在的工作区类型(手动或 dnd 等级)。由于该设置目前无法通过 WSAPI 获得,因此开发板会尝试根据其数据进行计算,但有时会出错。

    目前没有完全支持/记录的方式来通过 WSAPI 调整项目的排名。 App SDK 中的 Card Board 组件在更新调用期间使用特殊的 rankAbove 和 rankBelow 查询字符串参数(您可以在 Firebug 或 Chrome 开发工具中看到)。

    您目前如何设置排名值?

    【讨论】:

    • 有趣。从 JS,我只是在做 rallyDataSource.update({"_ref": item._ref, "Rank": newRank}, onUpdateComplete, onUpdateError);
    • 只是为了跟进这一点,我也在一个 ruby​​ 应用程序中成功使用了这种技术很长时间,per'item.update(:rank => newRank);' (虽然这个 ruby​​ 应用程序在任何时候只改变了 1 个故事的排名,而不是我的新 JS 应用程序,改变了多个故事的排名):我有一个模糊的回忆,很久以前排名字段(根据 API 文档)可能已被定义为只读,但我不确定这种情况已经很久了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多