Server side integrations

Service Manager provides different technologies to integrate with external applications. This section focuses on server-side integrations because they are relevant to queue monitoring.

Web services

A Web service is an integration mechanism, where the service publisher publishes its API as a Web Service Definition Language (WSDL) file in XML format. This file defines the format of requests and responses, which are also sent as XML documents. The service consumer must implement its requests according to the WSDL.

RESTful API

The Service Manager RESTful API works with different HTTP methods. Data for requests may be included in the URL for requests using the GET method or as a JSON document when using POST methods. Service Manager also responds with JSON documents to REST requests.

Service Manager Integration Suite (SMIS)

SMIS provides a framework to implement scheduled-based or UI-based integrations using the web services API or RESTful API.

With the Integration Manager, SMIS provides a graphical user interface to manage integrations.

A UI-based integration means synchronous execution when the user clicks a button or menu option.

For each scheduled-based integration, a background process is assigned and a record in the schedule dbdict is created, which is rescheduled after each execution. The execution reads the expired integration tasks from the smisTaskQueue dbdict and performs the required action.

Event services

An event service is an integration mechanism used by integrations such as SC Automate, Connect-it, and JavaMail.

The eventin and eventout dbdicts contain incoming and outgoing events, respectively.

Events use an event code that refers to an event registration record containing all information about how the event should be processed.

Unlike other queue dbdicts, eventin records may be processed synchronously or asynchronously depending on the state of the Process input events synchronously? flag in the eventregister record. Synchronous processing is implemented by the “eventin.after.add” trigger.

Note Changing the state of the “Process input events synchronously?” flag in the eventregister record is not effective immediately, but requires these global lists: “Sync Event Types” (variable $G.sync.events) and “Sync Event Types” (variable $G.sch.events).

Asynchronous events use the evtime field and therefore may be scheduled. Incoming events can be configured to automatically create an outgoing event as the response. Successfully processed events are automatically deleted (if not configured otherwise, for example, for debugging purposes), while events that were not processed successfully are not deleted automatically to allow error analysis.