④内部公开请勿外传1.用对应的方法id,跟bostype查询下面这个语句,在查询分析器里点击服务器端脚本,执行下面的语句(bostype,跟id需要替换)com.kingdee.bos.workflow.biz.EventUtils.getMatchedEventStructEntries(ctx,newcom.kingdee.bos.util.BOSObjectType("8110AAB2"),newcom.kingdee.bos.metadata.MetaDataPK("dfd2c083-00fa-1000-e000-001fc0a813e6")).length;pkid跟bostype这个可以通过workflow.log日志中根据对应单据的id查找,如下图(1)如果发现查询出的length为>=2。说明对于同一个业务的方法定义了两个function元数据,这种情况会引起偶发触发不了流程。具体查询的话可以通过com.kingdee.bos.workflow.biz.EventUtils.getMatchedEventStructEntries(ctx,newcom.kingdee.bos.util.BOSObjectType("298630F6"),newcom.kingdee.bos.metadata.MetaDataPK("dfd2c083-00fa-1000-e000-001fc0a813e6"))[0].getFunction();com.kingdee.bos.workflow.biz.EventUtils.getMatchedEventStructEntries(ctx,newcom.kingdee.bos.util.BOSObjectType("298630F6"),newcom.kingdee.bos.metadata.MetaDataPK("dfd2c083-00fa-1000-e000-001fc0a813e6"))[1].getFunction();通过上面的语句可以查询到罪魁祸首。查到是对元数据的同一个方法多加了什么function造成的。可以使用下面的方法查询对应的function加载路径com.kingdee.bos.dao.xml.impl.MDLoader.getInstance().cl.getResource("com/kingdee/eas/cp/bc/app/EvectionReqBillFunction.function")(2)如果发现查询结果length为0,那就说明元数据有问题,对应的entity,或者function出现了问题。重点应该排除1:是否用dep开发动了元数据造成方法id变化了,现场改造了function有问题2:如果是用bos工具开发的也是类似排除方向也可以通过查询分析器协助分析:找到对应提交点击的function,使用如下查找到对应的function方法的名称,com.kingdee.bos.metadata.MetaDataLoaderFactory.getLocalMetaDataLoader(ctx).getFunction(com.kingdee.bos.metadata.MetaDataPK.create("com.kingdee.eas.fdc.contract.app.ContractBillEditUIFunction")).getOperation().get(0).getName()在使用下面的com.kingdee.bos.metadata.MetaDataLoaderFactory.getLocalMetaDataLoader(ctx).getFunction(com.kingdee.bos.metadata.MetaDataPK.create("com.kingdee.eas.fdc.contract.app.ContractBillEditUIFunction")).getOperation().get(0).getMethodRef().getInnerID()看对应的方法id是什么1/3④内部公开请勿外传如下是常用的查询语句,自己根据情况调整。都是需要点击运行服务器端脚本com.kingdee.bos.workflow.biz.EventUtils.getMatchedEventStructEntries(ctx,newcom.kingdee.bos.util.BOSObjectType("8110AAB2"),newcom.kingdee.bos.metadata.MetaDataPK("dfd2c083-00fa-1000-e000-001fc0a813e6")).length;com.kingdee.bos.workflow.biz.EventUtils.getMatchedEventStructEntries(ctx,newcom.kingdee.bos.util.BOSObjectType("0D6DD1F4"),newcom.kingdee.bos.metadata.MetaDataPK("dfd2c083-00fa-1000-e000-001fc0a813e6")).length;java.lang.Class.forName("com.kingdee.bos.workflow.biz.EventUtils",true,java.lang.Thread.currentThread().getContextClassLoader())java.lang.Thread.currentThread().getName()f=c.getDeclaredField("bizEventMap");com.kingdee.bos.workflow.biz.EventUtils.getByMethod(ctx,"dfd2c083-00fa-1000-e000-001fc0a813e68110AAB2").length;com.kingdee.bos.workflow.biz.EventUtils.clearDynBizEventMap();isEmpty();com.kingdee.bos.metadata.MetaDataLoaderFactory.getLocalMetaDataLoader(ctx).getFunctions()com.kingdee.bos.metadata.MetaDataLoaderFactory.getLocalMetaDataLoader(ctx).getFunction(com.kingdee.bos.metadata.MetaDataPK.create("com.kingdee.eas.fdc.contract.app.ContractBillEditUIFunction")).getOperation().get(0).getMethodRef().getInnerID()com.kingdee.bos.metadata.MetaDataLoaderFactory.getLocalMetaDataLoader(ctx).getFunction(com.kingdee.bos.metadata.MetaDataPK.create("com.kingdee.eas.fdc.contract.app.ContractBillEditUIFunction")).getOperation().get(0).getBORef().getType().toString().getMethodRef()Boolean.valueOf(com.kingdee.bos.metadata.MetaDataLoaderFactory.getLocalMetaDataLoader(ctx).getFunction(com.kingdee.bos.metadata.MetaDataPK.create("com.kingdee.eas.basedata.assistant.app.AccountApplyBillEditUIFunction")).getOperation().get(0).getBORef().getExtendedProperty("configured"))Stringv1=bo.getExtendedProperty("isDynamic");Stringv2=operationInfo.getExtendedProperty("configured");2/3④内部公开请勿外传com.kingdee.bos.metadata.MetaDataLoaderFactory.getLocalMetaDataLoader(ctx).getFunction(com.kingdee.bos.metadata.MetaDataPK.create("com.kingdee.eas.fdc.contract.app.ContractBillEditUIFunction")).getOperation().get(0).getEventRef()3/3