Доступ к workflowArguments в размещенном рабочем процессе - PullRequest
0 голосов
/ 04 марта 2012

Мы смешиваем рабочие процессы, рабочий процесс, использующий активность получения в конце.Но в начале мы хотим передать некоторые аргументы (без использования действия приема!)

Наши рабочие процессы уже создаются и возобновляются с использованием динамической конечной точки с IWorkflowCreation и класса, производного от WorkflowHostingEndpoint.В OnGetCreationContext creationgContext заполняется WorkflowArguments, и рабочий процесс запускается.На более позднем этапе действия получения создают закладку, которую можно возобновить с помощью сообщения.Все кажется хорошим.

Но в xamlx нет WorkflowArguments, я понимаю почему, за исключением того, что я все равно хочу их.Я думаю об операции, в которой я могу написать некоторый код, чтобы получить аргументы самостоятельно, но мне здесь нужна некоторая помощь.

Или есть другой способ передать WorkflowArguments в xamls без использования Messaging?

Ответы [ 2 ]

1 голос
/ 05 марта 2012

Мы решили эту точную ситуацию, создав другую службу WCF, которая расположена рядом с нашей службой xamlx по несколько другому URL-адресу (например, / WorkflowMetadata), и именно здесь мы реализуем метод службы, который возвращает словарь строк типа

В реализации этого сервиса мы просто читаем xamlx и определяем аргументы.

Это то, что мы используем для опроса целевого рабочего процесса в конструкторе действий при создании чего-то вроде действия запуска рабочего процесса.

Создание действия не будет работать, так как для этого действия потребуется экземпляр для запуска.Все, что вам нужно, это некоторые метаданные о службе xamlx.И если вы используете WorkflowCreationEndpoint для создания контекста создания, то вы, вероятно, разрешаете использовать только словарь строк и объектов в качестве параметров запуска.Поэтому стандартные метаданные не будут работать.Это оставило нам единственную возможность предоставить другую услугу помимо рабочего процесса, которая обслуживает метаданные.

Справочная информация здесь: http://blog.petegoo.com/index.php/2011/09/02/building-an-enterprise-workflow-system-with-wf4/

1 голос
/ 05 марта 2012

Вы не можете передавать аргументы в запускающую службу рабочего процесса, кроме как через сообщение SOAP, которое ее запускает.Но ничто не мешает вам читать какие-либо свойства в вашем сервисе рабочих процессов.Так что совершенно нормально делать настройки чтения или что-то подобное, вместо того, чтобы передавать их при запуске.

...