把字段设为必录项可以通过定义事件来解决。
选中“组织结构”这个字段控件,在下面的属性页签里,选择“保存”这个 触发时刻来触发事件。在弹出的“事件管理”界面中,新增事件,在“定义 事件”界面中,选择操作“单据合法性校验”;
具体的操作设置过程请参考bos自带的帮助系统:
金蝶业务建模工具帮助系统-->定义业务单元-->事件管理-->事件定义--> 各种操作的详细描述。
9、我的BIM运行测试时,有时会读到Jar包里面的代码,而不是先运行自己的代码。有时
候却正常。请问是什么原因?
理论上是优先读取本地的class,然后才是库文件,如果出现了这种不正常的现象,请检查本地是否生成了class
10、bos在头一天还正常使用,第二天启动的时候就出现如下图所示问题,启动不起来,重新启动机器,将服务器控制台启动后,才能启动bos
bos工具能否正常启动,跟服务器控制台没有关系,应该是某些错误导致无法启动,遇到这种情况,请尝试删除工作空间d:\\workspace下的.metadata目录试试,打开bos工具后,切换到业务建模工具视图,再重新打开一次解决方案。
11、有一个开发人员在业务建模窗口中经常会出现下图所示的问题,然后bos关闭
此问题应该是有javaw.exe进程死在内存里,请在“任务管理器”里切换到“内存”页签,杀掉所有的javaw.exe进程,再重新打开bos工具即可。
12、修改元数据发布后,切换到java透视图中的时候经常出现如下图所示问题:
当服务器正在运行的时候,只能热替换代码体部分,如果有方法名更名或者新增方法,热替换无法进行,就会出现如图提示框。
三、事件类问题解答
1、定义了计算公式的事件,却发现并不起作用是怎么回事?
事件定义最经常犯的一个错误是把事件定义在错误的字段上面,导致产生不了预想的效果, 现举一个实际的例子供参考: 比如:金额=数量x建议采购单价
则“金额”的值随着“数量”和“建议采购单价”的值的改变而改变。由此可判断事件应该定义在公式右侧的字段“数量”和“建议采购单价”上;事件的触发时机在“更新”事件上。
2、创建了EditValueChange事件,目前在文本字段中触发了该事件,在数值字段中无法触发该事件
请用BIM里面字段的更新事件。单据头的字段的更新事件选中字段后,在属性的“更新”事件里加事件就可以了,分录体的字段的更新事件需在大纲里,选中字段再进行更新事件定义。发布后JAVA代码里有相应事件,在里面实现代码即可。
3、为什么一个单据在保存的时候,F7控件也会产生一个DataChange事件,一个单据在打开时,都会产生事件,不合理
当时升级支持的时候发现是事件定义在整个分录上,不合理,应该定义在分录的对应字段上。
四、发布类问题解答
1、请问发布出错通常是什么原因?
对外发布的bos版本,在正常情况下,一些很常用的功能,比如发布, 基本上是不会出错的(当然不排除有些潜在的没注意到的bug引发的错误) 。
如果出错了, 从控制台的输出可以判断存在以下三种错误: 1.connect错误
请到菜单【工具】?【解决方案设置】,在弹出的界面中,选择“测试设置”,再切换到“测试帐套”页签,点击“测试帐套连接”,来确定当前的数据库连接是否正常。 2.compile错误
可以到解决方案根目录下面的classes.log文件中,检查当前项目工程的代码是否有问题; 也可以把当前的项目转换为java工程,然后切换到java视图解决编译出错问题;
一般情况下原因是这样的:可能在要发布的单据中引用了你新定义的某个基础资料/单据,但是该基础资料/单据没有发布过。
解决办法:先发布引用的那个(可能不止一个)基础资料/单据
还有一种情况是当前业务单元是由标准产品的元数据导过来的,不应该生成实现类,以免冲掉原有的实现类,请先把此业务单元生成的代码删掉,打开该单据,右键,在单据信息里不勾选“生成实现类”,再发布一次就可以了。 3.其他错误,比如元数据校验等
除了可以从控制台得到某些出错信息外,也可以打开控制台右上方的日志按钮,获取出错信息加以判断。
另外,还可以在studio中发布当前业务单元所对应的元数据,看看元数据本身是不是存在问题;还有一种常见情况是缓存导致的,可以通过清除缓存来解决。
另外一种常见错误是,此业务单元引用的基础资料没发布,请先发布该业务单元关联的
2、有的显示的菜单中缺少了发布等菜单项,如下图:
只有业务单元(后缀名为.bizunit)才能发布,图示的“采购申请单”应该是一个业务模板,业务模板只是供复制使用的,不能用于发布。
3、请问EASBOS解决方案目录下的deployed_metas文件夹里放的东西是做什么的?能否手工修改?我在BIM里删除了一个字段后运行报错,后来发现是这文件夹里的文件还存在相关信息
(注:metas是5.0以前的环境目录,相当于现在的metadata)
解决方案关于元数据一般有三个目录:metadata,deployed_metas,metas metadata里的元数据发布后,经由deployed_metas发布到metas目录中
metadata中的元数据在当前开发环境中可见
metas是eas运行环境依赖的元数据,由metadata目录中的元数据发布而来
deployed_metas相当于metadata到metas的中转站,记录metadata里元数据的发布过程 ---即相当于metasdata里的元数据先发布到deployed_metas目录中,成功后再发布到metas里。
deployed_metas里的文件一般情况下不建议修改,它只是做一个发布记录,这个记录在以后的bim部署中用到
bim删除字段后运行报错,跟deployed_metas应该没有关系,运行时依赖的元数据是在metas目录中
如果你想彻底改掉这个问题---这个问题也许是因为过去记忆的文件没被彻底覆盖造成的 可以在deployed_metas和metas里同时删掉这个元数据信息,然后再重新发布
4、在BIM里导入一个EAS5.1的方案,建了一张单据,发布就出现附件里的错误,请问得怎么解决? Caused by: java.sql.SQLException: MicrosoftSQLServer 2000 Driver for JDBCSQLServer列 'T_PM_User.FID' 与外键 'FK_TRA_TrnstBLUU5l' 中的引用列'T_TRA_TransitBill.FLastUpdateUserID' 的排序规则不同
EAS5.1的SQLServer库排序规则是大小写敏感的,5.0的则不是。这样EAS-BIM5.1发布出来的表的排序规则是大小写敏感的。 这样导致使用5.0的EAS帐套会出现排序规则不一致的错误
5、发布emp职员出现这样的:无法将 NULL 值插入列 'FNumber',表 'boc.dbo.T_BD_Person_TEMP'; 该列不允许空值。INSERT 失败
数据表'boc.dbo.T_BD_Person_TEMP'的字段FNumber不能为空,但是你导入的数据中有null值。这是因为原本可以为空的fnumber人为改成非空造成的。有两种方法: 1.将数据表boc.dbo.T_BD_Person_TEMP'的字段fnumber的值清空
2.将数据表boc.dbo.T_BD_Person_TEMP'的字段fnumber的属性设成可以为空
6、为什么在BOSStudio发布元数据后,BIM客户端还是取不到元数据?
BIM会在本地另外启用服务器进行单据测试,元数据进行了缓存,因此在BOSStudio发布元数据后,必须重新启动BIM。
7、在EAS业务管理平台发布设置完业务单元后,执行“发布业务单元”时出现错误 现象:
BIM 运行任务出错!
org.eclipse.core.runtime.CoreException:
D:\\EASProgram\\kingdee\\Utilities\\tools\\bim\\bimstudio\\plugins\\com.kingdee.bos.bim_4.1.0\\deploy.xml:35:
Compile failed; see the compiler error output for details.