A Model Class is used to describe what a Model Object will look like in the UI, which logics it uses, what are their calculations, etc.
Fields
uniqueName* – Name of the Model Class, used in Model Object to reference the Model Class they instantiate. It can be modified but the references won’t be updated automatically.
label – Human readable name of the Model Class, displayed to the user, when they select which Model Class they want to use for creating a new Model Object.
definition – JSON definition of what a Model Object using this Model Class should look like and how it should behave, see below.
workflowFormulaName – Name of the workflow logic (with workflowType = “model”) which is responsible for initializing the approval workflow when the user clicks Submit. If not set, when the user submits the model, it is auto-approved and marked as “No Approval Required”.
Model Class Definition
In a Model Class, the definition
field is a JSON document that contains three main root elements: calculations
, steps
and evaluations
.
Calculations
A list of calculation as defined by the following fields.
Common Fields
name* – Name of the calculation, unique in the Model Class.
type* – Accepted values:
formula
,sequence
,parallel
.
Formula Calculation Fields
formulaName* – Unique name of an existing Formula of nature
model_calculation
, see also Model Logics.
Sequence Calculation Fields
sequence* – List of calculation names defined in this Model Class.
Parallel Calculation Fields
formulaName* – Unique name of an existing Formula of nature
model_parallel_calculation
, see also Model Logics.
Example
{ "definition": { "calculations": [ { "name": "calc1", "type": "formula", "formulaName": "POAI_Test_Calc1" }, { "name": "seq", "type": "sequence", "calculations": [ "calc2", "calc3" ] }, { "name": "calc2", "type": "formula", "formulaName": "POAI_Test_Calc2" }, { "name": "calc3", "type": "formula", "formulaName": "POAI_Test_Calc3" }, { "name": "calc4", "type": "parallel", "formulaName": "POAI_Test_ParallelCalc" } ] } }
Steps
A list of steps as defined by the following fields.
Fields
name* – Name of the step, unique in the Model Class.
label – Human readable name of the step, shown in the UI, it defaults to
name
if not specified.description – Description of the step, shown in the UI.
calculation – Name of the calculation associated to this step, optional.
tabs – List of tabs as defined below.
Tabs
A list of tabs as defined by the following fields.
Common Fields
name* – Name of the tab, unique in the step.
label – Human readable name of the tab, shown in the UI, it defaults to
name
if not specified.type* – Accepted values:
dashboard
,simple
,configurator
,filtertree
.
Dashboard Tab Fields
formulaName* – Unique name of an existing Formula of nature
model_evaluation
, see also Model Logics.
Simple Tab Fields
formulaName* – Unique name of an existing Formula of nature
model_evaluation
, see also Model Logics.
Configurator Tab Fields
formulaName* – Unique name of an existing Configurator Formula of nature
model_evaluation
, see also Model Logics and Interactive Forms - Configurators
Filtertree Tab Fields
treeName* – Name of the tree to be displayed in the tab. It is used to fetch the tree from the backend.
formulaName* – Unique name of an existing Formula of nature
model_evaluation
to be evaluated when a node of the tree is selected, see also Model Logics.selectedNodeIdsInputName* – Name of the input passed to the evaluation formula, containing the array of selected node ID.
Example
{ "definition": { "steps": [ { "name": "step1", "label": "First Step", "description": "This step has 1 calculation and 1 tab.", "calculation": "calc1", "tabs": [ { "name": "tab1", "label": "First Tab", "type": "dashboard", "formulaName": "POAI_Test_Dashboard1" } ] }, { "name": "step2", "label": "Second Step", "description": "This step has 1 sequence calculation and 3 tabs.", "calculation": "seq", "tabs": [ { "name": "tab1", "label": "First Tab", "type": "simple", "formulaName": "POAI_Test_Dashboard2" }, { "name": "tab2", "label": "Configurator Tab", "type": "configurator", "formulaName": "POAI_Test_Configurator" }, { "name": "tab3", "label": "Visual Tree", "type": "filtertree", "treeName": "Segments", "formulaName": "POAI_Test_FilterTreeNodeEval", "selectedNodeIdsInputName": "selectedNodeIds" } ] } ] } }
Evaluations
A list of evaluations as defined by the following fields.
See Query Optimization Engine Results to execute an evaluation from another logic.
Fields
name* – Name of the evaluation, unique in the Model Class.
formulaName* – Unique name of an existing Formula of nature
model_evaluation
, see also Model Logics.
Example
{ "definition": { "evaluations": [ { "name": "query_results", "formulaName": "POAI_Test_QueryResults" } ] } }