Docflow Executor Type – Role


Using Docflow how do I get the Executor Type – Role function to work?

I am using the DocflowXpo example project with XafariSecuritySystemRole.
The example works with the Executor Type – User without problems.

Do you have more information on using User Groups?


UserDescriptionPosted On

Hello Niel!

If an Executor Type is Role for a Task, then this Task must be available to all users of this role.

By default, the Docflow uses its own Participents types, which are not associated with the Security System types.
The Participant uses the TaskUserParticipant type, for the Participant Role uses the TaskParticipantRole type. These types are related by a many-to-many relationship.
Since these types are not associated with the Security System types, you need to separately create users and roles and define relationships between these objects.

If you specify True in the configuration file in the "Docflow.AddParticipant" key. Then, when the application is updated, users and roles defined in the Xafati\Docflow\Participants model node will be created.
But you will have to further determine their relationship with each other.

To manage the TaskUserParticipant and TaskParticipantRole objects, add the following lists to the navigation: TaskParticipantRole_ListView and TaskUserParticipent_ListView.

Also in the model you need to customize the Detail Views:
1. To represent TaskUserParticipant_DetailView, add the TaskRoles list to Layout
2. To represent TaskParticipantRole_DetailView, add the TaskUsers list to Layout

For the system to work properly, Participants must match in name and relationship with Security System Users and Roles.

For projects based on domain components:
You can create your own types that must implement the IUserParticipant and IParticipantRole interfaces. The IUserParticipant and IParticipantRole interfaces are domain components. Therefore, using them for Xpo types can lead to errors.
Next, you need to tell the system to use these types as the "Participant Types".
To do this, add the following code to the platform independent project module:

public override void Setup (XafApplication application)
base.Setup (application);
application.Xafari (). Tasks (). RoleParticipantType = typeof (CustomParticipantRoleType);
application.Xafari (). Tasks (). UserParticipantType = typeof (CustomParticipantUserType);
An example of how to do this for a project on domain components can be seen in our demo example BCDemo.
The Participant types are IDCSecuritySystemRole and IDCSecuritySystemUser.
Dependency on IUserParticipant IParticipantRole added with ExtensionFramework. See file Xafari.BCDemo\BusinessObjects\ParticipantExtensions.cs

User Groups are no longer used in the Docflow.

The Executor Type - User example worked without problems because all of the Docflow Participant Names matched the security usernames.

Feel free to contact us if you have any questions.

On behalf of Xafari Client Services Team


Thank you!

× This ticket is closed.

Write US