xpages:保存页面时,什么可以停止代码停止?

xpages:保存页面时,什么可以停止代码停止?,xpages,xpages-ssjs,Xpages,Xpages Ssjs,最后更新:确定问题来源 我有一个基于表单的页面,该表单已从应用程序的上一个版本中删除了大部分计算字段(因此文档实际上可以通过computewithform函数),我在保存文档时遇到了一个问题。我有在Notes客户端(以前的应用程序版本)中创建的文档,这些文档已转换为mime,还有一些文档是在新的xpages应用程序中创建的,带有CKEditor,保存在一个富格文本字段中,该字段也标记为存储为mime 我有一个“发布”文档的按钮。对于在新应用程序中创建的文档,代码可以正常工作,但对于在以前的应用程

最后更新:确定问题来源

我有一个基于表单的页面,该表单已从应用程序的上一个版本中删除了大部分计算字段(因此文档实际上可以通过computewithform函数),我在保存文档时遇到了一个问题。我有在Notes客户端(以前的应用程序版本)中创建的文档,这些文档已转换为mime,还有一些文档是在新的xpages应用程序中创建的,带有CKEditor,保存在一个富格文本字段中,该字段也标记为存储为mime

我有一个“发布”文档的按钮。对于在新应用程序中创建的文档,代码可以正常工作,但对于在以前的应用程序版本中创建的文档,代码似乎在某个地方停止了

以下是IE在http流量方面的陷阱:

A case that works:
/mydb.nsf/page.xsp?action=editDocument&documentId=353B2 HTTP    POST    302     244 B   218 ms  cliquer 0   31  0   187 0   1761
/mydb.nsf/xPublish?OpenAgent&docid=487A3447CFA36BF085257EE400626485 HTTP    GET 302     190 B   141 ms  cliquer 218 16  125 0   0   1620
http://myserver.com/mydb.nsf/dx/test_13col00    HTTP    GET 200 text/html   55.71 Ko    312 ms  cliquer 359 0   0   32  0   1308

A case that doesn't work:
http://myserver.com/mydb.nsf/page.xsp?action=editDocument&documentId=353BA  HTTP    POST    302     244 B   188 ms  cliquer 0   32  0   156 0   156
/mydb.nsf/xPublish?OpenAgent&docid=E0E13322928B8F9685257EE400628B0A HTTP        (Abandonned)        193 B   < 1 ms  cliquer 188 0   0   0   0   156
我将保留名为(xPublish)的LotusScript代理的详细信息,但该代码中的重定向是这样完成的:

Print "Location:" + db.Filepath + "/dx/" + res_title
根据IE的http日志,在运行按钮中的代码时似乎出现了一些问题,导致http post被放弃,因此,对LotusScript代理的调用也被放弃,而不是将用户重定向到新发布的页面。而是将用户重定向到此URL:

http://myserver.com/mydb.nsf/page.xsp?action=editDocument&documentId=353BA
这里最大的问题是这个页面(草稿版本)在LotusScript代理中被删除,所以URL给出了一个错误页面

如果您想知道为什么发布代码在LotusCipt中,那是因为我们还有一个每天运行的计划代理,它发布“计划发布”,并设置为将来发布。这是为了避免同时维护SSJS和LotusScript代码

有什么线索可以解释为什么会这样吗


更新

好的,代码似乎工作正常,但是LotusScript代理中的重定向没有完成这项工作。这是我用来重定向到刚刚发布的页面的内容:

Print "Location: http://ourserver.com/mydb.nsf/dx/" + res_title

它曾一度奏效,但现在似乎引起了一些问题。有趣的是,代理可以很好地处理我们从头创建的文档,但不能处理在应用程序的早期版本中创建的文档。。。仍然不知道如何解决这个问题。从LotusScript为xpages重定向的方法是什么?

好的,我已经准备好了。这仍然有点奇怪,因为它对新文档运行正常,但对在应用程序的早期版本中创建的文档运行不正常,但我调用LotusScript代理的方式错误

通过查看在IBMWiki模板中是如何完成的,我注意到他们以不同的方式调用LotusScript代理,我尝试了这一点。结果证明它工作得很好:代码被调用,重定向没有任何问题

下面是我现在呼叫我的代理并执行重定向的方式:

var agent = database.getAgent("xPublish");
var res = facesContext.getExternalContext().getResponse();
agent.runOnServer(pageDocument.getNoteID());    
res.sendRedirect(@Left(facesContext.getExternalContext().getRequestContextPath(),".nsf")+".nsf/dx/"+pageDocument.getItemValueString("res_title"));
正如我所说,我不知道为什么我的原始代码停止工作,并且只有在应用程序的前一个版本中创建的文档出现问题,但是新代码始终适用于所有文档。如果IBM这样做,我想这可能是正确的方法

那个维基应用程序里面有很多代码!看看它,可以获得一些有价值的代码或灵感

var agent = database.getAgent("xPublish");
var res = facesContext.getExternalContext().getResponse();
agent.runOnServer(pageDocument.getNoteID());    
res.sendRedirect(@Left(facesContext.getExternalContext().getRequestContextPath(),".nsf")+".nsf/dx/"+pageDocument.getItemValueString("res_title"));