我正在尝试编写一些C#代码,以利用VersionOne SDK创建缺陷资产。我查询了我们的系统,并确定了所需的属性:
缺陷来自PrimaryWorkitem
- 描述:LongText
- 姓名:文字
- 父母:与主题的关系 - 儿童的互惠
- 优先级:与WorkitemPriority的关系 - PrimaryWorkitems的倒数
- 范围:与范围的关系 - 工作项的互惠
- 来源:与StorySource的关系 - PrimaryWorkitems的倒数
- 状态:与StoryStatus的关系 - PrimaryWorkitems的倒数
- 团队:与团队的关系 - 工作项目的互惠
有些价值观是显而易见的,有些则是有些抽象的。例如,我不确定要为“父”属性或“范围”指定什么。使用SDK创建资产的文档非常稀少。我似乎无法找到使用SDK的任何代码示例。目前,我的代码返回了一个异常:
远程服务器返回错误:(400)错误请求 Violation'Required'AttributeDefinition'Parent'Defect
而且,这是我目前正在使用的代码:
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示例/示例代码?
答案 0 :(得分:1)
创建主要工作项(如缺陷或故事)时,必须在特定项目的上下文中创建它。该项目在系统级别称为 Scope 。缺陷上的父属性是所谓的主题。默认情况下,这不是必需属性。您组织中的某个人已根据需要声明了此特定项目。
父:关系与主题表示Parent属性接受对特定主题的引用。您可以将Parent属性设置为类似
的格式 Theme:1036
这称为 OID 。它只是一个类似于表的结构的系统引用,称为关系,它包含系统中所有不同的主题。如果您查询数据API,则可以获得所有这些主题的列表。查询看起来像这样
yourVersionOneURL/rest-1.v1/Data/Theme?sel=ID,Name
您将在浏览器中看到一个xml列表,其中显示了n个
因此,如果我想将名为Shirts的主题与我的缺陷相关联,我会将Parent属性设置为Theme:1036。
您可以将其添加到您的代码中
IAttributeDefinition parentAttribute = newDefect.GetAttributeDefinition("Parent");
newDefect.SetAttributeValue(parentAttribute,”Theme:1036”);
同样的过程适用于Scope。有一种替代查询。您可以进入VersionOne UI,找到您需要的项目名称(或其他资产),将鼠标悬停在项目名称(Scope)上,在浏览器底部的状态栏中,您将看到指示与该项目名称关联的Scope OID。
我会与您的VersionOne管理员聊天,并明确为什么您的组织需要所需的主题