Task orchestration across multiple systems

Most of the companies with the years on the market have come to a state when their IT is built up with numerous different non-integrated information systems. One of our customers has come with a problem, where its employees have assigned several tasks across multiple company’s systems, ranging from web applications to native desktop applications. The employees must check these systems on their own, on daily bases, and so wasting valuable time. Focus was set to a group of employees that need to work across seven systems, ranging from SAP web apps to legacy systems. Employees are part of teams in a department. Every team has a team leader. Team leaders frequently send team members tasks via email communication and so the tasks are not tracked anywhere, there is no means to get the status of all work that an employee has to do.

7 different systems

Task overhead

Untracked email tasks

The implemented solution is based on NETGRIF Application Engine. The solution is a process-driven application, where every integrated system is a separate process of the application. Tasks created directly in the application are also implemented as a process, capturing the whole life cycle of a task.

The application provides a dashboard with statistics about a user’s tasks from the integrated systems and those created internally. The dashboard summarizes a count of critical and all tasks for a logged user for every integrated system. A team leader has, in addition to his own dashboard, a secondary dashboard with information about team members’ tasks.

Every task in the application is an instance of the integrated system. Every system has a view with all its available tasks assigned to a logged-in user. A user can click on a task and reveal more detailed information on the tasks provided by the source integrated system. The task contains a button to redirect a user directly to the task in the source system itself. If the source system is a web application, the task is opened in a new browser tab otherwise, an instruction is sent to the client OS to launch an appropriate application.

The application’s internal task management allows users to create tasks directly in the application. For more convenient task management within teams, a task can be created from email communication. When an email is sent to a specific application email address, the application reads the email, parses it, and creates a new instance of a task. The sender is set as an author of the task and all users stated in the email recipients are assigned to the task. The application is connected to Microsoft Exchange server via IMAPS and STMPS protocols.

The application is connected to the Microsoft Active Directory for user management via LDAPS protocol. For better user experience the application enables Single Sign-On through Kerberos protocol. The customer’s employees use AD with Kerberos to log-in into Windows OS on their devices and so users are automatically logged in into the application.

Integration between the application and external systems is implemented with help of SAP Platform Orchestration. The application sends requests for data to SAP PO and based on the request’s parameters the request is forwarded to an appropriate source system. Integration with SAP PO is implemented via HTTPS protocol and RESTful web services.

Task updating requests can be created by a user of the application on-demand or via a cron job, often triggered in nightly hours. The newly created request is added to the queue and waits for free resources to be processed further. A resource is the application capacity of processing requests simultaneously, the throughput of the deployed network, availability of source system, and SAP PO, and more. All resources are monitored by the application and SAP PO in real-time to ensure the fastest handling of the requests.

January 2020 production release
100 - 150
active users
>40 000 tasks processed daily
>20 million

Every request has a generated unique transaction identifier. It is used to pair the request with a response from a source system. It is also sent with the request itself to be properly registered within SAP PO. Task updates can be set to synchronous or asynchronous mode. In the case of synchronous communication task data are processed directly from the response of the sent request. On the other hand, the asynchronous request is set to the state of waiting for a response. In the moment of the incoming task data, with also defined transaction identifier, data are paired with a waiting request with the same transaction identifier and further process based on the request parameters. From the received data every task is processed individually according to update logic. Every received data from a source system defines up to date set of tasks for the specific application user.

The individual received task can be processed as follow:
1. The received task is not in the application – New instance of source system task is created.
2. The received task is in the application – The task’s instance is updated according to newly received data.
3. A task exists in the application but not in the received data – The task’s instance is deleted or archived for later use like BI analysis.