Custom behavior in Vision App Maker is added through configuration: business rules, plugins and view scripts. Rules hold the logic, and plugins connect it to files, services and other systems. Configured logic is published to the front-end components without recompiling the platform.
Business rules
A business rule is where an application's logic is written, using a set of predefined operators. The rule editor in App Factory Studio supports the work:
- Parse checks the syntax of the rule;
- Dependencies shows every element that uses the rule;
- Operators lists the available operators, with search;
- test values can be assigned to parameters to evaluate the result.
The Module tester utility simulates how a configuration runs.
Where custom logic runs
| Place | What can be attached |
|---|---|
| View events | System events (View entered, View leaved, View resumed) and custom events, each with an availability condition, a binding and an optional run after validation |
| View validations | Rules that run when the module starts (before) or after an event (after), with a message shown when validation fails |
| Form controls | Lists of values from a plugin, a rule or a list; mandatory status decided by a rule |
| Workflow transitions | Events whose target is a rule, a parameter or a connector; availability conditions; messages; decision rules that choose the next state |
| Activities | Automatic activities, run by a service without a user; scheduled jobs that automate configured activities |
| APIs | Calls that start an activity or module, run its rules and return the result as JSON; custom endpoints that run a module and rule |
Calling plugins from rules
A rule calls a plugin instance in one of two ways.
CallPlugin(id)requires all inputs to be set in the plugin configuration. Example:CallPlugin(1).CallPluginWithParams(id, inputs, override)passes inputs at call time. Withtrueit replaces all configured inputs; withfalseit fills only inputs that are empty. Example:CallPluginWithParams(1, Array("name"), true).
Both operators accept output indexes to select which outputs to return. RefreshPlugin refreshes a plugin's output, and the Cache operator keeps a value at module, session or request level.
System plugins for custom logic
The System library includes general-purpose plugins that extend what a rule can do.
| Plugin | Input | Result |
|---|---|---|
| ExecuteJS | JavaScript code as text | The code is executed |
| ExecuteRule | Business rule text | The rule is executed |
| MakeHttpCall | URL, HTTP method, JSON body, list of headers | The HTTP response |
| GetDictionaryFromJson | JSON text | A dictionary |
| GenerateBasicAuthToken | User name and password | An authentication token |
These plugins can be combined in one rule. For example, a rule can generate a token and pass it in the headers of an HTTP call. It can then read the JSON response as a dictionary. For richer HTTP work, the RestClient plugin and the JSON operators return status codes and typed values.
Other System plugins handle process instances, parameters, e-mail, templates, files and Excel. The full list is in the plugin catalog.
Scripts and styles in views
Views can be of type Custom or HTML. A view can define its own CSS styles and JavaScript scripts and accepts Bootstrap 4 classes. Each element can also have its own classes and inline style.
New connectors
The integration layer is modular. Beyond the existing plugins, Vision can develop new connectors for specific systems. Once installed, a connector appears in the Plugin definitions list and is configured from the visual interface like any other plugin.







