Vision App Maker reads and writes data in external systems at run time. Business rules call configured plugin instances, which query databases, call REST services or work with document stores. The results feed rules, forms, workflows and documents without being copied into the platform.
How live access works
Access to an external source is set up once in App Factory Studio and then reused by any rule.
- A plugin library provides the methods for one type of system, such as SQL Server data access or SharePoint entity access. The Plugin definitions list shows the libraries installed on the platform.
- A configurator creates a plugin instance that uses one method. The instance has a name, a description, an output cache type, inputs and outputs.
- Each input is bound to a rule, a parameter, another plugin or a constant. Each output gets an index and a parameter name.
- A business rule calls the instance by its id. The plugin runs against the external system and returns its outputs to the rule.
Connection details are kept in named platform configurations. A plugin instance refers to a configuration by name, so rules do not contain connection strings.
Calling a plugin from a rule
| Operator | Use |
|---|---|
CallPlugin(id, [output indexes]) | Runs an instance whose inputs are all bound in its configuration |
CallPluginWithParams(id, inputs, override, [output indexes]) | Passes input values at call time; true replaces all configured inputs, false fills only inputs without a value |
RefreshPlugin(id, [all calls]) | Refreshes the output of a plugin instance |
Where external data is used
- Business rules: calculations, validations and decisions use the values returned by the plugin.
- Forms: a select control can take its list of values from a plugin. View events, such as View entered, run rules that load data when a page opens.
- Workflows: transition events can target a rule, a parameter or a connector. Availability conditions can also use a connector value.
- Automated steps: automatic activities run through a service without a user, and scheduled jobs automate configured activities.
- Documents: data from external systems can be used in document templates.
Supported source types
The table lists the connectors described in the platform documentation. Vision can develop connectors for other systems.
| Source | Read | Write |
|---|---|---|
| SQL Server | Parameterized queries returning many rows or one row; stored procedures returning many rows or one row | Insert, update and delete statements; stored procedures without a result |
| HTTP / REST services | Any HTTP verb; response status, body and headers | JSON, form-encoded or multipart bodies, including files |
| SharePoint | List items with selected columns and filters; files in document libraries | Create, update and delete list items; upload and delete files |
| Alfresco | Folder contents, file download, site users and groups, group e-mail addresses | Upload, move and delete files; create or update folders |
| Liferay | Folder contents | Create folders; upload, move and delete files |
| Microsoft Dynamics CRM | Records with filters, ordering and paging; option set values | Save and delete records; set state and status codes |
| QuickBooks | Customers, invoices and items | Create customers and invoices |
| E-mail server | Messages with recipients, subject, body and attachments | Send messages |
| Files and Excel | Files in configured locations; Excel sheets read into custom types | Save files and text files; write Excel files |
| Portal directory | Users, groups and organizational units | Create and update users and organizational units |
RPC calls are also supported for communication with other applications or microservices.
Caching
Each plugin instance has an output cache type. With NoCache, every call reaches the external system. With SessionCache, results are kept for the user session.
Rules can also use the Cache operator, with global module, session or request scope. RefreshPlugin refreshes a plugin's output when the data must be current.
Keeping a local copy
Some scenarios need external values stored in App Maker as well. Two strategies are described:
- On demand: when a page opens, the platform calls the external API, shows the data and updates its own stored values.
- Polling: a scheduled job calls the external API at a set interval and updates the local fields.
Both are built from rules and plugin instances; polling also uses a scheduled job.







