Frage

Ich entwickle ein einfacher Sharepoint-Sequential-Workflow, die in eine Dokumentbibliothek gebunden werden sollen. Wenn das kleine Workflow in einer Dokumentbibliothek Zuordnen ich diese Optionen geprüft

  • Lassen Sie diesen Workflow manuell von einem authentifizierten Benutzer gestartet mit Elementen bearbeiten Berechtigungen.
  • Start Dieser Workflow, wenn ein neuer Artikel ist erstellt.
  • Starten Sie diesen Workflow, wenn ein Element geändert wird.

Nun, ein Dokument zu dieser Bibliothek und der Workflow startet und zum Beispiel sende ich lade ein Mail. Es vervollständigt und alles ist in Ordnung.

Wenn ich auf Eigenschaften bearbeiten auf das neue Element wählen und eine Änderung speichern, wird der Workflow wieder gefeuert. Absolut, was wir erwartet haben.

Auch wenn ein neues Element in die Bibliothek mit Hilfe des Copy.asmx Webservice Kopieren der Workflow startet normal.

Aber jetzt Ich möchte das Element über die Sharepoint WebService Lists.asmx aktualisieren .

Meine CAML geht hier:

<Method ID='1' Cmd='Update'>
  <Field Name='ID'>1</Field>
  <Field Name='myDummyPropertyField'>NewValue</Field>
</Method>

Der Artikel wird aktualisiert (Zeitstempel geändert und eine Dummy-Eigenschaft, auch), aber der Workflow startet nicht wieder.

Dieses Verhalten ist reproduzierbar auf unserer Entwicklung und Testsystem.

Überprüfen Sie die Fehlerprotokolle (C: \ Programme \ Gemeinsame Dateien \ 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.

Wer dieses Verhalten bestätigen kann? Oder jede Lösung Hinweise?


Ich halte Sie zu diesem Thema über alle Entwicklungen informiert.

War es hilfreich?

Lösung

Schließlich bekamen wir durch die Support-Service Prozesse bei Microsoft und bekamen eine Lösung!

Als erstes Microsoft erklärte dies ein Bug zu sein. Es ist ein kleiner Fehler, weil es eine gute Abhilfe ist, so kann es einige längere Zeit dauern, bis dieser Fehler behoben wird (der Support-Techniker sagte etwas mit dem nächsten Service Pack oder nächster Version (!)).

Aber jetzt das Problem.

Die reaseon

Lassen Sie uns einen Blick auf die CAML-Code aus meiner Frage:

<Method ID='1' Cmd='Update'>
  <Field Name='ID'>1</Field>
  <Field Name='myDummyPropertyField'>NewValue</Field>
</Method>

Aus irgendeinem Grunde der Workflow-Manager nicht mit der ID arbeitet, traten wir in der zweiten Zeile. Seltsam, alle anderen Sharepoint-Befehle mit der ID arbeiten, aber nicht dem Workflow-Manager. Der Workflow-Manager arbeitet mit dem „voll qualifiziert“ Dokumentnamen. Also, weil wir keine Ahnung hatten und keine voll qualifizierte Dokumentnamen eingegeben, die Workflow-Manager standardmäßig den Namen der aktuellen Dokumentbibliothek. Und nun die Fehlermeldung beginnt Sinn zu machen:

The object specified does not belong to a list.

Natürlich ist die Objekt (Dokumentbibliothek) gehört nicht zu einer Liste, ist es die Liste ist.

Die Lösung

Wir haben eine weitere Zeile in unserer CAML Abfrage hinzuzufügen:

<Field Name='FileRef'>/sites/mySite/myDocLib/myFolder/myDocument.txt</Field>

Die FileRef gibt den vollständig qualifizierten Dokumentnamen an den Workflow-Manager, die - jetzt total glücklich -. Den Workflow des Elements beginnt

Seien Sie vorsichtig, müssen Sie den vollständigen absoluten Serverpfad enthalten, den Namen Ihres Servers Weglassen (zum Beispiel in ServerRelativePath Eigenschaft Ihrer SPItem gefunden).

Vollarbeits CAML Abfrage:

 <Method ID='1' Cmd='Update'>
    <Field Name='ID'>1</Field>
    <Field Name='FileRef'>/sites/mySite/myDocLib/myFolder/myDocument.txt</Field>
    <Field Name='myDummyPropertyField'>NewValue</Field>
  </Method>

Die Zukunft

Vielleicht ist dies nicht dokumentierte Verhalten wird in einer der nächsten Service Packs behoben werden, vielleicht auch nicht. Microsoft Support entschuldigte sich und wird ein MSDN-Artikel zu diesem Thema veröffentlichen. Für den nächsten Monat hoffe ich diesen Artikel auf Stackoverflow-Entwickler in der gleichen Situation helfen wird.

Vielen Dank für das Lesen!

Andere Tipps

Wir standen vor einem ähnlichen Problem mit einem Genehmigungs-Workflow. Um es zu lösen, schrieben wir unsere eigenen Event-Receiver und befestigte es an der Liste. Je nachdem, ob das Element aktualisiert oder bearbeitet wurde, feuerten wir dann den Genehmigungs-Workflow.

Hope, das hilft ...

Ich habe dieses Problem gestoßen, wie gut und fand heraus, dass, sobald ein Workflow gestartet hat, kann es nicht automatisch neu gestartet werden, unabhängig davon, wie Sie den Artikel aktualisieren. Sie können jedoch manuell den Workflow starten wieder, so oft wie Sie möchten.

Ich habe das gleiche Verhalten gesehen. Aber dann bekommen Sie

scroll top