Hello Everyone,
projectsDomain = "https://projectsapi.zoho.com";// approveStatus = approved | rejected for rejected status note is mandatory.getAssociatedTimelogEntriesAPI = projectsDomain + "/api/v3/portal/" + portalId + "/projects/" + bugProjectId + "/timesheet";getAssociatedTimelogEntriesParam = Map();getAssociatedTimelogEntriesParam.put("page",1);getAssociatedTimelogEntriesParam.put("per_page",200);getAssociatedTimelogEntriesParam.put("view_type","projectspan");moduleJson = Map();moduleJson.put("id",bugId);moduleJson.put("type","issue");getAssociatedTimelogEntriesParam.put("module",moduleJson);info getAssociatedTimelogEntriesParam.toString();info getAssociatedTimelogEntriesAPI;getAssociatedTimelogEntriesResp = invokeurl[url :getAssociatedTimelogEntriesAPItype :GETparameters:getAssociatedTimelogEntriesParamconnection:"xxxxxxxxx"];info getAssociatedTimelogEntriesResp;if(getAssociatedTimelogEntriesResp != null && getAssociatedTimelogEntriesResp.get("time_logs") != null){updateLogHoursStatusAPI = projectsDomain + "/api/v3/portal/" + portalId + "/logs";logEntriesList = List();bugTimeLogEntries = getAssociatedTimelogEntriesResp.get("time_logs");for each timeLog in bugTimeLogEntries{logDetails = timeLog.get("log_details");for each logDet in logDetails{logId = logDet.get("id");logMap = Map();logMap.put("approval_status",approvalStatus);logMap.put("id",logId);logMap.put("module","issue");logNote = Map();logNote.put("notes",approvalNote);logMap.put("extra_data",logNote);logEntriesList.add(logMap);}}payload = "[" + logEntriesList + "]";updateLogStatusResp = invokeurl[url :updateLogHoursStatusAPItype :PATCHparameters:payloadconnection:"xxxxxxxxx"];info updateLogStatusResp;}
Creating custom functions in Zoho Projects is straightforward and well-documented. Zoho provides a range of built-in functions that you can use as a starting point, and you can also easily define your own functions using Zoho's scripting language, Deluge. Give it a try and see how it can save your time and boost your productivity!
Watch this space for more such custom function codes.