Wednesday, November 22, 2006

专心spy第三天,keep on spying

雨是在不停的下的,但课还是要上的!原来今天没有讲workflow,要明天,今天讲了一些如何部署以及一些杂7杂8的东西,一个普元自己的开源的组织机构权限管理系统,一些ajax技术的使用,包括了被两个销售人员吹的很牛的richweb。总的来说今天讲的东西满多的,少而精,多而杂,呵呵!

说到了昨天讲的连接构件的连接线,在线上可以设置构件的返回值,也可以使用复杂表达式。复杂表达式用来对当前dom中的值进行判断,即对当前xml
bus中的数据。详见帮助的"EOS Studio"部分中"提示和技巧"下的"复杂条件判断"。

之后讲解了一下eos中个个目录和其中的文件,包括了自带的jboss应用服务器中的相关目录(这个貌似上次发给陈俊的压缩包里有详细的讲解)。然后发现一个好东东――YingJAD.EXE(好像是什么小颖java反编译程序),就是上次发给陈俊的一个压缩包里有的一个小程序(java反编译程序,从class反编译到源代码,灵的!哈哈)。在讲eos配置文件时讲到,在开发测试阶段一般使用jdbc去连接,而在部署应用的时候是使用DataSource。具体是这样的,在eosserver\config\eosconfig.xml中DBConnect里面key值为single的节点的值为false时使用DataSource而不是该节点下面几行的jdbc连接。DataSource的配置位于application
server中的,默认的即jboss-x.x.x\server\default\deploy\eos4jboss里面的ProductDataSource-ds.xml。

deploy:
1.导出项目为EOS项目,后缀为epj
2.用eosmgr中的应用管理里面的构件包发布项进行部署
注:若项目中含有自己写的业务构件,则部署完成后需重启server。
另外在部署后,实际应用中在eosmgr的日志配置里关闭debug,减少额外系统开销。

在部署讲完之后继续讲了些eosmgr里的东西。"监控信息"能够对运行时context中的内容和sql的内容进行实时监控,这点可以说比较实用吧。在"安全控制"中的策略控制可进行访问限制的设置。

接下来就对那个开源的组织机构权限管理系统进行了自己动手的部署操作(这个系统上次也发给陈俊了)。在部署过程中是根据其中的install.txt来操作的。部署成功后从eos
studio中找到jsp里那个login的页面,然后进行登录。登录后就是一些管理功能放在不同的菜单下供使用。
1.系统管理菜单:
(1).角色管理:用户的权限是通过授予用户不同的角色来配置的,对角色的控制性由弱到强一次是:菜单权限,功能权限,数据权限。
(2).菜单管理:配置页面上所有的菜单。
(3).功能管理:配置具体功能所对应的展现逻辑、jsp及业务逻辑。
(4).逻辑管理:管理发布的构件包,可设置包的校验来限制角色对包的访问。
(5).业务字典:配置业务字典。
(6).数据权限管理:对数据实体的过滤,可以取SessionEntity中的数据。
注:此数据权限将应用到"角色管理"的"数据范围约束权限"中。
(7).元数据管理:呵呵,老师她也还没研究过,暂时我也没时间。呵呵!
2.机构管理菜单:
(1).机构管理:以树的结构展现了个部门之间的关系。可用拖拉方式实现部门的移动和关系的设定。其中包括了岗位信息的设置管理,这个可能对我们比较有用。就是通过岗位而不是角色来进行权限的设定,不过两种方式道理是一样的。

接下来讲到了将自己前两天做的一个练习挂到刚才部署好的开源系统上。(通过增加一个菜单的方式)
1.从"系统管理"-->"菜单管理"-->"增加菜单"
2.把菜单对应的jsp或逻辑加入菜单
3.在角色管理中把这个菜单权限授予某角色
4.属于该角色的用户登录系统后将看到此菜单并可以使用新加的功能。

实际项目开发中的注意事项:
首先是要看《系统功能分解与跟踪矩阵》...xls和《EOS应用开发过程参考》.doc及《交行...开发规范》.doc这三个文档(都给陈俊了)。而后对于构件包的开发以一人开发一个构件包为宜。在需求阶段:填写《系统功能分解与跟踪矩阵》...xls。之后由项目经理把项目放到cvs上,各开发人员每天check
out下来,开发自己的构件包,然后每天再把自己做的那部分check in上去。由项目经理每天对大家check
in的代码走查,看一下是否符合规范。对数据库的设计和变更应该交给dba来统一管理,以免每个人各自更改了自己的数据库实体而导致其他人引用到这个实体时发生问题。对于页面风格,css由美工工艺更改,开发人员只需使用class来调用css中的定义(这个大家都知道,哈哈)。

今天唯一让我很兴奋的一个功能就是文档生成,呵呵~~!程序员都是懒人,懒也是一种美德!选择项目菜单,然后选择eos文档生成,选择生成文档的格式等信息,一路next直到偷懒的事情由电脑完成。哈哈!

运算逻辑构件的开发:
运算逻辑构件实质为java类的static method。具体开发步骤:
1.在bizlet里新建运算逻辑类(哈哈,熟悉的java类)。
2.点添加一个运算逻辑
3.确保"可导出"这个选项选中,finish!
注:"可导出"这个选项说明该构件可用于其他项目中。
另外,在debug运算构件时,可以点"调试数据"来手动在context中任意添加想要的数据(最好切换到文本模式来添加数据,这样比较直观),方便调试。
此外,运算构件属性中的"输入"表示将bizContext中的东西(数据)copy给运算逻辑构件。"输出"指将运算逻辑构件的值copy至bixContext。

最后讲了点ajax的东西,发现eos把httprequest封装了一下,成为hiddensubmit这么个object。在使用ajax时,不是调用展现逻辑,而是直接调用业务构件,即直接从jsp页面通过js提交东西到业务构件。

tips:
1.按住ctrl再双击构件则可以进入构件内部。对于自己开发的运算构件则直接进入该运算构件的java代码。页面构件则进入jsp代码。
2.除了用java提供的api处理xml,还可以用eos构件参考手册中eos api里java
api节点处理中的api或者任何喜欢的第三方api。(这个好像是废话哦,哈哈)

今天的问题:
1.richweb其实并没有想像中的强,就两三个控件,老师自己也说这个是软肋!

keep on raining, keep on spying~~~! 1st keep on sleeping now! hehehe!

No comments: