2014-01-20 4 views
0

Я пытаюсь найти способ отменить рабочий процесс с помощью Dynamics CRM SDK. В настоящее время я могу повторить рабочий процесс, но у меня есть проблемы, которые можно отменить один программным путем. Это возможно?Dynamics CRM SDK - Отменить рабочий процесс

+0

Вы пытаетесь отменить текущий рабочий процесс или отменить партию других рабочих процессов, запущенных на сервер? – Nick

+0

Я бы запросил систему для приостановленных рабочих процессов, которые, как я знаю, должны были быть выполнены, и если повтор не работает, отменив их. – widmayer

+0

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

ответ

3

Чтобы запустить рабочий процесс:

ExecuteWorkflowRequest request = new ExecuteWorkflowRequest() 
       { 
        WorkflowId = Workflow.Id, 
        EntityId = entity.Id 
       }; 


       // Execute the workflow. 
       ExecuteWorkflowResponse response = 
        (ExecuteWorkflowResponse)service.Execute(request); 

до конца:

Entity operation = new Entity("asyncoperation") 
{ 
    Id = WorkflowRef.Id 
}; 

operation["statecode"] = new OptionSetValue(3); 
operation["statuscode"] = new OptionSetValue(32); 

organizationservice.Update(operation); 
+0

Вы можете инкапсулировать это в каждый если требуется –

1

Вы видели Asynchronous Operation States?

Очевидно, вам просто нужно сделать звонок для обновления statecode.

Получение и обновление AsyncOperation государств

Мониторинга и обновление состояния асинхронных операций обычно выполняется в интерактивном режиме через сеть System Работы в Microsoft Dynamics CRM веба-приложениях . Однако вы также можете использовать SDK для написания кода, который выполняет те же задачи.

Read состояние асинхронной операции

  1. Получить письмо AsyncOperation по имени, используя метод RetrieveMultiple или по ID с помощью метода Retrieve.

  2. Считать атрибут AsyncOperation.StateCode.

Изменения код состояния

  1. Изменение извлеченного атрибута кода состояния в новое значение в соответствии с разрешенными рабочими состояниями. Вы также можете изменить атрибут AsyncOperation.PostponeUntil .

  2. Вызовите обновление, чтобы изменить значение этих атрибутов в базе данных.

Смежные вопросы