Crear una acció personalitzada per Sharepoint Designer 2010

Que fàcil que és programar una activitat pròpia i que aquesta pugui ser utilitzada al Sharepoint Designer. El que s’ha de fer és crear una clase que heredi de Activity i implementar el mètode Execute que s’hereda de Activity.

public class MyCustomAction : Activity
{
  protected override ActivityExecutionStatus Execute( ActivityExecutionContext executionContext)
  {  
    using (SPSite siteCollection = new SPSite(Url))  
    {      
      using (SPWeb web = siteCollection.OpenWeb())      
      {           
        using (SPWeb trainingWeb = web.Webs.Add(SiteName))           
        {                     
         trainingWeb.Description = “This site is created using the CreateTrainingSite activity.”;                     
         trainingWeb.Title = SiteName;           
        }       
      }  
    }  
    return ActivityExecutionStatus.Closed;
}

Amb això en tenim més que suficient. Llavors necessites crear el document XML que especifiqui a Sharepoint Designer com està format aquesta activitat.

Aquest document XML amb extensió Action es troba a la carpeta mapejada Workflows que es troba a Template/1033/ té una estructura molt senzilla. Bàsicament es necessita especificar el nom, la categoria, la classe i l’ensamblat que està.

< WorkflowInfo >
 < Actions Sequential=”then” Parallel=”and” >
   < Action Name=”Create Training Site” ClassName=”AdventureWorksWFs.CreateTrainingSite” Assembly=”AdventureWorksWFs, Version=1.0.0.0, Culture=neutral, PublicKeyToken=24cb177bb81fb105” AppliesTo=”all” Category=”Adventure Works” >
     < RuleDesigner Sentence=”Create a training site using the name %1 at %2.” >
      < FieldBind Field=”SiteName” Text=”The name of the training site (i.e. Code Field)” DesignerType=”TextArea” Id=”1”/>
      < FieldBind Field=”Url” Text=”Full url of the parent site” Id=”2” DesignerType=”TextArea”/ >
     < /RuleDesigner >
     < Parameters >
      < Parameter Name=”SiteName” Type=”System.String, mscorlib” Direction=”In” / >
      < Parameter Name=”Url” Type=”System.String, mscorlib” Direction=”In” / >
     < /Parameters >
    < /Action >
   < /Actions >
 < /WorkflowInfo >

Per poder-lo implementar al servidor necessites crear una caracteristica d’àmbit Aplicació web.

I ja està.

Amb un altre post explicaré com es poden definir els paràmetres d’entrada i sortida de les accions personalitzades.

Anuncis

Deixa un comentari

Fill in your details below or click an icon to log in:

WordPress.com Logo

Esteu comentant fent servir el compte WordPress.com. Log Out / Canvia )

Twitter picture

Esteu comentant fent servir el compte Twitter. Log Out / Canvia )

Facebook photo

Esteu comentant fent servir el compte Facebook. Log Out / Canvia )

Google+ photo

Esteu comentant fent servir el compte Google+. Log Out / Canvia )

Connecting to %s