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.

  1. 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.
  2. A configurator creates a plugin instance that uses one method. The instance has a name, a description, an output cache type, inputs and outputs.
  3. Each input is bound to a rule, a parameter, another plugin or a constant. Each output gets an index and a parameter name.
  4. 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

OperatorUse
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.

SourceReadWrite
SQL ServerParameterized queries returning many rows or one row; stored procedures returning many rows or one rowInsert, update and delete statements; stored procedures without a result
HTTP / REST servicesAny HTTP verb; response status, body and headersJSON, form-encoded or multipart bodies, including files
SharePointList items with selected columns and filters; files in document librariesCreate, update and delete list items; upload and delete files
AlfrescoFolder contents, file download, site users and groups, group e-mail addressesUpload, move and delete files; create or update folders
LiferayFolder contentsCreate folders; upload, move and delete files
Microsoft Dynamics CRMRecords with filters, ordering and paging; option set valuesSave and delete records; set state and status codes
QuickBooksCustomers, invoices and itemsCreate customers and invoices
E-mail serverMessages with recipients, subject, body and attachmentsSend messages
Files and ExcelFiles in configured locations; Excel sheets read into custom typesSave files and text files; write Excel files
Portal directoryUsers, groups and organizational unitsCreate 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.

Entities and custom types in the data model hold the values that a rule receives from a plugin. They do not declare a connection to an external source. All external access goes through plugin instances.