博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WorkFlow入门Step.6—Building a Console Application -For-WF4.0
阅读量:5900 次
发布时间:2019-06-19

本文共 2217 字,大约阅读时间需要 7 分钟。

  hot3.png

 

开篇

       之前我们讲述了控制流与WF4.0的基础。下面我们来看看如何使用控制台的形式来使用WF4.0、比如我们有时候不能通过设计器来设计工作流时,如何通过代码

的方式,来构建WF4.0应用程序,可能这就会为我们自定义工作流设计器等方面提供帮助。下面我们就开始吧。

摘要

         WorkFlow是最近比较流行的一门技术,其实WF起源于20世纪70年代中期的办公化自动领域,自1993年8月,WFMC(工作流管理联盟)成立,1994年制定了一

系列的关于工作流的标准。进入21世纪工作流被越来越多的学者关注,该项技术越发走向成熟。当然我也是必须跟上时代的步伐,所以也加入工作流的大军,希望能

够跟上前人的脚步。当然也希望感兴趣的朋友,加入工作流的讨论群中来。具体群号:120661978。

目前,我们已经在中陆续集成了,界面设计器+工作流的内容,当然工作流目前还不算太成熟,还不方便放出来,本文只是抛砖引玉,还希望

大家多多重视工作流的内容。

大纲

一、开篇

二、摘要

三、WF4.0的控制台程序

控制台程序

之前的几篇文章,我们已经把WF中的基础控制流信息差不多说完了,关于具体的应用我们后面会说明,更多内容请查看上篇《

下面我们就来看看如何通过代码的形式来创建工作流流程,达到与设计器同样的目标。

1、新建一个Winform控制台应用程序。

2、添加程序集引用“system.Activities”:

3、在Main函数中添加如下代码:

4、修改上方的“CreateWorkFlow方法”:

5、运行上述程序,查看运行结果。

下面我们来在该代码构建一个带有IF控制流的活动吧,看看是如何构建的。

1、在上面的基础上,我们来新修改上述“CreateWorkFlow方法的内容”:

        private static System.Activities.Activity CreateWorkFlow()

        {
            //创建新的工作流活动
            Variable<DateTime> nows = new Variable<DateTime>()
            {
                Name = "DateTime",
                Default = DateTime.Now
            };

            return new Sequence()

            {
                DisplayName = "test",
                Activities=
                {
                    new WriteLine()
                    {
                        DisplayName="Write1",
                        Text="Hello World!"
                    }
                }
            };
        }

上面是之前的输出HelloWord的不带复杂的条件的简单输出的节点,我们将上述的代码修改如下:

先定义一个该顺序控制流范围内的变量“Contion1”条件变量,作为IF条件的判定

Variable<int> contion1 = new Variable<int>()

                    {
                        Name = "int1",
                        Default = 1
                    };

返回一个顺序控制流

return new Sequence()

           {
               Variables=
               {
                   contion1
               },
               DisplayName = "test",
               Activities =
               {
                   //输出工作流执行的开始日期
                   new WriteLine()
                   {
                       DisplayName="Write1",
                       Text=System.DateTime.Now.ToString()
                   },

                   new If()

                   {
                       DisplayName="test2", Condition=ExpressionServices.Convert<bool>(env=>contion1.Get(env)>0),
                       Then=new WriteLine(){
                           DisplayName="Then",
                           Text="Then"
                       },Else=new WriteLine(){
                           DisplayName="Else",
                           Text="Else"
                       }
                   },
                   //输出工作流执行的完成日期
                   new WriteLine()
                   {
                       DisplayName="Write2",
                       Text=System.DateTime.Now.ToString()
                   }
               }
           };

2、我们来解释下上面的定义说明信息:

3、其他内容:

4、运行后,查看结果如下:

5、IF条件中的写法与Condition的解析,我们这里来简单的说明下:、

 

基于上面的形式,我们能够写出所有我们基于设计器来完成的代码,当然掌握这样的控制台的形式,对我们结合一些相关开发平台或者业务代码的时候,

更方便和容易,可能给予控制台的方式,会感觉比较的难以书写。

例如我们在上面的基础上,在then中完成赋值操作。

我们在then中对变量contion1赋值为2。

并打印出来。

1、修改上述的Sequece中的代码:

上面就完成了,IF活动内部的过程的修改。

2、运行后,查看运行的效果:

源码下载

更多交流

官方博客:

官方网站:

如果您在使用AgileEAS.NET开发平台中有什么问题,请使用如下几种联系方式或者沟通方式。

1、电话-邮箱方式:

: 手机:18691480181 博客:

2、QQ交流群:

QQ:308961614    网名:H.O.T

AgileEAS.NET平台交流群:120661978(超级群)[新建]

原文链接:

转载于:https://my.oschina.net/dtec/blog/43723

你可能感兴趣的文章
谈谈java的BlockingQueue
查看>>
20165313 我期望的师生关系
查看>>
CentOS7+CDH5.14.0安装CDH错误排查: HiveServer2 该角色的进程已退出。该角色的预期状态为已启动...
查看>>
GCC
查看>>
The Oregon Trail 俄勒冈之旅
查看>>
Excel VBA连接MySql 数据库获取数据
查看>>
Nginx页面图片错误 ERR_CONTENT_LENGTH_MISMATCH
查看>>
SQL Server-表表达式基础回顾(二十四)
查看>>
DAO层,Service层,Controller层,View层
查看>>
Developing a Service Provider using Java API(Service Provider Interface)(转)
查看>>
LINQ高级编程 笔记
查看>>
Android 应用开发推荐书单
查看>>
自定义有监听器的ScrollView
查看>>
BAE Flask UEditor 使用七牛云
查看>>
关联的特殊应用
查看>>
Bootstrap系列 -- 15. 下拉选择框select
查看>>
【转载】无限级分类的简单实例
查看>>
基础总结篇之一:Activity生命周期
查看>>
关于WinPE安装操作系统
查看>>
Windows 10 IoT Serials 2 - Windows 10 IoT RTM 升级教程
查看>>