Linking and Operating Multiple Workflow Apps – Splitting Apps Edition

App connections that launch another App in the middle of a Process are used in cases where you want to link business processes, such as from a Quotation Process to an Order Application Process, or from a Delivery Process to a Billing Process. It is also used when a large App is to be divided or some of the business processes are to be made independent as subroutines. By dividing Apps, visibility can be increased and business improvements can be facilitated. In addition, if some tasks, such as translation or a legal review, are defined as independent Apps, the business process can be incorporated into the flow simply by setting up a function that calls the specified App.

In this article, we will explain how to set up a specific configuration using as an example the mechanism for splitting an App and launching a child App from the parent App. In the “Sub Processes” section (to be released soon), we will explain how to build a sub process that starts a child App from the parent App and passes data from the child App to the parent App.


Split a Workflow App

In a workflow application, the workflow from start to finish, the person in charge of each processing step, and the business data to be passed on are defined in advance.

However, in the case of work that involves many departments, workflow apps tend to be complicated when trying to define the procedures and data required by each department.

Order – Shipping – Billing Flow

Suppose we have the following workflow app with a defined flow of work starting from order receipt and shipping to billing.

With this app, business can be conducted across departments, including the sales department, shipping department, and accounting department.

In this case, we will define a split workflow app for each department. By connecting the divided apps via HTTP communication, we will ensure that they can proceed with their work in the same manner.

Items Used for Workflow App Connections

The app connection uses items for HTTP communication. [Message Start Event (HTTP)] is placed in the child app (the one being called) to receive the HTTP request and starts the process. And the parent app (the one calling) places and uses [Service Task (Start Child Process)], which is configured to send HTTP requests to the [Message Start Event (HTTP)] that is waiting to receive the request.

Message Start Event (HTTP)

Issues a URL that awaits an HTTP request. Starts a new Process automatically when an HTTP request is received. Capable of inserting values accepted as receive parameters to Business Data.

Service Task (Start Child Process)

An automatic step that sends an HTTP request to Message Start Event (HTTP) on the same workflow platform. You can easily establish an inter-app connection simply by setting the send data. In addition, it is capable of waiting for the Child Process launched by HTTP requests to complete and retrieve data from it. When a workflow App including Message Start Event (HTTP) is released, the corresponding Service Task is automatically generated.

Sample App

Create and connect two apps by dividing the aforementioned app, one for the Sales Department’s order Accepting and the other for the Accounting Department’s Billing.

When the Sales Department supervisor approves the order at the “2. Order Confirmation” step, the Billing App of the Accounting Department will be launched to start the billing Process. When the Accounting Department’s billing app is launched, the data of the purchaser’s name, address, detailed list, and total amount is passed to the accounting department. The Accounting Department staff will issue and send invoices based on the information received and confirm payment.

  • The number of Steps and data is set to be small for simplicity
  • We will omit explanations of settings other than the connection settings

Accounting Department’s Billing App (child)

The first step is to create a “Billing app” for the Accounting Department.

Place a [Message Start Event (HTTP)] at the top and set the Data Item that receives and saves data from the Sales Department’s “Order Accepting App” to [ Editable] in the Properties screen.

Data Items

Data Item NameData TypeField NameRequiredDescription
Title
Billing NameString-type (single line)q_billing_name
Postal AddressString-type (multiple lines)q_billing_address
Amount BilledNumeric-typeq_billing_amount
Itemized Billing StatementTable-typeq_detailsThe table column (table item) settings must be identical to the calling app.
PDF File NameString-type (single line)q_filename
PDF FileFile nameq_pdf
Data item settings for billing app

Billing Start (Message Start Event (HTTP))

Data ItemEditing Permission
Title
Billing Name
Postal Address
Itemized Billing Statement
Amount Billed
PDF File Name
PDF File
[Editing Permissions] Tab

After completing the settings, close the edit screen and [Release] the app. Check the [App ID] (m-number) and [App Name] at the top of the screen.

Sales Department’s Order Accepting App (parent)

Once the “Billing app” for the Accounting Department is completed and [released], the next step is to create the “Order Accepting app” for the Sales Department.

Data Items

Data Item NameData TypeField NameRequiredDescription
TitleThe string entered in this data item becomes the process subject in other apps
Name of OrdererString-type (single line)q_name
Address of OrdererString-type (multiple lines)q_address
Total AmountNumeric-typeq_amount
Sales DetailsTable-typeq_tableThe table column (table item) settings must be identical to the calling app.
Data item settings for the Order Accepting app

Billing Request ([Service Task (Start Child Process)])

What is a Service Task (Start Child Process)?

Place a [Service Task (Start Child Process)] icon behind the [Order Confirmation] step that triggers the Billing app for the Accounting Department to start. On the Edit App palette, go to [Auto-Processing Task] & [Connection with other workflow apps] and find the “Billing App” for the Accounting Department that you created earlier.

  • [Service Task (Start Child Process)] is a generic name for icons of equivalent functions, and the individual icons are named “app ID, app name, node number, and step name”
  • There are as many [Service Tasks (child process start)] as there are [Message Start Events (HTTP)] that have been placed in the released app

The item name of each setting item is the name of the Data Item in the Billing App of the Accounting Department. To specify the data to be set, select the Data Item name of the data you want to pass using [Insert reference…] to set the expression. Except for String-type, select the Data Item name from the drop-down menu.

Item NameConfiguration Details
At: Title#{processInstanceTitle}(Select ” Title”)
A0: Billing Name#{#q_name}(Select “Name of Orderer”)
A1: Postal Address#{#q_address}(Select “Address of Orderer”)
A5: Itemized Billing StatementSales Detail (Select)
A2: Amount BilledTotal Amount (Select)
Settings for “Billing Request” step

If any of the following deficiencies are found in the passed data, automatic processing will result in an error and the app will fail to start.

  • No data is passed (empty data is passed) for data items set to [Required] at the receiving end
  • Passing data that does not satisfy input checks such as the minimum/maximum number of characters set in the recipient’s data item and regular expressions that must be satisfied.
  • Number of columns does not match in Table type data items, corresponding column subtypes are different

This completes the setup. Run [Debug only this node] to confirm that a Process for the Billing App in the Accounting Department has been started and data is being passed on.

  • The Billing App process in the Accounting Department initiated will also be a debug process
  • Human Tasks in the debug process initiated are assigned to the latest editors of the Billing app in the Accounting Department

Summary

The app connection is set up in two steps

  1. Connection settings to set up connection points for the called (child) app and the calling (parent) app
  2. Data linkage settings to specify data to be passed between apps

If the app being called has a [Message Start Event (HTTP)], the above two-step setup is completed by applying the following settings to the app on the calling side.

  1. Deploy [Service Task (Start Child Process)]
  2. Specify the Data Items to be passed in the setting items of the [Service Task (Start Child Process)]

Although this article has been written about splitting an already existing workflow app, there are many other scenarios where app connections can be considered in addition to app splitting.

For example, for business apps that accept requests from outside the department and manually start Processes, adding an automatic start point ([Message Start Event (HTTP)]) will allow Processes to be started directly from outside the department (business app). Using the app connection facilitates the handover of business data, eliminates the need for manual initiation, and avoids human errors such as input errors.

Understand the basic workflow app connection mechanism and how to set it up, and use it in actual app operations.

In the next section, “Sub-Processes“, we will explain how to build a mechanism (sub-process) to pass data from the child app to the parent app after the child app is launched from the parent app and the child app is terminated.

Discover more from Questetra Support

Subscribe now to keep reading and get access to the full archive.

Continue reading

Scroll to Top