Microsoft Dynamics CRM 2011 | R8 Feature Custom Workflow Activities

Aufmerksame Leser haben bemerkt, ich spreche nicht mehr vom Q2 Service Update, sondern nur noch vom R8 – wie auch, wenn das Q2, 2012 schon beendet ist.

Warum es zu Verzögerungen in der Veröffentlichung kommt, werde ich immer wieder gefragt. Die Antwort ist eigentlich recht simpel: Während einige Features im R8 relativ schnell ausgerollt werden könnten, haben andere wiederum größere Auswirkungen.

Beispiel: Der SQL Server 2012 wird voll unterstützt werden, so dass man sich im Online-Bereich zuvor – auch aus Performance- und Hochverfügbarkeits-Gründen – dazu entschlossen hat, das Angebot komplett auf SQL 2012-Basis bereit zu stellen.

Darüber hinaus jedoch, stellen wohl vor allem die Cross-Browser Komptabilität und die Unterstützung von so genannten Custom Workflow Activities im Online-Angebot eine der größten Herausforderungen dar. Warum sich Online-User jedoch schon heute auf diese Erweiterung freuen sollten, möchte ich Euch an einer meiner beliebtesten Bibliothek vorstellen – der Distribute Workflow Activity.

WF_DistributeWF_one_to_many

Schon zu 4.0-Zeiten gab es immer wieder die Notwendigkeit, neben den im Standard unterstützten N:1 Workflow Starts, auch 1:N bzw. N:M Workflows für verknüpfte Datensätze starten zu wollen.

Natürlich konnte man sich der gleichen Aufgaben auch immer mit Plug-In-Programmierungen behelfen. Und doch haben die Workflows, wenn Sie auch asynchron ausgeführt werden, einen entscheidenden Vorteil: Man kann die Logik / die Ausführung direkt am System überwachen und benötigt dazu nicht viel Entwicklungs-Know-How.

Als Beispiel zur Erläuterung der Funktionsweise habe ich mir die Synchronisation der Adresse1 der Firma auf zugehörige Kontakte ausgewählt. Ein einfaches Beispiel, zugegeben und auch auf andere Weise lösbar. Nehmen wir jedoch an, wir haben folgende Aufgabenstellung:

Immer dann, wenn an einer Firma die Daten aus der Adresse1 geändert werden, sollen diese Änderungen automatisch auch an die zugehörigen Kontakte übertragen werden. Des Weiteren soll dies auch geschehen, wenn ein Kontakt nicht aus der Firma heraus angelegt wird – Anwender wissen, dass dann die Adressinformationen automatisch hinzugefügt werden – soll ebenfalls die Adresse1 der zugehörigen Firma ergänzt werden.

Firmendatensatz_mit_Kontakten

Für mein Beispiel verwende ich die im Bild rechts dargestellte Firma mit zunächst drei zugehörigen Kontakten.

Wir ändern die Adresse an der Firma und ein Workflow soll im Hintergrund automatisch die Informationen an alle zugewiesenen Kontakte übertragen.

Firmendatensatz_Aenderung_Adresse

Also ein paar Daten eingetippt und den Daten-satz gespeichert.

Um zu über-prüfen, ob unsere Workflow-Logik funktioniert, betrachten wir im Navigationspunkt Workflows an der Firma die Ausführung.

WF_Starter_beginnt

Wir stellen fest, dass unser Starter beginnt und die erforderlichen Workflows für die zugehörigen 1:N verknüpften Kontakte startet.

Kontakt_Firmenadresse_übernommen

Im Anschluss können wir uns exemplarisch einen Kontakt anschauen und stellen fest, dass die Adressinformation aus der Firma korrekt an alle untergeordneten Datensätze übergeben wurden.

Neuer_Kontakt

Legen wir nunmehr einen neuen Kontakt zugehörig zu dieser Firma an und betrachten auch hier die Ausführung unserer Workflow-Logik. Diesmal über das Protokoll der Systemeinstellungen.

WF_Protokoll_Systemaufträge

Wir stellen fest, dass unser 2. Starter (diesmal ausgehend vom Kontakt) den Starter-Workflow an der Firma erneut startet und dieser wiederum die Workflows für alle zugehörigen Kontakte ausführt.

WF_DistributeWF_one_to_manyFür unser Szenario benötigen wir also drei Workflows.

1.) Einen Starter an der Entität Firma, der auf Attributsänderungen von Feldern der Adresse1 reagiert und über die neue Bibliothek in der Lage ist, einen untergeordneten Workflow für alle zugehörigen Kontakte auszuführen. Hierfür müssen lediglich der Name des Workflows ausgewählt und der Schemaname der Beziehung angegeben werden.

2.) Einen untergeordneten Workflow an der Entität Kontakt, der die Adressdaten aus der übergeordneten Firma an die Adressfelder auf der Kontaktkarte übergibt (aktualisiert).

3.) Einen Starter an der Entität Kontakt, der bei Erstellung des Kontaktes prüft, ob dieser einer Firma zugehörig ist und ob bereits Adressdaten existieren. Ist dies nicht der Fall, startet dieser den übergeordneten N:1 Workflow an unserer Entität Firma – sprich unseren Starter. Dies ist bereits mit Boardmitteln möglich.

Fazit: Dieses simple Beispiel zeigt, auf was sich Online-Nutzer freuen dürfen. Meiner Meinung nach gehört diese Erweiterung unbedingt in den Standard, können hiermit doch zahlreiche Anforderungen abgedeckt werden.

Ihr seid noch nicht online, plant aber die Einführung eines CRM Systems? Dann überzeugt Euch zunächst im Trust-Center von der Sicherheit Eurer Daten. Und prüft anschließend 30-Tage lang kostenfrei die Möglichkeiten.

Wenn Ihr noch mehr über die Möglichkeiten von Prozessen und Dialogen erfahren wollt, dann empfehle ich Euch unbedingt das neue Buch von Richard Knudson.

Ich selbst nutze mittlerweile beide Welten und deren jeweilige Vorteile für Präsentationen, wie auch in der Entwicklung. Wie heißt es schon im Slogan eines bekannten schwedischen Möbelhauses? Richtig. In diesem Sinne… Viel Spass.

 

Technorati Tags:

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s