Versions Compared

Key

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

...

  • 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 (calculations)

A list of calculation as defined by the following fields.

...

  • name* – Name of the calculation, unique in the Model Class.

  • type* – Accepted values:

    • formula - simple calculation, all actions in the provided logic are done in a sequential order

    • parallel - parallel calculation. The calculations done by the logic can be split into more parts (called Items) and the calculation of those Items will be done in parallel.

    • sequence

    , parallel
    • - this calculation does not have a logic, it is only reference to a list of other calculations, which should be executed one by one.

Formula Calculation Fields

...

Code Block
languagejson
{
  "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 (steps)

A list of steps as defined by the following fields.

...

Code Block
languagejson
{
  "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

...

(evaluations)

These standalone evaluations (their logics) are not used/linked/referenced directly by the Tabs, but can be called from another logic, when they need to access model results from outside of the model itself, for example in another module (e.g. from Quotes)

Info

See Query Optimization Engine Results to execute an evaluation from another logic.

Each evaluation in the list is defined by the following fields:

Fields

Example

Code Block
languagejson
{
  "definition": {
    "evaluations": [
      {
        "name": "query_results",
        "formulaName": "POAI_Test_QueryResults"
      }
    ]
  }
}