Das abfeuern einer SharePoint-Workflow durch aktualisieren eines Listenelements über Webservice-Liste
Bin ich zu entwickeln, eine einfache SharePoint-Sequenziellen Workflow, die sollten gebunden werden, um ein Dokument Bibliothek. Bei der Zusammenführung der kleinen workflow zu einer Dokumentbibliothek, ich habe diese Optionen
- Erlauben, diesen workflow manuell
angefangen von einem authentifizierten Benutzer
mit der Berechtigung Elemente Bearbeiten. - Starten
diesen workflow, wenn ein neues Element ist
erstellt. - Diesen workflow starten, wenn
ein Element geändert wird.
Nun lade ich Sie ein Dokument in dieser Bibliothek und der workflow startet und zum Beispiel sendet eine E-mail. Es ergänzt und alles in Ordnung ist.
Wenn ich die Option Eigenschaften Bearbeiten, auf das neue Element und eine änderung speichern, wird der workflow erneut ausgelöst. Absolut das, was wir erwartet haben.
Sogar beim kopieren ein neues Element in der Bibliothek mit Hilfe der Kopie.asmx-Webservice, der workflow startet normal.
Aber jetzt möchte ich den Artikel aktualisieren über den SharePoint WebService-Listen.asmx.
Meine CAML geht hier:
<Method ID='1' Cmd='Update'>
<Field Name='ID'>1</Field>
<Field Name='myDummyPropertyField'>NewValue</Field>
</Method>
Das Element aktualisiert wird (Zeitstempel geändert hat, und dummy-Eigenschaft), aber der workflow NICHT erneut starten.
Dieses Verhalten ist reproduzierbar auf unsere Entwicklung und test-system.
Überprüfen Sie die Fehlerprotokolle (C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\LOGS) entdeckte ich eine seltsame Fehlermeldung:
09/25/2008 16:51:40.17 w3wp.exe (0x1D94) 0x1D60 Windows SharePoint Services General 6875 Critical Error loading and running event receiver Microsoft.SharePoint.Workflow.SPWorkflowAutostartEventReceiver in Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c. Additional information is below. : The object specified does not belong to a list.
Jemand bestätigen dieses Verhalten? Oder jede Lösung, Tipps?
Ich bin halten Sie auf dem Laufenden über alle Entwicklungen zu diesem Thema.
InformationsquelleAutor der Frage Johannes Hädrich | 2008-09-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schließlich haben wir durch die Unterstützung der Service-Prozesse bei Microsoft und bekam eine Lösung!
Erste, von Microsoft erklärte, dass dies ein bug. Es ist ein kleiner Fehler, denn es gibt eine gute Abhilfe, so kann es etwas länger dauern, bis dieser Fehler behoben wird (der support-Techniker sagte etwas mit nächste Servicepack oder die nächste version (!)).
Aber jetzt zum problem.
Das reaseon
Werfen wir einen Blick auf die CAML-code aus meiner Frage:
Gründen, die der Workflow-Manager funktioniert nicht mit der ID, gingen wir in die zweite Zeile. Seltsam, alle anderen SharePoint-Befehle arbeiten mit der ID, nicht jedoch der Workflow-Manager. Der Workflow-Manager arbeitet mit dem "vollständig qualifizierte" name des Dokuments. So, da hatten wir keine Ahnung, und wusste nicht eingegeben vollständig qualifizierte name des Dokuments, der Workflow-Manager wird standardmäßig der name des aktuellen Dokuments Bibliothek. Und nun ist die Fehlermeldung beginnt Sinn zu machen:
Natürlich, das Objekt (Dokument-Bibliothek) gehört nicht zu einer Liste, IST die Liste.
Die Lösung
Fügen wir eine weitere Zeile, um unsere CAML-Abfrage:
Den FileRef geht der voll qualifizierte name des Dokuments an den Workflow-Manager, die jetzt Total happy - startet den workflow des Elements.
Seien Sie vorsichtig, Sie haben auch den vollständigen absoluten server-Pfad, lässt den Namen des Servers (zum Beispiel im ServerRelativePath Eigenschaft der SPItem).
Voll arbeiten CAML-Abfrage:
Die Zukunft
Vielleicht ist dieses undokumentierte Verhalten wird behoben werden in einem der kommenden service packs, vielleicht auch nicht. Microsoft-Support hat sich entschuldigt und wird sich zu release einen MSDN-Artikel zu diesem Thema. Für den nächsten Monat ich hoffe, dieser Artikel auf stackoverflow Entwicklern helfen, in der gleichen situation.
Vielen Dank für das Lesen!
InformationsquelleAutor der Antwort Johannes Hädrich
Standen wir vor einem ähnlichen Problem mit einem Genehmigungs-Workflow.
Um es zu lösen, schrieben wir unsere eigenen Event-Empfänger und befestigte es an der Liste.
Je nachdem, ob der Artikel wurde aktualisiert oder bearbeitet werden, wir dann feuerte den Genehmigungs-Workflow.
Hoffe, das hilft...
InformationsquelleAutor der Antwort SharePoint Newbie
Ich angetroffen habe dieses Problem auch und fand heraus, dass, sobald ein workflow gestartet wird, kann es nicht wieder gestartet werden automatisch, egal wie man den Artikel aktualisieren. Sie können jedoch auch manuell starten Sie den workflow wieder, so oft, wie Sie möchten.
InformationsquelleAutor der Antwort Kyle Trauberman
Habe ich gesehen, das gleiche Verhalten. Aber dann bekommst du posts wie dieseden Menschen zu zeigen, wie man erstellen pro Tag einrichten E-Mail-Erinnerungen.
InformationsquelleAutor der Antwort