1

まず、Visual Studio のタスク リストに基づいてカスタム リスト定義を作成しました。この機能は、「マイ ワークフロー タスク」というタイトルのリストのインスタンスも作成します。次に、Visual Studio を使用して、カスタム ワークフローを開発しました。新しいワークフローを追加したいときに、ワークフロー タスクに使用するマイ ワークフロー タスク リストを設定できません。使用可能なリストのドロップダウンには表示されません。

何故ですか?それを利用できるようにするために何をする必要があるかを誰か説明できますか? ありがとう。

4

1 に答える 1

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要素の Type 属性値を 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);
于 2012-05-16T13:30:49.127 に答える