.load

.load [-o] [-e] [-v] [-j] [<chemin_relatif>/]<nom_fichier>
.load -r|-p <nom_registre>
.load -s `<nom de commande>`

La commande .load permet de charger un projet depuis un fichier XML et d'ajouter les étapes du projet chargé au projet en cours, après l'étape d'exécution de la commande .load, ce qui permet de créer et de charger dynamiquement des étapes en cours d'exécution. A l'aide des options, vous pouvez définir la commande .load de façon à ce qu'elle extraie ses données dans un registre ou dans le résultat d'une commande.

Pour écrire un fichier XML pour une commande .load, commencez avec un fichier d'exportation d'un projet existant qui vous donnera la structure basique appropriée. Vous pouvez aussi créer un projet dans le système, puis l'exporter pour l'utiliser dans une commande .load. Cette rubrique contient des échantillons de code XML.

Les étapes chargées avec une commande .load peuvent contenir des références à des projets encapsulés ou chaînés. Par défaut, le système cherche les définitions des projets encapsulés dans le fichier XML, et en charge les étapes ; l'option -e explique comment le système obtient les définitions des projets encapsulés à partir de la base de données. Pour les projets chaînés réussis ou échoués, le système cherche toujours la définition du projet dans la base de données.

Remarque : Concernant les étapes JPO exécutées à partir d'une commande .load, le projet ou la bibliothèque Else Inline identifiés doit déjà exister dans le système ; autrement, l'encapsulage ne s'exécute pas.

Projets simultanés dans des fichiers XML

Le système exportant des projets incorporés accompagnés de leurs projets appelant, il se peut qu'un fichier XML contienne plusieurs projets. La commande .load exécute le projet désigné comme principal dans le fichier. L'attribut primary="1" est sur l'élément <project> de ce projet.

Options de commandes et paramètres

La forme la plus simple de cette commande est .load <nom_fichier>. Vous pouvez inclure un nom de chemin optionnel (relatif au répertoire de travail) devant le nom de fichier. Par exemple, la commande
.load ../../project.xml

charge le projet de fichier .xml à partir du répertoire de serveur (le répertoire qui contient le projet et les répertoires de travail), en supposant que la propriété du chemin de l'étape est "/" (valeur par défaut).

Remarque : Lorsqu'une étape normale démarre un projet encapsulé, le système fait appel à la base de données pour extraire la définition en cours de ce projet ; lorsqu'une étape importée par une commande .load démarre un projet encapsulé, le système cherche les définitions du projet encapsulé dans le fichier XML. Pour savoir comment éviter un tel cas de figure, consultez la description de l'option -e ci-dessous.
Remarque : L'étape XML générée à partir des versions Build Forge antérieures à 7.1 n'est pas prise en charge et risque d'échouer car ces éléments sont référencés par un nom plutôt que par un ID.
Remarque : .load utilise l'utilitaire d'importation et, par conséquent, applique une propriété de groupe d'accès en fonction des paramètres de l'utilitaire. Pour plus d'informations, voir Comment les groupes d'accès sont attribués à des objets importés.
Cette commande est dotée des options suivantes :
-r ou -p
Ces options incitent le système à charger les étapes d'un registre. Utilisez la ligne de commande avec ces options.
.load -r|-p <nom_registre>
L'option -r charge des étapes à partir d'un registre ordinaire, alors que l'option -p charge des étapes à partir d'un registre de projet. Vous pouvez constituer des données dans un registre au cours d'étapes antérieures de votre projet, puis charger les étapes à partir du registre à l'aide de cette commande.
-s
Cette option incite le système à exécuter une commande et à utiliser la sortie de cette commande comme données à charger. Utilisez la ligne de commande
.load -s `<nom de commande>`
-e
Lorsque l'option -e est définie, le système récupère les projets en ligne auprès de la base de données et non auprès du fichier XML chargé. Il traite la valeur de chainID comme référence à un ID de projet dans la base de données. Cela permet à votre fichier XML de référencer la dernière version d'un projet encapsulé, plutôt que celui contenu dans le fichier XML, ou de référencer un projet qui n'est pas inclus dans le fichier XML.
-o
Utilisez l'option -o pour désactiver les projets incorporés dans le fichier XML. Lorsque cette option est utilisée, le système ignore tout projet encapsulé dans le projet principal. Une étape qui contient une référence à un projet encapsulé en exécute la commande mais ignore ensuite sa présence.
-j
Utilisez l'option -j si les étapes du dernier jeu d'étapes du fichier XML et les étapes qui suivent la commande .load sont conçues avec des unités d'exécution. L'option -j transforme l'étape conçue avec des unités d'exécution en étape jointe. Sinon, les étapes conçues avec des unités d'exécution font partie du bloc d'étapes conçu avec des unités d'exécution suivant la commande .load.
-v
Envoie les contenus du fichier XML chargé dans le terminal d'affichage (stdout).

Echantillon XML

L'exemple suivant montre un fichier XML à utiliser avec la commande .load. Le fichier XML a été créé en exportant un projet appelé HelloWorldPlusInline.

Notez les détails de l'exemple de fichier XML suivant :
  • Le fichier XML contient deux éléments <project>.
  • Le premier projet du fichier XML est le projet principal; il a les attributs name="HelloWorldPlusInline" et primary="1" .
  • Le second projet du fichier XML s'appelle Sleepytime et a l'attribut primary="0", qui indique qu'il n'est pas le projet principal.
  • La première étape de HelloWorldPlusInline est une étape appelée EchoHelloWorld qui contient une commande d'écho et un attribut chainID. L'attribut chainID a une valeur de 2, qui indique que le système devrait incorporer le projet avec l'ID 2, qui désigne le projet Sleepytime.
    Remarque : Ne tenez pas compte de l'attribut d'étape inline; il s'agit d'un attribut obsolète qui n'est plus utilisé. Toutes les étapes ont cet attribut avec une valeur de N. Pour savoir si une étape contient un projet encapsulé, cherchez l'attribut chainID . La valeur de chainID fait référence à l'ID d'un projet. Par défaut, le système recherche le projet encapsulé dans le fichier XML, mais si vous utilisez l'option -e de votre commande .load, le système traite la valeur comme ID de projet dans la base de données. Cela vous permet de créer vos propres fichiers .load sans avoir à y inclure de projets encapsulés.
    Remarque : L'utilisation de .load avec des fichiers XML générés par Build Forge versions 7.0.x et des versions antérieures n'est pas prise en charge et ne fonctionnera pas correctement car l'ancienne syntaxe référence les objets par nom plutôt que par identificateur unique universel.
  • Chaque projet a un attribut id. Cette valeur d'ID est la même que celle de l'ID du projet dans la base de données. Vous pouvez consulter une liste d'ID de projet en exécutant la commande suivante à partir de votre répertoire d'installation :
    bfexport -l 
  • L'attribut commandStore contient une copie du contenu de l'élément <command> avec certains caractères d'échappement XML. Par exemple, dans <command>, vous pouvez avoir ", ', &, <, >, ou une nouvelle ligne. Les caractères sont représentés dans commandStore respectivement par &quot;, &apos;, &amp;, &lt;, &gt;, et &#10;.

<?xml version="1.0" encoding="UTF-8"?>

<buildforge schema="7.115014" comment="">
  <project access="6" active="Y" name="HelloWorldPlusInline" primary="1" 
   selectorId="Choose_local" maxthread="0" increment="Y" tagsync="0" 
   buildclass="Production" sticky="N" envId="0" tag="BUILD_$B" id="19" exclusive="0">
    <tagvar autoincrement="Y" name="B" id="1">2</tagvar>
    <step absolute="N" failwait="N" selectorId="" dir="/" broadcast="N" 
     timeout="300" id="1" passwait="N" inline="N" threadable="N" chainId="2" 
     access="6" active="Y" passnotify="0" description="EchoHelloWorld" onfail=" " 
     failnotify="0" envId="0" commandStore="echo Hello World">
      <command>echo Hello World</command>
    </step>
    <step absolute="N" failwait="N" selectorId="" dir="/" broadcast="N" 
     timeout="300" id="2" passwait="N" inline="N" threadable="N" access="6" 
     active="Y" passnotify="0" description="export proj to build and server folders" 
     onfail=" " failnotify="0" envId="0" 
     commandStore=".export $BF_PROJECTNAME_PHYS.xml&#10;copy /Y $BF_PROJECTNAME_PHYS.xml ..\..">
      <command>.export $BF_PROJECTNAME_PHYS.xml
copy /Y $BF_PROJECTNAME_PHYS.xml ..\..</command>
    </step>
  </project>
  <project access="6" active="Y" name="Sleepytime" primary="0" 
   selectorId="Choose_local" maxthread="0" increment="Y" tagsync="0" 
   buildclass="Production" sticky="N" envId="0" tag="SLEEP_$B" id="2" exclusive="0">
    <tagvar autoincrement="Y" name="B" id="1">21</tagvar>
    <step absolute="N" failwait="N" selectorId="" dir="/" broadcast="N" 
     timeout="300" id="1" passwait="N" inline="N" threadable="N" access="6" 
     active="Y" passnotify="0" description="Sleep, perchance to dream" onfail=" " 
     failnotify="0" envId="0" commandStore=".sleep 0">
      <command>.sleep 0</command>
    </step>
  </project>
  <class maxdays="0" access="1" entranceprojectId="1" name="Production" keepfiles="B" 
   deletechangedata="N" purgeprojectId="2" exitProjectId="5" candidates="AnyBuild " 
   maxbuilds="0"></class>
  <selector operator="" required="" access="6" value="" name="Choose_local" 
   selectorId="" property=""></selector>
</buildforge>


Commentaires en retour