Aspose Word - Redéfinition et formatage de signets personnalisés

Information
Solution Version minimum
vdoc.kit v4.2.0 (pour version MoovApps Process 15.x et +)

Présentation générale

La valorisation par Bookmark est limitée par la longueur des signets car Microsoft Word n’accepte pas les signets de taille supérieure à 40 caractères. Lors de la conception dans le Studio, il arrive que l’on n’ait pas fait attention à cette limitation en nommant les champs, les DU et/ou les tableaux dynamiques (rappel : génération automatique du nom système à partir du libellé du champ). On se retrouve alors bloqué et obligé de recréer tous les champs qui servent à la valorisation dépassant les 40 caractères avec des noms plus courts (avec perte des données contenues dans les anciens champs trop longs !).

Solution

Vdoc Kit permet de contourner cette limitation en assignant aux champs d’autres signets personnalisés (logique d’alias ou encore de formule de transformation). Le paramétrage s’effectue dans l’application masquée VDocKit dans le DU PrintModelLink et via un XML. Ces éléments de paramétrage sont propres à une application ou à une version d’application.

Pré-requis

  • Dans le studio, utiliser “Gérer les applications”. VDoc.Kit Application doit être présent.

![Appli VDoc Kit](../aspose-images/Appli VDoc Kit.png?classes=shadow)

  • Avoir paramétré un connecteur de valorisation Aspose provenant du VDoc Kit dans l’application Studio qui utilisera ces nouveaux signets.
  • La langue par défaut du connecteur de valorisation Aspose doit impérativement être paramétrée comme ci-dessous.

![Language ASPOSE VDok Kit](../aspose-images/Language ASPOSE VDok Kit.png?classes=shadow)

Description détaillée / Paramétrage

Règle d’activation

La surcharge des signets s’active automatiquement pour un document si un XML de définition des nouveaux signets est paramétré pour la version de processus ou le processus associé. Les modèles de surcharge se paramètrent via la table “PrintModelLink” du réservoir de données “DB” de l’application “VDoc.Kit Application”.

Mise à disposition de l’application VDoc.Kit Application

L’application “VDoc.Kit Application” est importée automatiquement à l’installation du kit, mais est masquée dans le Studio par défaut. Si vous souhaitez l’afficher dans la page d’accueil, cliquer sur le bouton “Gérer les applications” à la racine du Studio, puis décocher l’option “Ne pas afficher sur la page d’accueil du studio” dans les propriétés de l’application (voir captures d’écran ci-dessous).

2017-08-22_1447 2017-08-22_1447

2017-08-22_1448 2017-08-22_1448

2017-08-22_1449 2017-08-22_1449

2017-08-22_1449_001 2017-08-22_1449_001

Cette table permet de définir un modèle Word pour un processus toutes versions confondues, ou bien pour une version de processus précise. Voici les informations à remplir pour chaque modèle d’impression (certaines sont facultatives).

Colonne Description Obligatoire Commentaires
Sys_Reference Attribut standard VDoc – référence de la donnée de réservoir X
Processus lié Processus cible X
Version(s) processus liée(s) Version(s) de processus cible
Modèle Fichier attaché Modèle Word (format docx) X Le modèle est obligatoire mais le document ne sera pas utilisé pour la valorisation
Type de valorisation À l’image de ce qui existe dans le connecteur de valorisation standard, sélection du mode publipostage ou signet X Placer sur Avancé
Langue À l’image de ce qui existe dans le connecteur de valorisation standard, sélection de la langue de génération X Placer sur Français
Règle nommage fichier valorisé À l’image de ce qui existe dans le connecteur de valorisation standard, permet de générer le nom du fichier PDF avec des chaînes de caractères fixes et/ou des variables Vdoc (noms de champ par exemple) X N’est pas utilisé pour cette fonctionnalité
Nom système champ destination Nom système du champ pièce jointe dans lequel le fichier PDF va être sauvegardé N’est pas utilisé pour cette fonctionnalité
Modèle permettant de définir la valorisation des champs Contenu XML permettant de redéfinir les signets et le formatage des champs Le XML de paramétrage est à placer ici

Paramétrages

Voici la description balise par balise de chacun des champs possibles. Un exemple global est présent à la fin du chapitre pour présenter l’utilisation de ce XML de paramétrage.

Champ Texte

Balises XML Type de champ Attributs obligatoires Attributs optionnels
<text /> texte name, fieldName
Attributs Description Exemple
name Nom du nouveau signet pour Word name=“monChampANomCourt”
fieldName Nom du champ VDoc auquel on associe le nouveau signet fieldName=“monChampANomBienTropLongQuiFaitDoncPlusDe40Caracteres”
formula Formule pour calculer le signet lors de la valorisation formula=“iResource.values.Affaire.sys_Title”

Exemple de XML permettant de “raccourcir” un signet

Pour créer un alias :

<text name="sysTitle" fieldName="sys_Title" />
<text name="court" fieldName="monChampANomBienTropLongQuiFaitDoncPlusDe40Caracteres" />

Exemple de XML utilisant une formule pour valoriser un signet texte

Alimenter un champ texte à partir d’un attribut d’un champ utilisateur :

<text name="CreatorPhoneNumber" formula="iResource.values.sys_Creator.phoneNumber" />

Récupération du sys_Title d’un champ donnée de réservoir mono-valeur stocké dans le document :

<text name="AFFAIRE" formula="iResource.values.Affaire.sys_Title" />

Champs Date et Numériques

Balises XML Type de champ Attributs obligatoires Attributs optionnels
<date /> date name, fieldName format
<period /> période name, fieldName format
<long /> long name, fieldName format
<integer /> entier name, fieldName format
<bigdecimal /> Nombre à grande précision name, fieldName format
<float /> nombre décimal name, fieldName format
<double /> nombre double name, fieldName format
Attributs Description Exemple
name Nom du nouveau signet name=“monChampANomCourt”
fieldName Nom du champ auquel on associe le nouveau signet fieldName=“monChampANomBienTropLongQuiFaitDoncPlusDe40Caracteres”
format Permet l’utilisation d’un modèle pour le formatage du résultat format=“dd-MM-YYYY”

Exemples de XML :

<date name="dateFormat" fieldName="sys_CreationDate" format="dd-MM-YYYY" />
<period name="periodFormat" fieldName="PeriodColumn" format="dd-MM-YYYY" />
<long name="longFormat" fieldName="LongColumn" format="000,000,000" />
<integer name="integerFormat" fieldName="integerColumn" format="000,000,000" />
<float name="floatFormat" fieldName="FloatColumn" format="####0.0000" />
<double name="doubleFormat" fieldName="DoubleColumn" format="####0.0000" />

Champ Booléen

Balises XML Type de champ Attributs obligatoires Attributs optionnels
<boolean /> case à cocher name, fieldName format
Attributs Description Exemple
name Nom du nouveau signet name=“monChampANomCourt”
fieldName Nom du champ auquel on associe le nouveau signet fieldName=“monChampANomBienTropLongQuiFaitDoncPlusDe40Caracteres”
format Permet l’utilisation d’un modèle pour le formatage du résultat format=“☒”

Exemple de XML :

<boolean name="booleanFormat" fieldName="BooleanColumn" format="☒" />

Champ Tableau Dynamique

Pour les tableaux dynamiques, il faudra déclarer les colonnes à valoriser dans une balise table.

Balises XML Type de champ Attributs obligatoires Attributs optionnels
<table /> tableau dynamique name, fieldName, type

Exemple de modèle permettant de définir la valorisation des champs :

<modelDefinition extension="com.vdoc.kit.aspose.base.extensions.BaseModelValuationExtension">
    <text name="sysTitle" fieldName="sys_Title" />
    <date name="dateFormat" fieldName="sys_CreationDate" format="dd-MM-YYYY" />
    <period name="periodFormat" fieldName="PeriodColumn" format="dd-MM-YYYY" />
    <long name="longFormat" fieldName="LongColumn" format="000,000,000" />
    <integer name="integerFormat" fieldName="integerColumn" format="000,000,000" />
    <float name="floatFormat" fieldName="FloatColumn" format="####0.0000" />
    <double name="doubleFormat" fieldName="DoubleColumn" format="####0.0000" />
    <bigdecimal name="integerFormat" fieldName="integerColumn" format="000,000,000" />
    <boolean name="booleanFormat" fieldName="BooleanColumn" format="☒" />
    <table name="dynTable" type="TABLE" fieldName="dynTableField">
        <long name="longColumnTable" fieldName="LongTableColumn" format="000,000,000" />
        <integer name="integerColumnTable" fieldName="integerTableColumn" format="000,000,000" />
        <float name="floatColumnTable" fieldName="FloatTableColumn" format="####0.0000" />
    </table>
    <custom>
        <valeursdanscustommodel>ValoTest</valeursdanscustommodel>
    </custom>
</modelDefinition>

Articles complémentaires