XPages-从配置文件文档中获取值

XPages-从配置文件文档中获取值,xpages,lotus-notes,xpages-ssjs,Xpages,Lotus Notes,Xpages Ssjs,我正在尝试从XPage的beforePageLoad事件中的配置文件文档中获取值。为此,我使用服务器端Javascript: var currdb:NotesDatabase = database; var profdoc:NotesDocument = currdb.getProfileDocument("frmProfile",""); var showRefInfo = profdoc.getItemValueString("ShowReferenceInformation"); sess

我正在尝试从XPage的beforePageLoad事件中的配置文件文档中获取值。为此,我使用服务器端Javascript:

var currdb:NotesDatabase = database;
var profdoc:NotesDocument = currdb.getProfileDocument("frmProfile","");
var showRefInfo = profdoc.getItemValueString("ShowReferenceInformation");
sessionScope.put("showRefInfo",@Text(showRefInfo));

字段“ShowReferenceInformation”的值可以为1或0。我已经将该值从0更改为1,但是我的SSJS代码继续返回0。是什么导致了这种情况?

web上的配置文件文档总是被过度缓存,我相信XPages仍然是这样。最有可能的情况是,您将看到一些请求将获得新值,而其他请求在经过任意时间后缓存完全刷新之前不会获得新值。

我同意Jesse的看法。缓存通常是配置文件文档的一个大问题。当我们从Notes切换到XPage环境时,我们总是遇到同样的问题


解决方案是,您可以创建一个简单的代理来创建概要文件文档,然后创建一个视图来处理相同的文档

同意前两个答案。请勿在xpages中使用配置文件文档。刷新HTTP任务时会刷新缓存。这在大多数环境中是不可接受的。我会使用另一种方法,如applicationScope来设置这些值


但是,如果您同意每次更改此条目时都必须重新启动HTTP,那么继续在xPages中使用配置文件文档…

我实际上喜欢配置文件文档。但是,使用它们的方法是在一个同步函数中检查ApplicationScope变量并读取该变量。如果不存在,则从配置文件加载。立即回信。所以你超级缓存它

谢谢,事情就是这样。我今天再次检查了一遍,并为相同的代码返回了正确的值。和其他人一样,我通常会切换到由用户键入视图,然后只进行正常的查找。在较新的情况下,我采用了OpenNTFAPI的“Database#getDocumentByKey”所使用的方法来生成一个带有UNID作为密钥散列的文档。不过,当你在一个新的应用程序中进行这项工作时,第二个是最好的,而这个应用程序在其他方面都是非常关键的。在正常情况下,视图查找路径足够快。谢谢,我会试试这个。谢谢你的建议