Я делаю проект, связанный с хранилищем данных Documentum. И я пытаюсь обновить все аКЛы имена, присвоенные подпапки папки с помощью следующей функции:подсчитайте, сколько объектов было обновлено в Documentum
try {
StringBuilder str = new StringBuilder();
str.append(dirDestination);
str.append("/");
str.append(companyName);
String query = "update dm_folder object set acl_name = '@acl_name' , set acl_domain ='@acl_domain' where folder ('@acl_dirPath',descend)";
query = query.replace("@acl_name",newAclName);
query = query.replace("@acl_domain",inheritedAclDomain);
query = query.replace("@acl_dirPath",str.toString());
IDfQuery ACLQuery = new DfQuery();
ACLQuery.setDQL(query);
ACLQuery.execute(_session, IDfQuery.DF_EXEC_QUERY);
log.info("All the sub folders have received the new ACL.");
}catch(Exception E){
System.out.println(E.getLocalizedMessage());
}
Функция работает прекрасно, но я хочу знать, сколько папок, был обновлены в результате используя эти строки кода. Один из способов будет использовать IDfCollections
, который, кажется, не будет работать для этого DQL, как я написал следующее, и я получаю 1:
try{
StringBuilder path = new StringBuilder();
path.append(dirDestination);
path.append("/" + companyName);
String query = "update dm_folder object set acl_name = '@newAclName' , set acl_domain ='@newAclDomain' where folder ('@aclPath',descend)";
query = query.replace("@newAclName" , newAclName);
query = query.replace("@newAclDomain" , inheritedAclDomain);
query = query.replace("@aclPath" , path);
IDfQuery ACLQuery = new DfQuery();
ACLQuery.setDQL(query);
IDfCollection count = ACLQuery.execute(_session, IDfQuery.DF_EXEC_QUERY);
int counter = 0 ;
while (count.next()){
counter++ ;
}
System.out.println("counter for sub folders ==> " + counter);
log.info("The ACl name for all the sub folders are updated .");
}catch(Exception E){
System.out.println(E.getLocalizedMessage());
}
Таким образом, вопросы, как я могу знать метаданные, сколько объекты обновлены? другой способ может быть проверен на основе даты изменения объектов. Но есть ли другой способ (более прямой)?