Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The core part of the flow is setting up the workflow. It is in here that a system administrator can add new fields to the custom sign-up form and decide who should be responsible for approving new accounts.

...

Expand
titleExample DSL
Code Block
languagejson
stage "pending_approval" {
    type = "Manual Stage"
    label = "Pending approval"
    row = "1"
    column = "1"
    description = ""
    retired = "false"
    automatically_assigned_to = "groupId:2"
    icon = "yellow-activity"
}

transition "sign_up" {
    type = "Manual Transition"
    label = "Sign up"
    to = "pending_approval"
    constraints = ["constraint_1", "constraint_5", "constraint_2", "constraint_3"]
}

stage "approved" {
    type = "Manual Stage"
    label = "Approved"
    row = "2"
    column = "0"
    description = ""
    retired = "true"
    icon = "green-checked"
}

transition "approve" {
    type = "Manual Transition"
    label = "Approve"
    from = "pending_approval"
    to = "approved"
    constraints = "constraint_4"
}

stage "rejected" {
    type = "Manual Stage"
    label = "Rejected"
    row = "2"
    column = "2"
    description = ""
    retired = "true"
    icon = "red-close"
}

transition "reject" {
    type = "Manual Transition"
    label = "Reject"
    from = "pending_approval"
    to = "rejected"
    constraints = "constraint_6"
}

constraint "constraint_1" {
    type = "Any user can transition"
    label = "Any user can transition"
}

constraint "constraint_5" {
    type = "String Input Constraint"
    key = "supervisor"
    label = "The name of your supervisor"
    tooltip = "Who is your supervisor?"
    placeholder = "Type your answer here"
    render_type = "text"
    promoted = "true"
}

constraint "constraint_2" {
    type = "Date Input Constraint"
    key = "signup_deadline"
    label = "When do you need the access to the system by?"
    tooltip = "Choose the deadline."
    placeholder = "Date"
    promoted = "true"
}

constraint "constraint_3" {
    type = "String Input Constraint"
    key = "use_type"
    label = "How will you primarily use the system?"
    tooltip = "E.g. uploading assets, content management."
    placeholder = "Type you answer here"
    render_type = "textarea"
    promoted = "true"
}

constraint "constraint_6" {
    type = "Only Current Stage Owner Can Transition"
    label = "Allow the assignee to transition"
    negate = "false"
}

constraint "constraint_4" {
    type = "Only Current Stage Owner Can Transition"
    label = "Allow the assignee to transition"
    negate = "false"
}

Configuration:

Step

Configuration

Explanation

“Sign up” transition

Name: selected by the user

Transition type: Manual

Unique ID: selected by the user

Description: selected by the user (optional)

Constraints: execution condition and input constraints

This is the first transition of the workflow, triggered by submitting of a new sign up form.

The transition is manual, because it is initiated by a deliberate action from a user - in this case, the act of submitting of a sign up form by a new user.

It is in this transition where the administrator can create a custom sign up form. Any information that should be provided in that form aside from the standard fields (such as name or password), can be configured here with the use of input constraints. In this specific example, the user will be asked, among others, to:

  • provide the name of the supervisor (String Input Constraint, rendered as text)

  • clarify how they will use the system (String Input Constraint, rendered as text area)

  • state when they need to have an active account by (Date Input Constraint).

Additionally, “Any user can transition” constraint was configured so that anyone can trigger the workflow by signing up.

“Pending approval” stage

Name: selected by the user

Unique ID: selected by the user

Description: selected by the user (optional)

Mark as completed: no

Relevant Meta Fields: -

Stage owner: Stage Assignment Behavior - Assign to a group

Labels: selected from the list of created as custom

The name of the stage is also the name of the task.

The optional description will provide the assigned user with the explanation of what is expected in this stage.

In this case, the stage owner is a user group. It means that any user belonging to that group can transition the task. i.e. approve or reject the new user.

The label will be displayed on the task.

“Approve” transition

Name: selected by the user

Transition type: Manual

Unique ID: selected by the user

Description: selected by the user (optional)

Constraints: execution condition

The manual transition means that the task can only be fulfilled by selecting one of the options from the list of available actions.

Constraint:

  • “Allow the assignee to transition” means that only the user(s) assigned to this task can either approve the new user.

“Approved” stage

Name: selected by the user

Unique ID: selected by the user

Description: selected by the user (optional)

Mark as completed: yes

Relevant Meta Fields: -

Stage owner: Unassigned

Labels: selected from the list of created as custom

The name of the stage is also the name of the task.

The optional description will provide the assigned user with the explanation of what is expected in this stage.

The label will be displayed on the task.

Marking the stage as complete means that the this particular workflow instance will be archived after this stage.

“Reject” transition

Name: selected by the user

Transition type: Manual

Unique ID: selected by the user

Description: selected by the user (optional)

Constraints: execution condition

The manual transition means that the task can only be fulfilled by selecting one of the options from the list of available actions.

Constraint:

  • “Allow the assignee to transition” means that only the user(s) assigned to this task can reject the new user.

“Rejected” stage

Name: selected by the user

Unique ID: selected by the user

Description: selected by the user (optional)

Mark as completed: yes

Relevant Meta Fields: -

Stage owner: Unassigned

Labels: selected from the list of created as custom

The name of the stage is also the name of the task.

The optional description will provide the assigned user with the explanation of what is expected in this stage.

The label will be displayed on the task.

Marking the stage as complete means that the this particular workflow instance will be archived after this stage.

Part 2 Automation

The next part is about setting up an automation for manifesting the approval workflow converting the approved sign ups into actual user systems in the DAM Center.

...

When a user has been approved in the workflow, the user in the system behind is not impacted. This requires what we call an “automation”.

Below is an image of such an automation:

...

Expand
titleSSU approval
Code Block
trigger "Business Workflow Stage Entered" {
    type = "Business Workflow Stage Entered"
    resolves = "ForEach"
    workflow = "Sign-up/user creation"
    stage_name = "approved"
}

foreach "ForEach" {
    type = "ForEach"
    resolves = "Approve Member"
    variable = "@sourceItemIds"
    as = "@sourceItemId"
}

action "Convert Member Item Id To Member Id" {
    type = "Convert Member Item Id To Member Id"
    needs = []
    member_item_id = "@sourceItemId"
    member_id = "@memberId"
}

action "Approve Member" {
    type = "Approve Member"
    needs = "Convert Member Item Id To Member Id"
    member_id = "@memberId"
    approved = "true"
}
Info

Please note that the foreach is needed as newer iterations of automation only handle lists. This will ensure that your DSL will handle lists of members - to assets for that matter - in the future.

Configuration:

Step

Configuration

Explanation

Business Workflow Stage Entered

Workflow: select the correct user workflow from the dropdown list

Stage Name: select the approved stage from that workflow from the dropdown list

Here, the administrator should indicate the preciously configured user approval workflow and then select at which stage the new user are approved, and therefore this automation should be triggered.

Convert Member Id To Member Item Id

Inputs:

Member Item Id: @sourceItemIds

Outputs:

Member Id: @memberid

Member Item Ids are converted into Member Ids, necessary for the approval process.

Approve Member

Member Id: @memberid

Approved: checked

The newly created user is approved in the DAM Center and therefore can log in and start using the system.

It is also recommended to set up a custom e-mail notification to the new user once they have been approved. For more information on how to create e-mail templates and how to configure sending them using automations, please refer to DC 5.5 Example - Sending emails.

...