Search This Blog

Sunday, November 7, 2010

Sequential workflow-count number of vovels in document title

Workflow.cs
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Collections;
using System.Drawing;
using System.Linq;
using System.Workflow.ComponentModel.Compiler;
using System.Workflow.ComponentModel.Serialization;
using System.Workflow.ComponentModel;
using System.Workflow.ComponentModel.Design;
using System.Workflow.Runtime;
using System.Workflow.Activities;
using System.Workflow.Activities.Rules;

using Microsoft.SharePoint;
using Microsoft.SharePoint.Workflow;
using Microsoft.SharePoint.WorkflowActions;

namespace saplewf
{
public sealed partial class Workflow1: SequentialWorkflowActivity
{
public Workflow1()
{
InitializeComponent();
}
private string _myDocument = string.Empty;
private int _CounterLetters = 0;
private int _CounterVowels = 0;
private void onWorkflowActivated1_Invoked(object sender, ExternalDataEventArgs e)
{

SPListItem myActivator = onWorkflowActivated1_WorkflowProperties1.Item;
_myDocument = myActivator.Name.ToLower();
_CounterLetters = _myDocument.Length;

}

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

private void codeActivity1_ExecuteCode(object sender, EventArgs e)
{


_CounterLetters--;
char[] AllVowels = new char[] { 'a', 'e', 'i', 'o', 'u' };
Array.Sort(AllVowels);
if (Array.BinarySearch(AllVowels, _myDocument[_CounterLetters]) >= 0)
_CounterVowels++;
}

private void codeActivity2_ExecuteCode(object sender, EventArgs e)
{
SPListItem myActivator = onWorkflowActivated1_WorkflowProperties1.Item;
myActivator["Title"] = _myDocument + " has " + _CounterVowels.ToString() + " vowels";
myActivator.Update();
}
}

}

Desinger.cs
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Collections;
using System.Drawing;
using System.Reflection;
using System.Workflow.ComponentModel.Compiler;
using System.Workflow.ComponentModel.Serialization;
using System.Workflow.ComponentModel;
using System.Workflow.ComponentModel.Design;
using System.Workflow.Runtime;
using System.Workflow.Activities;
using System.Workflow.Activities.Rules;

namespace saplewf
{
partial class Workflow1
{
#region Designer generated code

///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///

[System.Diagnostics.DebuggerNonUserCode]
private void InitializeComponent()
{
this.CanModifyActivities = true;
System.Workflow.Activities.Rules.RuleConditionReference ruleconditionreference1 = new System.Workflow.Activities.Rules.RuleConditionReference();
System.Workflow.Runtime.CorrelationToken correlationtoken1 = new System.Workflow.Runtime.CorrelationToken();
System.Workflow.ComponentModel.ActivityBind activitybind1 = new System.Workflow.ComponentModel.ActivityBind();
this.codeActivity1 = new System.Workflow.Activities.CodeActivity();
this.codeActivity2 = new System.Workflow.Activities.CodeActivity();
this.whileActivity1 = new System.Workflow.Activities.WhileActivity();
this.onWorkflowActivated1 = new Microsoft.SharePoint.WorkflowActions.OnWorkflowActivated();
//
// codeActivity1
//
this.codeActivity1.Name = "codeActivity1";
this.codeActivity1.ExecuteCode += new System.EventHandler(this.codeActivity1_ExecuteCode);
//
// codeActivity2
//
this.codeActivity2.Name = "codeActivity2";
this.codeActivity2.ExecuteCode += new System.EventHandler(this.codeActivity2_ExecuteCode);
//
// whileActivity1
//
this.whileActivity1.Activities.Add(this.codeActivity1);
ruleconditionreference1.ConditionName = "WhileStatement";
this.whileActivity1.Condition = ruleconditionreference1;
this.whileActivity1.Name = "whileActivity1";
//
// onWorkflowActivated1
//
correlationtoken1.Name = "FlowToken";
correlationtoken1.OwnerActivityName = "Workflow1";
this.onWorkflowActivated1.CorrelationToken = correlationtoken1;
this.onWorkflowActivated1.EventName = "OnWorkflowActivated";
this.onWorkflowActivated1.Name = "onWorkflowActivated1";
activitybind1.Name = "Workflow1";
activitybind1.Path = "onWorkflowActivated1_WorkflowProperties1";
this.onWorkflowActivated1.Invoked += new System.EventHandler(this.onWorkflowActivated1_Invoked);
this.onWorkflowActivated1.SetBinding(Microsoft.SharePoint.WorkflowActions.OnWorkflowActivated.WorkflowPropertiesProperty, ((System.Workflow.ComponentModel.ActivityBind)(activitybind1)));
//
// Workflow1
//
this.Activities.Add(this.onWorkflowActivated1);
this.Activities.Add(this.whileActivity1);
this.Activities.Add(this.codeActivity2);
this.Name = "Workflow1";
this.CanModifyActivities = false;

}

#endregion

private CodeActivity codeActivity1;
private CodeActivity codeActivity2;
private WhileActivity whileActivity1;
private Microsoft.SharePoint.WorkflowActions.OnWorkflowActivated onWorkflowActivated1;





}
}

.Rules
















0







Sequential workflow Example