使用已建好的合同领域模型和审批工作流,创建合同清单与审批详情两个页面。
在应用【元素管理】中新建 UX:
编码:DEMO_QS_ContractApproval_Start。
名称:合同清单与发起。
添加【领域模型】数据源,选择 DEMO_QS_ContractApproval_Contract。添加合同清单表格并绑定此数据源,展示合同编号、合同名称、合同金额、核准金额和合同状态。
启用新增行和保存。合同编号、名称、金额为必填;核准金额和合同状态在清单中只读,状态列使用枚举名称显示。新增合同保存后应为“草稿”。
在表格行操作中添加“发起审批”按钮,点击事件执行【发起流程】,选择工作流 DEMO_QS_ContractApproval,发起方式为【单次发起】。
|
启动参数 |
赋值类型 |
选择的值 |
|---|---|---|
|
|
更多 → 表格点击行的控件值 |
合同清单的合同编号 |
|
|
更多 → 表格点击行的控件值 |
合同清单的合同金额 |

两项均取用户点击的那一行。先保存合同,再点击“发起审批”;发起后刷新清单以显示最新状态。若改用独立表单和按钮,应按“校验 → 保存成功 → 发起流程”配置,保存失败时中断。
仅已保存且处于“草稿”或“已拒绝”、具有 contract_state 动作权限的合同可发起。“审批中”“已通过”、无权限或尚未取得权限结果时,按钮不可用。
领域模型在行数据中返回 _allow_data_contract_state。按钮【禁用】属性使用以下组合判断:
!($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,名称为“合同审批详情”。在【页面变量】中添加以下变量,来源均选择【外部】:
|
变量编码 |
类型 |
用途 |
|---|---|---|
|
|
字符串 |
查询合同的业务主键 |
|
|
字符串 |
定位待处理任务 |
|
|
字符串 |
查询流程记录和流程图 |
添加同一个合同领域模型作为数据源。合同表单的主键查询条件选择【UX变量 → contract】。

|
控件或字段 |
配置 |
|---|---|
|
合同编号、名称、金额 |
绑定对应合同字段,只读 |
|
核准金额 |
数值条,绑定 |
|
合同状态 |
绑定 |
|
任务处理 |
任务实例 ID 选择【UX变量 → task】 |
|
流程记录 |
流程实例 ID 选择【UX变量 → proc】 |
|
流程图 |
流程实例 ID 选择【UX变量 → proc】 |
合同金额直接从领域模型查询,不需要额外声明金额外部变量。“同意、拒绝”按钮由工作流任务动作生成,无须在 UX 中另建审批按钮。
在【任务处理 → 完成任务所需参数】中新增参数:
|
参数名 |
赋值类型 |
选择的值 |
|---|---|---|
|
|
控件值 |
核准金额数值条 |
左侧为三个外部变量;右侧任务实例 ID 取 task,核准金额取页面控件值。

选中【任务处理】控件,打开右侧【事件 → 完成任务前】,添加【提交表单】动作:
|
配置项 |
选择的值 |
|---|---|
|
表单 |
合同审批详情( |
|
数据源 |
合同( |

本例运行条件留空。图中的“运行条件未满足时”设置不控制表单校验或保存失败。
【提交表单】会先校验表单必填项,再保存核准金额。校验或保存失败时,任务不会完成,无须另配“失败打断”开关。
完成任务参数先取值,再执行“完成任务前”事件,因此金额直接取页面数值条,不依赖保存完成后才生成的值。工作流已在上一步把该参数映射到全局变量 approved_amount,把操作结果映射到 approval_result。
核准金额由 UX 表单保存,合同状态由工作流状态迁移更新。把金额回传到流程变量,不等于已保存到合同数据。
保存两个 UX。继续第 4 步:发布并验证合同审批,关联待办跳转并走完一次审批。
回到顶部
咨询热线
