关于对象类型
对象类是Innovator管理的业务对象。它是对象的定义,所有的对象都是因它而存在的。在面向对象的编程中,对象类就类似于类的定义,对象是对象类的实例化。
几乎所有的Innovator对象的定义都是通过对象类。对象类的定义包括了属性,窗体,生命周期,工作流,权限,关系,服务和客户端的方法和行为等等。
当创建一个对象类,你将会看到标题属性和标签页
对象类的报表
有三个有用的报表来汇总对象类的定义。
在顶部菜单选择一个报表
> Definition Report总结了对象类的窗体内容和非核心的属性以及其他关系标签页中的内容
> ItemType Permissions Report总结了所有读取、更新、删除和修改权限的权限
报表可以使用标准的Internet Explorer 打印
创建对象类型
创建一个对象类,包含输入标题属性和它的标签页信息。
创建一个对象类
1. 在TOC->系统管理选择对象类
2. 点击新建按钮 来创建一个新的对象类。对象类界面将会像下图那样显示出来
3. 让我们先看看抬头的属性栏。
名称 –对象类名称
单数标签-对象类出现在对象窗口和作为单一对象的标签值。
复数标签-对象类出现在TOC作为对象类复数例子的标签值。
类结构-如果你打算为这个对象设计类结构,点击此按钮,类结构窗口就显示出来。
在类结构界面右击任何一个对象,将弹出一个菜单框,菜单框中的选项就像上面显示的那样。你可以根据你的需求创建多层的子类结构。然后,回到对象类窗口界面,你可以为每一个子类创建子类的特殊属性
小图标-点击相关链接,你会被看到16x16图标的目录。如果没有请导航到下面显示的目录。选择你选定的图标然后点击绿色的确定按钮 来完成你的选择,则在主界面小图标将会出现在TOC标签旁边
大图标-点击链接。你将会看到32 x32的图标目录。如果没有请导航到图标目录,如下图所示。然后选择你选定的图标然后点击绿色的确定按钮 来完成你的选择。大图标将会出现在对象实例的窗体上。
历史模板-定义对象类什么历史记录将会被保存下来
默认结构视图-定义对象界面是否显示标签页。举例让我们看Part的对象类定义
注意:关系类下有若干个关系被定义,它们的标签名称在页签标签单元格有显示。如果我们创建一个新的零部件,标签页上就会显示出来。
所以是否允许标签页在界面上显示,在对象类的定义中”默认结构视图”属性要选择Tab View,如果你想隐藏标签页,那么让”默认结构视图”这个字段为空。
版本-控制新建对象实例是否有版本控制的对象类定义设置。
i. 当选定可换版,这个设置表明每次对象被编辑后,一个新的版次就会被创建。所有的对象版次都会被存储在数据库中,如果有必要可以用来回溯。对象的版本和版次都会在对象窗体上显示出来。
ii. 注意,在列表中选中的对象的信息会显示版本和版次。
iii. 当选定手工修订-这个设置表明版本的增加是通过手动实现的,最初的版本也由用户填写。每个版本,都会被保存到数据库中。
iv. 版本-定义的版本递增规则。默认的是按照英文字符递增(A,B,C,D……)。如果创建一个不同的版本递增序列。
搜索-当对象在主树形结构界面或是TOC中被选定,定义参数在列表页面出现的Item实例。
i. 自动搜索-一个布尔参数,定义当用户在TOC界面点击对象类时是否自动搜索。举例,如果你进到系统管理->零部件,你就会看到零部件列表会自动展示出来了。在零部件的对象类
置中,自动搜索的选项是设置为True
ii. 默认页面大小-如果你选择了自动搜索,还可以指定默认的页面大小,它的含义是你希望多少个对象实例出现在一个页面上。默认的设置这个数目是25,如果是空的,那么单页面对象实例数量就会和最大数量一致。
iii. 最大数量-设定每次搜索的最大记录数。如果数据很多的话,可以通过此设置,提高性能
实现类型-定义对象类的类型是单一类或是多对象类还是联合类,如果指定为多对象类型,对象类保存后,就不能返回修改成单一类。
i. 单对象-单对象类是典型的对象类类型。多大的对象类都是单对象类。
j. 多对象-是指向多个单一对象的多对象包。举例,在项目管理中有一个叫做交付物的多对象类,它包含多个业务项-文档、ECN、零部件和DFMEA。
退出时解锁-当加锁Item用户退出的时候是否对Item解锁
依赖的-定义当前的对象是否依赖于另一个对象,离开父类对象就毫无意义。举例,如果一个零件已经删除,那么这个零件的文档资料就毫无意义。所以如果一个对象是零部件文档,那么他就依赖于零部件。
关系类-定义当前对象类是否是关系对象类
强制发现-如果选定,能被发现权限将启用
使用源对象权限-使用关系型的对象类时,当选定此就意味相关对象的权限就会和父类或是源对象的权限相同。
允许私人权限 –允许对单一对象实例设定私有权限。
下一步就是为不同的标签页输入信息。下面是这些标签页和连接到页面的列表
属性-为对象类输入新的属性
关系类-为对象类定义关系类型
查看窗体-选择对象类的窗体界面。不同的分类、不同的身份可以使用不同的查询、编辑等窗体界面。
服务器事件 -这个标签页包含了服务端可以触发很多事件的方法,像加锁和解锁。对这些方法的讨论超过了这个手册的范畴。写这些消息,你必须拥有编程的知识。
操作 -在主界面或是Item菜单栏中,在方法中让用户选择执行的客户化的动作
生命周期-不同的对象类子类可以选择不同的生命周期图
工作流-用于配置到对象类的流程,流程可以通过编程自动触发,或是另外一个流程的子流程或是默认的流程在实例创建的时候自动开始。和对象相关的流程都必须列在这里
TOC访问-这个标签页下的信息描述了在TOC界面下什么身份能看到和创建到这个对象节点
TOC视图-可以改变用户在TOC界面选定对象后看到的界面。不同的用户可以看到不同的视图。
客户端事件-这个标签页包含了客户端运行的方法。包含有三种不同的事件:新创建前、新创建和新创建后。当实例创建的时候才会执行方法,因此可以实现如此效果:当一个实例被创建后,采用一个方法去自动填充某些属性。
可创建者-这个标签页包含了哪些参与者可以为这个对象类添加新对象实例。
权限-这个标签包含了这个对象的权限。例如:哪个参与者可以查看、编辑和删除它们。
报表– 对象报表
多数据源 -此标签页用来创建一个多对象类, 用来指定源对象类组合到此多对象类中。
类结构
每个对象类都包含类有子类的类结构,可以有很多层级,每个子类可包含它自身独有的属性和界面。每个子类会继承它的父类属性,同时又可拥有它自己的属性。以下将用Geometric Shape这个对象类进行操作,解释怎么创建一个类结构。
创建一个类结构
1. 在对象类界面点击类结构按钮就会带出类结构窗口
2. 注意:父类,即对象类定义的,会自动在窗口上显示出来。在任意一个对象上右击就会弹出一个菜单框,让用户能够添加子类
3. 右击GeometricShape节点,选择添加子类。命名这个子类为square。结构将如下:
4. 添加多个子类在这个结构中,例如一个子类叫square,一个叫circle ,square有一个子类叫rectangle,它的类结构就像如下所示
5. 点击绿色按钮保存这个类结构
现在我们有了类结构,我们能定义类特殊属性了。记住,每个子类将继承父类的所有属性。
创建一个类特殊属性
1. 在对象类界面,点击属性标签页;
2. 添加下列属性,关注类路径(Class Path)单元格。当你点击类路径(Class Path)单元格时,一个类结构选择对话框就会显示在你面前。和上面显示的非常相像。选择这些属性属于的类然后点击绿色的按钮。
a. 颜色-添加到父类上
b. 半径-添加到circle子类上
c. 边长-添加到rectangle的子类上
d. 边长2 添加到square的子类上
3. 确认你有TOC访问权限和新增权限(查看权限)
4. 保存、解锁并退出对象类界面
5. 在对象类配置出点击GeometricShape窗体标签
6. 在窗体上显示属性“分类”和“颜色”,如下:
7. 保存 解锁然后退出“窗体”界面
窗体
查看窗体是对象类和窗体之间的关系
> 通过选择不同的类型,可以在添加、显示和编辑等行为时显示不同的窗体。默认的是查看和编辑窗体。
> 不同的参与者,可以在参与者栏位选定
> 可以设定分类,为不同的子类制定窗体
> 如果有一个以上的窗体满足条件,那么最高优先级的将会被显示。
TOC视图
TOC视图的定义是让用户在TOC选择到对象后出现指定的视图。举例,当用户选择在TOC零部件,我们看到一个叫做basic Item Grid的视图,这个视图也是默认的视图。
而当你在TOC选择 Dashboards Design To Goal 你将会看到仪表板的数据
这是因为在仪表板的对象类设置中,TOC视图被设置成Web界面,如下所示:
创建TOC视图 填写下列属性
1. 名称-这个TOC视图以谁的身份显示,不同的身份可以拥有不同的视图
2. 开始页面-实际Http地址指定的网页
3. 参数-调出页面的输入值
对象属性
在对象类的属性标签里包含很多对象属性,包括系统属性。在对象类界面,点击属性标签页,你将会看到下图显示的:
当你创建一个新的属性,一个新的属性行就会被创建,需要输入用户定义的值
创建一个新的属性
1. 打开对象类定义界面,锁定对象,进入编辑模式
2. 点击属性标签页
3. 在“执行”旁点击新建对象按钮 。点击下拉属性列表,然后你会看到一个新的属性行会在后面被添加。
4. 按照需要填写每个单元的值。
下面列表是所有属性的描述
列名 |
描述 |
名称 |
唯一,属性的内部名称 |
标签 |
显示在对象窗体和网格中的属性名称标签 |
数据类型 |
属性的数据类型,如字符串,列表等 |
数据源 |
如果属性的数据类型是一个列表,序列,对象或其他要求源信息,以得到数据的数据类型,在此处指定数据源。数据源类型依赖于其他数据 |
长度 |
字符串数据类型的最大长度。 |
精度 |
对于十进制数据类型,精度是小数点左边和右边的数字数量总和。对于浮点型,精度是小数点右边包括小数点的数量总和。例如:一个十进制属性A的精度设为5,A的有效值可以是:12345,12.345,1234.5等。对于浮点型属性B,精度设为3。 B的有效值为:xxxx.12,xxxx.1,xxxx.0 |
小数位 |
十进制数据类型的小数点右边的位数。例如:一个精度为5的十进制属性A,小数位设为2,有效值可以使:123.45,12.45,12.40. |
必填 |
布尔型。当被选中时,表示属性值不能为空。 |
唯一 |
如果为真,这个对象类的所有对象实例中此属性值必须唯一 |
索引 |
如果为真,为了提高对这个特殊属性频繁查找的性能,数据库表将为属性建立索引。 |
搜索中隐藏 |
如果为真,这个属性在此对象的任何属性网格中将不显示。例:当从TOC中选择对象类时显示如下:
|
关系中隐藏 |
如果为真,这个属性将不在关系类网格中显示。例如:零部件对象类,关系中隐藏没有设置为true的属性为:
当零部件实例创建时,BOM表显示,注意只有这些属性(包括一些BOM关系属性,如序列,数量和参考指示符)可见
|
对齐 |
决定网格中值的对齐方式。可能值为:左,右或中。默认为左。 |
宽度 |
决定属性格的列宽(像素)。下例中:颜色宽度设为30,其余设为100。
|
序号 |
整数值,控制搜索网格中从左到右的列显示的相对位置。例如:GeometricShape的属性Color,Side Length,Side2 Length和Radius设置如下:
在对象网格结果中显示如下:
|
键名排序 |
键名是将用于对象系统信息的名称,通常为对象的名称或标签。如果对象类没有指定键名,一个唯一的内部名称将被使用。你可以以一种有意义的方式连接尽可能多的属性值。键名属性必须指定一个排序。例如:有一个对象Employee包含属性Firstnam和Lastname,键名排序为1的Firstname字段和排序为2的Lastname字段,将在表格中产生一个键名“John Jones“。 |
排序 |
手工查找或自动查找后,控制对象在主对象网格上的显示(从顶置底)顺序。Order by值最小的属性,将排在第一个。例如:如果希望为employees的last name和first name排序,lastname的Order By属性值为1,Firstname的值为2.这里有一个Employees对象类实例,注意每个属性都有个Order By值。
当以上属性设置后,employees排序如下:
注意:Lastname是第一个条件,当所有的成员都有相同的Lastname,Innovator按Firstname排序(Order By=20)。同样,当成员的lastname和Firstname相同时,Innovator按SS Number排序。 |
默认值 |
如果属性没有指定值,默认值将被使用。空白表示一个空值。有时,为必填字段制定一个默认值是不错的方法。 |
默认搜索 |
当用户进入主对象页,他们通常会进行搜索,或者自动进行搜索(如果自动查找属性被选中)。默认搜索值作为一个搜索条件输入,下面网格中用蓝线显示。例如:在Geometric中,我们在默认搜索栏的”name”属性输入”*cir*”,当主Geometric页被访问时,执行搜索,结果如下。注意特殊属性的默认搜索值以蓝线显示。
|
式样 |
提供给日期型或过滤列表类型的属性。 如果是日期型,样式有以下几种:
如果是过滤列表属性,样式是一个指向过滤器定义的属性。更多信息请查看“过滤列表“(一旦过滤列表被填写,这里是一个链接) |
外部属性 |
这个字段基于另一个不同对象的属性值。它要求另一个属性,称为属性A,它的对象类已经被定义。外键属性,能够通过属性A引用对象的任何属性。这个字段也可在保存对象类定义时自动填充。
例如:你希望为零部件创建一个对象类,为零部件对象的每个实例关联设计说明书。在零部件对象类定义中,创建一个属性,叫做文档说明书。它是对象属性,数据源为文档。同时,你可以创建另一个叫做SpecID的外键属性,它的数据源指向文档的名称属性。当保存零部件对象类定义时,名称以外键字段属性出现。更多示例和定义,查看”外键”数据类型。 |
对象行为 |
对于数据类型为对象的属性,且属性指向的目标对象是可换版的;对象行为指定为固定的或浮动的。固定的表示这个属性指向目标对象的特定版本,即使新的版本被创建。浮动的表示这个属性指向目标对象的最新版本。 |
类路径 |
如果对象有类结构,可以为这个属性指定一个属于它的子类。这个属性下,选中子类的所有子类将被继承。如果没有指定子类,将假定属性属于父对象类。为了在属性中插入一个类路径,单击单元格。显示类结构对话框(如下)。选择属性所属的子类节点。点击绿色选中按钮完成选择。
|
版本
关于版本
对象的业务规则行为的建立是通过它的对象类定义的默认属性和对象实例中的生命周期状态属性实现的。当一个对象实例的业务流程状态发生变迁,它的数据或关系可能发生变化,这些变化可能会引起对对象是否过期的重新鉴定,是否过期由修订,版本和版次控制。修订动作是受对象类默认的属性控制的,标记在当前生命周期状态上。
版本可以自动或手动初始化。如果选择了自动,对象每被修改一次(比如 加锁,编辑和解锁),版次就会增加一次。对象的生命周期状态自动设置回起始状态。当我们选择手动换版,对象的版本只有当用户明确请求时才会换版。和自动更新版本一样,新版次更新后生命周期状态会设置回对象起始状态。
主版本的变更控制需要其他的额外条件。 当对象实例的生命周期状态是Released的时候,其后的任何修改都会产生一个新的主版本号, 就像新增一个版次把生命周期状态设置回起始状态一样。
主版本 |
版本字段—主版本增长,由业务逻辑控制,当处于发布状态的对象发生变化时,将引起主版本变更
|
次版本 |
版本字段—次版本增长,在应用程序级别由自定义的业务规则控制。
|
版号 |
一系列变化的整数值—当对象被锁定并保存时,根据Innovator的内部进程和规则自动增长。注意:每个对象保存更改时,换版将会发生,一个新版本将被创建。 |
编号 |
关键字段(例如零部件编号,文档编号),由业务规则控制。
|
Id |
对象实例的唯一标识符(对最终用户不可见)
|
生命周期 |
根据业务逻辑定义的一系列状态和状态改变,所有对象都可定义为一个指定生命周期内的一个状态。状态名称没有特殊意义,每个状态的定义标记由行为决定。 |
生命周期起始状态 |
生命周期中,被定义为起始点的状态。当一个新对象被创建时,它自动设置为起始状态。当换版时,对象也将自动设回到起始状态。
|
生命周期发布状态 |
生命周期中标记为“Release”的状态。一个生命周期中,可以有一个或多个标记为“Release”的状态。当一个状态为Release的对象换版,它的主版本将增长,生命周期设回为起始状态,且版号增长。
|
提升 |
指定同一生命周期上,通过状态改变关联的另一生命周期,改变对象状态的操作。 |
锁定,保存和解锁 |
保存和解锁:初始化并保存对象更改的一系列操作,它将引起版本变更。锁定,保存和解锁直接影响对象的主版本。次版本行为在应用程序级别由自定义的业务规则控制。 |
创建一个版本
1. 展开树视图的系统管理文件夹
2. 点击对象类节点在主窗体打开默认界面;
3. 点击主工具栏“新建”图标,弹出创建对话框;
4. 填充属性字段;
5. 点击上面工具栏的“保存,解锁并关闭”图标。
自动换版
如果选择自动换版,每当对象被修改(如加锁,编辑和解锁),对象的版次就会增加,且生命周期状态自动设置回起始状态。
下面为一个对象(例如:Part)设置为自动换版的行为示例:
手动版本
手动换版是一个可选项,可由管理员手动设置。当管理员定义对象类时,选择可换版,系统将根据业务或由用户手工执行,自动创建新版本。如果手动换版被启用,版本的菜单选项就变成可用,选择这个菜单选项,对象的新版本就会被创建
备注:只有当前未锁定的对象才能执行手工换版。
修改版本
1. 在树视图中展开系统管理文件夹;
2. 点击版本节点,主窗体将显示默认页面;
3. 在网格中选择版本行,点击主工具栏上的“编辑”图标,版本[版本名称]对话框将显示;
4. 修改属性字段;
5. 点击上面工具栏的“保存,解锁并关闭”图标。
删除版本
1. 在树视图中展开系统管理文件夹;
2. 点击版本节点,主窗体将显示默认页面;
3. 在网格中选择版本行,点击主工具栏上的“删除”图标;
4. 在弹出对话框中选择“确定”按钮,版本即删除。
复制和粘贴
关于复制和粘贴
复制和粘贴功能在Innovator7.0及其以上版本中使用能提高工作效率,对象可以从数据模型中复制出来然后粘贴到相容的对象中。此外该功能还允许用户进行以下操作:
> 在关系单元格中拷贝一个或是多个(复选)对象;
> 粘贴剪贴板的内容到同一对象类的不同源对象
> 在弹出窗口的网格中查看剪贴板内容,相关的源对象,关系类型和关联对象;
> 剪贴板中包含不同源对象的复制对象,在粘贴过程中,系统将进行控制,以确保能粘贴到正确的源对象上
复制
复制过程使用Innovator对象模型 (IOM)来获取和显示剪贴板中的每个关系,具体信息如下:
> 源ID(Source id)
> 源类型(Source type)
> 源关键字名称(Source keyed name)
> 关联ID(Related id)
> 关联类型(Related type)
> 关联对象关键字 (Related keyed name)
复制过程将原始ID保存在剪贴板。新ID在粘贴的时候分配。
从关系网格中复制:
1. 在关系网格中高亮选择一行或多行对象;
2. 点击主工具栏的“复制”图标。复制对象将显示在剪贴板中,并显示在剪贴板管理对话框中。
粘贴
粘贴功能是客户端活动,将先前从服务端复制的数据添加到新关系和结构中。粘贴使用Innovator 对象模型(IOM)添加新关系到目标对象。
注意:数据库不会自动更新。有效的更新是通过独立的目标保存操作来实现。
从主网格粘贴
1. 在关系网格中选择一行或多行;
2. 点击主工具栏粘贴图标。上次复制的内容列表将粘贴到源对象;
3. 参考下面的“兼容注意事项”。
从Tear-off窗口粘贴
当Tear-off文档对象是粘贴的目标:
1. 从菜单中选择粘贴,上次复制的内容就粘贴到已打开对象中;
2. 参考下面的“兼容注意事项”。
从关系网格粘贴
1. 点击关系工具栏粘贴图标,上次复制的内容就粘贴到活动页签中了;
2. 参考下面的“兼容注意事项”。
兼容性注意事项
当遇到下列情况之一,可认为节点列表与关系节点列表是兼容的:
1. 源类型和目标类型的关系类相同;
2. 源类型和目标类型关系类不同,但是关联类型相同,而且目标的关联类型不为空。这种情况下,一个确认信息会显示给用户。