集会:创建标签失败

史蒂夫·考克斯

我试图同时在两个工作区中创建一个TAG。

我遍历我们的订阅工作区并查询标签以查看TAG是否已存在。

如果TAG不存在,则创建它。

但是,它只会在以后的工作空间中创建TAG,而不会在较旧的工作空间中创建。

有什么想法我可能做错了吗?

static void Main(string[] args)
    {
        string id = "TEST";

        RallyRestApi restApi = new RallyRestApi("myuserid@mycompany", "mypassword", "https://rally1.rallydev.com", "v2.0");

        DynamicJsonObject sub = restApi.GetSubscription("Workspaces");

        Request wRequest = new Request(sub["Workspaces"]);

        Rally.RestApi.Response.QueryResult queryResult = restApi.Query(wRequest);

        foreach (var result in queryResult.Results)
        {
            var workspaceReference = result["_ref"];

            Request tagRequest = new Request("tag")
            {
                Workspace = workspaceReference,
                Fetch = new List<string>() { "Name", "ObjectID" },
                Query = new Query("Name", Query.Operator.Equals, id)
            };

            QueryResult tagResult = restApi.Query(tagRequest);

            if (tagResult.TotalResultCount == 0)
            {
                DynamicJsonObject newTag = new DynamicJsonObject();
                newTag["Name"] = id;

                CreateResult createResult = restApi.Create(workspaceReference, "Tag", newTag);

                Console.Out.WriteLine("TAG " + id + " not found, creating");
                Console.Out.WriteLine(createResult.Reference);
            }
            else
            {
                Console.Out.WriteLine("TAG " + id + " found");
                Console.Out.WriteLine(tagResult.Results.First()["_ref"]);
            }
        }

        Console.ReadKey();
    }

当我运行它时,我总是得到以下结果

TAG TEST not found, creating
https://rally1.rallydev.com/slm/webservice/v2.0/tag/19735777148
TAG TEST found
https://rally1.rallydev.com/slm/webservice/v2.0/tag/19735777148

在此先感谢您的任何帮助

尼克

而不是将引用传递给create中的工作空间:

newTag["Name"] = id;
CreateResult createResult = restApi.Create(workspaceReference, "Tag", newTag);

像这样设置工作区:

newTag["Name"] = tagName;
newTag["Workspace"] = workspaceReference;
CreateResult createResult = restApi.Create("Tag", newTag);

这是一个完整的例子。我首先过滤出所有者在订阅上的工作区集合,但其余代码与您的类似:

namespace aRESTcreateTags
{
    class Program
    {
        static void Main(string[] args)
        {
            string tagName = "T3$T";

            RallyRestApi restApi = new RallyRestApi("[email protected]", "secret", "https://rally1.rallydev.com", "v2.0");

            //get current user
            DynamicJsonObject user = new DynamicJsonObject();
            user = restApi.GetCurrentUser();
            Console.Out.WriteLine("owner " + user["_ref"]);


            //find workspaces owned by this user
            //equivalent to this endpoint: https://rally1.rallydev.com/slm/webservice/v2.0/subscription/1154643/workspaces?query=(Owner%20=%20%22/user/12345%22)

            DynamicJsonObject sub = restApi.GetSubscription("Workspaces");

            Request wRequest = new Request(sub["Workspaces"]);
            wRequest.Query = new Query("Owner", Query.Operator.Equals, user["_ref"]);
            QueryResult wResult = restApi.Query(wRequest);
            foreach (var workspace in wResult.Results)
            {
                //Console.Out.WriteLine(workspace["_refObjectName"] + " : " + workspace["_ref"]);
                Request tagRequest = new Request("tag");
                tagRequest.Query = new Query("Name", Query.Operator.Equals, tagName);
                QueryResult tagResult = restApi.Query(tagRequest);
                if (tagResult.TotalResultCount == 0)
                {
                    Console.Out.WriteLine("TAG " + tagName + " not found, creating");
                    DynamicJsonObject newTag = new DynamicJsonObject();
                    newTag["Name"] = tagName;
                    newTag["Workspace"] = workspace["_ref"];
                    CreateResult createResult = restApi.Create("Tag", newTag);
                    Console.Out.WriteLine(createResult.Reference + " created in workspace " + workspace["_refObjectName"]);
                }
                else
                {
                    Console.Out.WriteLine("TAG " + tagName + " found in " + workspace["_refObjectName"]);
                    Console.Out.WriteLine(tagResult.Results.First()["_refObjectName"] + " " + tagResult.Results.First()["_ref"]);
                }

            }

        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

集会-使用REST(非API)使用标签创建用户故事

来自分类Dev

在 Shiny 应用程序中创建动态标签集会在 ggploty 上出现错误

来自分类Dev

集会根据描述的存在创建自定义视图

来自分类Dev

垃圾收集会干扰对象的创建吗?

来自分类Dev

使用集会节点在讨论中创建 ConverationPost

来自分类Dev

如何使用集会 Web 服务 API 创建新连接

来自分类Dev

为什么当我使用单等于时,R子集会无声地失败

来自分类Dev

如果文件格式为rar,为什么Maven程序集会创建清单?

来自分类Dev

Django创建由组成员过滤的查询集会导致错误

来自分类Dev

如果文件格式为rar,为什么Maven程序集会创建清单?

来自分类Dev

在div标签内添加<br>标签失败

来自分类Dev

图片标签中的ID失败

来自分类Dev

标签页的锚点失败

来自分类Dev

Python Tkinter标签刷新失败

来自分类Dev

MongoDB创建集合失败

来自分类Dev

Kartograph:地图创建失败

来自分类Dev

创建表失败

来自分类Dev

Robolectric:窗口创建失败

来自分类Dev

AudioRecord总是创建失败

来自分类Dev

创建SparkContext失败

来自分类Dev

Caffe层创建失败

来自分类Dev

conda env创建失败?

来自分类Dev

StatefulSet失败创建ElasticSearch

来自分类Dev

创建IJob失败

来自分类Dev

创建扩展postgis失败,

来自分类Dev

创建Grafana插件失败

来自分类Dev

创建视图失败

来自分类Dev

条带源创建失败

来自分类Dev

SQL模式创建失败