Forums

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

Scriptrunner Behavior script help [populate username when checkbox checked]

Teja
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 22, 2021

Hi Folks,

I have been trying to populate the current username for the user picker field upon checking the checkbox as Approved, when uncheck Approved clear username.

RCT Late Approval [] Approved (Checkbox)

RCT Late Approver (Single user picker)

tried below code did not work 

//Populate username//
import groovy.transform.BaseScript
import com.onresolve.jira.groovy.user.FieldBehaviours
import com.atlassian.jira.component.ComponentAccessor

@BaseScript FieldBehaviours fieldBehaviours

def rctLate = getFieldByName("RCT Late Approval")
def rctLateApproval = rctLate.getValue() as String

if (rctLateApproval == "Approved")
{

def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
def funcCompleteApprover = getFieldById("customfield_13606")  //customfield_13606 RCT Late Approver
funcCompleteApprover.setFormValue(currentUser.username)

}

Need help.

Regards
T

1 answer

0 votes
Mohamed Benziane
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
December 22, 2021

Hi @Teja 

What error do you have ?

Can you try this

funcCompleteApprover.setFormValue(currentUser.getUserame())

instead of

funcCompleteApprover.setFormValue(currentUser.username)

https://docs.atlassian.com/software/jira/docs/api/7.0.6/com/atlassian/jira/user/ApplicationUser.html

Teja
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 22, 2021

@Mohamed Benziane 

I don't see any logs error using above script.

When I change `username` to `getUsername()`

I see error like this

User1.PNG

Infact, If I use only script without checkbox if condtion the user population works fine

import groovy.transform.BaseScript
import com.onresolve.jira.groovy.user.FieldBehaviours
import com.atlassian.jira.component.ComponentAccessor

@BaseScript FieldBehaviours fieldBehaviours


def rctLate = getFieldByName("RCT Late Approval")
def rctLateApproval = rctLate.getValue() as String

//if (rctLateApproval == "Approved"){


def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
def funcCompleteApprover = getFieldById("customfield_13606")
funcCompleteApprover.setFormValue(currentUser.username)

User2.PNG

Note: Script that I using in the Initialiser

Regards
Teja

Teja
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 27, 2021

Hi @Mohamed Benziane 

Tweak in the if condition works now

import groovy.transform.BaseScript
import com.onresolve.jira.groovy.user.FieldBehaviours
import com.atlassian.jira.component.ComponentAccessor

@BaseScript FieldBehaviours fieldBehaviours

def rctLate = getFieldByName("RCT Late Approval")
def rctLateApproval = rctLate.getValue() as String
def funcCompleteApprover = getFieldById("customfield_13606") 

if (rctLateApproval?.contains ("Approved")){
    def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
    //customfield_13606 RCT Late Approver
    funcCompleteApprover.setFormValue(currentUser.username)
}else{
    funcCompleteApprover.setFormValue("")
}

Thanks

Suggest an answer

Log in or Sign up to answer