扩展规则链

1.业务背景

在脚手架某些按钮上想执行一些自己的逻辑。
比如:一个审批流,你又添加了一个启用按钮,希望单据启用后,才能提交审批,停用的单据不能提交。就可以在提交的动作上,加一个扩展的规则链,来实现。

图1.1

2.后台定义规则链

脚手架后端代码中有rule规则扩展示例。通过继承AbstractCommonRule,然后通过注解Component标注该类。

/**
 * @desc  缺货认定申请单 审批提交规则
 **/
@Slf4j
@Component("StockoutAffirmApplySubmitRule")
public class StockoutAffirmApplySubmitRule extends AbstractCommonRule {
    @Override
    public RuleExecuteResult execute(BillContext billContext, Map<String, Object> paramMap) throws Exception {
        // 获取规则实体
        List<BizObject> bills = this.getBills(billContext, paramMap);
        // 定义返回值
        RuleExecuteResult result = new RuleExecuteResult();

        if( bills != null && bills.size() > 0){
            BizObject bill = bills.get(0);
            log.info("bill  的启用状态:{}", JSONObject.toJSONString(bill.get("enable")));
            if( "0".equals(bill.get("enable")) ){
                throw new BusinessException("停用的单据不能提交!!!");
            }
        }
        return result;
    }
}

3.动作上配置规则链

在对应页面建模设计页面中(卡片),选择需要配置自定义rule规则的按钮或命令
注:因为列表上也有“提交”按钮,所以列表设计器的submit也要添加该规则

图1.1
注:只有有”预置”规则的命令才可以添加自定义扩展规则

4.测试效果

  • 非启用状态下 提交,会提示我们自定义的规则错误 图1.1
  • 启用状态下 才可以正常提交审批(下面单据状态也变为“审批中”了) 图1.1
Copyright © 用友 -【生态技术部】 2021 all right reserved,powered by Gitbook修订时间: 2021-09-29 17:44:20

results matching ""

    No results matching ""