1

BACKGROUND: I am attempting to create a relatively simple Ruby script to create issues in a Jira instance. I am using the Savon gem (http://savonrb.com/) to create the SOAP service.

ISSUE: When attempting to create an an issue that includes a custom field, I am getting the following exception...

com.atlassian.jira.rpc.exception.RemoteValidationException: Custom field ID 'null' is invalid.

CODE:

require 'savon'

# Config
host = 'myjira.com'
username = 'myUsername'
password = 'myPassword'
project = 'myProject'

# Create soap client
 client = Savon::Client.new('http://' + host + '/rpc/soap/jirasoapservice-v2?wsdl')

# Get a token
login = client.request(:login) do |soap|
  soap.body = {
    :in0 => username,
    :in1 => password
  }
end
login = login.to_hash
token = login[:login_response][:login_return]

# Create issue
create_issue = client.request(:create_issue) do |soap|
  soap.body = {
    :in0 => token,
    :in1 => {
      :type => "1",
      :project => project,
      :summary => "Jira SOAP API Test #1",
      :description => "This slip was created using Jira's SOAP API",
      :components => {'Math' => {'id' => '16420', 'name' => 'Math'}},
      :customFieldValues => [{'customfieldId' => 'customfield_11630', 'values' => ['estimate']}]
    }
  }
end

SOAP REQUEST XML:

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsdl="http://10.160.100.25:8080/rpc/soap/jirasoapservice-v2" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="http://beans.soap.rpc.jira.atlassian.com" xmlns:ins1="http://exception.rpc.jira.atlassian.com" xmlns:ins2="http://10.160.100.25:8080/rpc/soap/jirasoapservice-v2">
    <env:Body>
        <createIssue>
            <in0>xlGKWgZ85C</in0>
            <in1>
                <type>1</type>
                <project>BSA</project>
                <summary>Jira SOAP API Test #1</summary>
                <description>This slip was created using Jira's SOAP API</description>
                <components>
                    <Math>
                        <id>16420</id>
                        <name>Math</name>
                    </Math>
                </components>
                <customFieldValues>
                    <customfieldId>customfield_11630</customfieldId>
                    <values>estimate</values>
                </customFieldValues>
            </in1>
        </createIssue>
    </env:Body>
</env:Envelope>

Any ideas on what I might be doing wrong here? If anyone could provide a working example of a SOAP XML to create an issue with custom fields, that would be extemely helpful. Thanks in advance!

Andrew Kirk
  • 1,774
  • 1
  • 14
  • 16
  • I received an answer to this question on [Atlasssian Answers](https://answers.atlassian.com/questions/30608/soap-api-trouble-creating-new-issue-with-custom-fields-using-ruby-savon). – Andrew Kirk Feb 22 '12 at 17:02
  • [createIssue takes a RemoteIssue argument](http://docs.atlassian.com/rpc-jira-plugin/4.4/com/atlassian/jira/rpc/soap/JiraSoapService.html#createIssue%28java.lang.String,%20com.atlassian.jira.rpc.soap.beans.RemoteIssue%29) and a RemoteIssue has an id field (not "customFieldId") that has to be set. – mdoar Jan 23 '12 at 21:25
  • I appreciate the response, however, the issue is not creating the RemoteIssue itself but rather with creating a RemoteCustomFieldValue which is part of the RemoteIssue. See [link](http://docs.atlassian.com/rpc-jira-plugin/4.4/com/atlassian/jira/rpc/soap/beans/RemoteCustomFieldValue.html) – Andrew Kirk Jan 23 '12 at 23:24

0 Answers0