Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Why is the attribute value not removed via the listener?

Alex
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
December 12, 2023

Hi, atlassian community!

I maked code , and my problem is that it's worked in "Script console",

but not worked  in "Listeners".


My script clear value Objecrt attribute.

Code from "console" :

 

import java.lang.String
import com.onresolve.jira.groovy.user.FieldBehaviours
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.ObjectTypeAttributeFacade
import com.riadalabs.jira.plugins.insight.services.model.ObjectBean
import groovy.transform.BaseScript
import com.onresolve.scriptrunner.runner.customisers.WithPlugin

@WithPlugin
('com.riadalabs.jira.plugins.insight')
@BaseScript FieldBehaviours fieldBehaviours
@PluginModule ObjectFacade objectFacade
@PluginModule ObjectTypeAttributeFacade objectTypeAttributeFacade

String con = "CON-402706" //

def objectCon = objectFacade.loadObjectBean(con)
def conOtrl = objectTypeAttributeFacade.loadObjectTypeAttributeBean(6440).createMutable()// ID
def conOtrlArrayData = objectFacade.loadObjectAttributeBean(objectCon.getId(), conOtrl.getId())
//def obdelete = objectFacade.deleteObjectAttributeBean(conOtrlArrayData.getId())

console.png

For the listener I made it like this: 

import java.lang.String
import com.onresolve.jira.groovy.user.FieldBehaviours
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.ObjectTypeAttributeFacade
import com.riadalabs.jira.plugins.insight.services.model.ObjectBean
import groovy.transform.BaseScript
import com.onresolve.scriptrunner.runner.customisers.WithPlugin

@WithPlugin('com.riadalabs.jira.plugins.insight')
@BaseScript FieldBehaviours fieldBehaviours
@PluginModule ObjectFacade objectFacade
@PluginModule ObjectTypeAttributeFacade objectTypeAttributeFacade

logObjectKey = event.getObjectBean().getObjectKey()
log.warn("get key object: " + logObjectKey)

logObjectTypeId = event.getObjectBean().objectTypeId
log.warn("get id type object: " + logObjectTypeId)

if(logObjectTypeId != 448){ // validator ObjectTypeId "CON" (id = 448)

return false

}

else {

String con = logObjectKey // Get object "CON-281355"

def objectCon = objectFacade.loadObjectBean(con)
def conOtrl = objectTypeAttributeFacade.loadObjectTypeAttributeBean(6440).createMutable()// ID attribute
def conOtrlArrayData = objectFacade.loadObjectAttributeBean(objectCon.getId(), conOtrl.getId())
def obdelete = objectFacade.deleteObjectAttributeBean(conOtrlArrayData.getId())

}

 

listener.png

But it gives an error :  

2023-12-12 15:32:47,460 WARN [runner.ScriptBindingsManager]: get key object: CON-402706
2023-12-12 15:32:47,460 WARN [runner.ScriptBindingsManager]: get id type object: 448
2023-12-12 15:32:47,489 ERROR [runner.AbstractScriptListener]: *************************************************************************************
2023-12-12 15:32:47,490 ERROR [runner.AbstractScriptListener]: Script function failed on event: com.riadalabs.jira.plugins.insight.services.events.objects.event.InsightObjectUpdatedEvent, file: null
com.riadalabs.jira.plugins.insight.common.exception.ValidationInsightException: ValidationInsightException: Validation errors were found: rlabs-insight-attribute-3725: ErrorMessage{i18nKey='rlabs.insight.i18n.constraint.violation.unique', parameters=[Идентификационный номер], additionalMessage=null};
at com.riadalabs.jira.plugins.insight.channel.external.api.facade.impl.ObjectFacadeImpl.deleteObjectAttributeBean(ObjectFacadeImpl.java:252)
at com.riadalabs.jira.plugins.insight.channel.external.api.facade.ObjectFacade$deleteObjectAttributeBean$1.call(Unknown Source)
at Script175.run(Script175.groovy:34)

 

What am I doing wrong ?

Event doesn't work...

1 answer

1 accepted

0 votes
Answer accepted
Alex
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
December 12, 2023

I finded workaround . Apparently this is an "Assets" bug

My solution:

im added 

Thread.sleep(1000

before the line :

def obdelete = objectFacade.deleteObjectAttributeBean(conOtrlArrayData.getId())

and it worked !

More details here : https://community.developer.atlassian.com/t/validationinsightexception-when-updating-assets-attributes/67425/2

Suggest an answer

Log in or Sign up to answer