首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何:使用VersionOne SDK创建资产

如何:使用VersionOne SDK创建资产
EN

Stack Overflow用户
提问于 2016-10-18 12:40:51
回答 1查看 280关注 0票数 1

我正在尝试编写一些C#代码来利用VersionOne SDK来创建缺陷资产。我已经查询了我们的系统并确定了所需的属性:

缺陷来源于PrimaryWorkitem

  • 描述: LongText
  • 名称:文本
  • 父母:与主题的关系-子女的互惠
  • 优先权:与WorkitemPriority的关系-- PrimaryWorkitems的倒数
  • 范围:与范围的关系-工作项的相互作用
  • 资料来源:与StorySource的关系- PrimaryWorkitems的倒数
  • 现状:与StoryStatus的关系- PrimaryWorkitems的倒数
  • 团队:与团队的关系--工作项的交互

有些值是显而易见的,而另一些则是抽象的。例如,我不知道该为“父”属性或“作用域”指定什么。使用SDK创建资产的文档非常稀少。我似乎找不到任何使用SDK的代码示例。目前,我的代码返回一个异常:

远程服务器返回一个错误:(400)坏请求Violation'Required'AttributeDefinition'Parent'Defect

下面是我目前正在使用的代码:

代码语言:javascript
复制
static void AddV1Record(List<V1WerRecord> records)
        {
            V1Connector connector = V1Connector
                .WithInstanceUrl(VersionOneURL)
                .WithUserAgentHeader("VersionOneUpdate", "1.0")
                .WithUsernameAndPassword(VersionOneId, VersionOnePwd)
                .Build();

            IServices services = new Services(connector);

            Oid projectId = services.GetOid("Scope:0");
            IAssetType storyType = services.Meta.GetAssetType("Defect");
            Asset newDefect = services.New(storyType, projectId);
            IAttributeDefinition descAttribute = storyType.GetAttributeDefinition("Description");
            newDefect.SetAttributeValue(descAttribute, "My New Defect");
            IAttributeDefinition nameAttribute = storyType.GetAttributeDefinition("Name");
            newDefect.SetAttributeValue(nameAttribute, "My Name");
            services.Save(newDefect);

我理解这个错误是由而不是导致的,它指定了所有必需的属性。我不知道该为某些属性指定什么:父属性、作用域等。

有人知道更好的文档来解释如何使用SDK来创建资产吗?是否有好的SDK示例/示例代码可用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-18 14:54:11

在创建主要工作项(如缺陷或故事)时,必须在特定项目的上下文中创建它。该项目在系统级别上被称为范围。缺陷上的父属性称为主题。默认情况下,这不是必需的属性。您的组织中有人已根据需要声明了此特定项。

Relation to Theme 意味着父属性接受对特定主题的引用。您可以将父属性设置为如下格式

Theme:1036

这被称为OID。它只是一个系统引用,它是一个类似于表的结构,称为一个包含系统中所有不同主题的关系。如果查询数据API,可以获得所有这些主题的列表。该查询如下所示

代码语言:javascript
复制
yourVersionOneURL/rest-1.v1/Data/Theme?sel=ID,Name

您将在浏览器中获得一个xml列表,其中显示n个

因此,如果我想将一个名为恤的主题与我的缺陷联系起来,我会将父属性设置为主题:1036。

您可以将此添加到代码中。

代码语言:javascript
复制
IAttributeDefinition parentAttribute = newDefect.GetAttributeDefinition("Parent");
newDefect.SetAttributeValue(parentAttribute,”Theme:1036”);

同样的过程也适用于范围。除了查询之外,还有一种选择。您可以进入VersionOne UI,找到所需的项目名称(或其他资产),将鼠标悬停在项目名称(范围)上,并在浏览器底部的状态栏中看到一些指示与该项目名称关联的作用域OID的内容。

我会与您的VersionOne管理员聊天,并弄清楚为什么您的组织需要所需的主题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40108568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档