【问题标题】:Best practice to delegate tasks in Sharepoint?在 Sharepoint 中委派任务的最佳实践?
【发布时间】:2011-03-31 09:43:43
【问题描述】:
我想创建一个应该很常见的工作流程,但我不确定最好的方法。我的公司为每个项目或团队都有一个子站点。每个子站点都有自己的任务列表。如果即管理团队想要将任务委派给另一个团队,我应该如何设置该工作流程?如果我创建任务的副本,我希望对它们的更改以两种方式同步,我想这可能会很痛苦?我需要一个工作流在分配的团队的任务列表中创建一个副本,然后每个列表上的一个工作流检查更改并将它们反映到任务的另一个实例。实施起来会有点痛苦,不是吗?但我有什么选择?我想制作一个全公司范围的大任务列表,只根据团队名称或项目过滤任务,这样我就不必复制任务,而是让所有者团队和分配的团队查看相同的任务,但出现显示任务从子站点上的父站点并不明显,并且当将列表连接到 Outlook 时,所有项目的所有任务都是同步的。也许我可以为管理团队创建一个名为“委派任务”之类的视图,从所有以管理团队为所有者的子站点收集任务?
我不知道我是否误解了 Sharepoint 的主要概念,因为即使我的业务案例对我来说非常基础,但在 Sharepoint 中从来没有明显的方法来做到这一点......
感谢您对此的任何意见,塞巴斯蒂安
【问题讨论】:
标签:
sharepoint
sharepoint-2010
sharepoint-workflow
【解决方案1】:
显而易见的选择是在您的任务编辑表单中提供重新分配任务功能。如果已分配任务的团队希望将任务委派给另一个团队,他只需从任务编辑表单中提供的人员选择器控件中选择用户/组,然后单击重新分配链接。
在您有 on task changed 活动的工作流程中,定义 On_task_changed_Invoked 的函数,如下所示
private void onTaskChanged1_Invoked(object sender, ExternalDataEventArgs e)
{
string reassignContent = onTaskChanged1_AfterProperties.ExtendedProperties["DelegateTo"].ToString();
if (!string.IsNullOrEmpty(reassignContent))
{
Hashtable newUser = Form.XmlToHashtable(reassignContent);
this._delegateTo = newUser["AccountId"].ToString();
this._isStateChanged = false;
this._hasReassigned = true;
}
}