首先,我根据 Visual Studio 中的任务列表创建了一个自定义列表定义。此功能还创建该列表的一个实例,标题为“我的工作流程任务”。其次,我开发了一个自定义工作流,同样使用 Visual Studio。当我想添加我的新工作流时,我无法将我的工作流任务列表设置为用于工作流任务。它未列在可用列表的下拉列表中。
这是为什么?谁能解释一下需要做什么才能使其可用?谢谢。
首先,我根据 Visual Studio 中的任务列表创建了一个自定义列表定义。此功能还创建该列表的一个实例,标题为“我的工作流程任务”。其次,我开发了一个自定义工作流,同样使用 Visual Studio。当我想添加我的新工作流时,我无法将我的工作流任务列表设置为用于工作流任务。它未列在可用列表的下拉列表中。
这是为什么?谁能解释一下需要做什么才能使其可用?谢谢。
这是 AddWrkfl.aspx 中填充下拉列表的代码:
<select id="TaskList" name="TaskList" style="<SharePoint:EncodedLiteral runat='server' text='<%$Resources:wss,AddWrkfl_ListSelectionControlsStyle%>' EncodeMethod='HtmlEncode'/>" size="1" align="absmiddle" onchange="OnChangeSelectTaskList();">
<%
foreach (SPList list in Web.Lists)
{
if (list.BaseTemplate == SPListTemplateType.Tasks)
{
%>
<option value=<%SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(list.ID.ToString()),Response.Output);%>>
<% SPHttpUtility.HtmlEncode(list.Title,Response.Output); %>
</option>
<%
}
}
%>
<option id="OptCreateNewTaskList" value="" />
</select>
基于此,自定义列表定义的ListTemplate元素需要具有 107 的 Type 属性值才能显示在下拉列表中。
或者,您可以尝试在功能接收器中以编程方式将您的工作流程与您的列表相关联:
SPWorkflowTemplate template = web.WorkflowTemplates.GetTemplateByName(
"My Workflow",
System.Globalization.CultureInfo.CurrentCulture);
SPWorkflowAssociation association = SPWorkflowAssociation.CreateListAssociation(
template,
"My Instance",
web.Lists["My Workflow Tasks"],
web.Lists["Workflow History"]);
list.WorkflowAssociations.Add(association);