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をフローチャートから返すのに苦労しています。 助けてください?
はい、変数として定義されましたが、後でOutArgumentとして使用されます。 To =新しいOutergument(isApproved)、ここで何を意味するのか分かりませんか? –
immirza
はい、それはFlowstepのOutArgumentであるため、そのFlowstepに範囲があります。 FlowChartスコープを持つoutArgumentが必要です。同様の問題に対するモーリスの答えをここでチェックしてください: http://techqa.info/programming/question/6272553/programmatically-creating-an-assign-in-a-flowchart-workflow – Richard210363