流程提交或打开待阅后，如何刷新第三方系统的统一待办的列表?
李小翔
2014-05-17 09:00

内容列表

门户集成时，往往需要实现统一待办集成，而统一待办系统通常要实现：
定时或（准）实时的从OA或BPM系统中抓取（或推送）待办、待阅等任务信息
在门户首页或特定栏目下，显示待办、待阅列表
与OA或BPM系统实现SSO
从列表中打开待办任务后，任务提交时，需要自动刷新门户上的列表
将BroBPM与统一待办系统实现实现任务同步、SSO集成后，考虑第最后的刷新需求，在BroBPM中待办任务提交、或者打开待阅后，会自动执行下面的步骤（js）：
尝试调用父窗口（window.opener）的 reloadTodo 或 reloadToread 方法来刷新待办/待阅/文档列表
如果调用失败（js方法不存在或不允许跨域访问等），进一步尝试重新加载父页面（opener.location.reload()）
如果还是失败，则尝试提升当前域（即修改 document.domain，如 bpm.bropen.com.cn 去掉前缀、提升到 bropen.com.cn），并重复执行上述两步
给予上述刷新机制，统一待办系统可以：
为了避免跨域问题，使用反向代理等机制，将所有系统保持在同一个子域下（如portal.bropen.com.cn）
或者保持在同一个父域下，并且当加载完列表页面后，主动提升当前域为父域，以便各个子系统的页面能够通过js互相访问
在待办、待阅列表中提供reloadTodo、reloadToread的js api，这两个api用来实现ajax或者页面的刷新
否则，当BPM系统或其他系统通过调用opener.location.reload()来刷新时，如果列表中有查询操作，则应该采用GET方式、而不是POST方式，以免浏览器弹出重新发送请求的提示