zoukankan      html  css  js  c++  java
  • K2 blackpearl 中的业务规则(Rules)

    在K2流程系统中,流程中的任何一个执行节点(一个节点可以包含多个事件)都可能包含客户端事件,服务器端事件,以及子流程(IPC,Inter Process Communication)事件,或者其他事件。通常情况下,我们需要在流程节点中包含大量的业务逻辑,比如:流程节点的执行者是谁?在执行者启动流程节点任务之前哪些前提条件必须要满足,等等。流程节点是流程中的关键元素,任务执行者在流程节点做出审批、输入数据或者提取数据。
    为了实现各种复杂的业务逻辑,K2提供了以下的业务规则:
    1. Preceding Rule(前置规则)
    Preceding Rule是一种逻辑表达式,当表达式为真时,一个流程节点才可以开始执行。换句话说:什么条件为真的情况下,流程任务才可以产生。K2提供了And,Or和Xor等3种逻辑判断符,能够实现逻辑组合。

    2. Start Rule(开始规则)
    Start Rule是一个时间规则,代表一个流程任务什么时候开始。比如,可以在流程发起后等待2小时再开始这个流程任务,或者当某个流程变量为真的情况下,再等待2小时开始流程任务。

    3. Destination Rule(执行人规则)
    用于指定谁来执行任务。默认情况下,K2的用户信息来自于Active Directory,因此,它可以非常方便地将任务提交给用户的Manager。如果有多个可能的任务执行者,我们可以先把所有可能的执行者添加到Destination Rule中,然后对每个Rule设定条件,比如:当A为真,发送给Originator的Manager,当B为真,发送给GeneralManager;或者可以预先定义一个Destination Queue,把这个Destination Queue直接指定任务执行者。

    4. Escalation Rule(过期规则)
    如果希望某些任务必须在一定时间内完成,比如8小时,如果超过8小时任务依然没有被执行,我们必须执行一定的操作(比如:强制本任务过期,或者强制本任务过期并且将流程流转到某一个流程节点,等等),这样的情形下,我们就可以定义任务的过期规则。过期规则用于指定什么时候和如何执行这样的操作。

    5. Succeeding Rule(后置规则)
    Succeeding Rule是一个逻辑表达式,当它为真时,某个流程节点才可以完成。换句话说就是:什么情况下流程节点才可以结束。比如:有一个审批任务,需要同时发给5个部门经理作审批,我们希望:只要他们中的一个不同意,流程就执行下一步操作(否决后的操作);至少有3个部门经理同意,流程就流转到下一步操作(同意后的操作)。这是K2一个非常好的规则,因为每个部门经理的审批意见都会保存在各自的Slot中,流程中的变量值不会互相覆盖,这样就可以非常方便地查询各个经理的审批意见,而不需要为每个经理都定义变量。K2提供了And,Or和Xor等3种逻辑判断符,能够实现逻辑组合。

    欢迎大家扫描下面二维码成为我的客户,为你服务和上云

  • 相关阅读:
    Longest Palindromic Substring
    PayPal MLSE job description
    Continuous Median
    Remove Duplicates From Linked List
    Valid IP Address
    Longest substring without duplication
    Largest range
    Subarray sort
    Multi String Search
    Suffix Trie Construction
  • 原文地址:https://www.cnblogs.com/shanyou/p/1625477.html
Copyright © 2011-2022 走看看