Define a call activity

A call activity calls another workflow definition that is deployed in your operating model. For the example workflow, you can create a call activity that calls the 'Voting Subprocess' workflow, which is a general-purpose, packaged workflow definition. After providing comments, the data governance officers can vote for the onboarding of the proposed term, based on the comments provided by the Chief Steward.

Note If you call a workflow from another workflow, for example with the callActivity method, the child workflow must use the same namespace as the parent workflow.

To define this call activity, follow these steps:

  1. In the Palette, in the Tasks section, click Call activity.
  2. Draw a call activity in the Data Governance Officers lane.
  3. Go to the Properties pane → General tab and fill in the Id and Name fields:
    • Id: Use a unique and meaningful ID, for example, 'vote_to_determine_onboarding'.
    • Name: Provide a name for the call activity, for example, 'Vote to determine the onboarding of the proposed business term'.
  4. Click the Main config tab.
  5. Enter the process ID of the Voting Subprocess to be called, that is: votingSubProcess.
  6. Click New next to the input parameters table.
  7. Fill in the following fields:
    • Source: The form variable that is defined locally in the start event of this workflow.
    • Source expression: The alternative to Source.
    • Target: A variable of the called workflow that takes the source variable or expression as input.
    • You need the following input parameters for the example workflow:
      • Source expression ${"Please decide whether you accept or reject this proposal for a new term. Also substantiate your decision with a comment."} with Target decisionInfo: Parameter used as task message by the voting subprocess
        • Source variable dgoUserExpression with Target voterUserExpression: Parameter to indicate that voters are users with the Data Governance Officer role
      • Source expression ${100} with Target votePercentage: Parameter to indicate that the voting threshold is unanimous by default, meaning that 100% of voters have to vote
      • Source expression ${true} with Target addComments: Parameter to indicate whether the voter can provide comments
      • Source expression ${true} with Target earlyComplete: Parameter to indicate that the voting can be closed whenever sufficient votes have been collected
      • Source variable newTermWarningTimeDuration with Target voteWarningTimeDuration: Parameter to indicate a time period before a reminder is sent to the voters who did not vote yet
      • Source variable newTermtimeOutDuration with Target voteTimeoutDuration: Parameter to indicate a time period after which the voting process times out and all votes are counted
      • Source expression ${"Approve/Reject"} with Target voteButtonLabel: Parameter to define the text on the voting task button
      • Source expression ${"Approve or reject proposal for a new term"} with Target voteTaskName: Parameter to define the name of the voting task
  8. Click OK.
  9. Click New next to the output parameters table.
  10. Fill in the following fields:
    • Source: The variable of the called workflow.
    • Target: The local variable that takes the value.
    • The following output parameter is what you need for the example workflow:
      • Source votingResult with Target votingResult

The example demonstrates that the voting subprocess can be adapted for any task where one or more users have to make a decision about something. Always reuse this workflow definition whenever you can and copy the parameters as they are defined by default. You can then tweak them to fit your own needs.