向导编码树卡模型最佳实践_第1页
向导编码树卡模型最佳实践_第2页
向导编码树卡模型最佳实践_第3页
向导编码树卡模型最佳实践_第4页
向导编码树卡模型最佳实践_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、环境准备1二、创建工程22.1新建项目22.2新建组件项目32.3新增业务组件32.4工程目录4模块菜单6三、3.1前准备63.2 功能. 83.2.1 一级模块8模块.3 模块初始化93.3 菜单. 103.3.1 一级菜单10菜单113.3.2四、元数据设计114.1 新建元数据114.1.1 新增实体组件124.1.2 导入模型文件134.2 模型设计器说明144.3 元数据设计说明144.3.1 组件信息设置144.3.2 实体属性设置154.3.3 实体模型视图设置164.3.4 接口、枚举等信息设置184.5 发布元数据194.5.1 发布元数据194.5.2

2、 生成 java 源代码204.5.3生成 sql并执行214.6 本章小结224.7 附:相关知识224.6.1 代码风格22器类型.3 元数据常用接口234.6.4 发布元数据涉及到的数据库表244.6.5 序列化文件文件. 294.6.6 生成 javaVO 源代码分析294.6.7 生成 sql结构目录分析304.6.8 导出为 pdm(.xml)文件344.6.9 导出为图片354.6.10 导入属性354.6.11 导出多语364.6.12 导出特性37在 Wizard 生成代码37五、5.1 新建主子表单据节点385.2 树的类型选择385.3 基本信息设置3

3、95.3.1 通过“浏览”Excel 获取相关功能和菜单信息405.3.2 手动设置功能和菜单信息435.4功能设置445.5包名、接口信息设置455.5参数设置465.6多语设置485.7生成信息485.8走完向导代码结构说明495.8.1 公共类 public 代码505.8.2 前台类 client 代码505.8.3 类 private 代码515.8.4 resource 文件夹535.8.5 其他. 535.8.6 附:相关知识54六、节点权限分配55七、改造本案例587.1 单据模板的改造587.2代码修改607.3配置文件修改637.4运行效果如下64树卡模式向导中的是左树右卡

4、的模式,并没有左边是树、右边是主子表的这种模式、现在通过向导生成的树卡、通过改造可以支持左边是树、右边是主子表的这种方式、效果如下图所示:下面讲解开发的过程:一、环境准备环境准备主要涉及到数据库和uap studio 的配置: 数据库:需要是 V63 版本的库。Uap studio 配置:需要正确配置数据源、开发者信息等其他信息;该项配置可在studio 界面菜单栏中窗口à首选项中配置。详细请参阅UAP 环境初始化操作手册.docxUAP 培训案例系列 1 UAP-主子型开发二、创建工程首先需要建立合适的项目,下面是如何建立项目的简单介绍:2.1 新建项目Uap studio 界面&

5、#224;文件à新建à其它àMDE 开发à业务组件项目:选择向导业务组件项目和模块项目的区别(环境安装文档)UAP 培训案例系列 2 UAP-主子型开发UPM 文件:需要选定某个项目,为该项目新建UPM 文件新增业务组件:需要选定某个项目,为该项目新建业务组件。2.2 新建组件项目继续下一步:创建新的模块项目,填写项目名称、模块名称信息,勾选是否开发模块信息以及模块配置文件默认 module.xml。详细配置,此处以 testdemo 为例。注意:项目名称和模块名称不需要一致,它们没有直接关系; 模块名称:部署环境里 modules 下的各个目录,比如

6、ua里的 module 是平级的。pbd,uapeai 等,部署环境从 CVS 检出代码:择从 CVS 服务器中签出代码,在后续的向导页中会收集相关信息。是否开发模块信息:选择是,会自表 md_module 中模块信息;如果此处忘记勾选可以通过以下方式进行手动置的信息即可。,格式:只需要将涉及到的模块信息换成设2.3 新增业务组件选择新增业务组件:填写名称、显示名称再确定,此处我们以codetreedemo为例。该操作主要是为了刚建立的项目新建业务组件,其中名称决定了生成的业务组件根目录的名称也是其UAP 培训案例系列 3 UAP-主子型开发insert into md_module (cre

7、atetime, creator, description, displayname, dr, help, id, isactive, modifier, modifytime, name, parentmoduleid, resid,resmodule, ts, versiontype)values ('2013-08-21 14:40:10', ' UAP-STUDIO ', 'testdemo', ' testdemo', 0, 'testdemo', 'testdemo', 'Y&#

8、39;, ' UAP-STUDIO ', '2013-08-21 14:40:10', 'testdemo', NULL, NULL, NULL, '2013-08-21 14:40:10', 0);标识。点击 完成 即完成业务组件项目的建立。2.4 工程目录向导完成会生成以下图示的项目结构:src 目录下自动生成 public、client、private、resource和 test 目录。以及 module.xml 文件。·public:客户端与服务器都要依赖的代码放到这个目录中,比如服务接口和 VO 等。

9、3;client:通常包含 UI 界面,处理,action 等代码。·private:所有在服务器端运行的代码都放到这个目录中。·resource:文件,如多语文件。·test:单元测试等测试代码。更为详细的包结构分析参见第四章“走完向导代码结构说明”。UAP 培训案例系列 4 UAP-主子型开发module.xml 文件内容如下所示:注意:在以上操作都完成之后,我们需要查看一下 uaphomemodulestestdemoMETA-INF 目录下是否生成 module.xml 文件。uaphome 使用如下方式打开即可:如果该文件没有生成,可以自行添加。没有该文

10、件在后期操作时会提示这时需要查看确认该文件在该目录下是否存在。服务找不到的问题,UAP 培训案例系列 5 UAP-主子型开发<?xml version="1.0" encoding="gb2312"?><module name="testdemo"><public></public><private></private></module>三、模块菜单由于我们需要将开发出来的功能节点显示在客户端上,所以我们需要提前将能够显示该功能的菜单等信息,如功能、菜

11、单。具体操作如下所示:3.1前准备3.1.1 启动中间件在浏览器视图下,右击 testdemo 工程,选择运行方式à UAP 中间件直到server 启动,启动客户端:出现以下信息说明 server 启动完成。3.1.2 启动客户端在浏览器视图下,右击 testdemo 工程,选择运行方式-UAP 客户端UAP 培训案例系列 6 UAP-主子型开发3.1.3 启动客户端之后,使用管理员登陆3.1.4 打开功能节点功能导航>应用管理平台>开发者配置工具>功能,双击进入功能界面UAP 培训案例系列 7 UAP-主子型开发3.2 功能以系统管理员登陆后,通过应用管理平台-

12、>系统管理工具->功能,打开功能界面,首先需要的是添加一级模块和模块3.2.1 一级模块一级模块,如下图所示,一级模块号是 TE,模块编码是“TESTDEMO”,模块名称“练习用例”,对应模块号必须与我们建的项目模块名称 testdemo 保持一致。1)模块编码:功能模块的编码2)模块号:功能模块号UAP 培训案例系列 8 UAP-主子型开发3)模块名称:功能模块名称4)对应模块号:对应模块,如:uap5)应用范围:或者 全局6)父模块号:的父层模块编码7)组织类型:模块所属的组织类型即主组织类型。全局级节点是全局,级节点是,组织级节点是成本域、部门、业务单元等。为了保证节点限的主

13、组织只是节点所关心的类型组织。8)多语字段:模块的多语 id,设置菜单的多语展示9)是否支持开关帐设置:如果设置,会在该模块下显示关帐功能节点10)是否会计平台:标记该模块是否和会计平台关联,需要会计平台生成下游单据注意:关于功能编码规则的详细介绍参见UAPV61-XX公司公共约定.docx文档。模块3.2.2模块,如下图所示,在一级模块是 TE 的基础上建立模块,模块号是 TE10,对应模块号是 testdemo;界面功能同上简介。3.2.3 模块初始化以开发管理员登陆,应用系统管理 à 系统初始化 à 业务初始化来打开业务初始界面化,首先是增补模块,然后选择要增补的模块

14、,在点击下一步后,在点击完成即可,如下图所示:UAP 培训案例系列 9 UAP-主子型开发增补模块:后续增加的业务模块可以采用增补模块的方式进行启用。3.3 菜单这里一级菜单和菜单,一级菜单是模块菜单,菜单是业务组件菜单,以系统管理员登陆后,通过应用管理平台->系统管理工具->菜单,步骤如下:3.3.1 一级菜单一级菜单,菜单编码 TE,菜单项名称是用来界面显示的菜单此处设置为“练习用例”,同时勾选是否虚菜单UAP 培训案例系列 10 UAP-主子型开发1)菜单项编码:功能节点菜单编码,数据库中及当前项目中唯一2)菜单项名称:功能节点的菜单名称3)虚菜单:如果为 true 表示:对

15、菜单进行分类,用户无法点击来打开一个页面;如果是 false:表示:需要关联功能,用户点击后打开一个页面。4)关联功能编码:是这个菜单需要关联功能中的节点的功能节点编码5)图标相对路径:可以设置菜单图标,是参照选择图标路径6)多语字段:是可以设置菜单的多语展示菜单3.3.2菜单:在一级菜单基础上建立菜单,菜单编码为 TE10 菜单项名称是“案例”,同时勾选是否虚菜单;界面功能同上简介。四、元数据设计此处简单介绍元数据设计以及期间涉及到的相关知识,元数据设计,具体可参考元数据开发红皮书。在该设计中我们使用的元数据是 team3.bmf 文件,这里我们只需要将该文件导入到项目中即可,但同时关于元数

16、据方面的相关知识也会简单介绍。具体步骤如下:4.1 新建元数据建立元数据:建立元数据有两种方式,第一种可以通过“新建实体组件”的方式建立 bmf文件,然后设计元数据。第二种方式可以通过导入现有的 bmf 文件至项目工程中,此处我UAP 培训案例系列 11 UAP-主子型开发们使用第二种方式导入现有的 team3.bmf 文件。4.1.1 新增实体组件首先,我们需要切换视图至 uap MDP 视图,需要在工具栏最右侧“打开图”,选择“uapMDP 视图”。图选择框视图如下图所示:切换视图之后,在 MDP浏览器视图中,右击工程的业务组件,选择新建实体组件,如下例图所示(项目名称为 testdemo

17、 目录为 codetreedemo):注意:1)新建业务操作组件:模型文件的文件格式是*.bpf ,详细使用方法参考帮助文档。2)新增目录:新建一个文件目录3)删除只能删除组件以及文件夹,决不随意删除已经发布的文件。选中“新建实体组件”点击会弹出“新增实体组件”输入框。需要设置新建文件名,如下图所示:UAP 培训案例系列 12 UAP-主子型开发说明:这里会通过与 UAP Studio 进行交互,获得当前开发者的信息, 其中包括行业名称、开发维度(行业级(1)、领域级(0)等)以及开发组织(基础行业 0,行业 31,地产行业 32)。注意:组件描述的是一个相对和完整的业务块,主要是从业务层次上

18、进行划分,比如“销售订单”可以作为一个组件,“客商”也可以作为一个组件,划分组件时,注意组件间的重用,且注意不要形成相互依赖。组件属于模块,一个模块可以包含多个组件。4.1.2 导入模型文件第二种方式:选择“导入模型文件”,导入现有的 bmf 文件,会将本机上存在的文件导入到系统中来,这属于文件。注意:1. 如果该模型文件本身已在项目中存在,则不能导入,否则在发布、保存等操作时出现严 重问题!2. 确保模型文件的模块号与所在工程的模块号一致3. 确保名称全局唯一UAP 培训案例系列 13 UAP-主子型开发4.2 模型设计器说明以下视图是模型设计器的界面,图中简单介绍了界面的功能区域,简单认识

19、下设计器:模型设计器包括以下五个重要部分:浏览器、模型绘制画布、工具面板、属性面板、模型视图。浏览器中组件所属的目录和组件的模块没有关系,目录只是为了更好的组织和管理bmf 文件。 组件是部署的基本单元,一个典型的组件会包含若干个有相互关系的实体(但只能有一个主实体),以及业务接口、枚举类型等,另外组件里还可以有服务和操作。注:该图只为模型设计器说明,请不要参考图中元数据等信息。4.3 元数据设计说明4.3.1 组件信息设置点间画布空白区域,可以在视图的右侧属性页中设置组件信息:此处代码风格设置为自定义样式,名称设置为 team3,显示名称为团队信息,名称空间设置为 testdemo,所属模块

20、必须设置与项目模块一致为 testdemo,主实体必须设置,这里设置为“团队信息”实体,其中名称空间与所属模块可以不一致。:UAP 培训案例系列 14 UAP-主子型开发版本号:组件当前版本,防止旧版本覆盖新版本。版本号是自动生成的,每点击一次保存,就会增加 1。代码风格:有 NC 传统样式、标准样式和自定义样式三种;NC 传统样式:生成 AGGVO,标准样式:SuperVO,自定义样式:则按 PubApp 规则生成 VO 代码多语言模块:对应以前多语言里的文件夹名,现在按照组件划分是否预加载:默认 false。如果选择 true,而且所用的数据源也配置为预加载元数据(在uaphomeierp

21、perties 中配置),那么该组件就会在中间件启动时被预先加载。主实体: 一个组件里如果有实体,则必须设置一个主实体名称:该组件的名称。必须全局唯一。名称空间:一种标识,让某些元数据可以集合起来。行业和修改人:默认从配置的开发者中获取。4.3.2 实体属性设置在模型绘制画布中选中主实体“团队信息”,设置实体属性:本模型中的主实体“团队信息”需要将器类型设置为AggVO,即聚合 VO器,其他子实体的一律选择 NCVO。还需要设置包装类名、类名称、名称、缺省表名、显示名称都需要设置,主属性需要设置为“团UAP 培训案例系列 15 UAP-主子型开

22、发队主键”。并且子实体也要类似设置,但子实体的器类型设为NCVO,主实体与子实体之间的组合关系要设置好“源属性”为主实体的“子表主键”,具体设置可见:器:器的作用在于适配模型与java 代码的不一致性。器类型有 POJO,NCVO,AggVO。包装类名:如果器类型是AggVO,则需要一个聚合 VO 类型的包装类。指明主子实体的关系,说明谁是主谁是子。动态信息修改类:用于动态修改实体,比如运行时增加或者设置某些属性。可见性:public,protected,default,private扩展:可以给实体加任意的,时可根据过滤。缺省表名:生成数据库时对应的表名。是否继承类:是否继承自另外一个实体,

23、默认false。是否生成建库:该实体是否生成建库的 sql,否的话需要写是否:该实体是否使用。显示名称:画布上实体的显示名称修改人:行业和修改人:默认从配置的开发者中获取。业务接口实现类:如果实体实现了业务接口,这里可以实现类。在“创建接口”小节中,将详细介绍接口实现类的四种情况。主属性:实体必须设置主属性(对应数据库表的主键)。4.3.3 实体模型视图设置在视图界面的下方,可以看见模型视图,此处我们选中主实体以主实体进行分析;可以看UAP 培训案例系列 16 UAP-主子型开发见“模型视图(实体)”中有三个页签分别是“属性”、“业务接口属性”、“参照”。关于实体的信息我们可以在此一一详细设置

24、。包括实体中每个字段的详细信息、实体需要实现的接口以及接口的属性还有参照等。关于代码中元数据的属性的获取可以通过以下方式:List<IAttribute> nc.md.m.impl.MDBean.getAttributes(String tag)实体中属性的设置要点如下:对于设置为 AggVO 样式的实体,请检查子表属性(1-n 聚合关系),比如上图中的子表主键,策略要设置为 BodyOfAggVOAccessor。类型样式:目前支持 Single、REF、ARRAY、LIST 四种。类型:可以自行选择,当建立实体间关系时,也会自动设置;主键一定要设置为 UFID类型。目前元数据支

25、持如下基本类型:String, UFID, Integer, UFDouble, UFBoolean, UFDate,UFDateTime, UFTime, UFMoney, IMAGE, BLOB, CLOB, CUSTOM, MEMO字段名称:生成数据库表列的名称。计算属性:由其他属性计算得到,本身不需要保存到数据库,生成数据库的列。空:是否可以为空。:用于权限。扩展:可以自由的给属性加上标注,比如uniqueCheck,在程序中便可以通过这个来过滤属性。注意:元数据中,创建人,创建时间,修改人,修改时间字段的名称应该分别为:creator,creationtime,modifier ,m

26、odifiedtime。元数据中字段创建避免关键字如:是 status,file若使用该向导生成代码,元数据中若包含“单据状态”字段,则单据状态类型必须设置为 uap->pf->pfbizitf.bmf 下的“单据状态”枚举类型。如:fstatusflagUAP 培训案例系列 17 UAP-主子型开发4.3.4 接口、枚举等信息设置业务接口属性:在此案例中因为是的开发,只需要以下接口,IBDObject、IAuditInfo、IOrgInfo 三个接口,并且接口中的相关属性也要与实体的属性上。如:IBDObject 需要id、code、name,IAuditInfo、IOrgInf

27、o 都上。具体的详细如下图所示:元数据需要实现的接口说明:必须接口:IBDObject(目录为 Ref M/uap/meta/general_interface.bmf)元数据有审批需求需要实现的接口:流程信息获取、回写,单据主子 VO,业务 PK锁(目录为 Ref M/uap/pf/pfbizitf.bmf)元数据中,有创建人,创建时间,修改人,修改时间字段需要实现的接口:IAuditInfo(目录为 Ref M/uap/bill/IBillInterface.bmf)元数据中有组织,组织多版本,业务日期字段需要实现的接口:IOrgInfo,IBillDate(目录为 Ref M/uap/b

28、ill/IBillInterface.bmf)元数据中有行号字段的时候,需要实现的接口:IRowNo(目录为 RefM/uap/bill/IBillInterface.bmf)注:关于接口方面的知识信息见 4.6 附:相关知识;4.3.5 子实体属性设置选中子实体“团队成员信息”在右侧的属性框中设置其子实体的属性,需要设置名称、缺省表名、类名称、主属性等,具体设置可参阅下图:UAP 培训案例系列 18 UAP-主子型开发4.3.6 子实体模型视图设置选中子实体,在画布的下方模型视图设置框中我们可以设置子实体中的字段的属性,具体设置可如下设置,此外我们还需要勾选动态属性:4.5 发布元数据在元数

29、据设计完成之后,需要将元数据发布,期间包括三步操作:发布元数据、生成java源代码、生成 sql并执行。具体操作见下文:4.5.1 发布元数据元数据发布的最小单元是组件。在模型绘制画布上选中实体组件右键,或者在画布中点击右键,选择“发布元数据”选项即可发布元数据,此处建议不要选择“发布元数据(忽略版本)”。如下图所示:UAP 培训案例系列 19 UAP-主子型开发发布元数据需要注意以下几点:必须保存后才能发布V63 开发环境中发布时不必启动中间件,因为元数据会发布到数据库中发布时会一起发布被依赖的组件,支持双向依赖,循环依赖如果发布元数据时忽略版本,则完全以本地的模型文件,可能造成库中新版本的

30、模型被覆盖,非特殊情况不推荐使用。开发环境的发布只是为了开发测试需要,提交时只需要将 bmf 文件(位于组件METADATA 目录)提交到相应组件的 METADATA 目录下,安装时会自行发布到数据库中查看元数据发布是否,查看错误日志。4.5.2生成 java 源代码右击实体,选择生成 java 源代码选项即可生成 java 源代码,会根据元数据组件的设定的代码风格生成相应的 VO,详细参见 javaVO 代码分析。如下图所示:UAP 培训案例系列 20 UAP-主子型开发生成 java 代码注意事项:可以在组件属里设置代码风格生成 Java 源代码时,V63 可以不必启动中间件生成 Java

31、 源代码前,必须确保最新修改的组件已经被发布生成的代码都实现了 SuperVO4.5.3生成 sql并执行右击实体,选择生成 sql并执行即可,会弹出如下框,如下图所示:UAP 培训案例系列 21 UAP-主子型开发选择生成 sql的位置2)export sql with foreignkey Info:3)Unicode charactor:该过程会根据属性表md_property生成相应的建库4.6 本章小结本章是元数据来展开叙述,从新建元数据到元数据设计到发布元数据的整个过程,以及操作过程中涉及到的相关信息与知识展开叙述,主线可以从每小节的标题可以看出先后操作过程。其中元数据设计环节是很

32、重要的,所以该环节的展开叙述较多。对于相关信息在操作中不便展示的,都在 4.7 附:相关知识中见。关于常用接口:IBDObject 是每种应用都需要实现的,关于 IFlowBizItf 流程信息获取回写、businInterface 单据主子 VO、IPfBillLock 业务 PK 锁属于流程操作中的接口,需要据此分析应用中是否需要流程来决定是否继承这些接口。需要注意的是这些接口不仅要使实体继承,还得在相对应的实体的业务接口属性中设置。IAuditInfo、IOrgInfo应用在需要审计信息和设计到组织的场景。由于元数据设计这块有很多知识,这里也只能简单的将涉及到的部分简单呈现,关于元数据设

33、计的知识请参阅元数据开发红皮书。4.7 附:相关知识4.6.1 代码风格代码风格有:NC 传统样式、标准样式和自定义样式三种。NC 传统样式:属于较早 5 系列的应用,目前不推荐使用。标准样式:一般对于单表的应用。自定义样式:器类型4.6.2器类型:POJO、NCVO、AggVO 三种:POJO 为普通的BEANUAP 培训案例系列 22 UAP-主子型开发主要主子表及多子表结构的应用,多用于单据的应用。NCVO 是面向对象的方式,即如果存在主子表关系,则主表 VO 存在子表 VO 的数组引用AggVO 是聚合 VO器说明:组件代码风格选择自定义样式时,主子表或者多子表中主表对应的实体,器要设

34、置为 AggVO,其他的一律选择 NCVO;还有目前 POJO 与 NCVO 不做区别,推荐使用 NCVO。器的作用在于适配模型与 java 代码的不一致性。如果组件中存在主子关系,并且器类型设置为了”AggVO”类型,则主表中的聚合属性字段“策略” 属性必须设置为“nc.md.m.access.BodyOfAggVOAccessor”,否则无法进行属性值的正确设置。4.6.3 元数据常用接口IBDObject:位置:uapmetageneral_interface.bmfIBDObject接口类:nc.vo.bd.meta.IBDObject说明:在所有的基本组件中,主实体必须实现 IBDO

35、bject 接口,此业务接口提供了获取实体基本特征(包括所属pk_group、所属组织 pk_org、主键 id、名称 name、编码 code、父实体主键 pid)的一些方法。IFlowBizItf 流程信息获取、回写位置:uappfpfbizitf.bmfIFlowBizItf接口类:nc.itf.uap.pf.metadata.IFlowBizItf默认实现类:nc.uap.pf.metadata.FlowBizImpl说明:审批流流转过程中,需要把单据的审批状态回写到单据数据库表以及单据 VO 中,必须让元数据实体实现业务接口IFlowBizItf。此业务接口提供了获取实体基本特征(包

36、括单据 ID billid、单据号 billno、所属组织 pkorg、业务类型 busitype、制单人 billmaker、审批人approver、审批状态approvestatus、审批批语approvenote、审批时间approvedate、类型 transtype、单据类型 billtype、类型 pk transtypepk、来源单据类型srcbilltype、来源单据 idsrcbillid、修订枚举 emendenum、单据版本 pk billversionpk)的一些方法。IHeadBodyQueryItf 单据主子 VObusinInterfaceUAP 培训案例系列23

37、 UAP-主子型开发位置:uappfpfbizitf.bmfbusinInterface接口类:nc.itf.uap.pf.metadata.IHeadBodyQueryItf默认实现类:nc.uap.pf.metadata.HeadBodyQueryImpl说明:流程平台需要根据一些条件单据 VO。目前,多子表时默认默认实现类只查第一个子表!单据主子 VO,流程平台用于当前正在审批的单据。IPfBillLock 业务 PK 锁位置:uappfpfbizitf.bmfIPfBillLock接口类:nc.vo.pub.pf.IPfBillLock默认实现类:nc.uap.pf.metadata.

38、GetLockDataImpl说明:用于单据在进行审批操作的过程中对单据进行加锁,防止并发。实现了实体的基本特征(PK 锁)的一些方法。IOrgInfo 组织多版本位置:uapbillIBillInterface.bmfIOrgInfo接口类:nc.itf.pubapp.pub.bill.IOrgInfo说明:此接口实现了实体的基本特征(包括组织pk_org、组织多版本 pk_org_v)的方法。IAuditInfo 自动填充审计信息位置:uapbillIBillInterface.bmfIAuditInfo接口类:nc.itf.pubapp.pub.bill.IAuditInfo说明:该接口

39、实现了实体的基本特征(创建人 creator、创建时间 creationtime、修改人modifiedtime、修改时间 modifier)的一些方法。IRowNo 行号位置:uapbillIBillInterface.bmfIRowNo接口类:nc.itf.pubapp.pub.bill.IRowNo说明:该接口提供了实体的基本特征(行号)的方法。详细参见元数据开发红皮书。4.6.4 发布元数据涉及到的数据库表发布元数据会发布到数据库中,涉及到 40 多张表,主要是以下三张表:组件表md_component:发布元数据,会向该表元数据组件的信息元数据组件信息:UAP 培训案例系列 24 U

40、AP-主子型开发到 md_component 表中的信息组件表md_component的表结构:元数据组件信息与组件表 md_component对照UAP 培训案例系列 25 UAP-主子型开发元数据组件信息组件表 md_component说明创建时间createtime创建人creator描述description显示名称displaynamedrfromsourcebmf扩展helpIDid主键行业industry主键isbizm修改人modifier修改时间modifytime名称name名称空间namespace所属模块ownmodule是否预加载preload多语idresidres

41、module数据类型及实体表md_class:将元数据中的实体到该表中元数据中实体的信息:到 md_class 表中的信息数据类型及实体表md_class的表结构:元数据组件信息与数据类型及实体表md_class对照UAP 培训案例系列 26 UAP-主子型开发元数据实体信息数据类型及实体表md_class说明器类型accessorclassnamets系统时间版本versionversiontype主键属性表md_property1)表中的实体有哪些属性2)生成的 sql就是根据这些属性生成的。实体属性信息:到属性表md_property表中的信息UAP 培训案例系列 27 UAP-主子型开

42、发bizitfimpclassnameclasstype元数据组件 IDcomponentidmd_component 表中的ID创建时间createtime创建人creator默认表名称defaulttablename描述description显示名称displaynamedrfixedlength类名称fullclassname扩展HelpIDId主键行业industry主键isactiveisauthen是否生成建库iscreatesqlisextendbeanisprimary主表主键keyattribute实体主键值修改人modifier修改时间modifytimemodinfocl

43、assname名称nameparentclassidpreciserefmname多语idresidreturntypestereotypetsuserdefclassnameversiontype主键属性表md_property的表结构:实体属性与属性表md_property对照1)对照信息类似于组件表md_compoment和数据类型及实体表md_class2)属性表md_property中的 classid 字段对应实体表md_class的 id 字段。UAP 培训案例系列 28 UAP-主子型开发元数据发布相关的其他的表与元数据相关的表参见V6 数据库结构.xls4.6.5 序列化文件

44、文件发布元数据之后,点击画布的空白处,在模型视图(组件)视图下可查看序列化文件,如下图所示:序列化文件的,详细参见UAP-元数据建模说明.docx4.6.6 生成 javaVO 源代码分析对于不同的代码风格和器类型会产生不同的JavaVO,此处生成的 JavaVO 的名称以及路径都是由元数据设计中的类名称和包装类名来决定的。NC 传统样式下生成的 JavaVO:标准样式下生成的 JavaVO:单表生成一个 JavaVO。自定义样式下生成的 JavaVO:以主子表单据为例,代码风格自定义样式,器类型为 AggVo,会产生以下四个 VO:QuotationHVO、QuotationBVO、Quot

45、ationVO、QuotationVOMeta表头 VO:表体 VO:UAP 培训案例系列 29 UAP-主子型开发包装类 VO:QuotationHVO、QuotationBVO 分别是元数据中主实体以及子实体对应的值对象,他们都继承了 SuperVO,此处需要说明的是这里关于实体间的关系:在画布上,主实体与子实体的关系显示在主实体中,但是 VO 中子实体 QuotationBVO 含有主实体 QuotationHVO 的主表主键,并具有相应的 get、set 方法,在数据库表中同样是子表含有主表的主键作为外键来建立关联。QuotationVO 为包装类组合 VO,该类继承了 Abstrac

46、tBill,故能够支持页签级 VO,能够实现多个子实体在不同的页签中显示,还指明了 parentVO;QuotationVOMeta 继承AbstractBillMeta,设置主实体与子实体的关联,需要注意的是如果建立了多个子实体,需要在 QuotationVOMeta 中手动的添加 addChildren(子实体 VO.class)。4.6.7 生成 sql结构目录分析执行“生成 sql并执行”操作之后,会在相应的目录中产生以下目录结构其中 Dtype 文件夹下有三个 xml 文件,如上图所示SQLSERVER 文件夹下有两个文件UAP 培训案例系列 30 UAP-主子型开发00001 文件

47、下的 TADATA_quotation_table.sql(以主子表为例,quotation 是元数据的多语模块名),对应的是元数据中实体的建库UAP 培训案例系列 31 UAP-主子型开发create table example_first_h ( pk_salequotation CHAR(20) NOT NULL, pk_group VARCHAR(20) default '' NULL, pk_org_v VARCHAR(20) default '' NULL, pk_org VARCHAR(20) default '' NULL, vb

48、illcode VARCHAR(40) NULL,ctrantypeid VARCHAR(20) default '' NULL, vtrantypecode VARCHAR(50) NULL, dbilldate CHAR(19) NULL,dquotedate CHAR(19) NULL, denddate VARCHAR(19) NULL, fstatusflag INT default '-1' NOT NULL,pk_customer VARCHAR(20) default '' NULL, pk_channeltype VARCHAR

49、(20) default '' NULL, pk_currtype VARCHAR(20) default '' NULL, pk_balatype VARCHAR(20) default '' NULL, pk_dept_v VARCHAR(20) default '' NULL, pk_dept VARCHAR(20) default '' NULL, cemployeeid VARCHAR(20) NULL,pk_payterm VARCHAR(20) default '' NULL, cse

50、ndtypeid VARCHAR(20) default '' NULL, ndiscount DECIMAL(28,8) NULL,ntotalnum DECIMAL(28,8) NULL, ntotalmny DECIMAL(28,8) NULL, operator VARCHAR(20) default '' NULL, creator VARCHAR(20) default '' NULL, creationtime CHAR(19) NULL,modifier VARCHAR(20) default '' NULL, m

51、odifiedtime CHAR(19) NULL,approver VARCHAR(20) default '' NULL, taudittime CHAR(19) NULL,vnote VARCHAR(181) NULL, vdef1 VARCHAR(101) NULL, vdef2 VARCHAR(101) NULL, vdef3 VARCHAR(101) NULL, vdef4 VARCHAR(101) NULL, vdef5 VARCHAR(101) NULL, vdef6 VARCHAR(101) NULL, vdef7 VARCHAR(101) NULL, vde

52、f8 VARCHAR(101) NULL, vdef9 VARCHAR(101) NULL,UAP 培训案例系列 32 UAP-主子型开发vdef10 VARCHAR(101) NULL, vdef11 VARCHAR(101) NULL, vdef12 VARCHAR(101) NULL, vdef13 VARCHAR(101) NULL, vdef14 VARCHAR(101) NULL, vdef15 VARCHAR(101) NULL, vdef16 VARCHAR(101) NULL, vdef17 VARCHAR(101) NULL, vdef18 VARCHAR(101) NULL, vdef19 VARCHAR(101) NULL, vdef20 VARCHAR(101) NULL,cbiztypeid VARCHAR(20) default '' NULL,CONSTRAINT PK_EXAMPLE_FIRST_H PRIMARY KEY (pk_salequotation), ts char(19) default convert(c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论