2014-09-18 3 views
1

Я студент, и я новичок в Filenet. Я пытаюсь выполнить тестовый код при перемещении файла.Fetch FileStorageArea в Filenet с путём [Перемещение документа]

Document doc = Factory.Document.getInstance(os, ClassNames.DOCUMENT, new Id("{33074B6E-FD19-4C0D-96FC-D809633D35BF}")); 
FileStorageArea newDocClassFSA = Factory.FileStorageArea.fetchInstance(os, new Id("{3C6CEE68-D8CC-44A5-AEE7-CADE9752AA77}"), null); 

doc.moveContent(dsa); 
doc.save(RefreshMode.REFRESH); 

Дело в том, что я могу получить документ на своем пути, как это,

doc = Factory.Document.fetchInstance(os, "/DEMO/MASTERFILE/ZONE-X/Org.No-XXXXX/XXXX-X-XXXX-X.TIF",null); 

, но я не могу принести StorageArea по пути, он принимает только удостоверение личности. Есть ли способ переместить файл легко, чем это? Как я могу получить идентификатор с помощью пути без использования запросов?

ответ

-2

Вы можете получить доступ к идентификатору документа, используя путь:

 //Get ID of the Document 
     StringBuffer propertyNames = new StringBuffer(); 
     propertyNames.append(PropertyNames.ID); 
     propertyNames.append(" "); 
     propertyNames.append(PropertyNames.PATH_NAME); 

     PropertyFilter pf=new PropertyFilter(); 

     FilterElement felement= new FilterElement(Integer.valueOf(0),Long.valueOf(0),Boolean.TRUE,propertyNames.toString(),Integer.valueOf(0)); 
     pf.addIncludeProperty(felement); 

     Document document = Factory.Document.fetchInstance(os, ruta, pf); 

     idDocument = document.get_Id().toString(); 

и в строке idDocument вы имеете его. Надеюсь, поможет.

+0

Хороший ответ. Интересным было бы понять, почему это невозможно получить по пути ... – abarisone

+1

@abarisone Этот ответ не имеет смысла. Идентификатор объекта всегда присутствует, однако объект извлекается; эти манипуляции с PropertyFilter бесполезны. Не сказать, что это никоим образом не затрагивает вопрос. – fnt

0

Нет другого способа получить FileStorageArea по его пути, кроме запроса запроса и фильтра, на объект RootDirectoryPath.