Installation

La norme CMIS

La norme CMIS (Content Management Interoperability Services) est un standard libre qui permet à différents systèmes de gestion de contenu de s’interfacer. Son domaine d’action principal est la définition des actions effectuées sur les dossier et documents qu’ils contiennent via le web.

Cette norme définit un modèle de données ainsi que les services Web et les connexions AtomPub disponibles pour l’interfaçage d’applications autour de la gestion de documents.

L’interface CMIS est conçue pour se superposer aux systèmes existants. Elle n’a pas pour objectif de prescrire les caractéristiques des systèmes sur lesquelles elle se connecte, mais bien au contraire de définir un point d’échange standardisé sur lequel s’interconnecter.

De cette façon, la norme fournit un modèle de données commun couvrant les types de fichiers et répertoires avec des propriétés génériques pouvant être lues ou écrites. En complément, les propriétés nécessaire au projet peuvent se greffer dessus afin de rendre le modèle pertinent au projet.

La norme décrit également un système de gestion des droits d’accès ainsi qu’un contrôle de versions.

Il existe 3 protocoles standards de connexion :

  • SOAP – WSDL
  • AtomPub – protocole non implémenté dans le connecteur Multigest
  • Rest – Json

Ce modèle de données a pour objectif d’être le plus communs possible aux différentes architectures de GED. De cette façon, tant que les spécifications sont respectées, les langages et protocoles utilisées n’ont que peu d’importance.

Méthodes d’utilisation

Multigest implémente la norme CMIS côté serveur. Elle expose ainsi les WebServices tels que définis dans la documentation officielle :

http://docs.oasis-open.org/cmis/CMIS/v1.1/errata01/os/CMIS-v1.1-errata01-os-complete.html

L’implémentation côté client peux principalement se faire de 2 manières :

  • direct : via la connexion au WSDL (SOAP) ou l’appel des WebServices (Rest)
  • via la librairies d’Apache Chemistry

En connexion directe, le client doit implémenter les objets définis par le modèle CMIS. Selon les langages, Efalia peut vous fournir quelques exemples d’utilisation

En utilisation des librairies d’Apache Chemistry, il est important d’avoir connaissance de cette couche supplémentaire entre l’applicatif client et le serveur Multigest.

Installation du connecteur

L’installation du connecteur Multigest suit une procédure en x points :

  • copie des fichiers
  • paramétrage de la configuration
  • création des utilisateurs et des armoires
  • application de traitements spécifique selon le ou les outils métier utilisant le connecteur

Copie des fichiers – mode automatique

Le code du connecteur est inclus dans les livraisons SVN ou git courantes. Aucune installation particulière n’est donc requise.

Copie des fichiers – mode manuel (facultatif)

En cas de nécessité, une mise à jour spéciale du code du connecteur peut être nécessaire. Dans ce cas, il faut se positionner dans le dossier \\servMultigest\webserveur\Interconnexion\CMIS. Il contient le code du connecteur CMIS.

Après une sauvegarde du dossier, il suffit d’en remplacer le contenu.

Attention – il est recommandé d’utiliser cette méthode sous couvert d’un intervenant Efalia. Les modifications apportées seront en effet écrasées lors de l’application du patch suivant.

Paramétrage

Le fichier de configuration du connecteur est un fichier XML. Il est accessible derrière le chemin suivant : \\servMultigest\bin\cmis.xml

Le connecteur peut fonctionner quand bien même ce fichier de configuration est vide. Il faut donc le voir comme une liste de spécification surchargeant les règles par défaut. Chacune étant définie au niveau d’une armoire.

Le premier niveau de balise est donc “repository” avec en attribut “id”, l’identifiant de l’armoire concernée. Ce qui donne la balise : <repository id=”A00044″></repository> par exemple.

En second niveau, figurent l’ensemble des paramètres applicables :

  • allowGedFolderCreation
  • gedFolderCreationPropertyForName

allowGedFolderCreation

Paramètre à utiliser dans une armoire en mode dossier lorsque l’outils métier doit pouvoir créer des dossiers GED. Par défaut, la création de dossier GED est interdite depuis le connecteur.

<allowGedFolderCreation>true</allowGedFolderCreation>

gedFolderCreationPropertyForName

Paramètre à utiliser en rapport avec la propriété “allowGedFolderCreation”. Il s’agit simplement de la métadonnée à faire correspondre à la propriété CMIS cmis:name.

<gedFolderCreationPropertyForName>CHAMP_1</gedFolderCreationPropertyForName>

crossRepositorySearch

Paramètre permettant de désactiver le lien inter-armoire dans les algorithmes de recherche. Si ce paramètre n’est pas définit, il prend sa valeur par défaut : true.

<crossRepositorySearch>false</crossRepositorySearch>

maxQueryResults

Par défaut, la fonction de recherche query() ne retourne pas plus de 100 résultats (les 100 premiers). Il est possible de descendre cette limite, par répertoire.

<maxQueryResults>50</maxQueryResults>

activeRepositoriesCompleteSearch

Lorsque cette clé est présente et définie à “true”, la recherche multi-armoire est activée. Cette clé doit être complétée par la suivante, qui définie la liste des armoires concernée.

Lorsque cette clé n’est pas renseignée, la recherche multi-armoire est désactivée.

< activeRepositoriesCompleteSearch>true</activeRepositoriesCompleteSearch>

repositoriesCompleteSearch

Cette clé permet de définir les armoires à consulter lors d’une recherche multi-armoire. Chaque identifiant d’armoire est séparé par le caractère “|”. A noter que l’armoire depuis laquelle est lancée la recherche doit également être définie.

< repositoriesCompleteSearch>A00015|A00078|A00124</repositoriesCompleteSearch>

properties

Cette balise est une balise parente contenant la liste des correspondances entre métadonnées métier et métadonnées GED. Ce système permet par exemple de définir que l’application métier envoie la métadonnée METADONNEE1 qui doit être importée dans la GED comme mdata:CHAMP_1.

Ce mécanisme est fortement déconseillé. En effet, outil métier et GED fonctionnent sur des métadonnées différentes, les risques de perte de cohérence sont élevés.

Chaque définition est décrite par une balise “property” ayant les attributs :

  • name : nom de la métadonnées reçue de l’application métier
  • desc (facultatif) : description de la métadonnée
  • update : métadonnées à faire correspondre, séparés d’une virgule
    • préfixer avec “index:” pour les métadonnées dossier
    • préfixer avec “mdata:” pour les métadonnées document

Par exemple :

<property name=”IDMETIER” desc=”id métier” matching=”” update=”index:IDENTIFIANT”/>

Ceci indique que la métadonnée “IDMETIER” doit être importée dans la métadonnée dossier “IDENTIFIANT”

<property name=”MONTANT” desc=”id métier” matching=”” update=”mdata:PRIX”/>

Ceci indique que la métadonnée “MONTANT” doit être importée dans la métadonnée document “PRIX”

<property name=”NOM” desc=”id métier” matching=”” update=”index:USAGER,mdata:NOM”/>

Ceci indique que la métadonnée “NOM” doit être importée dans la métadonnée dossier “USAGER” et dans la métadonnée document “NOM”.

Création des utilisateurs et des armoires

Le connecteur ne pourra fonctionner sans un utilisateur actif, ainsi que l’accès à une ou plusieurs armoires.

Lorsque l’application cliente est capable d’utiliser les utilisateurs connus de Multigest, il est recommandé de les utiliser. Si ce n’est pas le cas, il est recommandé de créer un utilisateur spécial. Dans tous les cas, les utilisateurs devront avoir les droits d’accès aux armoires interrogées via le connecteur.

Si le connecteur utilise des armoires spécifiques, il est nécessaire de les créer.

Principe d’utilisation de l’armoire sas

L’armoire sas (ou armoire de déversoir), est une armoire en mode fichier utilisée comme point d’entrée unique.

Le principe de cette armoire est de permettre aux applications clientes de déposer un document sans se préoccuper de son classement définitif dans la GED. L’application dépose le document avec ses métadonnées à la racine de cette armoire, c’est ensuite à Multigest de classer le document dans la bonne armoire et dans le bon dossier.

Afin de permettre à l’application tierce de retrouver le document, un identifiant unique est retourné lors de l’ajout du document dans l’armoire sas. Cet identifiant permet ensuite de retrouver le document où qu’il se trouve dans la GED.

Traitement spécifiques selon les applications clientes

Certaines applications ont leur spécificités. Il est cependant important de noter que toutes utilisent le même connecteur MGConnect. Il ne s’agit ici que de questions de paramétrage, modalités d’utilisation ou enchaînements différents.

[CGI] Grand Angle

  • Utilisation de l’armoire sas en mode fichier
  • Afin de pouvoir utiliser la recherche avancée, il est nécessaire d’ajouter toutes les métadonnées de toutes les armoires dans l’armoire sas. Il est également nécessaire d’avoir les 16 métadonnées Grand Angle dans toutes les armoires auxquels Grand Angle a accès.
  • Ajout du modèle défini en Annexe 1 dans le fichier \\servMultigest\bin\cmis.xml
  • Lors de la création d’un document, Grand Angle envoie les métadonnées séparément : createDocument() pour ajouter le document, updateProperties() dans la foulée pour intégrer les métadonnées.
  • Création d’une fiche de métadonnées vide dont le nom physique doit être [GRANDANGLE].
  • Lancement du script de synchronisation (cf Annexe 5)

[GFI] Astre

  • Utilisation de l’armoire sas
  • Ajout du modèle défini en Annexe 2 dans le fichier \\servMultigest\bin\cmis.xml

[Berger-Levrault] Sedit

  • Utilisation de dossiers sas à la racine de chaque armoire dans laquelle Sedit dépose des documents
  • Procédure de création des dossiers sas :
    • créer dossier GED dans l’armoire concernée via l’interface web Multigest
    • récupérer son numéro système (5 par exemple)
    • convertir en hexadécimal l’identifiant du dossier : concaténation de “\I_” et du numéro système, par exemple : “\I_5” => “2f4935”
  • Inscription de l’identifiant dans le fichier \\servMultigest\bin\cmis.xml :
<!-- ###################################################################### -->
<!-- SEDIT -->
<repository id="A00088">
  <cmisSasFolder>2f4935</cmisSasFolder >
</repository>
<!-- ###################################################################### -->

A00088 : l’identifiant de l’armoire

2f4935 : l’identifiant du dossier sas

  • Envoi de tous les identifiants de dossiers sas créés à Berger-Levrault

[Ordiges] Liaweb

  • Utilisation de l’armoire sas
  • Liaweb accède aux armoires de destination afin de créer les marchés. Pour l’autoriser à créer les dossiers GED, il est nécessaire d’ajouter le code suivant pour chacune des armoires concernées dans le fichier \\servMultigest\bin\cmis.xml :
<!-- ###################################################################### -->
<!-- ORDIGES -->
<repository id="A00088">
<allowGedFolderCreation>true</allowGedFolderCreation>
<gedFolderCreationPropertyForName>INTITULE</gedFolderCreationPropertyForName>
<separatorfield>-</separatorfield>
</repository>
<!-- ###################################################################### -->

A00088 : l’identifiant de l’armoire

true : autorisation de créer un dossier GED dans cette armoire

INTITULE : la métadonnée à utiliser comme nom du dossier (métadonnée cmis:name)

  • Ajout du modèle défini en Annexe 3 dans le fichier \\servMultigest\bin\cmis.xml

[Agysoft] Marcoweb

  • Utilisation de l’armoire sas
  • Ajout du modèle défini en Annexe 4 dans le fichier \\servMultigest\bin\cmis.xml

Debuggage

Activation et désactivation des logs

Le connecteur CMIS possède ses propres logs. Leur activation se fait via le fichier de configuration \\servMultigest\bin\weberveur.ini. Les propriétés relatives aux logs se trouvent dans la section intitulée CMIS :

[CMIS]
PATH=D:\GED\APPLIS\Multigest\logs\cmis
LOG_WEBSERVICE=2
LOG_WEBSERVICE_JOURNAL=1
LOG_WEBSERVICE_DURATION=1
LOG_API_DEBUG=1
LOG_API_JOURNAL=1
LOG_API_RESULTS=0

Le système pour enregistrer différentes traces d’activité :

  • Les transactions avec le client CMIS (entrées et sorties)
  • Les durée d’exécution de chaque appel
  • Le journal d’activité
  • … et d’éventuelles traces de débug

Le paramétrage se fait via les valeurs suivantes :

PATH=D:\GED\APPLIS\Multigest\logs\cmis

Il s’agit du chemin vers le fichier de log. Il est impératif que ce dossier existe. Tous les autres dossiers nécessaires seront dynamiquement créé par le connecteur, selon ses besoins.

LOG_WEBSERVICE=2

Cette clé active ou désactive les logs au niveau des WebServices CMIS. Elle peux prendre les valeurs suivantes :

  • 0 : aucun log
  • 1 : seuls les WebService en erreur sont enregistrés (recommandé en PROD)
  • 2 : tous les appels WebService sont enregistrés, log entrée/sortie (recommandé en TEST)
  • 3 : tous les appels WebService sont enregistrés, avec toutes les traces disponibles

LOG_WEBSERVICE_JOURNAL =2

Enregistrement de chaque appel sous forme de journal, si le calcul des durées d’exécution est activé, la durée totale d’exécution du WebService est ajouté. Les valeurs possibles sont :

  • 0 : désactivé
  • 1 : activé

LOG_WEBSERVICE_DURATION =2

Calcul des durées d’exécution des WebService. En plus de la durée totale, la durée est décomposée selon chaque phase du processus. L’enregistrement est fait sous format d’un tableau CSV. Il est possible de lui donner une mise en forme, plus accessible en urgence. Les valeurs possibles sont :

  • 0 : désactivé
  • 1 : activé, production du fichier CSV
  • 2 : activé, production du fichier CSV + du fichier mis en forme

LOG_API_DEBUG=1

Enregistrement des logs de débug de l’API

  • 0 : désactivé
  • 1 : activé

LOG_API_JOURNAL=1

Enregistrement du déclenchement de chaque fonction de l’API. La valeur 2 permet d’enregistrer également les paramètres transmis. Attention, cette option peut être très vorace et déclencher la suppression des autres traces (roulement des fichiers de log)

  • 0 : désactivé
  • 1 : activé
  • 2 : activé avec enregistrement des paramètres

LOG_API_RESULTS=1

Enregistrement des données retournées par chaque appel de fonction. Les retours sont ajoutés dans le journal de l’API. Attention, cette option peut être très vorace et déclencher la suppression des autres traces (roulement des fichiers de log)

  • 0 : désactivé
  • 1 : activé

Lecture des logs

Les logs générées par le connecteur CMIS sont enregistrées selon le client d’appel. Celui-ci est identifié par son adresse IP. Au premier niveau sous le chemin défini précédemment, se trouve une liste d’adresse IP correspondant aux clients s’étant connectés.

Au second niveau (dans les dossiers nommés par adresse IP), se trouve la liste des appels reçus. Chaque appel correspond à un WebService (getRepositories(), updateProperties(), etc …)

Au troisième niveau (Adresse IP > nom du WebService > ) se trouvent 5 fichiers listant les paramètres d’appel ainsi que les données retournées par Multigest :

  • receive
  • parts
  • headers
  • input
  • output

Selon le mode choisi, il est possible de n’avoir que les 2 derniers fichiers. Ce sont de toutes façons les plus intéressants :

  • input : les éléments reçus par le connecteur (notamment les paramètres et leurs valeurs).
  • output : les données renvoyées par le connecteur à l’application cliente.

L’utilisation de ces 2 fichiers de logs permet d’avoir une idée assez précise de ce qui entre et sort du connecteur.

Enregistrement des durées d’exécution

En complément de ces logs, il est également possible d’avoir accès à des logs de durée d’exécution. Ils se trouvent dans le dossier défini dans la variable PATH, puis dans le dossier \duration\. Le fonctionnement standard (LOG_WEBSERVICE_DURATION=1) représente chaque appel sous forme d’une ligne dans un fichier CSV. La structure de ce fichier étant :

  • Date de l’appel (au format YYYY-mm-dd H:i:s)
  • Nom du WebService appelé
  • Adresse IP du client
  • Durée totale d’exécution
  • Durée du temps de chargement des classes CMIS Multigest
  • Durée de l’analyse du contenu reçu
  • Durée de conversion des documents non base64
  • Durée d’initialisation du serveur SOAP
  • Durée d’exécution de l’API Multigest
  • Durée de création du XML de réponse

Un mode plus adapté à la lecture est possible (LOG_WEBSERVICE_DURATION=1). En plus du fichier CSV, un fichier texte est généré avec les mêmes éléments que précédemment, mis en forme pour une lecture rapide.

5. Annexes

1 – Contenu du cmis.xml pour Grand Angle

<!-- ###################################################################### -->
<!-- CGI – Grand Angle -->
<model name="mdata:GRANDANGLE" property="cmis:objectTypeId">
	<properties>
<property name="mdata:idgda" desc="Identifiant unique du document dans GDA" matching="" update="index:idgda,mdata:idgda"/>
<property name="mdata:mode" desc="Mode de gestion du document" matching="" update="index:mode,mdata:mode"/>
<property name="mdata:codext" desc="Code externe du document dans Grand Angle" matching="" update="index:codext,mdata:codext"/>
<property name="mdata:nomFic" desc="Nom du fichier" matching="" update="index:nomfic,mdata:nomfic"/>
<property name="mdata:descri" desc="Description du fichier" matching="" update="index:descri,mdata:descri"/>
<property name="mdata:createur" desc="Utilisateur Grand Angle créateur du document" matching="" update="index:createur,mdata:createur"/>
<property name="mdata:modificateur" desc="Dernier utilisateur ayant modifié" matching="" update="index:modificateur,mdata:modificateur"/>
<property name="mdata:format" desc="Format du document" matching="" update="index:format,mdata:format"/>
<property name="mdata:type" desc="Type Grand Angle du document" matching="" update="index:type,mdata:type"/>
<property name="mdata:cdr" desc="Centre de responsabilité auquel est rattaché le document" matching="" update="index:cdr,mdata:cdr"/>
<property name="mdata:date" desc="Date de réception du document" matching="" update="index:date,mdata:date"/>
<property name="mdata:etat" desc="Etat du document" matching="" update="index:etat,mdata:etat"/>
<property name="mdata:proprietes" desc="Flux XML contenant la liste des propriétés du document" matching="" update="index:proprietes,mdata:proprietes"/>
<property name="mdata:rattach" desc="Flux XML contenant la liste des entités auxquelles le document est rattaché" matching="" update="index:rattach,mdata:rattach"/>
<property name="mdata:documentgda" desc="Indique si le doc a été créé dans la GED par GDA" matching="" update="index:documentgda,mdata:documentgda"/>
<property name="mdata:typePJ" desc="Type de pièce justificative" matching="" update="index:typepj,mdata:typepj"/>
	</properties>
</model>
<!-- ###################################################################### -->

2 – Contenu du cmis.xml pour Astre

<!-- ###################################################################### -->
<!—GFI - Astre -->
<model name="mdata:ASTRESGF" property="cmis:objectTypeId">
	<properties>
<property name="mdata:TYPEENTITE" desc="" matching="" update="index:TYPEENTITE"/>
<property name="mdata:REFENTITE" desc="" matching="" update="index:REFENTITE"/>
<property name="mdata:TYPEDOC" desc="" matching="" update="index:TYPEDOC"/>
<property name="mdata:CODEENTITE" desc="" matching="" update="index:CODEENTITE"/>
<property name="mdata:LIBELLEENTITE" desc="" matching="" update="index:LIBELLEENTITE"/>
<property name="mdata:ORGANISME" desc="" matching="" update="index:ORGANISME"/>
<property name="mdata:BUDGET" desc="" matching="" update="index:BUDGET"/>
<property name="mdata:EXERCICE" desc="" matching="" update="index:EXERCICE"/>
<property name="mdata:TIERS" desc="" matching="" update="index:TIERS"/>
<property name="mdata:MARCHE" desc="" matching="" update="index:MARCHE"/>
<property name="mdata:TRANCHE" desc="" matching="" update="index:TRANCHE"/>
<property name="mdata:COMMANDE" desc="" matching="" update="index:COMMANDE"/>
<property name="mdata:ENGAP" desc="" matching="" update="index:ENGAP"/>
<property name="mdata:ENGCP" desc="" matching="" update="index:ENGCP"/>
<property name="mdata:FACTURE" desc="" matching="" update="index:FACTURE"/>
<property name="mdata:LIQUIDATION" desc="" matching="" update="index:LIQUIDATION"/>
<property name="mdata:OPERATION" desc="" matching="" update="index:OPERATION"/>
<property name="mdata:DATE" desc="" matching="" update="index:DATE"/>
<property name="mdata:SERVICE" desc="" matching="" update="index:SERVICE"/>
<property name="mdata:REFINT" desc="" matching="" update="index:REFINT"/>
<property name="mdata:DATAENTITE" desc="" matching="" update="index:DATAENTITE"/>
<property name="mdata:PROGRAMME" desc="" matching="" update="index:PROGRAMME"/>
<property name="mdata:DOSSIER" desc="" matching="" update="index:DOSSIER"/>
<property name="mdata:DELIB" desc="" matching="" update="index:DELIB"/>
	</properties>
</model>
<!-- ###################################################################### -->

3 – Contenu du cmis.xml pour Liaweb

<!-- ###################################################################### -->
<!-- ORDIGES - Liaweb -->
<model name="mdata:LIAWEB" property="cmis:objectTypeId">
	<properties>
<property name="mdata:NUMTIERS" desc="N° Tiers" matching="" update="index:NUMTIERS"/>
<property name="mdata:NOMTIERS" desc="Nom Tiers" matching="" update="index:NOMTIERS"/>
<property name="mdata:NUMMARCHE" desc="N° de marché" matching="" update="index:NUMMARCHE"/>
<property name="mdata:TYPEDOC" desc="Type de document" matching="" update="index:TYPEDOC"/>
<property name="mdata:PIECEFINALE" desc="Pièce finale" matching="" update="index:PIECEFINALE"/>
<property name="mdata:MODE" desc="MODE" matching="" update="index:MODE"/>
<property name="mdata:CODEXT" desc="CODEXT" matching="" update="index:CODEXT"/>
<property name="mdata:NOMFIC" desc="Nom du fichier" matching="" update="index:NOMFIC"/>
<property name="mdata:DESCRI" desc="Description" matching="" update="index:DESCRI"/>
<property name="mdata:CREATEUR" desc="Créé par" matching="" update="index:CREATEUR"/>
<property name="mdata:MODIFICATEUR" desc="Modifié par" matching="" update="index:MODIFICATEUR"/>
<property name="mdata:FORMAT" desc="FORMAT" matching="" update="index:FORMAT"/>
<property name="mdata:TYPE" desc="TYPE" matching="" update="index:TYPE"/>
<property name="mdata:CDR" desc="CDR" matching="" update="index:CDR"/>
<property name="mdata:DATE" desc="DATE" matching="" update="index:DATE"/>
<property name="mdata:ETAT" desc="ETAT" matching="" update="index:ETAT"/>
<property name="mdata:PROPRIETE" desc="Propriété" matching="" update="index:PROPRIETE"/>
<property name="mdata:RATTACH" desc="RATTACH" matching="" update="index:RATTACH"/>
<property name="mdata:TYPEPJ" desc="Type de pièce" matching="" update="index:TYPEPJ"/>
<property name="mdata:PROCEDURE" desc="Procédure" matching="" update="index:PROCEDURE"/>
	</properties>
</model>
<!-- ###################################################################### -->

4 – Contenu du cmis.xml pour MarcoWeb

<!-- ###################################################################### -->
<!—AGYSOFT - MarcoWeb -->
<model name="mdata:AGYSOFT_MW" property="cmis:objectTypeId">
	<properties>
<property name="mdata:TYPEENTITE" desc="Type entité" matching="" update="index:TYPEENTITE"/>
<property name="mdata:REFENTITE" desc="Référence entité" matching="" update="index:REFENTITE"/>
<property name="mdata:TYPEDOC" desc="Type de document" matching="" update="index:TYPEDOC"/>
<property name="mdata:CODEENTITE" desc="Code entité" matching="" update="index:CODEENTITE"/>
<property name="mdata:LIBELLEENTITE" desc="Libellé entité" matching="" update="index:LIBELLEENTITE"/>
<property name="mdata:ORGANISME" desc="Organisme" matching="" update="index:ORGANISME"/>
<property name="mdata:BUDGET" desc="Budget" matching="" update="index:BUDGET"/>
<property name="mdata:EXERCICE" desc="Exercice" matching="" update="index:EXERCICE"/>
<property name="mdata:TIERS" desc="Tiers" matching="" update="index:TIERS"/>
<property name="mdata:MARCHE" desc="Marche" matching="" update="index:MARCHE"/>
<property name="mdata:TRANCHE" desc="Tranche" matching="" update="index:TRANCHE"/>
<property name="mdata:COMMANDE" desc="Commande" matching="" update="index:COMMANDE"/>
<property name="mdata:ENGAP" desc="Engap" matching="" update="index:ENGAP"/>
<property name="mdata:ENGCP" desc="Engcp" matching="" update="index:ENGCP"/>
<property name="mdata:FACTURE" desc="Facture" matching="" update="index:FACTURE"/>
<property name="mdata:LIQUIDATION" desc="Liquidation" matching="" update="index:LIQUIDATION"/>
<property name="mdata:OPERATION" desc="Opération" matching="" update="index:OPERATION"/>
<property name="mdata:DATE" desc="Date" matching="" update="index:DATE"/>
<property name="mdata:SERVICE" desc="Service" matching="" update="index:SERVICE"/>
<property name="mdata:REFINT" desc="Référence interne" matching="" update="index:REFINT"/>
<property name="mdata:DATAENTITE" desc="Data entité" matching="" update="index:DATAENTITE"/>
<property name="mdata:PROGRAMME" desc="Programme" matching="" update="index:PROGRAMME"/>
<property name="mdata:DOSSIER" desc="Dossier" matching="" update="index:DOSSIER"/>
<property name="mdata:DELIB" desc="Delib" matching="" update="index:DELIB"/>
<property name="mdata:TYPECODE" desc="Code du document" matching="" update="mdata:TYPECODE"/>
<property name="mdata:TYPELIBELLE" desc="Libellé du document" matching="" update="mdata:TYPELIBELLE"/>
<property name="mdata:CATEGORIECODE" desc="Code de la catégorie du document" matching="" update="mdata:CATEGORIECODE"/>
<property name="mdata:CATEGORIELIBELLE" desc="Libellé de la catégorie du document" matching="" update="mdata:CATEGORIELIBELLE"/>
<property name="mdata:MODULE" desc="Module" matching="" update="mdata:MODULE"/>
<property name="mdata:LOCKTOKEN" desc="Jeton utilisé pour le verrouillage" matching="" update="mdata:LOCKTOKEN"/>
<property name="mdata:LOCKOWNER" desc="Extracteur" matching="" update="mdata:LOCKOWNER"/>
<property name="mdata:CHECKINUSER" desc="Archiveur" matching="" update="mdata:CHECKINUSER"/>
<property name="mdata:CHECKINDATE" desc="Date d'archivage" matching="" update="mdata:CHECKINDATE"/>
<property name="mdata:ORGPRINCIPALID" desc="Id de l'organisme principal" matching="" update="mdata:ORGPRINCIPALID"/>
<property name="mdata:NIVEAUORGID" desc="Id du niveau d'appartenance de l'organisme" matching="" update="mdata:NIVEAUORGID"/>
<property name="mdata:MW_NIVEAUORGCODE" desc="Grappe des codes des niveaux d'organisme" matching="" update="mdata:MW_NIVEAUORGCODE"/>
<property name="mdata:MW_NIVEAUORGLIBELLE" desc="Libellé du niveau d'appartenance de l'organisme" matching="" update="mdata:MW_NIVEAUORGLIBELLE"/>
<property name="mdata:MW_CATEGORIEORG" desc="Catégorie de l'organisme" matching="" update="mdata:MW_CATEGORIEORG"/>
<property name="mdata:ENTITEID" desc="Id de l'entité" matching="" update="mdata:ENTITEID"/>
<property name="mdata:ENTITETYPE" desc="Type d'entité" matching="" update="mdata:ENTITETYPE"/>
<property name="mdata:MW_ENTITEDATECREATION" desc="Date de création" matching="" update="mdata:MW_ENTITEDATECREATION"/>
<property name="mdata:MW_ENTITEPAR" desc="Par" matching="" update="mdata:MW_ENTITEPAR"/>
<property name="mdata:MW_ENTITECODE" desc="Code" matching="" update="mdata:MW_ENTITECODE"/>
<property name="mdata:MW_ENTITEOBJET" desc="Objet" matching="" update="mdata:MW_ENTITEOBJET"/>
<property name="mdata:MW_TYPEDEMANDE" desc="Type de demande" matching="" update="mdata:MW_TYPEDEMANDE"/>
<property name="mdata:MW_TYPECONTRAT" desc="Type de contrat" matching="" update="mdata:MW_TYPECONTRAT"/>
<property name="mdata:MW_TYPEPRESTATION" desc="Type de prestation" matching="" update="mdata:MW_TYPEPRESTATION"/>
<property name="mdata:MW_TYPEOPERATION" desc="Type d'opération" matching="" update="mdata:MW_TYPEOPERATION"/>
<property name="mdata:MW_NATURETRAVAUX" desc="Nature des travaux" matching="" update="mdata:MW_NATURETRAVAUX"/>
<property name="mdata:MW_CCAGAPPLICABLE" desc="CCAG applicable" matching="" update="mdata:MW_CCAGAPPLICABLE"/>
<property name="mdata:MW_FORMEMARCHE" desc="Forme de marché" matching="" update="mdata:MW_FORMEMARCHE"/>
<property name="mdata:MW_MONTANTESTIMATIF" desc="Montant estimatif" matching="" update="mdata:MW_MONTANTESTIMATIF"/>
<property name="mdata:MW_MONTANTHTMINI" desc="Montant HT mini" matching="" update="mdata:MW_MONTANTHTMINI"/>
<property name="mdata:MW_MONTANTHTMAXI" desc="Montant HT maxi" matching="" update="mdata:MW_MONTANTHTMAXI"/>
<property name="mdata:MW_MODEPASSATION" desc="Mode de passation" matching="" update="mdata:MW_MODEPASSATION"/>
<property name="mdata:MW_ALLOTISSEMENT" desc="Allotissement" matching="" update="mdata:MW_ALLOTISSEMENT"/>
<property name="mdata:MW_MODEATTRIBMARCHE" desc="Mode d'attribution du marché" matching="" update="mdata:MW_MODEATTRIBMARCHE"/>
<property name="mdata:MW_HOMOGENEITE" desc="Homogéneité" matching="" update="mdata:MW_HOMOGENEITE"/>
<property name="mdata:MW_ANNEEEXECUTION" desc="Année d'execution" matching="" update="mdata:MW_ANNEEEXECUTION"/>
<property name="mdata:MW_PLURIANNUALITE" desc="Pluriannualité" matching="" update="mdata:MW_PLURIANNUALITE"/>
<property name="mdata:MW_DUREEPLURIANNUALITE" desc="Durée pluriannualité" matching="" update="mdata:MW_DUREEPLURIANNUALITE"/>
<property name="mdata:MW_CODEUF" desc="Code UF" matching="" update="mdata:MW_CODEUF"/>
<property name="mdata:MW_LIBELLEUF" desc="Libellé UF" matching="" update="mdata:MW_LIBELLEUF"/>
<property name="mdata:MW_DATENOTIFICATION" desc="Date de notification" matching="" update="mdata:MW_DATENOTIFICATION"/>
<property name="mdata:MW_SIRETMO" desc="Siret du MO" matching="" update="mdata:MW_SIRETMO"/>
<property name="mdata:MW_DENOMINATIONMO" desc="Dénomination du MO" matching="" update="mdata:MW_DENOMINATIONMO"/>
<property name="mdata:MW_SIRETCT" desc="Siret du CT" matching="" update="mdata:MW_SIRETCT"/>
<property name="mdata:MW_DENOMINATIONCT" desc="Dénomination du CT" matching="" update="mdata:MW_DENOMINATIONCT"/>
<property name="mdata:MW_SIRETCSPS" desc="Siret du CSPS" matching="" update="mdata:MW_SIRETCSPS"/>
<property name="mdata:MW_DENOMINATIONCSPS" desc="Dénomination du CSPS" matching="" update="mdata:MW_DENOMINATIONCSPS"/>
<property name="mdata:MW_SIRETOPC" desc="Siret OPC" matching="" update="mdata:MW_SIRETOPC"/>
<property name="mdata:MW_DENOMINATIONOPC" desc="Dénomination OPC" matching="" update="mdata:MW_DENOMINATIONOPC"/>
<property name="mdata:MW_SIRETCO" desc="Siret CO" matching="" update="mdata:MW_SIRETCO"/>
<property name="mdata:MW_DENOMINATIONCO" desc="Dénomination OPC" matching="" update="mdata:MW_DENOMINATIONCO"/>
<property name="mdata:MW_DATEDEBUTPRESTATIONS" desc="Date de début des prestations" matching="" update="mdata:MW_DATEDEBUTPRESTATIONS"/>
<property name="mdata:MW_DATEFINPRESTATIONS" desc="Date de fin des prestations" matching="" update="mdata:MW_DATEFINPRESTATIONS"/>
<property name="mdata:MW_TYPEGARANTIEFINANCIERES" desc="Type de garantie financières" matching="" update="mdata:MW_TYPEGARANTIEFINANCIERES"/>
<property name="mdata:MW_AVECOUSANSAVANCE" desc="Avec ou sans avance" matching="" update="mdata:MW_AVECOUSANSAVANCE"/>
<property name="mdata:MW_DELAIGLOBALPAIEMENTJOUR" desc="Délai global de paiement (en jours)" matching="" update="mdata:MW_DELAIGLOBALPAIEMENTJOUR"/>
<property name="mdata:MW_DLRC" desc="Date limite de remise des candidatures" matching="" update="mdata:MW_DLRC"/>
<property name="mdata:MW_DLRO" desc="Date limite de remise des offres" matching="" update="mdata:MW_DLRO"/>
<property name="mdata:MW_CODEPRINCIPALCPV" desc="Code principal de la CPV" matching="" update="mdata:MW_CODEPRINCIPALCPV"/>
<property name="mdata:MW_INTITULECPV" desc="Intitulé de la CPV" matching="" update="mdata:MW_INTITULECPV"/>
<property name="mdata:MW_CODESUPP1CPV" desc="Code supplémentaire 1 de la CPV" matching="" update="mdata:MW_CODESUPP1CPV"/>
<property name="mdata:MW_CODESUPP2CPV" desc="Code supplémentaire 2 de la CPV" matching="" update="mdata:MW_CODESUPP2CPV"/>
<property name="mdata:MW_CODENOMENCLATURE" desc="Code nomenclature" matching="" update="mdata:MW_CODENOMENCLATURE"/>
<property name="mdata:MW_FAMILLENOMENCLATURE" desc="Famille nomenclature" matching="" update="mdata:MW_FAMILLENOMENCLATURE"/>
<property name="mdata:MW_SOUSFAMILLENOMENCLATURE" desc="Sous-famille nomenclature" matching="" update="mdata:MW_SOUSFAMILLENOMENCLATURE"/>
<property name="mdata:MW_CODECONSULTATIONORIGINE" desc="Code de la consultation d'origine" matching="" update="mdata:MW_CODECONSULTATIONORIGINE"/>
<property name="mdata:MW_LIBELLECONSULTATIONORIGINE" desc="Libellé de la consultation d'origine" matching="" update="mdata:MW_LIBELLECONSULTATIONORIGINE"/>
<property name="mdata:LOTID" desc="Id du(des) lot(s)" matching="" update="mdata:LOTID"/>
<property name="mdata:MW_LOTCODE" desc="Code du(des) lot(s)" matching="" update="mdata:MW_LOTCODE"/>
<property name="mdata:MW_LOTLIBELLE" desc="Libellé du(des) lot(s)" matching="" update="mdata:MW_LOTLIBELLE"/>
<property name="mdata:TRANCHEID" desc="Id de la tranche" matching="" update="mdata:TRANCHEID"/>
<property name="mdata:MW_TRANCHECODE" desc="Code de la tranche" matching="" update="mdata:MW_TRANCHECODE"/>
<property name="mdata:MW_TRANCHELIBELLE" desc="Libellé de la tranche" matching="" update="mdata:MW_TRANCHELIBELLE"/>
<property name="mdata:MW_SIRETTIERS" desc="Siret du tiers" matching="" update="mdata:MW_SIRETTIERS"/>
<property name="mdata:MW_DENOMINATIONTIERS" desc="Dénomination du tiers" matching="" update="mdata:MW_DENOMINATIONTIERS"/>
<property name="mdata:MW_TYPETIERS" desc="Type du tiers" matching="" update="mdata:MW_TYPETIERS"/>
<property name="mdata:MW_LIBELLEMEMBREGROUPEMENT" desc="Libellé du membre du groupement" matching="" update="mdata:MW_LIBELLEMEMBREGROUPEMENT"/>
<property name="mdata:MW_NUMEROORDREDEPOT" desc="Numéro d'ordre du dépôt" matching="" update="mdata:MW_NUMEROORDREDEPOT"/>
<property name="mdata:MW_DATEECHANGEDEPOT" desc="Date de l'échange du dépôt" matching="" update="mdata:MW_DATEECHANGEDEPOT"/>
<property name="mdata:MW_TYPEDEPOT" desc="Type du dépôt" matching="" update="mdata:MW_TYPEDEPOT"/>
<property name="mdata:MW_DATEHEUREDEBUTREUNION" desc="Date et heure du début de la réunion" matching="" update="mdata:MW_DATEHEUREDEBUTREUNION"/>
<property name="mdata:MW_NUMEROOS" desc="Numéro de l'OS" matching="" update="mdata:MW_NUMEROOS"/>
<property name="mdata:MW_DATEOS" desc="Date de l'OS" matching="" update="mdata:MW_DATEOS"/>
<property name="mdata:MW_TYPEOS" desc="Type de l'OS" matching="" update="mdata:MW_TYPEOS"/>
<property name="mdata:MW_NUMEROAVENANT" desc="Numéro de l'avenant" matching="" update="mdata:MW_NUMEROAVENANT"/>
<property name="mdata:MW_DATEAVENANT" desc="Date de l'avenant" matching="" update="mdata:MW_DATEAVENANT"/>
<property name="mdata:MW_TYPEAVENANT" desc="Type de l'avenant" matching="" update="mdata:MW_TYPEAVENANT"/>
<property name="mdata:DECOMPTEID" desc="Id du décompte" matching="" update="mdata:DECOMPTEID"/>
<property name="mdata:MW_NUMERODECOMPTE" desc="Numéro de décompte" matching="" update="mdata:MW_NUMERODECOMPTE"/>
<property name="mdata:MW_DATEEXECUTIONDECOMPTE" desc="Date d'execution du décompte" matching="" update="mdata:MW_DATEEXECUTIONDECOMPTE"/>
<property name="mdata:MW_DATEDECOMPTE" desc="Date du décompte" matching="" update="mdata:MW_DATEDECOMPTE"/>
<property name="mdata:BONCOMMANDEID" desc="Id du bon de commande" matching="" update="mdata:BONCOMMANDEID"/>
<property name="mdata:MW_BONCOMMANDECODE" desc="Code du bon de commande" matching="" update="mdata:MW_BONCOMMANDECODE"/>
<property name="mdata:BONCOMMANDENIVEAUORGID" desc="Id du niveau d'organisme du bon de commande" matching="" update="mdata:BONCOMMANDENIVEAUORGID"/>
<property name="mdata:MW_BONCOMMANDENIVEAUORGCODE" desc="Grappe des codes des niveaux d'organisme du bon de commande" matching="" update="mdata:MW_BONCOMMANDENIVEAUORGCODE"/>
<property name="mdata:MW_BONCOMMANDENIVEAUORGLIBELLE" desc="Libellé du niveau d'organisme du bon de commande" matching="" update="mdata:MW_BONCOMMANDENIVEAUORGLIBELLE"/>
<property name="mdata:EXT_LOTID" desc="Id du(des) lot(s)" matching="" update="mdata:EXT_LOTID"/>
<property name="mdata:MW_EXT_LOTCODE" desc="Code du(des) lot(s)" matching="" update="mdata:MW_EXT_LOTCODE"/>
<property name="mdata:MW_EXT_LOTLIBELLE" desc="Libellé du(des) lot(s)" matching="" update="mdata:MW_EXT_LOTLIBELLE"/>
<property name="mdata:EXT_TRANCHEID" desc="Id de la(des) tranche(s)" matching="" update="mdata:EXT_TRANCHEID"/>
<property name="mdata:MW_EXT_TRANCHECODE" desc="Code de la(des) tranche(s)" matching="" update="mdata:MW_EXT_TRANCHECODE"/>
<property name="mdata:MW_EXT_TRANCHELIBELLE" desc="Libellé de la(des) tranche(s)" matching="" update="mdata:MW_EXT_TRANCHELIBELLE"/>
<property name="mdata:MW_EXT_NUMEROORDREDEPOT" desc="Numéro d'ordre du dépôt" matching="" update="mdata:MW_EXT_NUMEROORDREDEPOT"/>
<property name="mdata:MW_EXT_DATEECHANGEDEPOT" desc="Date du dépôt" matching="" update="mdata:MW_EXT_DATEECHANGEDEPOT"/>
<property name="mdata:MW_EXT_MODEECHANGEDEPOT" desc="Mode d'échange du dépôt" matching="" update="mdata:MW_EXT_MODEECHANGEDEPOT"/>
<property name="mdata:MW_EXT_DATEHEUREDEBUTREUNION" desc="Date et heure du début de la réunion" matching="" update="mdata:MW_EXT_DATEHEUREDEBUTREUNION"/>
<property name="mdata:MW_EXT_TYPEREUNION" desc="Type de réunion" matching="" update="mdata:MW_EXT_TYPEREUNION"/>
<property name="mdata:MW_EXT_SIRETTIERS" desc="Siret du tiers" matching="" update="mdata:MW_EXT_SIRETTIERS"/>
<property name="mdata:MW_EXT_DENOMINATIONTIERS" desc="Dénomination du tiers" matching="" update="mdata:MW_EXT_DENOMINATIONTIERS"/>
<property name="mdata:MW_EXT_TYPETIERS" desc="Type du tiers" matching="" update="mdata:MW_EXT_TYPETIERS"/>
<property name="mdata:EXT_DECOMPTEID" desc="Id du décompte" matching="" update="mdata:EXT_DECOMPTEID"/>
<property name="mdata:MW_EXT_NUMERODECOMPTE" desc="Numéro de décompte" matching="" update="mdata:MW_EXT_NUMERODECOMPTE"/>
<property name="mdata:MW_EXT_DATEEXECUTIONDECOMPTE" desc="Date d'execution du décompte" matching="" update="mdata:MW_EXT_DATEEXECUTIONDECOMPTE"/>
<property name="mdata:MW_EXT_DATEDECOMPTE" desc="Date du décompte" matching="" update="mdata:MW_EXT_DATEDECOMPTE"/>
<property name="mdata:EXT_BONCOMMANDEID" desc="Id du bon de commande" matching="" update="mdata:EXT_BONCOMMANDEID"/>
<property name="mdata:EXT_MW_BONCOMMANDECODE" desc="Code du bon de commande" matching="" update="mdata:EXT_MW_BONCOMMANDECODE"/>
<property name="mdata:EXT_BONCOMMANDENIVEAUORGID" desc="Id du niveau d'organisme du bon de commande" matching="" update="mdata:EXT_BONCOMMANDENIVEAUORGID"/>
<property name="mdata:EXT_MW_BONCOMMANDENIVEAUORGCODE" desc="Grappe des codes des niveaux d'organisme du bon de commande" matching="" update="mdata:EXT_MW_BONCOMMANDENIVEAUORGCODE"/>
<property name="mdata:EXT_MW_BONCOMMANDENIVEAUORGLIBELLE" desc="Libellé du niveau d'organisme du bon de commande" matching="" update="mdata:EXT_MW_BONCOMMANDENIVEAUORGLIBELLE"/>
<property name="mdata:MW_EXT_NUMEROOS" desc="Numéro de l'OS" matching="" update="mdata:MW_EXT_NUMEROOS"/>
<property name="mdata:MW_EXT_DATEOS" desc="Date de l'OS" matching="" update="mdata:MW_EXT_DATEOS"/>
<property name="mdata:MW_EXT_TYPEOS" desc="Type de l'OS" matching="" update="mdata:MW_EXT_TYPEOS"/>
<property name="mdata:MW_EXT_NUMEROAVENANT" desc="Numéro de l'avenant" matching="" update="mdata:MW_EXT_NUMEROAVENANT"/>
<property name="mdata:MW_EXT_DATEAVENANT" desc="Date de l'avenant" matching="" update="mdata:MW_EXT_DATEAVENANT"/>
<property name="mdata:MW_EXT_TYPEAVENANT" desc="Type de l'avenant" matching="" update="mdata:MW_EXT_TYPEAVENANT"/>
<property name="mdata:MW_NUMEROPHASENEGOCIATION" desc="Phase de négociation numéro :" matching="" update="mdata:MW_NUMEROPHASENEGOCIATION"/>
<property name="mdata:MW_FORMENEGOCIATION" desc="Forme de négociation" matching="" update="mdata:MW_FORMENEGOCIATION"/>
<property name="mdata:MW_DATEENVOIDEMAT" desc="Date d'envoi du document" matching="" update="mdata:MW_DATEENVOIDEMAT"/>
<property name="mdata:MW_PLATEFORMEDEMAT" desc="Nom de la plateforme" matching="" update="mdata:MW_PLATEFORMEDEMAT"/>
<property name="mdata:MW_STATUTENVOIDEMAT" desc="Statut de l'envoi" matching="" update="mdata:MW_STATUTENVOIDEMAT"/>
<property name="mdata:CANDIDATIDECHANGEDEPOT" desc="id du candidat (depot) sur la plateforme" matching="" update="mdata:CANDIDATIDECHANGEDEPOT"/>
<property name="mdata:EMAILECHANGEDEPOT" desc="email du candidat" matching="" update="mdata:EMAILECHANGEDEPOT"/>
<property name="mdata:MW_DATEENVOICOURRIER" desc="Date d'envoi du courrier" matching="" update="mdata:MW_DATEENVOICOURRIER"/>
<property name="mdata:MW_PLATEFORMEENVOICOURRIER" desc="plateforme d'envoi du courrier" matching="" update="mdata:MW_PLATEFORMEENVOICOURRIER"/>
<property name="mdata:MW_STATUTENVOICOURRIER" desc="Statut de l'envoi du courrier" matching="" update="mdata:MW_STATUTENVOICOURRIER"/>
<property name="mdata:MW_UTILISATEURENVOICOURRIER" desc="Utilisateur qui envoi le courrier" matching="" update="mdata:MW_UTILISATEURENVOICOURRIER"/>
<property name="mdata:COURRIERID" desc="Id du courrier sur la plateforme" matching="" update="mdata:COURRIERID"/>
<property name="mdata:PJID" desc="Id de la piece jointe au courrier" matching="" update="mdata:PJID"/>
<property name="mdata:MESSAGEERREURCOURRIER" desc="Message d'erreur du courrier" matching="" update="mdata:MESSAGEERREURCOURRIER"/>
	</properties>
</model>
<!-- ###################################################################### -->

Lancement de l’export de synchronisation pour Grand Angle

Les scripts nécessaires à la création du XML de synchronisation entre Grand Angle et Multigest sont intégrés au connecteur. Pour vérification, il s’agit de la fonction spe_gda_etatDocsGedExt() présente dans le fichier \\servMG\Multigest\webserveur\shell\specific_call.inc.php approximativement autour de la ligne 3018.

Pour fonctionner, le script nécessite la présence des 2 dossiers suivants (à créer s’ils n’existent pas) :

Le lancement du script passe par l’utilisation du fichier \\servMG\Multigest\batch\batch.txt. Si ce fichier n’existe pas, il faut le créer.

Ce fichier peut déjà contenir des commandes, correspondant aux traitements lancés sur le serveur. S’ils existent, ajouter à la fin du fichier la commande suivante :

"X:\servMG\php5612\php.exe" -f " X:\servMG\Multigest\webserveur\shell\shellconnector.php" -- -c Z1&nbsp;-p C=gda_etatDocsGedExt -p REPOID=A000XX,A000XY -p PATHFILE= X:\servMG\Multigest\tmpgda
  • “X:\servMG\php5612\php.exe” : chemin vers le process PHP
  • “X:\servMG\Multigest\webserveur\shell\shellconnector.php” : chemin vers le script shellconnector
  • REPOID=A000XX,A000XY,A000YY : liste des armoires concernées (1 minimum, séparées par des virgules)
  • PATHFILE= X:\servMG\Multigest\tmpgda : chemin vers le dossier dans lequel sera stocké le XML d’écart.