You are viewing the documentation for Blueriq 17. Documentation for other versions is available in our documentation directory.

Introduction

The AQ_StartProject service starts an exposed flow in another project. This project can be in a different branch or repository than the current project, as long as it resides in the same runtime. You can choose how you want to start the application (e.g., as a new tab), and what data is passed to the other application. The data can be retrieved in the other application by using the Service call type: AQ_GetRequestParameters.


 Parameters

Name
Direction
Description
Type
Occurrences
Required
ShortcutNameInput

An expression to determine the shortcut to start. This shortcut must be added to the application.properties file.

Expression - StringSingle valued

Either the ShortcutName or ShortcutAttribute are required.

You can not use both in the same service call. An error occurs at runtime when unknown is submitted in these parameters.

ShortcutAttributeInput

Select a string attribute that holds the name of the shortcut to be taken. This shortcut must be added to the application.properties file.

Module Element - AttributeSingle valued
ActionInputIndicate the action taken when the other application is triggered.

Domain

  • Start as new tab
  • Start in same tab
  • Start without user interface
Single valuedYes
DataInput
Data of the current application that you want to transfer to the triggered application. This is done using key value pairs.
Expression - Any; Key-value pair; Multivalued resultMulti valuedNo

When using this Service, the shortcut property dynamicVersion is considered. for more information about this see shortcut information

If you choose an attribute that has a value list for the ShortcutAttribute parameter, then the runtime validates each value of this list with the shortcuts defined in the application.properties file. 

When opening the started application in a new tab, your browser might block the new pop-up. The behavior and message may differ between different browsers.

You should never send empty data fields. This results in an error.

In order to to deliver a good experience to the end user, the language that is defined in the shortcut is ignored, and replaced with the current language of the application that calls the AQ_StartProject service. In this manner the current language setting is preserved when switching between projects. This of course implies that the defined languages of the projects have to match.


Events

This service uses default events for a commit and for an exception. The exception exit is taken if the triggered application that is started encounters an exception during the flow.

Unauthorized - This exit event is taken when the user has not a role that is required for the started flow. No login is shown to the user. If this event is not mapped, the exception exit is taken.

When using the setting Start in same tab, then we advice to lead the event to a dummy page after the AQ_StartProject service. If you do not connect the event, a warning triggers in the runtime and a rollback happens, which might not be what you want. If you connect that event to the exit event of the flow that ends the session, then the new project is not started.

Flow

When modeling a flow you should always include a page before and after this service. This is due to browser behavior and security reasons in handling opening popups and/or new tabs.

Security

As a project, you need to be aware of security when communication is involved. The communication between the starting and started application is done with server internally in code. This means that it is perfectly secure as no data can be intercepted or changed.

On a production server you set the runtime to blueriq.production.shortcuts-only=true so that end users can not start any flow themselves. As you need to create a shortcut for the application to be called, you do not want that end users could guess the shortcut name and start the flow themselves. For this reason, you should set the property blueriq.shortcut.[name].privateAccess=true for the shortcuts that are only used for the AQ_StartProject service, and which are not started by end users.

Example


The above service uses an attribute with a value list of possibly case types. Depending on the type of subsidy, a different application is opened that is responsible for handling that type of subsidy cases. The application is opened as new tab, and important information is passed to the other application. This information is the subsidy ID and a string to indicate what dashboard page to open. The flow in the other application has a split node in the flow, which uses this string to determine to what page to flow.

Known issues