1. 處理InitForm.xsn:
    1. 選擇VS 的項目路徑.點擊 "OK". 會生成很多文件在指定的路徑下. 其中有一個叫"MySchema.xsd" 的文件, 可修改名稱為"InitForm.xsd"(也可以不修改).

    2. 運行"Visual Studio 2005 Command Prompt";

    3. Cd VS 的項目路徑下. 執行"xsd InitForm.xsd /c ".會生成一個叫"initform.cs" 的文件.
    4. 打開 VS 項目。將initform.cs 加入到項目中.
  2. 工作流編碼.添加工作流中執行代碼. 和執行條件等.

       

    namespace MarketingCampaign

    {

    public sealed partial class MarketingCampaign: SharePointSequentialWorkflowActivity

    {

    public MarketingCampaign()

    {

    InitializeComponent();

    }

    public Guid workflowId = default(System.Guid);

    public Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties workflowProperties = new Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties();

    public SPWorkflowActivationProperties onWorkflowActivated1_WorkflowProperties1 = new Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties();

       

    private string sTrafficCoordinator = default(string);

    private string sMarketingDirectorEMail = default(string);

    private void onWorkflowActivated1_Invoked(object sender, ExternalDataEventArgs e)

    {

    XmlSerializer serializer = new XmlSerializer(typeof(myFields));

    XmlTextReader rdrInitForm = new XmlTextReader(new System.IO.StringReader(onWorkflowActivated1_WorkflowProperties1.InitiationData));

    myFields frmInit = (myFields)serializer.Deserialize(rdrInitForm);

    sTrafficCoordinator = @"ecmms\" + frmInit.trafficcoordinator;

    sMarketingDirectorEMail = frmInit.marketingdirectoremail;

    }

       

    private void SendEmail1_MethodInvoking(object sender, EventArgs e)

    {

    sendEmail1.To = sMarketingDirectorEMail.ToString() + "@cmmsgsps03.ecmms.foxconn";

    string sItemTitle = onWorkflowActivated1_WorkflowProperties1.Item["名稱"].ToString();

    string sItemURL = onWorkflowActivated1_WorkflowProperties1.ItemUrl;

    sendEmail1.Body = string.Format("New Marketing Campaign: {0}. URL:{1}", sItemTitle, sItemURL);

    }

    public Guid createTask1_TaskId1 = default(System.Guid);

    public SPWorkflowTaskProperties createTask1_TaskProperties1 = new Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties();

    private bool taskCompleted;

    private void createTask1_MethodInvoking(object sender, EventArgs e)

    {

    createTask1_TaskId1 = Guid.NewGuid();

    createTask1_TaskProperties1.Title = "New Marketing Campaign";

    createTask1_TaskProperties1.AssignedTo = sTrafficCoordinator;

    string sItemTitle = onWorkflowActivated1_WorkflowProperties1.Item["名稱"].ToString();

    string sItemURL = onWorkflowActivated1_WorkflowProperties1.ItemUrl;

    string sOriginator = onWorkflowActivated1_WorkflowProperties1.Originator;

    createTask1_TaskProperties1.Description = string.Format("New Marketing Campaign: {0}. URL:{1}", sItemTitle, sItemURL);

    createTask1_TaskProperties1.ExtendedProperties["taskinstructions"] = string.Format("Please review this proposed marketing campaign and let {0} know if there are any scheduling issues.Thanks!", sOriginator);

    }

    private void WhileActivity1_condition(object sender, ConditionalEventArgs e)

    {

    e.Result = !taskCompleted;

    }

    private void onTaskChanged1_Invoked(object sender, ExternalDataEventArgs e)

    {

    taskCompleted = bool.Parse(onTaskChanged1_AfterProperties1.ExtendedProperties["taskComplate"].ToString());

    createTask1_TaskProperties1.ExtendedProperties["taskcomments"] = onTaskChanged1_AfterProperties1.ExtendedProperties["taskcomments"].ToString();

    }

    private void updateTask1_MethodInvoking(object sender, EventArgs e)

    { }

    public SPWorkflowTaskProperties onTaskChanged1_AfterProperties1 = new Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties();

    public SPWorkflowTaskProperties onTaskChanged1_BeforeProperties1 = new Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties();

    }