Advanced Scripting
[Work in progress]
Advanced Rules are more difficult to use, but they are much more powerful than the other rules.
User scriptable rules (JavaScript) have access to 4 parameters, instead of just 1. The rules that fall into this category are:
Text Manipulation (import / export)
Text Evaluation (display)
Export Manipulation (export only)
Parameters of a rule
The parameters available to these rules are listed below:
s
The current string value from the source
Can be modified by previous rule
rowData
The entire row's data (all the cell values, modifications, differences, etc.)
Cannot be modified, read-only
p
The pass / block value
Cannot be modified, read-only
pm
The property mapping object
Contains additional options such as "Is it read-only"
Typical rules only manipulate or use the string value s
which is passed to it. The table above lists the data to which special rules have access to. It allows for much greater scripting capability.
When the rule is an Import or Export Text Manipulation
rule, the result of the rule must always be a string
or a representation of a string
such as a JavaScript object
(JSON) which has been serialized. If it does not return a value you may experience unexpected results in the UI, possibly even instability (BOM view not rendering).
The result must be an object containing a 'message' key, e.g.
The resultant message is displayed onscreen during a rule evaluation failure
s
The current string value in the cell (changes with each successive import rule or export rule (if there are any)
rowData
The rowData object (more detail below **)
p
The pass / block value, does not change
pm
The Property Mapping's object. Does not change. (** more detail below)
s
Parameter
s
ParameterThe s
parameter is the representation of the cell value. Most of the time this is a value of type string
but sometimes it can be a type JSON object
or a JSON array
(if using say an import manipulation rule to change the type).
It is important to note that the s
parameter is a per-source value. It is not shared between sources.
Below is a graphic representing how the value is treated and displayed onscreen
rowData
Parameter
rowData
Parameter The rowData
is the row itself including any cells, differences or modifications. It contains, but is not limited to, the following key/values:
isAssemblyRow
A bool value indicating if the current row value is an assembly row (contains children according to the source)
componentName
The primary identifier of each row - typically the name of the component
componentPathArray
The path of each component. So if you have assembly A1, with Part P1, then this value will be [ 'A1', 'P1' ]
cells
The row values for the entire row. A typical row object might look something like this (notice the nested `cells` key):
modifications
primarySourceExportData
object containing the final set of data to send to the Primary Source. This is the final set of values to be sent.
secondarySourceExportData
object containing the final set of data to send to the Secondary Source. This is the final set of values to be sent
p
Parameter
p
ParameterThe p
parameter is the PassOrBlock
value specified in the Property Mapping Rule options.
pm
Parameter
pm
ParameterisReadOnly
Whether the admin has selected this property as editable
isVisible
Whether the admin has selected this property as visible by default
shouldUpdatePrimaryDatasource
Whether to update the Primary Source
shouldUpdateSecondaryDatasource
Whether to update the Secondary Source
Last updated