
大家好,今天很高兴与大家分享一个在项目任务管理中非常实用的技巧:如何自动同步任务所有者的团队。这不仅能提高我们的工作效率,还能确保团队协作的顺畅性。让我们一起进入项目管理软件的世界吧!
一、什么是自定义函数?
首先,让我们来了解一下自定义函数。自定义函数其实是一组用户编写的代码,旨在满足特定的需求。在项目管理中,使用自定义函数可以帮助我们实现一些项目流程自动化的操作,简化繁琐的手动流程。这对于我们日常的任务管理尤其重要,尤其是在团队协作和信息同步方面。
工作流规则的重要性
在项目管理中,工作流规则起着至关重要的作用。无论是任务还是项目,工作流规则都能帮助我们设置触发条件,以便在特定时间或事件发生时自动执行某些操作。通过合理设置工作流规则,我们可以确保信息的及时更新和团队的高效协作。
二、自动获取任务所有者的团队
接下来,我想分享一个具体的案例。我们的一位客户希望在蓝图转换期间,能够自动获取任务所有者的团队,并将其分配给关联团队字段。这一需求的实现,将大大减少手动操作的时间,提高项目管理的效率。
解决方案:自定义函数的应用
为了实现这一目标,我们需要将以下自定义函数代码关联到蓝图转换的“之后”部分。这样,当蓝图转换完成后,系统将自动执行该函数,从而完成团队信息的同步。
要求:
客户希望在蓝图转换期间自动获取任务所有者的团队并将其分配给关联团队字段。为此,请将以下自定义函数代码关联到蓝图转换的“之后”部分。
自定义函数代码:
endPointV3 = "https://projects.zoho.com/api/v3/portal/";
zuidList = list();
/* Get all owners and teams. */
for each owner in taskOwners
{
zuidList.add(owner.get("id").toString());
}
getTeamUsers = invokeurl
[
url :endPointV3 + portalId + "/teams/users"
type :GET
connection:"XXXXX"
];
if(getTeamUsers.get("page_info").get("count") > 0)
{
associtedTeams = list();
for each user in getTeamUsers.get("team_users")
{
info zuidList + " == " + user.get("zuid") + " : " + zuidList.contains(user.get("zuid"));
if(zuidList.contains(user.get("zuid")))
{
associtedTeams.addAll(user.get("associted_teams"));
}
}
associtedTeams = associtedTeams.distinct();
}
/* Get all associate teams */
getAssociatedTeams = invokeurl
[
url :endPointV3 + portalId + "/projects/" + projectId + "/teams"
type :GET
connection:"XXXXX"
];
// info getAssociatedTeams;
associteTeam = list();
for each teamid in associtedTeams
{
associteTeam.add({"id":teamid});
}
/* Remove teams that are already associated */
if(getAssociatedTeams.get("page_info").get("count") > 0)
{
for each team in getAssociatedTeams.get("teams")
{
if(associtedTeams.contains(team.get("id")))
{
associtedTeams.removeElement(team.get("id"));
}
}
}
// info associtedTeams;
/* Associate teams to project of not added */
if(associtedTeams.size() > 0)
{
params = Map();
params.put("team_ids",associtedTeams);
info params;
associateTeamToProject = invokeurl
[
url :endPointV3 + portalId + "/projects/" + projectId + "/associate-teams"
type :POST
parameters:params
connection:"XXXXX"
];
info associateTeamToProject;
}
/* Associate teams to task of not added */
if(associteTeam.size() > 0)
{
params = Map();
params.put("teams",{{"add":associteTeam}});
info params;
associateTeamToTask = invokeurl
[
url :endPointV3 + portalId + "/projects/" + projectId + "/tasks/" + taskId
type :PATCH
parameters:params.toString()
connection:"XXXXX"
];
info associateTeamToTask;
}
return "success";
注意:
确保将 XXXXX 替换为 Zoho Projects 连接链接名称以及范围 ZohoProjects.tasks.UPDATE、ZohoProjects.teams.ALL。
希望这篇文章对你有所帮助。如果你有任何问题,请随时在下面的评论区中留言。
Zoho Projects项目管理软件,深受国内外项目协作团队一致喜爱,Zoho是专业项目管理软件厂商。
欢迎咨询:400-660-8680转841。立即免费体验: https://www.zoho.com.cn/projects/
Zoho Projects项目管理系统是一款SaaS云端项目管理工具,多次荣获项目管理国际大奖。180多个国家的20万+企业在Zoho Projects的帮助下,管理项目进度、分配任务、制作甘特图、计算工时等,加强团队协作能力,保障项目成功交付。