VersionOne的API客户端无法识别的资产类型?(VersionOne API Client

2019-10-23 08:10发布

我正在与VersionOneAPIClient一个问题,即它不会承认什么,我给它的屁股的资产类型。 我理解的属性定义可能根本没有任何意义,但我一直在试图几乎一切。 我的最终目标将是查询团队空间,并在会议室的所有球队得到球队的名字。

这是从文档我的理解资产类型以及如何查询 ,这应该工作,但是这就是大家都这么说。

我使用:C#ASP.NET,VersionOneAPIClient 15.0.0.0

弦乐我曾尝试:

  • 工作室
  • 任务
  • 范围
  • 项目

      public bool APIgetTeams() { IAssetType teamroomType = services.Meta.GetAssetType("Task"); Query query = new Query(teamroomType); IAttributeDefinition teamAttribute = teamroomType.GetAttributeDefinition("Children:Room.Team.Name"); query.Selection.Add(teamAttribute); IAttributeDefinition scheduleAttribute = teamroomType.GetAttributeDefinition("Children:Scope.Room.Schedule.Name"); query.Selection.Add(scheduleAttribute); query.Find = new QueryFind(scheduleName, new AttributeSelection(scheduleAttribute)); query.Paging.PageSize = 1; query.Paging.PageSize = 0; teamRoomAsset = (Asset)services.Retrieve(query).Assets.ToArray().GetValue(0); return true; } 

我的服务和接口的定义:

        public static V1Connector connector = V1Connector
           .WithInstanceUrl("http://versionone.cscinfo.com/VersionOneProd/")
           .WithUserAgentHeader("New Dashboard?", "1.0")
           .WithWindowsIntegrated()
           .Build();
    public IServices services = new Services(connector);

这些都是我的错误/栈跟踪:

该错误是在我的脸上可能简单而正确的,但我不能弄明白。

Answer 1:

你有几件事情会在这里的。 我会满足您的发言“ 我的最终目标将是查询团队空间,并在会议室的所有球队得到球队的名字 。”

这里是读取所有的团队空间和打印的Team Room和队名的名称的代码工作块。 一旦你的机器上这方面的工作,尝试做分页。 添加过滤增量保持调试周期低。

 static void Main(string[] args)
    {

        V1Connector connector = V1Connector
            .WithInstanceUrl("https://www.MyV1INstance")
            .WithUserAgentHeader("HappyApp", "0.1")
            .WithUsernameAndPassword("login", "pwd")
            .Build();


        IServices services = new Services(connector);

        IAssetType trType = services.Meta.GetAssetType("TeamRoom");
        Query query = new Query(trType);
        IAttributeDefinition teamAttribute = trType.GetAttributeDefinition("Team.Name");
        IAttributeDefinition nameAttribute = trType.GetAttributeDefinition("Name");
        query.Selection.Add(teamAttribute);
        query.Selection.Add(nameAttribute);


        QueryResult result = services.Retrieve(query);
        Asset teamRooms = result.Assets[0];

        foreach (Asset story in result.Assets)
        {
            Console.WriteLine(story.Oid.Token);
            Console.WriteLine(story.GetAttribute(teamAttribute).Value);
            Console.WriteLine(story.GetAttribute(nameAttribute).Value);
            Console.WriteLine();
        }

附录

我只是意识到你正在使用WithWindowsIntegrated()而不是WithUsernameAndPassword()。

只要改变我的样品中,但随后确认您登录到本机作为会员已经在VersionOne的设置。 窗户INT权威性的信任IIS的决定信任你,但随后允许验证后,立即,你必须有在VersionOne的活跃会员帐户来访问VersionOne的资产。



文章来源: VersionOne API Client not recognizing asset types?