首先,我基于Visual Studio中的“任务”列表创建了自定义列表定义。此功能还会创建名为“我的工作流任务”的列表实例。其次,我再次使用Visual Studio开发了一个自定义工作流程。当我想添加新工作流时,我无法将“我的工作流任务”列表设置为用于工作流任务。它未列在可以使用的可用列表的下拉列表中。
为什么?任何人都可以解释为了使其可用而需要做什么吗?感谢。
答案 0 :(得分:2)
以下是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才能显示在下拉列表中。
或者,您可以尝试在功能接收器中以编程方式将工作流程与列表相关联:
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);