Workflow PostFunction
proxima:workflowPostFunction
模块可以创建一个工作流后处理功能。
通过函数配置后处理功能
Manifest 例子
modules:
proxima:workflowPostFunction:
- key: test-workflow-post-function
title: 工作流后处理函数
description: 工作流后处理函数
function: workflow-post-function
function:
- key: workflow-post-function
handler: workflow.runPostFunction
通过自定义UI界面配置后处理功能
可以在验证器中,通过自定义UI界面来配置后处理功能。需要配置以下三个页面:
- create: 在工作流的后处理功能创建时候的页面
- edit: 在工作流的后处理功能编辑时候的页面
- view: 在工作流的后处理功能显示的时候页面
在create和edit页面,需要通过handleWorkflowConfigChange
api来保存配置信息。
manifest例子
modules:
proxima:workflowPostFunction:
- key: my-workflow-post-function
title: 配置工作流流转验证器
description: 自定义工作流验证器
create:
route: /workflow-post-function-create
edit:
route: /workflow-post-function-edit
view:
route: /workflow-post-function-view
resource: main
loadType: Micro
resources:
- key: main
path: /dist
配置数据
通过handleWorkflowConfigChange
方法可以将配置数据记录到工作流当中
import { Input } from 'antd';
const WorkflowValidatorCreatePage = (props: any) => {
const { context } = props;
const handleWorkflowConfigChange = context?.modal?.handleWorkflowConfigChange;
const onChange = (key, value) => {
handleWorkflowConfigChange({ [key]: value });
};
return (
<div>
<div>label1:</div>
<Input onChange={e => onChange('name1', e.target.value)} />
<div>label2:</div>
<Input onChange={e => onChange('name2', e.target.value)} />
</div>
);
};
export default WorkflowValidatorCreatePage;
函数脚本
workflow.ts
// 入参如下
export interface PostFunctionPayload {
workflowId: string; // 工作流id
transition: string; // 流转的动作名称
currentState: string; // 当前状态名称
itemId: string; // 事项Id
}
export const runPostFunction = ({ payload } : { payload: PostFunctionPayload }) => {
const { workflowId, transition, currentState, itemId } = payload;
// do something
};