Unique Action Permissions

Updating Automatically

Run the following query in Axon to automatically assign permission levels to all Emergency actions(9), Override actions (6), and all else "set/default/etc" to (3).

finUniqueActions().map(row => finActionsRewrite(actions, {dis:row->dis, expr: row->expr}, {hvac_finCat: if(row->expr.contains("Emergency")) 9 else if(row->expr.contains("Override")) 6 else 3})[0])

Folio Instructions:

  1. Copy the entire axon query listed above

  2. Go To Folio

  3. Paste and run the axon query into Folio

  4. Verify that all your actions got a category by typing in "finUniqueActions"

We recommend placing the above axon query into a "job" so you can avoid any "timeouts" (on larger databases) and so you can have the job saved for any time you add new points with actions that need permissions. 

Job download file: ActionPermissionsJob.zip 

Job Instructions:

  1. Download the "ActionPermissionsJob.zip" listed directly above

  2. In FIN Stack, click on the "Folio" app (in the right menu)

  3. Select "Restore"

  4. Get out of the Folio app, and go into the "Jobs" app (in the right menu)

  5. Click on the "Action Permissions - Auto" Job

  6. Click the "Run" option to begin the job. 

    1. Depending on your database's size, this may take anywhere from 10 seconds to 4minutes to complete

  7. Verify that all your actions got a permission level set by running "finUniqueActions()" in Folio

Updating Manually 

1.First find all sets of unique actions: readAll(point and actions).unique("actions")

2. Use one point from each of the unique sections returned from the first query and plug its id into the query below to get a list of all actions that have the same steps: readAll(point and actions==read(id==@1eeb0a1b-e62962c7)→actions)

3. Tag the results with a unique tag so you can later do a "clone [action] tag" to all of those unique sets. Repeat 2&3 until you have a unique tag (temporary) for each unique set.

4. If you do not want to get results form step 3, you can automatically find all similar action points and tag them in the same exact step (combine step 2 & 3) by using the following query: readAll(point and actions==read(id==@1eeb0a1b-e62962c7)->actions).toRecList().map x=> x.diff({testTag}).commit()

5. when your are done tagging each point, you can then go and perfect 1 point from each unique set, and use the clone tags tool to clone it to each of the points in the same set using the tag you assigned them in steps 3/4. 

6. Repeat step 5 until all points are the way you want them and then remove the unique tags. 

To find unique expressions run this as an example: (you can find the dis by running findUniqueActions: readAll(point and actions).findAll(v => v->actions.contains("Manual Off"))