1

使用 JIRA 4.2 版。使用 Python 2.7 和 suds 0.4,如何更新问题的自定义级联选择字段(父级和子级)?

“Python (SOAPPy) 客户端”下有一个SOAPpy 示例。无法使用Python JIRA CLI执行此类更新。

示例:当更新父字段 customfield_10 的级联选择自定义子项时,可能需要更新字段 customfield_10_1。

更新

显示级联字段原始值的代码:

issue = client.service.getIssue(auth, "NAHLP-33515")
for f in fields:
    if f['customfieldId'] == 'customfield_10050' or f['customfieldId'] == 'customfield_10050_1':
        print f

这导致:

(RemoteCustomFieldValue){
   customfieldId = "customfield_10050"
   key = None
   values[] =
      "10981",
 }

手动设置级联字段的孩子后,上面的代码结果:

(RemoteCustomFieldValue){
   customfieldId = "customfield_10050"
   key = None
   values[] =
      "10981",
 }
(RemoteCustomFieldValue){
   customfieldId = "customfield_10050"
   key = "1"
   values[] =
      "11560",
 }

以上值是我希望通过 suds 实现的

请注意key = "1"字段。键值指定此对象是 customfield_10050 的子对象。
文档参考parentKey - 用于多维自定义字段,例如级联选择列表。其他情况为空

让我们尝试发送一个关键字段值:

client.service.updateIssue(auth, "NAHLP-33515", [
                           {"id":"customfield_10050", "values":["10981"]},
                           {"id":"customfield_10050_1", "key":"1", "values":["11560"]}
                           ])

这会导致错误,因为updateIssue接受RemoteFieldValue [] 参数,而不是RemoteCustomFieldValue [] 参数(感谢 Matt Doar):

suds.TypeNotFound: Type not found: 'key'

那么我们如何传递 RemoteCustomFieldValue 参数来更新问题呢?

更新 2,mdoar 的回答

通过 suds 运行以下代码:

client.service.updateIssue(auth, "NAHLP-33515", [
                           {"id":"customfield_10050", "values":["10981"]},
                           {"id":"customfield_10050_1", "values":["11560"]}
                           ])`

后值:

(RemoteCustomFieldValue){
   customfieldId = "customfield_10050"
   key = None
   values[] =
      "10981",
 }

不幸的是,这不会更新 customfield_10050 的孩子。手动验证。

解析度:

谢谢mdoar!要更新级联选择字段的父项和子项,请使用冒号 (':') 指定子项。

工作示例:

client.service.updateIssue(auth, "NAHLP-33515", [
                           {"id":"customfield_10050", "values":["10981"]},
                           {"id":"customfield_10050:1", "values":["11560"]}
                           ])
4

0 回答 0