I am writing a listener in Scriptrunner to update another app with info when Service Desk issues are created/updated. But these issues have different fields depending on what they were for.
I know I can grab field data by name but is there some way I can grab them dynamically so that this listener could cover any of the issues?
Hello,
You could get all changes for the issue been updated by the following code
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def change = event?.getChangeLog()?.getRelated("ChildChangeItem").find {do something}
Thanks. Later in the day, when I changed my search params, I had found something similar:
List<HashMap<String, Object>> fieldsModified = event.getChangeLog()?.getRelated('ChildChangeItem') as List<HashMap<String, Object>>;
for (HashMap<String, Object> field : fieldsModified)
{
log.debug("Field: (${field['field']}), old value: (${field['oldstring']}), new value: (${field['newstring']}).");
}
While this doesn't give any errors in the Custom Listeners script window it doesn't give me anything in the logs like I would have expected.
Anyway, still playing with it but thanks for the answer.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
got this outputting finally, changed log.debug to log.warn.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.