能力类型索引与选型
本文按能力类型整理 BPMAX 插件的常见开发方向,帮助你根据目标快速选择合适的实现方式。
使用方式
- 先按目标选择能力类型
- 再查看这一类能力涉及的前端和后端扩展点
- 最后决定是否需要 Hook、定时任务或第三方集成
能力类型总表
| 能力类型 | 典型目标 | 前端扩展点 | 后端扩展点 | Hook | 定时任务 | 适合阶段 |
|---|---|---|---|---|---|---|
| 最小页面型 | 增加独立页面 | 路由 | 简单接口 | 否 | 否 | 入门 |
| UI 插槽型 | 给现有页面增加按钮或区块 | UI 插槽 | 轻量接口 | 可选 | 否 | 入门 |
| 流程配置型 | 给流程或环节增加配置能力 | 流程配置组件 | 服务逻辑 | 可选 | 否 | 进阶 |
| 任务集成型 | 对接第三方任务或消息系统 | 流程配置、页面 | 第三方调用 | 可选 | 可选 | 进阶 |
| 批处理型 | 周期执行批量任务 | 可选页面 | 批处理服务 | 可选 | 是 | 进阶 |
| 事件驱动型 | 监听平台事件并执行附加逻辑 | 可选页面 | Hook 服务 | 是 | 可选 | 高级 |
| 组织同步型 | 同步组织、用户、团队信息 | UI 插槽、页面 | Hook、同步服务 | 是 | 可选 | 高级 |
| 资源上报型 | 上报指标和资源消耗 | 可选页面 | 队列、重试、上报服务 | 否 | 是 | 高级 |
按需求选型
我只想做一个新页面
选择“最小页面型”。
最小页面型通常从这段代码开始:
BPMAX.router.addRoute({
path: '/plugin/hello-demo',
component: HelloPage,
});我想给平台页面插一个按钮或配置块
选择“UI 插槽型”。
典型代码如下:
BPMAX.ui.register('Slot.Table.RowActions', TaskActionButton);我想给流程编辑器增加配置项
选择“流程配置型”。
典型代码如下:
BPMAX.flow.stepComponent({
field: 'plugin_task_integration',
component: TaskStepConfig,
defaultValue: {
enabled: false,
platform_id: '',
mapping_function: '',
},
});我想对接外部系统接口
优先在“任务集成型”与“自定义鉴权型能力”之间判断。
如果重点是鉴权链路,优先看 外部系统集成模式 中的“自定义鉴权插件”。
我想做定时任务或批处理插件
选择“批处理型”或“资源上报型”。
最小任务配置示例:
export default {
reportJob: {
cron: '0 */15 * * * *',
enable: true,
handle: '/api/plugin_example/job/report',
},
};我想做事件驱动或组织同步类插件
选择“事件驱动型”或“组织同步型”。
Hook 型入口示例:
think.addPluginHook('workflow.step.active', async function (context) {
await think.service('plugin_example_hook').handleStepActive(context);
return context;
});按复杂度选型
入门案例
- 最小页面型
- UI 插槽型
中等复杂度案例
- 流程配置型
- 任务集成型
- 批处理型
高复杂度案例
- 事件驱动型
- 组织同步型
- 资源上报型
