Siebel Scripting Best Practices

来源:互联网 发布:听音乐学英语软件 编辑:程序博客网 时间:2024/04/30 08:41

序:以下内容在Siebel 的BookShelf中都有,一些众所周知基础的不能再基础的东西,这里列举了一些Siebel开发中需要注意的地方,以及一些应该养成的良好编程习惯。

u 可以代替代码的方法

Ø  Field validation

Ø  User properties

Ø  Workflow

Ø  Personalization

Ø  Run-time events

Ø  State model

 

u 释放对象类型变量

Ø  对象释放方法:在finally语句内将声明的所有对象设为null

Ø  对象释放需要遵循先子后父的顺序:

ü  Pick/Associate/MVG BC先于其父BC释放

ü  BC先于BO释放

 

u 使用前验证返回的对象

Ø  对于ActiveBusObject, ActiveBusComp, ParentBusComp等方法返回的对象应该先判断其不为空且确实是需要的对象再使用

 

u 激活需要使用的Field

Ø  在通过BCGetFieldValueSetFieldValue方法操作字段的时候,字段必须处于激活状态

Ø  符合以下任一条件的字段是激活的:

ü  系统字段(Id, Created, Created By, Updated, Updated By)

ü  ForceActive属性为True的字段

ü  在当前View中显示的字段

ü  在当前Applet中的计算字段使用到的字段

ü  LinkSpec属性为True的字段

ü  使用ActivateField方法激活的字段

 

u return语句放置在合适位置

Ø  不要将return语句写到finally里面,因为这样做会导致trycatch内产生的异常被

 

u 不在频繁调用的事件内写复杂的代码

Ø  对于被频繁调用的事件,例如PreGetFieldValuePreSetFieldValue,不要在其中写复杂的代码,最好不要在其中写代码

 

u 准确选择BrowserServer Script

Ø  Browser Script,一般使用的都是Java Script,跟通常的网页脚本没有区别,用于处理与用户的交互,界面变化,数据的验证等,无法操作数据库

Ø  Server Script,运行在服务器端,一般用于处理对数据库的各种操作,也可以在服务器将html传输给浏览器之前修改html,从而改变客户端界面

 

u 只查询有索引的字段

Ø  在写查询代码对某个某个字段进行查询或排序操作之前,先确认这个字段上已经建立了索引

 

u 查询时使用ForwardOnly模式

Ø  ForwardOnly,只允许遍历数据的时候从第一条到最后一条正序进行

Ø  ForwardBackward,允许正序和倒序遍历,这个是查询的默认值,这种游标模式下系统需要存储游标中所有数据,所以会浪费性能,且当数据量超过一万条的时候会发生错误

Ø  所以,当你只需要对数据操作一遍的时候,一定要指定查询的游标模式为ForwardOnly

 

u 只在必要时实例化对象

Ø  尽量在必须的时候才实例化对象类型的变量,正常的代码顺序应该是:条件判断声明对象使用对象

 

u 减少公有变量

Ø  使用公有变量可以减少变量的数量,但是也有很多问题,例如:

Ø  没有恰当的事件释放公有变量

Ø  调试时无法快速定位变量变化

Ø  正确方法应该尽量减少公有变量,函数间通过参数传递变量

 

u 多使用withswitch语句

Ø  使用with语句的好处:

ü  提高代码可读性

ü  可以小幅度的提高性能

ü  当碰到某个判断条件有3个以上分支的时候,使用switch语句,好处:

ü  提高代码可读性

ü  可以小幅度的提高性能

 

u 使用Associate方法建立多对多关系

Ø  因为手动通过代码写多对多关系的场景不多,所以很多开发人员不习惯或者不知道有Associate这个方法,自己写很多的代码强行向中间表插入数据,这样麻烦且容易出问题。正确代码示例:

  

u 查询时使用准确的ViewMode

Ø  ViewMode机制是Siebel的权限管理的一个组成部分,用于过滤用户能够操作的数据,所以为了在代码中保证操作数据的准确性,一定要使用准确的ViewMode

 

u 使用LOV保存代码需要的常量

Ø  将代码中用的常量配成LOV,这样当变量需要变化的时候可以不要修改代码,也无需重启服务器

Ø  另外一个可以放置常量的地方:System Reference

 

u 注意GotoView语句的位置

Ø  GotoView语句必须放置在代码的最后,因为即便不放置在最后它也是最后执行的,而这会影响代码的可读性

 

u 关于TheApplication对象

Ø  不要试图在公有变量内声明Application对象,例如这个语句:var theApp = TheApplication() ;这样做可能导致内存泄露,性能下降等问题(这个是一个叫Joshua Weir的人说的,我还没遇到过,但这样做我们至少是声明了一个很难释放的公有的对象类型的变量,还是宁可信其有吧)

 

 

原创粉丝点击