任务自动化:根据里程碑自动更新项目状态

2025-02-2528 阅读量2 分钟Lu Yin
任务自动化:根据里程碑自动更新项目状态

大家好,今天分享的是任务自动化,根据里程碑自动更新项目状态。在项目管理中,大型项目往往包含多个里程碑,而这些里程碑的完成时间直接影响着项目的整体进度。根据项目管理软件里程碑的完成情况实时更新项目状态,不仅降低成本,还优化了信息即时性。

 一、自定义函数的概念

自定义函数是一种可用于自动化流程的软件代码,允许你在触发工作流规则后立即自动发送通知、调用webhook或执行逻辑。

自定义函数的功能作用

自定义函数有助于自动执行复杂的任务和计算。

二、根据里程碑自动更新项目状态

项目的状态应根据该项目中已完成的里程碑数量自动更新。以下应是根据已完成项目里程碑的数量确定的项目状态。

  • 尚未启动 → 当没有里程碑完成时。
  • 进行中 → 当至少一个里程碑完成时。
  • 已完成 → 当所有里程碑都完成时。

下面我们已经使用自定义函数实现此目标:

为Zoho Projects服务创建连接,范围为“ZohoProjects.portals.READ、ZohoProjects.projects.ALL、ZohoProjects.milestones.READ”,将“projects”替换为连接名称。单击下面的链接了解如何创建连接。

可以通过将自定义函数与项目蓝图规则关联来自动执行此过程。附上任务工作流规则和参数的屏幕截图。

自定义函数代码:

projectsEndpoint = "https://projectsapi.zoho.com/restapi/portal/";
param = Map();
param.put("status","completed");
getMilestones = invokeurl
[
url :projectsEndpoint + portalId + "/projects/"+ projectId +"/milestones/"
type :GET
parameters:param
connection:"projects"
];
// info getMilestones;
statusName = "";
if(getMilestones == "") {
info "No milestones completed";
statusName = "Yet to Initiate";

else if (getMilestones.contains("milestones")) {
completedMilestones = getMilestones.get("milestones").size();
info "Completed Milestones : "+completedMilestones;
if(completedMilestones==1) {
statusName = "zp.projstatus.inprogress";
}
else {
param = Map();
param.put("status","notcompleted");
getNotCompletedMilestones = invokeurl
[
url :projectsEndpoint + portalId + "/projects/"+ projectId +"/milestones/"
type :GET
parameters:param
connection:"projects"
];
if(getNotCompletedMilestones=="") {
statusName = "zp.projstatus.completed";
} else {
notCompletedMilestones = getNotCompletedMilestones.get("milestones").size();
info "Not Completed Milestones : "+notCompletedMilestones;
}
}
}
info statusName;
/* Project status update  */
if(statusName!="") {
projectDetails = invokeurl
[
url :projectsEndpoint  + portalId + "/projects/" + projectId + "/"
type :GET
connection:"projects"
];
//  info projectDetails;
info "-------------------------------------";
statusMap = Map();
if(projectDetails != null && projectDetails.get("projects") != null)
{
projectDetail = projectDetails.get("projects").get(0);
layoutDetails = projectDetail.get("layout_details");
projectLayoutId = layoutDetails.get("project").get("id");
info "projectLayoutId: " + projectLayoutId;
projectLayoutDetail = invokeurl
[
url :projectsEndpoint + portalId + "/module/projects/layouts/" + projectLayoutId + "/"
type :GET
connection:"projects"
];
if(projectLayoutDetail != null && projectLayoutDetail.get("customstatus") != null)
{
projectStatus = projectLayoutDetail.get("customstatus");
for each  status in projectStatus
{
statusMap.put(status.get("status_name"),status.get("status_id"));
}
}
info "statusMap : " + statusMap;
info "------------------------";
if(statusMap.containKey(statusName))
{
updateProjectParamMap = Map();
updateProjectParamMap.put("custom_status",statusMap.get(statusName));
projectDetail = invokeurl
[
url :projectsEndpoint + portalId + "/projects/" + projectId + "/"
type :POST
parameters:updateProjectParamMap
connection:"projects"
];
//  info projectDetail;
//  info "-------------------------------------";
}
}
}
return "success";

注意事项

在 Zoho Projects中创建自定义函数很简单,而且有据可查。Zoho提供了一系列内置函数,基于这些默认函数设定新函数,也可以使用Zoho的脚本语言Deluge轻松定义自己的函数。

最后不妨试一下,看看它如何节省你的时间并提高工作效率!

Zoho Projects项目管理软件,深受国内外项目协作团队一致喜爱,Zoho是专业项目管理软件厂商。

欢迎咨询:400-660-8680转841。立即免费体验: https://www.zoho.com.cn/projects/

相关话题

任务自动化任务流程自动化任务管理任务管理软件任务管理工具项目管理里程碑项目里程碑里程碑任务
上一页任务自动化:将日志时间简化为工作时间查看文章
下一页软件研发如何管理项目进度?查看文章

Zoho Projects项目管理系统是一款SaaS云端项目管理工具,多次荣获项目管理国际大奖。180多个国家的20万+企业在Zoho Projects的帮助下,管理项目进度、分配任务、制作甘特图、计算工时等,加强团队协作能力,保障项目成功交付。