Beispiele für Nachverarbeitungsscripts

Nachverarbeitungsscripts werden in JavaScript geschrieben.
Nachverarbeitungsscripts müssen die Status-Eigenschaft einstellen, um den Status des Scripts anzugeben. Das Script kann für die Status-Eigenschaft einen beliebigen Wert eingeben. Beispiel: Um anzugeben, dass das Script ein Erfolg war, führen Sie im Nachverarbeitungsscript den folgenden Befehl aus:
properties.put("Status","Erfolg");

Prüfen des Ergebnisses eines Schritts

Das Nachverarbeitungsscript kann das Ausgabeprotokoll des Schritts prüfen und Befehle basierend auf dem Ergebnis ausführen. Im folgenden Codefragment registriert scanner.register() die Zeichenfolgen Fehler in der Zeile und Der Wert ist mit einer Steuerkomponente für reguläre Ausdrücke und führt dann Befehle aus, wenn diese Zeichenfolgen gefunden werden. Nachdem alle Zeichenfolgen registriert wurden, ruft es scanner.scan() im Ausgabeprotokoll des Schritts Zeile für Zeile auf.

     properties.put("Status",
"Erfolg");

     //
     // Integrierte exitCode-Eigenschaft auswerten, die den Exit-Code des vom
     // Plug-in-Schritt aufgerufenen Scripts enthält. Wenn exitCode-Eigenschaft
     // nicht null ist, schlägt der Plug-in-Schritt fehl.
     //
     if (properties.get("exitCode") != 0) {
          properties.put("Status", "Fehler");
     }
     else {

          //
          // Scanner zur Suche nach Text "Fehler in Zeile" im Protokoll registrieren.
          // Erstes Argument ist ein regulärer Ausdruck.
          //
          // Zweites Argument, inline-Funktion, wird einmal für jede Zeile in der
          // Protokollausgabe aufgerufen, die zum Suchmuster passt. "lineNumber"-
          // Variable enthält die Zeilennummer mit der Übereinstimmung, und die
          // "line"-Variable ist der vollständige Text der Zeile.
          //
          scanner.register("(?i)FEHLER in Zeile",  function(lineNumber, line) {

              //
              // In diesem Fall wird eine "Fehler"-Eigenschaft erstellt, die den
              // Text aller gefundenen Fehler enthält. Gesucht wird jede Zeile,
              // die mit "Fehler in Zeile" beginnt, und dieser Liste hinzugefügt.
              //
              var errors = properties.get("Fehler");
              if (errors == null) {
                  errors = new java.util.ArrayList();
              }
              errors.add(line);


              //
              // Wird eine Zeile mit "Fehler in Zeile" gefunden, ist der Schritt
              // fehlgeschlagen, daher wird "Status"-Eigenschaft auf "Fehler",
              // gesetzt, womit dem UrbanCode Deploy-Server gezeigt wird, dass
              // der Schritt als Fehlschlag markiert werden muss.
              //
              properties.put("Status", "Fehler");
          });
         
          //
          // Mehrere Suchen können für den Scanner registriert werden. Eine zweite
          // Suche sucht nach interessantem Text, der als Ausgabeeigenschaft
          // eingestellt werden kann.
          //
          // Wenn beispielsweise eine Zeile "Der Wert ist BLAU" heißt ergibt sich
          // eine Ausgabeeigenschaft "Wert" mit dem Wert "BLAU".
          //
          scanner.register("Der Wert ist", function(lineNumber, line) {
              var value = line.replace("Der Wert ist ", "");
              properties.put("Value", value);
          });
         
          scanner.scan();


          //
          // Gesammelte Liste von Fehlerzeichenfolgen in eine einzige Zeichenfolgen-
          // gruppe umwandeln, die eine Ausgabeeigenschaft hat.
          //
          var errors = properties.get("Fehler");
          if (errors == null) {
              errors = new java.util.ArrayList();
          }
          properties.put("Fehler", errors.toString());
     }

Abrufen einer Eigenschaft aus einem vorherigen Schritt

Für die folgenden Scripts werden zwei Schritte in demselben Prozess angenommen. Das Nachverarbeitungsscript für den ersten Schritt erstellt zwei Ausgabeeigenschaften mit der Bezeichnung Status and Step1Prop:
if (properties.get("exitCode")==0)
  { properties.put("Status","Erfolg"); }
else
  { properties.put("Status","Fehler"); }

properties.put("Step1Prop","value1");
Danach kann ein zweiter Schritt auf diese Eigenschaften zugreifen. Wenn der erste Schritt beispielsweise Step1 genannt wurde und die Ausgabeeigenschaften Status und Step1Prop angibt, könnten Sie einen Shell-Schritt mit dem folgenden Code erstellen, um auf diese Eigenschaften zuzugreifen:
echo Eigenschaften des vorherigen Schritts:
echo "${p:Step1/Status}"
echo "${p:Step1/Step1Prop}"
Der zweite Schritt kann auch diese Eigenschaften in seinem Nachverarbeitungsscript nutzen. Beispiel: Das folgende Nachverarbeitungsscript enthält die Eigenschaft Status des vorherigen Schritts in einer Eigenschaft für den zweiten Schritt:
{ 
properties.put("Step2Prop","Neue Eigenschaft");
properties.put("Status","OK"); 
properties.put("StatusOfPreviousStep","${p:Step1/Status}"); 
}

Feedback