• NC-UAP客户化开发-数据建模


    NC的单据模型介绍,通过PowerDesigner (v12)进行数据模型、建表、建数据字典、生成VO对象模型,为以后的单据、报表开发提供数据模型。

    单据模型介绍

    NC 中的多数节点所实现的功能,从技术的角度上看都是针对“单据”的相关操作。这里的“单据”泛指所有能表示为主子表模型的业务数据,比如订单,合同等等。

    图1.2就是一个最典型主子表的关系数据库模型( Data Model )。主表的一行记录对应于子表的多行记录。主表和子表之间通过主外键相互关联。对于这样的数据模型NC 是利用如图1.3所示的对象模型( Object Model )来实现对其的建模。

    由于主子表模型是NC 中最常见的数据组织形式,也是流程平台目前唯一支持的数据模型,所以图1.3所示的模型是NC中的缺省配置。当然通过一些开关和参数的设置就可以支持一些变化的形式。最常见的变化形式有以下几种:

    主子表 也就是UI 工厂的默认形式。这种情况不需特别的配置。只需实现IControllerBase.getBillVOName() 方法,通过一个String数组返回聚合VO、主表VO、子表VO的ClassName 即可。
    多子表 有多个子表.这种情况需要继承专门的多子表基类。在IControllerBase.getBillVOName() 的方法里依次返回聚合VO、主表VO、子表VO1、子表VO2. . . 子表VOn的ClassName 即可。其中聚合VO需要实现IExAggVO 接口。
    单表头 没有表体的卡片。实际实现时是把聚合VO的子表当成NULL处理。需要让UI 的Controller 实现ISingleController 接口。并在isSingleDetail 方法中返回false ;
    单表体 没有表头的卡片,一般用于一些基本档案节点。实际实现时是把聚合VO的主表当成NULL处理。需要让UI 的Controller 实现ISingleController 接口。并在isSingleDetail 方法中返回true;

     PowerDesigner介绍 

    安装数据库设计工具:Sybase PowerDesigner Version 12(以下简称PD)。

    为了给数据表自动生成时间戳(ts)、删除标志(dr)字段,需给PD打上插件补丁(将三个补丁文件db2cs7.xdb,oracl8i2.xdb,sqlserv7.xdb全部拷贝到PD的安装目录的 Resource FilesDBMS 下即可)。如果没有补丁,在建表的脚本处需要手工增加下面两个字段。Ts字段是时间戳,供系统判断修改时使用,dr字段是删除标记,NC系统单据表删除时并不是物理删除,而是更新dr字段为1。

    SQL SERVER数据库手工增加dr、ts两个字段脚本如下:

    ts  char(19)  null default convert(char(19),getdate(),20),
    dr  smallint  null default 0,

    Oracl数据库手工增加dr、ts两个字段脚本如下:

    TS  CHAR(19) default to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),
    DR  NUMBER(10) default 0,

    PD是一种高端的数据建模工具,使用它可以很方便的建立数据库、导出SQL脚本,其物理模型文件的后缀名为pdm,所以,NC辅助开发工具多处依赖PD来完成数据库相关操作。

    pdm文件数据类型问题

    用powerdesigner设计数据库表的.pdm文件时出现了数据类型为varchar和varchar2等不一样的数据类型,这是怎么回事?这是由于在设计过程之中出现了数据库更改的操作。各个数据库的类型不同,其中varchar2为Oracle的数据类型,表示变长字符型的数据,varchar为SQL Server的数据类型,也表示变长字符型的数据。另外还有小数数据类型的表示不同,Oracle的小数表示为Number(m,n),SQL Server的小数表示为Decimal(m,n)。

    • 若是生成Orcale的SQL语句的话,我们要将数据库设为Oracle的数据库,设置操作如下:

    ² Database->Change Current DBMS…

    ² 在弹出的对话框中选择General选项卡,选中Oracle较高版本的数据库,如ORACLE Version 10g

    ² 选择确定,弹出“更改成功”的对话框。

    • 而在将pdm文件导入到数据字典里面时,需要将数据库设置为Microsoft SQL Server版本,方法与上面操作基本相同。

     NC数据字典

    数据字典是NC客户开发工具中探测数据库表结构的数据基础,而不是采用每次需要数据都连接数据库的方式。

    实例讲解

    PowerDesigner建模 

    • 数据模型

    • 生成pdm步骤

    第一步、打开PD文件夹中的可执行文件pdshell12.exe,启动PD,会出现如下界面,选择新建一个物理模型。

    第二步、我们以MS SQL Server数据库为例,选择数据库为Miscrosft SQL Server 7.x,注意:由于补丁文件只针对SQL Server 7.x版本,所以,无论我们用SQL Server 7.x还是2000或以上版本,此处的DBMS都要选择SQL. Server.7.x。

    第三步、确定后左侧面板中会出现一个节点,双击弹出如下对话框,设置此模型的name,code等

    第四步、在新建节点上点击右键选择 New->Table

    第五步、在General选项卡中,设置表名,表的中文描述

    第六步、在Columns选项卡中定义列,列的中文描述。

     

    第七步、保存到指定目录,便得到pdm文件

    注意:

    1、此处列的数据类型,一般地,主键前缀为pk_,数据类型为char(20);boolean类型的列前缀为b,数据类型为char(1);日期类型前缀为d,数据类型为char(10),等等,更多数据库表字段命名规范参照附录开发规范文档;

    2、表的主键约束名不能大于15位;业务类型(pk_busitype)用于后续篇章设置流程时使用。

    3、在保存PDM文件之前,一定要将DBMS设成SQL Server 7.0;

    • 生成SQL脚本步骤

    第一步、选择菜单项 Database -> Generate Database …

    第二步、在弹出界面中,设置生成脚本文件的存放路径

    第三步、按下确定按钮后,便生成了SQL脚本

    第四步、将生成的Sql脚本在数据库中执行,或在Preview页签中copy脚本,在数据库中执行,建表完成。

    注意:

    1、可以看到上图红框中内容是由pd的补丁生成出来的;

    2、如果PD没有打补丁,在向数据库中执行生成的脚步前,一定要按要求先将ts、dr两个字段补全后,再执行。

    3、根据你所用数据库类型不同,在生成脚本之前设置DBMS;

    生成NC数据字典

    数据字典由上一步骤生成的pdm文件生成,NC二次开发工具提供了相应的生成工具。在节点客户化-二次开发工具-系统管理工具-数据字典

    选择菜单项 工具 -> 导入数据字典

    选择pdm文件,按照向导就可以将表结构导成数据字典。

     

  • 相关阅读:
    新概念英语(1-121)The man in a hat
    新概念英语(1-119)who call out to the thieves in the dark?
    画像分析(1-1)如何为客户画像?
    大数据分析师
    英语词汇(2)fall down,fall off和fall over
    把梳子卖给和尚的故事
    洛谷P1970 花匠(dp)
    2018.10.24模拟赛2解题报告
    2018.10.24模拟赛1解题报告
    洛谷P1941 飞扬的小鸟(背包 dp)
  • 原文地址:https://www.cnblogs.com/bf6rc9qu/p/13067525.html
Copyright © 2020-2023  润新知