`

osworkflow学习笔记-标签<initial-actions>、<restrict-to>、beanshell、class

阅读更多

关键字:osworkflow 入门教程, 初体验,环境搭建,示例,笔记,用法,标签 含义 释义。。。。。。

 

打开osworkflow-2.8.0\src\webapp\WEB-INF\classes\example.xml

看看这些的标签:

<initial-actions>
		<action id="100" name="Start Workflow">
			<restrict-to>
				<conditions type="AND">
					<condition type="beanshell">
						<arg name="script">true</arg>
					</condition>
					<condition type="class">
						<arg name="class.name">com.opensymphony.workflow.util.OSUserGroupCondition</arg>
						<arg name="group">foos</arg>
					</condition>
				</conditions>
			</restrict-to>
			<pre-functions>
				<function type="class">
					<arg name="class.name">com.opensymphony.workflow.util.Caller</arg>
				</function>
			</pre-functions>
			<results>
				<unconditional-result old-status="Finished" status="Underway" step="1" owner="${caller}"/>
			</results>
		</action>
	</initial-actions>
 

1  initial-actions: 一组初始动作,在工作流实例被赋予任何状态之前执行,每個流程都至少需定義一個initial-actions,這是流程的起點,初始化步骤是一种特殊类型的步骤,它用来启动工作流。在一个工作流程开始前,它是没有状态,不处在任何一个步骤,用户必须采取某些动作才能开始这个流程。这些特殊步骤被定义在 <initial-actions>。

可以用来定义通用动作(common action)和全局动作(global action)。

我们再看看example.xml的 initial-actions里干了啥:

首先定义了一个约束restrict-to,约束里有两个AND 关系的条件,然后用pre-funcitons取出当前用户名,传给step1

 

2 condition type="beanshell"

beanshell 表达式范围内中始终存在三个变量,entry、context和store。entry变量是一个实现了com.opensymphony.workflow.spi.WorkflowEntry接口的对象,它代表workflow实例。context变量是com.opensymphony.workflow.WorkflowContext类型的对象,它允许BeanShell方法回滚事务或决定调用者的名字。store变量是com.opensymphony.workflow.WorkflowStore类型的对象,它允许方法访问workflow底层的持久化存储区。

另外beanshell 是一种脚本语言,一种完全符合java语法的java脚本语言

我们再看看example.xml的 beanshell 里干了啥: 直接返回true,啥也没干,这里应该可以做一些稍复杂的判断

 

3  condition type="class" :能够调用一些实现了com.opensymphony.workflow.FunctionProvider接口的 外部类,这个接口只有一个方法——execute,这个方法有三个参数transientVars, args和propertySet可用 ,通过这三个参数能获取或编辑当前工作流里的很多信息。

<condition type="class">
       <arg name="class.name">com.opensymphony.workflow.util.OSUserGroupCondition</arg>
       <arg name="group">foos</arg>
</condition>

这是一个条件语句,意思是:判断当前执行改流程的用户在不在group组(foos是组的名字)中,是执行什么流程,不是执行什么流程。

 

参考:http://baixiaozhe.iteye.com/blog/753603 关于权限

         http://baixiaozhe.iteye.com/blog/753587关于class

 

4 <pre-functions>: 在事情发生之前执行的函数和它相对应是post-functions就是在事情发生以后执行的。

    这里是获取到当前用户名,并放到临时变量caller中。

5 unconditional-result

对于每一个动作,都需要存在一个无条件结果,叫做unconditional-result。这个结果只不过是一些指令,告诉OSWorkflow下一步要做什么。这一结果让组成工作流的状态机从一个状态流转到下一个状态。

 

<unconditional-result old-status="Finished" status="Underway" step="1" owner="${caller}"/>

大概意思就是这一步已经完事,已经不在是当前动作了 ,所以上一步 的状态为Finished, 当前流程 状态为"办理中"即Underway,现在已经到step1去了,带过去的参数是ower,即当前用户

 

 

分享到:
评论

相关推荐

    osworkflow-2.8.0-example.war

    《osworkflow-2.8.0-example.war:工作流引擎的实战应用》 osworkflow-2.8.0-example.war 是一个基于OSWorkflow框架的示例应用,它为开发者提供了一个直观的理解和实践OSWorkflow工作流程引擎的机会。这个压缩包...

    OSWorkflow-chinese-manual-2.8.rar

    博文链接:https://yanwu.iteye.com/blog/195250

    osworkflow-chinese-manual.rar_manual_osworkflow

    osWorkflow-chinese-manual.pdf这份文档是osWorkflow学习者的宝贵资料,它不仅涵盖了基本概念和原理,还提供了大量实例和代码示例,帮助开发者快速上手并熟练掌握osWorkflow的使用。而www.pudn.com.txt可能是下载...

    osworkflow-developer-guide(学习资料)

    《osworkflow-developer-guide》是关于OSWorkflow框架的开发者指南,它为理解、实施和定制OSWorkflow提供了详尽的指导。OSWorkflow是一个开源的工作流管理系统,用于管理应用程序中的业务流程。这个指南旨在帮助...

    osworkflow-canvas-master_nginx_源码.rar

    标题中的"osworkflow-canvas-master_nginx_源码.rar"表明这是一个关于osWorkflow Canvas与Nginx服务器相关的源代码压缩包。osWorkflow是一个开源的工作流管理系统,用于管理业务流程,而Nginx则是一款高性能的HTTP和...

    查询osworkflow的历史记录代码

    &lt;title&gt;OSWorkflow历史记录查询&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;OSWorkflow历史记录查询&lt;/h1&gt; &lt;table border="1"&gt; &lt;tr&gt; &lt;th&gt;流程实例ID&lt;/th&gt; &lt;th&gt;步骤ID&lt;/th&gt; &lt;th&gt;开始时间&lt;/th&gt; &lt;th&gt;结束时间&lt;/th&gt; &lt;th&gt;执行...

    OSWorkflow-chinese-manual-2.8.rar_Java 8_osworkflow

    这个“OSWorkflow-chinese-manual-2.8.rar”压缩包包含的是OSWorkflow的中文版2.8版本的手册,对于理解和使用该框架非常有帮助。 首先,我们需要了解工作流的基本概念。工作流是指在组织中,一系列相互关联的任务...

    osworkflow---提供osuser源碼

    标题中的“osworkflow---提供osuser源碼”指的是OSWorkflow框架的一个组成部分——osuser模块的源代码。OSWorkflow是一款开源的工作流引擎,它允许开发者在Java应用中实现复杂的业务流程。osuser模块则是该框架中...

    osworkflow-developer-guide.rar_OSWorkflow ebooks_OsWorkFlow.rar_

    这个压缩包"osworkflow-developer-guide.rar_OSWorkflow ebooks_OsWorkFlow.rar_"包含了关于OSWorkflow的开发者指南和相关资源,非常适合那些想要深入理解并使用OSWorkflow进行开发的人。 **OSWorkflow 概述** ...

    osworkflow-canvas-master_nginx.zip

    《深入解析osworkflow-canvas与Nginx在源码层面的整合应用》 osworkflow-canvas与Nginx,这两个看似不相关的技术在实际开发中却有着紧密的联系。osworkflow-canvas是一款流程设计工具,它是osWorkflow的一部分,...

    OSWorkflow快速入门

    &lt;initial-actions&gt; &lt;action id="100" name="Start Workflow"&gt; &lt;results&gt; &lt;unconditional-result old-status="Finished" status="... &lt;/results&gt; &lt;/action&gt; &lt;/initial-actions&gt; ... &lt;/workflow&gt; ``` - `...

    OSWorkflow开发指南 - 中文

    OSWorkflow,全称为OpenSymphony Workflow,是一款开源的工作流管理系统,用于实现业务流程自动化和管理。这个开发指南是中文版的资源,旨在帮助中国的开发者更好地理解和应用OSWorkflow。以下是关于OSWorkflow的...

    osworkflow-example-demo.rar_DEMO_com.example.demo_osworkflow e

    这个"osworkflow-example-demo.rar"是一个示例项目,包含了OSWorkflow的源代码和一个经典的实例,适用于初学者学习和理解工作流管理系统的工作原理。由于不包含数据库和流程设计器,因此可能需要用户自行配置和设计...

    osworkflow入门范例

    &lt;br&gt;使用方法:把mine压缩包解压,把osworkflow-2.8.0-example文件夹放入%TOMCAT_HOME%\webapp下。osworkflow-2.8.0-example.xml放在%TOMCAT_HOME%\conf\Catalina\localhost&lt;br&gt;当然数据库要配置连接池,名字为jdbc/...

    osworkflow学习笔记

    通过osworkflow项目的学习和实践,总结出的一套osworkflow工作流引擎的学习笔记,供需要使用osworkflow系统的同学们借鉴,谢谢!

    OSWorkflow-chinese-manual-2.8.rar_Java 8_manual_osworkflow_工作流

    《OSWorkflow 中文手册 2.8》是一个针对Java 8环境下的工作流管理系统OSWorkflow的详细指南,专为初学者设计,旨在帮助用户理解和掌握工作流的配置和实际操作。OSWorkflow是一款开源的工作流引擎,它允许开发者定义...

Global site tag (gtag.js) - Google Analytics