NC65加自定义项

本地测试环境

1.导入元数据

在数据字典根据元数据路径找到元数据文件

image-20240727143133215

在MDP视图下,在对应模块项目导入元数据文件

image-20240727143047090

2.添加自定义项

添加自定义项之前,要先确认表头表体单据的业务接口属性映射,保证添加完自定义项之前与之后一致,否则会出现单据追溯失败问题

971d33ab768bb1b6441e82fa7967d04

添加需要的自定义项,勾选动态属性(不确定勾不勾选是否影响生成)

image-20240727143711348

添加完成后保存,不论添加的是表头还是表体,都在表头的实体上右键发布元数据

image-20240727144631321

发布完成后,按下面步骤查看数据库,看表中是否有相关自定义项被添加进去

首先打开导入元数据项目所在目录,在其METADATA文件夹中可以看到发布完成的元数据文件:

image-20241204100444863

然后右键以文本文档形式打开,如下id即为查询所用的id

image-20241204100659643
然后去执行查询:

--查元数据对应的class信息,条件id的值为:元数据entity标签上的id,entity标签一般有两个,表头和表体各一个
--这里举例的是表头id
select * from md_class where id='1050e13a-a996-4b75-8abb-5a9eceab7ab1';

--查元数据对应class的属性字段,条件classid的值和也是元数据entity标签上的id
select y.*,y.rowid from md_property y where classid='1050e13a-a996-4b75-8abb-5a9eceab7ab1' --and displayname like '%自定义%' 

--查元数据自定义项属性,条件classid的值和也是元数据entity标签上的id
select * from  md_ormap where classid='1050e13a-a996-4b75-8abb-5a9eceab7ab1' and columnid like '%vdef%'

--查对应表中的字段,tableid为表的英文名
select * from md_column where tableid like 'ic_material_h'

在对应实体类代码,及数据表中添加相应字段、get set方法

实体类:

image-20240727145322278

表:

ALTER TABLE 表名
ADD (
  vbdef21 varchar2(101) default null,
  vbdef22 varchar2(101) default null,
  vbdef23 varchar2(101) default null,
  vbdef24 varchar2(101) default null,
  vbdef25 varchar2(101) default null,
  vbdef26 varchar2(101) default null,
  vbdef27 varchar2(101) default null,
  vbdef28 varchar2(101) default null,
  vbdef29 varchar2(101) default null,
  vbdef30 varchar2(101) default null,
  vbdef31 varchar2(101) default null,
  vbdef32 varchar2(101) default null,
  vbdef33 varchar2(101) default null,
  vbdef34 varchar2(101) default null,
  vbdef35 varchar2(101) default null,
  vbdef36 varchar2(101) default null,
  vbdef37 varchar2(101) default null,
  vbdef38 varchar2(101) default null,
  vbdef39 varchar2(101) default null,
  vbdef40 varchar2(101) default null
);

3.更新配置

将完成的实体类导出补丁,连同修改后的元数据,一起更新到home,然后重启。重启完成后,管理员账号admin登录

登录后,在元数据管理页面,左边找到对应单据点击,查看自定义项是否存在

image-20240727151702303

元数据管理查看无问题后,可切换为开发账号或系统账号,去对应页面点击增删改按钮,看单据操作是否有问题

image-20240727152244112

验证单据无问题后,继续以非admin账号,进入用户定义属性组页面,左侧点击对应单据,点击修改按钮,修改用户定义属性数量自定义项数量,然后保存

image-20240727152358795

在以非admin账号进入用户定义属性设置-集团页面:

左侧点击对应单据自定义项,点击修改按钮:

image-20240727152651928

添加自定义项的类型与长度,类型点击放大镜中base基本类型组件的字符串String

image-20240727152820535

长度与元数据中添加的保持一致,为101,添加后如下,点击保存即可:

image-20240727153109876

单据页面的字段显示名称也需要在用户定义属性设置-集团中修改,如下图,将自定义项21名称改为审核状态

image-20240729082752040asd

4.单据模板设置

admin管理员登录客户端,进入单据模板初始化界面,将左侧的自定义项都拖入到右侧

image-20240727163613526

拖入后,切换开发账号或系统账号登录,进入模板设置-集团界面,点击有单据名的文件夹图标,点击复制,复制一个新的模板即可(因为新增自定义项后,需要使用上一步管理员admin所设置的新模板,旧的没有新增的自定义项

image-20240727171904772

模板设置-集团页面,左侧找到对应单据点击,右侧选则对应复制新增的模板,点击分配按钮,

image-20240727153957144

点击分配按钮后,在弹框中搜索用户或角色,移到右边点击确定,该用户或角色即可在对应单据看到新增的自定义项

image-20240727154150454

将新的模板设置为默认模板

image-20240727173013344



正式环境

1.将上面已完成的元数据及代码更新到home,在正式数据库添加对应字段

2.管理员账号admin登录客户端,在元数据管理页面,左边找到对应单据,点击选中,然后点上面的升级按钮,弹框选择修改完成的元数据文件.bmf进行升级,升级后查看是否出现新增的自定义项(查md_class、md_property、md_ormap、md_column等表)

3.上一步的数据表种有了自定义项无问题后,重启服务

4.,重启完成后在admin登录元数据管理页面去看自定义项是否添加成功,然后进行用户定义属性及属性组、单据模板配置,与本地测试环境的3、4步操作一致

image-20240727151809442

失败的问题排查

添加失败,或添加后单据报错

排查1:md_property表中如果有HELP字段为URC的多余记录,要删除

image-20240729102851200

删除后在MDP视图删除发布的元数据

image-20240729143933919

检查下面的表是否为空,正常删除发布的元数据后查询应该为空,然后重新发布元数据,遇到不可处理的错误可以重新导入元数据重新改再发布,然后重启服务。

--查元数据对应的class信息,id对应元数据中,entity标签displayName属性为表头表体vo名的id 
select * from md_class where id='1050e13a-a996-4b75-8abb-5a9eceab7ab1';

--查元数据对应class的属性字段,classid对应元数据中,entity标签displayName属性为表头表体vo名的id
select y.*,y.rowid from md_property y where classid='1050e13a-a996-4b75-8abb-5a9eceab7ab1' --and displayname like '%自定义%' 

--查元数据自定义项属性,classid对应元数据中,entity标签displayName属性为表头表体vo名的id 
select * from  md_ormap where classid='1050e13a-a996-4b75-8abb-5a9eceab7ab1' and columnid like '%vdef%'

重启后删除相关的单据模板配置(新增自定义项之前的模板可以不用),用户定义属性页面的配置可以不用删除,

但是在管理员登录客户端配置单据模板时,需要将之前拖入到表头表体的自定义项删除,重新拖入,然后再看是否成功

image-20240729144732722

元数据升级无反应

在admin登录元数据管理页面,对元数据进行升级后,如果数据库信息没有发生变化,没有新加的自定义项,则使用如下语句查询当前数据库中元数据的版本号:

--查元数据版本号,id为元数据跟标签(第一行)上的id
select version from md_component where id = 'e50d9302-d87c-4d57-807d-2a0772bf0564' and industry = '0' and versiontype = '0'

id是下面这个id,在以xml格式打开元数据文件的第一行上:
image-20240814203812716
通过查询出的版本号,与bmf元数据文件里的VERSION进行对比,如果数据库里的版本高于bmf文件的版本,则修改元数据文件版本号,保证新发布的元数据版本高于现在版本。

自定义项类型错误

报错某个自定义项类型错误时,去查该自定义项是否已经被使用,如果如下sql查询有结果,则就是该自定义项被使用的地方

select * from bd_userdefrule where pk_userdefrule in (select pk_userdefrule from bd_userdefitem  where  showname  = '非扣吨' )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值