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
Ø 在通过BC的GetFieldValue和SetFieldValue方法操作字段的时候,字段必须处于激活状态
Ø 符合以下任一条件的字段是激活的:
ü 系统字段(Id, Created, Created By, Updated, Updated By)
ü ForceActive属性为True的字段
ü 在当前View中显示的字段
ü 在当前Applet中的计算字段使用到的字段
ü LinkSpec属性为True的字段
ü 使用ActivateField方法激活的字段
u return语句放置在合适位置
Ø 不要将return语句写到finally里面,因为这样做会导致try、catch内产生的异常被 “吃” 掉
u 不在频繁调用的事件内写复杂的代码
Ø 对于被频繁调用的事件,例如PreGetFieldValue、PreSetFieldValue,不要在其中写复杂的代码,最好不要在其中写代码
u 准确选择Browser与Server Script
Ø Browser Script,一般使用的都是Java Script,跟通常的网页脚本没有区别,用于处理与用户的交互,界面变化,数据的验证等,无法操作数据库
Ø Server Script,运行在服务器端,一般用于处理对数据库的各种操作,也可以在服务器将html传输给浏览器之前修改html,从而改变客户端界面
u 只查询有索引的字段
Ø 在写查询代码对某个某个字段进行查询或排序操作之前,先确认这个字段上已经建立了索引
u 查询时使用ForwardOnly模式
Ø ForwardOnly,只允许遍历数据的时候从第一条到最后一条正序进行
Ø ForwardBackward,允许正序和倒序遍历,这个是查询的默认值,这种游标模式下系统需要存储游标中所有数据,所以会浪费性能,且当数据量超过一万条的时候会发生错误
Ø 所以,当你只需要对数据操作一遍的时候,一定要指定查询的游标模式为ForwardOnly
u 只在必要时实例化对象
Ø 尽量在必须的时候才实例化对象类型的变量,正常的代码顺序应该是:条件判断—声明对象—使用对象
u 减少公有变量
Ø 使用公有变量可以减少变量的数量,但是也有很多问题,例如:
Ø 没有恰当的事件释放公有变量
Ø 调试时无法快速定位变量变化
Ø 正确方法应该尽量减少公有变量,函数间通过参数传递变量
u 多使用with和switch语句
Ø 使用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的人说的,我还没遇到过,但这样做我们至少是声明了一个很难释放的公有的对象类型的变量,还是宁可信其有吧)
- Siebel Scripting Best Practices
- Siebel Scripting Best Practices
- Best Practices -
- 10 good shell scripting practices
- Web Services Best Practices
- JUnit best practices
- Javascript Best Practices
- CAB Best Practices
- 最佳实践(Best Practices)
- Java Database Best Practices
- 一些C# Best Practices
- LIVE Networking: Best Practices
- Scalability Best Practices
- Best Practices for WOW64
- Javascript Best Practices
- Log4j Best Practices
- Best practices when developing
- Java Best Practices
- 一道面试题
- ORACLE存过的基本格式
- 百度怎样去优化?
- Robocopy 用法
- 漫谈Java加密技术(一)
- Siebel Scripting Best Practices
- 走进林区 (2010.6)
- 将IIS默认ASP.NET版本升级为2.0
- TI OMAP 3530 psp compile note(1)
- 网页设计中应注意的细节问题
- .NET Compact Framework使用P/Invoke服务
- Zlib函数列表和使用手册
- 关于java web 开发中session过期的理解
- 词语搭配课题暑假研究任务