Automating complex workflows
Building and automating complex workflows is at the core of the Linx feature set.
Linx comes with a set of services that act as triggers to kick off workflows.
- Timer (Utilities plugin)
To execute a process at a specified time and interval.
- Cron (Utilities plugin)
To execute a process periodically at a fixed time, date, or at intervals.
- RESTWebService (Web plugin)
To assemble and publish a REST web service endpoint by implementing its web methods through events.
- SOAPWebService (Web plugin)
To assemble and publish a SOAP web service endpoint by implementing its web methods through events.
- DirectoryWatch (from the File plugin)
To watch a directory for file changes, creations, renaming and deletions. The Service will call a process or run some logic when the service event occurs.
- MSMQService (MSMQ plugin)
To listen to a MSMQ queue and to trigger an event when a new message arrives.
- RabbitMQService (RabbitMQ plugin)
To listen to a queue on a RabbitMQ server and to trigger an event when a new message arrives.
Linx Application Service Samples
Building complex workflows
Linx workflows are encapsulated in "processes". A process is essentially a custom function that has inputs and outputs. A process that performs a set of tasks you define by dragging premade functions in logical sequences. As in code, the idea is that a process (or an event) encapsulates a logical grouping of tasks.
Linx Services are used as triggers for workflows. They have events that kick off processes. An "event" is essentially just a function that is called by a service when a specific event occurs.
A service may have one or multiple events that can be used to execute appropriate workflows. For example, the DirectoryWatch service has a series of events including one called "FileCreated". In this event, you probably want to add some functions that process that file. A Timer service will execute on a schedule and is used for any processing you want to regularly do.
You can call one process from another one by dragging processes into each other. This allows you to create generic processes that you can reuse throughout your Linx Application.