EAS:二开基于单据组织隔离需求实现方案原创
50人赞赏了该文章
158次浏览
未经作者许可,禁止转载编辑于2024年12月02日 10:06:37
摘要由AI智能服务提供
本文介绍了在listui相关操作场景中,为实现单据组织隔离,需要对Listui扩展类中的getQueryExecutor方法进行重写。通过创建FilterInfo对象并添加基于当前公司id的过滤条件,与已有视图信息的过滤条件合并,最终获取查询执行器,确保查询结果符合业务逻辑和数据安全要求。
有用
反馈
首编于:2024年12月3日
关键词:EAS、二开、单据组织隔离、getQueryExecutor
前言:
实现代码:
在对应的Listui中重写 getQueryExecutor 方法:
protected IQueryExecutor getQueryExecutor(IMetaDataPK queryPK, EntityViewInfo viewInfo) { // TODO Auto-generated method stub FilterInfo filter1 = new FilterInfo(); filter1.getFilterItems().add(new FilterItemInfo("company.id", ContextHelperFactory.getRemoteInstance().getCurrentCompany().getId())); try { viewInfo.getFilter().mergeFilter(filter1, "and"); } catch (BOSException e) { // TODO Auto-generated catch block e.printStackTrace(); } // return super.getQueryExecutor(queryPK, viewInfo); }
总结:
这段代码的核心在于获取 listui
的查询执行器并添加满足单据组织隔离应用场景的过滤条件。通过创建专门的 FilterInfo
并填充基于当前公司 id
的过滤项,然后将其与已有视图信息的过滤条件合并(虽合并过程可能出现 BOSException
并做了简单异常处理),最终借助调用父类方法成功获取到了查询执行器。如此一来,在标准查询里就能够依据当前组织进行有效的过滤,从而实现单据的组织隔离功能,确保查询结果符合相应的业务逻辑和数据安全要求。
附:BOS二开案例及常见问题的解决方合集:https://vip.kingdee.com/link/s/lnEvP
赞 50
50人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读