Professional Documents
Culture Documents
Criar RDM
Criar RDM
2 ********** */
import com.atlassian.jira.bc.issue.IssueService
import com.atlassian.jira.bc.issue.IssueService.CreateValidationResult
import com.atlassian.jira.bc.issue.IssueService.IssueResult
import com.atlassian.jira.bc.issue.IssueService.IssueValidationResult
import com.atlassian.jira.bc.issue.IssueService.UpdateValidationResult
import com.atlassian.jira.bc.ServiceResultImpl
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.event.issue.IssueEvent
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.issue.changehistory.ChangeHistoryManager
import com.atlassian.jira.issue.changehistory.DefaultChangeHistoryManager
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.customfields.impl.CascadingSelectCFType
import com.atlassian.jira.issue.customfields.manager.OptionsManager
import com.atlassian.jira.issue.customfields.option.Option
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.issue.fields.ImmutableCustomField
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.IssueInputParameters
import com.atlassian.jira.issue.IssueInputParametersImpl
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.link.IssueLink
import com.atlassian.jira.issue.link.IssueLinkImpl
import com.atlassian.jira.issue.link.IssueLinkManager
import com.atlassian.jira.issue.link.IssueLinkTypeManager
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.project.Project
import com.atlassian.jira.project.version.Version
import com.atlassian.jira.security.JiraAuthenticationContext
import com.atlassian.jira.util.ImportUtils
import com.onresolve.scriptrunner.runner.util.UserMessageUtil
import java.text.DateFormat
import java.text.SimpleDateFormat
import java.time.format.DateTimeFormatter
import java.time.LocalDate
import java.time.ZoneId
import java.util.ArrayList
import java.util.Calendar
import java.util.Date
import org.apache.commons.lang3.StringUtils
import com.onresolve.scriptrunner.runner.customisers.PluginModule
import com.onresolve.scriptrunner.runner.customisers.WithPlugin
import com.riadalabs.jira.plugins.insight.channel.external.api.facade.ObjectFacade
import
com.riadalabs.jira.plugins.insight.channel.external.api.facade.ObjectTypeAttributeF
acade
@WithPlugin("com.riadalabs.jira.plugins.insight")
@PluginModule ObjectFacade objectFacade
@PluginModule ObjectTypeAttributeFacade objectTypeAttributeFacade
public String CriarIssue (Issue issuePai, String Projeto, String Tipo, String
Prioridade, String Sumario, String Descricao) {
/*** Importa o valor do campo 'Número do registro que motivou a mudança' para a
variável 'cf_num_registro' ***/
CustomField cf_num_registro =
customFieldManager.getCustomFieldObjectsByName('Número do registro que motivou a
mudança')[0]
/*** Importa o valor do campo 'Janela proposta para execução (data/hora)' para
a variável 'cf_dt_implantacao' ***/
String jiraTimeFormat =
ComponentAccessor.getApplicationProperties().getString("jira.date.time.picker.java.
format")
DateFormat formatter = new SimpleDateFormat(jiraTimeFormat)
CustomField cf_janela =
customFieldManager.getCustomFieldObjectsByName('Janela proposta para execução
(data/hora)')[0]
String janela = null
if (issuePai.getCustomFieldValue(cf_janela)) {
janela = formatter.format(issuePai.getCustomFieldValue(cf_janela))
}
/*** Importa o valor do campo 'Duração (tempo para execução)' para a variável
'cf_duracao' ***/
CustomField cf_duracao =
customFieldManager.getCustomFieldObjects(issuePai).find {it.name == 'Duração (tempo
para execução)'}
/*** Importa o valor do campo 'Data e hora de fim da execução' para a variável
'cf_dt_execucao_fim' ***/
CustomField cf_dt_execucao_fim =
customFieldManager.getCustomFieldObjectsByName('Data e hora de fim da execução')[0]
String dt_execucao_fim = null
if (issuePai.getCustomFieldValue(cf_dt_execucao_fim)) {
dt_execucao_fim =
formatter.format(issuePai.getCustomFieldValue(cf_dt_execucao_fim))
}
IssueInputParameters issueInputParameters =
issueService.newIssueInputParameters()
issueInputParameters.with {
projectId = projectManager.getProjectObjByKey(Projeto).id
summary = Sumario
issueTypeId = Tipo
reporterId = userReporter.name
description = Descricao
priorityId = Prioridade
def msg
if (result.isValid()) {
else {
/*** Importa para a variável "DtInicioOld" o último valor do campo "Data e hora
de início da execução" do histórico da Issue Pai no formato definido na variável
"parser" ***/
Date DtInicioOld = parser.parse((String)
cf_DtInicioOld.max{it.created}.fromString)
if (UnidadeExecutoraOld == null){
else{
if (UnidadeReverse == null){
UnidadeOld = null
}
else{
return msg
}
Project projeto =
ComponentAccessor.getProjectManager().getProjectObjByKey('RDM') /*** Importa o ID
do projeto "RDM" ***/
CustomField cf_tipo_mudanca = customFieldManager.getCustomFieldObjects(issue).find
{it.name == 'Tipo de mudança'} /*** Importa as opções do campo "Tipo de Mudança"
***/
String msg
String retorno = 'Issue criada: '
if (issueRDM) {
retorno += issueRDM.getKey()
}
else {
retorno = msg
}
UserMessageUtil.success(retorno)