由于申请/承认等操作是从共通画面操作,主业务处理是在workflow基盘处理后被调用,因此与一般WEB开发有一些需要注意的地方。
参数接收:
主业务处理中不能像一般Spring的Controller那样获取客户端提交过来的参数,所有参数都以Map方式提供。因此一些复杂的控件(比如表格式输入)的提交需要额外处理。
异常处理:
主业务处理不是被Controller调用,而是被workflow基盘调用。Service中抛出系统或业务异常,Controller中catch业务异常并设置错误信息这一处理机制不适用。
主业务处理中发生异常的话,会在画面上部显示一个红色错误飘出框。手动抛出WorkflowExternalException,能在错误飘出框中显示指定的错误信息。
画面迁移:
一般业务画面是通过workflow标准一览迁移过来的,会被传递很多workflow相关参数。其中有两个是迁移元URL和迁移元参数,申请/承认处理完后,workflow基盘会根据这两个参数做画面迁移。业务画面上点返回按钮时,也要利用这两个参数实现返回前画面的功能。
其他:
执行申请/承认时,被workflow基盘调用的主业务处理,并不被Spring容器所管理,因此不能执行注入等功能。
可以把业务处理写在一个Component中,然后手动初始化容器,加载该Component。
XxxService service = ApplicationContextProvider.getApplicationContext().getBean(XxxService.class);