script for creating issue in Jira service desk, cause block in database

the query that cause de block in db

(@P0 nvarchar(4000),@P1 nvarchar(4000),@P2 nvarchar(4000))
insert into "dbo"."AO_F1B27B_PROMISE_HISTORY" ("KEY_HASH", "TASK_KEY", "CLASSIFICATION") values ( @P0 , @P1 , @P2 )

 

 

here my script, what im doing wrong?

import com.atlassian.jira.ManagerFactory
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.project.Project
import com.atlassian.jira.issue.link.IssueLinkTypeManager
import com.atlassian.jira.issue.index.IssueIndexingService
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.IssueInputParameters
import com.atlassian.jira.bc.issue.IssueService
import com.atlassian.jira.util.ImportUtils
import org.apache.log4j.Category


def Category log = Category.getInstance("com.onresolve.jira.groovy.PostFunction")
log.setLevel(org.apache.log4j.Level.DEBUG)

log.debug ("iniciando clone ")
log.debug ("declarando variables")
def issueManager = ComponentAccessor.issueManager
def issueFactory = ComponentAccessor.getIssueFactory()
def authenticationContext = ComponentAccessor.getJiraAuthenticationContext()
def issueLinkManager = ComponentAccessor.getIssueLinkManager()
def customFieldManager =ComponentAccessor.getCustomFieldManager()
def userUtil = ComponentAccessor.getUserUtil()
def projectMgr = ComponentAccessor.getProjectManager()
def issueLinkTypeManager = ComponentAccessor.getComponentOfType(IssueLinkTypeManager.class)
def issueLinkType = issueLinkTypeManager.getIssueLinkTypesByName('Problem/Incident')[0];
def issueIndexingService = ComponentAccessor.getComponent(IssueIndexingService)
def issueService = ComponentAccessor.getIssueService();

def IssueInputParameters issueInputParameters = issueService.newIssueInputParameters();

log.debug ("Inicializando inputparameters")
issueInputParameters.setProjectId(projectMgr.getProjectObjByKey("CREOSD2").Id); //JSD project
issueInputParameters.setIssueTypeId(issue.issueType.id);
issueInputParameters.setSummary(issue.summary);
issueInputParameters.setReporterId(issue.getReporterId());
issueInputParameters.setDescription(issue.description);

log.debug ("IssueService.ValidateCreate")
IssueService.CreateValidationResult validationResult = issueService.validateCreate(authenticationContext.getLoggedInUser(), issueInputParameters); //issueObject.getReporter()
if(!validationResult.isValid())
{
log.debug("Could not create issue: " + validationResult.getErrorCollection());
}
else
{
// Create new issue
log.debug ("Trying crear issue")
IssueService.IssueResult createResult = issueService.create(authenticationContext.getLoggedInUser(), validationResult);
log.error("Issue Created")
if (!createResult.isValid())
{
log.error("Issue was not created!")
} else {
log.error("Issue was created. Issue Id: " + createResult.getIssue().getKey())
}
}

7 answers

0 vote

projectMgr.getProjectObjByKey("CREOSD2").Id

is wrong, should be

projectMgr.getProjectObjByKey("CREOSD2").id

You may have other problems but you should at least start with something that will compile.

 

thanks,

i used: projectMgr.getProjectObjByKey("CREOSD2").getId()

the error persists

the query that cause de block in db

(@P0 nvarchar(4000),@P1 nvarchar(4000),@P2 nvarchar(4000))
insert into "dbo"."AO_F1B27B_PROMISE_HISTORY" ("KEY_HASH", "TASK_KEY", "CLASSIFICATION") values ( @P0 , @P1 , @P2 )

if i copy/paste the script in Add-ons->SCript Ruhnner->Script Console and change the values of issueInpurtParameteres (hardcode) it works!

i dont understand why in a postfunction inside a workflow it doesnt work

Hi Jamie,

I detected this issue happens only if the target is a JIRA Service Desk Project with SLA configured.

if i delete all SLA definition, all works!

0 vote

What exactly do you mean by "block in db"? 

What is different when you run it in Script Console, is it the issue that you are copying?

What DMBS are you using?

Hi Jamie,

here the screen of block in database

Sin títulodb1.png

here the detail of SPID 62, the query that causes the "block"

Sin títulodb2.png

Also JIRA screen stucks, and the only way to resolve the problem, is restarting JIRA Service or kill the process (in database)

im using sql server 2008

NOTE: This problem is only with JIRA Service Desk Project with SLA configured

if i delete all SLA definition, all works!

About what is different,
i thing the example of script console is external is separate of any process, while the script in a workflow post function is inside a process of a project maybe a process of an issue, im not sure.
i tried also with Script listeners (trigerred on genericevent) but the same problem =(

 

Suggest an answer

Log in or Sign up to answer
Atlassian Community Anniversary

Happy Anniversary, Atlassian Community!

This community is celebrating its one-year anniversary and Atlassian co-founder Mike Cannon-Brookes has all the feels.

Read more
Community showcase
Fadoua M. Boualem
Published Monday in Trello

Using Trello to manage events

As a Jira power user, I was at first doubtful that Trello could benefit my workflow. Jira already uses boards (ones you can customize!), so why would I even need to use Trello?! In this post you will...

474 views 7 8
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you