Лучше всего было бы запросить все документы в папке, а затем перебирать их, извлекать метаданные, и построить свой XML любым способом, который вы видите лучше.
Вы можете найти образцы кода, показывающие, как использовать запросы через API here. Синтаксис построения запроса можно найти here (проверьте Операторы папки раздел в частности).
Теперь, когда у вас есть документы, просто перебирать на них, и получить коллекцию свойств, получить индивидуальные свойства, и считывать значения с помощью соответствующих методов (getStringValue, getInt32Value и т.д.)
ПРИМЕЧАНИЕ:, если вы хотите, чтобы ваш запрос включать текущие версии только, а не рассматривать старые версии, добавить этот пункт к вашему запросу: ([IsCurrentVersion] = TRUE)
в общем, с шаблонного кода, вы должны иметь что-то например: (Скопируйте вставленные разделы из старого кода, а не guara nted to work с самого начала)
// 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 :)
}
}
}
Привет, Поллонко, Большое вам спасибо за ответ. Есть ли способ получить информацию о записи (метаданные) в FPOS. Я смог сделать для документов в Рекордном магазине. Например: у меня есть запись с именем «Запись 1» внутри объема записи с именем «RecordV1», которая заходит внутри записи «RecordC1». Мне нужны все вышеперечисленные детали. Пожалуйста, дайте мне знать, если der - это образцы. Еще раз спасибо! – user1194310