App Manager allows you to export and import configuration using an Excel spreadsheet.
Importing and Exporting spreadsheets
To access the Excel Export and Import functions, view the “Properties” of any app or object within the App Manager site:
Beneath the settings, you will see the following Tools section:
Hint: You can also Ctrl + Click on the item in the navigation tree to immediately open the Properties.
Export to Excel
This button will download a spreadsheet containing objects under the item that you are viewing. For instance, if you opened the properties for an App (Edge ACM, AUTOSOL MQTT, etc.) it will export all of the objects under the application. If you opened the properties for an Object (a folder, a tag group, etc.), it will export that object and it’s children. This will export a file of type .xlsx with each individual sheet representing an object type.
Import from Excel
To import configuration from an Excel spreadsheet, click the “Choose Files” button and browse to the .xlsx file you wish to import. Once loaded, click the “Import from Excel” button to complete the import process.
Editing configuration data in an Excel spreadsheet
The Excel configuration can vary in complexity based on object type. Most data types are easy to understand but some configuration items can be complex data structures that have to be represented in certain formats in excel. Most are straightforward and the Import process will convert the “value” from the sheet into the datatype required.
For instance, most properties for a “Tag” are simple. In the table immediately below, row 1 contains the name of the property to be set and each subsequent row represents the properties for a single “Tag”.
A | B | C | D | E | |
---|---|---|---|---|---|
1 | name | deadband | register | backfilltype | deadbandtype |
2 | ROCTags | 5 | 4001 | True | None |
3 | ModbusTags | 4 | 3001 | False | Every Scan |
4 | ControlLogixTags | 2 | 5001 | True | Absolute |
There are, however, more complex data formats that are also supported in the Excel spreadsheet.
Arrays
Arrays are lists of values. The values can vary in type from integers, to strings, etc. In the example below, we are importing a Publish Schedule including it’s name and list of Publisher Groups an array of “Publish Groups IDs” into the Publish Schedule property “groupids”. This can be visualized as a table of data with one column containing the name of the schedule, one representing the position within the array, and the third column, “groupids”, contains the ID of the individual publish groups. In this sheet, the “Name” is repeated multiple on each row to signify the same schedule.
A | C | D |
---|---|---|
Name | GroupID Position | Publisher GroupID |
ROCSchedule | 0 | 123 |
ROCSchedule | 1 | 275 |
ROCSchedule | 2 | 783 |
ModbusSchedule | 0 | 456 |
ModbusSchedule | 1 | 789 |
ModbusSchedule | 2 | 123 |
ControlLogixSchedule | 0 | 123 |
ControlLogixSchedule | 1 | 783 |
In the .xlsx file to be imported, the above data would transposed so that each Schedule is represented by a single row, with the position within array property placed within parenthesis adjacent to the property key (propertykey(position) ) e.g The column header for GroupID Position 0 is groupids(0), and all of the values for each Schedule that belong in GroupID Position 0 are in the same column.
A | B | C | D | … | AAAA | |
---|---|---|---|---|---|---|
1 | Name | groupids(0) | groupids(1) | groupids(2) | groupids(n) | |
2 | ROCSchedule | 123 | 275 | 783 | ### | |
3 | ModbusSchedule | 456 | 789 | 123 | ||
4 | ControlLogixSchedule | 123 | 783 |
The “position” in the array must always start at 0 and be entered in the spreadsheet in numerical order. As many entries can be added to the array as necessary.
Objects and Arrays of Objects
Objects are key-value pair structures that can contain one or more keys and values of any type. Using the Tag object again as an example, we want to import a tag and its “triggerconditions” property which contains an array of trigger conditions which each have their own property values. In the table below, we have two Tags named ROCTag and ModbusTab which each have two separate trigger conditions.
A | B | C | D | E |
---|---|---|---|---|
name | TriggerCondition Position | TriggerCondition Condition | TriggerCondition Value | TriggerCondition Quality |
ROCTag | 0 | Greater Than or Equal To | 15 | High |
ROCTag | 1 | Equal | 40 | Triggered |
ModbusTag | 0 | Greater Than | 5 | Low |
ModbusTag | 1 | Less Than | 2 | Triggered |
In the .xlsx file to be imported, the above data would transposed so that each the single Tag, ROCTags is represented by a single row, with the position within array property placed within parenthesis adjacent to the propertykey and propertykey of the triggercondition following an underscore. (tagpropertykey(position)_ triggerconditionpropertykey) e.g The column header for Trigger Condition Quality at Position 0 is “triggerconditions(0)_quality” and all of the qualities for all triggerconditions at position 0 for each Tag are in the same column.
A | B | C | D | E | F | G | |
---|---|---|---|---|---|---|---|
1 | Name | triggerconditions(0)_condition | triggerconditions(0)_value | triggerconditions(0)_quality | triggerconditions(1)_condition | triggerconditions(1)_value | triggerconditions(1)_quality |
2 | ROCTag | Greater Than or Equal To | 15 | High | Equal | 40 | Triggered |
3 | ModbusTag | Greater Than | 5 | Low | Less Than | 2 | Triggered |