2009-08-13 11 views
3

Ich habe ein kleines Problem beim Ausführen eines Workflows für eine Dokumentbibliothek gefunden. Wenn Sie auf ein neues Dokument klicken, wird in diesem Beispiel ein Microsoft Word geöffnet. Sie schreiben etwas in das Dokument und speichern es in der Bibliothek. Der mit der Bibliothek verknüpfte Workflow, in diesem Fall ein selbst erstellter Genehmigungsworkflow, der jetzt ausgeführt wird, nachdem das Listenelement erstellt wurde. Das Problem ist jedoch, dass das Dokument noch geöffnet und somit ausgecheckt ist, bis der Benutzer das Wort schließt. Wenn der Workflow als Erstes einige der anderen Felder in diesem Listenelement setzt, z. B. einen Genehmigungsstatus auf "ausstehend" setzt, tritt ein Fehler auf. Es tritt ein Fehler auf, weil das Dokument ausgecheckt ist.Dokument in SharePoint beim Starten des Arbeitsablaufs ausgecheckt

Ich habe versucht, den Workflow auf das Einchecken des Dokuments warten zu lassen, aber hier versage ich. Ich versuche eine OnWorkflowItemChanged-Aktivität und in dem Code, der überprüft, dass die vorgenommene Änderung das Dokument eingecheckt wurde, also kann ich dann mit dem Rest meines Workflows fortfahren. Das Problem besteht darin, dass diese Aktivität das Eincheck-Ereignis nicht als Änderung akzeptiert. Dies ist sinnvoll, da das Schließen des Dokuments, das es automatisch eincheckt, keines der Elementfelder ändert.

Also muss ich einen Weg in meinem Workflow finden, um das Check-in-Ereignis zu erkennen, aber bis dahin warte, wo ich bin.

Antwort

1

Der Fix dazu ist die Workflow-Kasse um das Dokument zu haben, Änderungen vornehmen und es dann wieder einchecken.

In Code, den Sie würden mit einem Handler benutzerdefinierte Ereignis dies tun. Informationen zum Objektmodell finden Sie im Sharepoint-SDK oder in der MSDN-Datei.

In Sharepoint Designer stellen Sie Ihren Workflow wie folgt aussehen:

Check „automatisch diesen Workflow starten, wenn ein neues Objekt erstellt wird“ oder „automatisch diesen Workflow starten, wenn ein neues Objekt erstellt wird“ oder beide Optionen auswählen.

Hit nächste.

Auf der folgenden Seite lassen Sie den Abschnitt Bedingungen leer.

Im Aktionseinstellungen Setup Ihren Workflow wie folgt aussehen:

 
Check out item in <Current Item> 
    then Wait for <Whatever fields you need to be set or actions you need> 
    then Check in item in <Current Item> with comment: <Comment> 

Sie können diese brechen und in einzelne Schritte aus. Zum Beispiel:

 
Step One - Check out current item 
Step Two - Custom stuff you need to do 
Step Three - Check in current item
+0

Denken Sie vielleicht, Sie wollten sagen "Element wird aktualisiert" anstelle von "neues Element wird erstellt" zweimal. Ich würde es bearbeiten, aber es beschwerte sich über schlecht formatierten Code, und ich konnte es nicht einreichen. – xdhmoore