Search file

Cette section présente l’usage du IViewController pour les espaces documentaires.

Il s’agit des même IViewController présents sur les processus ou réservoirs de données, la logique de fonctionnement est donc très similaire.

Mise en place

Récupération du IViewController

Le IViewController peut être récupéré depuis le module : IViewController viewController = iLibraryModule.getViewController();

Les méthodes utilisables pour l’instant sont getViewController() ou getViewController(Class).

Les méthodes utilisant un stream et donc une description XML de requêtage ne sont pas encore disponibles.

Définition de contraintes

Des contraintes peuvent ensuite être déposées de la même manière qu’avec tous les IViewController.

Champs systèmes

Sysname Description
sys_Reference Nom du document
sys_CreationDate Date de création du document
sys_ModificationDate Date de dernière modification du document
sys_Creator Créateur du document
sys_Language Langue du document
sys_ResourceDefinition Nom système du type de document associé au document
sys_Library Nom système de l’espace documentaire du document
sys_FileName Nom du fichier
sys_FileSize Taille du fichier (en octets)

Attributs documentaires

Les attributs documentaires (issus du type de document) sont également requêtables via leur nom système.

Périmètres d’évaluations

Les périmètres possibles dans l’évaluation sont :

  • Le serveur complet : evaluate()
  • Un espace documentaire : evaluate(ILibrary)
  • Un type de document dans un espace documentaire : evaluate(IResourceDefinition)

Exemples

Recherche sur un espace documentaire

IViewController viewController = iLibraryModule.getViewController();
			
IContext context = libraryModule.getContextByLogin("sysadmin");
ILibrary library = libraryModule.getLibrary(context, "TestDocumentSpace");

viewController.addLessConstraint("sys_CreationDate", limitDate);
viewController.addGreaterConstraint("sys_FileSize", 200000);

Collection<IFile> fileList = viewController.evaluate(library);
for (IFile file : fileList) {
    LOGGER.error(file.getName());
}

Recherche sur toute l’instance

IViewController viewController = iLibraryModule.getViewController();
			
IContext context = libraryModule.getContextByLogin("sysadmin");

viewController.addEqualsConstraint("sys_ResourceDefinition", "MyGreatType");
viewController.addEqualsConstraint("attributeName1", "value1");

Collection<IFile> fileList = viewController.evaluate(library);
for (IFile file : fileList) {
    LOGGER.error(file.getName());
}

Méthodes non supportées

Il s’agit des méthodes du IViewController non supportées dans le cas de la recherche dans les espaces documentaires :

  • evaluate(ICatalog catalog)
  • evaluate(IWorkflowContainer workflowContainer)
  • evaluate(IWorkflow workflow)
  • evaluate(ITask task)
  • evaluateSize(ICatalog catalog)
  • evaluateSize(IWorkflowContainer workflowContainer)
  • evaluateSize(IWorkflow workflow)
  • evaluateSize(ITask task)
  • setAllowSystemCatalogs(boolean allowSystemCatalogs)
  • setSecurityApplied(boolean securityApplied)
  • setStatus(int status)

Source : https://wiki.myvdoc.net/xwiki/bin/view/Dev+Floor/SearchDocumentsInSpaces