我正在尝试使用看起来像这样的代码在Rally中创建一个缺陷:
JsonObject newDefect = new JsonObject();
newDefect.addProperty("Workspace", workspaceRef);
newDefect.addProperty("Project", projectRef);
newDefect.addProperty("Name", d.name);
newDefect.addProperty("QCID", d.qcid);
newDefect.addProperty("My Product", d.product);
newDefect.addProperty("Owner", getUserReference(restApi, d.owner));
newDefect.addProperty("Submitted By", getUserReference(restApi, d.owner));
System.out.println("Creating defect: " + d.qcid + " - " + d.name);
CreateRequest createRequest = new CreateRequest("defect", newDefect);
CreateResponse createResponse = restApi.create(createRequest);
正在发送的JSON是: { “工作区”: “https://rally1.rallydev.com/slm/webservice/v2.0/workspace/1234”, “项目”: “https://rally1.rallydev.com/slm/webservice/v2.0/project/1234”, “QCID”:1, “姓名”:“我的名字”, “描述”:“我的desc”, “笔记”:“我的笔记”, “所有者”: “https://rally1.rallydev.com/slm/webservice/v2.0/user/1234”, “国”:“关闭”, “决议”:空, “我的产品”:“MyProduct”, “严重程度”:“4 - 低”, “提交者”:“https://rally1.rallydev.com/slm/webservice/v2.0/user/1234”, “环境”:“发展”, “在版本中找到”:“8.0”, “目标构建”:“10.0”, “受影响的客户”:null}
我从集会中收到这些警告:
在处理此请求期间忽略了JSON元素缺陷.QCID。
忽略了JSON元素缺陷。我的产品在处理此请求时。
忽略JSON元素缺陷。在处理此请求期间提交。
忽略JSON元素缺陷。在处理此请求期间发现版本。
忽略JSON元素缺陷。在处理此请求期间构建目标。
我试图将QCID作为字符串值(“QCID”:“1”)传递,但结果是一样的。
如何解决此问题?我怎么知道为什么这些字段没有填充?
几乎所有这些领域的一个共同点是它们在字段名称中有一个空格。 QCID没有空格,但它最初创建为“QC ID”,因此它有一个空格。
由于
答案 0 :(得分:0)
Hot Licks是正确的,因为对于显示名称包含空格的字段名称,在WSAPI中使用它们时应省略空格因为QCID不再有空格应该没有,但所有字段都需要更新为不包含任何空间。即'SubmittedBy'不是'提交者'
由于QCID不包含任何空格,但您仍然会收到错误,我会验证您的代码所针对的工作区和项目中是否存在此字段。
答案 1 :(得分:0)
对于自定义字段,您需要在名称前加上c_。提交时,所有字段名称都不应包含空格。
所以c_QCID,c_MyProduct,SubmittedBy等
newDefect.addProperty("Name", d.name);
newDefect.addProperty("c_QCID", d.qcid);
newDefect.addProperty("c_MyProduct", d.product);
newDefect.addProperty("Owner", getUserReference(restApi, d.owner));
newDefect.addProperty("SubmittedBy", getUserReference(restApi, d.owner));
如果有疑问,只需针对该类型进行查询并获取您要查找的字段。或浏览网络服务文档 - 您应该可以在那里看到所有字段。