2009-08-07 8 views
0

Ich verwende HandleExternalEventActivity mit Roles Eigentum und ich muß überprüfen, ob meine benutzerdefiniertebool RoleProfile.IsDelegatee(string userName, string workflowName, string activityName, string eventName, string roleName) Methode eine Übereinstimmung findet. ("Ich bin im Urlaub; UserX sollte Task 'X' in meinem Namen genehmigen können, aber nicht 'Task Y'")Individuelle Aktivität basierend auf HandleExternalEventActivity

Ich habe versucht, HandleExternalEventActivity zu erben, aber Execute Methode wurde als versiegelt markiert.

Haben Sie irgendwelche Ideen?

TIA

Antwort

1

Ich glaube nicht das HandleExternalEventActivity können Sie dies tun, es begrenzt ist, was es wird Ihnen bestätigen. ReceiveActivity verfügt jedoch über ein OperationValidation-Ereignis, mit dem Sie im Code beliebige Aktionen ausführen können, und Sie können eine IsValid-Eigenschaft für OperationValidationEventArgs festlegen, um anzugeben, ob der Aufruf zulässig ist oder nicht.

Wenn Sie nicht bereit oder in der Lage sind, die WCF-Route zu gehen, besteht die beste Option darin, eine benutzerdefinierte Aktivität zu erstellen, die auf Nachrichten in der Warteschlange reagiert. Die HandleExternalEventActivity ist nur ein sehr dünner Wrapper über das Workflow-Warteschlangensystem, und ich rate fast immer Leuten, die Route für benutzerdefinierte Aktivitäten anstelle der HandleExternalEventActivity-Route zu gehen, da diese weitaus flexibler und oft sogar einfacher zu verwenden ist.