Estoy teniendo problemas ahora mismo con las Bookmarks, no se cargan en el WorkflowApplication despues de haberlo cargado desde persistance, y no tengo idea de porque.
Aqui mi codigo para cargar desde persistance:
Código C#:
Ver original
Activity act = WorkflowCorrelationManager.LoadActivity(instanceGuid); if (act == null) { continue; } WorkflowApplication wFApp = LoadWorkflowApplication(act); WorkflowRequestExtension requestExtension = new WorkflowRequestExtension(); requestExtension.WorkflowRequestItemEvent += OnRequestItemEvent; wFApp.Extensions.Add(requestExtension); WorkflowTrackingParticipant trackingParticipant = new WorkflowTrackingParticipant(); wFApp.Extensions.Add(trackingParticipant); WorkflowDebuggerExtension debuggerExtension = new WorkflowDebuggerExtension(); debuggerExtension.RegisterTrackingParticipant(trackingParticipant); wFApp.Extensions.Add(debuggerExtension); wFApp.Load(instanceGuid); WfRuntimeEntries.Add(instanceGuid, new WorkflowInstanceRuntimeEntry(entity, wFApp)); WfApps.Add(instanceGuid, wFApp); var k = wFApp.GetBookmarks();
Luego ya solo espero al evento de resume para llamar al siguiente método;
Código C#:
Ver original
internal static void Resume(IWorkflowRequestItem irToResume, object resumingEvent) { // 1.) Determine Runtime Entry WorkflowInstanceRuntimeEntry wIRE; var isResumable = WfRuntimeEntries.TryGetValue(irToResume.GetWorkflowGuid(), out wIRE); // 3.) Resume if (isResumable && wIRE.WfApp != null) { Bookmark bokMark = new Bookmark(irToResume.GetBookmarkName()); // Calls "Resumed" Method of Suspended Activity Instance var t = wIRE.WfApp.ResumeBookmark(bokMark, resumingEvent, new TimeSpan(1, 0, 0)); } }
El Workflow se resume, PERO, empieza desde el principio, llega a la actividad que crea el bookmark, crea otro bookmark, y luego llama al resume y continua normalmente.
Si el Workflow no se para, el resume funciona perfectamente y continua directamente en la actividad que creó el bookmark.
Alguna idea, ayuda, discusión o algo?
Gracias!