您的位置:首页 > 编程语言 > Python开发

Python与CMDBuild之CMDBuild基本配置-Class

2015-01-15 14:27 267 查看
刚接手CMDBuild这个项目的时候上网搜索关于CMDBuild的中文资料,发现其资料少的可怜,如果笔者没有记错的话,其中经过我筛选发现安装指南有2篇、Python开发的帖子也有2篇。

安装的2篇文章经过我的实践都是可以在CMDBuild2.2版本中正常使用的,只是因为其作者写的时候版本较低,有一些步骤在2.2中已经可以省略了,关于安装的问题我这里就不在赘述了。

这一篇文章我想讲的是怎么用CMDBuild,虽然其官方文档写了很多,但是毕竟其不是中文语境,有时候笔者并不能理解其意思(尽情吐槽笔者英语吧),这里我就对我在实施CMDBuild项目中遇到的问题做一个总结,希望对大家有用。

用管理员账户登陆之后我们进入的是这个界面,空空的什么都没有。是不是感觉不知道点哪里去配置?或许是笔者二了(看文档不仔细啊)。



在屏幕中间中点击Administration module这个超链接就可以进入管理员界面了。

ADD Class

进入管理员界面之后我们就需要ADD Class了,Class其实就是一张表格,我们可以自己添加字段。



其中Superclass勾选的话其类为超类,超类里面是可以有子类的(子表格),Inherits from就是继承,选择当前类的父类。

ADD Attributes

在新建的Class中默认会有Code、Description两项,其中Code是可以置为无效的,Description是必须有效的(但是可以隐藏),为什么必须有效,笔者这里卖个关子,后文中笔者会告诉大家。

Attributes数据类型是非常重要的,他决定这个Attributes的用途,数据类型分为Boolean、Char、Date、Decimal、Double、Inet、Integer、Lookup、Reference、String、Text、Time、Timestamp,文档中都写好了其作用,我们这里着重说Lookup与Reference的使用。

    Lookup:

        Lookup很好使用,在边侧栏中选择Lookup Type一项就可以进入Lookup的界面,这里我们可以新增、修改、删除我们定义的Lookup。Lookup说白了就是一个可选项,我们在后台定义好,直接将Attributes的类型设置为Lookup我们在普通界面创建Card的时候该字段就是一个单选下拉列表。

        但是,关于Lookup笔者遇到一个很奇怪的问题,一开始我将CMDBuild部署在本机中(win、linux都试过),Lookup的创建和修改都是正常的,但是我将CMDBuild部署在服务器中时我对Lookup进行操作的话就会报错,说“找不到Description这个字段”,这个问题纠结了笔者很久很久,一开始笔者以为是自己的配置错误,通过反复的删除重装,这个问题并没有解决,后来笔者的同事提醒笔者关注一下我本机的Tomcat与服务器的Tomcat版本,发现笔者的本机装的是Tomcat6.0.43,而服务器上为笔者同事通过yum安装的Tomcat其版本笔者忘记了,笔者将其换为6.0.43之后,Lookup的创建、修改正常了。

    Reference:

        “Reference”笔者将其视为一个扩展的Lookup,他能做到Lookup所做到的,但是他更加强大,但是也复杂多了。

        说道Reference,不得不说Domain,Reference其外在、Domain才是他的核心。要用Reference我们必须先创建一个Domain,而创建一个Domain的前提就是我们要有2个Class(其实一个Class也可以了,但是笔者想不出其有什么意义)。
        我们需要添加一个Domain,点击ADD Domain即可。进入一下界面



Name:唯一名,也是做二次开发中很重要的。

        Domain Description:我们把它当做可见名即可。

        Origin与Destination这两项与Cardinality中所选对应为Origin:Destination

        举个栗子:

            Origin:A

            Destination:B

            Cardinality:1:N

            则我们可以在B表中设置Reference类型,其关系为此Domain,在B表中这一个字段可以选择A中的每一个Card。

            通过笔者实验,无论Origin、Destination为什么,只要在Cardinality中所对应的N为谁,则可以再谁中创建Reference为此Domain。但有一点在笔者用的2.2版本中如果将Cardinality设置为N:N或者1:1,将无法选择,笔者暂时也没有研究出来为何如此,但是通过其官网的论坛中CMDBuild团队在其前面的版本解释为暂时没有实现这个功能,但其论坛为意大利语,笔者并不完全肯定,如果哪位同学知道告诉一下笔者呗。

            Domain还有一项Attributes,其Attributes与Class的Attributes差别不大,只是类型中不再有Reference,填写Domain中的Attributes可以再使用该Domain的Class多出Domain中Attributes的,只是这些Attributes为隐藏的,隐藏在该字段中,需要我们点击打开按钮才能看到这些Attributes。

            特别注意1:笔者在使用Domain中遇到了一个意想不到的问题,我将Domain设好,Reference类型建好,但是在使用中笔者在下拉框中看不到任何选项,但是如果点击查找符号(放大镜标示)却能看到完整的选项,但是选了又没用,这是为何?这就是为什么Description不能置为无效的其中一点原因,一个Domain的来源Class其Description必须有内容才能显示在下拉框中(下拉框中的内容为Description中所填内容)

            特别注意2:各位同学如果需要在同一个表中反复用到其与另一个表的关系,但是其所填内容又不相同注意一定要创建多个Domain,因为如果同一个Domain,那么你填一个等于填全部。

好了关于CMDBuild的配置中“Class的创建”笔者今天就讲到这里,希望笔者的总结对各位同学有帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 团队 界面