1.每当创建一个session的时候,不管有没有调用session.txBegin,最好最后用session.txClose 关闭下session,其次IDataCollection对象使用过后也要关闭。上述2种情况会造成数据库连接过多,可能造成死锁。
2.尽量不要使用retrieveAllObjects 方法很耗资源。
3注意jdk版本问题造成的语法问题。
4.新建sfo后,hs_summary为必填字段,所以如果你即使不用这个字段,也得随意附上一个值给这字段。
5.如果某个字段为 reference 类型,且Input style 为dropdown list 形式,那么用户第一次选择了这个字段的值后,以后每个transition里面碰到这个字段,都得在这个字段的
public IFieldValueList XXXXXX_SetReferenceList(IButterflyContext ctx, SFFieldEventArgs args)方法里面,把原来的值读出来,然后再return 给这个方法。否则前台就会显示
出 reference类型的所有bo或者sfo。
6. 如果一个字段为boolean 类型,必须用 setBooleanField 方法来设置其值,使用setField方法是不会起作用的,这个好像和API的说明有违背(API的说明上说只要是attribute类型都可)。最好少用setField方法(除了string类型)。
7.设置布尔值字段的时候尽量使用setbooleanfield 方法,反正我试了用setfield的时候有些没有起作用。还有set字段值之前最好add这个字段,即先addfield(),然后再setbooleanfield()。
8 获取sfo的状态的中文名称:
如果是在当前sfo中 IState state = sfo.getState();