技术开发 频道

WebSphere Process Server中的异常处理


3. 人工任务的异常处理

    人工任务(Human Task)的异常处理和BPEL业务流程的异常处理有很大不同,这是由人工任务的驱动机制决定的。一个人工任务的生命周期由产生(Create)、启动(Start)、声明(Claim)和完成(Complete)几个动作组成。在一个业务流程中,当流程流转到某个人工结点,工作流引擎会自动产生(Create)和启动(Start)相应的人工任务实例。这种情况下,人工任务在创建和启动时产生的系统异常,会被返回给业务流程。

    但是人工任务的声明(Claim)和完成(Complete)则不会由工作流引擎来自动完成,而是必须由客户端(Client)调用WPS提供的API来完成。这种情况下,在声明和完成时发生的异常会被返回给客户端(Client),在业务流程中无法捕获。

    查看WPS的API文档,我们可以发现,声明(Claim)和完成(Complete)人工任务的方法允许抛出的异常有CannotCreateWorkItemException, UnexpectedFailureException, java.rmi.RemoteException, javax.ejb.EJBException等多种,每种异常都代表了不同的出错情形,客户端可以根据捕捉到的异常类型去做相应的业务处理。抛出异常后,此人工任务实例进入失败(Failed)状态。

0
相关文章