BPS工作总结

版权声明:未经同意,请勿转载!!! https://blog.csdn.net/kyy_123/article/details/82146904

1、定义好一个流程之后,一般都是通过自定义的url页面进行挂接,实现特定的功能。而业务表和流程实例如果想要关联到一起的话,就需要传递对应的参数。在使用挂接的url页面时,则可以通过在页面中获取request请求域中的workItemID,然后在逻辑流中作为入参,进而查询工作项明细workitem。

2、查询过workitem之后,可以得到对应的活动实例processinstid,这样就可以将业务表和流程实例进行关联了。将workitem中的processinstid赋值给业务表中的processinstid字段值,然后便可以查询对应的业务表单信息。

3、流程中需要的相关数据一般指的都是活动分支或聚合时所需要设置的连接线条件。设置相关数据时,可以在逻辑流中定义临时变量,用来存放条件数据,然后通过表单中查询的或者页面中传递的数据进行赋值操作。

4、逻辑流中使用的processinstid和workItemID一般都是通过业务表单数据及页面中传递获取的。

5、服务器报“从资源库加载流失败”异常时,首先判断逻辑流的逻辑流程是否通顺,其次查看每个活动图元的操作是否正确(一般包括:赋值语法操作,变量赋值操作等

6、服务器报“数据实体的主键为null”时,那么一般是因为在查询业务表单信息时,虽然调用了expandEntity构件,但是该构件是按照数据表主键进行数据查询的,但是此时缺少主键,所以需要先查询工作项明细信息,通过workItemID查询workitem,然后利用workitem中的processinstid查询数据实体,这时候再次调用expandEntity构件就可以获取到完整的表单信息了。

7、EOS可以利用“功能向导”自动生成jsp页面,前提是需要开发人员事先设置好数据之间的关系。

8、工作流程在保存业务数据实体时出现异常信息:

Message: 序列号生成错误(ids for this class must be manually assigned before calling save(): com.primeton.train.leavemaster.leavemaster.Leavemaster)
	at com.primeton.das.entity.impl.exception.DASExceptionHelper.convert(DASExceptionHelper.java:97)
	at com.primeton.das.entity.impl.DASSessionImpl.insertEntity(DASSessionImpl.java:123)
	at com.eos.foundation.database.DatabaseUtil.insertEntity(DatabaseUtil.java:226)
	... 71 more
Caused by: com.primeton.das.entity.impl.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): com.primeton.train.leavemaster.leavemaster.Leavemaster
	at com.primeton.das.entity.impl.hibernate.id.Assigned.generate(Assigned.java:33)
	at com.primeton.das.entity.impl.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:98)
	at com.primeton.das.entity.impl.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
	at com.primeton.das.entity.impl.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
	at com.primeton.das.entity.impl.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)
	at com.primeton.das.entity.impl.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
	at com.primeton.das.entity.impl.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
	at com.primeton.das.entity.impl.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:550)
	at com.primeton.das.entity.impl.hibernate.impl.SessionImpl.save(SessionImpl.java:538)
	at com.primeton.das.entity.impl.DASSessionImpl._insert(DASSessionImpl.java:112)
	at com.primeton.das.entity.impl.DASSessionImpl.insertEntity(DASSessionImpl.java:119)
	... 72 more

原因:在保存实体时,业务表的主键是自增的,但主键自增也是通过内置的序列号生成器缓冲池,所以此时需要先获取主键信息getPrimaryKey。

猜你喜欢

转载自blog.csdn.net/kyy_123/article/details/82146904