我需要从当前网站获取OOB审批工作流程,以将其与我的自定义列表相关联
我试图通过BaseId获取它,但后来我知道BaseId对于不同的语言是不一样的。
是否有其他方法可以获取针对不同语言创建的网站的OOB审批工作流程模板?
我也尝试过GetTemplateByName方法,但是对于除英语以外的任何语言,它都返回null。
web.WorkflowTemplates.GetTemplateByName(“Approval - SharePoint 2010”,CultureInfo.CurrentCulture)
任何帮助将不胜感激。
由于 桑杰
答案 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/
希望它有所帮助。
此致 桑杰