I would like a successful Post Function to Transition to one status, whereas an error would transition to a different status.
Is this capability supported?
since you want to trigger one transition if the REST call succeeds, and another transition if the REST call fails, the easiest is to use a single Transition Issue(s) post function and use a calculated transition, based on the result of the REST call.
The Calculated Transition script is:
{% if "https://graph.microsoft.com/v1.0/groups/:groupid/members/$ref" | callRest(
verb="post",
dontFail=true,
body= { "@odata.id": ("https://graph.microsoft.com/v1.0/directoryObjects/" +userid)},
params= { "groupid":groupid},
options= {
'auth': {
'bearer': token
},
headers: {
"ConsistencyLevel": "eventual"
}
}
) | field("_statusCode") != 204
-%}
To Pending
{%- else -%}
To Done
{% endif %}
Note that field("_statusCode") != 204 is a little fake, as in reality _statusCode will only be returned in case of an error. So basically you could just test field("_statusCode") != null
Also note the added dontFail=true parameter.
"To Pending" is the name of the transition that needs to be triggered if the REST call fails, and "To Done" is the name of the transition that needs to be triggered if the REST call succeeds. Ideally, you should replace them with transition IDs (numbers) instead of names, in case you later rename the transitions.
What do you mean by "whereas an error would transition to a different status"? Can you clarify and provide "Error" definition?
Are you saying that if something goes wrong in the post function call, you want a different status to be transition into?.
Please advise.
Best, Joseph Chung Yin
Jira/JSM Functional Lead, Global Infrastructure Applications Team
Viasat Inc.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
As in if the post function returns a 200 aka it was successful it transitions to done, but failures transition back to pending
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks for the update.
In this case, you will need to have multiple post-function calls (i.e. multiple "Transition Current Issue Post-function" setup) and within those calls use "condition execution" setup - One for "Done" and other one for "Pending"
The key is to have a custom post function that will populate a field with the "200 aka" value prior to your ""Transition Current Issue Post-function"" calls. So your JMWE post function for the WF transitions can detect the return value.
Hope this makes senses.
Best, Joseph
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I'm not sure how I would do that if the previous post function is what returns that upon success.
Wouldn't you more likely build something into the initial post function with an if statement or something? An example if you have one would be really helpful as this is new to me.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You can use JMWE "Scripted (Groovy) operation on issue" post function call to construct your IF logic to set the custom field with the returned value. Take a look at - https://innovalog.atlassian.net/wiki/spaces/JMWE/pages/139635057/Scripted%2BGroovy%2Boperation%2Bon%2Bissue
If you are familiar Groovy, then you can even just use the post function above to conduct your issue transition... Here is an example posting on using Groovy script to transition issues - https://community.atlassian.com/t5/Jira-questions/How-to-transition-an-issue-from-a-groovy-script-in-JIRA/qaq-p/917751
Best, Joseph
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I might be confused so let me show you what I'm doing.
The end result is I have a Post that does this: (Adds a Member to an AD Group in Azure) Basically, once the ticket is approved, it transitions to "implementing" and the event-based action will do this callRest:
) | field("value") | first | field("id") %}
{{"https://graph.microsoft.com/v1.0/groups/:groupid/members/$ref" | callRest(
verb="post",
body= { "@odata.id": ("https://graph.microsoft.com/v1.0/directoryObjects/" +userid)},
params= { "groupid":groupid},
options= {
'auth': {
'bearer': token
},
headers: {
"ConsistencyLevel": "eventual"
}
}
) | dump(2)
}}
When you run that command it will return something like this:
HTTP/1.1 204 No Content
What I am trying to do is to get a transition from Implementing --> Done if the callRest returns a HTTP/1.1 204 No Content
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
What process in your Jira env conducting event based the callRest. You may need to conduct this process where event is fired and then conduct the transition via Jira REST APIs custom program.
I am not a technical developer, so I cannot provide you with Jira REST APIs programming.
Best, Joseph
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I set it as an Event-Based Action and POST function within there within JMWE
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Don't know if this helps - In the JMWE Event based wiki page section - https://innovalog.atlassian.net/wiki/spaces/JMWEC/pages/2128904193/Event-based+actions#Event-to-listen-to
Passing variables within a sequence
"Using the {% setContextVar %} Nunjucks tag you can pass data from one post-function to all subsequent post-functions."
It seems you can captured the return value from a event-based action, and then it can be referenced in the sequent post function calls. You can then reference the variable in the Condition execution in the Transition Issue Status post function.
I have not use JMWE event-based action yet, thus I cannot provide more detailed information for your ask. You may want to submit a support request to JMWE vendor for suggestion.
I look forward to their response to your ask.
Hope this helps.
Best, Joseph
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.