Workflow Foundation 4.0 загрузить рабочий процесс с аргументами - PullRequest
0 голосов
/ 23 августа 2011

WF 4.0 с SP1

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

var activity = new StateMachineApprovalFlow();
        WorkflowApplication application = new WorkflowApplication(activity);
        var approval = new Approval();
        approval.Status = ApprovalStatus.Completed;
        activity.Approval = approval;

        SetupInstanceStore();
        application.InstanceStore = store;

        application.Extensions.Add(new OracleTrackingParticipant());

        application.Load(instanceId);

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

Спасибо

Ответы [ 2 ]

2 голосов
/ 24 августа 2011

Сначала вам нужно создать действие, которое создает закладку. Затем вы должны запустить рабочий процесс, пока он не станет бездействующим в ожидании этой закладки.

Затем вы загружаете рабочий процесс, как вы сделали, и следуйте этому по

var result = application.ResumeBookmark(bookmarkName, data);

Обязательно проверьте результат, чтобы убедиться, что он возобновился. Microsoft.Activities (доступно на CodePlex) имеет несколько методов расширения, чтобы упростить эту задачу. Пример см. Microsoft.Activ ities.UnitTesti ng - Как проверить активность с закладками?

1 голос
/ 23 августа 2011

Этот способ передачи параметров работает только в том случае, если ваши утверждения являются неизменяемыми.Использование словаря работает со всеми типами ввода.Подробнее см. здесь .

...