23.10.09

Associare SP Workflow

Associare da codice un workflow in modo dinamico ad una lista di sharepoint, ecco il codice:

 

internal static void AssociateWorkflowToDocLb(SPList doclib)
      {
          Guid wfId = Guid.Empty;

           foreach (SPWorkflowTemplate wft in doclib.ParentWeb.WorkflowTemplates)
          {

            if (wft.Name == Constants.__workflowNome)
            {
             wfId = wft.Id;

                  doclib.ParentWeb.AllowUnsafeUpdates = true;

                  if (doclib.ParentWeb.Lists["Tasks"] == null)
                          doclib.ParentWeb.Lists.Add("Tasks", "", SPListTemplateType.Tasks);                 

                  SPList taskList = doclib.ParentWeb.Lists["Tasks"];

                  if (doclib.ParentWeb.Lists["Workflow History"] == null)
                          doclib.ParentWeb.Lists.Add("Workflow History", "", SPListTemplateType.WorkflowHistory);
                SPList histList = doclib.ParentWeb.Lists["Workflow History"];             

             SPWorkflowTemplate wfTemplate = wft;

                  wfTemplate.AutoStartCreate = true;
                  wfTemplate.AutoStartChange = true;

                  SPWorkflowAssociation wfAssociation = SPWorkflowAssociation.

                  CreateListAssociation(wfTemplate, Constants.__workflowNomeDisplay, taskList, histList);

                  doclib.ParentWeb.Site.AllowUnsafeUpdates = true;

                  doclib.ParentWeb.AllowUnsafeUpdates = true;       

                  doclib.ParentWeb.Update();    

                  //doclib.ParentWeb.Site.WebApplication.FormDigestSettings.Enabled = false;

                                doclib.AddWorkflowAssociation(wfAssociation);

                  foreach (SPContentType ctp in doclib.ContentTypes)
                  {
                      try
                      {
                          ctp.AddWorkflowAssociation(wfAssociation);
                          ctp.Update();
                      }
                      catch (Exception ex)
                      {
                                          }
                  }

                  break;
              }
          }
      }

No comments:

Post a Comment