.load

.load [-o] [-e] [-v] [-j] [<relativer_pfad>/]<dateiname>
.load -r|-p <registername>
.load -s `<befehlsname>`

Mit dem Befehl .load können Projekte aus einer XML-Datei geladen und dem aktuellen Projekt Schritte aus den geladenen Projekten hinzugefügt werden, und zwar nach dem Schritt, in dem dieser Befehl ausgeführt wurde. Damit haben Sie für ein Projekt die Möglichkeit, Schritte während der Laufzeit dynamisch zu erstellen und zu laden. Mithilfe von Optionen kann als Datenquelle für den Befehl .load ein Register oder die Ausgabe eines Befehls angegeben werden.

Die Erstellung einer XML-Datei für einen .load-Befehl erfolgt auf Basis einer Exportdatei aus einem vorhandenen Projekt, sodass die entsprechende Basisstruktur vorhanden ist. Sie können auch ein Projekt im System erstellen und exportieren, um es in einem .load-Befehl zu verwenden. Dieser Abschnitt enthält auch XML-Mustercode.

Die mit dem Befehl .load geladenen Schritte können Verweise auf integrierte oder verkettete Projekte enthalten. Standardmäßig sucht das System in der XML-Datei nach den Definitionen integrierter Projekte und lädt deren Schritte. Hinweise, wie das System die Definition integrierter Projekte aus der Datenbank abrufen kann, finden Sie in der Beschreibung der Option -e weiter unten in diesem Thema. Für Projekte, die bei erfolgreicher oder fehlgeschlagener Ausführung aufgerufen werden, sucht das System immer in der Datenbank nach der Projektdefinition.

Anmerkung: Bei JPO-Schritten, die über einen .load-Befehl ausgeführt werden, müssen mit else-inline angegebenen Projekte oder Bibliotheken bereits im System vorhanden sein. Andernfalls wird der inline-Code nicht ausgeführt.

Mehrere Projekte in XML-Dateien

Da vom System integrierte Projekte zusammen mit den aufrufenden Projekten exportiert werden, kann eine XML-Datei auch mehrere Projekte enthalten. Mit dem Befehl .load wird das in der Datei als primär gekennzeichnete Projekt ausgeführt. Dieses Projekt enthält in seinem <project>-Element das Attribut primary="1".

Befehlsoptionen und -parameter

Die einfachste Befehlssyntax ist .load <dateiname>. Sie können vor dem Dateinamen optional auch einen Pfadnamen (der relativ zum Vorgangsverzeichnis ist) angeben. Mit dem Befehl
.load ../../project.xml

wird beispielsweise die Datei project.xml aus dem Serververzeichnis (dem Verzeichnis, das die Projekt- und Vorgangsverzeichnisse enthält) geladen. Dabei wird davon ausgegangen, dass "/" (Standardwert) die Pfadeigenschaft des Schritts ist.

Anmerkung: Wenn ein normaler Schritt ein integriertes Projekt startet, ruft das System die aktuelle Definition für das Projekt aus der Datenbank ab. Wenn ein Schritt, der vom Befehl .load importiert wird, ein integriertes Projekt startet, sucht das System in der XML-Datei nach der Definition des integrierten Projekts. Hinweise, wie Sie dies vermeiden können, finden Sie in der Beschreibung der Option -e.
Anmerkung: Mit Build Forge-Versionen vor Version 7.1 generierte Schritt-XML wird nicht unterstützt und schlägt wahrscheinlich fehl, da auf diese Elemente mit Namen und nicht mit IDs verwiesen wird.
Anmerkung: Anmerkung: .load verwendet das Importdienstprogramm. Daher wird die Zugriffsgruppenzugehörigkeit gemäß den Einstellungen des Importdienstprogramms angewendet. Weitere Informationen finden Sie in Zuordnung von Zugriffsgruppen zu importierten Objekten.
Der Befehl hat die folgenden Optionen:
-r oder -p
Bei Angabe dieser Optionen lädt das System die Schritte aus einem Register. Verwenden Sie die Befehlszeile für diese Optionen.
.load -r|-p <registername>
Bei Angabe der Option -r werden die Schritte aus einem normalen Register, bei Angabe der Option -p aus einem Projektregister geladen. Sie können Daten bei der Ausführung früherer Projektschritte in einem Register erfassen und die Schritte anschließend mit diesem Befehl aus dem Register laden.
-s
Bei Angabe dieser Option führt das System einen Befehl aus und lädt als Daten die Ausgabe dieses Befehls. Verwenden Sie die Befehlszeile.
.load -s `<befehlsname>`
-e
Bei Angabe der Option -e ruft das System die integrierten Projekte aus der Datenbank, nicht aus der geladenen XML-Datei ab. Dabei wird der Wert von chainID als Verweis auf eine Projekt-ID in der Datenbank interpretiert. Dadurch kann mit der XML-Datei auf die aktuellste Version eines integrierten Projekts anstatt auf die Version in der XML-Datei verwiesen werden, oder auf ein Projekt, das nicht in der XML-Datei enthalten ist.
-o
Mit dieser Option können integrierte Projekte in der XML-Datei inaktiviert werden. Bei Angabe dieser Option werden vom System alle integrierten Projekte innerhalb des Hauptprojekts ignoriert. Für einen Schritt, der einen Verweis auf ein integriertes Projekt enthält, wird zwar der Befehl ausgeführt, das integrierte Projekt jedoch ignoriert.
-j
Verwenden Sie diese Option, wenn es sich bei der letzten Gruppe von Schritten in der XML-Datei um Schritte mit Thread handelt und die auf den Befehl .load folgenden Schritte ebenfalls Schritte mit Thread sind. Mit der Option -j wird der letzte Schritt mit Thread in einen verbundenen Schritt umgewandelt. Andernfalls werden die Schritte mit Thread zu einem Teil des Blocks der Schritte mit Thread, die auf den Befehl .load folgen.
-v
Sendet den Inhalt der geladenen XML-Datei zur Anzeige an die Bildschirmanzeige (stdout).

XML-Musterdatei

Bei dem folgenden Beispiel handelt es sich um eine XML-Datei, die mit dem Befehl .load verwendet wird. Diese XML-Datei wurde durch den Export eines Projekts mit der Bezeichnung "HelloWorldPlusInline" erstellt.

Folgendes sollten Sie bei der XML-Musterdatei beachten:
  • Die XML-Datei enthält zwei <project>-Elemente.
  • Bei dem ersten Projekt in der XML-Datei handelt es sich um das Primärprojekt, das die Attribute name="HelloWorldPlusInline" und primary="1" hat.
  • Das zweite Projekt in der XML-Datei hat den Namen "Sleepytime". Es hat das Attribut primary="0", das angibt, dass es sich nicht um das Primärprojekt handelt.
  • Der erste Schritt von "HelloWorldPlusInline" ist der Schritt "EchoHelloWorld", der einen Echobefehl und das Attribut chainID enthält. Das Attribut chainID hat den Wert "2", der angibt, dass das System das Projekt mit der ID "2" integrieren soll, also dem Projekt "Sleepytime".
    Anmerkung: Ignorieren Sie das Schrittattribut inline. Dieses Attribut ist veraltet und wird nicht mehr verwendet. Bei allen Schritten ist dieses Attribut auf den Wert "N" gesetzt. Wenn Sie feststellen möchten, ob ein Schritt ein integriertes Projekt enthält, müssen Sie das Attribut chainID überprüfen. Der Wert von chainID verweist auf die ID eines Projekts. Standardmäßig sucht das System in der XML-Datei nach integrierten Projekten. Bei Angabe der Option -e im Befehl .load allerdings interpretiert das System den Wert als Projekt-ID in der Datenbank. Dadurch können Sie eigene .load-Dateien erstellen, die keine integrierten Projekte enthalten müssen.
    Anmerkung: Anmerkung: Die Verwendung von .load mit XML-Dateien, die von Build Forge-Version 7.0.x und früher generiert wurden, wird nicht unterstützt und funktioniert nicht ordnungsgemäß, da die ältere Syntax mit Namen und nicht mit UUID auf Objekte verweist.
  • Jedes Projekt verfügt über das Attribut id. Dieser Wert ist mit der ID des Projekts in der Datenbank identisch. Sie können eine Liste der Projekt-IDs abrufen, indem Sie vom Installationsverzeichnis aus den folgenden Befehl verwenden:
    bfexport -l 
  • Das Attribut commandStore enthält eine Kopie des Inhalts des Elements <command>, wobei bestimmte Zeichen für XML durch Escapezeichen ersetzt sind. In <command> könnten beispielsweise die Zeichen ", ', &, <, > oder ein Zeilenumbruch vorhanden sein. Die Zeichen würden in commandStore durch &quot;, &apos;, &amp;, &lt;, &gt; bzw. &#10; dargestellt.

<?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>