0

将超过 17000 个文档复制到文件夹时出现以下错误:

Exception occurred calling method NotesDocumentCollection.putAllInFolder(string)

这是我的代码:

docColl = database.search(formula);
getComponent("TempName").setValue(docColl.getCount());
docColl.putAllInFolder("f_Statistics");

如果我移动的文件少于 17000 个,它就可以工作。视图中没有任何文档。

我怎么解决这个问题?

4

2 回答 2

1

我怎么解决这个问题?

复印更少的文件?如果文档数量超过一定数量时遇到问题,为什么不将其拆分为多个动作?

于 2013-07-29T14:12:27.720 回答
1

也许您可以使用循环和 try...catch 来处理错误。我不确定 xpages 所需的确切语法,但可能是这样的:

docColl = database.search(formula);
exceptionCaught = true;  // little white lie
while(exceptionCaught = true);
{

  getComponent("TempName").setValue(docColl.getCount());
  exceptionCaught = false;
  try
  {
    docColl.putAllInFolder("f_Statistics");
  }
  catch (Exception e)
  {  // It blew up; assume that this means there were too many docs
     View folder = db.getView("f_Statistics");
     docColl.Subtract(folder.getAllEntries();
     exceptionCaught = true;
  }
}

是的,这是一个黑客。

不...上面没有经过测试,甚至没有检查语法。我只是把这个想法扔掉。

如果你尝试这个,我强烈建议你做一些额外的检查,以确保异常的原因确实是文档的数量,因为如果发生任何其他异常,上面的代码很可能是一个无限循环!

于 2013-07-29T18:16:49.583 回答