Workflow Teams (TMS)

The tms submodule of wfl owns the team and team-member configuration that drives task assignment. A WFTeam is a named bucket (optionally tied to a department) that owns workflow tasks; a WFTeamMember is a user’s membership in a team. Other modules call into this submodule when a task is created (the process step’s assignToTeam) and when authorizing whether a given user may pick up or close a task. It depends on com.org for the optional department a team is tied to and on sys.usr for the user.

Concepts

Team

A named group of users responsible for handling a class of tasks. Optionally scoped to a department.

Team Member

A user’s membership in a team. Drives the "is this user allowed to act on this task" check made at task pickup and close.

Entities

TMS entities

Team (WFTeam)

A named group of users.

FieldDescription

code

Business key (up to 8 characters).

description

Human-readable name.

department

Optional department the team belongs to.

Team Member (WFTeamMember)

A user’s membership in a team.

FieldDescription

wfTeam

Owning team (composite business key with user).

user

The member user.

Functionality

Team-membership check

WFTeamReaderService.isUserPartOfTheTeam answers whether a given User is a member of a given WFTeam. It is the seam used by task-pickup and task-close authorization, so the rest of the workflow stack does not have to reason about the link table directly.

Dynamic team-membership matrix

UserViewModel_WFTeamMembers extends the standard user edit page with a dynamic checkbox per existing WFTeam. Loading a user ticks the boxes for the teams they belong to; saving the record removes every existing membership row for the user and re-creates them from the ticked boxes. The pattern is the same as `sys.usr’s group-member matrix.

Public API

WFL_TMS_QueryApi

Read-side facade.

MethodDescription

findTeamByCode(Code8)

Team by code, or null.

isUserPartOfTheTeam(User, WFTeam)

True when the user is a member of the team.

WFL_TMS_CommandApi

This submodule does not provide a command API class. Teams and memberships are maintained through the standard CRUD pages and through the UserViewModel_WFTeamMembers matrix on the user edit page.

ViewModel actions

The submodule defines view models for WFTeam and WFTeamMember but does not declare any custom UI actions. The dynamic team-membership matrix on the user edit page is rendered through UserViewModel_WFTeamMembers.