Script examples
Example: Append new records to a table
This scrip creates a new table and fills it with data from an already existing table, where one column will be updated with new data.
Input table:

DS_periodDates
date
dayStatus
2019-12-01
Confirmed
2019-12-02
Reported
2019-12-03
3 hours left to report
2019-12-04
8 hours left to report
DS_favorites
customerId
customerName
project
accountDate
3245
abc
4565
2019-12-01
2456
adc
5465
2019-12-01
5974
acb
4564
2019-12-01
Script:
let generatedFavorites = table(customerId, customerName, project, accountDate, objversion, objid);
for recDate in DS_periodDates do
if recDate.date < now() and (recDate.dayStatus like '%hours left to report' or recDate.dayStatus = 'Reported') then
for recFavorite in DS_favorites do
let addedFavs = recFavorite with [accountDate: recDate.date];
set generatedFavorites = generatedFavorites & addedFavs;
done
end
done
return generatedFavorites;
Description:
A new table is created: generatedFavorites (row 1 in script below)
The script will loop for every row in table DS_periodDates (3) where the date is in the future and the day status is like '%hours left to report' or 'Reported' (5)
The script will loop for every row in table DS_favorites (7) where the account date in DS_favorites will be updated with the date from DS_periodDates (9)
The script adds the result from each loop iteration to generatedFavorites by concatenating the row with table addedFavs (11)
The script returns generatedFavorites (19)
Output table:

generatedFavorites:
customerId
customerName
project
accountDate
3245
abc
4565
2019-12-02
2456
adc
5465
2019-12-02
5974
acb
4564
2019-12-02
3245
abc
4565
2019-12-03
2456
adc
5465
2019-12-03
5974
acb
4564
2019-12-03
3245
abc
4565
2019-12-04
2456
adc
5465
2019-12-04
5974
acb
4564
2019-12-04
Example: Join in to a record
This script joins values and assign the values to new variables.
Input variables:

Script:
let criticalBugsNoTeamJoinedKey = '0';
let criticalBugsNoProgressJoinedKey = '0';
let criticalBugsNotStaredJoinedKey = '0';
if count(criticalBugsNoTeam) > 0 then
set criticalBugsNoTeamJoinedKey = Join(criticalBugsNoTeam.key,'%27%2C%27');
end
if count(criticalBugs) > 0 then
set criticalBugsNoProgressJoinedKey = join(criticalBugs.key,'%27%2C%27');
end
if count(criticalBugsNotStarted) > 0 then
set criticalBugsNotStaredJoinedKey = join(criticalBugsNotStarted.key,'%27%2C%27');
end
let joined= [criticalBugsNoTeamJoinedKey: criticalBugsNoTeamJoinedKey, criticalBugsNoProgressJoinedKey: criticalBugsNoProgressJoinedKey, criticalBugsNotStaredJoinedKey: criticalBugsNotStaredJoinedKey];
return joined;
Output variable:

Example: Convert a complex table into a simple table
This script will create a simple table where for example join is used to join all components together in to one string so all values can be put in to one column.
Input table:
The input table blockerBugsFiltered is a complex table with differnt levels of tables, records and simple values in the table.

Script:
let blockerBugs = table (key, summary, description, priority, components, assignee, created);
for rec_ in blockerBugsFiltered do
let joinComponents = join(rec_.fields.components.name, ', ');
set blockerBugs = blockerBugs & [key: rec_.key, summary: rec_.fields.summary, description: rec_.fields.description, priority: rec_.fields.priority.name,
components: joinComponents, assignee: rec_.fields.assignee.displayName, created: left(rec_.fields.created,10)];
done
return blockerBugs;
Description:
A new table is created: bockerBugs (row 1 in script below).
The script will loop for every row in table blockerBugsFiltered (3).
Join the values in the components table (5).
Append new records to table blockerBugs (7).
The script returns the table blockerBugs (12).
Output table:
The output of this script will be a simple table including only simple values.

Last updated
Was this helpful?