NCV55元数据建模及管理红皮书分解Word下载.docx

上传人:b****5 文档编号:21137244 上传时间:2023-01-27 格式:DOCX 页数:26 大小:1.71MB
下载 相关 举报
NCV55元数据建模及管理红皮书分解Word下载.docx_第1页
第1页 / 共26页
NCV55元数据建模及管理红皮书分解Word下载.docx_第2页
第2页 / 共26页
NCV55元数据建模及管理红皮书分解Word下载.docx_第3页
第3页 / 共26页
NCV55元数据建模及管理红皮书分解Word下载.docx_第4页
第4页 / 共26页
NCV55元数据建模及管理红皮书分解Word下载.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

NCV55元数据建模及管理红皮书分解Word下载.docx

《NCV55元数据建模及管理红皮书分解Word下载.docx》由会员分享,可在线阅读,更多相关《NCV55元数据建模及管理红皮书分解Word下载.docx(26页珍藏版)》请在冰豆网上搜索。

NCV55元数据建模及管理红皮书分解Word下载.docx

第四章元数据典型应用21

1.基于元数据创建单据模板21

2.在流程平台中使用元数据:

22

3.某个实体作为参照使用:

23

4.元数据查询25

5.基于元数据的数据访问26

6.自定义项如何使用:

28

第一章

前言

本文档主要介绍了如何基于元数据进行业务建模,以及如何在运行时对元数据进行管理。

最后列举了元数据的一些典型应用。

目的是尽可能地让大家在使用元数据的时候更加方便。

关于元数据本身的代码架构,以及元数据的基本概念,请参见《NCV5.5-元数据开发红皮书》。

第二章

基于元数据的业务建模

1.模型设计器

在基于元数据建模之前,我们先来认识一下模型设计器。

NC模型设计器

模型设计器有5个重要的组成部分,如图所示。

1是资源浏览器,2是工具面板,3是画布,4:

属性面板,5:

模型视图。

2.创建组件

在资源浏览器中点右键,可以新建目录或者新建模型文件(见下图)。

模型文件(bmf文件)即对应元数据中的一个组件(IComponent)。

组件描述的是一个相对独立和完整的业务块,主要是从业务层次上进行划分,比如“销售订单”可以作为一个组件,“客商档案”也可以作为一个组件,划分组件时,注意组件间的重用,且注意不要形成相互依赖。

组件属于模块,一个模块可以包含多个组件。

资源浏览器中组件所属的目录和组件的模块没有关系,目录只是为了更好的组织和管理bmf文件。

组件是部署的基本单元,一个典型的组件会包含若干个有相互关系的实体(但只能有一个主实体),以及业务接口、枚举类型等,另外组件里还可以有服务和操作。

点击中间画布空白区域,可以设置组件信息:

1)版本号:

记录组件当前版本,防止旧版本覆盖新版本。

版本号是自动生成的,每点击一次保存,就会增加1。

2)代码风格:

有NC传统样式和标准样式两种,主要针对主子表及多子表结构,传统样式生成AGGVO,标准样式为OO

3)多语言资源模块:

对应以前多语言里的文件夹名,现在按照组件划分

4)是否预加载:

默认false。

如果选择true,而且所用的数据源也配置为预加载元数据(在preload-datasource.properties中配置),那么该组件就会在中间件启动时被预先加载。

5)主实体:

一个组件里如果有实体,则必须设置一个主实体

6)名称:

该组件的名称。

必须全局唯一。

3.创建实体

从工具箱中拖一个实体到中间的画布上。

创建实体的要点:

1)主属性:

实体必须设置主属性(对应数据库表的主键)。

2)访问器:

当组件代码样风格选择传统样式时,针对主子表或者多字表中主表对应的实体,访问器要设置为AggVO,即聚合VO访问器,其他的一律选择NCVO,访问器的作用在于适配模型与java代码的不一致性。

访问器类型有POJO,NCVO,AggVO。

3)包装类名:

如果访问器类型是AggVO,则需要生成一个聚合VO类型的包装类。

4)动态信息修改类:

用于动态修改实体,比如运行时增加或者设置某些属性。

5)可见性:

public,protected,default,private

6)扩展标签:

可以给实体加任意的标签,查询时可根据标签过滤。

7)缺省表名:

生成数据库时对应的表名。

8)业务接口实现类:

如果实体实现了业务接口,这里可以注册实现类。

在“创建接口”小节中,将详细介绍接口实现类的四种情况。

3.1实体的属性

实体可以有若干属性和操作,还可以实现接口,设置参照。

实体中属性的设置要点如下:

1)对于设置为AggVO样式的实体,请检查子表属性(1-n聚合关系),比如上图中的[订单明细],访问策略要设置为BodyOfAggVOAccessor。

2)类型样式:

目前支持Single、REF、ARRAY、LIST四种,具体可参考《元数据开发红皮书》。

3)类型:

可以自行选择,当建立实体间关系时,也会自动设置;

主键一定要设置为UFID类型。

目前元数据支持如下基本类型:

4)字段名称:

生成数据库表列的名称

5)计算属性:

由其他属性计算得到,本身不需要保存到数据库,不会生成数据库的列。

6)空:

是否可以为空。

7)授权:

用于权限控制。

8)扩展标签:

可以自由的给属性加上标注,比如@uniqueCheck,在程序中便可以通过这个标签来过滤属性。

List<

IAttribute>

nc.md.model.impl.MDBean.getAttributes(Stringtag)

3.2实体的操作

3.3实体和属性的参照设置

1)在实体的模型视图上选择参照页签,点击左上角的“设置参照”,弹出参照选择对话框(参照必须先在bd_refinfo表注册才会在这个对话框中出现)

2)为实体选择对应的参照,可以多选。

点击OK后,选择的参照就会出现在模型视图的参照页签。

此处的参照表示该实体可以通过这些参照被引用,比如人员对应的参照为人员档案和人员管理档案参照,如果某个实体的属性是人员类型,类型样式是参照,则可以将该属性设置成人员档案或人员管理档案参照。

3)必须给实体设置一个缺省参照。

4)为属性设置参照:

类型样式选择REF,类型选择某个实体,在参照名称下拉框中将出现该实体对应的参照,从中选择一个与该属性绑定。

如果没有设置参照名称,则获取属性的参照时,将取实体的缺省参照。

3.4创建自定义实体

从工具箱中拖一个实体到画布上,选中该实体,点右键,选择特性->

自定义档案,则该实体将被创建为自定义实体,其属性也将由系统自动生成。

如下图所示。

4.创建接口

在设计器上,业务接口只能增加属性,相应会生成get方法,比如增加一个name属性,会生成一个getName()方法,方法的返回值可以自由选择。

实际上,如果希望灵活运用业务接口,你可以摆脱设计器的限制,你在设计器上设计出一个业务接口,生成代码后,可以给业务接口增加任何方法,当然实现类也由你自己实现,此时只是通过元数据来管理你的业务接口而已。

业务接口的实现类可以分为四种情况,优先级从高到低排列如下:

1)实体和特定业务接口连线上的实现类

2)实体上注册的实现类

3)业务接口上注册的实现类

4)系统根据映射关系自动生成的实现类

实体实现了某个接口以后,如果没有在模型中注册接口实现类,则必须设置“业务接口属性映射”。

系统会根据属性映射生成默认的接口实现类,类名的规则是:

接口名去掉开头的I,后面再加上Impl。

业务接口实现类必须有且仅有一个参数为NCObject的构造函数。

业务接口的使用详见元数据开发红皮书。

5.创建枚举

创建一个枚举类型时,要注意以下几点:

1)枚举类型必须设置返回值类型,当前支持Integer和String两种

2)如果是自定义枚举,需要注册自定义枚举值实现类

3)枚举类型不对应java类,枚举类型的fullClassName为其返回类型,即int或者String

4)可以为属性设置类型为枚举类型,如下图所示:

5)通过IAttribute.getDataType()便可以得到IType,如果为枚举类型,则可转型为IEnumType,通过IEnumType.getEnumValues()得到枚举类型列表。

6.实体间的关系

目前元数据的关系支持关联、关联引用、1-1聚合、1-多聚合、1-n关联(持久层暂不支持),以及自关联。

暂不支持跨组件的1-1聚合、1-多聚合、1-多关联、继承。

设置关系的注意事项:

1)关系中必须设置源属性。

2)注意:

设置了关系后,属性的类型便会发生变化,但删除关系后,属性的类型不会恢复,务必要检查。

另外,修改过带有关系的属性后,需要重新设置关系(即重新拉线)。

7.元数据发布

元数据发布的最小单元是组件。

选中某个组件,或者在画布中点击右键,即可发布元数据。

注意事项:

1)必须保存后才能发布

2)发布时必须启动NC中间件,因为元数据会发布到数据库中,数据库为默认数据源

3)发布时会一起发布被依赖的组件,支持双向依赖,循环依赖。

4)如果发布元数据时忽略版本,则完全以本地的模型文件为准,可能造成库中新版本的模型被覆盖,非特殊情况不推荐使用。

5)开发环境的发布只是为了开发人员测试需要,提交产品时只需要将bmf文件提交到相应模块的METADATA目录下,安装帐套时会自行发布到数据库中。

导出JAVA代码:

1)可以在组件里设置代码风格,对于主子表结构,V55基本上选择AggVO,这样生成的代码和以前的兼容。

2)必须启动NC中间件。

3)导出java文件前,必须确保最新修改的组件已经被发布。

4)生成的代码都实现了SuperVO。

生成建库脚本:

1)生成建库脚本前,必须确保元数据已经被发布到数据库。

2)建库脚本可以直接在当前数据源所对应的数据库执行。

3)对于聚合关系,不管是1-1还是1-多,均会在子表里生成外键。

注册服务并发布:

1)服务可以在模块间调用,操作只可以在模块内调用

2)服务在设计器里无需建立,直接注册java接口和实现类即可

3)发布服务,可以直接形成upm/usm文件,upm/usm是基于原有module文件优化而来,具体参考中间件培训文档。

第三章

元数据管理

元数据管理工具主要用于在运行时对已发布的元数据进行管理。

它包含以下功能:

1)对元数据信息进行浏览,修改元数据的显示名称、描述信息等可编辑字段;

2)维护枚举类型;

3)元数据的升级;

4)元数据恢复到系统默认状态。

8.元数据信息浏览和修改

元数据管理功能节点在“客户化/二次开发工具/系统管理工具/”下。

界面如下图所示:

左侧面板中是一棵元数据树,树的第一级是模块,选中某个模块,会显示该模块下的所有组件和子模块。

选中某个组件,右侧面板上将显示该组件所有的实体,枚举,值对象,分别显示在不同的页签上(组件中的业务接口目前并没有在此处显示):

选中某个实体,可以看到该实体的属性,及该实体实现的接口信息:

点击“修改”按钮,可以修改当前页签上的蓝色字段。

9.枚举类型的维护

可以在元数据管理节点增加用户自定义的枚举类型,或者修改已有的枚举类型。

选中组件,可以新增枚举,如下图所示:

选中枚举,点击“枚举”按钮下的子按钮“修改”,即弹出枚举类型维护对话框:

在该对话框上可以对枚举类型的各项信息进行修改。

10.元数据升级:

点击升级按钮,会弹出文件选择对话框,可以选择要升级的bmf文件。

应用场景:

在元数据发布以后,如果对个别组件又进行了修改,此时可以在元数据管理节点对修改过的bmf文件进行升级。

升级时会将该组件及其依赖的组件重新发布。

例外情况是如果组件的版本低于数据库中的版本,则不会重新发布。

11.恢复到系统默认状态:

选中某个组件,点击“系统默认”,将从数据库中删除用户在运行时修改过的内容,恢复到刚发布或者升级后的状态。

第四章

元数据典型应用

12.基于元数据创建单据模板

在单据模板设置界面选择元数据组件:

模板上不再需要定义公式,直接从元数据模型树上拖拉需要显示的业务字段即可。

13.在流程平台中使用元数据

首先单据类型必须支持元数据。

在单据类型管理界面,选择该单据类型所属的元数据组件,如果不选,认为该单据类型不支持元数据。

对于支持元数据的单据类型,在审批流转移条件设置和工作项配置的时候就可以选择元数据。

数据交换管理界面也会以元数据而不是传统单据的样式展现:

14.某个实体作为参照使用

通常情况下需要经过以下几个步骤:

(1)实体必须实现基本档案接口(IBODObject),否则无法正确显示名称和编码。

(2)设置实体的业务接口属性映射。

(3)建一个实现了IRefModel的参照类,并在bd_refinfo表中注册。

(4)为实体设置参照。

在实体的模型视图中选择参照页签,点击“设置参照”,详见3.3节实体和属性的参照设置。

以上只是针对一般情况,对于特殊情况,比如说接口的属性不能直接映射实体的属性,那么就需要开发人员另外去写接口实现类了。

15.自定义项如何使用

如果在单据模板上需要有自定义项,则可以在模型设计器中给实体增加一个属性,将其类型设为“自定义项”。

类型为“自定义项”的属性可以在元数据管理界面修改它的类型和类型样式。

双击自定义项属性的类型编辑框,弹出元数据实体选择框,

16.元数据查询

元数据对外部提供的查询服务主要有两个:

(1)MDBaseQueryFacade:

前后台均可调用,提供元数据基本的一些查询,如查询模块、组件、实体、值对象、属性等。

支持前台缓存功能。

如果开发人员在开发环境需要频繁的修改元数据,则为了避免必须重启JStarter才能使得修改生效,可以在JStarter的启动参数里增加参数,在开发时临时关闭前台缓存功能。

-Dnc.md.detectEachTime=true

(2)MDQueryService:

后台查询,前台请不要调用。

MDQueryService服务为元数据自身查询服务的统一入口,通过此入口类可以请求不同的查询服务。

在后台,如果是一些简单查询,比如通过名称,则优先使用nc.md.MDBaseQueryFacade提供的查询方法。

特别注意:

前台全部使用MDBaseQueryFacade,否则会导致严重后果。

在元数据中,属性的查找都是通过先查找Bean,再调用Bean的相关方法来实现的(bean.getAttributeByID(attributeID))。

17.基于元数据的数据访问

元数据的数据访问,是指在得到了Bean的情况下,要取得属性的值。

元数据取数完全基于模型角度,不用了解数据库结构。

可以支持复杂条件查询,支持批量取数,有效提高数据访问效率。

基于元数据的数据访问主要用到DASFacade及NCObject类。

详见元数据开发红皮书。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1