要求:
当输入申请金额Num<3时,直接审批通过。
当输入,申请金额大于或等于3,经理审批,若金额小于100审批通过,反之,重新申请。
1、新建“活动代码”BookMarkDemoCodeActivity.cs文件
public sealed class BookMarkDemoCodeActivity : NativeActivity
{
// 定义一个字符串类型的活动输入参数
public OutArgument<int> day { get; set; }
// 如果活动返回值,则从 CodeActivity<TResult>
// 派生并从 Execute 方法返回该值。
protected override void Execute(NativeActivityContext context)
{
context.CreateBookmark("Demo",new BookmarkCallback(SetResult));
}
//ResultBook将会执行此代码,winForm窗体中的值将会被送入wf中。
private void SetResult(NativeActivityContext context, Bookmark bookMark, object value)
{
context.SetValue(day, Convert.ToInt32(value));
}
//wf 可否停顿
protected override bool CanInduceIdle
{
get
{
return true;
}
}
}
2、新建状态机工作流
3、新建控制台应用程序
class Program
{
static void Main(string[] args)
{
bool isCorrent = false;
WorkflowApplication app = new WorkflowApplication(new DemoActivity());
app.Run();
app.Completed = delegate(WorkflowApplicationCompletedEventArgs e)
{
if (e.CompletionState == ActivityInstanceState.Faulted)
{
Console.WriteLine("Error");
}
else if (e.CompletionState == ActivityInstanceState.Canceled)
{
Console.WriteLine("Cancle");
}
else
{
isCorrent =true;
}
};
while (!isCorrent)
{
app.ResumeBookmark("Demo",Convert.ToInt32(Console.ReadLine()));
}
Console.ReadKey();
}
}