【EAS工作流】EAS客户端流程实例图上点单据按钮获取web单据url逻辑原创
金蝶云社区-汪伟康
汪伟康
13人赞赏了该文章 106次浏览 未经作者许可,禁止转载编辑于2024年09月12日 10:37:12

操作截图:

image.png



EAS客户端-工作流监控-流程实例图-单据 获取web单据url逻辑


后台方法:

com.kingdee.eas.base.message.app.WebViewMessageFacadeControllerBean._getUrlByBillID(Context, String)


1、拿到该单据关联的流程实例的流程定义中的所有活动实例,遍历所有活动实例


2、

如果是 WebBillManpowerActivityDef类型 ( 动态Web 单据 人工节点定义)(这种节点一般都没有用到可忽略该场景

取:act.getUrl()

节点配置的url



3、没取到url继续

如果是 ApproveActivityDef (审批节点)

判断是否支持isWebBillApprove(即自定义web URL)

<ExtendedAttribute Name="isWebBillApprove">false</ExtendedAttribute>

如果是 就取 WebBillApproveUrl 


4、没取到url继续

如果是ManpowerActivityDef(人工节点)

判断当前流程实例是否存在对应的该活动定义的活动实例,如果有就取该节点的waf2的界面方案中的url



5、没取到url继续

通过单据id获取bos的动态web单据url(即单据entity的扩展属性isDynamic为true,并且扩展属性webEditUI有值)

EntityObjectInfo vo = loader.getEntity(type);

if (vo != null) {

String v = vo.getExtendedProperty("isDynamic");

String editpk = vo.getExtendedProperty("webEditUI");

if ("true".equalsIgnoreCase(v) && !StringUtils.isEmpty(editpk)) {

return new String[] { "/winlet/edit/editUIProxy.jsf", editpk };

}


6、没取到url继续

获取非动态web单据(单据entity 的扩展属性pureWFBillUrl,没有就取扩展属性 webEditPage,没有就取扩展属性webEditUI)


7、还是取不到,最终取这里(取实体的包名去掉(com.kingdee.eas)之后将.替换成/,然后再拼接上entity的name,再拼接上Edit.jsf)

如:/easweb//fdc/contract/payRequestBillEdit.jsf?billId=bLl1Ctg6SzC55f6HYSjp38mlqGk%3D


总结

如果走到最后一步,这种方式取到的url不一定正确。

所以我们一般根据实际情况:

如果有waf2单据界面方案,那么就在人工节点(如单据提交节点)配置waf2单据界面方案;

如果是自定义web url,那么就在审批节点配置自定义 web url。

图标赞 13
13人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!