Hello Everyone,
A Custom function is a user-written set of code to achieve a specific requirement. Set the required conditions needed as when to trigger using the Workflow rules (be it Tasks / Project) and associate the custom function to it.
Requirement:-
One of our customers would like to remove the files that are associated to the team folder from Workdrive once the project is Archived. The same has been implemented using Project custom functions along with Workflow rules thus effectively managing storage and preventing the accumulation of unnecessary files for archived projects.
Below is the custom function code for reference.
Custom function code:-
// TODO: Please create a connection for the Zoho OAuth service with the scopes "WorkDrive.team.ALL, WorkDrive.workspace.ALL , WorkDrive.files.ALL, ZohoProjects.portals.ALL, ZohoProjects.documents.READ, WorkDrive.teamfolders.DELETE"
Click this link below to learn how to create the connection.
getFoldersUrl = "http://projects.zoho.com/api/v3/portal/"+portalId+"/projects/"+projectId+"/folders";
teams = invokeurl
[
url :getFoldersUrl
type :GET
connection:"xxxxxxxxx"
];
for each team in teams.get("folders") {
if(team.containKey("thirdparty_folder_id")){
folderId = team.get("thirdparty_folder_id");
deleteTeamFoldersUrl ="https://projects.zoho.com/api/v3/portal/"+portalId+"/documents/thirdparty/teamfolder/"+folderId+"?service=workdrive";
teams = invokeurl
[
url :deleteTeamFoldersUrl
type :DELETE
connection:"xxxxxxxxx"
];
}
}
Make sure to replace xxxxxxxxx with Zoho OAuth connection name. Screenshot of the list of parameters to be mapped and sample Project workflow rule is attached for reference.
Please note the above custom function only deletes the team folders that are associated to the Project and not the attachments associated to other entities (like Tasks / Issues).
We hope you found this post useful. If you have any questions or wondering if your requirement could be met using custom functions, feel free to share them in the comments section below.