OSWorkFlow深入浅出(4)---犹抱琵琶半遮面
经过前面几节的描述,我们基本上让第一个工作流运行起来了,但是很多人肯定都云里雾里的,配置文件为什么要这么些,doAction之流到底有什么用,有这些疑问在正常不过了,初次接触肯定会遇到诸如此类的问题,或许更有甚者,没关系,只要你有耐心阅读,那么我也会耐心的去写(谁怕谁啊!)
1、工作流程
我们为什么要定义helloworld.xml那样的文件,先来说说他所代表的意思吧,看看下面的这张活动图,然后我们在对照着进行解释。
2、详细解释
2.1、初始化节点
回顾一下helloworld.xml文件吧,再对照上面的状态图,其中initial-actions节点中的action代表需要初始化的动作,当一个工作流调用init方法的时候,其中inital-actions中的action将会被执行解析。
<initial-actions><action id="100" name="Start Workflow"><results><unconditional-result old-status="Finished" status="Underway" step="1"/></results></action></initial-actions>
上面定义了一个action,并且是在initial时被执行的,在osworkflow中有一个规定,必须至少有一个action子节点在initial-actions中,因为每一个流程都必须进行初始化操作。初始化的时候或许会发生很多凄美的故事,再来说说action,我们定义了他的id是100,它代表action的序列号,而name属性则可以随便起,但是建议起一个能知其意的名字。
osworkflow工作流的流转是需要靠结果进行流转的,因此在action中我们定义了一个results节点,为什么是复数呢?意味着可以有多个result结果,但是必须有一个无条件的结果unconditional-result节点,当有条件的结果都不满足的时候或者没有有条件的结果的时候,无条件结果就会默认被执行(有条件结果集,我们会在后文中讲解),再来看看step属性(old-status和status属性,在后文中介绍),他表示执行完初始化之后,工作流流转到那个步骤,好了再来对照一下刚才的测试代码,其中是不是有一个init方法。
long id = wf.initialize("first", 100, Collections.EMPTY_MAP);
他就代表在workflow初始化的时候执行action中规定的动作。
2.2、步骤节点
步骤节点是osworkflow中最重要的概念之一,他是工作流的灵魂所在,对照着上面的状态图以及我们的配置文件,我们来看一下,在osworkflow中,步骤代表一下个流程的流转节点,在osworkflow中至少需要有一个step节点。
<steps><step id="1" name="HELLOWORLD1"><actions><action id="1" name="helloWorld action1"><results><unconditional-result old-status="Finished"status="UnderWay" step="2" /></results></action></actions></step><step id="2" name="HELLOWORLD2"><actions><action id="2" name="helloWorld action2" finish="true"><results><unconditional-result old-status="Finished"status="UnderWay" step="-1" /></results></action></actions></step></steps>
当初始化完成之后,step指到了step=1这个位置,也就是说目前可执行的step只有1,因此我们运行了下面的代码
wf.doAction(id, 1, Collections.EMPTY_MAP);
当执行完step1的action1之后,result节点有指向了step2节点,我们显示的调用了
wf.doAction(id, 2, Collections.EMPTY_MAP);
OSWorkFlow深入浅出(4)---犹抱琵琶半遮面相关推荐
- 【python 笔记/小白快速入门python】python浅谈(一)犹抱琵琶半遮面
python浅谈(一)犹抱琵琶半遮面 继浅谈(零)初识庐山真面目[https://blog.csdn.net/HarryOtter/article/details/90519877 ] 之后,终于窥得 ...
- 【转载】MIMO技术杂谈(二):犹抱琵琶半遮面--MIMO信道中隐藏的秘密
犹抱琵琶半遮面--MIMO信道中隐藏的秘密 无线通信中,最让人难以捉摸的,就是那看不见,摸不着的无线信道了.但是,正因为它的变化莫测,才让无线通信具有了独特的魅力.正如Tse在他的大作<无线通信 ...
- 犹抱琵琶半遮面--MIMO信道中隐藏的秘密
[原创]MIMO技术杂谈(二):犹抱琵琶半遮面--MIMO信道中隐藏的秘密 - 通信原理与基础 - 通信人家园 - Powered by C114 无线通信中,最让人难以捉摸的,就是那看不见,摸不着 ...
- MIMO技术杂谈(二):犹抱琵琶半遮面--MIMO信道中隐藏的秘密
犹抱琵琶半遮面--MIMO信道中隐藏的秘密 经典MIMO原理介绍,原文地址: http://bbs.c114.net/thread-668750-1-1.html 无 ...
- 犹抱琵琶半遮面--探究直播系统源码的真面目
犹抱琵琶半遮面--探究直播系统源码的真面目 复制代码 随着各种直播平台的相继出现,直播系统源码也慢慢浮出水面.直播系统源码主要功能和技术难点在于视频流的推送和播放过程,下面我们就简单了解一下呆萌直播的 ...
- 对待开源 厂商为何“犹抱琵琶半遮面”
软件设计天生就是可重用的,无论模块化设计,还是面向对象编程都体现了一个目标--减少不必要的重复开发.软件是人类共同的财富,软件的可继承性是软件迅速发展的基石.开源的目的也是最大程度地提高软件的复用性. ...
- Appium+python自动化(八)- 初识琵琶女Appium(千呼万唤始出来,犹抱琵琶半遮面)- 下(超详解)...
简介 通过上一篇宏哥给各位小伙伴们的引荐,大家移动对这位美女有了深刻的认识,而且她那高超的技艺和婀娜的身姿久久地浮现在你的脑海里,是不是这样呢???不要害羞直接告诉宏哥:是,就对了.宏哥要的就是这个 ...
- 深度解读Helm 3: 犹抱琵琶半遮面
2019独角兽企业重金招聘Python工程师标准>>> 自去年年初开始放风Helm v3将要开始开发,到去年年底KubeConn 上海被一堆人追问到底啥时候发版本.今年五月份,Hel ...
- 千呼万唤始出来,犹抱琵琶半遮面-go语言初识
文章目录 前言 go语言的简单介绍 go语言的历史 为什么要创建go这门语言 动态语言和静态语言的区 目前go语言的招聘 go的优势 有哪些公司在用go 有哪些go语言的优秀项目? go相关的资料及书 ...
最新文章
- 在docker中构建普通java程序_Docker入门-构建第一个Java程序
- python 类的知识点整理_Python opp知识整理
- 深度学习下的点击率预测:交互与建模
- 无人机飞控开发平台培训理论课程——飞行原理
- Valgrind动态分析工具
- 我从吴恩达课堂演讲中学到的一些建议
- linux与s7-300,Siemens SIMATIC S7-300硬编码凭证安全限制绕过漏洞
- Mac OS X Snow Leopard 10.6下载及安装
- 高精度ua级恒流源_UWB高精度室内定位系统案例--漫途科技
- 使用kubeadm安装kuberneters
- python怎么导入大小字母_python遍历小写英文字母的方法
- 5.接口参数过滤(phalapi框架总结)
- Java反射机制详解上篇
- 不可多得的MBA相关书籍推荐
- OpenGL圆柱面绘制贴图
- js数字输入的验证~
- 写给Krpano小白们的最最最入门级教程(一)
- 《JSP程序设计》手机销售网后台设计
- MySQL数据打标_易打标(标签条码打印软件)
- blinker点灯开关组件
热门文章
- 小白学流程引擎-FLowable(一) —FLowable是什么
- stp实验心得_STP实验报告
- Java大数字运算(BigInteger类和BigDecimal类)
- unity2D小游戏打地鼠
- 如何实时同步数据到StarRocks
- 如何将多页面pdf分割成一页一页的PDF文件
- python2.4无线模块_用Python实现喇叭天线设计小工具(二)
- 国防科技大学计算机原理真题答案,1996年国防科技大学计算机原理和系统结构试题...
- 我是一个新手小白,想学习C++编程,但是不知道该如何入手。请大神们给出一个简单的思路。
- 安装:Microsoft Project 2010