AnsweredAssumed Answered

Problème rencontré lors de la mise à jour de doc. [Résolu]

Question asked by huberd on Nov 12, 2007
Latest reply on Nov 12, 2007 by huberd
Bonjour,

Dans notre process qualité, les documents doivent suivre un workflow de validation sur lequel je continue de travailler depuis un bon moment. A ce jour je suis à 85 pour ne pas dire 90% de sa réalisation.

Avant tout, voici une petite explication.

Le document est soumis par workflow a validation :

etape 1: Le document est soumis à une liste de relecteurs qui doivent approuver la relecture
etape 2: Le document est soumis à une liste d'approbateur qui doivent approuver le document
etape 3: Le document est soumis au service qualité pour pouvoir être publié définitivement dans le référentiel

Le passage d'une étape à l'autre n'est possible que par approbation de la précédente.

A ce jour les étapes 1 et 2 ainsi que les rejets fonctionnent à merveille.

Dans l'étape 3, le workflow génère une copie du document original pour le service qualité. Ce dernier peut alors récupérer la copie pour pouvoir y ajouter un agrémént qualité en bas de page du document pour le rendre authentique. Ce document est alors convertit en PDF par le service qualité, puis réinjécté par dessus la copie (document PDF écrasant le document Word).

Lors de la mise à jour de la copie (document Word par exemple), par le document PDF, l'extension reste inchangée dans les propriétés du document, par contre le Mime Type change bien en application/pdf. Pour palier à ce problème, j'ai dû dévélopper un analyseur d'extension. Ce dernier à pour but de modifier l'extension dans le nom du document pour le rendre cohérent avec le Mime Type.

Le code généré est le suivant:

// Get Document Name
String documentName = (String)nodeService.getProperty(actionedUponNodeRef, ContentModel.PROP_NAME);
System.out.println("Get Extension for document: " + documentName);

// Check Document Extension
// Get Mime Type
String contentMimeType = this.contentService.getWriter(actionedUponNodeRef, ContentModel.PROP_CONTENT, true).getMimetype().toString();
System.out.println("Content Mime Type: " + contentMimeType);
                  
String contentExtension = documentName.substring(documentName.lastIndexOf('.')+1, documentName.length());
System.out.println("L'extension est: " + contentExtension);

if (contentMimeType.equals(PDF_MIME_TYPE) && !contentExtension.equals(PDF_EXTENSION)) {
   System.out.println("L'extension courrante ne correspond pas au Mime Type courrant");
   documentName = documentName.replace(contentExtension, PDF_EXTENSION);
   System.out.println("Le nouveau nom est: " + documentName);
   nodeService.setProperty(actionedUponNodeRef, ContentModel.PROP_NAME,documentName);
}
Le code fonctionne très bien et me remplace correctement l'extension .doc en .pdf.

Là où cela ce complique, c'est quand je demande à nouveau le path du document, il semble que ce dernier ne soit pas contruit à partir du nom du document et obtient toujours un path avec le nom du document avec l'ancienne extension, ce qui est fort génant.

System.out.println("Node Path:        " + nodeService.getPath(actionedUponNodeRef).toString());
ce qui donne comme résultat suivant :

/{http://www.alfresco.org/model/application/1.0}company_home/{http://www.alfresco.org/model/content/1.0}LPR/{http://www.alfresco.org/model/content/1.0}EU_x0020_-_x0020_Group/{http://www.alfresco.org/model/content/1.0}DSI_x0020_-_x0020_Maintenir_x0020_le_x0020_système_x0020_d_x0027_Information/{http://www.alfresco.org/model/content/1.0}DOC_x0020_-_x0020_Document_x0020_Interne/{http://www.alfresco.org/model/content/1.0}Drafts/{http://www.alfresco.org/model/content/1.0}Manuel_x0020_utilisateurs_x0020_-_x0020_Utilisation_x0020_Alfresco.doc

Comment puis-je faire pour mettre à jour également le path ou le forcer à se reconstruire correctement ?

Merci pour votre aide

Outcomes