我们有一些文件包含一些参考文件的“关键”。我们有理由不使用UNID。我想通过此键值初始化数据源。所以在Document ID属性中我编写脚本来打开视图,查找指定文档并使用查找UNID来初始化数据源。 我认为这不是最佳解决方案。
问题:有没有更好的方法来根据键值初始化文档数据源?
示例代码:
@DbLookup("", "view", "key", 1, '[RETURNDOCUMENTUNIQUEID]');
答案 0 :(得分:1)
在视图中按键查找文档的UNID可能确实是最好的方法。但是,通过编写托管bean作为缓存,可以加快重复调用的速度。例如,如果您编写了一个实现java.util.Map的Java类,并且删除了大多数方法,并实现了一个以密钥作为参数的.get(...)方法,您可以像(假设您调用bean“DocKeyManager”):
< xp:dominoDocument ... documentId =“$ {DocKeyManager [someKey]}”/>
这样,您可以缓存来自.get(...)调用的值,而不必每次都访问数据库,并且它还允许您稍后更改查找算法。
答案 1 :(得分:0)
你应该看看Tims关于将字符串转换为MD2的文章。 这样我认为你可以将你的字符串id转换为unid并使用getDocumentByUnid访问它们
http://xmage.gbs.com/blog.nsf/SearchResults?OpenNavigator&Query=md2
答案 2 :(得分:0)
我们做了很多,但只记得一次(通过$ tag加载页面)而不是动态(#tag)。
如果你这样做,它将最终进行多次查找。 。
Jesse Gallagher建议缓存查找结果也是一个好主意。