.load [-o] [-e] [-v] [-j] [<vía_acceso_relativa>/]<nombre_archivo>
.load -r|-p <nombre de registro>
.load -s `<nombre de mandato>`
El mandato .load carga un proyecto desde un archivo XML y añade los pasos del proyecto cargado al proyecto actual, después del paso que ejecutó
el mandato .load, permitiendo que un proyecto cree y cargue pasos de forma dinámica en tiempo de ejecución. Si utiliza opciones, puede hacer que el mandato .load extraiga sus datos
a partir de un registro o partir de la salida de un mandato.
Para escribir un archivo XML que ejecute un mandato .load, empiece con un archivo de exportación procedente de un
proyecto existente para que le proporcione la estructura básica apropiada.
Puede crear también
un proyecto dentro del sistema y, a continuación, expórtelo para utilizarlo en un mandato .load. Este tema incluye código XML de muestra.
Los pasos cargados por un mandato .load pueden contener referencias a un proyecto integrado o encadenado. De forma predeterminada, el sistema
busca las definiciones de los proyectos en línea dentro del archivo
XML y carga sus pasos; consulte la opción -e posteriormente
en este apartado para encontrar una manera de hacer que el sistema obtenga la definición de proyecto
en línea de la base de datos. Para proyectos encadenados con éxito o anómalos, el sistema siempre busca la definición del proyecto
en la base de datos.
Nota: Con pasos JPO ejecutados desde un .load, el proyecto o biblioteca identificado como else-inline
debe ser un proyecto o biblioteca ya existente dentro del sistema o, de lo contrario,
no será ejecutado.
Varios proyectos en archivos XML
Puesto que el sistema exporta
proyectos integrados junto con sus proyectos de llamada, un archivo XML puede
contener varios proyectos. El mandato .load ejecuta el proyecto que está etiquetado como primario en el archivo.
Este proyecto tiene el atributo primary="1" en
su elemento <project>.
Opciones de mandatos y parámetros
La forma más simple de mandato es
.load <nombre de archivo>. Puede incluir un nombre de vía de acceso opcional
(relacionado con el directorio de trabajo) delante del nombre de archivo.
Por ejemplo,
el mandato
.load ../../project.xml
carga el archivo
project.xml del directorio del servidor (el directorio que contiene el proyecto
y los directorios de trabajo), presuponiendo que la propiedad de vía de acceso del paso es "/"
(valor predeterminado).
Nota: Cuando un paso normal lanza un proyecto integrado, el
sistema se dirige a la base de datos para obtener la definición actual para ese proyecto;
cuando un paso que ha sido importado por el mandato .load lanza un proyecto integrado,
el sistema busca dentro del archivo XML la definición del proyecto integrado. Consulte la descripción de la opción -e más abajo para conocer el modo de evitar esta situación.
Nota: No se da soporte al código XML de paso generado por versiones anteriores a la versión 7.1 de Build Forge, siendo lo más probable que falle, puesto que se hace referencia a estos elementos por nombre en lugar de hacerlo por ID.
Nota: .load utiliza el programa de utilidad de importación, y como tal, aplica la pertenencia a grupos de acuerdo a los valores del programa de utilidad de importación.
Para obtener más información, consulte el apartado
Cómo se asignan grupos de acceso a objetos importados.
El mandato
dispone de las siguientes opciones:
- -r o -p
- Estas opciones hacen que el
sistema cargue pasos de un registro. Utilice la línea de mandatos con estas opciones.
.load -r|-p <nombre de registro>
La
opción -r carga pasos de un registro ordinario, mientras que la opción -p carga
pasos de un registro de proyecto. Puede recopilar datos en un registro en pasos anteriores de su proyecto y, a continuación, cargar los pasos desde el registro con este mandato.
- -s
- Esta opción hace que el sistema
ejecute un mandato y utiliza la salida de ese mandato como los datos
que cargar. Utilice la línea de mandatos
.load -s `<nombre de mandato>`
- -e
-
Si se establece la opción -e, el sistema obtiene proyectos integrados
desde la base de datos en lugar de desde el archivo XML cargado. En este caso el valor de chainID se
considera una referencia a un ID de proyecto dentro de la base de datos. Esto permite que el archivo XML
se refiera a la última versión del proyecto integrado en lugar de al contenido en el archivo XML,
o que se refiera a un proyecto que no está incluido en el archivo XML.
- -o
- Utilice la opción -o para inhabilitar proyectos integrados dentro del archivo XML.
Cuando se utiliza esta opción,
el sistema ignora cualquier proyecto integrado dentro del proyecto principal. Un paso que contiene una referencia a un proyecto integrado ejecuta su mandato,
pero ignora la línea que lo integra.
- -j
- Utilice la opción -j si se ha enhebrado el último conjunto de pasos del archivo XML, y también se han enhebrado los pasos que siguen al mandato .load.
La opción -j convierte el último paso enhebrado en un paso Unir. En caso contrario, los pasos enhebrados
se convierten en parte del bloque enhebrado de pasos que sigue
al mandato .load.
- -v
- Envía el contenido del archivo XML cargado al terminal de visualización
(stdout) para su visualización.
XML de muestra
El siguiente ejemplo muestra un archivo XML
para usar con el mandato .load. El XML se creó exportando un
proyecto llamado HelloWorldPlusInline.
Observe los siguientes detalles del
ejemplo XML:
- El XML contiene dos elementos <project>.
- El primer proyecto en el XML es el proyecto primario; éste contiene los atributos name="HelloWorldPlusInline" y primary="1".
- El segundo proyecto en el XML se llama Sleepytime y tiene el atributo primary="0" para
indicar que no es primario.
- El primer paso del HelloWorldPlusInline es un paso llamado EchoHelloWorld
que contiene un mandato echo y un atributo chainID.
El atributo chainID
tiene un valor de 2, indicando que el sistema debería integrar el proyecto con el
ID 2, que es el proyecto Sleepytime.
Nota: Ignore el atributo de paso inline;
se trata de un atributo en desuso. Todos los pasos contienen este atributo
con el valor de N. Para determinar si un paso tiene un proyecto integrado, busque el
atributo chainID. El valor de chainID se refiere
al ID de un proyecto. De forma predeterminada, el sistema busca el proyecto integrado
dentro del archivo XML, pero si utiliza la opción -e en su mandato .load, el
sistema considera el valor como un ID de proyecto dentro de la base de datos. Esto le permite crear
sus propios archivos .load sin tener que incluir proyectos integrados dentro de ellos.
Nota: No se da soporte a la utilización de .load con archivos XML generados por versiones 7.0.x, o anteriores, ni funcionará correctamente, puesto que la sintaxis antigua hace referencia a los objetos por nombre en lugar de hacerlo por UUID.
- Cada proyecto tiene un atributo id. Este valor ID es el mismo
que el ID del proyecto de la base de datos. Puede obtener una lista de ID de proyectos ejecutando el mandato siguiente desde un directorio de instalación:
bfexport -l
- El atributo commandStore contiene una copia del contenido del elemento <command>, con algunos caracteres de escape XML.
Por ejemplo, en <command> podría tener ", ', &, <, > o una nueva línea.
Los caracteres se representarían en commandStore respectivamente como ", ', &, <, > y .
<?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 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>