0

나는 WorkflowInstance.Run으로 호스팅하고있는 .net 4.0 워크 플로를 가지고 있으며 워크 플로를 다시 수분 할 때 후속 작업에서 이러한 값을 사용할 수 있도록 내부 인수 중 일부를 초기화하려고합니다 ... 이 일을 어떻게하면 될까요?Workflow Arguments에 값을 삽입 할 수 있습니까?

답변

0

사용 인수 플로 (도 활동)에 대한 입력 및 출력을 정의 (/ OutArgument은에서) .. 여기서

샘플 구문은

.. 워크 플로우 맵

Dictionary <string, object> input = new Dictionary <string, object>(); 
input.Add("UserName" , userName); 
input.Add ("UserName", userName); 
WorkflowInstance myInstance = new WorkflowInstance(
new WorkflowConsoleApplication2.Sequence1(),input); 

WorkflowInstance myInstance = new WorkflowInstance (
new WorkflowConsoleApplication2.Sequence1(), input); 

상기 정의 입력 인수를 입력하면 인수 값에 액세스 할 수 있습니다.

+0

그러나 _existing_ 워크 플로를로드 할 때이 기능을 사용할 수 없습니까? 다음과 같이 사용합니다. WorkflowInstance.Load (WorkflowElement, PersistenceProvider) .. 인수 사전을 사용하는 재정의가 없습니다. 내 요구 사항은 워크 플로가 일부 지점으로 진행될 때까지 모든 인수가 없다는 것입니다. 그런 다음 사용하기 위해 다음과 같은 활동에 삽입 할 수 있습니다 ... – Adam

0

일반적으로 인수는 처음으로 워크 플로를 시작하기 전에 워크 플로를 제공하기위한 것입니다.

예를 들어, InArgument 입력 1, InArgument 입력 2, OutArugment 출력 한 때 모든 입력으로 전달하는 흐름을 생성하고, 상기 출력들 모두를 저장하기위한 워크 플로우에 대한 변수를 가질 수 있습니다.

워크 플로가 이미 실행 중이면 인수가 있지만 외부 요인에 따라 워크 플로가 변경 될 것으로 예상하지는 않습니다. (혼란스러운 점이 있다면 일반적으로 워크 플로우가 시작될 때 실행을 재개하지 않을 것입니다. 중간에 임의의 북마크에서 재개 할 것입니다.) 그래서 어떻게하면 워크 플로우에 데이터를 전달할 수 있습니까? 중간 실행?

여기 메시징 활동을 살펴 보시기 바랍니다. 데이터는 Value OutArgument of ReceiveMessage의 워크 플로에 'in'으로 제공됩니다. 어떻게 거기에 갔습니까? Receive 활동에 의해 설정되었습니다. 그러나 receive 액티비티는 그것을 어떻게 설정합니까? 우선, 서비스 호스트는 수신 활동에 메시지가 있기 때문에 다시 시작하도록 지시합니다. 그런 다음 수신 활동에 '어떤 메시지를 받았습니까?'라고 표시됩니다. 아무도 마술처럼 데이터를 밀어 넣지 않았습니다. 대신 활동이 활성화 된 후에 대기열에서 데이터를 가져 오는 것입니다.

바라건대 당신은 누군가가 그들이 실행할 때 필요 3) 활동이 데이터를 끌어 워크 플로를 (다시 활성화 어떤 워크 플로우 2) 런타임 또는 서비스 호스트 또는 필요로하는 데이터를 저장) 1의이 아이디어를 사용할 수 있습니다 재 활성화 후) 을 솔루션 모델로 선택하십시오.

관련 문제