Versions Compared

Key

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

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:

...

Info

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

Here you can browse for an excel sheet in your file directory by clicking Choose Files and selecting an .xlsx file

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.

...

In general most values are straight forward.

...

The importer feature will cast your input value into whatever data type it requires.

...

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

The server expects data in this JSON format.

Code Block
"groupids": [1, 2]

In excel we use (index) to represent the entries

You can add as many entries to the array in this manner. Empty values would be set to default.

Image Removed

Objects

...

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

Info

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.

...

The server expects data in this JSON format.

Code Block
"myobject": {
    "key1": "value1",
    "key2": 100
}

In excel we use _ to represent the relation

You can add the keys you want to set, unset keys would be set to their default values

Image Removed

More complex data: Array of Objects

An example of this is trigger conditions in Edge ACM tags.

The configuration appears like this in the site:

...

This data then gets translated to

Code Block
languagejson
"triggerconditions": [
      {
          "condition": "Greater Than or Equal to",
          "value": 1,
          "quality": "High"
      },
      {
          "condition": "Equals",
          "value": 0,
          "quality": "Triggered"
      }
],

The equivalent in excel is complex at first, but easy to replicate

...

To explain,

triggerconditions(0)_condition indicates that this property is part of an array of objects, where this specific value for condition in the first (index 0) entry of the array.

triggerconditions(1)_quality would indicate the quality in the second (index 1) entry and so on.

<key>(index)_<inner_key> allows us to parse the contents of a grid and transform the data into a more complex shape.

...

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