触发器

触发器可以触发某个特定的流程的执行。

在无人值守的流程中,触发器可以由网络事件触发,如收到某个邮件,检测到某个上传文件,或者应用程序弹出某个窗口等。 有人值守流程中,除了以上可能的触发条件外,触发器还可以由用户事件触发,如菜单点击、热键等,然后在人工监督下运行。

根据触发流程运行的方式不同,有以下几种触发器:

你可以定义好流程的触发器。当流程执行时,会等待这些触发器的执行,触发条件满足时,会执行相应的函数或流程。

菜单项触发器

菜单触发器创建后,会在浮动图标的右键菜单上创建菜单项。用户点击菜单项后,相应的函数被执行。菜单触发器通过registerMenuTrigger创建。它有如下的函数签名:

registerMenuTrigger({
    label: '导入数据',
    accelerator: 'CmdOrCtrl+I',
    click() {
        //TODO:执行导入操作
    }
}): () => void

例如下面的操作注册了一个"导入数据"的流程,点击它或按"Ctrl-i"快捷键会导入触发导入数据的流程:


registerMenuTrigger({
    label: '导入数据',
    accelerator: 'CmdOrCtrl+I',
    click() {
        //TODO:执行导入操作
    }
})

它的返回值是一个方法,相当于dispose操作,调用它可以从菜单中释放这个注册的菜单。

如需要一次性注册多个菜单,可以传入菜单定义的数组。可以用 { type: 'separator' }加入分隔符,分隔不同的菜单分组。

下面是样例:


registerMenuTrigger([
    {
        label: '导入数据',
        accelerator: 'CmdOrCtrl+I',
        click() {
            //TODO:执行导入操作
        }
    },
    { type: 'separator' },
    {
        label: '停止流程数据',
        accelerator: 'CmdOrCtrl+I',
        click() {
            //TODO:执行退出操作
        }
    }
]);

热键触发器

注册全局热键

例如:

    registerHotkeyTrigger('CmdOrCtrl+Shift+C', () => {

    })

自定义触发器

如果有自定义的触发条件,例如收到一个邮件,或者是某个特定的对话框出现,你可以注册自定义触发器

registerCustomTrigger(conditionFunc(), callback());

results matching ""

    No results matching ""