这是“Adding a VersionOne expression using the REST API”......
的后续问题我正在尝试在VersionOne中为故事添加表达式(注释)。我现在可以做到这一点(有一些帮助 - 见原帖),但我有一个相关的问题:
在VersionOne中,每个Story都有一个数字(例如“B-01123”)和一个名称(例如“Fix ProcVars REST功能”)。可以使用例如
来查询这些内容<Server Base URI>/rest-1.v1/Data/Story?sel=Name,Number&where=Number='B-01123'
但是,在内部,所有VersionOne资产都有OID - 例如,上述故事的OID可能为“Story:2017”。这是唯一的资产标识符。
似乎要添加表达式或链接到Story,您需要知道Story的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中解析出来并将其传递给新请求。然而,这是一个由两部分组成的任务,并且是一个巨大的麻烦。
是否可以例如在故事中添加链接或表达式,您所知道的是故事编号(用户可见位)?
答案 0 :(得分:0)
是否可以例如在故事中添加链接或表达式,您知道的只是故事编号(用户可见位)?
没有。 Number属性只是一个文本标签。它与OID间接关联,因为它是具有OID的资产的一部分,但它不能代替OID。 OID代表官方系统资产。每当您决定更新,添加或删除VersionOne中的任何资产时,您别无选择,只能引用资产的官方&#34; OID&#34;。
由于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管道。