如何将自定义任务列表与工作流关联?

时间:2012-05-16 09:59:54

标签: sharepoint sharepoint-2010 workflow content-type sharepoint-workflow

首先,我基于Visual Studio中的“任务”列表创建了自定义列表定义。此功能还会创建名为“我的工作流任务”的列表实例。其次,我再次使用Visual Studio开发了一个自定义工作流程。当我想添加新工作流时,我无法将“我的工作流任务”列表设置为用于工作流任务。它未列在可以使用的可用列表的下拉列表中。

为什么?任何人都可以解释为了使其可用而需要做什么吗?感谢。

1 个答案:

答案 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);