SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure
Workflow-Entwickung Teil 1 - Benutzerdefinierte Aktivitäten in SharePoint Designer

Blogs

Fabian´s Blog [SharePoint MVP]

Syndication

Lange musste es auf sich warten lassen aber jetzt finde ich endlich die Zeit, die letzten Teile der Workflow-Serie zu veröffentlichen. Eigentlich sollte sich das vierte Kapitel mit der Entwicklung von SharePoint Workflows beschäftigen. Da dieses Themenfeld jedoch ziemlich weitläufig ist, werde ich diesen Artikel in mehrere Abschnitte teilen. Im heutigen Artikel möchte ich die Aktivitäten des SharePoint Designer erleuchten und zeigen, wie eine benutzerdefinierte Aktivität für den SharePoint Designer entwickelt werden kann.

Zunächst einmal zu den Grundlagen. Der SharePoint Designer 2007 stellt über seine Oberfläche eine Reihe von Aktivitäten bereit, die über die UI „zusammengeklickt“ werden können.

Die wohl am häufigsten verwendeten Aktivitäten sind das Versenden einer E-Mail oder die Erstellung einer Aufgabe. Insgesamt stellt SharePoint 22 Standardaktivitäten bereit.

Die Liste aller Aktivitäten wird auf dem SharePoint Frontend-Server in einer XML-Datei verwaltet. C:\Program Files\Common files\Microsoft Shared \web server extensions\12\1033\TEMPLAT\Workflow\WSS.ACTIONS. Diese Informationen werden zur Laufzeit vom SharePoint Designer, abhängig von der Sprache der Webseite, heruntergeladen.

Um eigene Aktivitäten für den SharePoint Designer bereitzustellen, muss diese Datei erweitert werden aber dazu später.

Die Struktur der Datei ist relativ simpel. Innerhalb des Actions-Elements werden alle Aktivitäten definiert. Schauen wir uns dazu exemplarisch die E-Mail-Aktivität an

<Actions Sequential="dann" Parallel="und">
    <Default>
      <RuleDesigner Sentence="Aktion '%1' ausführen">
        <FieldBind Id="1" Function="true"/>
      </RuleDesigner>
    </Default>
    <Action Name="E-Mail senden"
      ClassName="Microsoft.SharePoint.WorkflowActions.EmailActivity"
      Assembly="Microsoft.SharePoint.WorkflowActions, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
      Category="Kernaktionen"
      AppliesTo="all">
      <RuleDesigner Sentence="E-Mail %1">
        <FieldBind Field="To,CC,Subject,Body" Text="diese Nachricht" DesignerType="Email" Id="1"/>
      </RuleDesigner>
      <Parameters>
        <Parameter Name="__Context" Type="Microsoft.SharePoint.WorkflowActions.WorkflowContext, Microsoft.SharePoint.WorkflowActions" Direction="In"/>
        <Parameter Name="Body" Type="System.String, mscorlib" Direction="Optional" />
        <Parameter Name="To" Type="System.Collections.ArrayList, mscorlib" Direction="In" />
        <Parameter Name="CC" Type="System.Collections.ArrayList, mscorlib" Direction="Optional" />
        <Parameter Name="Subject" Type="System.String, mscorlib" Direction="In" />
      </Parameters>
    </Action>

Hinter jeder Aktivität verbirgt sich eine .NET Assembly, die über die Attribute ClassName und Assembly referenziert wird. Diese .NET DLL führt die eigentliche Logik aus.

Besonders wichtig sind die Elemente RuleDesigner, FieldBind und Parameters. Das Sentence-Attribute des RuleDesigner-Elements definiert den Text, der später innerhalb der Aktivität die parametrisierte Aktion darstellt.

Jedes Feld hat einen eindeutigen Identifier (ID=1), der im Sentence-Attribut referenziert wird (%1). Das Attribut DesignerType definiert den Darstellungstyp und somit auch die UI-Funktion innerhalb des SharePoint Designer.

Zum Beispiel führt der Typ Email dazu, dass das Mail-Frontend für die Definition der Mailnachricht im SharePoint Designer bereitgestellt wird.

Weitere mögliche Typen sind Dropdown oder TextArea.

Im Anschluss wird eine Reihe von Parametern definiert, die an die .NET Assembly der Aktivität übergeben werden. Der Wert des Name-Attributs muss identisch der Field-Definition sein. Neben dem Datentyp wird noch das Direction-Attribut benötigt, das die Werte In, Out oder Optional aufnehmen kann. Der __Context-Parameter ermöglicht der Assemlby auf den WorkflowContext zuzugreifen, um zum Beispiel Lookup-Parameter der Bodys der Nachricht auszulesen. Die restlichen Parameter sollen selbsterklärend sein.

Das sollte es für den Einstieg in die Aktivitäten des SharePoint Designers erst einmal gewesen sein. Morgen werde ich beschreiben, wie eine benutzerdefinierte Aktivität entwickelt werden kann.


Bereitgestellt 21 Aug 2007 6:12 von Fabian Moritz

Kommentare

TrackBack geschrieben Workflow-Entwicklung Teil 2 - E-Mail-Aktivit&#228;t mit benutzerdefinierter Absenderadresse f&#252;r den SharePoint Designer
on 27 Aug 2007 6:18

Workflow-Entwicklung Teil 2 - E-Mail-Aktivität mit benutzerdefinierter Absenderadresse für den SharePoint Designer

TrackBack geschrieben 22+ tipps for SharePoint Designer - now a free tool
on 2 Apr 2009 8:09

22+ tipps for SharePoint Designer - now a free tool