SAP : Générer un document Word DOCX en ABAP
Le mois dernier je vous ai présenté ma classe d'abstraction pour faire communiquer SAP et Word en utilisant les liens OLE. Bien que j'adore cette méthode pleine de poésie, ce n'est pas très rapide ni pratique pour générer de gros ou nombreux documents. J'ai donc du réfléchir à une autre méthode : créer des fichiers DOCX directement sans utiliser Microsoft.
Afin de pouvoir transformer rapidement mes différents projets clients utilisant l'ancienne classe, j'en ai repris l'interface : les méthodes portent le même nom et utilisent les mêmes paramètres (autant que possible)
Je vous livre donc cette nouvelle classe d'abstraction qui permet de générer un fichier DOCX directement en ABAP. Contrairement aux différents projets balbutiants et aux tutos que j'ai pu voir sur le net, ici la prise en main est ultra simple : un document "hello world" se génère en quelques lignes !
Sont gérés par la classe :
- Création de document vierge ou via template (docx/docm/dotx/dotm)
- Écriture de texte avec ou sans style (style de paragraphe et/ou de police)
- Option bold, italique, souligné, barré, indice, exposant, petite majuscules, choix de police et taille, couleur, surlignage, espacement de caractères
- Gestion de l'alignement, de l'indentation, du retrait, des espaces avant et après le paragraphe, de l'interligne, des bordures de paragraphe et couleur de fond
- Saut de ligne, de page, de section et section continue
- Écriture de tableau avec ou sans style de tableau (et possibilité de définir des option de formatage par cellule : gras, couleur...)
- Écriture d’entête/pied de page simples
- Gestion de l'orientation (portrait/paysage) et des bordures de page
- Insertion d'image
- Insertion de note de bas de page ou de fin de document
- Insertion de commentaires
- Insertion de dessin (canvas)
- Insertion de table des matières
- Insertion de libellés numérotés (figure, table...)
- Insertion de table de libellés (figures, tables...)
- Insertion de propriété de document et de champs personnalisés (custom fields)
- Mise à jour des propriétés de document
- Création de style (caractère, paragraphe)
- Prise en charge des images/templates dans le SAP Web Repository (SAPWR via la stransaction SMW0)
- Pour les utilisateurs avancées ayant des besoins non gérés, possibilité d'inclure un fragment XML de votre composition dans le document en cours
Pour le téléchargement, je livre un programme de démo de la classe qui montre comment l'utiliser. Le zip contient :
- Le package NUGG avec programme de démo et classe dans un "include" séparé
- Un template word et 3 images utilisés par le programme démo
- Un fichier TXT contenant la classe pour ceux qui veulent jeter un oeil au code sans saplink
Prochainement, un cas d'usage sur BW...