首页 > 编程知识 正文

java工作流workflow(stateflow逻辑系统建模)

时间:2023-05-05 20:10:13 阅读:73009 作者:4084

什么是工作流? 工作流(Workflow )是工作流及其各操作步骤之间业务规则的抽象、摘要和描述。

BPM )是业务流程管理的英语缩写。 也就是说,业务流程管理是实现企业各种业务流程集成的全面管理模式。

工作流软件顾名思义,就是业务信息数据在多个环节模块之间移动。

企业内部业务种类非常多,变化也非常多。 业务变化非常多,但过程控制基本不变。 常用的工作流或“进程”是控制进程流程的核心引擎。

常见的工作流开发框架如下。

windowsworkflowfoundationwindowsworkflowfoundation (以下简称WWF )包括文档管理、重复性业务APP应用程序、交易文档处理、IT管理、B2B APP应用程序、消费者APP应用程序等

windowsworkflowfoundation (wf )是微软工作流基础架构的组件。 这是DotNet Framework提供的基于模型或基于声明的流程执行引擎。

WF是由dot net框架3.0发布的。 应用于微软的Sharepoint技术。

WF有三个核心组件。

活动框架工作流活动运行时环境工作流设计器打开第一个工作流项目1,VS以创建新解决方案,然后在解决方案中创建名为WorkflowConsoleApp的项目—— www

2、添加视图——工具箱、WriteLine基本体

WriteLine Activity :用于输出字符串。

添加另一个WriteLine基元

这两个基本体将自动包装在一个序列容器中,执行顺序从上到下。 当然,也可以添加Sequence数组容器,然后向此容器中添加基元。

序列工作流序列工作流是指按顺序执行序列工作流容器中的所有操作。 序列容器sequence:system.activities.dll中定义的类型,继承NativeActivity为sealed类。

1.[Activities]可以存储集合、Activity

2 .“活动”集合中的活动从上到下按顺序运行

3 .“变量”集合用于存储变量

3、看看Program.cs的代码吧。

活动工作流1=新工作流1 (; 工作流invoker.invoke (工作流1 ); 这里是工作流的启动方法。 WorkflowInvoker包含同步调用工作流的实例和静态方法。

为了更好地查看执行结果,添加以下代码。

控制台. readline (; 4、按F5开车

WF入门活动

活动是WF中最基本的概念,在提到活动时,通常指以下两个概念:

活动类别。 工作流中任何Activity派生类的总称。 活动是流程的步骤,如下图所示

工作流工作流工作流是使工作节点按照流程图中规定的顺序流动的工作流。

流程图工作流和顺序工作流的区别。 序列工作流只能从上到下执行,但流程图工作流可以按流程图中指定的顺序执行流。

在此创建新的财务审批流程。

1、新活动

右键单击项目WorkflowConsoleApp,添加“新建项目”,然后选择名为MoneyApproveActivity.xaml的活动

2、增加流程

将名称更改为“财务审批流程”。

3、添加两个WriteLine基元

4、添加代码活动

代码活动代码活动WF4.0提供了许多活动,但可能无法执行某些功能,如向数据库添加数据、发送电子邮件等。 要实现这些特定功能,必须使用C#等编程语言。 如果需要这样的功能,可以使用代码活动。 这是一个抽象类,继承类后,必须对该类的Execute方法进行override。 要编写自定义功能代码,请右键单击项目WorkflowConsoleApp,添加“新建项”,选择“代码活动”,然后将其命名为InputM

oneyCodeActivity.cs

这个时候,我们看见默认的代码如下:

public sealed class InputMoneyCodeActivity : CodeActivity { // 定义一个字符串类型的活动输入参数 public InArgument<string> Text { get; set; } // 如果活动返回值,则从 CodeActivity<TResult> // 派生并从 Execute 方法返回该值。 protected override void Execute(CodeActivityContext context) { // 获取 Text 输入参数的运行时值 string text = context.GetValue(this.Text); }}

这里,我需要修改一下代码,因为我要的并不是输入参数,而是要输出一个金额给到当前这个流程,然后再根据这个金额的大小来判断流程的走向。

工作流中的数据的传递 Variable变量:跟C#一样可以再整个工作流或者是其中的一个Activity中添加一个变量。可以通过可视化的控制:变量的类型、作用域、默认值等 。Assign 赋值。可以对流程内定义的参数,变量赋值。Arguments 参数:Activity中传入的参数或者是传出的参数。

  In参数:System.Activities.InArgument<T>传入参数,可以在流程启动的时候传入参数的值。只能用于数据传入流程节点内部。

  Out参数:System.Activities.OutArgument<T>。用于将流程节点内部的数据传递到外部的变量或者其他流程的传入参数。

  In/Out参数:System.Activities.InOutArgument<T>。即用于传入也用于传出。

5、  修改代码如下:

public sealed class InputMoneyCodeActivity : CodeActivity { // 定义一个字符串类型的活动输入参数 //public InArgument<string> Text { get; set; } //定义一个Int类型的输出参数 public OutArgument<int> Money { get; set; } // 如果活动返回值,则从 CodeActivity<TResult> // 派生并从 Execute 方法返回该值。 protected override void Execute(CodeActivityContext context) { // 获取 Text 输入参数的运行时值 //string text = context.GetValue(this.Text); int money; var v = Console.ReadLine(); int.TryParse(v,out money); context.SetValue(Money, money); } }

6、  生成项目WorkflowConsoleApp

7、  回到MoneyApproveActivity.xaml页面

会发现工具箱中多了一个组件InputMoneyCodeActivity,将其拖放到MoneyApproveActivity.xaml界面中。

8、  重命名,双击InputMoneyCodeActivity组件,修改名称为“获取输入金额”。

9、添加变量,用于接收InputMoneyCodeActivity代码活动中的输出参数的值,这样在整个流程中才能够访问到这个接收的金额。

右键单击活动代码“获取输入金额”,选择“属性”,将Money的值赋值给全局变量GetMoney。

10、 添加WriteLine基元,流转到“经理审批”

11、添加条件分支

添加条件,让500作为一个判断条件,分为大于500为True和小于等于500为False。

12、添加两个WriteLine基元,当条件为True和False各执行一个基元。

13、  将MoneyApproveActivity活动设为启动项。

修改Program代码如下:

//Activity workflow1 = new Workflow1(); Activity workflow1 = new MoneyApproveActivity(); WorkflowInvoker.Invoke(workflow1); Console.ReadLine();

14、运行结果如下:

源码下载地址:WorkflowConsoleApp.zip

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。