背景
在低代码的表单设计页面中,如果需要将一个已存在的组件替换成一个新的组件类型,但是表单编码,也就是数据库列名保持不变应该如何操作。
例如:下图的表单设计中,我需要将组件类型为单行文本的付款客户改为自定义组件中的视图选择组件,同时保持属性编码不变应该怎么替换?
以下以付款客户字段为例
操作步骤
第一步
1.复制需要替换的属性组件的编码放入记事本当中,例如当前的是BILL_CUS_NAME
第二步
2.表单页面中删除付款客户组件,如下图,将右侧的属性名称由视图选择改为付款客户,并且填写下面的必填项,最后保存。
注意此处建议新属性除了编码不改,其他都按照业务要求的正确的填写
第三步
3.通过 classId + 属性编码值 + table_type(头表=OBJ,明细表=BIZ_LIST) 查询对象属性表obj_attribute,将 is_enabled 改为 0,is_deleted 改为 1,classId 可以在表单设计页面的地址栏中找到。
update obj_attribute set is_deleted = '1', is_enabled = '0'
where api_name = 'BILL_CUS_NAME'
and class_id = '5cadcdd5c5fb4070ba4b3809b4380f78' and table_type = 'OBJ';
第四步
4.保存后复制新的属性编码,我这里是 CUSTOMER_VIEW_ELECT_44F540C987941,继续查询对象属性表obj_attribute,将其改为付款客户的属性编码 BILL_CUS_NAME
# 查询出新属性的ID,并复制记录下来 d30286b44bff469eaca1b5e40dd9c100
select * from obj_attribute where api_name = 'CUSTOMER_VIEW_ELECT_44F540C987941'
and class_id = '5cadcdd5c5fb4070ba4b3809b4380f78' and table_type = 'OBJ';
# 执行更新新属性编码
update obj_attribute set api_name = 'BILL_CUS_NAME'
where id = 'd30286b44bff469eaca1b5e40dd9c100';
# 或者
update obj_attribute set api_name = 'BILL_CUS_NAME'
where api_name = 'CUSTOMER_VIEW_ELECT_44F540C987941'
and class_id = '5cadcdd5c5fb4070ba4b3809b4380f78' and table_type = 'OBJ';
第五步
5.根据上一步复制的新属性的ID到表单设计器布局表layout_config中查找对应的布局信息记录,并更新属性编码值
# 查询出布局表记录的ID,并复制记录下来 633cb8d1494c4a0093b6252734d0227a
select * from layout_config WHERE relate_id = 'd30286b44bff469eaca1b5e40dd9c100';
# 执行更新布局表编码
update layout_config set code = 'BILL_CUS_NAME' where relate_id = 'd30286b44bff469eaca1b5e40dd9c100';
# 或者
update layout_config set code = 'BILL_CUS_NAME' where id = '633cb8d1494c4a0093b6252734d0227a';
第六步
6.根据上一步复制的布局表ID到表单设计器布局配置表当中查询布局表关联的对应配置信息,并更新属性编码值
# 查询出配置记录,查看baseConfig是存储在哪个字段,根据field_mapping字段查看
select * from general_config WHERE relate_id = '633cb8d1494c4a0093b6252734d0227a';
如图:
执行更新操作,一定要根据查询结果找到baseConfig是存储在哪个字段
# 这里以attr3为例,以实际映射为准
update general_config set
attr3 = replace(attr3, 'CUSTOMER_VIEW_ELECT_44F540C987941', 'BILL_CUS_NAME')
where attr3 like '%CUSTOMER_VIEW_ELECT_44F540C987941%';
第七步
7.删除表单表中新建的属性列名
alter table cs_ce_credit_apply_header
drop column CUSTOMER_VIEW_ELECT_44F540C987941;
鸣谢
特别鸣谢文档贡献者:刘恩赐(财务系统部)
转载文档:低代码平台-组件类型替换
作者:聂维 创建时间:2021-12-28 16:26
最后编辑:聂维 更新时间:2022-11-10 10:58
最后编辑:聂维 更新时间:2022-11-10 10:58