【问题标题】:How to add a VersionOne Asset with no linked asset如何添加没有链接资产的 VersionOne 资产
【发布时间】:2014-06-16 10:12:24
【问题描述】:

这是来自“Adding a VersionOne expression using the REST API”的后续问题...

我正在尝试向 VersionOne 中的故事添加表达式(评论)。我现在可以做到这一点(在一些帮助下 - 请参阅原始帖子),但我有一个相关问题:

在 VersionOne 中,每个故事都有一个编号(例如“B-01123”)和一个名称(例如“修复 ProcVars REST 功能”)。可以使用例如:

<Server Base URI>/rest-1.v1/Data/Story?sel=Name,Number&where=Number='B-01123'

但是,在内部,所有 VersionOne 资产都有一个 OID - 例如,上述故事的 OID 可能是“Story:2017”。这是唯一的资产标识符。

似乎要向故事添加表达式或链接,您需要知道故事的 OID,因为添加内容时,您通常需要在 POSTed XML 中包含以下内容:

<Relation name="Asset" act="set">
    <Asset href="<Server Base URI>/rest-1.v1/Data/Story/2017" idref="Story:2017" />
</Relation>

当然,您可以执行查询(如上)以获取包含 OID 的 XML 响应,然后从 XML 中解析出来并在新请求中传递它。但是,这是一个由两部分组成的任务,而且非常麻烦。

是否有可能例如将链接或表达式添加到您只知道故事编号(用户可见位)的故事中?

【问题讨论】:

    标签: versionone


    【解决方案1】:

    是否有可能例如将链接或表达式添加到您只知道故事编号(用户可见位)的故事中?

    没有。 Number 属性只是一个文本标签。它间接地与 OID 关联,因为它是具有 OID 但不能替代 OID 的资产的一部分。 OID 代表官方系统资产。每当您决定更新、添加或删除 VersionOne 中的任何资产时,您别无选择,只能参考资产的官方“OID”。

    由于 Number 是一个只读的唯一字段,我想您可能会认为您可以将其用作参考。只需创建一个采用这样的 Number 的方法并像您一直在做的那样解析输出。

    string GetOid(string Number)
    {
    
        string URL="rest-1.v1//Data//PrimaryWorkitem?sel=ID,Number&where=Number=\'"+Number+"\'");
        var response = POST(URL); 
    .
    .
    .  //Xml plumbing to extract OID from response
    .
    .
    .  return OID;
    }
    
    
    GetOID("Defect","D-01001");
    

    这适用于缺陷、故事或测试集。如果您改用关键字 Workitem,除了 PrimaryWorkitems,您还可以访问 Themes、Epics、Tests、Tasks

    仅供参考:现有的 VersionOne SDK 可以完成所有 xml 管道。

    【讨论】:

    • 我将其标记为解决方案,即使它对我没有帮助:(不幸的是,这是作为 Perl 脚本完成的,希望它可以很容易实现. 我可能会变得更复杂,从查询中获取响应并解析出 OID,但如果这不是一个非常简单的练习,我们可能会走不同的路线。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    • 2015-12-18
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多