Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The button can be a primary screen where you can select the country. The screen script for the first button lets you select the available countries. 

Code Block
BA_use "poweraction";

setActionTitle("Country");

string[] countries = {"USA", "Canada", "The Netherlands"};
BA_createSelectList("Country", countries, "", false, true, "Select the country where you are based");

BA_setExecuteButtonText("Next");
Info

By declaring the package (line 1) the script can now use the shortened version of the routine names. So instead of using BA_setActionTitle("Country") we can simply write setActionTitle("Country").

In the action script of the button we need to get the value from the screen and save it into an auxiliary value:

Code Block
use "poweraction";

string country = BA_getSingleValue(argv, "Country");
BA_setBlitzAttribute("country", country);

After a user selects a country, they should be selecting a further filtering parameter – department. In this case, the screen script should look like this:

Code Block
BA_use "poweraction";

setActionTitle("Department");

string[] departments = {"HR", "Sales", "IT"};
BA_createSelectList("Department", departments , "" ,false, true, "Select the department that best applies for your request");

BA_setExecuteButtonText("Next");

In the action script of the first step, we need to get the value from the screen and save it into an auxiliary value:

Code Block
use "poweraction";

string department = BA_getSingleValue(argv, "Department");
BA_setBlitzAttribute("department", department);

The last screen provides a list of users that are in the selected country and work in the selected department.
Thus, the select script will consider the values set in the previous screens.

Code Block
BA_use "poweraction";

setActionTitle("User");

string country = BA_getBlitzAttribute("country");
string office = BA_getBlitzAttribute("department");

string[] users;
string[] usersInDepartment = usersInGroups(department);

for (string user in usersInDepartment) {
    if (getUserProperty(user, "country") == country) {
        users = addElement(users, user);
    }
}

BA_createSelectList("User", users, "", false, true, "Select the person to help you");

In the action script, we only set the selected value as the assignee:

Code Block
use "poweraction";

string user = BA_getSingleValue(argv, "User");
assignee = user;

...

After the last screen executes, the assignee of the current issue will be set to the value selected in the User field - "josh" in this case.

See also

Example 2 - Logging work as another user