Sharepoint 2010工作流任务自定义内容类型
我正在尝试创建具有特定内容类型任务的工作流(状态机),并在工作流历史记录中收到“在[工作流名称]中发生了错误”错误,这绝对没有任何信息,在这种情况下,我不知道发生了什么以及我的错误在哪里 更多详情:Sharepoint 2010工作流任务自定义内容类型,sharepoint,workflow,task,content-type,Sharepoint,Workflow,Task,Content Type,我正在尝试创建具有特定内容类型任务的工作流(状态机),并在工作流历史记录中收到“在[工作流名称]中发生了错误”错误,这绝对没有任何信息,在这种情况下,我不知道发生了什么以及我的错误在哪里 更多详情: 我已经使用自定义内容类型及其表单为task创建了VS project,并对其进行了部署 我已经为状态机工作流创建了VS项目。 在Elements.xml设置中TaskListContentTypeId My Elements.xml <Elements xmlns="http://sch
- 我已经使用自定义内容类型及其表单为task创建了VS project,并对其进行了部署
- 我已经为状态机工作流创建了VS项目。 在Elements.xml设置中TaskListContentTypeId
<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>
列表
_布局/WrkStat.aspx
在“新建项目创建”事件上调整的工作流
当我在我的列表中创建一个新项目时,我在工作流历史记录中收到错误“在[工作流名称]中发生错误”
为了找出发生错误的步骤,我在每个工作流步骤前后设置了LogToHistoryListActivity,并发现错误发生在createTask中,但当我尝试捕获调用函数的整个任务时,没有发生异常
当我从Element.xml中删除TaskListContentTypeId=“0x0100d7d89499b9234bde9a67bfb11db5ce64”时,没有错误,但工作流使用默认内容类型创建了任务,这对我不好
我的错在哪里
我会很高兴,即使有人能给我建议,我应该以何种方式进行调查
提前感谢。在对这个问题进行更深入的挖掘之后,我找到了最好的解决方案,对这个主题进行了很好的描述。这是一本书——SharePoint 2010作为开发平台-2010,特别是在第16章主题部署工作流中。我希望它能对某些人有所帮助。在对这个问题进行了更深入的挖掘之后,我找到了最好的解决方案,其中对这个主题进行了很好的描述。这是一本书——SharePoint 2010作为开发平台-2010,特别是在第16章主题部署工作流中。我希望它能对某些人有所帮助。代码有问题 问题是以
0x0100
开头的内容类型不是工作流选项TaskListContentTypeId
的有效选项
解决方案
若要使工作流对工作流任务使用非默认内容类型,内容类型必须从默认任务列表内容类型继承。生成的内容类型ID以0x010801
开头
因此,在Elements.xml中,您应该
TaskListContentTypeId="0x010801....."
更多信息请参见Joerg Krause等人2010年出版的书(第947-1034页)
信用
Jamal Ulb提出了这个有趣的问题,并分享了他的测试结果,从而得出了您现在正在阅读的答案。代码有问题吗
问题是以0x0100
开头的内容类型不是工作流选项TaskListContentTypeId
的有效选项
解决方案
若要使工作流对工作流任务使用非默认内容类型,内容类型必须从默认任务列表内容类型继承。生成的内容类型ID以0x010801
开头
因此,在Elements.xml中,您应该
TaskListContentTypeId="0x010801....."
更多信息请参见Joerg Krause等人2010年出版的书(第947-1034页)
信用
Jamal Ulb提出了这个有趣的问题,并分享了他的测试结果,得出了您现在正在阅读的答案。您确定内容类型id的语法正确吗?@jan jouke tjalsma我从Schema.xml获得了它
为什么您会问这个问题,您有没有猜测?老实说,我以前从未编写过这样的工作流,只是GUID通常有花括号,而其他ID往往较短。但你是对的,这有点猜测。@jan jouke tjalsma这就是问题所在,我不知道如何准确地开发工作流。也许你能从你的工作流程编码经验中给我一些解释吗?看起来内容类型的语法很好。您指定的内容类型是否应该继承工作流任务内容类型?然后它应该以0x010801开始。如果我是正确的,您的继承自自定义列表。可能工作流希望内容类型中的某些列在您从自定义列表继承时不存在。您可能可以通过将默认工作流任务内容类型id放在那里来测试这一点。您确定内容类型id的语法正确吗?@jan jouke tjalsma我是从Schema.xml获得的
为什么您会问这个问题,您有没有猜测?老实说,我以前从未编写过这样的工作流,只是GUID通常有花括号,而其他ID往往较短。但你是对的,这有点猜测。@jan jouke tjalsma这就是问题所在,我不知道如何准确地开发工作流。也许你能从你的工作流程编码经验中给我一些解释吗?看起来内容类型的语法很好。您指定的内容类型是否应该继承工作流任务内容类型?然后它应该以0x010801开始。如果我是正确的,您的继承自自定义列表。可能工作流希望内容类型中的某些列在您从自定义列表继承时不存在。您可能可以通过将默认工作流任务内容类型id放在那里来测试这一点。