Rule Template Parameters

Detail about what data rules have access to

User scriptable rules (JavaScript) have access to 3 parameters, not just 1. The rules that fall into this category are:

  • Text Manipulation (import / export)

  • Text Evaluation (display)

  • Export Manipulation (export only)

The parameters available to these rules are listed below:

Parameter
Description
Note

s

The 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

pm

The property mapping object

Contains additional options such as "Is it read-only"

In the table listed above, typical rules only have access to the string value s which is passed to it. The special rules listed above the table has access to more data which allows for much greater scripting capability.

The result of a rule must always be a string or a representation of a string such as a JavaScript object which has been serialized. If it does not return a value you may experience unexpected results in the UI, possibly even instability in attempting to render client side BOMs.

Param
Description

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

** The rowData value is a special value. It contains, but is not limited to, the following key/values:

Key name
Description of the value

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):

{
  "isAssemblyRow" : false,
  "componentName" : "Part 1",
  "componentPathArray" : [ "A1", "Part 1"],
  "cells" : {
     "partNumber" : "P1",
     "description" : "Side plate",
     "revision" : "A"
     "material" : "steel",
     "qty" : 1,
  }
} 

Last updated

#48:

Change request updated