Visiativ Process : exporter et importer des documents de processus au format XML
Sommaire
Exporter des documents d’une application
Export de tous les documents d’un processus donné
Limitations de l’assistant d’export
Intégration du script dans un formulaire
Lancement de l’export unitaire
Importer des documents dans une application
Lorsque vous travaillez avec plusieurs environnements Visiativ Process (exemple : un environnement de test, et un environnement de production), vous avez certainement eu le besoin d’exporter des documents de Processus d’un environnement, pour les réimporter sur un autre.
La méthode décrite ci-dessous vous expose une méthodologie pour réaliser des exports/imports de Processus.
Exporter des documents d’une application
Dans Visiativ Process, un enregistrement (document de processus) est composé :
- De valeurs de champs
- D’un historique de traitement
- Il s’agit de l’historique d’intervention des opérateurs du processus aux étapes déjà passées
- D’un état courant
- Etape en cours
- Intervenants en cours
Afin de pouvoir réimporter proprement un document de processus, il faudra donc exporter l’ensemble de ces éléments.
Il existe une fonction native du SDK Process permettant de sérialiser un document de processus sous forme de fichier XML. Ce XML contiendra donc :
- La valeur de tous les champs du processus (pièces-jointes incluses)
- L’historique de traitement du document
Nous vous présentons donc deux méthodes pour exporter des documents de processus dans ce format XML :
- Un outil permettant d’exporter l’ensemble des documents d’un processus donné
- Un script que vous pourrez intégrer sur un formulaire afin d’exporter un document donné
Export de tous les documents d’un processus donné
Afin de réaliser un export complet des documents d’un processus, nous allons faire appel à un écran masqué du produit, que vous pourrez atteindre en construisant une URL particulière.
Soit %VISIATIV_HOME% l’URL de base de votre application (c’est-à-dire que votre page d’accueil est donc %VISIATIV_HOME%/easysite/workplace).
Vous pourrez donc accéder à l’écran d’export caché en allant à l’URL suivante :
%VISIATIV_HOME%/navigation?class=generic&method=export
Une fois arrivé sur cet écran, vous devrez sélectionner :
- L’application dans laquelle se trouve votre processus pour lequel vous souhaitez exporter des documents
- Le groupe de processus dans lequel se trouve votre processus pour lequel vous souhaitez exporter des documents
- La version de processus à partir de laquelle les documents seront exportés
- Ce paramètre est optionnel. S’il est laissé à vide, toutes les versions de tous les processus du groupe sélectionné seront traitées
- Si l’export doit contenir les fichiers dans les champs pièces-jointes
- Si coché, ces pièces-jointes seront encodées dans les XML produits en sortie. L’export sera plus long et plus volumineux, mais vous permettra de récupérer les fichiers pièces-jointes lors de la réimportation

En cliquant sur le bouton « Next », l’export des documents est lancé. Pour chaque document de processus, un fichier XML sera créé. Lex XML seront ensuite zippés, et l’assistant d’export vous proposera de télécharger ce zip une fois le traitement terminé.

Limitations de l’assistant d’export
Attention à l’usage de cet outil. Voici les limitations auxquelles vous serez confronté :
- Il sera produit un fichier XML par document de processus. Ce fichier XML aura comme nom la référence (champ sys_Reference) du document de Processus. Aussi, si dans le groupe de processus sélectionné, ou la version de processus sélectionnée, vous avez des doublons de référence, vous perdrez des données à l’export
- L’export est un mécanisme à forte charge. Il ne doit être utilisé que sur des processus à faible volumétrie. Sur des processus contenant des milliers de documents, le traitement aura un impact sur les performances de votre application, prendra plusieurs dizaines de minutes ou plusieurs heures, et pourrait ne jamais aboutir
Export unitaire d’un document
L’assistant d’export ne permet pas de travailler sur un unique document. Si l’on souhaite exporter uniquement un document, il va nous falloir intégrer un script dans un formulaire du processus cible, et appeler ce script pour le document que l’on souhaite exporter.
Intégration du script dans un formulaire
Le plus simple est d’intégrer le script au clic sur un bouton, dans le formulaire d’entête du document. Ainsi, la fonction sera disponible, quelque soit l’étape en cours.
Depuis le Studio, éditez le formulaire d’entête de votre version de processus.

Sur votre formulaire, ajoutez un bouton, et associez le script suivant à votre bouton :

var baos = null;
var bais = null;
try {
baos = new Packages.java.io.ByteArrayOutputStream();
var transformer = iWorkflowModule.getTransformer();
transformer.setIncludeAttachmentsContent(true);
transformer.resourceToXML(iWorkflowInstance, baos);
bais = new Packages.java.io.ByteArrayInputStream(baos.toByteArray());
iWorkflowModule.addAttachment(iWorkflowInstance, « tmp_export_xml », iWorkflowInstance.getName() + « .xml », bais);
} catch (exception) {
alert(exception);
} finally {
if (baos != null) {
Packages.com.axemble.vdp.utils.StreamUtils.CloseSafe(baos);
}
if (bais != null) {
Packages.com.axemble.vdp.utils.StreamUtils.CloseSafe(bais);
}
}
Déposez ensuite sur votre formulaire d’en-tête, un champ pièces-jointes temporaire, que vous nommerez « tmp_export_xml » :
„tmp_export_xml“

Lancement de l’export unitaire
Ouvrez maintenant un document de Processus que vous souhaitez exporter.
Affichez le formulaire d’entête, puis cliquez sur le bouton d’export.

Vous pouvez ensuite télécharger le XML généré dans le champ pièces-jointes.
Importer des documents dans une application
Tout comme l’export, l’import des documents se fait depuis un assistant accessible via une URL.
Vous pourrez accéder à cet outil en accédant à l’URL suivante :
%VISIATIV_HOME%/navigation?class=generic&method=import

Dans le champ pièces-jointes, télécharger soit des fichiers XML (un ou plusieurs), ou bien un fichier ZIP contenant des XML à importer.
Cliquez sur « suivant ».
Tous les fichiers téléchargés sont traités. A la fin du traitement, Un rapport d’exécution s’affiche.

Remarques sur l’import
Lors de l’import dèun fichier XML, Visiativ Process va d’abord créer un nouveau document, en reprenant la référence du fichier exporté.
Il va ensuite mettre à jour les valeurs de champs.
Puis il va parcourir l’historique de traitement (actions réalisées sur les étapes passées), et va rejouer toutes les actions manuelles effectuées.
Attention : ceci implique que tous les traitements automatiques présent sur votre diagramme (traitements d’envoi d’email, modificateur de champs, scripts d’intégration spécifiques etc…) seront de nouveaux exécutés, pour chacun des documents réimportés.
Si, sur le serveur sur lequel vous effectuez votre réimport de données, l’annuaire n’est pas identique que sur votre serveur d’export, lors de l’import d’un document, l’avancement des tâches sera interrompu si un opérateur n’a pas pu être retrouvé.
