See this code…
import com.atlassian.jira.component.ComponentAccessor import com.atlassian.crowd.embedded.api.User import com.atlassian.jira.ComponentManager import com.atlassian.jira.issue.IssueFactory import com.atlassian.jira.project.ProjectManager import com.atlassian.jira.project.Project import com.atlassian.jira.user.util.UserUtil import com.atlassian.jira.issue.customfields.CustomFieldType import com.atlassian.jira.issue.customfields.* import com.atlassian.jira.issue.CustomFieldManager import com.atlassian.jira.issue.IssueManager import com.atlassian.jira.issue.index.IndexException import com.atlassian.jira.ManagerFactory import com.atlassian.jira.user.util.UserUtil import com.atlassian.jira.bc.issue.search.SearchService import com.atlassian.jira.issue.MutableIssue import com.atlassian.jira.issue.Issue; import com.atlassian.jira.web.bean.PagerFilter import com.atlassian.jira.issue.util.DefaultIssueChangeHolder import com.atlassian.jira.issue.CustomFieldManager import com.atlassian.jira.issue.ModifiedValue import com.atlassian.fugue.Option import org.apache.log4j.Category import com.atlassian.jira.issue.issuetype.IssueType import com.atlassian.jira.issue.link.IssueLinkType import com.atlassian.jira.issue.IssueManager import com.atlassian.jira.issue.link.IssueLinkTypeManager import com.atlassian.crowd.embedded.api.User import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.ComponentManager import com.atlassian.jira.issue.Issue import com.atlassian.jira.issue.MutableIssue import com.atlassian.plugin.PluginAccessor import com.atlassian.fugue.Option ComponentManager componentManager=ComponentManager.getInstance() def userPropertyManager = ComponentAccessor.getUserPropertyManager(); def userManager = ComponentAccessor.getUserManager(); def Users = userManager.getAllUsers(); def issueFactory = ComponentManager.getInstance().getIssueFactory() def projectMgr = ComponentManager.getInstance().getProjectManager() User currentUserObj = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser(); def issueMgr = ComponentManager.getInstance().getIssueManager() CustomFieldManager customFieldManager = componentManager.getCustomFieldManager() UserUtil userUtil = ComponentAccessor.getUserUtil() def user2 = userUtil.getUserByKey("admin_user_to_do_the_jql_query") User user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser(); String jqlSearch = '' SearchService searchService = ComponentAccessor.getComponent(SearchService.class) def newissue = null; int i = 0; int j = 0; int last = Users.size(); String firstName = ""; String lastName = ""; String displayName = ""; String username = ""; String email = ""; String isActive = ""; String directory = ""; def projectName = "TARGET PROJECT NAME TO CREATE THE USER EPICS" Issue epic = null; String Key = null; def epicLink = null; def cf2 = null; while ( i < last ) { //We can get now the user parameters firstName = Users[i].getFirstName(); lastName = Users[i].getLastName(); displayName = Users[i].getDisplayName(); username = Users[i].getName(); email = Users[i].getEmailAddress(); isActive = Users[i].isActive(); directory = Users[i].getDirectoryId(); if ( isActive == "true" && directory == "XXXXX") { //Create the user as EPIC in a new project newissue = issueFactory.getIssue(); newissue.setSummary ("User: " + username) newissue.setProject (projectMgr.getProjectByName(projectName)) //User Epics newissue.setIssueTypeId("5") //Epic def project = projectMgr.getProjectObjByName(projectName) newissue.setAssigneeId(project.getLeadUserKey()) //Fill the Epic Name def cf = null; cf = customFieldManager.getCustomFieldObjects(newissue).find {it.name == 'Epic Name'} newissue.setCustomFieldValue(cf,"User: " + username) def params = ["issue":newissue] def subTask = issueMgr.createIssue(currentUserObj, params) Key = subTask.get("key") //Search in XXXX project for tickets with the user name referenced... example query jqlSearch = " project = 'XXX' and (( 'First Name' ~ '"+firstName+"' and 'Last Name' ~ '"+lastName+"') or ('Username' ~ '"+username+"' ))" SearchService.ParseResult parseResult = searchService.parseQuery(user2.getDirectoryUser(), jqlSearch) if (parseResult.isValid()) { def searchResult = searchService.search(user2.getDirectoryUser(), parseResult.getQuery(), PagerFilter.getUnlimitedFilter()) issues = searchResult.issues.collect {issueMgr.getIssueObject(it.id)} def issueSet = new HashSet<Issue>(); for ( issue in issues ){ issueSet.add(issue); } epic = issueMgr.getIssueObject(Key); def epicLinkManagerImpl = getBean("epicLinkManagerImpl"); def epicoption = (Option)Option.option(epic) epicLinkManagerImpl.associateIssuesWithEpic((com.atlassian.jira.user.ApplicationUser) user2, epicoption, issueSet); } j++; } i++; } def getBean(String beanId) { def ghPlugin = ComponentAccessor.getPluginAccessor().getEnabledPlugin("com.pyxis.greenhopper.jira") def descriptor = ghPlugin.getModuleDescriptor("greenhopper-launcher") def applicationContext = descriptor.getModule().greenHopperCacheManager.applicationContext def beanInstance = applicationContext.getBean(beanId) return beanInstance; } throw new Exception("END SCRIPT ");