需要有关Filenet Enterprise Records的帮助



我对Filenet非常陌生。我有一个要求,我需要提取特定文件夹中每个文档/记录的元数据。然后我需要将该元数据导出到XML中。首先,我需要检查是否有任何文档与该文件夹相关,然后我需要为例如:Folder1有4个文件,即File1、File2、File3和File4执行此步骤。现在,我需要将所有这些文件的元数据(例如:createdBy、createdDate等)提取为xml。我知道我可以通过查询来获得元数据,但不知道我如何获得文件夹中没有文档/记录的计数,并迭代以获得元数据。我需要使用Java来完成这些事情。

非常感谢您的即时帮助/投入。

谢谢,标记

您最好的选择是查询文件夹中的所有文档,然后对它们进行迭代,提取元数据,并以您认为最好的方式构建xml。

您可以在这里找到显示如何通过API使用查询的代码示例。查询构建语法可以在此处找到(请特别查看文件夹运算符部分)。

现在您有了文档,只需对它们进行迭代,检索属性集合,获取各个属性,并使用适当的方法(getStringValue、getInt32Value等)读取值

注意:如果您希望查询仅包括当前版本,而不考虑旧版本,请将此子句添加到查询中:([IsCurrentVersion]=TRUE)

总而言之,有了样板代码,您应该有这样的东西:(从旧代码中复制粘贴的部分,不能保证立即工作)

    // Set connection parameters; usually loaded from a properties file.
    String uri = "http://server:port/wsi/FNCEWS40MTOM/";
    String username = "username";
    String password = "password";
    // Make connection.
    Connection conn = Factory.Connection.getConnection(uri);
    Subject subject = UserContext.createSubject(conn, username, password, null);
    UserContext.get().pushSubject(subject);
    try
    {
        // Get default domain.
        Domain domain = Factory.Domain.fetchInstance(conn, null, null);
        System.out.println("Domain: " + domain.get_Name());
        // Get object stores for domain.
        ObjectStore os = Factory.ObjectStore.fetchInstance(domain, "OS_Name", null);
        // Build the query you want to use here
        // Add the attributes you want, the document class you're interested in, etc.
        String sqlstr = "SELECT [This], [createdBy], [createdDate] FROM [docClass] WHERE ([IsCurrentVersion] = TRUE) AND Document.This INFOLDER '/f1/f2'";
        SearchSQL sql = new SearchSQL(sqlstr)
        SearchScope scope = new SearchScope(os);
        IndependentObjectSet docs = scope.fetchObjects(sql, 1000, null, true);
        // Get the page iterator
        PageIterator p = docs.pageIterator();
        // Loop through each page
        while(p.nextPage())
        {
            // Loop through each item in the page
            for(Object objct : p.getCurrentPage())
            {
                // Get the document object and write Document Title
                Document doc = (Document)objct;
                Properties props = doc.getProperties();
                String creator = props.getStringValue("createdBy");
                Date creationDate = props.getDateTimeValue("creationDate");
                // Now that you have the values, do what you want with them :)
            }
        }
    }

相关内容

  • 没有找到相关文章

最新更新