Struct Actions
Struct actions are complex data actions designed to be used with XINA Structs. Unlike most API actions, they may involve complex multi-step operations, and are dependent on the structs configuration of groups and databases.
Data Actions
STRUCT BUFFER IMPORT
Imports a buffer source file into a model.
Property | Value | Req | Default |
---|---|---|---|
action | "struct_buffer_import" |
✓ | |
model | model group specifier | ✓ | |
origin | origin name | ✓ | |
object_id | object ID of data file | ✓ | |
format | string |
✓ | |
conf | jsonobject |
||
strict_units | boolean |
false |
If the mn
column is an integer it will be interpretted as a literal mnemonic ID. Otherwise the name will be parsed from this format:
<name>[(<unit>[;n0=v0|n1=v1|...])]
<name>
will be used for the mnemonic name lookup. The comparison is case insensitive and any whitespace is treated as a single underscore. <unit>
is optional. If provided, it must match the unit of an associated mnemonic definition, otherwise an error is thrown. The section after unit defines discrete value mapping.
When a data set is imported the XINA server will run the following steps:
- For each row:
- validate time and value
- process mnemonic
- If mnemonic ID
- If found in definitions database:
- If mnemonic is deprecated, throw error
- Else, use mnemonic for row
- Else, throw error due to unrecognized ID
- If found in definitions database:
- Else, parse name and optional unit
- If name match found:
- If unit is provided and does not match, throw error
- If mnemonic is deprecated, throw error
- Else, use mnemonic for row
- Else, mnemonic is new, create new temporary mnemonic definition based on provided information
- If name match found:
- If mnemonic ID
- If any rows contain same mnemonic and time, throw error
- Check for time overlap in database
- If found
- If
on_overlap
=fail
, throw error - Else If
on_overlap
=delete
, delete all data from database in time range of imported data - Else (
on_overlap
=ignore
), do nothing
- If
- If found
- If new mnemonic definitions created, insert into mnemonic definition database
- Insert data into mnemonic database
STRUCT MN ALIAS
Adds one or more aliases of name/unit pairs to a single existing mnemonic.
Property | Value |
---|---|
action |
"struct_mn_edit" |
database |
mnemonic definition database specifier |
mn |
mnemonic ID |
aliases |
string[] , name/unit pair alias(es) for mnemonic |
STRUCT MN EDIT
Edits one or more properties of a single existing mnemonic.
Property | Value | Required |
---|---|---|
action |
"struct_mn_edit" |
✓ |
database |
mnemonic definition database specifier | ✓ |
mn |
mnemonic ID | ✓ |
name |
string , new name/unit pair for mnemonic |
|
state |
string |
STRUCT MN MERGE
Merges one or more existing mnemonics into a single existing mnemonic.
STRUCT INT OPEN
Opens one or more intervals in a model.
STRUCT INT CLOSE
Closes one or more intervals in a model.
Schema Actions
STRUCT CREATE
The STRUCT CREATE action is used to create a variety of XINA Structs compatible schema elements.
STRUCT CREATE PROJECT
Creates a structs project group.
Property | Value | Req | Default |
---|---|---|---|
action | "struct_create" |
✓ | |
create | "project" |
✓ | |
parent | group specifier | ||
name | string |
✓ | |
label | string |
name | |
desc | string |
label |
If a parent
group is specified, it may not include a structs definition (since project groups must be at the top level of a struct heirarchy). The name
(and label
, if provided) must not be in use by any group siblings, or the action will fail.
STRUCT CREATE CATEGORY
Creates a structs category group.
Property | Value | Req | Default |
---|---|---|---|
action | "struct_create" |
✓ | |
create | "category" |
✓ | |
parent | group specifier | ✓ | |
name | string |
✓ | |
label | string |
name | |
desc | string |
label |
The parent
group must be either a project group or category group, or the action will fail. The name
(and label
, if provided) must not be in use by any group siblings, or the action will fail.
STRUCT CREATE MODEL
Creates a structs model group.
Property | Value | Req | Default |
---|---|---|---|
action | "struct_create" |
✓ | |
create | "model" |
✓ | |
parent | group specifier | ✓ | |
name | string |
✓ | |
label | string |
name | |
desc | string |
label | |
event | boolean |
false |
|
eventf | boolean |
false |
|
eventfs | boolean |
false |
|
group_teams | team group privilege map | ||
database_teams | team database privilege map |
The parent
group must be either a project group or category group, or the action will fail. The name
(and label
, if provided) must not be in use by any group siblings, or the action will fail.
STRUCT CREATE ORIGIN
Creates a structs origin group.
Property | Value | Required | Default |
---|---|---|---|
action | "struct_create" |
✓ | |
create | "origin" |
✓ | |
model | group specifier | ✓ | |
name | string |
✓ | |
label | string |
name | |
desc | string |
label | |
event | boolean |
false |
|
eventf | boolean |
false |
|
eventfs | boolean |
false |
|
group_teams | team group privilege map | ||
database_teams | team database privilege map | ||
partition | boolean or {"from": <start year>, "to": <end year>} |
false |
The parent
group must be either a project group or category group, or the action will fail. The name
(and label
, if provided) must not be in use by any group siblings, or the action will fail.
STRUCT CREATE DEF
Creates a structs definitions group, with associated databases.
Property | Value | Req | Default |
---|---|---|---|
action | "struct_create" |
✓ | |
create | "def" |
✓ | |
parent | group specifier | ✓ |
The parent
group must be either a project, category, or model group, or the action will fail.
STRUCT CREATE EVENT
Creates a new structs event database.
Property | Value | Req | Default |
---|---|---|---|
action | "struct_create" |
✓ | |
create | "event" |
✓ | |
group specifier | ✓ | ||
type | "none" , "file" , or "files" |
"none" |
|
name | string | "event" , "eventf" , or "eventfs" |
|
label | string | name | |
desc | string | label | |
singular | string | "event" |
|
plural | string | singulars |
|
conf | JSON object | ||
fields | array of field definitions | ||
teams | team database privilege map |
STRUCT CREATE NOTEBOOK
Creates a new structs notebook database.
Property | Value | Req | Default |
---|---|---|---|
action | "struct_create" |
✓ | |
create | "notebook" |
✓ | |
parent | group specifier | ✓ | |
name | string | ✓ | |
label | string | name | |
desc | string | label | |
fields | array of field definitions | ||
teams | team database privilege map |