利用 EventHandler 觸發 MOSS 2007 流程

利用 EventHandler 觸發 MOSS 2007 流程

 

 SPUser person = ...; // TODO: get your user
  // TODO: get correct list item (or use properties.ListItem inside your event handler)
  SPWorkflowManager manager = listItem.Web.Site.WorkflowManager;
  SPWorkflowAssociationCollection associationCollection = listItem.ParentList.WorkflowAssociations;
  foreach (SPWorkflowAssociation association in associationCollection)
  {
    // TODO: find the correct workflow association in the list:
    if (association.Name.ToLower().Equals("myworkflow") == true)
    {
      String data = association.AssociationData;
      if (person != null)
      {
        data = association.AssociationData.Replace(
          "<my:CC></my:CC>",
          "<my:CC><my:Person><my:DisplayName>" +
          person.Name + "</my:DisplayName><my:AccountId>" +
          person.LoginName + "</my:AccountId><my:AccountType>User</my:AccountType></my:Person></my:CC>");
      }
      // Hit the go!
      SPWorkflow wf = manager.StartWorkflow(listItem, association, data, true);
    }
  }