2014-10-30 81 views
0

我正在嘗試使用Filenet文檔執行測試程序。我知道如何獲得一個文檔實例與Object Idpath一樣,使用屬性獲取Filenet文檔

​​

,但我想補充更多的發現選擇這樣我就可以獲取, 文檔與名稱或自定義屬性。我試圖通過這種搜索作爲一種方法:

String mySQLString = "SELECT * FROM DEMO WHERE DocumentTitle LIKE '"+prp+"'"; 
    SearchSQL sqlObject = new SearchSQL(); 
    sqlObject.setQueryString(mySQLString); 

    // System.out.println(mySQLString); 
    SearchScope searchScope = new SearchScope(os); 
    RepositoryRowSet rowSet = searchScope.fetchRows(sqlObject, null, null, new Boolean(true)); 
    Iterator ppg = rowSet.iterator(); 

    if (ppg.hasNext()) { 

      RepositoryRow rr = (RepositoryRow) ppg.next(); 
      System.err.println(rr.getProperties()); 
      Properties properties = rr.getProperties(); 

      String ID = properties.getStringValue("ID"); 
      System.out.println(ID); 

    doc = Factory.Document.fetchInstance(os,ID,null); 

但是,ID不是一個Document屬性,它是一個System屬性。我如何獲取文檔?如何通過搜索並獲取此文檔獲得pathid?有一個快速的方法嗎?

回答

0

經過一些小的改變,我使它的工作。以下是密碼

if (type=="name"){ 
    String mySQLString = "SELECT ID FROM Document WHERE DocumentTitle LIKE '"+prp+"'"; 
    SearchSQL sqlObject = new SearchSQL(); 
    sqlObject.setQueryString(mySQLString); 

    // System.out.println(mySQLString); 
    SearchScope searchScope = new SearchScope(os); 
    RepositoryRowSet rowSet = searchScope.fetchRows(sqlObject, null, null, new Boolean(true)); 
    Iterator ppg = rowSet.iterator(); 

    if (ppg.hasNext()) { 

      RepositoryRow rr = (RepositoryRow) ppg.next(); 
      System.err.println(rr.getProperties()); 
      Properties properties = rr.getProperties(); 

      String ID = properties.getIdValue("ID").toString(); 
      System.out.println(ID); 
      // System.out.println(properties.getIdValue(prp)); 


      doc = Factory.Document.fetchInstance(os,ID,null); 

    } 

現在幾乎沒有變化,這可以用來獲取任何帶有屬性的文檔。

-1

您可以遍歷所有文檔。看看這個:

public void iterateThruAllDocs(ObjectStore os, String foldername) { 
    Folder folder = Factory.Folder.fetchInstance(os, foldername, null); 
    Document doc = Factory.Document.getInstance(os, null, foldername); 

    DocumentSet docset = folder.get_ContainedDocuments(); 
    Iterator<DocumentSet> docitr = docset.iterator(); 

    while (docitr.hasNext()) { 

     doc = (Document) docitr.next(); 
     String mydocid = doc.get_Id().toString(); 
     Document mydoc = Factory.Document.fetchInstance(os, mydocid, null); 
     AccessPermissionList apl = mydoc.get_Permissions(); 
     Iterator ite = apl.iterator(); 
     while (ite.hasNext()) { 
      Properties documentProperties = doc.getProperties(); 
      String DateCreated = documentProperties.getDateTimeValue("DateCreated").toString(); 
      String DateLastModified = documentProperties.getDateTimeValue("DateLastModified").toString(); 
      Permission permission = (Permission) ite.next(); 
      String docTitle = doc.getProperties().getStringValue("DocumentTitle"); 
      System.out.println("Document Title for document with DocumentID \"" + mydoc.get_Id() + "\" is \"" + docTitle + "\""); 
      //String someprop = documentProperties.getStringValue("someprop"); 
      System.out.println("Document was Created on :: " + DateCreated); 
      System.out.println("Document was Last Modified on :: " + DateLastModified); 
      System.out.println("Grantee Name :: " + permission.get_GranteeName()); 
      //if (permission.get_GranteeName().equals(groupname/username)) { 
      //permission.set_GranteeName("groupname/username"); 
      // System.out.println("Security REMOVED for document...."); 
      //mydoc.save(RefreshMode.REFRESH); 
      // Go Nuts on Documents Here...... 
      break; 
     } 
    } 
}