我正在尝试创建具有特定内容类型任务的工作流(状态机),并在工作流历史记录中接收“工作流名称中出现错误”错误,这绝对没有提供信息,在这种情况下我没有想法发生了什么,我的错误在哪里。
更多详情:
我的Elements.xml
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Workflow
Name="Pre-Award Approval Workflow"
Description="Pre-Award Approval Workflow"
Id="33ad7f25-b86f-43e8-86d8-300e92891227"
CodeBesideClass="Pre_Award_Approval_Worflow.Workflow.Workflow"
TaskListContentTypeId="0x0100d7d89499b9234bde9a67bfb11db5ce64"
CodeBesideAssembly="$assemblyname$">
<Categories/>
<MetaData>
<AssociationCategories>List</AssociationCategories>
<StatusPageUrl>_layouts/WrkStat.aspx</StatusPageUrl>
</MetaData>
</Workflow>
</Elements>
在新项目创建活动上调整工作流程。
当我创建列表中的新项目时,我收到了有关工作流程历史记录的错误“[工作流程名称]中发生了错误”
要查找发生了哪个步骤错误,我在每个工作流步骤 LogToHistoryListActivity 之前和之后设置,并发现 createTask 中发生了错误,但是当我尝试捕获时整个 crteateTask_Invoking 函数没有异常发生。
当我从Element.xml中拿走 TaskListContentTypeId =“0x0100d7d89499b9234bde9a67bfb11db5ce64”时没有错误,但工作流创建的任务具有默认内容类型,这对我没有好处。
我的错误在哪里?
即使有人能以我应该调查的方式向我提出建议,我也会很高兴。
提前致谢。
答案 0 :(得分:0)
在深入挖掘这个问题之后,我找到了最好的解决方案,这里有很好的描述。它是一本书 - SharePoint 2010作为开发平台 - 2010 ,特别是第16章主题部署工作流。我希望它对某人有所帮助。
答案 1 :(得分:0)
问题是以0x0100
开头的内容类型不是工作流选项TaskListContentTypeId
的有效选项。
要使工作流使用非默认内容类型用于工作流任务,内容类型必须从默认的任务列表内容类型继承。生成的内容类型ID以0x010801
开头。
所以在你的Elements.xml中你应该有
TaskListContentTypeId="0x010801....."
Joerg Krause等人在2010年的书"SharePoint 2010 as a Development Platform"(第947-1034页)中提供了更多信息。
Jamal Ulb提出这个有趣的问题并分享他的测试结果,从而得到你现在正在阅读的答案。