保持工作

保持工作工具是一种处理器,提供了各种基于时间的架构,以保持和解除工作,并将工作分配到多个输出连接中。

注: 设计流程时,请勿在保持工作元素之前使用带网络路径的文件夹。

关键字

可将关键字与元素窗格上方的搜索功能配合使用。

保持工作元素的关键词有:

连接

保持工作允许任何数量的输出移动连接并为这些连接提供额外的属性。

属性

属性

描述

名称

画布中显示的流程元素名称

描述

画布中显示的流程元素描述。将光标悬停在流程元素上方时出现的工具提示中也会显示此描述

工作优先级

指定每项传入工作的优先级;先释放具有较高优先级的工作;数字越大,优先级越高

默认值表示:使用作业单中定义的工作优先级

该属性的值转换为一个浮点数;布尔值"真"和通常代表真的字符串值转换为 1,布尔值"假"和任何不代表数字或真的字符串转换为 0

延迟架构

在下拉菜单中选择"延迟"、"释放条件"或"无",定义需要的延迟架构类型。

延迟:若选择"延迟",工作将延迟一段时间(下级属性中指定),即工作在输入文件夹内至少要存在指定的时间(下级属性中指定)后才能成为符合释放条件的工作。

释放条件:若选择"释放条件",工作仅在释放条件计算为真(即满足下级属性中设置的条件)时才可被释放。

之后重试(若延迟架构设置为释放条件)或

单位(若延迟架构设置为延迟条件)

选择延迟时间的单位:秒、分钟、小时、天
重试单位(若延迟架构为设置释放条件)或

延迟(若延迟架构设置为延迟条件)

工作以之前属性指示的单位延迟。

您可使用弹出菜单中的定义含变量的单行文本或定义脚本表达式对话框设置域值

释放条件

指定了释放工作前应被计算为真的条件。

您可使用弹出菜单中的定义含变量的条件或定义脚本表达式对话框来设置属性值(允许您使用 Switch 变量、元数据、数据库或脚本表达式中的值)。

释放条件基于 N 单位重复执行。例如:若延迟设置为 5 分钟,则每 5 分钟被检查一次释放条件

输出顺序

决定输出连接接收工作的顺序(存在一个以上工作时有效):

  • 循环:永远以循环顺序接收

  • 随机:以伪随机顺序接收

输出连接属性

除基本连接属性外,输出连接还提供以下属性。

属性

描述

连接优先级

此连接的优先级;数字越大,优先级越高;在任何时间,只有具有最高优先级符合条件的连接才接收工作

文件夹限制

若设置为是,只有符合(在下级属性中指定的)目标文件夹的某些限制时,此连接才有资格接收工作

最多工作数量

添加工作后,只要其目标文件夹中没有超过此工作数,此连接就将接收工作;零表示此限制被禁用

最大文件计数

添加工作后,只要其目标文件夹中没有超过此工作数,此连接就将接收文件;零表示此限制被禁用

最大文件夹尺寸(MB)

添加工作后,只要其目标文件夹的大小没有超过此限制,此连接就接收工作;零表示此限制被禁用

目标文件夹

必须检查工作数量和/或大小的文件夹的绝对路径;默认为连接的目标文件夹
注: 工作到达保持工作工具时,Switch 检查目标文件夹。在保持工作工具和目标文件夹之间的工作不受此约束限制。为确保无工作位于保持工作工具和目标文件夹之间,用特定时间段分隔开工作。

时间-日窗口

若设置为是,仅在一天的某一时间(由相应属性指定)内此连接才有资格接收工作

允许从(小时:分钟)

在时间-天窗口的时间内接收工作;数值的结构是"小时:分钟",表示 24 小时制某一天的时间;空值表示午夜;两个相同的数值表示此连接始终有资格

允许到(小时:分钟)

日-周窗口

若设置为是,仅在一周的某一天(在下级属性中指定)内此连接才有资格接收工作

允许从

每周接收工作的天数(星期一、星期二、星期三、星期四、星期五、星期六及星期日);两个相同的值表示工具只在指定的那天有资格

允许到

天-月窗口

若设置为是,仅在一个月的某一天(在下级属性中指定)内此连接才有资格接收工作

在此月的这天中接收工作,数字在 [1 ..31] 范围内;默认值 1 表示这个月的第一天或最后一天(视以下属性而定)

相对于

决定这个月的这一天对应"月初"还是"月末"

工作分隔空格

若设置为是,通过此连接的工作移动是用(在下级属性中指定的)最短时间分隔开的;例如,此连接接收工作后,此连接只能在指定的时间过后才有资格接收其他工作

单位 选择后续属性的单位:秒、分钟、小时、天
延迟 间距以之前属性指示的单位延迟

排定算法

每当新工作到达时,排定算法以特定周期执行:

  1. 设置 J,一组有资格的工作,将所有完全到达且已等待了指定延迟时间的传入工作(如有的话)包括在内。

  2. 当 J 为空时,无工作被移动——终止。

  3. 基于优先级(高的优先级排前面)排序 J 中的工作,同样优先级则考虑到到达时间戳(到达时间戳早的排前面)。

  4. J 中的每个排好序的工作会执行以下步骤:

    1. 将 A 作为一组输出连接。

    2. 设置 B 为 A 的子集,包括在此时可接收工作的连接(即不被挂起且没有违反任何约束的连接)。

    3. 若 B 为空,此时工作不能被移动——跳到下一个工作。

    4. 设置 C 为 B 的子集,包括所有 B 中所有最高优先级的连接。基于定义,所有 C 中的连接都有同样的优先级,且 C 不为空。

    5. 根据选择的算法(循环或随机)选择 C 中任一连接。

    6. 沿此连接移动工作。