工作流审批中如何设置弹性域字段可编辑

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

工作流审批中如何设置弹性域字段可编辑

1 业务背景

已知工作流审批可以配置界面哪些字段可以修改,但是这个方法用在弹性域字段上无效。

2 解决方案

2.1 方案总述

工作流打开的单据默认是预览态的,预览态默认是不可编辑的。预览态下即便将弹性域字段改为可编辑状态,里面的维度字段还是以预览态显示,需要二开进一步处理将对应的维度字段设置为编辑态,才可以


2.2 实现步骤

(1)工作流设计将弹性域字段设置为可编辑

(2)编写表单插件,redisterListener事件里面添加弹性域元数据监听器addFlexControlMetaPreRenderListener,修改维度字段的可编辑性

public void registerListener(EventObject e) {
    super.registerListener(e);

    String source = this.getView().getFormShowParameter().getCustomParam("SOURCE");
    String scene = this.getView().getFormShowParameter().getCustomParam("SCENE");
        //判断是否是审批操作打开的表单界面,仅在审批界面设置为可编辑
    if(source!=null&&scene!=null&&source.equals("WF")&&scene.equals("AUDITFLOW")){
        FlexEdit flexfield = this.getView().getControl("表单标识");
        flexfield.addFlexControlMetaPreRenderListener(flexControlMetaPreRenderEvent ->
                flexControlMetaPreRenderEvent.setEnable(true, Arrays.asList
                ("$$表单标识__维度字段id1","$$表单标识__维度字段id2")));

    }
}


2.3 实现效果


4 注意事项

(1)Arrays.asList ("$$表单标识__维度字段id1","$$表单标识__维度字段id2"),参数必须按这个格式设置,中间是两个下划线“_”,维度字段id是“f000001”格式的内容

(2)维度id怎么获取

一、先去业务主表获取弹性域字段id

select 弹性域字段 from 业务表 where fbillno='编码';

二、如果是“辅助属性定义”定义的属性,其值是存储在实体“辅助属性值”(标识:bd_flexauxprop,对应的数据表:t_bd_flexauxpropdata)中的。

可以根据业务表中弹性域字段值去t_bd_flexauxpropdata表中查找fvalue字段,解析出“f”开头的字段值为维度id

如果是核算维度”定义的属性,其值是存储在实体“核算项目组合”(标识:gl_assist,对应的数据表:t_gl_assist)中的,查询维度id方式同上。

(3)可见性,必录性,也可以依照此方法去修改维度字段的属性


5 源码


源码.zip






工作流审批中如何设置弹性域字段可编辑

1 业务背景已知工作流审批可以配置界面哪些字段可以修改,但是这个方法用在弹性域字段上无效。2 解决方案2.1 方案总述工作流打开的单据...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息