如何:使用 VersionOne SDK 创建资产
How to: Create an Asset using the VersionOne SDK
我正在尝试编写一些 C# 代码来利用 VersionOne SDK 创建缺陷资产。我查询了我们的系统并确定了所需的属性:
Defect derives from PrimaryWorkitem
- Description : LongText
- Name : Text
- Parent : Relation to Theme — reciprocal of Children
- Priority : Relation to WorkitemPriority — reciprocal of PrimaryWorkitems
- Scope : Relation to Scope — reciprocal of Workitems
- Source : Relation to StorySource — reciprocal of PrimaryWorkitems
- Status : Relation to StoryStatus — reciprocal of PrimaryWorkitems
- Team : Relation to Team — reciprocal of Workitems
有些值是显而易见的,而另一些则有些抽象。例如,我不确定为“Parent”属性或“Scope”指定什么。使用 SDK 创建资产的文档非常少。我似乎找不到任何使用 SDK 的代码示例。目前,我的代码 returns 异常:
The remote server returned an error: (400) Bad Request
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);
我知道这个错误是由于 没有 指定所有必需的属性造成的。我不知道为某些属性指定什么:Parent、Scope 等。
有谁知道解释如何使用 SDK 创建资产的更好的文档?有没有好的SDK examples/sample代码可用?
创建缺陷或故事等主要工作项时,您必须在特定项目的上下文中创建它。该项目在系统级别被称为 Scope。 Defect 的 Parent 属性就是所谓的 Theme。默认情况下,这不是必需的属性。您组织中的某个人已根据需要声明了此特定项目。
Parent: Relation to Theme 表示 Parent 属性接受对特定主题。您可以将 Parent 属性设置为如下格式的内容
Theme:1036
这称为 OID。它只是一个类似于 table 的结构的系统引用,称为关系,它包含系统中所有不同的主题。如果您查询您的数据 API,您可以获得所有这些主题的列表。查询看起来像这样
yourVersionOneURL/rest-1.v1/Data/Theme?sel=ID,Name
您将在您的浏览器中得到一个 xml 列表,其中显示了 n 个
因此,如果我想将名为 Shirts 的 Theme 与我的 Defect 相关联,我会将 Parent 属性设置为 Theme:1036。
您可以将此添加到您的代码中
IAttributeDefinition parentAttribute = newDefect.GetAttributeDefinition("Parent");
newDefect.SetAttributeValue(parentAttribute,”Theme:1036”);
同样的过程也适用于 Scope。有一种替代查询的方法。您可以进入 VersionOne UI,找到您需要的项目(或其他资产)的名称,将鼠标悬停在项目名称(范围)上,然后在浏览器底部的状态栏中看到指示与该项目名称关联的范围 OID 的内容。
我会与您的 VersionOne 管理员交谈并弄清楚为什么您的组织需要所需的主题
我正在尝试编写一些 C# 代码来利用 VersionOne SDK 创建缺陷资产。我查询了我们的系统并确定了所需的属性:
Defect derives from PrimaryWorkitem
- Description : LongText
- Name : Text
- Parent : Relation to Theme — reciprocal of Children
- Priority : Relation to WorkitemPriority — reciprocal of PrimaryWorkitems
- Scope : Relation to Scope — reciprocal of Workitems
- Source : Relation to StorySource — reciprocal of PrimaryWorkitems
- Status : Relation to StoryStatus — reciprocal of PrimaryWorkitems
- Team : Relation to Team — reciprocal of Workitems
有些值是显而易见的,而另一些则有些抽象。例如,我不确定为“Parent”属性或“Scope”指定什么。使用 SDK 创建资产的文档非常少。我似乎找不到任何使用 SDK 的代码示例。目前,我的代码 returns 异常:
The remote server returned an error: (400) Bad Request 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);
我知道这个错误是由于 没有 指定所有必需的属性造成的。我不知道为某些属性指定什么:Parent、Scope 等。
有谁知道解释如何使用 SDK 创建资产的更好的文档?有没有好的SDK examples/sample代码可用?
创建缺陷或故事等主要工作项时,您必须在特定项目的上下文中创建它。该项目在系统级别被称为 Scope。 Defect 的 Parent 属性就是所谓的 Theme。默认情况下,这不是必需的属性。您组织中的某个人已根据需要声明了此特定项目。
Parent: Relation to Theme 表示 Parent 属性接受对特定主题。您可以将 Parent 属性设置为如下格式的内容
Theme:1036
这称为 OID。它只是一个类似于 table 的结构的系统引用,称为关系,它包含系统中所有不同的主题。如果您查询您的数据 API,您可以获得所有这些主题的列表。查询看起来像这样
yourVersionOneURL/rest-1.v1/Data/Theme?sel=ID,Name
您将在您的浏览器中得到一个 xml 列表,其中显示了 n 个
因此,如果我想将名为 Shirts 的 Theme 与我的 Defect 相关联,我会将 Parent 属性设置为 Theme:1036。
您可以将此添加到您的代码中
IAttributeDefinition parentAttribute = newDefect.GetAttributeDefinition("Parent");
newDefect.SetAttributeValue(parentAttribute,”Theme:1036”);
同样的过程也适用于 Scope。有一种替代查询的方法。您可以进入 VersionOne UI,找到您需要的项目(或其他资产)的名称,将鼠标悬停在项目名称(范围)上,然后在浏览器底部的状态栏中看到指示与该项目名称关联的范围 OID 的内容。
我会与您的 VersionOne 管理员交谈并弄清楚为什么您的组织需要所需的主题