开发业务组件模型

栏目:u9cloud知识作者:用友来源:用友发布:2024-08-20浏览:1

开发业务组件模型

建立业务模型是应用开发过程的第一步,可以开发的模型有实体模型、业务操作模型、服务模型和数据库模型。这些模型分别对应于解决方案中的实体项目、业务操作项目、服务项目和数据库项目。为了方便模型的复用,在UBF Studio还可以建立模式项目和特性项目。

UBF Studio中的项目有着相同的管理方式:

  1. 每个项目包含一个项目文件和一个同名的文件夹
  2. 文件夹下包含若干个组件文件,每个文件代表一个组件
  3. 组件中包含命名空间、模型以及模型图,组件的内部结构通过模型管理器显示和管理
  4. 模型和模型图通过图形化的编辑器打开并修改等。

 

模型项目词汇表

 

中文

英文

解释

元模型

Meta-Model

描述系统模型的模型。对业务系统抽象并建模,产生系统模型,对系统模型抽象并建模,就产生元模型。

元数据

Meta-Data

描述元模型的数据

领域模型

Domain Model

是用来构建特定领域软件系统的知识模型,是合并了数据和行为的对象模型。

业务实体

Business Entity

领域模型中的业务数据对象,如:订单头,订单体,职员,客户等。

业务操作

Business Process

领域模型中的业务逻辑对象,用以描述对象行为,如订单增加,订单修改,订单删除等。

服务

Service

领域模型中对外公开操作的业务逻辑对象,是系统互连和流程配置的接口。

数据传输对象

Transient Object

普通类, 不参与持久化操作,主要用作BP的参数和返回类型。(不能在持久化对象中使用)

属性类型

Property Type

不能单独持久化、没有ID的小对象,常用于货币、日期范围等的描述。说明:原名为值对象。

枚举类型

EnumType

枚举是一个被命名的整型常数的集合,如:销售类型,付款方式,运输方式等。

校验器

Validator

生成对属性等校验的框架代码,可作为公用。

模式

Pattern

可重用的,可自定义的领域模型模式。多个实体、属性类型、枚举及其关系的组合。

特性

Feature

被抽象出来并可在实体设计时被复用的代表特定方面(Aspect)特征的属性集。

应用字典

Application Dictionary

特定的属性规范,用于类属性的重用。

版型

Stereotype

是扩展业务实体描述的一种解决方法;主要用于表现一些不在模型上体现业务规则,主要用于扩展代码。

模型图

Model Diagram

UBF文档图形化显示方式,可以直接在模型图中对UBF文档进行编辑。在UBF Studio中,有单个业务对象的模型图,如单个实体或者单个表的模型图;也有组合业务对象的模型图,如类图和数据库图。

类图

Entity Diagram

领域模型的图形描述,类图中可以包括多个类,并同时表明类间关系。

数据库图

Database Diagram

不描述真正的数据库,只是表和表关联的图形描述。

 

模型开发概述

新增功能

V 2.1 版本增加的新功能:

  1. 新增了字典应用和存为字典功能,
  2. 新增了关联关系的快速创建功能,
  3. 新增了浮动属性编辑器。
  4. 创建模式和特性项目:允许单独创建有关模式和特性的项目,然后在其他实体的设计过程中应用该模式和特性。
  5. 模型可视化设计时,在实体等的鼠标右键操作中增加的功能:缩放,全选,输出到图形文件。

 

主要流程

UBF模型设计器是一个可视化的工具便于使用者设计、建模和分析领域模型。通过Designer可以集中对业务模型的模型元素(模型、关系、特性、模式、版型等)进行可视化描述,并以图形的方式进行展示。

 

开发模型项目的流程如下图所示:

  1. 在建立解决方案以后,需要分别建立实体项目、操作项目和服务项目。
  2. 操作项目和服务项目的开发流程完全一样,现统一说明:
    1. 建立操作/服务组件,并在下面建立命名空间。需要分组管理时,也可选择首先在组件下面创建文件夹。
    2. 在命名空间下面建立操作/服务、数据传输对象,可以先建立类图以方便其它模型的创建及编辑。
    3. 根据建立的模型文件生成代码,建立VS.NET项目
    4. 在VS.NET开发环境中编写业务逻辑,然后编译、发布,生成运行期的业务逻辑组件。
    5. 另外,操作/服务项目的DSL文件也可发布到运行期元数据库中。目前主要供工作流组件使用。
  3. 实体项目的创建过程:
    1. 与操作服务项目类似,建立组件、文件夹(可选)和命名空间。
    2. 在命名空间下面建立实体、枚举、属性类型、校验器、数据传输对象等模型元素。可以首先建立类图以方便各模型的快速创建与可视化编辑,特别地,各模型间的关系只有通过类图才可创建与编辑。
    3. 实体项目的发布有三条线同时进行:
      1. 与操作/服务项目类似的,生成代码、修改代码,最后编译发布未运行期组件
      2. 实体项目的DSL文件直接发布到运行期元数据库中
      3. 由实体项目创建数据库项目
  4. 数据库项目是根据实体项目创建的。
    1. 可以由实体项目自动创建数据库项目,创建时将同时生成数据表和OR映射文件;也可以手工创建数据表,并手工建立数据表和实体对象之间的OR映射关系
    2. OR映射文件直接发布为运行期的OR映射文件
    3. 数据库项目中的表只是存在本地的描述文件,需要据此生成建库脚本,并针对指定的数据库服务器执行建库脚本,生成真正的数据表供运行期程序使用。
  5. 模型项目开发完成以后,就可以进行后续的其它项目的开发了。

 

各类模型项目外观标记

项目类型

图标

文件扩展名

实体项目

.ubfmlproj

操作项目

.ubfbpproj

服务项目

.ubfserproj

数据库项目

.ubfdbproj

特性项目

.ubffeproj

模式项目

.ubfpaproj

 

通用操作

创建组件和命名空间

选中要编辑的项目,以新建文档的方式创建组件,参见§3.2.3.6.1 新建文档或文件夹。

选中要编辑的组件,同样以新建文档的方式新建命名空间。命名空间在模型管理器中显示为文件夹的方式。

特例说明:数据库项目下包括数据表和OR映射两种组件,二者均不需要建立命名空间。

创建具体模型

有两种操作方式可以创建具体模型:

  1. 选中命名空间,以新建文档的方式创建具体模型,参见参见§3.2.3.6.1 新建文档或文件夹。
  2. 先以新建文档的方式创建模型图,通过编辑模型图的方式快速创建其它模型。这是推荐的操作方式。

 

特例说明:

  1. 数据表组件下面没有命名空间,直接选中表组件,然后以新建文档的方式创建具体模型即可。

 

模型图是UBF Studio中编辑模型的主要方式,除了创建新模型以外,还可以加入已有模型到模型图中。

操作方法:在公共管理工具的模型管理器中,直接拖曳模型节点到模型图中即可。

 

使用模型图编辑模型文档

使用模型图编辑模型文档是可视化开发工具的重要特征之一,这也正体现了UBF Studio的强大功能。

新建一个模型图,在模型管理器中双击打开,模型图将出现在UBF Studio中间主体的文档编辑区域,同时在左侧窗格中也将出现相应文档的工具箱:

使用工具箱创建模型

模型工具箱提供了针对当前模型的特定工具,一般可通过拖曳的方式加入到模型图中。

各模型的工具箱有一个通用的控件,就是注释控件,拖动该控件到模型图,即可添加注释:

 

小技巧:在模型图的空白处双击鼠标,可快速创建当前模型图中最常用的模型:

  1. 实体类图:可快速创建实体,同时适用于实体项目、模式项目和特性项目中的实体类图
  2. 操作类图:可快速创建操作,适用于操作项目
  3. 服务类型:可快速创建服务,适用于服务项目
  4. 数据库图;可快速创建数据表,适用于数据库项目

 

模型的选择与编辑

  1. 模型的选择:
    1. 点击模型标题,选择单个模型
    2. 通过鼠标拖曳画矩形框的方式,同时选择多个模型
    3. 在模型图背景的上下文菜单中,选择“全选”,同时选择所有模型
      1. 快捷键:Ctrl+A键
  2. 模型的快速复制:选中要复制的模型,在上下文菜单中选择“复制”;右键单击模型图背景,在上下文菜单中选择“粘贴”
  3. 模型的删除:
    1. 选中模型,在右键菜单中选择“删除”,模型将从模型图中消失,但在当前组件中仍然存在,模型管理器中仍然可以看到
      1. 快捷键:Del键
    2. 选中模型,在右键菜单中选择“从元数据删除”,模型不仅从模型图中消失,在当前组件中也会被删除。这是一个危险的操作,从元数据中删除后,模型将无法恢复
      1. 快捷键:Shift+Del键

 

描述属性的查看与编辑

不同于类属性只存在于类中,UBF Studio中的各级元素多数具有描述属性,公共管理工具中的属性页是专门为了查看、编辑描述属性而设置的。在开发模型项目时,还有其它方法可以查看和维护描述属性:

  1. 浮动属性编辑器
  2. 详细信息窗格

 

浮动属性编辑器:

双击模型元素,即可打开浮动属性编辑器:

浮动属性编辑器下部的无标题的空白文本框是备注项,开发人员可以用来录入伪代码等信息。

小技巧:如果觉得备注项文本框太小,可以双击该文本框,然后在放大的文本框中编辑。

 

详细信息窗格:

在打开一个模型后,在输出查看器所在窗格会新增一个页签,页签标题为“详细信息”,在详细信息中,也可以查看、维护部分描述属性:

 

根据模型种类的不同,详细信息页签中会分为多个子页签,分别描述模型各类子项的描述属性,如类属性、方法、版型、实现策略等。

 

在详细信息窗格中可以使用以下快捷操作方式:

  1. Arrow : 移动到上/下一行或者上/下一列。
  2. CTRL + Arrow : 移动到第一行/最后一行或者第一列/最后一列。
  3. CTRL + C、X、V : 在单元格中复制、剪切、粘贴。
  4. F4 : 
    1. 对于可参照输入的描述属性,在处于带光标的输入状态时,可弹出相应的参照选择框,如数据类型选择框、校验器选择框等。
    2. 对于使用下拉列表输入的描述属性,在处于带光标的输入状态时,可打开下拉列表框
  5. Delete:删除一行。
  6. 在属性/方法/参数的最后一行的名称列中输入值则自动添加一个属性/方法/参数。

 

小技巧:对“服务可见”、“可空”、是否隐藏列等复选框输入的列,各行的类属性可以批量设置“全选”、“全部取消”,方法是选择顶部空白行的复选框。

 

模型元素共有的描述属性

模型元素有一些共有的描述属性,在此统一说明:

标签

含义

输入说明

名称

唯一性名称,在生成的源码中使用

以字母开头的英文

全名

全路径名称

系统自动生成,不可修改

显示名称

多语种显示名称,可更换语种

目前建议直接输入中文。需要其它语种时可直接在资源中维护。

描述

描述性解释

直接输入或参照资源输入

备注

用于输入备注文本信息,常用来输入伪代码

直接输入。在输入的文本较多时,可以双击窗口,打开更大的窗口进行编辑。

隐藏显示

当前类属性是否需要在模型图中隐藏显示,只用于类属性

复选框选择

 

模型图显示控制

右键点击模型图背景,通过上下文菜单可以控制模型图的显示:

  1. 缩放:可以选择模型图的多种显示比例
  2. 重新布局:可以自动排列显示模型图中的各模型,省却了人工调整各模型位置的繁琐
  3. 显示网格:切换是否显示模型背景的网格点阵
  4. 输出到图形文件:将当前模型图以图片格式保存到图形文件当中,支持多种常见的图形格式。

在显示实体模型的类属性时,也可选择是否分组显示各个类属性。操作方法是选中类的“属性”标题,点击鼠标右键,上下文菜单中将会出现“分组属性”的选项:

 

创建实体项目

新建一个实体项目后,系统会为该项目自动新建一个同名组件,为组件新建一个同名命名空间,为命名空间新建一个同名类图。同样地,用户新建一个实体组件后,系统也会自动创建一个同名的命名空间、一个同名的类图。

一般的,一个实体项目只包含一种组件——实体组件,实体组件下面有命名空间,各种模型及类图将直接从属于一个命名空间。

实体组件包含的模型有实体、枚举、属性类型、数据传输对象、校验器,各模型之间还可能会有各种关系。其中实体是核心的模型,其它模型都是为实体服务的:

  1. 枚举:在实体类属性的数据类型中可以选择枚举,表明数据只能在几个可用的枚举值之中选择。
  2. 属性类型:在实体类属性的数据类型中可以选择属性类型,表明这个类属性由几个数据项组合而成。
  3. 校验器:实体类属性的描述属性中专门有校验器一项,表明这个类属性的有效性校验方法。
  4. 数据传输对象:在实体等模型进行数据传输时使用。
  5. 关系:表明实体之间、实体与其它模型之间的各种关系。

 

编辑实体

实体由类属性和方法组成。

编辑实体的描述属性

实体本身的各描述属性项说明如下:

分组

标签

含义

输入说明

基本

校验器

选择针对整个实体的,跨数据项校验器

参照选择

主实体

是否是业务对象的主实体

复选框选择

 

扩展

查询属性

当前类属性是否具有业务含义,只有具有业务含义的类属性才能用于智能查询(SmartList)等功能中。

列表选择:True / False

抽象类

是否是抽象类

复选框选择

 

权限控制

是否权限控制

复选框选择

 

OR映射

继承映射类型

将带继承关系的类映射为数据表时,所采取的映射类型

列表选择:

  1. Single Table
  2. Concrete Table
  3. Class Table

类型标志

仅在映射类型为Single Table时有效,用于区分表中的记录来自于哪个类

文本输入,默认取值为实体名称。

 

缺省表名

由实体自动生成数据表时取的默认表名

文本输入,默认取值为实体名称。

 

其它

索引

编辑当前实体的索引

弹出界面

说明:关于应用字典的详细使用说明,请参见§Error! Reference source not found.Error! Reference source not found.

 

实体类属性编辑

新增类属性

类属性是实体的重要组成之一,可以通过如下方式之一新增类属性:

  1. 在类图中选中实体的“属性”标题,在鼠标右键菜单中选择“增加”。

  1. 在详细信息窗格的属性页签中,点击左侧工具栏的按钮

新增的类属性将以“Attribute、Attribute1、Attribute2……”依次命名,其显示名称将以“属性、属性1、属性2……”取值。

特别说明:当创建一个新的实体时,系统会自动创建以下属性:

  1. ID:唯一标识,不能修改
  2. CreatedOn:创建日期
  3. CreatedBy:创建人
  4. ModifiedOn:修改日期
  5. ModifiedBy:修改人
  6. SysVersion:事务版本

 

删除类属性

可通过如下方式之一删除类属性:

  1. 在类图中选中要删除的类属性,在右键菜单中选择“删除”
  2. 在详细信息窗格的属性页签中,选中要删除的类属性行,点击左侧工具栏的按钮。

特别说明:系统自动创建的类属性“ID”不能删除。

 

类属性的快速复制:

可通过如下方法将类属性从一个实体复制到另一个实体:

  1. 用鼠标直接拖曳过去
  2. 选中源实体的类属性,按“Ctrl+C”;再选中目标实体的类属性行,按“Ctrl+V”

 

解除类属性的资源绑定:

在输入类属性的显示名称时,系统一般会新建或者套用现有资源,此后资源将与类属性的显示名称联动变化。在有特殊需要时,用户可以去掉这种联动变化的绑定。在模型图中选中当前类属性,点击鼠标右键,在上下文菜单中选择“删除资源绑定”即可:

要想为类属性建立新的资源,同时修改类属性的名称和显示名称为新值即可。

 

类属性的描述属性项说明

分组

标签

含义

输入说明

基本

分组名

用于对类属性的分组。

未输入分组名时将自动归为Misc组。

服务可见

在被BP调用时,是否公开为调用参数

复选框选择,缺省True

 

国际化

类属性的持久化数据是否需要各语种分别记录

复选框选择,缺省False

 

描述

属性的描述信息

 

 

名称

属性的名称,默认的数据库列名

字母、数字和下划线的组合,首字母必须大写

 

权限控制

是否接受权限系统的控制

复选框选择,缺省False

 

缺省值

用于建库的时候生成缺省值约束,空字符串使用两个双引号:””

对于不合法的输入,系统将自动忽略

 

是否敏感日志字段

用于确定此属性是否需要记录日志

复选框选择,缺省False

 

是否是字典表字段

不知道意义

复选框选择,缺省False

 

数据类型

原生类型、实体、属性类型等

简单的数据类型不能是集合类型,不能选择对象类型、空类型、实体Key、实体。

 

显示名称

用于前台显示的属性的显示名称,国际化字段

输入值作为默认语种(中文)的资源

 

业务主键

是否是业务主键之一

复选框选择,缺省False

 

一旦使用不可修改

一旦使用不可修改,不确定具体的含义

复选框选择,缺省False

 

计算

计算列

是否计算列,在数据类型为数字类型时有效。

复选框选择

表达式

仅在类属性为计算列时有效,可打开表达式窗口编辑计算表达式

打开新窗口

 

可扩展

属性是否可扩展,不确定具体的含义

复选框选择,缺省False

 

校验

长度

属性数据类型的长度

整数,根据数据类型不同,此属性自动转变可编辑属性

精度

属性数据类型的精度

整数,根据数据类型不同,此属性自动转变可编辑属性

 

小数位

属性数据类型的小数位数

整数,根据数据类型不同,此属性自动转变可编辑属性

 

只读

属性是否只读

复选框选择,根据数据类型不同,此属性自动转变可编辑属性

 

可空

属性是否允许空值

复选框选择,根据数据类型不同,此属性自动转变可编辑属性

 

最大值

<

开发业务组件模型

建立业务模型是应用开发过程的第一步,可以开发的模型有实体模型、业务操作模型、服务模型和数据库模型。这些模型分别对应于解决方案中的实...
点击下载文档
标签: # U9C
分享:
确认删除?