Découpage de documents

Cet article détaille la fonctionnalité de composition de documents et une de ces intégrations possibles dans la gestion de courrier.
Découpage de documents

06/04/2021

Vos documents entrants sont numérisés sans découpage et identifiation des différents types de documents ? Des erreurs d’identification en amont ont eu lieu dans la chaîne de dématérialisation ?

Pas de panique, FlowerDocs offre une fonctionnalité de découpage de documents permettant à un utilisateur d’isoler les différents contenus et d’en identifier le type. Ainsi il est possible de réorganiser les documents facilement au sein du système de GED.

Composition de documents

FlowerDocs, à travers la visionneuse ARender, offre une fonctionnalité de composition de documents permettant aux utilisateurs de redéfinir le contenu des documents :

  • modifier l’ordre des pages
  • supprimer des pages indésirables
  • fusionner deux contenus de documents
  • créer un nouveau document à partir des pages d’un premier contenu

    Outil de composition de documents
    Outil de composition de documents

Cas d’usage : identification des courriers entrants

Les courriers entrants sont numérisés en amont par une chaîne de dématérialisation et sont associés à un processus de traitement dans FlowerDocs.
Lors de l’étape de traitement, l’utilisateur dispose de la composition de documents pour redécouper les contenus et ainsi disposer de l’ensemble des documents métier identifiés et isolés.

Lorsque l’utilisateur crée un nouveau document à travers la composition de documents, un formulaire d’indexation de ce nouveau document lui est proposé, lui permettant ainsi de définir la typologie du document nouvellement créé.

Indexation du nouveau document
Indexation du nouveau document

Le nouveau document est automatiquement ajouté au sein du courrier dans FlowerDocs.

Mise à jour des pièces jointes
Mise à jour des pièces jointes

Intégration

Cette intégration dans FlowerDocs peut être faite côté client via un script en JavaScript.


Un script permettant de récupérer le document issu de la composition de documents et d'ouvrir une fenêtre d'indexation.

var attachmentToPopulate = COURRIER_ATT_ID;
var currentTask = null;
var documentsByTask = null;

JSAPI.get().registerForComponentChange(function(componentFormAPI, component, phase) {
	currentTask = component;
	documentsByTask = [];
});

function sugar_onNotifyAlterDocumentContentEvent(arenderJSAPI, event) {
	var alteredId = arenderJSAPI.documentBuilder.getResultDocumentId(event);
	notifyAlterDocumentContentEvent(arenderJSAPI, alteredId);
}

function notifyAlterDocumentContentEvent(arenderJSAPI, alteredId) {
	arenderJSAPI.getDocumentMetadata().getDocumentMetadata(alteredId, function(metadata){
		arenderJSAPI.getDocumentLayout().getDocumentLayout(alteredId, function(layout) {
			customOnBuildNewDocument(metadata.FDID, metadata.Title);
		});
	});
}

function customOnBuildNewDocument(flowerId, documentTitle){

	var newDocument = new Document();
	newDocument.setId(flowerId);
	newDocument.setName(documentTitle);	
	newDocument.setClassId(DOCUMENT_COURRIER_CLASS);
	if (currentTask != null) {
		TagOracle.predict(currentTask, newDocument);
		documentsByTask.push({documentId: flowerId, taskId : currentTask.getId(), attachmentId : attachmentToPopulate});
	}
	
	JSAPI.get().getPopupAPI().launchDocumentCreationPopup(newDocument, false, function (saved){
		
		setTimeout(function(){ 
	       var saveDocument = null;
			for (var i in documentsByTask) {
				if (saved.getId() == documentsByTask[i].documentId) {
					saveDocument = documentsByTask[i];	
					documentsByTask.pop(i);				
					break;
				}
			}
			
			if (saveDocument != null) {		
				var addEvent = new AddTaskAttachmentEvent(saveDocument.attachmentId, saved);
				if (saveDocument.taskId != undefined) {
					JSAPI.get().getComponentFormAPI(saveDocument.taskId).fireEvent(addEvent);									
				}
			}
    	}, 500);
		
	});
}