Tabx offers a way to script the management of Single Categorical Variables, Multi Categorical variables and Groups within a Project. The Batch Script tool can be found in the Edit Project page > Script Tab. A Batch script is simply a spreadsheet with two columns inside: "Instruction" and "Value".
When parsed and executed, Tabx walks through the instructions row by row and uses any value it needs to in the "Value" column.
To run a Batch Script, simply upload the excel file and press Run. Tabx will display an output of all actions taken, as well as any errors within the script, after the script executes. To get a preview of what Tabx will do without making any additions or edits to the current Project, press Preview instead of Run. If the script output is correct, reupload the batch script to execute.
The available instructions are:
General | |||
---|---|---|---|
Instruction | Outcome | Expected values | Errors on: |
FOR_PROJECT | Ties a batch script so it will only run on a project with the defined name in the value column. This is recommended to prevent scripts from running accidentally in similar projects. FOR_PROJECT is optional in a batch script file. | String of the project name to tie this batch script file to. | If the project name is not the project this batch script is being uploaded to (prevents all further execution) |
Single Categorical Variables | |||
Instruction | Outcome | Expected values | Errors on: |
EDIT_SINGLE* | Tabx begins an edit of a Single type variable already in the Project | The Tabx Single identifier |
If already within another definition operation. |
END_EDIT_SINGLE* | Tabx makes the edit to a current Single type variable within the Project | "YES" or Blank | If EDIT_SINGLE has not yet been called. |
SINGLE_LABEL | Set the Label Text of the current definition. | String of text to use as Label | If EDIT_SINGLE has not yet been called. |
SINGLE_GROUP | Set the Group of the current definition. | Positive integer in range 1 – 20. Defaults to 0 (No Group) if not set. | If EDIT_SINGLE has not yet been called. |
SINGLE_FILTER | Set whether a filter in the current definition. | "YES" or "NO". Defaults to "NO" if not set. | If EDIT_SINGLE has not yet been called. |
SINGLE_SUBSET | Set whether a filter in the current definition. | "YES" or "NO". Defaults to "NO" if not set. | If EDIT_SINGLE has not yet been called. |
SINGLE_CATEGORY | Define which Answer Code's Label to edit with a following SINGLE_CAT_LABEL instruction. | Positive integer of the Answer Code | If EDIT_SINGLE have not yet been called. If answer code does not exist in variable. If next row is not a SINGLE_CAT_LABEL instruction. |
SINGLE_CAT_LABEL | Set the label text for an Answer Category within the current definition. | String of text to use as label. Defaults to "No Label" if not set. | None – is ignored unless called directly after a SINGLE_CATEGORY instruction. |
Multi Categorical Variables | |||
Instruction | Outcome | Expected values | Errors on: |
START_NEW_MULTI** | Tabx sets up a new Multi Categorical Variable definition to add meta data into. | Blank, or your chosen reference to this Multi Variable. Note: This will be stored as the "given_name" for this Multi inside Tabx, but from the point of creation, Tabx will use its own identifier for making batch edits. Be sure to use the Tabx identifier when using the EDIT_MULTI instruction. | If already within another definition operation. If already Editing a Multi via EDIT_MULTI command. |
END_NEW_MULTI** | Tabx closes the current Multi definition and adds it to the list of current Multi’s | "YES" or Blank | If START_NEW_MULTI has not yet been called.If MULTI_LABEL has not yet been called (Definition has no Variable Label).If MULTI_CATEGORY has not yet been called (Definition contains no categories). |
EDIT_MULTI** | Tabx begins an edit of a Multi already in the Project | The Tabx Multi identifier, always in the format MX, where X = a positive integer. | If already within another definition operation.If already Editing a Multi via EDIT_MULTI command. |
END_EDIT_MULTI** | Tabx makes the edit to a current Multi within the Project | "YES" or Blank | If EDIT_MULTI has not yet been called. If MULTI_CATEGORY has not yet been called (Definition contains no categories). |
MULTI_LABEL** | Set the Label Text of the current Multi definition. | String of text to use as Label | If EDIT_MULTI or START_NEW_MULTI have not yet been called. |
MULTI_GROUP | Set the Group of the current New or Edit definition. | Positive integer in range 1 – 20. Defaults to 0 (No Group) if not set. | If EDIT_MULTI or START_NEW_MULTI have not yet been called. |
MULTI_FILTER | Set whether a filter in the current New or Edit definition. | "YES" or "NO". Defaults to "NO" if not set. | If EDIT_MULTI or START_NEW_MULTI have not yet been called. |
MULTI_CATEGORY* | Set a single-type variable to use within the current New or Edit definition. | Single-type variable name. | If EDIT_MULTI or START_NEW_MULTI have not yet been called.If single-type variable does not exist in project.If single-type variable chosen is not Multi-Friendly (Uses Codes 0 and 1).If next row is not a MULTI_CAT_LABEL instruction. |
MULTI_CAT_LABEL | Set the label text for an Answer Category within the current New or Edit definition. | String of text to use as label. Defaults to "No Label" if not set. | None – is ignored unless called directly after a MULTI_CATEGORY instruction. |
Groups | |||
Instruction | Outcome | Expected values | Errors on: |
EDIT_GROUP | Tabx begins an edit of a Group already in the Project | Positive integer in range 1 – 20. | If already within another definition operation. If the value is not in the range 1-20 |
END_EDIT_GROUP | Tabx makes the edit to a current Group within the Project | "YES" or Blank | If EDIT_GROUP has not yet been called. |
GROUP_LABEL | Set the Label Text of the current Group definition. | String of text to use as Label | If EDIT_GROUP has not yet been called. |
* Required as part of a Single type variable Definition
** Required as part of a Multi Definition
Your batch script must adhere to the following rules to execute correctly:
When executing your batch script, Tabx does the following:
Below is an example script that adds two new multi’s to the Project and edits the categories for existing Tabx Multi "M1". It will only execute for the project named "Demo Project".
Instruction | Value | Comment |
FOR_PROJECT | Demo Project | //tie this batch script to the "Demo Project" project. |
START_NEW_MULTI | eaten_1_3 | //start a new multi definition |
MULTI_LABEL | Have you eaten the following in the last 30 days? | |
MULTI_GROUP | 1 | |
MULTI_FILTER | YES | |
MULTI_CATEGORY | eaten_1 | |
MULTI_CAT_LABEL | Snickers | |
MULTI_CATEGORY | eaten_2 | |
MULTI_CAT_LABEL | Mars | |
MULTI_CATEGORY | eaten_3 | |
MULTI_CAT_LABEL | Twirl | |
END_NEW_MULTI | YES | |
START_NEW_MULTI | eaten_4_5 | //start a new multi definition |
MULTI_LABEL | Have you eaten the following in the last 30 days? | |
MULTI_GROUP | 1 | |
MULTI_FILTER | YES | |
MULTI_CATEGORY | eaten_4 | |
MULTI_CAT_LABEL | Cream Egg | |
MULTI_CATEGORY | eaten_5 | |
MULTI_CAT_LABEL | Kit Kat | |
END_NEW_MULTI | YES | |
EDIT_MULTI | M1 | //Edit M1 with new categories and labels. |
MULTI_LABEL | Have you eaten the following in the last 90 days? | |
MULTI_GROUP | 2 | |
MULTI_FILTER | NO | |
MULTI_CATEGORY | eaten_1 | |
MULTI_CAT_LABEL | Snickers | |
MULTI_CATEGORY | eaten_2 | |
MULTI_CAT_LABEL | Mars | |
MULTI_CATEGORY | eaten_3 | |
MULTI_CAT_LABEL | Twirl | |
END_EDIT_MULTI | YES |