【问题标题】:Is there a way to programmatically create folders?有没有办法以编程方式创建文件夹?
【发布时间】:2019-05-08 13:39:03
【问题描述】:

有没有办法以编程方式创建文件夹?有一种方法可以在 Lotus 脚本中执行 - 该方法也没有记录在设计器帮助中。我想获取一个文档集合,然后将整个集合放入一个文件夹中。我可以在文档中看到这将创建文件夹 - 我想在文件夹中添加列。我想在最坏的情况下我可以在从“put”命令创建文件夹后打开它。

【问题讨论】:

    标签: directory xpages ssjs


    【解决方案1】:

    你可以使用ViewEntryCollection.PutAllInFolder方法https://www.ibm.com/support/knowledgecenter/en/SSVRGU_9.0.1/basic/H_PUTALLINFOLDER_METHOD_VEC_JAVA.html

    文件夹将从标记为“新视图/文件夹的默认值”属性的视图/文件夹创建。要改变它的设计,你可以使用createColumn方法https://www.ibm.com/support/knowledgecenter/SSVRGU_9.0.0/com.ibm.designer.domino.main.doc/H_CREATECOLUMN_METHOD_VIEW_JAVA.html

    【讨论】:

    • 非常感谢 - 您实际上谈到了我们遇到的问题 - 没有设置默认视图,因此文件夹的创建失败。啊,我不应该犯的菜鸟错误。
    • 我说得太早了。如果我尝试从 notesViewEntryCollection 放入文件夹,则代码有效。如果我尝试通过 NotesDocumentCollection 将其放入,则会收到此错误:[TypeError] Error calling method 'PutAllInFolder(string, boolean)' on an object of type 'lotus.domino.local.DocumentCollection [Static Java Interface Wrapper, lotus.domino .local.DocumentCollection: lotus.domino.DocumentCollection]' code if (docColl.getCount() > 0 ){ docColl.PutAllInFolder("Spicy3", true) code
    • 啊,我的错。在证明“.putInFolder”这个概念之后的某个时刻变成了“.PutInFolder”
    【解决方案2】:

    如果您想通过添加列来修改设计,则需要使用至少具有数据库设计者访问权限的 ID 运行。 ODA 有一个设计 API,可用于通过 DXL 创建设计元素。我用它来创建视图,但文件夹应该是一样的。

    如果您不需要修改设计,您可以通过以用户身份运行并调用getView() 创建一个 Shared Private on First Use 文件夹。我认为这不需要设计师访问权限,但值得仔细检查。

    注意:ODA 方法尚未经过 SSJS 测试。如果它有效,那么你很幸运,但重点是 Java。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-02
      • 1970-01-01
      • 2010-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多