Получить FileStorageArea в Filenet с путем [Перемещение документа]

Я студент и новичок в 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 по пути, требуется только идентификатор. Есть ли способ легко переместить файл, чем этот? Как я могу получить идентификатор с путем без использования запросов?


person Archangle    schedule 18.09.2014    source источник


Ответы (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 он у вас есть. Надеюсь, поможет.

person icrovett    schedule 29.09.2014
comment
Хороший ответ. Интересно было бы понять, почему невозможно получить по пути... - person abarisone; 28.04.2017
comment
@abarisone Этот ответ не имеет смысла. Идентификатор объекта всегда присутствует, независимо от того, какой объект извлекается; эти манипуляции с PropertyFilter бесполезны. Нельзя сказать, что это никак не решает вопрос. - person ᄂ ᄀ; 04.05.2017

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

person ᄂ ᄀ    schedule 04.05.2017