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())
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())
}
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...
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.