• home
    • news & events
    • blog
  • über uns
    • projekte und referenzen
    • partner
    • produkte & technologien
    • offene jobs / stellen
    • veröffentlichungen
  • dienstleistungen & services
    • software design & architektur
    • software entwicklung
    • beratung / consulting
    • training, kurse und workshops
  • angebote
    • quick-starts
    • trainings und kurse
    • modulare sharepoint 2010 workshops
  • kontakt
Wir bieten SharePoint und .NET
Kompetenz, Erfahrung und Know-How:
"1stQuad guaranteed."
Diesen Blog abonnieren
Subscribe in NewsGator Online Add to My AOL
Add to Google Reader or Homepage Add to netvibes

Aktuelle Posts

Quick-Tipp: Publishing Site Settings
Update: Dynamisches Wiki Inhaltsverzeichnis
Chart Part für SharePoint 2010
SharePoint Content DB Migration -> Access denied
Konfigurieren von „Gefällt mir“ und Kategorien und Notizen

Archiv

Januar 2012 (4)
Dezember 2011 (2)
November 2011 (10)
September 2011 (3)
August 2011 (7)
Juli 2011 (1)
Juni 2011 (3)
Mai 2011 (6)
April 2011 (5)
März 2011 (8)
Februar 2011 (8)
Januar 2011 (4)
Dezember 2010 (5)
November 2010 (7)
September 2010 (6)
August 2010 (2)
Juli 2010 (11)
Juni 2010 (13)
Mai 2010 (11)
April 2010 (4)
März 2010 (6)
Februar 2010 (2)
Januar 2010 (6)
Dezember 2009 (4)
November 2009 (13)
Oktober 2009 (17)
September 2009 (2)
Juli 2009 (2)
März 2009 (2)
Januar 2009 (1)

1stQuad ist Microsoft Certified Gold Partner und bietet SharePoint und .NET Produkt- und Projekt-Kompetenz, -Erfahrung und -Know-How für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Schweiz sowie Deutschland und Östereich.
1stQuad ist MatchPoint Partner und bietet MatchPoint Produkt- und Projekt-Kompetenz, -Erfahrung und -Know-How für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Schweiz sowie Deutschland und Östereich.
1stQuad ist Nintex Partner und bietet Nintext SharePoint Workflows Produkt- und Projekt-Kompetenz, -Erfahrung und -Know-How für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Schweiz sowie Deutschland und Östereich.
1stQuad ist Balesio Gold Partner und bietet SharePoint FILEMinimizer Produkt- und Projekt-Kompetenz, -Erfahrung und -Know-How für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Schweiz sowie Deutschland und Östereich.
1stQuad Solutions ist Kentico Certified Solution Partner und bietet Produkt- und Projekt-Kompetenz, -Erfahrung und -Know-How für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Schweiz sowie Deutschland und Östereich.
© 2011 1stQuad Solutions
Alle Rechte vorbehalten
> Impressum
Wir bieten Microsoft SharePoint und .NET Projekt- und Produkt-Know-how, Kompetenz und Erfahrung für Entwicklung, Architektur, Beratung, Schulung, Training und Kurse in Zürich, Bern, Basel, Schweiz sowie Deutschland und Östereich.

Blog > Juli 2010

State Machine Workflow mit InfoPath Formularen für SharePoint 2010 – Teil 6

Im sechsten Teil der Workflow Serie verbinden wir die Formulare aus dem vorigen Teil mit unserem Workflow.

Veröffentlicht am 31.07.2010 20:58:59 von Reiner Ganser mit 1 Kommentar(en)

Teil 6: InfoPath Formulare mit dem Workflow verbinden

 Diesen Blog-Post als PDF herunterladen

   Sourcecode herunterladen
 

Nachdem wir im letzten Teil die InfoPath Formulare erstellt haben, können wir diese nun mit dem Workflow verbinden. Die generelle Vorgehensweise für die Erweiterung des Workflows mit InfoPath Formularen ist dabei wie folgt:
 

  1. Aufnehmen der veröffentlichten Formulare in den Workflow Ordner in Visual Studio
  2. Anpassen der Datei Elements.xml des Workflows mit den Formular-IDs
  3. Anpassen des Workflows Features, mit den Information für das globale Bereitstellen als Workflow freigeschaltete Formulare

Aufnehmen der veröffentlichten Formulare in den Workflow Ordner in Visual Studio

Da wir die Formulare in unserem vorigen Teil der Serie bereits in den Workflow Ordner des Projektes veröffentlicht haben, können wir diesen nun ins Projekt mit aufnehmen (Rechte Maustaste auf den Workflow-Ordner in Visual Studio und Add -> Existing Item):

 
Dann die beiden Formulare auswählen und Add anklicken. Damit sind die beiden Formulare dann dem Workflow-Ordner hinzugefügt worden:

 
Das alleine reicht aber noch nicht. Man muss die Formulare dem Workflow noch in der Datei Elements.xml bekannt machen.
Nachdem die Dateien hinzugefügt sind, sind diese noch als ElementFile zu kennzeichnen. Dies erreicht man durch Anklicken des jeweiligen Formulars und Auswahl von ElementFile in der Eigenschaft Deployment Type:

 

Anpassen der Datei Elements.xml des Workflows mit den Formular-Ids

Die Datei Elements.xml befindet sich ebenfalls im Workflow Ordner von Visual Studio:

 
In dieser Datei sind bereits das Zuweisungs- und Startformular eingetragen (AssociationUrl und InstantiationUrl). Die beiden Aufgabenformulare (Task Form) fehlen aber noch. Im Kommentar in dieser XML-Datei sieht man die URN auf das Task Formular benötigt:

 
Die Frage ist nur, wo man diese herbekommt? Man die URN aus den Eigenschaften des InfoPath Formulars auslesen. Hierzu wieder das Approver Formular im Explorer mit rechter Maustaste und Auswahl von Design öffnen:

 
Dann den Reiter File (Datei) auswählen und im rechten Teil kann man die Form Template Properties aufrufen:

 
Im Feld ID steht die gesuchte URN und kann von dort aus kopiert werden:

 
Diese URN trägt man dann in die Elements.xml für das Element <Task0_FormURN> ein. Die gleiche Prozedur macht man für das Formular des Initiators (Reviewer.xsn) für das Element <Task1_FormURN>. Die Kommentare kann man dabei getrost entfernen. Meine Elements.xml Datei sieht nun wie folgt aus:

 
Eine wichtige Sache müssen wir allerdings noch eintragen: den Inhaltstyp der Aufgabenliste, die wir für das Anlegen der jeweiligen Aufgaben im Workflow nutzen wollen. Wir müssen also im Element <Workflow> ein Attribut TaskListContentTypeId mit der ID des entsprechenden Inhaltstyps eintragen:

TaskListContentTypeId="0x01080100C9C9515DE4E24001905074F980F93160"

Die fertige Elements.xml sieht danach wie folgt aus:

 
Die Formulare sind dem Workflow nun bekannt. Jetzt müssen wir noch dafür sorgen, dass die Formulare auch global zur Verfügung stehen und als Workflow Formulare gekennzeichnet sind.

Anpassen des Workflows Features, mit den Information für das globale Bereitstellen als Workflow freigeschaltete Formulare

Das Hochladen als globales Formular und Kennzeichnen als Workflow Formular erfolgt mit Hilfe eines sog. Feature Receivers. Aber keine Angst, wie müssen diesen nicht selbst schreiben. Er steht bereits zur Verfügung. Wir müssen ihn nur noch im Feature mit angeben. Zuerst benennen wir aber das Feature um (rechte Maustaste auf Feature1 und Auswahl von Rename) und geben ihm den Namen StateMachineApproval:

 
Ein Doppelklick auf das soeben umbenannte Feature bringt uns in die Eigenschaften des Features. Hier kann man noch einen vernünftigen Titel und eine Beschreibung vergeben.
In der Mitte findet man den Punkt Manifest:

 
Nach dem Anklicken brauchen wir die Edit Options. Das ist die Stelle an der wir die Feature Definition mit unseren eigenen Angaben erweitern können:

 
Wir müssen hier 2 Dinge erweitern:

  1. Den Feature Receiver eintragen
  2. Die Formulare als globale Formulare registrieren

Die Edit Optionen sehen mit diesen Änderungen wie folgt aus:

<?xml version="1.0" encoding="utf-8" ?>
<Feature
ReceiverAssembly="Microsoft.Office.Workflow.Feature, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
ReceiverClass="Microsoft.Office.Workflow.Feature.WorkflowFeatureReceiver"
xmlns="
http://schemas.microsoft.com/sharepoint/">
<Properties>
    <Property Key="GloballyAvailable" Value="true" />
    <Property Key="RegisterForms" Value="SMApprovalWorkflow\*.xsn" />
 </Properties>
</Feature>

Und das Ganze noch als Screenshot:

 
Unsere Formulare sind jetzt mit dem Workflow verbunden. Im nächsten Teil fügen wir den notwendigen Code ein, damit der Workflow richtig verzweigt und dass entsprechende Aufgaben für jeweiligen Personen im Workflow angelegt werden.
 

Kommentar
Kangee
Hallo,

vielen Dank für dieses ausführliches Tutorial :-)

Ich habe allerdings ein paar Probleme :-( und Fragen ;-)

Also zunächst eine Frage zur TaskListContentTypeId.

Muss diese den Wert 0x01080100C9C9515DE4E24001905074F980F93160 haben? Ich hatte zunächst die Id von meinem Workflow Task ContentType eingetragen (0x0108010063E73299026FE444BBFD25091E5BB50C), dies führt aber dazu dass der Workflow aufgrund eines interen Fehlers nicht gestartet wurde.
Erst als ich den Wert des TaskListContentTypeId auf die Id änderte die hier im Tutorial genannt wurde funktioniert der Workflow.

Nun habe ich aber noch ein Problem. Ich habe in Anlehnung an dieses Tutorial einen Site-Workflow gemacht. Leider tritt hier immer das Problem auf dass das Task-Formular nicht geladen werden kann :-(
Muss ich beim Site-Workflow noch etwas beachten? Liegt das Problem vielleicht sogar bei der TaskListContentTypeId. Immerhin sind 2 Formulare aus unterschiedlichen Workflows an die gleiche Task-Liste mit diesem ContentType gebunden.

Viele Dank für Hilfe im vorraus,
Kangee
19.01.2012 14:09:18

Kommentar hinterlassen



 Security code
Zurück, Seite drucken