获取不同语言的WorkflowTemplate

时间:2013-10-17 14:04:19

标签: sharepoint workflow

我需要从当前网站获取OOB审批工作流程,以将其与我的自定义列表相关联

我试图通过BaseId获取它,但后来我知道BaseId对于不同的语言是不一样的。

是否有其他方法可以获取针对不同语言创建的网站的OOB审批工作流程模板?

我也尝试过GetTemplateByName方法,但是对于除英语以外的任何语言,它都返回null。

web.WorkflowTemplates.GetTemplateByName(“Approval - SharePoint 2010”,CultureInfo.CurrentCulture)

任何帮助将不胜感激。

由于 桑杰

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题。

正如我在我的问题中所提到的,BaseId因语言而异。在尝试了不同的方法并使用Google搜索后,我没有找到问题的任何解决方案,所以我开始自己调查。

在我调查期间,我获取了BaseId用于不同语言的审批工作流程,很快就出现了一种模式。事实证明,BaseId(Guid)对于除了最后三位数之外的每种语言几乎相同,并且这三位数基本上是LCID的十六进制表示!!

因此,这就是基于模板的id的形成方式

string baseId =“8ad4d8f0-93a7-4941-9657-cf3706f00”+ web.Language.ToString(“X”); Guid workflowBaseId = new Guid(baseId);

所以,一旦我们有了基本id,我们可以使用相同的方法来检索模板: web.WorkflowTemplates.GetTemplateByBaseID(workflowBaseId);

我还在这里写了一篇关于这篇文章的博文,以防你希望看到整个工作流程关联代码:http://sanjaybhagia.wordpress.com/2013/10/20/associating-oob-approval-workflow-with-custom-list-for-different-locale-lcids/

希望它有所帮助。

此致 桑杰