首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏木宛城主

    SharePoint 2013 实现多级审批工作

    审批工作介绍 这个Demo是基于多级审批工作。以古代上传奏折为场景,共分为3个阶段。 然后,我们预先设定,以文档库来作为我们的上报奏折库,所以我们需要为其设定自定义的多级审批工作。最后创建自定义的Task来存放待审批的任务。 创建多级审批工作 首先,我们可以创建多个审批Stage(阶段),每一阶段处理不同的流程,如下所示: ? 因为,我们工作最终目的是实现多级审批,即一级审批通过,交给二级审批人,依次审批下去。当审批拒绝时,工作结束,所示稍稍完善下上面的实现方式,具体流程如下实现: ? 测试工作 在文档库中上传一个奏折,将启动工作,如下截图所示即为3级审批工作审批流程日志: ? 小结 细心的朋友已经发现了,我没有去控制Task的权限,而是用了Filter来进行过滤。

    2.6K90发布于 2018-01-11
  • 来自专栏云开发

    用微搭低代码如何搭建审批

    9月 13日(周二)19:30—20:30,腾讯云微搭「实战低代码」系列直播专栏,第五期:用微搭低代码如何搭建审批。 本期直播活动,由微搭团队高级产品经理作为导师,带大家了解用微搭低代码如何搭建审批。 适用场景: 企业对外营销和企业内部协同办公场景,例如营销活动,打卡签到,企业官网,访客预约,疫情管理,审批流程,会议管理等。 微搭有何优势?

    2.3K10编辑于 2022-09-14
  • 来自专栏技术杂货店

    设计模式【15】--从审批中学习责任链模式

    (百度百科) 责任链模式是一种行为型设计模式,也就是重点是处理数据,假设我们有一份数据,需要经过很多个节点处理,那么就会是以下这个样子: 一个节点处理完之后,交给下一个节点,不知道大家有没有使用过审批 ,当我们提完一个审批单后,你的leader审批,leader审批通过之后就是总监批,总监后面可能是高级总监,或者cto,或者hr。 Director 审批来自[秦怀]的申请单[加薪申请]... Hr 审批来自[秦怀]的申请单[加薪申请]... 来自[秦怀]的申请单[加薪申请]审批不通过 秦怀哭了,加薪的审批被 hr 拒绝了。 动态代理源码解读 设计模式【4】-- 建造者模式 设计模式【5】-- 原型模式 设计模式【6.1】-- 初探适配器模式 设计模式【6.2】-- 再聊聊适配器模式 设计模式【7】-- 探索一下桥接模式 设计模式【8

    98710编辑于 2022-04-07
  • 来自专栏流程引擎

    【KPaaS洞察】企业如何快速搭建个性化审批

    审批作为企业运营的“血脉”,其流畅性直接影响到决策效率、资源分配乃至整体运营成本。 然而,面对日益复杂的业务需求,许多企业在搭建个性化审批时面临诸多挑战:系统割裂、数据孤岛、流程僵化、开发周期长等问题层出不胜。那么,企业究竟该如何快速、高效地搭建符合自身业务特点的个性化审批呢? 传统审批搭建的痛点与挑战在深入探讨解决方案之前,我们首先要理解传统审批搭建模式中常见的痛点:开发周期长,成本高昂: 从需求调研、系统设计、编码开发到测试上线,一个定制化的审批系统往往耗时数月甚至更久 如何利用BPMS快速搭建个性化审批?那么,具体该如何利用BPMS来快速搭建个性化审批呢?以下是一个通用的实施路径:需求梳理与流程设计在技术实施之前,清晰的业务需求是成功的基石。 通过平台可视化业务流程设计界面快速搭建了跨系统采购审批:采购员在ERP中提交采购申请单。平台自动从ERP获取单据信息,并根据金额大小和物品类别,将审批任务推送到财务系统的相关审批人。

    52221编辑于 2025-08-26
  • 来自专栏DotNet NB && CloudNative

    推荐一个开源的 .NET 工作引擎和审批项目

    Workflow Engine .NET 推荐一个 .NET 开发的工作引擎,开源免费,功能强大,项目还包含审批功能,内置了可视化的流程设计器,开箱即用,可以非常方便的集成到项目中。 什么是工作引擎? 工作引擎是一种软件系统,用于定义、执行和监控工作流程。它能够自动化和优化业务流程,使得任务在不同的参与者、系统和应用之间流动,从而提高效率和透明度。 工作引擎通常包括以下几个关键功能: 流程建模:允许用户通过图形化界面设计和定义工作流程,指定任务的顺序、条件和参与者。 任务分配:根据设定的规则,将任务分配给合适的人员或系统。 并行工作流程支持,将工作拆分为并发执行任务的分支。 本地化支持,可以很方便的将用户界面翻译成各种语言。 支持流程的多版本控制和升级 支持多种审批流程 支持多种数据库,包括 MS SQL、MongoDB、MySQL、Oracle、PostgreSQL、Redis。

    1.6K10编辑于 2024-11-26
  • 来自专栏23号杂货铺

    想做流程审批的开发?带你玩转Activity工作(一)

    现在的很多传统企业转型互联网,最多的“转型”工作之一,就是公司的流程审批模块,如何进行线上运行,实现降本增效。 最常见的场景,比如请假审批、报表审批、财务审批、人员招聘等等。 以招聘为例: ? 传统的实现,可能会考虑使用一种行为设计模式:责任链模式。这种方式针对于不同的业务,相对于开发效率而言,较为繁琐费时。 关于审批流程这样的应用场景开发,Activity工作引擎可作为一种不错的选择。 0 2 理解、使用 什么是工作引擎? 工作引擎最常见用于审批流程中,现在一线互联网公司也开始使用,并有快速推广的趋势,复杂繁多的业务流程如果采用if else实现那将是崩溃的,代码不可维护,业务流程在代码中可读性很差,所以高人设计了业务流程模型图示 BPMN2.0,我们要做到就是把业务场景抽象为标准流程图,把流程图丢到流程引擎中按流程定义约定逐步流转,很显然扩展性和业务可描述性会好很多,所以工作引擎主要用于解决复杂的业务,目前经常被提起的中台系统抽象业务为服务

    4.2K20发布于 2019-09-27
  • 来自专栏陶士涵的菜地

    RBAC权限与审批的简单数据库构想

    -------- |user_id | ----------------- |channel_id | ----------------- flow(流程设置表,频道对应的多级审批角色 checker_id | ----------------- |next_role_id | ----------------- |check_status | ----------------- 审批类似一个链表 审批设置表可以配置某个频道的审批层级

    74320发布于 2019-12-26
  • 来自专栏c#开发者

    Workflow Core + asp.net core 5.0 实现简单审批工作

    我们知道企业业务系统到处都可以审批工作的,但也很少有像OA系统一样复杂多级多条件的审批工作需要设计,所以我们需要一个轻量级的容易上手的workflow框架,通过GitHub,我发现danielgerlag /workflow-core 就非常合适,我下面我通过自己的一个开源项目利用Workflow core开发了一个文档审批工作的原型,也算是我开源项目中的一个重要模块 什么是Workflow Core 这里我简单的说一下我对工作的理解,一开始对工作的映像就是审批工作,一级批完二级,三级流转的审批,中间还有一些判断,比如金额>多少给什么批,而这些金额,判断逻辑最好是可配置化的,配置最好是图形化的, 新建一个审批工作 业务场景: A用户(neozhu@126.com)上传附件,发起一个新的workflow给B用户(new163@163.com)审批,如果5分钟内没有审批则系统自动取消该审批请求。 这里发起新的请求需要触发发邮件通知B用户有新的审批请求,B审批完成,需要发邮件通知A审批结果。

    6.6K40发布于 2021-09-07
  • 来自专栏研发效能EE

    DevOps | 产研协同效能提升之评审、审批、质量卡点

    研发过程中有各种需求的评审、审批和质量卡点,有的是为了质量把关,有的是为了彰显权力,还有一些是为了信息告知。 本文主要讨论在软件开发过程中涉及的评审、审批和质量卡点三种情况,同时探讨对研发流程的影响,在这过程中如何去提效。 而资源的占用和安全评估,对于产品和公司来说又是一个非常重要,不能忽视的问题,所以会形成审批。通常情况下不同团队间还主要是「评审」,而不是「审批」。这样做也助于团队协作,高效产出。 上下级之间的审批对于公司人力、行政、财务、法务、采购过程中流程,经常有上下级间的审批,但是对于产品-研发-测试-运营活动过程中,强制加入上下级的审批,如果上级领导的审批不能给这个流程增加价值,只是为了彰显手中的权力 对于各种各样的审批,除了合规、设计、安全等因素外尽量缩短,没有带来任何价值的审批节点能省则省,这样才能切实的提效。

    56710编辑于 2023-07-17
  • 来自专栏山山仙人的专栏

    DevOps建设之基于钉钉OA审批的自动化上线

    https://www.redhat.com/zh/topics/devops 1、概述 1.1 现有上线流程描述 随着DevOps在公司的不断实践落地,基于环境现状,目前已经发展成较为成熟和稳定的工作。 得益于容器以及k8s相关技术使得业务稳定性提高,基于Jenkins Pipeline流水线的任务构建及各类环境的部署发布也变得容易,Prod生产环境和Pre预生产环境的上线发版还是由测试或运维人员负责在平台进行点击和确认发布 由于对协作软件钉钉的“重度依赖”,加上内部运维相关平台中还没有成熟的审核上线机制,因此作为一个DevOps er,将钉钉OA审批与DevOps工作中的生产上线流程进行结合是我很想做的。 借助钉钉系统集成服务,企业可以打通钉钉审批与钉钉其他官方应用、SaaS应用以及企业内部应用,目前系统集成示例包含智能人事、用友U8、金蝶、SAP等。 ? 有了权限之后,申请OA高级版的试用,试用开通后,就能进入到钉钉OA后台创建连接器了 系统集成分为连接器和集成两种,两者相比后者能定制一些更为复杂的逻辑。

    2.7K21发布于 2021-03-19
  • 来自专栏salesforce零基础学习

    salesforce零基础学习(八十二)审批邮件获取最终审批人和审批意见

    项目中,审批操作无处不在。配置审批时,我们有时候会用到queue,related user设置当前步骤的审批人,审批人可以一个或者多个。 4.增加审批以及审批人对应的Queue,当Status是Pending Approval时,进入审批审批通过或者拒绝更新状态 ?   5.配置Account以及Main_Info_Update__c的trigger,实现相关的赋值以及自动进入审批操作 AccountTrigger:实现更新前对关键字段赋值以及更新后的创建更新申请数据以及自动提交审批审批中的final approve配置email alert即可。 ? 总结:此篇通过一个简单的审批的例子来展示出几种不同的方式获取审批审批意见信息的方法,使用email template的text/html/custom最为简单,如果需求的邮件可以使用这些方式实现,建议使用此种方式

    1.6K00发布于 2018-07-31
  • 来自专栏鱼的爱情看不出泪水

    使用OOS实现RAM权限审批授权及反授权的概念验证

    我们通常使用第三方软件或自研的方式来实现RAM账户的授权审批,但是我们如果担心第三方软件泄露,也担心自研安全性无法保证的话,有没有办法实现呢? 用户希望User A申请,User B审批通过后,授权User A特定策略(可以是自定义策略,也可以是系统策略)。然后等待一段时间后(例如1小时)用户操作已完成,自动反授权。 以下是参考文档: 使用OOS审批授权RAM用户(子账号)RAM权限 添加等待及反授权 根据上述文档复制一个OOS出来后,增加等待任务。 OOS审批会发URL给钉钉,钉钉机器人上只需要限定内容有”ali”即可。当然你可以在yaml内编辑内容。 相对于原版,我删除了at功能 FormatVersion: OOS-2019-06-01 Description: 审批通过后授权给创建执行的子用户 Parameters: policyType:

    21900编辑于 2025-07-03
  • 来自专栏salesforce零基础学习

    salesforce零基础学习(八十二)审批邮件获取最终审批人和审批意见

    项目中,审批操作无处不在。配置审批时,我们有时候会用到queue,related user设置当前步骤的审批人,审批人可以一个或者多个。 4.增加审批以及审批人对应的Queue,当Status是Pending Approval时,进入审批审批通过或者拒绝更新状态 ?   5.配置Account以及Main_Info_Update__c的trigger,实现相关的赋值以及自动进入审批操作 AccountTrigger:实现更新前对关键字段赋值以及更新后的创建更新申请数据以及自动提交审批审批中的final approve配置email alert即可。 ? 总结:此篇通过一个简单的审批的例子来展示出几种不同的方式获取审批审批意见信息的方法,使用email template的text/html/custom最为简单,如果需求的邮件可以使用这些方式实现,建议使用此种方式

    1.7K90发布于 2018-01-05
  • 来自专栏Java成神之路

    Java8_03_

    一、前言 这一节我们来看下Java8的又一新特性:。 本节主要包括以下内容: 的相关概念 使用 收集器 二、的相关概念 允许你以声明性方式处理数据集合,可以将其看成遍历数据集的高级迭代器。 可以透明地并行处理。 1. 数据处理操作 的数据处理功能支持类似于数据库的操作, 以及函数式编程语言中的常用操作, 1.2 特点 操作有两个重要的特点: 流水线 内部迭代 流水线 很多操作本身会返回一个, 这样多个操作就可以链接起来 例如, 以下代码会抛出一个异常, 说已被消费掉了: List< String> title = Arrays. asList(" Java8", "In", "Action"); Stream< String 三、使用 的使用一般包括三件事: 一个数据源(如集合)来执行一个查询 一个中间操作链,形成一条的流水线 一个终端操作,执行流水线并能生成结果 的流水线背后的理念类似于构建器模式。

    82720编辑于 2022-03-11
  • 来自专栏小小码农一个。

    Java8并行

    而 Java8 为我们提供了并行,可以一键开启并行模式。是不是很酷呢?让我们来看看。 并行 认识和开启并行 什么是并行:并行就是将一个的内容分成多个数据块,并用不同的线程分别处理每个不同数据块的。 当然也可以通过 stream.parallel() 将普通流转换成并行。并行也能通过 sequential() 方法转换为顺序。 并行可以随便用吗? 对于较少的数据量,不建议使用并行 容易拆分成块的数据,建议使用并行 以下是一些常见的集合框架对应的可拆分性能表 以下是一些常见的集合框架对应的可拆分性能表:

    93330发布于 2020-12-18
  • 来自专栏Java旅途

    Java8——Stream

    = new ArrayList<>(); 4 Stream<String> stringStream = list.stream(); 5} 通过Arrays中的静态方法stream()获取数组。 若不足n个,则返回一个空。 ) 12 .map(Person::getName) 13 .forEach(System.out::println); 14} flatMap——接收一个函数作为参数,将中的每个值都换成另一个 ,然后把所有生成一个。 .findFirst(); 9 System.out.println(b.get()); 10} findAny——返回当前中的任意元素 1@Test 2void test15(){ 3

    64620发布于 2020-07-16
  • 来自专栏网站建设、网站制作专栏

    C#8:异步

    所以说这样不是很理想,最理想的办法是使用C#的异步编程模型,但是在C# 8之前,这是做不到的。但是从C# 8开始,我们就可以这样做了。 Asynchronous Streams 异步 首先修改NumberFactory,在Task.Delay(1000)前边加上await关键字来代替.Wait()方法,然后再修改返回类型为IAsyncEnumberable <int>,并在前面添加async关键字: 回到Main方法,需要做出两个修改: 首先,就是在foreach循环前面加上await关键字,这看起来比较奇怪,但这就是我们遍历异步的方式。 在这里是异步的,当它await任务的时候,该线程是可以去做其它工作的。而当程序继续执行的时候,它确实可能结束于其它的线程。

    72710发布于 2019-11-04
  • 来自专栏JAVA

    Java 8 Stream 操作

    《Java 8 Stream 操作》 摘要 在这篇博文中,我们将深入探索Java 8的Stream API,这是一项革命性的特性,极大地改善了数据集合的处理方式。 引言 Java 8标志着Java历史上的一个重要进展,其中Stream API的引入无疑是亮点之一。 ,它会处理并产生结果。 总结 Java 8的Stream API不仅为Java开发者提供了一个强大的工具,以更简洁、更函数式的方式处理数据集合,还大幅度提高了程序的性能和可读性。 通过深入探索和扩展每个点,本文全面解析了Java 8的Stream API,旨在提供一个全方位的指南,帮助开发者更好地理解和应用这一强大的功能。

    31210编辑于 2024-11-20
  • 来自专栏余林丰

    Java8 Stream

    第三章 Stream 关注公众号(CoderBuff)回复“stream”获取《Java8 Stream编码实战》PDF完整版。 对于初学者,必须要声明一点的是,Java8中的Stream尽管被称作为“”,但它和文件、字符、字节流完全没有任何关系。Stream使程序员得以站在更高的抽象层次上对集合进行操作[1]。 也就是说Java8中新引入的Stream是针对集合的操作。 3.1 迭代 我们在使用集合时,最常用的就是迭代。 掌握集合创建就足够了。 第三个参数在这里的确没有用,这是因为我们目前所使用的Stream是串行操作,它在并行Stream中发挥的是多路合并的作用,在下一章会继续介绍并行Stream,这里就不再多做介绍。

    1.6K10发布于 2020-03-25
  • 来自专栏Java旅途

    Java8——Stream

    list = new ArrayList<>(); Stream<String> stringStream = list.stream(); } 通过Arrays中的静态方法stream()获取数组。 若不足n个,则返回一个空。 personList.stream() .map(Person::getName) .forEach(System.out::println); } flatMap——接收一个函数作为参数,将中的每个值都换成另一个 ,然后把所有生成一个。 * reduce 第一个参数是起始值 */ @Test void test16(){ List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9,10

    61241发布于 2020-07-14
领券