Skip to content

$doc.xmlize

Description

Retourne la représentation XML du dossier indiqué telle que générée dans l'arbre de sortie du moteur.

Attention, cette méthode ne sert pas à sérialiser le dossier, mais uniquement à en générer la version utilisée au niveau de l'output.

Syntaxe

$doc.xmlize( context [ , options ] )

Paramètres

context string / map
Object décrivant le contexte d'un ou plusieurs dossiers. Le paramètre peut désigner un tableau ou un contexte unique. Le ou les contextes peuvent être exprimés en tant que string en clair, p.ex. "vendeur[123]}", sous la forme de hash, ou en tant que map. Dans ce cas, le map doit a minima contenir une valeur pour les entrées modelName et docId.
options map

Map d'options. Les options reconnues sont:

ignorePolicies boolean

Flag indiquant de ne pas tenir compte des policies lors de l'ouverture.

Par défaut, les policies sont vérifiées si l'application gère des policies et si le thread courant est un thread "client", c'est-à-dire un thread initié par une requête du client. Si la méthode est invoquée par un script démarré par le scheduler, les policies ne seront pas vérifiées par défaut.

updatePolicies boolean
Flag indiquant si les policies relatives aux permissions et actions doivent être mises à jour avant de produire la sortie xml.
keepDocumentOpen boolean
Dans le cas où la méthode doit traiter un dossier qui n'est pas déjà ouvert, le flag indique si le dossier en question doit être conservé ouvert.
fullReload boolean
Flag true/false indiquant d'effectuer un rechargement complet, y compris le tuple principal. Par défaut cette option est à false.
loadBinaries boolean
Flag true/false indiquant si la méthode doit charger les champs binaires. La valeur par défaut est false car dans la mesure du possible on évitera de charger inutilement la mémoire avec les binaires. Le flag est à définir à true si l'on souhaite explicitement charger le dossier dans le but de traiter les fichiers binaires qu'il contient. À noter que les binaires sont automatiquement chargés lorsque l'on référence un champ qui en contient à l'aide des notations #champ ou $data.get("champ"). À noter également que les éventuelles métadonnées liées au champ en question sont chargées, indépendamment de la valeur passée à cette option.
locale string
Locale à utiliser pour les libellés à reprendre dans le document xml. La locale est à spécifier selon la syntaxe IETF BCP 47, par exemple "fr", fr-CH", "en-US", etc.
decimalSeparator string
Séparateur de décimale à utiliser dans les nombres. Si non défini, le moteur se rabat sur le séparateur défini au niveau de la config de l'application ou, à défaut, sur le séparateur par défaut associé à la locale.
groupingSeparator string
Séparateur de milliers à utiliser dans les nombres. Si non défini, le moteur se rabat sur le séparateur défini au niveau de la config de l'application ou, à défaut, sur le séparateur par défaut associé à la locale.
prettyPrint boolean
Flag true/false indiquant de générer un arbre XML formaté (avec retours lignes et indentation). Cette option est false par défaut.

Retour

Arbre xml représentant le ou les dossiers

Exemple

Dans l'exemple ci-dessous, on utilise le résultat de la méthode pour générer un print du dossier via la méthode $pdf.generate.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var xml = $doc.xmlize( { modelName: "offre", docId: #idOffre }, { locale: "fr-CH" } );

var idApplication = #demande[#idDemande].info.idApplication,
    idClient = $sql.select(`select idClient from Application where idApplication=?`, [ idApplication ]),
    descriptionDemande = #demande[#idDemande].info.numero,
    titreDemande = #demande[#idDemande].info.titre;

if (titreDemande != "") {
    descriptionDemande &= (descriptionDemande != "" ? " - " : "") & titreDemande;
}

var pdf = $pdf.generate(
        $app.getResource("fop/PDF-Offre.xsl"),
        xml,
        null,
        { imagesPath: $str.replace($app.getResource("resources/images"), "\\", "/"),
        libelleDemande: descriptionDemande,
        nomApplication: #client[idClient].application[idApplication].nom,
        datePrint: $cal.date() }
);

$response.setStatus(200);
$response.setContentType(`application/pdf; charset=utf-8`);
$response.setContentDisposition(`attachment; filename="offre-${data:numero}.pdf`);
$response.addContent(pdf);