golang语言的办公工作流的包

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/details/78822774

https://github.com/js-ojus/flow

工作流——这个概念似乎有点重复,有些讲的的是程序内部的流程,有些讲的是办公工作流。

如果是后者,那么上述那个是不错的基础。

当然,我的meritms可以借鉴。

有道翻译的结果:

状态 流量正在缓慢地向释放,但是还不能使用! 流动 flow是一个很小的开源(Apache 2许可的)工作流引擎(golang)。 流是什么 作为一个工作流引擎,flow打算帮助定义和驱动“front office”<——>“后台”文档流。这种流动的例子有: 客户登记及核实详情, 分配给现场人员的工作及其后续工作, 审核和批准文件 故障单的生命周期。 flow在类型为“大型编程”的场景中提供了价值,尽管它在本质上并不是(目前)分布的。因此,它只处理编排,而不是编排! flow——至少目前是这样——只支持图形化的机制(而不是层次化的)。 流的不是 flow是一个库,而不是一个完整的解决方案。因此,它不能被下载并部署为一个重新使用的服务。它必须由程序工作流定义和处理的应用程序使用。唯一的“小”语言支持是Go !当然,您可以在微服务体系结构中使用流,将其封装在一个瘦服务中。这可以使您使用您最喜欢的编程语言来驱动流程。 表达非目标 心流是小的!它显然不打算成为企业级的工作流引擎。因此,不支持从-导出到工作流建模格式,如BPMN / XPDL。同样,不支持像BPEL和wf - xml这样的可执行规范。真正的企业级引擎已经存在,用于解决复杂的工作流和互操作性,就像需要高端引擎一样。 流的概念 让我们熟悉最重要的概念和流动的部分。在阅读下面的内容时,强烈建议您在sql目录中读取数据库表定义,并在各自的*中读取相应的对象定义。文件。这可以帮助你更快地形成一种思维模式。 用户 流既不创建也不管理用户。它假定外部身份提供者负责用户管理。同样,流不处理用户身份验证,也不管理任务的授权,而不是流(pun打算)。 因此,流中的用户只能通过其惟一的id、名称和惟一的电子邮件地址来表示。身份提供程序还必须提供用户的状态:active和inactive。 团体 流,类似于大多数unix,隐式地为每个定义的用户创建一个组。这是一个单例组:它的惟一成员是对应的用户。 此外,可以通过将一个或多个用户作为成员来定义任意一般(非单例)组。用户与组之间的关系为M:N。 角色 允许给定文档类型的文档操作集,可以分组到角色中。例如,有些用户应该能够提出请求,但不能批准。另一些人应该能够批准或拒绝它。角色可以方便地对逻辑相关的权限集进行分组。 有关更多细节,请参见文档类型和文档操作。 访问上下文 访问上下文是一个名称空间,它定义授予用户和组的权限的权限。此类司法管辖区的例子包括部门、分行、成本中心和项目。 在访问环境中,给定的用户(尽管关联的单例组)或组可以分配一个或多个角色。在此访问上下文中,用户可获得的有效权限集是通过所有分配给该用户的所有角色授予的权限的联合,包括用户所包含的所有组。 文档类型 每一种文档都有一个独特的DocType,它由消费应用程序定义。文档类型是流程中的核心概念之一。它们作为其他几种实体的名称空间。 文档类型只是一个字符串。flow不会假定任何文档类型的细节。尽管如此,仍然强烈推荐在分级名称空间系统中定义文档类型。例如: PUR:询价表 这可能意味着部门是‘采购’,而文档类型是‘请求报价’。作为一个变种, PUR:奥德 可能意味着文档类型是“Purchase Order”。 文档状态 每一份文件都有不同的阶段。文档生命中可能的阶段被编码为一组特定于文档类型的DocStates。 文档状态只是一个字符串。flow不会假定任何文档状态的细节。 文档操作 给定一个特定状态下的文档,文档中的每一个合法行为都可能导致一个新的状态。DocActions枚举影响文档的可能操作。 文档操作只是一个字符串。流程并没有假定任何事情的细节

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PPV课数据科学社区

【学习】深度解析LinkedIn大数据平台(一)

我在六年前的一个令人兴奋的时刻加入到LinkedIn公司。从那个时候开始我们就破解单一的、集中式数据库的限制,并且启动到特殊的分布式系统套件的转换。这是一件令人...

3644
来自专栏JavaEdge

分布式MySQL集群方案

1.7K6
来自专栏java一日一条

测试代码时你会犯的 11 个错误

我遇到的大多数开发人员都不怎么热衷于测试。有些会去做测试,但大多数都不测试,不愿意测试,或者勉而为之。我喜欢测试,并且比起编写新的代码,愉快地花更多的时间在测试...

732
来自专栏Golang语言社区

Golang适合高并发场景的原因分析

典型的两个现实案例: 我们先看两个用Go做消息推送的案例实际处理能力。 360消息推送的数据: 16台机器,标配:24个硬件线程,64GB内存 Linux K...

5477
来自专栏Python中文社区

Python爬取网易云音乐热门评论

專 欄 ❈王雨城,Python中文社区专栏作者 博客: http://www.jianshu.com/u/88ff70818bd1 ❈ ? 分析api 我们首...

24610
来自专栏C/C++基础

C/C++代码调试的几点建议

代码调试在程序开发阶段占有举足轻重的地位,可见代码调试的重要性。但是有一点必须强调:程序是设计出来的,而不是调试出来的。这是所有程序员必须牢记在心的一条准则。一...

871
来自专栏Golang语言社区

系统架构-基础篇-(高性能基础建设说明与选型条件)

本文牵扯的面积可能会比较泛,或者说比较大,在这个层面很多人也有自己的见解,所以我这也仅仅是抛砖引玉,结合前面讲述的一些基础技术,从思想中阐述更为深入的架构思想基...

3615
来自专栏PhpZendo

事件驱动架构设计

这篇文章是 软件架构演进 一个有关 软件架构 系列文章中的一篇。这些文章,主要是我学习软件架构、对软件架构的思考及使用方法的记录。相比于这个系列的前几篇文章,本...

6872
来自专栏星流全栈

dva - React + Redux, but like elm

1454
来自专栏PingCAP的专栏

捕获和增强原生系统的可观测性来发现错误

在对 TiDB 进行 Chaos 实践的时候,我一直在思考如何更好的发现 TiDB 整个系统的故障。最开始,我们参考的就是 Chaos Engineering ...

830

扫码关注云+社区

领取腾讯云代金券