全部文档
文档中心工作流1. 快速入门第 3 步:搭建合同审批 UX

第 3 步:搭建合同审批 UX

使用已建好的合同领域模型和审批工作流,创建合同清单与审批详情两个页面。

在应用【元素管理】中新建 UX:

  • 编码:DEMO_QS_ContractApproval_Start。

  • 名称:合同清单与发起。

添加【领域模型】数据源,选择 DEMO_QS_ContractApproval_Contract。添加合同清单表格并绑定此数据源,展示合同编号、合同名称、合同金额、核准金额和合同状态。

启用新增行和保存。合同编号、名称、金额为必填;核准金额和合同状态在清单中只读,状态列使用枚举名称显示。新增合同保存后应为“草稿”。

在表格行操作中添加“发起审批”按钮,点击事件执行【发起流程】,选择工作流 DEMO_QS_ContractApproval,发起方式为【单次发起】。

启动参数

赋值类型

选择的值

contract_id

更多 → 表格点击行的控件值

合同清单的合同编号

amount

更多 → 表格点击行的控件值

合同清单的合同金额

发起审批按钮的流程和启动参数配置

两项均取用户点击的那一行。先保存合同,再点击“发起审批”;发起后刷新清单以显示最新状态。若改用独立表单和按钮,应按“校验 → 保存成功 → 发起流程”配置,保存失败时中断。

仅已保存且处于“草稿”或“已拒绝”、具有 contract_state 动作权限的合同可发起。“审批中”“已通过”、无权限或尚未取得权限结果时,按钮不可用。

领域模型在行数据中返回 _allow_data_contract_state。按钮【禁用】属性使用以下组合判断:

Copy
!($context.data.currentRow
  && $context.data.currentRow.contract_id
  && ($context.data.currentRow.approval_result === 'draft'
      || $context.data.currentRow.approval_result === 'reject')
  && $context.data.currentRow._allow_data_contract_state === true)

“发起流程”动作的【执行条件】使用相反条件:将最外层的 ! 改为 !!,条件不成立时选择【打断】并提示原因。

人员范围沿用领域模型的访问策略,不额外限制创建人或用户组。未启用访问策略时,动作权限默认允许。页面条件用于控制入口,后端状态迁移仍须通过状态规则和已启用的访问策略校验;重复发起由工作流业务键检查。

新建 UX,编码为 DEMO_QS_ContractApproval_Detail,名称为“合同审批详情”。在【页面变量】中添加以下变量,来源均选择【外部】:

变量编码

类型

用途

contract

字符串

查询合同的业务主键

task

字符串

定位待处理任务

proc

字符串

查询流程记录和流程图

添加同一个合同领域模型作为数据源。合同表单的主键查询条件选择【UX变量 → contract】。

合同表单按外部变量查询业务主键

控件或字段

配置

合同编号、名称、金额

绑定对应合同字段,只读

核准金额

数值条,绑定 approved_amount,必填

合同状态

绑定 approval_result,枚举只读,显示状态名称

任务处理

任务实例 ID 选择【UX变量 → task】

流程记录

流程实例 ID 选择【UX变量 → proc】

流程图

流程实例 ID 选择【UX变量 → proc】

合同金额直接从领域模型查询,不需要额外声明金额外部变量。“同意、拒绝”按钮由工作流任务动作生成,无须在 UX 中另建审批按钮。

在【任务处理 → 完成任务所需参数】中新增参数:

参数名

赋值类型

选择的值

approved_amount

控件值

核准金额数值条

左侧为三个外部变量;右侧任务实例 ID 取 task,核准金额取页面控件值。

审批页外部变量、任务实例和核准金额回传

选中【任务处理】控件,打开右侧【事件 → 完成任务前】,添加【提交表单】动作:

配置项

选择的值

表单

合同审批详情(contract_form)

数据源

合同(contract_data)

完成任务前提交合同表单的配置

本例运行条件留空。图中的“运行条件未满足时”设置不控制表单校验或保存失败。

【提交表单】会先校验表单必填项,再保存核准金额。校验或保存失败时,任务不会完成,无须另配“失败打断”开关。

完成任务参数先取值,再执行“完成任务前”事件,因此金额直接取页面数值条,不依赖保存完成后才生成的值。工作流已在上一步把该参数映射到全局变量 approved_amount,把操作结果映射到 approval_result。

核准金额由 UX 表单保存,合同状态由工作流状态迁移更新。把金额回传到流程变量,不等于已保存到合同数据。

保存两个 UX。继续第 4 步:发布并验证合同审批,关联待办跳转并走完一次审批。

回到顶部

咨询热线

400-821-9199