Description
This process is useful for cases where the standard “Share” action that can be used to share objects with other users is not sufficient. This “Share” action does not only share objects with selected users, it also notifies them about the shared document and requires a confirmation for the process to be completed. The process can be also used as a template for further customization of sharing use cases, if they are to be used in projects.
To initiate this process, you must have Edit rights for the object type you want to share. Select the “Share” action, add the users or user groups you want to share this document with and write a comment:
To start the process, click OK. The custom sharing logic is contained within the BeforeStartEvent which gives the users or user groups specified Read rights for the shared document.
Each member of the group receives the task 'Confirm sharing' in his inbox.
Each recipient must accept the task, read the document and confirm the task when finished. When each user has confirmed, the process ends.
Language
This process model ist available in English and German.
Administering the Sharing Process
Download the zip file below. Extract the Sharing directory into the location of your enaio projects, which usually is ..\user\documents.
Open the project in the designer and copy the Sharing process model into your project. Then validate the process and if nothing is reported, deploy it.
The model looks like this:
The process model consists of one parallel container with an activity notice. This activity notice has to be confirmed by the recipients you specify at the beginning of the process.
Main Activity Settings
This process is available for each user and process. Change the Initiators and the Main object type to restrict its behavior.
The process subject is set by the title of the object the process is started for, as shown below in the BeforeStartEvent of the main activity.
// set object title indirectly as process subject $.variable('objecttitle').value = $.file.get()[0].title; // Share the object to the var processFile = $.file.get(); // get all process file objects into the array processFile var dmsObject = processFile[0]; // take the first element var putBody = { objects : [], organizationobjectstype : 'id', organizationobjects : [] }; putBody.objects.push( { itemid : dmsObject.id, type: dmsObject.type } ); putBody.organizationobjects.push($.variable('usergroup').value); $.http.post(); $.http.path('/service/dms/batch/addtoadditionalvisibility'); $.http.body(putBody); $.http.execute(); $.done();
Sending Tasks to all Recipients
To send a task to each member of the configured group, the container for parallel execution has to be configured like this:
The script to control the Participant type is the BeforeStartEvent:
// Set all participants var recipient = new $.OrgObject(); recipient.id = $.variable('usergroup').value; $.activity('this').performers.push(recipient); $.done();
Configuring 'notice'
The Participant type attribute must be set to 'Multi-instance controlled', in accordance with the settings of the parallel container (see above).
Each user will also receive an e-mail notification, if an e-mail address is provided in his user profile and the e-mail server is configured.
The standard Forward button is renamed to Confirm, as can be seen in the Actions attribute.
Prerequisites
The object types of objects to be shared must be configured first:
Check Allow sharing. Please note that this feature will slighty impact the performance of the system.
It is not necessary for users to have the Display right for the object type concerned, but they must have the Available right.
After sharing the object with a user, the Display right for this object is assigned to him.
Process Model Version History
Version | Date | Author | Description |
---|---|---|---|
1 | March 19, 2019 | Martin Bartonitz | Start with basics:
|