プログラムでワークフローとリストの関連付けを作成する方法

投稿目的



この投稿は、ワークフローを実行し、プログラムで関連付けをリストする方法を示すことを目的としています。 ワークフローは標準でも、Visual Studioで作成してもかまいません。 ワークフローに関しては、標準のタスクリストとワークフロー履歴リストを使用します。



Web変数は、ワークフローに関連付ける必要があるリストを含むSPWebオブジェクトであることに同意します。

1.使用する変数を宣言します



SPList myList = null ; // workflow string myListName = null ; // SPList historyList = null ; // workflow SPList taskList = null ; // workflow string workflowTemplateGuid = null ; // Guid worklfow SPWorkflowTemplate workflowTemplate = null ; // Workflow SPWorkflowAssociation workflowAssociation = null ; // workflow string workflowAssocName = null ; // workflow
* This source code was highlighted with Source Code Highlighter .
  1. SPList myList = null ; // workflow string myListName = null ; // SPList historyList = null ; // workflow SPList taskList = null ; // workflow string workflowTemplateGuid = null ; // Guid worklfow SPWorkflowTemplate workflowTemplate = null ; // Workflow SPWorkflowAssociation workflowAssociation = null ; // workflow string workflowAssocName = null ; // workflow
    * This source code was highlighted with Source Code Highlighter .
  2. SPList myList = null ; // workflow string myListName = null ; // SPList historyList = null ; // workflow SPList taskList = null ; // workflow string workflowTemplateGuid = null ; // Guid worklfow SPWorkflowTemplate workflowTemplate = null ; // Workflow SPWorkflowAssociation workflowAssociation = null ; // workflow string workflowAssocName = null ; // workflow
    * This source code was highlighted with Source Code Highlighter .
  3. SPList myList = null ; // workflow string myListName = null ; // SPList historyList = null ; // workflow SPList taskList = null ; // workflow string workflowTemplateGuid = null ; // Guid worklfow SPWorkflowTemplate workflowTemplate = null ; // Workflow SPWorkflowAssociation workflowAssociation = null ; // workflow string workflowAssocName = null ; // workflow
    * This source code was highlighted with Source Code Highlighter .
  4. SPList myList = null ; // workflow string myListName = null ; // SPList historyList = null ; // workflow SPList taskList = null ; // workflow string workflowTemplateGuid = null ; // Guid worklfow SPWorkflowTemplate workflowTemplate = null ; // Workflow SPWorkflowAssociation workflowAssociation = null ; // workflow string workflowAssocName = null ; // workflow
    * This source code was highlighted with Source Code Highlighter .
  5. SPList myList = null ; // workflow string myListName = null ; // SPList historyList = null ; // workflow SPList taskList = null ; // workflow string workflowTemplateGuid = null ; // Guid worklfow SPWorkflowTemplate workflowTemplate = null ; // Workflow SPWorkflowAssociation workflowAssociation = null ; // workflow string workflowAssocName = null ; // workflow
    * This source code was highlighted with Source Code Highlighter .
  6. SPList myList = null ; // workflow string myListName = null ; // SPList historyList = null ; // workflow SPList taskList = null ; // workflow string workflowTemplateGuid = null ; // Guid worklfow SPWorkflowTemplate workflowTemplate = null ; // Workflow SPWorkflowAssociation workflowAssociation = null ; // workflow string workflowAssocName = null ; // workflow
    * This source code was highlighted with Source Code Highlighter .
  7. SPList myList = null ; // workflow string myListName = null ; // SPList historyList = null ; // workflow SPList taskList = null ; // workflow string workflowTemplateGuid = null ; // Guid worklfow SPWorkflowTemplate workflowTemplate = null ; // Workflow SPWorkflowAssociation workflowAssociation = null ; // workflow string workflowAssocName = null ; // workflow
    * This source code was highlighted with Source Code Highlighter .
  8. SPList myList = null ; // workflow string myListName = null ; // SPList historyList = null ; // workflow SPList taskList = null ; // workflow string workflowTemplateGuid = null ; // Guid worklfow SPWorkflowTemplate workflowTemplate = null ; // Workflow SPWorkflowAssociation workflowAssociation = null ; // workflow string workflowAssocName = null ; // workflow
    * This source code was highlighted with Source Code Highlighter .
SPList myList = null ; // workflow string myListName = null ; // SPList historyList = null ; // workflow SPList taskList = null ; // workflow string workflowTemplateGuid = null ; // Guid worklfow SPWorkflowTemplate workflowTemplate = null ; // Workflow SPWorkflowAssociation workflowAssociation = null ; // workflow string workflowAssocName = null ; // workflow
* This source code was highlighted with Source Code Highlighter .


2.初期化



リストの内部名を必ず使用してください。 ワークフローとの関連付けの名前を設定し、対応するワークフローの名前と一致させることができます。

  1. myListName = "マイリスト名" ;
  2. workflowAssocName = "My Workflow" ;

*このソースコードは、 ソースコードハイライターで強調表示されました。


3.ワークフローテンプレートを取得する



カスタムワークフローを使用し、そのテンプレートのGUIDを知りたい場合は、それを使用します。

  1. workflowTemplateGuid = "BAD855B1-32CE-4bf1-A29E-463678304E1A" ;
  2. workflowTemplate = web.WorkflowTemplates [ new Guid (workflowTemplateGuid)];

*このソースコードは、 ソースコードハイライターで強調表示されました。

GetTemplateByNameメソッドを使用してテンプレートGUIDを取得することもできます。

  1. //ワークフロー履歴のリストを取得しようとしています
  2. 試してみる
  3. {
  4. historyList = web.Lists [ "ワークフロー履歴" ];
  5. }
  6. catch (ArgumentException exc)
  7. {
  8. //ワークフロー履歴リストを作成します
  9. Guid listGuid = web.Lists.Add( "Workflow History""" 、SPListTemplateType.WorkflowHistory);
  10. historyList = web.Lists [listGuid];
  11. historyList.Hidden = true ;
  12. historyList.Update();
  13. }

*このソースコードは、 ソースコードハイライターで強調表示されました。


4.ワークフローの履歴とタスクのリストを取得または作成します。



ワークフローで使用される履歴リストは、WorkflowHistoryリストテンプレートから継承する必要があります。 ほとんどの場合、作成する必要はありません。

  1. workflowTemplate = web.WorkflowTemplates.GetTemplateByName( "テンプレート名" 、System.Globalization.CultureInfo.CurrentCulture);

*このソースコードは、 ソースコードハイライターで強調表示されました。

タスクリストは、タスクリストテンプレートから継承された通常のリストです。 ワークフロー用の特定のタスクリストを作成する場合は、「タスク」と呼ばないでください。 たとえば、「ワークフロータスク」と呼ぶことができます。

  1. //ワークフローのタスクのリストを取得しようとしています
  2. 試してみる
  3. {
  4. taskList = web.Lists [ "ワークフロータスク" ];
  5. }
  6. catch (ArgumentException exc)
  7. {
  8. //ワークフローのタスクリストを作成します
  9. Guid listGuid = web.Lists.Add( "Workflow Tasks""" 、SPListTemplateType.Tasks);
  10. taskList = web.Lists [listGuid];
  11. taskList.Hidden = true ;
  12. taskList.Update();
  13. }

*このソースコードは、 ソースコードハイライターで強調表示されました。


5.ワークフローとの関連付けを作成し、構成してリストに添付します。



  1. //サイト(Web)の安全でない更新を有効にします
  2. web.AllowUnsafeUpdates = true ;
  3. 試してみる
  4. {
  5. //ワークフローの関連付けを作成します
  6. workflowAssociation = SPWorkflowAssociation.CreateListAssociation(workflowTemplate、workflowAssocName、taskList、historyList);
  7. //ワークフローパラメータを設定します
  8. workflowAssociation.AllowManual = false ;
  9. workflowAssociation.AutoStartCreate = true ;
  10. workflowAssociation.AutoStartChange = false ;
  11. //ワークフローをリストにバインドします
  12. myList.AddWorkflowAssociation(workflowAssociation);
  13. //関連付けを有効にします
  14. workflowAssociation.Enabled = true ;
  15. }
  16. ついに
  17. {
  18. web.AllowUnsafeUpdates = false ;
  19. }

*このソースコードは、 ソースコードハイライターで強調表示されました。

Source: https://habr.com/ru/post/J59661/


All Articles