Quick Start into BPM: Mini Process Ping-Pong

Overview

This mini process gives a brief overview of the design of a process with low code.

The process consists of two sequential tasks, named 'ping' and 'pong'. A requester addresses somebody in the start form to support him in his work on a document. The recipient gets the 'ping' task in his inbox and has a look at the document. He then gives an answer and forwards the task back to the requester. The requester gets the 'pong' task in his inbox, reads the answer and forwards the process to its end.

The following sections explain the minimal coding needed for the process.

Setting Up the Ping-Pong Process in yuuvis® RAD

This process, which reads the answer to a question, is one of the smallest you can design.

You will learn how to:

  • create a process
  • assign recipients
  • define data fields
  • design start and task forms and scripts
  • start a process with an object
  • work on a task in the inbox

Figure 1: In the client, the 'Ping' task is shown in the task list on the left. In the middle, you see the task form open in the task area, and on the right, the preview of the object context as part of the process file.

Requirements

You need three things to get started:

  • A working system, version 4 or later
  • A usable scenario of object types, such as one of these.
  • The project file containing the process definition described below (click to download).

Installation

Deploying the Process In Your system

  • Unzip the project file (see Requirements) to the Documents folder.
  • Start yuuvis® RAD designer.
    • Click Open.
    • Navigate to the folder where the scenario was unzipped. Select the .eoproj file and confirm the selection with Open.
    • Open Process models in the navigation tree of the project.
    • Copy Ping-Pong in the navigation tree by right-clicking and then pasting it into the Process model of your deployed project.
    • Deploy Ping-Pong to your system by right-clicking the process model and selecting Deploy
  • In a browser (Firefox, Chrome, or Edge), open yuuvis® RAD management-studio at <servername>/enaio/management and log in with your administrator account.
    • Go to Main menu > Processes.
    • In Process Management, select register Models.
    • In the In-tray on the left, select Ping-Pong.
    • Click the Actions menu on the right and select Move. Specify where in the Model groups to move to.
    • Click the Actions menu again and select Activate.
  • In a browser, open yuuvis® RAD client and select any object.
    • Click the Actions menu on the right. Under More actions, you will see Start mini-process Ping-Pong.
    • How to use the process see below


Figure 2: Project structure with the Ping-Pong process model 

Process Model Definition

The following section describes how to design the process model.

Creating a Process Model

Start yuuvis® RAD designer.

  • Open a project.
  • Right-click on Process models in the navigation tree and select New process model. Enter a name, here Ping-Pong, and a namespace, here Examples.
    Now you can begin to define your process model by configuring tasks in the working area (middle area) and defining the attributes for each artifact (area on the right). 
  • Define the general attributes of the process model:
    • For each language, enter a Name for starting the process. The Name is displayed in the client object actions menu in More actions.
    • Optional: enter a Description to be displayed in the Information for the action.
    • In the client view My processes, select a role for Initiators (those who can start the process) and Process owners (those who can monitor the process). Here, System-User-Role was used for the initiators and System-Admin-Role for the process owners.
    • Check Show start form to display the form after the start action in the client has been selected.
    • Check Process start with main object to display the start action for each object with Main object type = ' ' and Main object type = Any.
    • Set some Data fields, here we use:
      answer (string), set by supporter (ID-User/Group)
      question (string), set by requester(ID-User/Group)
      subject (string), set with object title from the start form script, see below.
    • Set Subject with {var:subject}.
    • Define Start form with a script.

      Figure 3: Start form design and preview


      Figure 4: Start form script

  • Set the 'ping' and 'pong' tasks in the work area.
    • Click the Work item tool in the application bar. Then left-click in the work area where you want to place and span the task shape, and release the mouse.
      Enter the Technical name, here ping, to be used in event scripts.
      Enter the Name, here Ping support: answer question, to be shown in the client Inbox list.
    • Repeat the last two steps for the 'Pong' task.
      Enter the Technical name, here pong.
      Enter the Name, here Pong answer: Read support message.
    • Connect the tasks by clicking the 'ping' task. Then move the cursor over the right edge of the task shape until a small rectangle appears. Click the rectangle, then move the to the pong-task shape and release.


      Figure 5: designer work area and general process attributes

  • Define Ping Task Attributes
    • Select the 'ping' task.


      Figure 6: designer work area with 'ping' task selected and its attributes displayed

    • Set Participant type to "Script-controlled", then write the BeforeStartActivity script to define the participant (performer).

      BeforeStartEvent Script
      // defined supporter becomes performer
      
      var newPerformer = new $.OrgObject();
      	newPerformer.id = $.variable('supporter').value;
      	$.activity('this').performers.push(newPerformer); 
      
      $.done();

    • Define the task form as shown in Figure 1.

  • Define Pong Task Attributes
    • Select the 'pong' task.
    • Set Participant type to "Script-controlled" and write the BeforeStartActivity script to define the participant (performer).

      BeforeStartEvent Script
      // Creator becomes performer
      
      $.activity('this').performers.push($.process.creator); 
      
      $.done();
    • Define the task form so that it is similar to the 'ping' task. Figure 7 below shows how it should look in the client.


      Figure 7: Inbox list with selected Pong task and its task form

Using the Ping-Pong Process in the client

If Ping-Pong is deployed in the configuration as described above, each user can start a process for any object available to them.

Note

Be aware of the object rights of the addressed supporter. If the supporter does not have the right to access this object, more coding is needed: In the BeforeStartActivity event script the object has to be shared with the performer of the activity, and in the BeforeEndActivity event script the sharing has to be taken back.

  • Start a process in the client
    • Select any object.
    • Click the Actions menu on the right and, in the section More actions, select Start mini-process Ping Pong.
    • The following fields in the start form must be filled in:
      The Subject is preset with the title of the object and can be modified.
      Type your Question.
      Define the Supporter by typing '*' to get a list of all users, or start typing the first or last name to open a suggestion list.
    • Click OK to start the process.
  • Ping Task: Answer question
    • Open the Inbox
    • Select the task and click Accept task to show the task form
    • Read the Question and write your Answer
    • Click Forward to forward the process to the Pong task
  • Pong Task: Read supporter's Answer
    • Open the Inbox
    • Select the task and click  Take over to show the task form
    • Read the Answer
    • Click Forward to continue the process to its end
  • Monitor the process
    • Each process initiator and process owner can monitor processes in the view My processes.
      Go to Main menu > My processes and have a look at the process history.

Ideas for Extensions

  • Rename the Forward actions
    • Configure a task action Return for Ping and Finish for Pong instead of showing standard Forward
  • Deadline
    • Fixed deadline
      Can be configured without scripting in process aspect Time periods.
    • Flexible deadline
      Add a datetime field deadline to the process and add this onto the forms as well. The user may specify a deadline. This predefined deadline has to be set by a next short scripting.
  • Repeat the Ping-Pong
    • Use a Loop Task around the Ping and Pong tasks and control it by an additional Boolean field repeat which can be checked on the Pong task form.
    • Use a string field communication and store each question and answer to it using the BeforeEndActivity event script. Add this to the Ping and Pong tasks as well.
  • Constrain the possible supporters
    • Set a filter for the ID field as described here.