
大家好,今天小编继续分享项目管理软件的强大之处,通过任务自动化将日志时间简化为工作时间。在日常工作中,日志记录是不可或缺的一部分,尤其是在需要追踪任务进展或分析系统问题时。为了提高效率,我们可以将这些精确时间简化为更具意义的工作时间段。
一、自定义函数
自定义函数是一组用户编写的代码,用于实现特定要求。
自定义函数的作用
使用工作流规则(无论是任务/项目)设置触发时间所需的条件,并将自定义函数与其关联。
二、用户实际需求
Zoho Projects的一位客户希望在任务完成后将工作时间值更新为与日志时间相同。例如,如果工作时间值为8,日志时间值为5,那么当任务状态更新为已关闭时,工作时间也应更新为5。这可确保准确的用户分配,允许将剩余的可用时间分配给其他任务。通过使用Zoho Projects中的任务自动化成功实现。
自定义函数代码:
endPoint = "https://projects.zoho.com/restapi/portal/";
getLogHours = invokeurl
[
url :endPoint + portalId + "/projects/" + projectId + "/tasks/" + taskId + "/logs/"
type :GET
connection:"XXXXXXX"
];
hours = getLogHours.get("timelogs").get("tasklogs");
logMap = Map();
for each logHours in hours
{
// info "logs : " + logHours.get("hours_display") + " owner_id : " + logHours.get("owner_id");
if(logMap.containsKey(logHours.get("owner_id"))) {
prev = logHours.get("hours_display").toList(":");
curr = logMap.get(logHours.get("owner_id")).toList(":");
sumFirst = prev.get(0).toLong()+curr.get(0).toLong();
sumSec = prev.get(1).toLong()+curr.get(1).toLong();
if(sumSec >= 60) {
sumFirst = sumFirst+(sumSec/60).round(0);
sumSec = sumSec-(sumSec/60).round(0)*60;
}
// info "sumFirst : "+sumFirst+" sumSec : "+sumSec;
logMap.put(logHours.get("owner_id"),sumFirst.toString()+":"+sumSec.toString());
} else {
logMap.put(logHours.get("owner_id"),logHours.get("hours_display"));
}
}
// info logMap;
taskResponse = zoho.projects.getRecordById(portalId,projectId,"Tasks",taskId,"XXXXXXX");
owners = taskResponse.get("tasks").get(0).get("details").get("owners");
// info owners;
taskWorks = List();
ownerIds = "";
for each owner in owners
{
if(owner.get("name").containsIgnoreCase("Unassigned"))
{
break;
}
else
{
isOwnerPresent = true;
ownerId = owner.get("id");
ownerWorkHours = logMap.get(ownerId);
taskWork = Map();
taskWork.put("user_id",ownerId);
taskWork.put("working_hours",ownerWorkHours);
taskWorks.add(taskWork);
ownerIds = ownerIds + owner.get("id") + ",";
// info ownerWorkHours;
}
}
taskOwners = ownerIds.removeLastOccurence(",");
// info taskOwners;
updateTaskParameter = Map();
if(isOwnerPresent)
{
updateTaskParameter.put("owner_work",taskWorks);
updateTaskParameter.put("work_type","work_hours");
updateTaskParameter.put("person_responsible",taskOwners);
updateTaskResponse = zoho.projects.update(portalId,projectId,"tasks",taskId,updateTaskParameter,"XXXXXXX");
info updateTaskResponse;
}
return "success";
注意事项
确保将 XXXXX 替换为 Zoho Projects 连接链接名称以及范围 ZohoProjects.portals.READ、ZohoProjects.tasks.ALL、ZohoProjects.timesheets.READ。
三、FAQ:常见问题
1.什么是日志时间?为什么需要简化?
日志时间是指员工记录和管理日常任务、工作进度以及项目状态所花费的时间。通过任务自动化工具,可以将日志记录过程简化甚至完全自动化,减少人工干预,从而节省时间并提高准确性。
2.任务自动化如何帮助简化日志时间?
任务自动化工具通过集成多种功能,不仅减少了手动记录的麻烦,还能确保数据的完整性,为后续决策提供可靠支持。
3.哪些工具可以实现日志时间的自动化?
目前市场上有多种任务自动化工具可供选择,企业可以根据身需求选解决方案,以实现工作流程的全面优化。
Zoho Projects项目管理软件,深受国内外项目协作团队一致喜爱,Zoho是专业项目管理软件厂商。
欢迎咨询:400-660-8680转841。立即免费体验: https://www.zoho.com.cn/projects/
Zoho Projects项目管理系统是一款SaaS云端项目管理工具,多次荣获项目管理国际大奖。180多个国家的20万+企业在Zoho Projects的帮助下,管理项目进度、分配任务、制作甘特图、计算工时等,加强团队协作能力,保障项目成功交付。