Ich habe einen Workflow, der auf einem Element in einer Liste ausgeführt wird. Der Workflow verfügt über eine OnWorkflowItemChanged-Aktivität, die sich innerhalb einer While-Aktivität befindet. Ich weiß, dass der Workflow in die While-Schleife eintritt. Wenn ich das Element über die Benutzeroberfläche aktualisiere, wird die OnWorkflowItemChanged-Aktivität ausgelöst. Wenn ich das Element jedoch programmgesteuert (über eine Konsolenanwendung) aktualisiere, wird die OnWorkflowItemChanged-Aktivität nicht nur ausgelöst, sondern es reagiert auch nicht mehr über die Benutzeroberfläche auf Aktualisierungen.Workflow reagiert nicht mehr, wenn Listenelement programmgesteuert aktualisiert wird
Hat jemand das schon mal gesehen? Gibt es eine Möglichkeit, das Listenelement programmgesteuert zu aktualisieren, sodass der Workflow sowohl auf das Ereignis reagiert als auch auf zukünftige Ereignisse reagiert?
edit: Es funktioniert gut, wenn ich den Listen-Web-Service verwenden, um das Element zu aktualisieren. Warum versaut es sich, wenn ich das Objektmodell verwende?
DisableEventFiring() und EnableEventFiring() sind für Ereignisempfänger, um rekursive Aufrufe zu verhindern. Sie sind nicht für Workflows oder externen Code verfügbar. Ich sehe auch nicht, warum das Aufrufen der SPListItem.Update() -Methode das Ereignis firint zu Beginn deaktivieren würde - es sollte nicht. – zimdanen
hat den Link hinzugefügt, den ich über – Chloraphil
einfügen wollte. Ich habe versucht, es vor und nach dem Update auf EnableEventFiring zu setzen, aber es löst das Ereignis immer noch nicht aus oder antwortet nicht über die Benutzeroberfläche. item ["Entscheidung 1"] = "Concur"; SPEventManagerWrapper.EnableEventFiring(); item.Update(); SPEventManagerWrapper.EnableEventFiring(); – zimdanen