Workbook Inbox is a placeholder where experiment Author / Reviewer and other workflow actors can communicate between themselves on experiments as opposed to using email notification. However, there are some instances where these messages can be little challenging to delete and they are controlled by the Workflow during different workflow transitions. This confuses end users and they always ask below two questions. Hope this article will help others.
Q1- Is there way for the users to do a cleanup themselves? If not, is there any way for a super user/admin to do a cleanup?
Q2- If there is no way for us to clean up boxes over time, what the was purpose of allowing them to not delete messages?
Please find my answer below which I have communicated to customers in the past.
Q1- Is there way for the users to do a cleanup themselves? If not, is there any way for a super user/admin to do a cleanup?
There are two ways of deleting the Inbox messages.
- Delete the message/s from database end from an system admin prospective
- Update the data rows in table by enabling the flag so that User can delete this message from ELN client.
Option#1-
=========
In Oracle SQL Developer (or similar tool):
1. Find out the GUID of the affected user in table VAULTSITE.G_USER ( you can also get the Documentid of the experiment and perform the below steps too. Just an alternate option based on requirement whether mass deletion or single document message deletion).
2. Go to any of versioned repositories (e.g. VAULVERSION1) and filter the table ANNOTATION by USERGUID or DOCUMENTID (from step 1).
3. Check the TITLE and DESCRIPTION fields for the filtered messages and delete the message which is no longer needed. Commit the changes.
4. Do the same thing for any other versioned repositories in which Inbox messages were created.
Example Queries :-
Select * from VAULT_USERDATA.annotation where objectguid='Document.5f19305d-86b5-4ec4-8a0f-93eaf15a16d0'; - This list only the message specific to that documentID
Select * from VAULT_USERDATA.annotation where userguid='User.5863b73d-d129-4464-3a09-bcac1f893e50'; - This will give them all the messages w.r.to the userID
Please change the VAULT_USERDATA, ObjectGuid and USERGUID w.r.to your environment.
I haven’t included the DELETE command as this is something the end user need to decide which method they want to follow, whether by individual document or by user.
Option#2-
=========
Perform the same steps mentioned about up to first 3 points and instead of deleting the records , Update the "DeletableBy" column on the message to a value of 12 and let the user remove the notification from ELN client.
Example Querie :-
update VAULT_USERDATA.annotation set deletableby=12 where objectguid='Document.5f19305d-86b5-4ec4-8a0f-93eaf15a16d0'; - This will only enable the user to delete that particular message with respect to that document.
update VAULT_USERDATA.annotation set deletableby=12 where userguid='User.5863b73d-d129-4464-3a09-bcac1f893e50'; - This is will enable this user to delete all the messages with respect to the version repository from Inbox Message center
Please change the VAULT_USERDATA, ObjectGuid and USERGUID with respect to customer environment.
Note :- If customer seems multiple rows w.r.to documentID then please add extra where clause to filter out the intended messages which need to be deleted.
Q2- If there is no way for us to clean up boxes over time, what the was purpose of allowing them to not delete messages?
As they have the option to delete the messages I will skip first part of the 2nd question. However, coming back to 2nd part please see my response below , why we would allow or have the option to choose Deletable By while sending messages from Send Message functionality :-
There are scenarios where an User wants to send a notification to Reviewer/Collaborator/Informal Reviewer etc to go through the message and act on it. And the user can uncheck the checkbox where the receiver will lose the ability to delete the message and as soon as the intended action has been taken on the message, then User can delete that from his/her end. But if both the checkboxes are unchecked then there is no way it can be deleted from frontend unless you modify the database rows w.r.to the document or experiment.
Hope this helps you in future.
