本文讨论了自定义fcade生成子系统树后未找到方法分析的问题,列举了导致子系统树加载异常的几种原因,如私包加载、配置缺失、生成过程报错等,并提供了详细的排查步骤和解决方案,包括重新生成子系统树、检查日志文件、分析私包部署、检查标准树配置、处理dep方案未导入等问题,以及解决botp单据规则配置不显示的方法。
如下图所示自定义fcade生成子系统树后没找到方法
分析:关于子系统树加载异常问题,一般由以下几方面原因导致:1、加载到私包(私包优先);2、服务器配置文件没有配置私包路径少了bim/*配置;3、标准子系统树正常客户化树没有配置;4、生成子系统树过程中报错;5、有些界面做了个性化设置通过业务代码控制显示与否(当然这个需要业务自行处理);5、方案挂在dep上,6单据转换规则不显示(实体上加了nobotp属性,一般是二开用dep扩展导致)
排查步骤如下:
一、先重新生成子系统树(需要停服),如下图管理控制台生成子系统树,生成完后检查eas/admin/logs/SubSystem.log。生成的过程中报错修改对应报错信息,重新生成即可
SubSystem.log报如下错误:Can NOT find xxx.solution metadata.
首先检查服务器metas/eas/emm_em-metas.jar包有没有eas.solution,如果没有替换此包即可,如果有检查eas/server/properties/sql.jar包存在与否,不存在直接手工拷贝一份即可。
二、重新生成子系统树,若日志不报错(即步骤一无明显异常)。进一步分析,此时我们需要明确,当前页面是在哪里进去的会存在哪棵树下,以下图为例,该树是存在于facade上。(需要全屏查看才能知晓那棵树)
找到E:\Kingdee\eas\server\metas\bos\mdbview-metas.jar 然后用WinRAR打开如下图
三、上图中拿到的是facade树所以用查询分析器执行以下服务端脚本com.kingdee.bos.dao.xml.impl.MDLoader.getInstance().cl.getResource("com_kingdee_eas_base_function_facade.mdbview") (不同的树对用后面的参数不同)
上图来看没有加载到私包,这个排查方案我们在步骤四中继续排查。下面来看一个加载到私包的。
加载到私包的我们先备份私包,然后找到该私包,用WinRAR打开删除该包目录下的*mdview文件,重启服务器即可解决
四、如没有加载到私包,我们检查下私包部署目录,一般部署在bim目录下,所以检查每个实例eas\server\profiles\serverN\config\vm.properties文件,有没有配置bim/*,哪个实例没有配置加上重启服务即可
五、若以上还不能加载到,那我们看下标准树正常与否,标准树正常则证明子系统树已无问题,有可能为客户化树少了配置或业务控制,打开EAS客户端,用管理员登录搜索系统树设置,如下图
六、以上排查均无效,则有可能方案挂在dep上,dep方案没有导入造成(一般工作流会有类似问题),找到缺少的子树目录,例如没有com.kingdee.eas.cp.bc.fksqdml树,我们就这样处理,查询如下sql确认是否能找到对用的元数据片段,如果能查到值则证明是系统树目录挂在dep导致的,dep方案没启用或者没导入。检查eas\server\profiles\server1\config\subsystem.xml目录若存在客户化树删除重启即可,重启dep即可解决。
七、botp单据规则配置不显示如下图
该问题由于二开用dep扩展实体打开nobotp属性导致,无论是true或是false都不行,解决方案删除即可
推荐阅读