拷贝过来的bos解决方案,启动测试一直停留在服务器就绪步骤。BOS业务建模工具启动测
试后一直停留在2011-03-01 11:46:08 信息 [apusic.server.Main] 服务器就绪。无法启动服务器。
拷贝过来的解决方案,其解决方案\runtime\apusic\config\server.xml中的内容为空。
拷贝一个能正常启动测试的该配置文件,替换即可。.
EAS703.
EAS7.0.3,bos6.1.0
bos导入703的demo帐套,服务器端为703.启动测试后,测试启动的服务器端自动关闭并报错。但是如果用控制台启动,则没有问题。
尝试过更新bos工具,更新解决方案,重新构建等均无法解决。
现场更新补丁:PT054300。.
EASV7.0.3
解决方法:
将PT028007下载到本地,然后在bos工具“工具-更新BOS工具”中进行安装,解决插件下载不下来的问题。
如果存在,则把“$EAS_HOME\ eas\server\lib\sp”目录下面的“sp-metadata.jar”改名为“metadata.jar”并替换“$EAS_HOME\eas\server\deploy\fileserver.ear\easWebClient\BOSModular\boscommon\eclipse\plugins\com.kingdee.bos.metadata_6.1.0”目录下的“metadata.jar”(替换前备份一下);这样建模工具再连接的时候就可以直接更新该目录下的“metadata.jar”包。
如果不存在,则执行下一步。
common.jar
ormrpc.jar
bosframework.jar
metadata.jar
将这四个文件覆盖服务器“$EAS_HOME\eas\server\deploy\fileserver.ear\easWebClient\BOSModular\boscommon\eclipse\plugins”路径下的如下文件:
com.kingdee.bos.common_6.1.0 (对应common.jar)
com.kingdee.bos.metadata_6.1.0 (对应metadata.jar)
com.kingdee.bos.ormrpc_6.1.0 (对应ormrpc.jar)
以及“BOSModular\bosruntime\eclipse\plugins”路径下的“com.kingdee.bos.bosframework_6.1.0”(对应bosframework.jar)。
EASV6.0.1
BOS快测启动EAS登陆过程中,快测服务器终止,报错详情见附件
2012-08-28 16:44:09 错误 [apusic.server.Main] 启动 'apusic:name=J2EEDeployer,j2eeType=Service' 服务失败。
java.lang.NoClassDefFoundError: org/operamasks/faces/render/common/AjaxRendererBase
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)。
请检查现场bos工具使用的jdk版本是否1.5版本。
如果jdk版本确认没有问题,根据异常提示:找不到web相关的类
java.lang.NoClassDefFoundError: org/operamasks/faces/render/common/AjaxRendererBase,怀疑更新方案部分引用的类没有更新完整,需要现场参考其他正常环境中的类所在的包,手工同步类所在的jar包,AjaxRendererBase类所在jar:eas\server\deploy\easweb.ear\eas_web.war\WEB-INF\lib,需要拷贝到开发环境解决方案目录:
解决方案\web\webRoot\WEB-INF\lib目录下。
请现场参考处理。
701bos开发工具,主菜单管理打开,所有标准产品菜单无法显示。
根据分析,本机验证,通过服务端控制台新建的数据中心,查看数据库表T_pm_mainmenuitem,其中flevel字段有记录为null或者为0,导致在bos开发工具中无法正常显示“主菜单”内容。
应该是创建数据中心的脚本中,初始化T_pm_mainmenuitem表数据的某些脚本,没有提供flevel字段的初始化。
后续的补丁中应该有对相关记录的修复脚本(每个记录属于不同业务领域提供,因此,修复的脚本应该也是不同业务领域的补丁提供),需要现场更新相关的业务领域的最新补丁,并正确执行相关补丁中的数据库脚本。
75版本bos工具最新补丁已经可以进行提示指导
或者手工进行修复:
修复思路:
如果flevel为null或者为0,需要参考其flongnumber字段,将flevel字段手工修复.
修复方法:flongnumber字段中的!号有多少个,flevel就等于,!号的总数+1
可以参考flevel字段不为空的记录,其flevel和flongnumber的关系。
或者使用以下脚本处理:
update t_pm_mainmenuitem mm set flevel = (select flevel from t_bas_sysmenuitem sm where sm.flevel is not null and sm.flongnumber = mm.flongnumber) where flevel is null and exists(select * from t_bas_sysmenuitem sm where sm.flevel is not null and sm.flongnumber = mm.flongnumber)
如果仍有问题,请检查flevel is null的记录,然后删除。
eas控制台bim服务启动异常。
修改 eas/admin/upater/updater.sh文件(小型机AIX系统而言,windows下的是eas/admin/upater/updater.bat)中的“CLASSPATH=$EAS_HOME/admin/updater/boot/tl_launcher.jar”,在文件中CLASSPATH后增加如下信息:
CLASSPATH=$EAS_HOME/admin/updater/boot/tl_launcher.jar:$EAS_HOME/admin/updater/server/lib/jetty.jar:$EAS_HOME/admin/updater/server/lib/commons-logging.jar:$EAS_HOME/admin/updater/server/lib/log4j-1.2.6.jar:$EAS_HOME/admin/updater/server/lib/servlet.jar”
各个jar之间连续,不要有任何空格或者换行,unix、Linux环境下多个路径之间使用“:”分隔;Windows环境下多个路径使用“;”分隔。
EAS 应用及bos相应的补丁打到最新,bos 工具更新,然后导入新的解决方案,bos下启动运行调试,客户登录后点击任何单据或基础资料报错。
报错信息:错误信息:java.lang.IllegalStateException: Config Service NOT inited.
错误详细堆栈信息:com.kingdee.bos.rpc.RPCException: java.lang.IllegalStateException: Config Service NOT inited。
请检查解决方案\runtime\server\profiles\server1\config\listenerconfig.data
该文件中是否有如下监听配置:
如果该配置文件中没有,请手工加入,或者从服务器上拷贝:server\profiles\server1\config\listenerconfig.data
然后重启bos工具验证。
使用bos设计开发工具设置快捷键。
使用bos设计开发工具设置快捷键,参考如下步骤:
1、在设计开发工具中,打开对应的listUI或者editUI,在“大纲”视图中找到对应的“Actions”,找到需要设置快捷键的action,在该action的“属性”窗口中,找到“快捷键”的属性,设置需要的快捷键,如“F9”,具体设置可以参考标准产品已经设置过快捷键的action;
2、设置过的快捷键的action,需要“大纲-MenuBar”中,新增对应的MenuItem,该menuItem中的“action”属性需要绑定上面设置过快捷键的action;
3、然后发布测试;。
更新bos工具方法。
bos工具更新方法(任选一种即可):
1、使用建模工具视图下的“工具”-“更新BOS工具”更新进行更新,所连接的服务器需要正常运行状态。然后执行BOSModular/clear_bosmodular_env.bat清除工具缓存。
2、手工更新bos IDE:拷贝eas/server/deploy/fileserver.eas/easwebclient/BOSModular,覆盖bos工具的安装目录BOSModular,然后执行BOSModular/clear_bosmodular_env.bat清除工具缓存。
版本不限
网络互斥。
该功能使用较少,没有相关的详细文档介绍,咨询研发相关人员,对涉及“网络互斥”开发内容做一汇总:
1、现场701版本bos开发工具,可以在“建模工具视图”下,左边“业务单元管理”中,右键对应业务单据,弹出菜单中有“网络互斥管理”功能,(即常用的“发布业务单元”的右键菜单中),如果没有此“网络互斥管理”功能,建议更新701补丁:PT068336
然后在“建模工具视图”,双击打开业务单据,在菜单“业务单元”-“功能定义”中编辑对应功能,绑定互斥项目。
2、另外,在设计开发视图下,打开ui元数据,“大纲”视图下,找到对应action,在其“属性”窗口中,有服务绑定和扩展属性可以设置网络互斥和数据互斥。
3、最后,网络搜索“eas 客户端常用代码”,参考其中“网络互斥功能手工控制”相关章节。
上述操作本机未进行验证,现场自行参考、验证。
版本不限
元数据升级
元数据合并。
对于打补丁,在二次开发的元数据合并步骤出现异常中断,则补丁安装的后续步骤:执行补丁脚本以及生成子系统树都会取消执行,为保证补丁正确安装,需要手工执行“补丁脚本以及生成子系统树”(2个操作均在eas服务端控制台上有提供相应功能)。
而合并步骤出现异常,最终受影响的会是部署到EAS服务器上的二次开发的内容。对此异常的处理参考以下方法:
方法一、根据提示具体异常,调整(项目二次开发通过BOS开发工具)已经部署到服务器上的二次开发相关的元数据,然后重新在EAS服务端执行元数据合并,如有仍有异常,继续分析,再调整,再合并,直至合并没有错误为止;
方法二、对于二次开发内容参考《元数据升级指南》,由二次开发在BOS开发工具中完成元数据合并,并重新发布、测试,最后重新部署到服务器验证即可;
方法三、根据具体异常,如异常不影响正常功能(包括标准产品以及二次开发功能,需要在该EAS环境上测试验证)使用,可以忽略。
版本不限
bos工具导入解决方案,在导入菜单的步骤出现异常(卡住),或者bos开发环境中,对解决方案的主菜单进行设置,主菜单中无法看见任何菜单项。
根据分析,本机验证,通过服务端控制台新建的数据中心,查看数据库表T_pm_mainmenuitem,其中flevel字段有记录为null或者为0,导致在bos开发工具中无法正常显示“主菜单”内容。
应该是创建数据中心的脚本中,初始化T_pm_mainmenuitem表数据的某些脚本,没有提供flevel字段的初始化。
后续的补丁中应该有对相关记录的修复脚本(每个记录属于不同业务领域提供,因此,修复的脚本应该也是不同业务领域的补丁提供),需要现场更新相关的业务领域的最新补丁,并正确执行相关补丁中的数据库脚本。
75版本bos工具最新补丁已经可以进行提示指导
或者手工进行修复:
修复思路:
如果flevel为null或者为0,需要参考其flongnumber字段,将flevel字段手工修复.
修复方法:flongnumber字段中的!号有多少个,flevel就等于,!号的总数+1
可以参考flevel字段不为空的记录,其flevel和flongnumber的关系。
或者使用以下脚本处理:
update t_pm_mainmenuitem mm set flevel = (select flevel from t_bas_sysmenuitem sm where sm.flevel is not null and sm.flongnumber = mm.flongnumber) where flevel is null and exists(select * from t_bas_sysmenuitem sm where sm.flevel is not null and sm.flongnumber = mm.flongnumber)
如果仍有问题,请检查flevel is null的记录,然后删除。
版本不限
bos工具导入解决方案,在导入菜单的步骤出现异常(卡住),只能看见一级菜单,而无法看见二级以下的菜单。
现场数据库中的t_pm_mainmenuitem表,有fparent字段为空的记录,且记录为空的记录对应的目录层级为2,导致后续层级的也无法正常显示。
可以根据select * from t_pm_mainmenuitem where fparent is null and flevel > ?
来查看对应层级父级菜单为空记录,删除或者找对应的领域的研发提供修复脚本。
针对问题答复:
根据现场提供的t_pm_mainmenuitem数据表,分析发现其中有部分2级菜单的fparent字段为空。
导致生成菜单树出现空指针异常。
根据检查的结果,出现问题的2级别以上菜单的fparent记录为空的菜单,均是“营销服务管理_售楼管理”一系列的菜单。现场可以通过以下sql查询:
select * from t_pm_mainmenuitem where fparent is null and flevel > 1;
至于上述有问题的的记录出现原因:有可能是现场更新了房地产相关的补丁(补丁脚本有缺陷),或者人工增加了相关的有问题的菜单数据。
处理方法:
方法1、联系房地产售楼管理相关的研发,提供正确的数据脚本(如果上面的问题确认是房地产补丁导致)进行修复;
方法2、人工修复,根据实际菜单上下级情况,将fparent字段修复;
方法3、删除上面有问题的菜单记录,后续如使用到,则通过EAS客户端添加。
版本不限
导入解决方案,提示成功,但是解决方案目录中没有任何元数据,lib包等内容。
跟研发讨论,现场下载过程中,有server/properties/multilanguage_sql.jar包无法下载。
估计是该jar包太大导致。
处理方法:
方法一:服务器上临时删除或者剪切该jar包到其他目录,待导完解决方案后,再恢复jar包。
方法二:修改配置文件:BOSModular\bim\eclipse\plugins\com.kingdee.bos.bim_6.1.0\plugin.xml,将其中:
并执行BOSModular\clear_bosmodular_env.bat环境清理缓存,重启bos工具验证。
版本不限
客户端运行时候,单据序时簿界面左下角统计的行数跟实际显示的不一致。
此问题一般出现在包含有分录业务单据中,而没有分录的基础资料,基本不会出现。
在 BOS解决方案中,找到此序时簿 listui 对应的 query,然后查看下此 query的“其他”页签,
确认此页签中“主键定义”栏目是否只有 id 一项,如果没有 entrys.id的话,需要加上。.
版本不限
单据头字段进行合计,在序时簿界面,合计的结果不正确,对于单据有 N条分录的情况,单
据头合计字段对此条单据记录会得到 N倍实际值的结果。
找到此单据序时簿界面 listui 对应的 query,在“字段”页签中,找到要合计的单据头字段,
然后在下面的扩展属性栏中增加一个 PKNameGroupBy,并将此扩展属性都应的值修改为 id,
然后重新发布即可。
需要获取实体的bosType,请问如何查找到。
相应实体的BOSTYPE。可在表T_SYS_EntityRef中查找对应实体的BOSTYPE,或者在bos下工具下相应的实体文件*.entity的源代码中找到
从服务器更新bos工具,新建业务单元或编辑业务单元,保存扔出异常。
common.jar 更新到2013年10月17号后,从服务器更新bos工具,新建业务单元或编辑业务单元,保存扔出异常,经过分析,是Context类中添加了getOriginLocale接口导致工具调用异常。更新BOS补丁:PT094186
750
列表界面无法显示超过30行,实际有50多行,部分行无法选中。
现场开发的单据应该有分录,请查看数据源-其他-主键信息中是否添加了分录的id,如果没有请尝试添加单据id和分录.id
版本不限
BOS7.50导入解决方案时,选择从远程服务器导入,报错。
java.lang.Exception: 连接BIM服务器超时,请确认服务器地址是否正确,如果服务器上有多个IP/网卡,请使用绑定IP的功能并重试,
如果服务器启用了防火墙,建议使用被动模式连接并开放10166、10167、10168三个端口或尝试关闭防火墙后重试
at com.kingdee.bos.bim.project.remote.UpdateErrorUtil.wrapUpdateException(UpdateErrorUtil.java:100)
at com.kingdee.bos.bim.project.remote.UpdateErrorUtil.wrapUpdateException(UpdateErrorUtil.java:104)
at com.kingdee.bos.bim.project.remote.Updater.downloadFiles(Updater.java:293)。
系相关端口被封引起,服务器需开放相关端口10166、10167、10168。
EASV7.5
安装BOS工具无法打开
问题为将BOS安装在EAS服务器目录或者BOS安装包所在目录引起,在新的文件夹重新安装后问题解决。
版本不限
管理控制台启动BIM服务器,一直卡在那,无日志输出。手动启动Kingdee\eas\admin\updater\updater.bat 闪退,命令控制台启动updater.bat,提示系统找不到指定路径。
一般来说,脚本启动不会有报错日志,一般是通过通过命令窗口执行updater.bat或者updater.sh,查看异常信息的。比如上面这个找不到文件,进一步分析问题后发现为updater.bat 引用JDK文件不存在引起,可打开updater.bat文件,查看其引用的jdk是否存在。如果不存在,可从别的环境拷贝或者修改updater.bat 引用JDK引用路径。
EASV7.5
BOS部署时提示版本号不一致,BOS环境为新安装且已从服务器环境更新BOS工具,依然会报错。
相关问题为8.1版本服务器的版本号与BOS版本号位数格式不一致导致,更新BOS最新补丁解决。.
自定义开发的通用过滤界面,过滤什么的都生效,但是保存方案时,二次开的通用过滤界面没有保存成功。
需要在页签实现类上实现public void loadData(EntityViewInfo entityViewInfo)接口
该方法用户实现,由通用查询调用。该方法在载入用户查询方案时调用,用户重载该方法,确保方案保存的过滤信息能够正确显示在用户的自定义panel上。
例:
public void loadData(EntityViewInfo entityViewInfo)
{
FilterItemCollection currentFilterItemCollection = entityViewInfo.getFilter().getFilterItems();
for(int i = 0; i < currentFilterItemCollection.size(); i++)
{
FilterItemInfo filterItemInfo = currentFilterItemCollection.get(i);
if(filterItemInfo.getPropertyName().equalsIgnoreCase("BMCMessage.type"))
{
kDComboBoxCMsgType.setSelectedItem(CommonQueryUtil.
getCommonQueryCompareSign(filterItemInfo.getCompareType()));
kDComboBoxCVMsgType.setSelectedItem(MsgType.getEnum(
Integer.parseInt(filterItemInfo.getCompareValue().toString()))); }
else if(filterItemInfo.getPropertyName().equalsIgnoreCase("BMCMessage.title"))
{
kDComboBoxCTitle.setSelectedItem(CommonQueryUtil.
getCommonQueryCompareSign(filterItemInfo.getCompareType()));
kDTextFieldCVTitle.setText(filterItemInfo.getCompareValue().toString()); }
}
SorterItemCollection currentSorterItemCollection = entityViewInfo.getSorter();
for(int i = 0; i < currentSorterItemCollection.size() ; i++)
{
SorterItemInfo sorterItemInfo = currentSorterItemCollection.get(i);
if(sorterItemInfo.getPropertyName().equalsIgnoreCase("BMCMessage.sendTime"))
{
kDComboBoxSorterTypeSendTime.setSelectedItem(CommonQueryUtil.
getCommonQuerySorterSign(sorterItemInfo.getSortType()));
}
}
}
}
所有版本.
二次开发自定义开发单据,在套打管理目录(bim)下,找不到自定义开发的单据模板。
只有正式环境的数据库在BOS上,然后BOS上发布元数据,正式环境的数据库才能有套打路径。或者从BOS启动环境的测试库导出,然后在服务器正式库导入。
所有版本
BOS80不支持HR的开发调试,提示没有许可,财务模块测试没有出现该问题。
8.0bos自带license并未携带HR模块问题,目前该问题解决是由HR部门给license添加HR模块。后续可能会出补丁解决。
8.0
单据对应fid的生成方法。
对于fid的生成,EAS里可通过代码中的BOSUuid.creat(BOStype)的方法生成。或者EAS账套中的NEWBOSID(BOSTYPE)方法生成。
现场想在移动端生成相应的fid,可参考这两种方法的源代码,在第三方中编写同样的方法就可生成符合EAS规范的fid。BOSUuid.creat(BOStype)方法可反编译看到,Oracle中的NEWBOSID(BOSTYPE)应该存在functions下。
这两个方法的的参数均为BOSTYPE,生成fid就要输入相应单据的BOSTYPE。在表T_SYS_EntityRef中查找对应单据的BOSTYPE作为参数,或者在bos下工具下相应的实体文件*.entity的源代码中找到。
BOS启动客户端报错,正式无服务器没有该问题。
java.lang.reflect.UndeclaredThrowableException: TxEJB wrap a Not_BaseException while Reflect Invoke ControllerBean.
at com.kingdee.bos.transaction.EJBTxFacade.TxInvokerBean.invoke(TxInvokerBean.java:161)
at
at com.kingdee.bos.transaction.EJBTransactionProxy.invoke(EJBTransactionProxy.java:179)
at com.kingdee.bos.transaction.EJBTransactionProxy.invoke(EJBTransactionProxy.java:324)
at $Proxy110.loadSCMBizDataVO(Unknown Source)
Caused by: java.lang.NullPointerException
at com.kingdee.eas.scm.common.app.SCMGroupFacadeControllerBean._loadSCMBizDataVO(SCMGroupFacadeControllerBean.java:382)
at com.kingdee.eas.scm.common.app.AbstractSCMGroupFacadeControllerBean.loadSCMBizDataVO(AbstractSCMGroupFacadeControllerBean.java:78)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
问题在于BOS会引用metas\mri下的jar包,而服务不会,导致服务器与BOS表现不一致。删除BOS工作空间中,对应解决方案workspace\Project_0\basemetas\mri 下的所有jar包可解决该文,根本解决方法是从服务器删除该jar包,后续可能会出补丁修改该问题。
8.1
注册bos工具不成功。
对于BOS注册方式改变导致的BOS工具无法注册问题,解决方案如下:
即可正常注册
或者更新BOS工具最新补丁PT094186,在无法连接到金蝶网站的环境下,BOS工具无需注册也能使用。
EASV7.5
BOS工具启动报错。
错误信息:null
错误详细堆栈信息:java.lang.NullPointerException: null
at: com.kingdee.eas.ep.client.editor.bizrule.RuleManager.getRuleSet(RuleManager.java:39)
at: com.kingdee.eas.ep.client.runtime.bizrule.BizRuleHandler.
at: com.kingdee.eas.ep.client.runtime.UISegmentAssembler.handleBizRule(UISegmentAssembler.java:193)
at: com.kingdee.eas.ep.client.runtime.UISegmentAssembler.doAssemble(UISegmentAssembler.java:163)。
请更新补丁:
PTM081518
或者手工修改bos工具配置文件,具体修改如
替换一个配置文件
\BOSModular\bim\eclipse\plugins\com.kingdee.bos.bim_6.1.0\configs\ENVConfig.properties
主要是该文件中增加了如下红色部分配置项
[EAS RUNTIME CLIENT]
string.vmargs=\
-Xmx512m\
-XX:MaxPermSize=256m\
-DDynamicConfig.path="${EAS_HOME}/client/deploy/client/DynamicConfig.xml"\。
EASV7.5
EAS7.03部署到websphere7.011上后,EAS系统的webservice不能正常使用,打开webservice链接报错。
1、请检查是否部署有重复的 axis.jar 包:
目录eas\Server\server\lib\common\trd与目录eas\Server\server\deploy\eas.ear\ws.war\WEB-INF\lib
2、请检查是否有相同的wsdl4j-1.6.2.jar。如存在相同的jar包,可直接将wsdl4j-1.6.2.jar 这个包剪切到目录 eas\Server\server\lib\common\trd,并删除掉原来的 wsdl4j.jar。(删除前请备份)
版本不限
WSDLException: faultCode=CONFIGURATION_ERROR: Problem instantiating factory implementation.: com.ibm.wsdl.factory.WSDLFactoryImpl incompatible with javax.wsdl.factory.WSDLFactory: java.lang.ClassCastException: com.ibm.wsdl.factory.WSDLFactoryImpl incompatible with javax.wsdl.factory.WSDLFactory。
分析处理:检查以下路径:
eas\Server\server\lib\common\trd\,eas\server\deploy\eas.ear\web.war\web-inf\lib,
eas\server\deploy\eas.ear\ws.war\WEB-INF\lib
上述路径下,如有不同版本的wsdl*.jar,先备份(jar包不要备份在当前路径),然后将上述路径中wsdl*.jar版本最高的那个wsdl*.jar包(一般情况下eas\server\deploy\eas.ear\ws.war\WEB-INF\lib下有最高版本的wsdl4j-1.6.2.jar),放到
eas\server\lib\common\trd\下,其他路径下面的wsdl*.jar均删除。
如果是websphere服务器的话,需要重新部署。
AXIS error
Sorry, something seems to have gone wrong... here are the details:
Fault - Could not find class for the service named: com.kingdee.eas.mm.pdm.app.webservice.WSPDMImportFacadeSrvProxy
Hint: you may need to copy your class files/tree into the right location (which depends on the servlet system you are using).; nested exception is:
java.lang.ClassNotFoundException: com.kingdee.eas.mm.pdm.app.webservice.WSPDMImportFacadeSrvProxy
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
faultSubcode:
faultString: Could not find class for the service named: com.kingdee.eas.mm.pdm.app.webservice.WSPDMImportFacadeSrvProxy 。
打上制造补丁PT051530这个问题的原因是打了补丁pt050586以后,在配置文件中添加了制造的PDM接口服务调用,但是又没有打制造的补丁,所以接口找不到。
有两个解决方案:
方案1.打制造的补丁PT051530,其的依赖补丁是PT050586和 PT051017。
方案2.手动修改配置文件。打开目录eas\server\deploy\eas.ear下的web.war文件,找到WEB-INF下面的server-config.wsdd 和WSPDMImportFacade.wsdd文件,然后删掉WSPDMImportFacade.wsdd文件,同时,去掉server-config.wsdd
中的 service name=“WSPDMImportFacade“的service 节点(注意是整个节点,不是单独的一行)。
后台事务调用webservice异常
java.lang.NullPointerException
at org.apache.axis.client.Service.getEngineConfiguration(Service.java:813)
at org.apache.axis.client.Service.getAxisClient(Service.java:104)
at org.apache.axis.client.Service.
分析处理步骤,检查以下路径:
1、请检查是否部署有重复的 axis.jar 以及wsdl4j为命名前缀的包:
目录eas\Server\server\lib\common\trd与目录eas\Server\server\deploy\eas.ear\ws.war\WEB-INF\lib,
删除\eas\server\deploy\eas.ear\web.war\WEB-INF\lib下的axis.jar 以及wsdl4j为命名前缀的包;
2、删除apusic\domains\server1\deploy\EAS\tmpfiles这个文件夹;
3、重启服务
EAS7.03部署到websphere7.011上后,EAS系统的webservice不能正常使用,打开webservice链接报错。
1、请检查是否部署有重复的 axis.jar 包:
目录eas\Server\server\lib\common\trd与目录eas\Server\server\deploy\eas.ear\ws.war\WEB-INF\lib
2、请检查是否有相同的wsdl4j-1.6.2.jar。如存在相同的jar包,可直接将wsdl4j-1.6.2.jar 这个包剪切到目录 eas\Server\server\lib\common\trd,并删除掉原来的 wsdl4j.jar。(删除前请备份)
使用同一个服务器,有多个数据中心,使用webservice登陆的时候,会登陆到非登陆接口指定的数据中心。
对于同一个应用不同数据中心,导入数据串帐套问题,需要启用参数isRomoteLocate=false(实例下eas\Server\eas\server\profiles\server*(1~n)\config\webservice.propetties)对了,修改参数后,webservice调用端需要把登录返回的session传过去,java调用示例如下,其它语言调用参考
EASLoginProxy proxy =null; |
打开IP:端口/ormrpc/webservice,无法看到自己的二次开接口。
1、需检查接口已正确配置对应到server-config.wsdd文件。
2、如果确定已配置正确依然无法看到二次开发接口,则可清除下缓存:浏览器缓存和eas\apusic\domains\server1~n\deploy下的所有缓存。重启服务器
生成子系统树出错。错误信息为:
“Generate mdbview error!Please check generateMDBView log [/kingdee/eas70/eas/admin/logs/subsystem.log] for more infomation.Error message:There is nothing in directory [/kingdee/eas70/eas/server/temp1312181362253] after generateView,skip compress mdbview!”。
解决方案:
请收集日志/kingdee_test/eas/admin/logs/subsystem.log并提单反馈
异常堆栈:
com.kingdee.eas.tools.admin.domain.exception.BOSGenerateMDBViewException: Generate mdbview error!Please check generateMDBView log [/kingdee_test/eas/admin/logs/subsystem.log] for more infomation.Error message:There is nothing in directory [/kingdee_test/eas/server/temp1340256351317] after generateView,skip compress mdbview!
at com.kingdee.eas.tools.admin.eas.provider.EASProviderImpl.generateView(EASProviderImpl.java:424)
at com.kingdee.eas.tools.admin.domain.impl.NodeManagerServiceImpl.generateMDBView(NodeManagerServiceImpl.java:593)
at com.kingdee.eas.tools.admin.domain.impl.NodeManagerServiceImpl.generateMDBView(NodeManagerServiceImpl.java:585)
at com.kingdee.eas.tools.admin.domain.impl.PatchManagerServiceImpl.recursionInstallPatch(PatchManagerServiceImpl.java:3744)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.kingdee.eas.tools.admin.framework.ssap.dualrpc.SSAPServerRPCHandler.invokeService(SSAPServerRPCHandler.java:46)
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.kingdee.eas.tools.admin.framework.dualrpc.core.common.RpcWorker.processRpcCallMessage(RpcWorker.java:237)
at com.kingdee.eas.tools.admin.framework.dualrpc.core.common.RpcWorker.run(RpcWorker.java:81)
现场应该是unix或者linux系统,请现场修改eas/jdk目录权限,改成777(所有用户可读、写、执行权限,包括子目录及文件),如果问题还存在,尝试修改服务端eas/sever文件夹权限为777(包括子目录和文件)。修改文件夹权限后,需要重启服务器。
另外一类生成子系统树有类似错误提示的,原因是二次开发部署到服务器的元数据jar包sp-bim-metas.jar包文件损坏(ftp上传到服务器环境出错),建议现场也同样检查确认下(如果现场有部署过该二次开发包的话),确认方法:将服务器上部署的二次开发包下载到windows系统本地,然后用解压缩文件打开,如果压缩包损坏,会有异常提示,正常打开则没有问题。
编码规则子系统树问题
看不到二次开发的内容,或者行业的内容。
实体上缺少codingRuleEnabled扩展属性
只有存在此扩展属性并且值为true的实体才会进入到编码规则子系统树
二次开发的目录在子系统树中没有正确显示的问题。
对于二次开发的目录在子系统树中没有正确显示的问题:
1、保证服务器目录eas/servser/properties/下的文件subsystem_bos.xml文件中有二次开发的路径;
2、保证服务器元数据目录eas/server/metas以及eas\server\deploy\fileserver.ear\easWebClient\metas目录下的所有元数据包中只有一份*.mdbview文件,且存在与metas/bos/mdbview-metas.jar中,其他jar中的*.mdbview文件如果存在,建议将其删除;(具体方法:可以使用winrar工具查找功能,在metas目录下搜索*.mdbview文件)
3、如果服务器eas\server\profiles\server1\config\subsystem目录下存在*.mdbview文件(如果目录不存在,则此步骤忽略),建议确认是否有人在“系统平台-参数配置-子系统树管理”里面有修改过子系统树配置?如果不确定,可以现将该目录下的mdbview文件,备份至其他目录,此目录下文件都清空。
4、重新生成子系统树
子系统树详细知识,请mykingdee-isolution中搜索下载《金蝶BOS子系统树指引》。
参数子系统树找不到库存管理节点,导致库存管理下的参数也不能使用。
路径严格为:供应链管理-库存管理-批次管理,且库存管理属性应为
如果该目录在子系统树中没有正确显示的问题:
1、保证服务器目录eas/servser/properties/下的文件subsystem_eas.xml或subsystem_bos.xml中有该节点且设置正确。
2、保证服务器元数据目录eas/server/metas以及eas\server\deploy\fileserver.ear\easWebClient\metas目录下的所有元数据包中只有一份*.mdbview文件,且存在与
metas/bos/mdbview-metas.jar中,其他jar中的*.mdbview文件如果存在,建议将其删除;(具体方法:可以使用winrar工具查找功能,在metas目录下搜索*.mdbview文件)
3、如果服务器eas\server\profiles\server1\config\subsystem目录下存在*.mdbview文件,建议确认是否有人在“系统平台-参数配置-子系统树管理”里面有修改过子系统树配
置?如果不确定,可以现将该目录下的mdbview文件,备份至其他目录,此目录下文件都清空。
4、停止服务器,在控制台重新生成子系统树。
引入房地产模块单据时,系统提示不支持动态扩展。
更新房地产白名单补充补丁:PT090056
750
在DEP方案中添加了一个枚举,但是在添加枚举字段时,无法选到这个枚举。
DEP新添加的枚举字段默认是放在用户自定义的枚举子系统目录下,找不到新增枚举字段的原因为现场修改了枚举子系统树,使得用户自定义目录发生了改变,因而无法选到。
750
在更新了较新的框架补丁后,DEP平台无法使用,不起作用。
引起问题的原因为框架过新,而DEP版本过旧,导致DEP不受框架支持,一般更新DEP新补丁就能解决问题。
BOS开发的单据,在导入DEP时系统提示不支持动态扩展。
对于客户BOS二次开发的单据,如果是在用户自定义目录下创建,则默认是可以导入DEP的。如果不是在该目录下,需要手动将其添加到白名单列表,参考以下添加物料到白名单:
注:修改该文件时需使用文本编辑器,保存格式需为 UTF-8 无boom格式。
在动态扩展凭证高级版中,新增了采购入库单的一个个性化方案,但是启用后,方案中字段的事件没有生效。
更新DEP补丁:pt093582
750
DEP个性化布局方案分配时看不到组织架构,只能看到最顶上的组织集团,下面的组织都看不到。
没给该用户维护组织范围导致,维护组织范围后问题解决。
750
想在DEP中进行F7字段的较复杂过滤,DEP现有F7过滤功能只能进行简单的过滤,不知道有什么方法进行较复杂的过滤。
可在界面的onload扩展点后置脚本中添加过滤,参考实现:
//本例子中过滤为过滤属于当前财务组织的F7对象
var easImporter = JavaImporter();
easImporter.importPackage(Packages.com.kingdee.bos.ctrl.extendcontrols);
easImporter.importPackage(Packages.com.kingdee.bos.metadata.entity);
easImporter.importPackage(Packages.com.kingdee.bos.metadata.query.util);
easImporter.importPackage(Packages.com.kingdee.bos.util);
with(easImporter){
var prmtAssist = pluginCtx.getKDBizPromptBox("prmtassist");//获取F7控件
var filterInfo = new FilterInfo();
var entityViewInfo = new EntityViewInfo();
//获取当前财务组织
var company = pluginCtx.getUIContext().get("sysContext").getCurrentFIUnit();
//按财务组织过滤,CU.id为F7字段中对应的组织id属性,company.get("Id")为当前财务组织的id,CompareType.EQUALS为比较方式-这里为相等。意思为过滤组织id属性和当前财务组织id相等的F7对象
filterInfo.getFilterItems().add(new FilterItemInfo("CU.id",company.get("Id"),
CompareType.EQUALS));
entityViewInfo.setFilter(filterInfo);
prmtAssist.setEntityViewInfo(entityViewInfo);
}
DEP添加的分录,新建单据时,如果DEP添加的分录为空,保存时会报错空指针错误。
框架问题,更新框架补丁:PT096452以及PT097503补丁解决。
在DEP中增加了一个F7字段,保存后再打开,发现该字段依然为空。
一般是由于DEP与单据的契合问题引起,如果该问题没有再实验环境重现,可更新业务模块最新补丁和DEP最新补丁解决。
所有版本
通过dep实现不同审批节点显示不同审批界面。
实现方法如下:
在DEP中对该单据界面建立个性化页面布局,设置字段的可见或者必录属性。然后启动该方案,如下:
在工作流中调用即可
所有版本
DEP中增加了一个分录,使用脚本addrow新增一行会报错。
因为DEP新增的分录没有对应的类,所以无法像标准产品一样使用addrow方法。
正确方法为:
//为DEP添加的分录新增一行
pluginCtx.getKDTable("entryy").getParent().getParent().actionAddnewLine_actionPerformed(null);
//获取分录新增,移除等表头控件
pluginCtx.getKDTable("entryy").getParent()
所有版本
DEP下含有大量的bizconfig方案,无法删除。
该方案为旧版本界面配置工具升级上来的方案。删除方法为:
1.左树的数据来源于 T_EP_CustomizedUnit这张表。这张表是 T_EP_CustomizedScheme 的一个子表。持有T_EP_CustomizedScheme 的主键。当主表的数据删了而子表的数据还在的时候就会导致这种脏数据的产生。
2.先做好 T_EP_CustomizedUnit 这张表的备份 :select * into T_EP_CustomizedUnit_bak from T_EP_CustomizedUnit。
查询一下有没有数据:select * from T_EP_CustomizedUnit_bak
3.删除脏数据:delete from T_EP_CustomizedUnit where FDISPLAYNAME_L2 like 'bizconfig%,具体删除条件。视动态扩展平台左树脏数据上的节点名称而定。
4.select * from t_fw_commonlistener
该表只有一条记录,将FENDBLE字段设为0.
所有版本
通过dep实现不同审批节点显示不同审批界面。
实现方法如下:
在DEP中对该单据界面建立个性化页面布局,设置字段的可见或者必录属性。然后启动该方案,如下:
在工作流中调用即可
所有版本
DEP新增字段时可以设置字段的长度和小数位数,此后就无法直接修改。
将方案导出来,解压缩,在T_CON_DYNAMICMETADATA文件夹里,里面有一个XML文件和若干segment文件,通过这个XML文件可以知道实体(Entity)和界面(EditUI),还有table分别是对应哪个segement,用nodepad++打开对应的segement文件,查找到该动态字段,该字段会有如下如下配置:precisio,lengh等,都修改保存。然后将这三个segment替换到方案中,备份好原来的方案,然后删掉,把新方案导入。
所有版本
对于多语言版本,DEP新增的字段是无法被直接翻译且进行中、英文切换的。这时需要我们编写脚本去实现。
//这里"contNBA"为标准产品里面的一个字段,根据该字段在中英文状态下的不同标签名称进行对新增字段的变动。
//例如该参照字段英文状态下名称为“A”,中文状态下名称为"啊",我们新增的目标字段想要设的效果为英文状态下名称为“o”,中文状态下名称为"哦"
//可在编辑界面的界面加载(onload) 添加前置脚本如下脚本如下:
获取LabelContainer方式:
//这里contNBA换为你的参照字段
var aa=pluginCtx.getKDLabelContainer("contNBA").getBoundLabelText();
//通过
if(aa=="A"){
//这里cont换为你的目标字段
pluginCtx.getKDLabelContainer("cont").setBoundLabelText("o");
}
if(aa=="啊"){
pluginCtx.getKDLabelContainer("cont").setBoundLabelText("哦");
}
所有版本
在DEP中如何通过有限的条件去查询一个F7对象的完整值。
1.根据id的通用查询
pluginCtx.getKDBizPromptBox("prmtaa").addDataChangeListener(function(e){
var prmtaaInfo=pluginCtx.getKDBizPromptBox("prmtaa").getValue();
if(prmtaaInfo!=null){
if(prmtaaInfo.get("currency")!=null){
var cid=prmtaaInfo.get("currency").getId().toString();
var fkfsInterface = com.kingdee.bos.BOSObjectFactory.createRemoteCommonBOSObject(new com.kingdee.bos.metadata.MetaDataPK("com.kingdee.eas.custom.app.Currency"));
var fkfsOPK = new com.kingdee.bos.dao.ormapping.ObjectUuidPK(com.kingdee.bos.util.BOSUuid.read(cid));
var fkfsOBJ = fkfsInterface.getValue(fkfsOPK);
pluginCtx.getKDBizPromptBox("prmtcurrency").setValue(fkfsOBJ);
}
}
});
2.调用F7对应远程解决方法的其它条件查询
例子:选择职员后,带出其职务
var easImporter = JavaImporter();
easImporter.importPackage(Packages.com.kingdee.bos.ctrl.extendcontrols);
easImporter.importPackage(Packages.com.kingdee.bos.metadata.entity);
easImporter.importPackage(Packages.com.kingdee.bos.metadata.query.util);
easImporter.importPackage(Packages.com.kingdee.bos.util);
with(easImporter){
//为职员控件添加监听
pluginCtx.getKDBizPromptBox("prmtperson").addDataChangeListener(function(e){
//获取职员id
var pid=pluginCtx.getKDBizPromptBox("prmtperson").getValue().get("id").toString();
var filterInfo = new FilterInfo();
var entityViewInfo = new EntityViewInfo();
filterInfo.getFilterItems().add(new FilterItemInfo("person",pid, CompareType.EQUALS));
filterInfo.setMaskString("#0");
entityViewInfo.setFilter(filterInfo);
//通过person.id=positionMember.person,获取任职情况
var pmset =com.kingdee.eas.basedata.org.PositionMemberFactory.getRemoteInstance().getPositionMemberCollection(entityViewInfo);
if(pmset.size() > 0){
//创建过滤条件,通过positionMember.person=position.id,获取职位
var position=pmset.get(0).get("position").get("id").toString();
var pfilterInfo = new FilterInfo();
var pentityViewInfo = new EntityViewInfo();
pfilterInfo.getFilterItems().add(new FilterItemInfo("id",position, CompareType.EQUALS));
pfilterInfo.setMaskString("#0");
pentityViewInfo.setFilter(pfilterInfo);
var psset=com.kingdee.eas.basedata.org.PositionFactory.getRemoteInstance().getPositionCollection(pentityViewInfo);
com.kingdee.eas.util.client.MsgBox.showInfo(psset.size());
if(psset.size() > 0){
var psid=psset.get(0).get("id").toString();
com.kingdee.eas.util.client.MsgBox.showInfo(psid);
pluginCtx.getKDBizPromptBox("prmtzwei").setValue(psset.get(0));
}
}
});
}
所有版本
有些时候我们需要使用脚本进行一些简单的数值计算,但是脚本变量类型只有var且自动转型比较欠缺,而我们的UI界面,特别是分录,或者的数值字段类型和精度的不一致,导致直接进行计算会报错。这要计算前先进行类型转换。
pluginCtx.getKDTable("kdtEntrys").addKDTEditListener(function(event,methodName){
var aa=pluginCtx.getKDFormattedTextField("txtsum");
if("equals"==methodName)
{
return this==event;
}
else {
var count=pluginCtx.getKDTable("kdtEntrys").getRowCount();
var sum=new java.lang.Double(0);
for(var a=0;a<=count-1;a++){
var num=new java.lang.Double(0);
var price=new java.lang.Double(0);
num=pluginCtx.getKDTable("kdtEntrys").getCell(a,"num").getValue();
price=pluginCtx.getKDTable("kdtEntrys").getCell(a,"price").getValue();
if(num!=null){
//sum=sum.valueOf(sum.doubleValue()+num.doubleValue());
sum=sum.doubleValue()+num.doubleValue();
sum=new java.lang.Double(sum);
}
if(price!=null){
//sum=sum.valueOf(sum.doubleValue()+price.doubleValue());
sum=sum.doubleValue()+price.doubleValue();
sum=new java.lang.Double(sum);
}
//sum=sum.doubleValue()+price.doubleValue()+num.doubleValue();
}
aa.setValue(sum);
}
});
所有版本
使用脚本,根据条件,将某个字段设为必录。
所有版本
查询时,明明设置的过滤条件没问题,但是却提示“过滤条件不完整或比较值过长,请检查”。
一般来说通用过滤提示“过滤条件不完整或比较值过长”,主要原因有三点,一、框架及引擎补丁过旧。二.服务器实例出现缓存文件丢失。三.系统确实存在的元数据问题。其中补丁过旧和实例缓存问题占绝大多数。该问题通过更新应用框架最新补丁然后重新部署服务器实例可解决。如果现场该问题偶发,则基本可确定为服务器实例缓存问题,只需使用客户端依次连单个实例,测试下哪个实例有问题,然后将该实例重新部署即可。
所有版本
目前所有的用户都可以使用单据右键导出excel,需要对此权限控制。
右键导出excel权限项默认会对所有的单据右键权限生效,如果要需要对此权限控制,需要
1.设置系统参数-公共参数-“FrameworkPopupPerm”右键菜单导出数据权限,修改参数值为“是”,
2.请检查用户分配的“角色”和“权限”中,是否在“已禁止”中包含导出权限。最后可以通过用户管理界面工具栏“查看权限”确认权限是否存在。
权限项位置:Administrator登陆-用户管理-分配权限-EAS系统-应用框架-右键菜单。
所有版本
目前用户可以看到所有用户的过滤方案且可删除,需要对此进行隔离控制。
如果不想让用户看到其它人的个人过滤方案,可取消对应用户的系统平台-系统工具-系统配置-过滤方案-过滤方案管理权限,即为用户隔离。
所有版本
出纳管理——收付款单序时簿界面,当按表头字段过滤时,合计金额显示正确(图1),但当按分录行字段(如:成本中心、流出预算项目)过滤时,则金额会翻倍(分录有几行满足查询条件中的值,就会翻几倍显示合计数)。
PT099690。
8.0
我自己二次开发的单据,当我点击了提交的时候,系统默认为新增的状态,我就要到列表界面去找到那条记录,然后在审核。
我想在点击了提交,然后点击审核。不需要在找到那个单据。。
去掉提交选项的连续新增即可,文件-提交选项。
所有版本
¥29.8
¥9.9
¥59.8