Intégration de 4D et Office 2003

Julien Feasson

4e Dimension, à partir de la version 2003, supporte le standard XML, et il devrait donc être plus facile d’intégrer 4D 2003 et Microsoft Office 2003. XML n’est cependant pas le seul moyen de communiquer avec les applications Office, les services Web le permettent également. ♪

- Titre : Intégration de 4D et Office 2003

- Auteur : Julien Feasson

- Parution : 1 février 2004

- Licence : Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.

Sommaire

- I. Introduction

- II. Nouveautés Office 2003

- Nouvelles fonctionnalités

- Nouveaux outils

- III. Scénario

- Avantages

- IV. XML comme format de fichier dans Office 2003

- V. Intégration 4D et Office

- Récupérer les données d’un document Word dans 4D

- Créer un document Word

- Création de rapports dans Excel

- Intégration d’Excel 2003 et 4e Dimension 2003 en utilisant les Web Services

- Création du Web Service dans 4e Dimension

- Création de la macro Visual Basic

- VI. En conclusion

- VII. Base exemple

I - Introduction

Microsoft présente sa suite bureautique, Microsoft Office 2003, non comme une succession de logiciels de productivité, mais plutôt comme un système intégré et complet. La principale amélioration d’Office 2003 par rapport à Office XP est sa compatibilité avec le standard XML. Ceci devrait nous permettre de résoudre beaucoup de problèmes d’intégration.

4e Dimension, à partir de la version 2003, supporte aussi le standard XML, et il devrait donc être plus facile d’intégrer 4D 2003 et Microsoft Office 2003.

XML n’est cependant pas le seul moyen de communiquer avec les applications Office, les services Web le permettent également.

II - Nouveautés Office 2003

Nouvelles fonctionnalités

Microsoft Office 2003 a ajouté un certain nombre de fonctionnalités pour travailler avec le standard XML. Il met XML à la portée des utilisateurs finaux en fournissant un XML facile à utiliser pour aider les membres de l’entreprise à utiliser un système qui leur permettent de baliser le contenu et la structure de leurs documents afin que l’information puisse être réutilisée.

Word 2003 : supporte maintenant le XML comme format de fichier et sert d’éditeur XML complet.
Excel 2003 : supporte aussi le XML, ce qui rend l’import de données beaucoup plus facile.

Note : les fonctionnalités XML, à l’exception de la sauvegarde de documents au format XML avec le schéma XML de Word, ne sont disponibles que dans l’édition Microsoft Office Professional 2003 et la version stand-alone de Microsoft Office Word 2003.

Nouveaux outils

En plus de toute la suite des logiciels basée sur le format XML, Microsoft fournit également un nouvel outil dans Office 2003 : InfoPath, qui rend plus simple la collecte d’information et leur réutilisation à travers d’autres programmes..

III - Scénario

Imaginons Robert, un commercial dynamique, qui a besoin de faire un rapport toutes les fins de semaine sur ses ventes.

Quelles solutions a Robert, à l’heure actuelle, pour faire cela ?

À la fin de chaque semaine :
Robert crée un nouveau document Microsoft Word et liste ses activités pour son directeur commercial ; il inclut toutes les données qu’il a pu réunir pendant la semaine, suite à ses communications téléphoniques, dans ce document et il doit l’envoyer par e-mail.

Puis il a besoin de remplir des formulaires en ligne pour communiquer ses activités au système CRM (Customer Relationship Management), créer de nouveaux clients et soumettre ses commandes au système ERP (Enterprise Resource Planning). Ces informations sont envoyées dans une base 4D de la société.

Concernant les voyages qu’il a effectués durant la semaine, il doit noter ses dépenses dans Excel et les envoyer au comptable de sa Société.

Le problème est que Robert doit saisir la même information plusieurs fois. Cela diminue sa productivité le vendredi après-midi et est source d’erreurs.

Utilisons maintenant Office 2003 intégré avec 4e dimension.

Le but est ici de résoudre deux problèmes soulignés ci-dessus :

- augmenter la productivité de Robert ;

- diminuer les risques d’erreurs.

En utilisant InfoPath, Robert ouvre un formulaire XML créé spécialement pour les commerciaux de sa Société, totalement intégré à son poste de travail ; il a maintenant un seul formulaire, qu’il peut remplir, même en étant déconnecté, lui fournissant un environnement personnalisé pour saisir exactement ses informations de manière précise. Il peut même ajouter tous les jours les informations qu’il recueille et une fois connecté, toutes les fins de semaine, il peut, en utilisant les fonctionnalités Web Services d’InfoPath, communiquer avec les bases de données et serveurs de son entreprise (comme 4e Dimension).

La base 4e Dimension maintenant possède toutes les données de Robert et peut mettre à jour le système CRM et ERP localement ou via les Web Services pour d’autres bases de données 4e Dimension. En utilisant les nouvelles fonctionnalités XML de Microsoft Word, les méthodes 4e Dimension créent le document XML Word pour son directeur, et, en utilisant les 4D Internet Commands, envoient ce rapport dans sa boîte email. Dans le même temps, un rapport Excel est généré en utilisant les mêmes fonctionnalités XML, et envoyé au comptable. Une autre solution serait pour le comptable de se connecter le lundi matin, lancer une macro Visual Basic permettant de se connecter à une base 4e Dimension grâce aux services Web, retrouver les informations de Robert et générer le rapport.

Avantages

En intégrant 4e Dimension et Office 2003, Robert peut passer plus de temps à vendre ; le service des ventes reçoit les informations de Robert partagées par les différents systèmes. Utilisant intelligemment les nouvelles technologies, cette solution ne demande que peu de modifications, car elle s’adapte à l’infrastructure existante de la société où travaille Robert.

IV - XML comme format de fichier dans Office 2003

Dans les nouvelles versions de Word et Excel de la suite Office 2003, Microsoft implémente une nouvelle fonctionnalité qui permet à un document Word ou à une feuille de calcul Excel d’être sauvegardé au format XML, puis modifié, enregistré et même créé en partant de zéro.

XML est utilisé à travers le monde pour partager des informations professionnelles sur le web sans se préoccuper de l’incompatibilité des programmes, des réseaux informatiques, de la structure des données et des systèmes. XML permet de partager facilement de l’information, principalement parce que XML est en fait du texte.

En utilisant XML :

- vous pouvez sauvegarder et organiser de nouvelles données au standard XML afin que vos collègues puissent les réutiliser ;

- les sociétés peuvent extraire des données XML de différentes sources afin de les inclure dans des documents d’origines diverses, bases de données, présentations et feuilles de calcul…;

- les développeurs peuvent créer des « programmes intelligents » (c’est-à-dire des programmes qui renvoient une information pertinente basée sur des données saisies par l’utilisateur) afin de permettre aux utilisateurs de conserver l’information sous forme de fichiers.

Il est alors facile de créer, organiser et partager des informations professionnelles.

Exemple de fonctionnalités XML qu’Office peut utiliser :

À la fin de la journée, un commercial, au lieu de saisir ses informations dans Excel pour générer des statistiques et graphiques, puis saisir les mêmes données à envoyer à son supérieur, peut maintenant saisir les données dans des formulaires InfoPath personnalisés, données qui seront envoyées automatiquement à la base de données qui générera les graphes dans Excel et les rapports dans Word, en utilisant les possibilités XML d’Office 2003.

Examinons un fichier Word au format XML

Quand un utilisateur de Word choisit de sauvegarder un document au format XML, Word crée un fichier XML sur le disque qui contient les propriétés du fichier, les données ainsi que la présentation. Le XML décrit le document sous forme d’une série d’éléments et d’attributs. Les sections principales de ce document XML sont groupées dans les éléments :

DocumentProperties

<o:DocumentProperties>
<o:Title>Marks Overall</o:Title>
<o:Author>JULIENXP</o:Author>
<o:LastAuthor>JULIENXP</o:LastAuthor>
<o:Revision>2</o:Revision>
<o:TotalTime>3</o:TotalTime>
<o:Created>2003-09-09T23:48:00Z</o:Created>
<o:LastSaved>2003-09-09T23:53:00Z</o:LastSaved>
<o:Pages>1</o:Pages>
<o:Words>9</o:Words>
<o:Characters>53</o:Characters>
<o:Company>4D, Inc.</o:Company>
<o:Lines>1</o:Lines>
<o:Paragraphs>1</o:Paragraphs>
<o:CharactersWithSpaces>61</o:CharactersWithSpaces>
<o:Version>11.5329</o:Version>
</o:DocumentProperties>

fonts

<w:fonts>
<w:defaultFonts w:ascii="Times New Roman" w:fareast="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman" />
</w:fonts>

styles

<w:styles>
<w:versionOfBuiltInStylenames w:val="4" />
<w:latentStyles w:defLockedState="off" w:latentStyleCount="156" />
<w:style w:type="paragraph" w:default="on" w:styleId="Normal">
<w:name w:val="Normal" />
<w:rsid w:val="00124A72" />
<w:rPr>
<wx:font wx:val="Times New Roman" />
<w:sz w:val="24" />
<w:sz-cs w:val="24" />
<w:lang w:val="EN-US" w:fareast="EN-US" w:bidi="AR-SA" />
</w:rPr>
</w:style>
<w:style w:type="character" w:default="on" w:styleId="DefaultParagraphFont">
<w:name w:val="Default Paragraph Font" />
<w:semiHidden />
</w:style>
<w:style w:type="table" w:default="on" w:styleId="TableNormal">
<w:name w:val="Normal Table" />
<wx:uiName wx:val="Table Normal" />
<w:semiHidden />
<w:rPr>
<wx:font wx:val="Times New Roman" />
</w:rPr>
<w:tblPr>
<w:tblInd w:w="0" w:type="dxa" />
<w:tblCellMar>
<w:top w:w="0" w:type="dxa" />
<w:left w:w="108" w:type="dxa" />
<w:bottom w:w="0" w:type="dxa" />
<w:right w:w="108" w:type="dxa" />
</w:tblCellMar>
</w:tblPr>
</w:style>
<w:style w:type="list" w:default="on" w:styleId="NoList">
<w:name w:val="No List" />
<w:semiHidden />
</w:style>
<w:style w:type="table" w:styleId="TableGrid">
<w:name w:val="Table Grid" />
<w:basedOn w:val="TableNormal" />
<w:rsid w:val="00124A72" />
<w:rPr>
<wx:font wx:val="Times New Roman" />
</w:rPr>
<w:tblPr>
<w:tblInd w:w="0" w:type="dxa" />
<w:tblBorders>
<w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto" />
<w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto" />
<w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto" />
<w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto" />
<w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto" />
<w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto" />
</w:tblBorders>
<w:tblCellMar>
<w:top w:w="0" w:type="dxa" />
<w:left w:w="108" w:type="dxa" />
<w:bottom w:w="0" w:type="dxa" />
<w:right w:w="108" w:type="dxa" />
</w:tblCellMar>
</w:tblPr>
</w:style>
</w:styles>

docPr

<w:docPr>
<w:view w:val="print" />
<w:zoom w:percent="100" />
<w:doNotEmbedSystemFonts />
<w:proofState w:spelling="clean" w:grammar="clean" />
<w:attachedTemplate w:val="" />
<w:defaultTabStop w:val="720" />
<w:characterSpacingControl w:val="DontCompress" />
<w:optimizeForBrowser />
<w:validateAgainstSchema />
<w:saveInvalidXML w:val="off" />
<w:ignoreMixedContent w:val="off" />
<w:alwaysShowPlaceholderText w:val="off" />
<w:compat>
<w:breakWrappedTables />
<w:snapToGridInCell />
<w:wrapTextWithPunct />
<w:useAsianBreakRules />
<w:useWord2002TableStyleRules />
</w:compat>
</w:docPr>

body

<w:body>
<wx:sect>
<w:p>
<w:r>
<w:t>Sample text</w:t>
</w:r>
</w:p>
<w:p />
<w:r>
<w:t>Second line</w:t>
</w:r>
</w:p>
<w:sectPr>
<w:pgSz w:w="12240" w:h="15840" />
<w:pgMar w:top="1440" w:right="1800" w:bottom="1440" w:left="1800" w:header="720" w:footer="720" w:gutter="0" />
<w:cols w:space="720" />
<w:docGrid w:line-pitch="360" />
</wx:sect>
</w:body>

et aujourd’hui nous allons insister sur les deux points les plus utiles de ce XML : les éléments Documents Properties et Body. Les éléments des propriétés du document sont nommés de telle façon qu’ils sont faciles à comprendre et quand on modifie le document dans une application externe, le développeur peut vouloir changer deux éléments <lastauthor> et <lastmodified>.

Le contenu du document est alors ensuite décrit dans l’élément Body et nous pouvons voir que dans ce document, l’élément Body contient deux lignes :

- Sample Text ;

- Second line.

V - Intégration 4D et Office

Récupérer les données d’un document Word dans 4D

Word 2003 fournit un moyen simple de sauvegarde d’un document Word en XML, il est alors facile, avec les commandes 4D XML, d’ouvrir un document Word et de récupérer les données de celui-ci.
(voir Base Démo WordDocumentEditor)

docref:=Ouvrir document("";"")

Si (OK=1)FERMER DOCUMENT(docref)
DOCUMENT VERS BLOB(document;thexmlblob)
Variable1:=document

$RootRef:=Analyser variable XML(thexmlblob)
$ref:=Lire premier element XML($RootRef;$elemName;$elemVal)
$ref:=Lire premier element XML($ref;$elemName;Variable2)
$ref:=Lire element XML suivant($ref;$elemName;Variable3)
$ref:=Lire element XML suivant($ref;$elemName;Variable4)
$ref:=Lire element XML suivant($ref;$elemName;Variable5)
$ref:=Lire element XML suivant($ref;$elemName;Variable6)
$ref:=Lire element XML suivant($ref;$elemName;Variable7)
$ref:=Lire element XML suivant($ref;$elemName;Variable8)
$ref:=Lire element XML suivant($ref;$elemName;Variable9)
$ref:=Lire element XML suivant($ref;$elemName;Variable10)
$ref:=Lire element XML suivant($ref;$elemName;Variable11)
$ref:=Lire element XML suivant($ref;$elemName;Variable12)
$ref:=Lire element XML suivant($ref;$elemName;Variable13)
$ref:=Lire element XML suivant($ref;$elemName;Variable14)
$ref:=Lire element XML suivant($ref;$elemName;Variable15)
$ref:=Lire element XML suivant($ref;$elemName;Variable16)
Fin de si

Créer un document Word

Maintenant que nous avons présenté le format XML des documents Word, nous pouvons penser à créer notre propre document Word à partir de 4D. Ceci mettra considérablement en valeur les fonctionnalités de votre base de données en générant des rapports dans Word ou en générant en quelques secondes un flot de lettres pour vos clients, fournisseurs ou pour votre publicité, chaque lettre étant personnalisée avec le nom du destinataire, le montant dû, etc.

Il y a deux façons de créer un document Word en XML avec 4e Dimension :

- créer le document en partant de zéro ;

- utiliser un modèle comme point de départ.

Il est certain que créer le document à partir de rien demande plus de programmation, mais constitue certainement la meilleure solution si la présentation du document, la police utilisée, etc. doivent être personnalisées.

L’utilisation d’un modèle est la façon la plus simple de créer des rapports ou des lettres qui partagent une présentation identique. Un service Vente peut utiliser une certaine présentation pour les factures qui doivent être envoyées aux clients. La méthode qui met à jour le modèle devra alors seulement ajouter le nom du client, le produit commandé et le prix total. L’avantage d’une telle solution est que la structure interne XML du modèle est connue et qu’il est alors facile de savoir où ajouter les données.

La première étape est de créer un nouveau document dans Word 2003, y insérer le texte commun et faire la mise en page, puis de le sauvegarder en XML.

Puis dans 4e Dimension, vous devez juste ouvrir le modèle, ajouter les données dans le XML et sauvegarder le fichier.

Exemple :

Imaginons qu’un professeur ait toutes les notes de ses élèves dans une base 4D et veuille générer un document Word pour sa hiérarchie. Le professeur, dans ce cas a déjà écrit une méthode qui réunit les données des différentes tables et crée six tableaux :

- la liste des étudiants ;

- les notes données aux étudiants en géographie ;

- les notes données aux étudiants en science ;

- les notes données aux étudiants en mathématiques ;

- les notes données aux étudiants en histoire ;

- la moyenne pour chaque étudiant (Total).

Le document Word que vous voulez créer est un simple tableau indiquant pour chaque étudiant, la note dans chaque matière et la moyenne (Total)

Nous créons un modèle de document Word qui ressemble à ceci :

Dans 4e Dimension, nous avons juste besoin de dupliquer pour chaque étudiant la ligne et remplacer le contenu de chaque cellule avec les données appropriées.

Création de rapports dans Excel

Robert, notre commercial, doit aussi récapituler toutes ses dépenses dans une feuille de calcul Excel qu’il envoie à son comptable. 4e Dimension 2003 fournit un moyen simple de faire cela. Robert peut utiliser l’outil d’export et créer un document XML qu’il importera dans Excel.

4e Dimension crée un document XML contenant les données mises à jour par Robert.

Ceci fait, Robert peut lancer Excel et importer les données XML :

et en sélectionnant le précédent fichier d’export, les données seront automatiquement ajoutées dans la feuille de calcul à l’endroit où veut les placer l’utilisateur, et prêtes à l’emploi.

Intégration d’Excel 2003 et 4e Dimension 2003 en utilisant les Web Services

Une autre façon d’effectuer cette tâche d’une manière beaucoup plus agréable serait d’utiliser un service Web dans la mesure où à la fois Excel via Visual Basic et 4e Dimension supportent le protocole SOAP au travers HTTP.

Robert trouve ennuyeux d’exporter d’abord les données dans un fichier puis de réimporter dans Excel et préfère l’intégration des deux logiciels par l’utilisation des Web Services.

Quand Robert lance Excel, une macro automatique envoie un message SOAP à la base de données 4e Dimension pour récupérer les dernières informations, et 4e Dimension répondra par une réponse SOAP ajoutant automatiquement les données dans la feuille de calcul.

Création du Web Service dans 4e Dimension

Nous devons, pour parachever cette intégration, tout d’abord créer le Web Service publié par 4e Dimension, qui écoutera les requêtes entrantes d’Excel. Il répondra en envoyant les dernières informations. Nous utilisons la base de données Student Grade, publiée sur le port 8080.

Création de la macro Visual Basic

Pour accomplir cette tâche, nous avons besoin d’installer le Web Service Toolkit pour Microsoft Office qui installera quelques outils non inclus dans le package Office 2003, mais disponible sur le site web Microsoft.

http://www.microsoft.com/downloads/

Le premier outil à utiliser est l’utilitaire Web Service References, accessible par le menu Outils de l’éditeur Visual Basic. Vous devez donc d’abord ouvrir l’éditeur Visual Basic au moyen du menu Outils/Macro/Visual Basic Editor (ALt F11) d’Excel.

Vous devez fournir à l’assistant Wev Service l’url de la description (fichier WSDL) de votre service Web, ici publié par 4e Dimension en local à l’url http://127.0.0.1:8080/4dwsdl :

Le bouton Ajouter créera une nouvelle classe

et un simple appel à cette classe dans une fonction pour copier les données dans la feuille de calcul ressemblera à ceci :

ArrStudents = MyCall.wsm_ExportToXL(Ar_Science,
Ar_Math,
Ar_History,
Ar_Geography
Ar_Total)

VI - En conclusion

En conclusion, on peut dire que la dernière version de la suite Microsoft supportant le protocole XML et intégrant les Web Services avec d’autres clients et bases de données comme 4e Dimension permet à Robert de se consacrer à ses ventes le vendredi après-midi au lieu de perdre du temps à reporter les données de la semaine.

C’est aussi une nouveauté importante pour les développeurs qui ont besoin d’intégration dans leurs applications. Ils disposent ainsi d’un moyen puissant pour intégrer 4e Dimension et Office 2003. La prochaine version majeure de 4D offrira des fonctionnalités qui rendront cette intégration encore plus facile.

VII - Base exemple

Téléchargez la base exemple :

Base pour Windows

Base pour Mac OS