2017-06-07 11 views
0

を返すことができない私は、私は決断を流れるように私の活動の柱にOutArgument<string>を設定していますコード化されたフローチャートとOutArgument

コード

static Flowchart CreateFlowChart() 
{ 
    Variable<string> response = new Variable<string>(); 
    Variable<string> isApproved = new Variable<string>(); 

    FlowStep approved = new FlowStep 
    { 
     Action = new Assign 
     { 
      To = new OutArgument<string> (isApproved), 
      Value = new InArgument<string>((context) => response.Get(context)) 
     } 
    }; 

    FlowStep rejected = new FlowStep 
    { 
     Action = new Assign 
     { 
      DisplayName = "Approved", 
      To = new OutArgument<string>(isApproved), 
      Value = new InArgument<string>((context) => response.Get(context)) 
     } 
    }; 

    FlowDecision flowDecision = new FlowDecision 
    { 

     Condition = ExpressionServices.Convert<bool>((ctx) => response.Get(ctx).ToString() == "approved"), 
     True = approved, 
     False = rejected 
    }; 

    FlowStep LineManagerApproval = new FlowStep 
    { 
     Action = new ReadLine 
     { 
      BookmarkName = readLineBookmark, 
      Result = new OutArgument<string>(response) 
     }, 

     Next = flowDecision 
    };   

    Flowchart flowChart = new Flowchart 
    { 
     DisplayName = "Line Manager Approval Process", 
     Variables = { response, isApproved }, 
     StartNode = LineManagerApproval, 
     Nodes = 
     { 
      LineManagerApproval, 
      flowDecision, 
      approved, 
      rejected 
     } 
    }; 
    return flowChart; 
} 

(代わりに、設計時の)コードを使用してフローチャートのワークフローを作成しています。

ワークフローが完了すると、私はe.OutPuts["isApproved"]があると予想しますが、e.OutPutsは常にカウント0を返します。

application.Completed = delegate(WorkflowApplicationCompletedEventArgs e) 
{ 

    Console.WriteLine("Workflow {0} Completed.", e.InstanceId); 
    //bool isApproved = (bool)e.Outputs["isApproved"]; 

}; 

基本的に私はOutArgumentをフローチャートから返すのに苦労しています。 助けてください?

答えて

0

IsApprovedは、ワークフローレベルでoutArgumentとして設定する必要があります。あなたはそれを変数として設定しているようです。

+0

はい、変数として定義されましたが、後でOutArgumentとして使用されます。 To =新しいOutergument (isApproved)、ここで何を意味するのか分かりませんか? – immirza

+0

はい、それはFlowstepのOutArgumentであるため、そのFlowstepに範囲があります。 FlowChartスコープを持つoutArgumentが必要です。同様の問題に対するモーリスの答えをここでチェックしてください: http://techqa.info/programming/question/6272553/programmatically-creating-an-assign-in-a-flowchart-workflow – Richard210363

関連する問題