[Domino]从嵌入另一个数据库嵌入的Embedded View无法正常显示,提示unable to lauch

发现问题

1. 项目中需要在一个数据库中插入另一个数据库的Embedded View,使用起来十分费劲,在选择数据库的下拉菜单中经常会找不到目标数据库:

2. 在做日文版的时候,从workbench导出数据库之后,发现前面插入的Embedded View,无法正常显示,提示unable to launch。用Designer打开的时候发现点击这个Embedded View就会弹框,然后就不能点击该Form里面任何东西,很难选中。

分析原因&解决问题

1. Google了一下第一个问题,只要在Designer里面先打开被引用的数据库(view实际所在的数据库),再添加Embedded View,就会在数据库列表中出现被引用数据库。

2. 一开始尝试在重新导出数据库之后,删掉Embedded View再重新添加,可以解决这个问题。

但是每次导出数据库之后都要这么操作一下有些麻烦,我就很奇怪他这个Embedded View到底是通过什么方式去连到另一个数据库的。网上一些说法说是现在domino目录、data目录、相同路径下查找,测试了一下,觉得都不靠谱,因为不管把被引用数据库copy到哪里,根本就还是提示unable to lauch。

最后终于找到一个方法,用Designer打开数据库,在左边的form列表中,右键点击包含Embedded View的那个form,选择“Edit with DXL”,这时候会将这个form用XML的格式打开!!搜索了一下关键字“embedded”,果然发现了一些有用的东西:

 

发现里面有个名为database的属性,这一串字符串肯定是跟被引用数据库有关的。于是去被引用数据库的属性里面看(未经过workbench导出的原版数据库),发现这个字符串是和Replica ID一样的。

所以一切就能解释通了:Embedded View是通过Replica ID来找到被引用数据库的,而在做日文版的时候,导出的目标数据库Replica ID肯定是和之前的不一样,所以没法launch。因此重新添加一次Embedded View是可行的,另一个解决方法就是把新导出数据库的Replica ID改成跟导出前一样。

修改Replica ID通过写程序是可以实现的,我也在网上找到了一个方便的工具:
http://www.turtleweb.com/turtleweb.nsf/otherpageslookup/toolsandtoys?opendocument
在这个链接里面找到“Change.nsf”,这就是一个普通的Domino数据库,里面包含了修改Replica ID的agent。

打开界面如下,第一个空填入要修改的数据库路径,第二个空不用填,第三个空填入想修改的Replica ID的值。


至此问题全部解决!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值