Hi guys,
I need some assistance please, I am trying to clone and issue into a workflow function based on an Insight Multi Select list.
Basically I have a form which a user can select one or multiple Business Applications, each application is linked to one or more projects on Insights.
What I need to be able do is as follows:
1) Iterate through each object selected in the multi select
2) Obtain the associated project(s) from the select business application
3) Clone existing issue from service desk into the project(s) obtained above
4) Link the clones to the Service Desk project
I have looked at various questions posted on the forums but do not seem to be coming right.
So far I have the following which returns a project ID:
import groovyx.net.http.HTTPBuilder
import static groovyx.net.http.ContentType.*
import groovyx.net.http.ContentType
import static groovyx.net.http.Method.*
import groovy.json.JsonSlurper
import net.sf.json.groovy.JsonSlurper
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.UpdateIssueRequest
import com.atlassian.jira.issue.comments.CommentManager
import com.atlassian.jira.user.ApplicationUser
import com.atlassian.jira.util.json.JSONObject
import com.atlassian.jira.issue.Issue
import org.apache.log4j.Category
import com.atlassian.jira.bc.issue.comment.property.CommentPropertyService
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.fields.CustomField;
// Enable Logging
def Category log = Category.getInstance("com.onresolve.jira.groovy")
log.setLevel(org.apache.log4j.Level.DEBUG)
log.info "Info Statements"
// Define Required Component Access
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def issueManager = ComponentAccessor.getIssueManager()
// Get Issue ID that contains the Data
//def issueKey = issue.getKey()
//MutableIssue issue = issueManager.getIssueObject(issueKey)
Issue issue = issueManager.getIssueObject( "TRC-506")
//def getInsightFieldValue(object_id, attribute_id) {
/* Get Insight Object Facade from plugin accessor */
Class objectFacadeClass = ComponentAccessor.getPluginAccessor().getClassLoader().findClass("com.riadalabs.jira.plugins.insight.channel.external.api.facade.ObjectFacade");
def objectFacade = ComponentAccessor.getOSGiComponentInstanceOfType(objectFacadeClass);
ArrayList requiredApplications = (ArrayList)issue.getCustomFieldValue(customFieldManager.getCustomFieldObjectByName("Required Application Access")).unique();
for(i=0;i < requiredApplications.size();i++)
{
def objectBean = requiredApplications[i]
log.info(objectBean)
projectIDs = objectFacade.loadObjectAttributeBean(objectBean.getId(), 3320).getObjectAttributeValueBeans()[0].getValue() //attribute id
log.info(projectIDs)
}
But further to that I am lost. I am using Jira 7.10.1 and Script Runner 5.4.28.
Assistance is greatly appreciated.