Newsletter Developpez.com

Inscrivez-vous gratuitement au Club pour recevoir
la newsletter hebdomadaire des développeurs et IT pro

Developpez.com - 4D
X

Choisissez d'abord la catégorieensuite la rubrique :


Intégration de 4D et Office 2003

Date de publication : Février 2004

Par Julien Feasson (4D Inc.)
 

4ème 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.

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 4ème Dimension 2003 en utilisant les Web Services
Création du Web Service dans 4ème 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.

4ème 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.

info 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 semaines sur ses ventes.

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

A 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 4ème 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 4ème Dimension).

La base 4ème 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 4ème Dimension. En utilisant les nouvelles fonctionnalités XML de Microsoft Word, les méthodes 4ème 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 4ème Dimension grâce aux services Web, retrouver les informations de Robert et générer le rapport.


Avantages

En intégrant 4ème 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 qu'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 :

A 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 utile 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 4ème 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 4ème 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 6 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 4ème 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. 4ème 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.


4ème 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 4ème 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 4ème 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 4ème Dimension pour récupérer les dernières informations, et 4ème Dimension répondra par une réponse SOAP ajoutant automatiquement les données dans la feuille de calcul.


Création du Web Service dans 4ème Dimension

Nous devons, pour parachever cette intégration, tout d'abord créer le Web Service publié par 4ème 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.


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 4ème 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'autre client et base de données comme 4ème 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 4ème 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

__________________________________________________
Copyright © 1985-2009 4D SA - Tous droits réservés
Tous les efforts ont été faits pour que le contenu de cette note technique présente le maximum de fiabilité possible.
Néanmoins, les différents éléments composant cette note technique, et le cas échéant, le code, sont fournis sans garantie d'aucune sorte. L'auteur et 4D S.A. déclinent donc toute responsabilité quant à l'utilisation qui pourrait être faite de ces éléments, tant à l'égard de leurs utilisateurs que des tiers.
Les informations contenues dans ce document peuvent faire l'objet de modifications sans préavis et ne sauraient en aucune manière engager 4D SA. La fourniture du logiciel décrit dans ce document est régie par un octroi de licence dont les termes sont précisés par ailleurs dans la licence électronique figurant sur le support du Logiciel et de la Documentation afférente. Le logiciel et sa documentation ne peuvent être utilisés, copiés ou reproduits sur quelque support que ce soit et de quelque manière que ce soit, que conformément aux termes de cette licence.
Aucune partie de ce document ne peut être reproduite ou recopiée de quelque manière que ce soit, électronique ou mécanique, y compris par photocopie, enregistrement, archivage ou tout autre procédé de stockage, de traitement et de récupération d'informations, pour d'autres buts que l'usage personnel de l'acheteur, et ce exclusivement aux conditions contractuelles, sans la permission explicite de 4D SA.
4D, 4D Calc, 4D Draw, 4D Write, 4D Insider, 4ème Dimension ®, 4D Server, 4D Compiler ainsi que les logos 4e Dimension, sont des marques enregistrées de 4D SA.
Windows,Windows NT,Win 32s et Microsoft sont des marques enregistrées de Microsoft Corporation.
Apple, Macintosh, Power Macintosh, LaserWriter, ImageWriter, QuickTime sont des marques enregistrées ou des noms commerciaux de Apple Computer,Inc.
Mac2Win Software Copyright © 1990-2002 est un produit de Altura Software,Inc.
4D Write contient des éléments de "MacLink Plus file translation", un produit de DataViz, Inc,55 Corporate drive,Trumbull,CT,USA.
XTND Copyright 1992-2002 © 4D SA. Tous droits réservés.
XTND Technology Copyright 1989-2002 © Claris Corporation.. Tous droits réservés ACROBAT © Copyright 1987-2002, Secret Commercial Adobe Systems Inc.Tous droits réservés. ACROBAT est une marque enregistrée d'Adobe Systems Inc.
Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.
__________________________________________________
 



Valid XHTML 1.1!Valid CSS!

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.
Contacter le responsable de la rubrique 4D