---
sourceDocument: Yokohama IT-Servicemanagement
sourceDocumentLink: https://www.servicenow.com/docs/r/de-DE/yokohama/it-service-management

 Release :

    - yokohama

ft:locale :

    - de-DE

ft:publication_title :

    - Yokohama IT-Servicemanagement

ft:clusterId :

    - itsm

bundleId :

    - itsm

workflow :

    - Technology


---

# Jenkins Pipeline-Aktionen

# Jenkins Pipeline-Aktionen {#ariaid-title1}

* Freigeben Version: Yokohama
* 
* Aktualisiert 30. Januar 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 14 Minuten Lesedauer

Verwenden Sie diese Aktionen in JenkinsPipeline, die mit interagiert werden soll DevOps ConfigDatenmodell.  
Wichtig:  
Ab dem Release Washington DC wird DevOps Config auf den Übergang in den Zustand „Veraltet" vorbereitet. Es wird ausgeblendet und in neuen Instanzen nicht mehr installiert, aber weiterhin unterstützt. Weitere Informationen finden Sie im Artikel [Deprecation Process \[KB0867184\]](https://support.servicenow.com/kb_view.do?sysparm_article=KB0867184) (Abkündigungsprozess) in der Now Support Knowledge Base.

Jenkins Geskriptete und deklarative Piplines werden unterstützt.  
Diese Aktionen werden bereitgestellt, um eine bestimmte Pipeline-Definition zu erstellen, um Ihr Ziel zu erreichen. Fügen Sie einen Befehl zu hinzu JenkinsDatei zum Ausführen dieser Aktionen.

* SnDevOpsConfigKombinierte Aktion zum Hochladen, Validieren und Veröffentlichen von Konfigurationsdaten.

* SnDevOpsConfigUploadLaden Sie Konfigurationsdaten in hoch DevOps ConfigÜber Mitarbeiterauftrag.

* SnDevOpsConfigGetSnapshotsRuft Snapshots für ein bestimmtes bereitstellbares Element oder alle betroffenen bereitstellbaren Elemente ab.

* SnDevOpsConfigPublishVeröffentlichen Sie einen Snapshot für die angegebene Anwendung und das bereitstellbare Element.

* SnDevOpsConfigExportExportieren Sie einen Snapshot für eine bestimmte Anwendung und ein bestimmtes bereitstellbares Element.

* SnDevOpsConfigRegisterPipelineBinden Sie ein Changeset und/oder einen Snapshot an eine Pipeline-Ausführung.

* SnDevOpsConfigValidierenValidieren Sie Konfigurationsdaten anhand Ihrer Organisationsrichtlinien.

* SnDevOpsChangeErstellen Sie eine Change-Anforderung mit angehängtem zugehörigem Snapshot.

{#devops-config-jenkins-integration__ul_fp5_1qf_psb}

## SnDevOpsConfig {#devops-config-jenkins-integration__section_iml_cxp_cyb}

Laden Sie Konfigurationsdatenänderungen in einem Schritt hoch, validieren und veröffentlichen Sie sie.

Diese Aktion kombiniert die Aktionen snDevOpsConfigUpload, snDevOpsConfigGetSnapshots und snDevOpsConfigRegisterPipeline in einer Aktion, anstatt jede Aktion separat ausführen zu müssen.

Eingabevariablen
:

    |-|-|
    | Konfigurationsdatei | Gibt die Konfigurationsdatendatei an, die in die Komponente oder den bereitstellbaren Pfad im Datenmodell hochgeladen werden soll. |
    | applicationName | Gibt die Anwendung an, in die Konfigurationsdaten hochgeladen werden. |
    | Ziel | Gibt das Datenmodellziel an, in das Konfigurationsdaten hochgeladen werden (Beispiel: <kbd class="ph userinput">Komponente </kbd>, <kbd class="ph userinput">Sammlung </kbd>, <kbd class="ph userinput">Bereitstellbar </kbd>). |
    | Sammlungsname | (Optional) Name der Sammlung, in die hochgeladen werden soll (erforderlich, wenn das Ziel „Sammlung" ist). |
    | Bereitstellbarer Name | (Optional) Name des bereitstellbaren Elements, in das hochgeladen werden soll (erforderlich, wenn das Ziel bereitstellbar ist). |
    | namePath | Gibt den Namenspfad im Datenmodell an, in den Konfigurationsdaten hochgeladen werden. Hinweis: Beim Hochladen in einen vars-Ordner müssen Sie den Namenspfad mit „vars/" starten, um den Variablenordnerpfad anzugeben. |
    | Datenformat | Gibt das Datenformat der Konfigurationsdatei an (z. B. <kbd class="ph userinput">JSON </kbd>, <kbd class="ph userinput">YAML </kbd>, <kbd class="ph userinput">XML </kbd>, Usw.) |
    | Automatisches Commit | Gibt an, ob Konfigurationsdaten nach dem Upload (wahr/falsch) bestätigt werden sollen. Der Standardwert ist „wahr". |
    | Automatisch validieren | Gibt an, ob Konfigurationsdaten während des Commits validiert werden sollen (wahr/falsch). Der Standardwert ist „wahr". |
    | Automatisch veröffentlichen | Gibt an, ob die Konfigurationsdaten nach der Validierung veröffentlicht werden sollen (wahr/falsch). Der Standardwert ist „wahr". |
    | changesetNumber | (Optional) gibt das (offene) Changeset an, dem diese Upload-Aktivität zugeordnet ist. Wenn nicht angegeben, wird ein neues Changeset erstellt. Hinweis: Wird nur für mehrere Upload-Szenarien verwendet. |
    | Als fehlgeschlagen markiert | (Optional) schlägt die Pipeline fehl, wenn der Validierungsversuch fehlgeschlagen ist (aufgrund eines Back-End-Problems). |
    | Ergebnisse anzeigen | (Optional) Validierungsergebnisse in anzeigen JenkinsProtokoll der Auftragskonsole. |
    | ContinueWithLatest | (Optional) gibt an, ob der neueste Snapshot gemäß zurückgegeben werden soll <kbd class="ph userinput">ApplicatioName </kbd>-- <kbd class="ph userinput">Bereitstellbarer Name </kbd>-- <kbd class="ph userinput">ChangesetNumber </kbd>Kombination, wenn keine Snapshots generiert werden (wahr/falsch). Der Standardwert ist „falsch". |
    [ ]

    {#devops-config-jenkins-integration__table_mqp_lxp_cyb}

Ausgabe
:
    * Wenn erfolgreich, ein Snapshot oder eine Reihe von Snapshots.
    * Bei einem Fehler wird eine API/Back-End-Fehlermeldung angezeigt.
    {#devops-config-jenkins-integration__ul_gxy_sxh_2yb}

Beispiel
:
    * Eingabe:  


          snapshotObj = snDevOpsConfig(
               applicationName: "PaymentDemo",
               configFile: "config/application/Collection/Collection2/*.json",
               target: "collection",
               collectionName: "release-1.0",
               namePath: "settings/infrastructure/database",
               dataFormat: "json",
               autoCommit: 'true',
               autoValidate: 'true',
               autoPublish: 'true',
               continueWithLatest: 'true',
               markFailed: 'true',
               showResults: 'false'
          )

          echo"*************************\n ${snapshotObj}"

    * Ausgabe
    {#devops-config-jenkins-integration__ul_hlr_2y5_2yb}

Beispiel: Sammlung
:   Hinweis:  
    Beim Hochladen in eine Sammlung wird <kbd class="ph userinput">Sammlungsname </kbd>Argument ist erforderlich.


        snDevOpsConfig(
             applicationName: 'PaymentDemo',
             target: 'collection',
             collectionName: 'release-1.0',
             namePath: 'web-api-v1.0',
             configFile: 'k8s/helm/*.yml',
             dataFormat: 'yaml',
             autoCommit: 'true',
             autoValidate: 'true',
             autoPublish: 'true'
        )

Beispiel: Bereitstellbar
:   Hinweis:  
    Beim Hochladen in ein bereitstellbares Element wird <kbd class="ph userinput">Bereitstellbarer Name </kbd>Argument ist erforderlich.


        snDevOpsConfig(
             applicationName: 'PaymentDemo',
             target: 'deployable',
             deployableName: 'Production',
             namePath: 'web-api-v1.0',
             configFile: 'k8s/helm/*.yml',
             dataFormat: 'yaml',
             autoCommit: 'true',
             autoValidate: 'true',
             autoPublish: 'true'
        )

Mehrere Uploads in einem Commit

:   Um Konfigurationsdaten von verschiedenen Standorten hochzuladen oder einen Satz von Daten in mehrere Ziele (z. B. eine Komponente, ein bereitstellbares Element) hochzuladen, die als einzelner Commit in Ihr Datenmodell nachverfolgt werden, können Sie aufrufen <kbd class="ph userinput">SnDevOpsConfigUpload </kbd>Aktion so oft wie erforderlich für den ersten Satz von Uploads, dann aufrufen <kbd class="ph userinput">SnDevOpsConfig </kbd>Aktion für den endgültigen Upload. ​

    Hier ist ein Beispiel.  
    * Erstellen Sie beim ersten Upload eine Variable (z. B. $Changeset), und weisen Sie ihr den Rückgabewert des Schritts zu, damit er in nachfolgenden Uploads wiederverwendet werden kann​.

      1 hochladen -- XML-Datei in Komponente:


          $changeset = snDevOpsConfigUpload(
               applicationName: 'PaymentDemo',
               target: 'component',
               namePath: 'paymentService-v1.0',
               configFile: 'infra/v1/config.xml',
               dataFormat: 'xml',
               autoCommit: 'false',
               autoValidate: 'false',
               autoPublish: 'false'
          )

    * Verwenden Sie bei nachfolgenden Uploads (und abschließendem Upload) die Variable als Eingabe​.

      Upload 2: JSON-Datei in vars-Ordner des bereitstellbaren Elements:


          snDevOpsConfig(
               applicationName: 'PaymentDemo',
               target: 'deployable',
               deployableName: 'Production',
               namePath: 'vars/dbSettings',
               configFile: 'infra/prod/dbConfig.json',
               dataFormat: 'json',
               changesetNumber: "${changeset}",
               autoCommit: 'false',
               autoValidate: 'false',
               autoPublish: 'false',
               continueWithLatest: 'true'
          )

    {#devops-config-jenkins-integration__ul_urp_fzh_2yb}

Laden Sie mehrere Datenformate hoch
:   Um Konfigurationsdaten in verschiedenen Dateiformaten hochzuladen, können Sie aufrufen <kbd class="ph userinput">SnDevOpsConfig </kbd>Aktion mit diesen Spezifikationen.

    * Stellen Sie sicher, dass <kbd class="ph userinput">Konfigurationsdatei </kbd>Argument verwendet einen Platzhalter im Pfad.
    * Geben Sie nicht an <kbd class="ph userinput">Datenformat </kbd>Argument.
    {#devops-config-jenkins-integration__ul_zbp_1zg_2zb}

    Hier ist ein Beispiel.

    * Nehmen wir an, wir haben diese Konfigurationsdateien.

    * So laden Sie die Konfigurationsdateien mit hoch <kbd class="ph userinput">SnDevOpsConfig </kbd>.  


          snDevOpsConfig(
               applicationName: 'PaymentDemo',
               target: 'component',
               namePath: 'paymentService-v1.0',
               configFile: 'infra/v1/*',
               autoCommit: 'true',
               autoValidate: 'true',
               autoPublish: 'true'
          )

    {#devops-config-jenkins-integration__ul_lnt_xxg_2zb}

## SnDevOpsConfigUpload {#devops-config-jenkins-integration__section_f12_1lb_ypb}

Mit dieser Aktion wird eine Konfigurationsdatei an einen bestimmten Speicherort innerhalb eines Anwendungsdatenmodells hochgeladen.

Es soll iterativ für alle Konfigurationsdateien verwendet werden, die während der Pipeline in das Anwendungsdatenmodell hochgeladen werden sollen.  
Unterstützt:

* Hochladen in:
  * Eine Komponente, eine Sammlung oder ein bereitstellbares Element.
  * Der Variablenordner (vars) einer Komponente, einer Sammlung oder eines bereitstellbaren Elements.
  {#devops-config-jenkins-integration__ul_wwn_5tk_dwb}
* Muster des regulären Ausdrucks für Konfigurationsdateieingabe.
* Möglichkeit, mehrmals in derselben Pipeline aufgerufen zu werden.
{#devops-config-jenkins-integration__ul_bph_ysg_hvb}

Eingabevariablen
:

    |-|-|
    | Konfigurationsdatei | Gibt die Konfigurationsdatendatei an, die in die Komponente oder den bereitstellbaren Pfad im Datenmodell hochgeladen werden soll. |
    | applicationName | Gibt die Anwendung an, in die Konfigurationsdaten hochgeladen werden. |
    | Ziel | Gibt das Datenmodellziel an, in das Konfigurationsdaten hochgeladen werden (Beispiel: <kbd class="ph userinput">Komponente </kbd>, <kbd class="ph userinput">Sammlung </kbd>, <kbd class="ph userinput">Bereitstellbar </kbd>). |
    | Sammlungsname | (Optional) Name der Sammlung, in die hochgeladen werden soll (erforderlich, wenn das Ziel „Sammlung" ist). |
    | Bereitstellbarer Name | Name des bereitstellbaren Elements, in das hochgeladen werden soll (erforderlich, wenn das Ziel bereitstellbar ist). |
    | namePath | Gibt den Namenspfad im Datenmodell an, in den Konfigurationsdaten hochgeladen werden. Hinweis: Beim Hochladen in einen vars-Ordner müssen Sie den Namenspfad mit „vars/" starten, um den Variablenordnerpfad anzugeben. |
    | Datenformat | Gibt das Datenformat der Konfigurationsdatei an (z. B. <kbd class="ph userinput">JSON </kbd>, <kbd class="ph userinput">YAML </kbd>, <kbd class="ph userinput">XML </kbd>, Usw.) |
    | ConvertPath | (Optional) gibt an, ob die Verzeichnisstruktur von Konfigurationsdateien (in Bezug auf den Arbeitsbereich) beibehalten und das Verzeichnis in Pfade innerhalb des Datenmodells konvertiert werden soll. |
    | changesetNumber | (Optional) gibt das (offene) Changeset an, dem diese Upload-Aktivität zugeordnet ist. Wenn nicht angegeben, wird ein neues Changeset erstellt. Hinweis: Wird nur für mehrere Upload-Szenarien verwendet. |
    | Automatisches Commit | Gibt an, ob Konfigurationsdaten nach dem Upload (wahr/falsch) bestätigt werden sollen. Der Standardwert ist „falsch". |
    | Automatisch validieren | Gibt an, ob Konfigurationsdaten während des Commits validiert werden sollen (wahr/falsch). Der Standardwert ist „falsch". |
    [ ]

    {#devops-config-jenkins-integration__table_ct3_qqf_psb}

Ausgabevariable
:

    |-|-|
    | changesetNumber | (Optional) gibt das (offene) Changeset an, dem diese Upload-Aktivität zugeordnet ist. Wenn keine Changeset-Nummer angegeben wird, wird ein neues Changeset erstellt. |
    [ ]

    {#devops-config-jenkins-integration__table_iz5_2ng_hvb}

Beispiel
:
    * Eingabe:Hier ist ein Beispiel für <kbd class="ph userinput">SnDevOpsConfigUpload </kbd>Aktion. Zur Illustration weisen wir die Antwort einer Variablen zu, <kbd class="ph userinput">ChangeSet-ID </kbd>, Die für Debugging-Szenarien in unser Konsolenprotokoll übernommen werden könnten.


          changeSetId = snDevOpsConfigUpload(
               applicationName: "PaymentDemo",
               target: 'component',
               namePath: "web-api-v1.0",
               configFile: "k8s/helm/values.yml",
               dataFormat: "json",
               autoCommit: 'true',
               autoValidate: 'true'
          )

          echo "Changeset: $changeSetId created"

    * Ausgabe:Zusätzlich zu den Daten, die in unser Datenmodell in hochgeladen werden DevOps Config, Die Ausgabe würde so aussehen (mit dem Plugin „Blauer Ozean" zur Visualisierung der Konsolenausgabe).

    {#devops-config-jenkins-integration__ul_tqb_n4l_yxb}

Beispiel -- mehrere Uploads (Komponente)
:   Sie können die Upload-Aktion mehrmals aufrufen, um Konfigurationsdaten in verschiedenen Dateiformaten von verschiedenen Standorten hochzuladen, während die Uploads weiterhin Teil eines Changesets bleiben.

    * Benennen Sie im ersten Upload die Aktion, damit die Ausgabevariable „changesetNumber" in nachfolgenden Uploads wiederverwendet werden kann.  
      YAML-Datei hochladen:


          $changeset = snDevOpsConfigUpload(
               applicationName: 'PaymentDemo',
               target: 'component',
               namePath: 'wep-api-v1.0',
               configFile: 'k8s/helm/values.yml',
               dataFormat: 'yaml',
               autoCommit: 'false',
               autoValidate: 'false'
          )

    * Verweisen Sie bei nachfolgenden Uploads auf die Ausgabevariable changesetNumber aus dem ersten Upload als Eingabevariable.  
      3 JSON-Dateien hochladen:


          snDevOpsConfigUpload(
               applicationName: 'PaymentDemo',
               target: 'component',
               namePath: 'wep-api-v1.0',
               configFile: 'infra/*.json',
               dataFormat: 'json',
               autoCommit: 'false',
               autoValidate: 'false',
               changesetNumber: "${changeset}"
          )

    * Legen Sie im abschließenden Aufruf nicht nur die Ausgabevariable „changesetNumber" vom ersten Upload als Eingabevariable fest, sondern auch „autocommit" und „autoValidate" auf" fest <kbd class="ph userinput">Wahr </kbd>.  
      INI-Datei hochladen:


          snDevOpsConfigUpload(
               applicationName: 'PaymentDemo',
               target: 'component',
               namePath: 'wep-api-v1.0',
               configFile: 'featureToggles/set1.ini',
               dataFormat: 'ini',
               autoCommit: 'true',
               autoValidate: 'true',
               changesetNumber: "${changeset}"
          )

    {#devops-config-jenkins-integration__ul_hwg_rng_hvb}

Beispiel -- mehrere Uploads (Sammlung und vars)
:   Sie können die Upload-Aktion mehrmals aufrufen, um Konfigurationsdaten in verschiedenen Dateiformaten von verschiedenen Standorten hochzuladen, während die Uploads weiterhin Teil eines Changesets bleiben.

    * Erstellen Sie beim ersten Upload eine Variable (z. B. $Changeset), und weisen Sie ihr den Rückgabewert des Schritts zu, damit er in nachfolgenden Uploads wiederverwendet werden kann.  
      XML-Datei hochladen:


          $changeset = snDevOpsConfigUpload(
               applicationName: 'PaymentDemo',
               target: 'collection',
               collectionName: 'release-v1.0',
               namePath: 'v1-common-configs',
               configFile: 'infra/v1/config.xml',
               dataFormat: 'xml',
               autoCommit: 'false',
               autoValidate: 'false'
          )

    * Verwenden Sie bei nachfolgenden Uploads die Variable als Eingabe.  
      JSON-Datei hochladen:


          snDevOpsConfigUpload(
               applicationName: 'PaymentDemo',
               target: 'deployable',
               deployableName: 'Production',
               namePath: 'vars/dbSettings',
               configFile: 'infra/prod/dbConfig.json',
               dataFormat: 'json',
               autoCommit: 'true',
               autoValidate: 'true',
               changesetNumber: "${changeset}"
          )

    {#devops-config-jenkins-integration__ul_ofk_4qm_dwb}

    Hinweis:  
    Zum Hochladen in einen Variablenordner muss „uploadTarget" auf festgelegt sein <kbd class="ph userinput">Bereitstellbar </kbd>, Und die richtigen Werte müssen für „deploy ableName" und „changesetNumber" festgelegt werden.

## SnDevOpsConfigGetSnapshots {#devops-config-jenkins-integration__section_ics_2rf_psb}

Diese Aktion ist für die Verwendung in verschiedenen Szenarien vorgesehen:

* Ruft alle Snapshots für alle betroffenen bereitstellbaren Elemente ab.Wenn Konfigurationsdateien in ein Anwendungsdatenmodell hochgeladen werden, erstellt das System Snapshots für alle bereitstellbaren Elemente, die vom Upload betroffen sind. Wenn beim letzten Upload-Aufruf die Validierung aktiviert war, wird im nächsten Schritt die Liste der Snapshots iteriert und sichergestellt, dass alle die Validierung bestanden haben.

* Ruft einen bestimmten Snapshot ab.Nach dem CD-Flow wird ein bestimmter Snapshot abgerufen, damit er veröffentlicht und dann exportiert werden kann, um ihn nachgelagert zu verwenden (z. B. um Infrastruktur oder Anwendung bereitzustellen).

* Ruft die neuesten Snapshots für ein bereitstellbares Element einer Anwendung ab, falls ein Upload keine Snapshots generiert.Eine Reihe von Konfigurationsdaten ist verfügbar, um in einer Umgebung für eine Kombination aus „Application-bereitstellbares-Changeset" bereitzustellen, wenn keine Konfigurationsänderungen vorgenommen werden.

* Zeigen Sie die Ergebnisse der Richtlinienvalidierung in einer Pipeline-Ausführung an.Zeigen Sie die Ergebnisse der Richtlinienvalidierung als Testergebnisse auf der Seite „Jenkins-Build-Testergebnisse" an, einschließlich „konform mit Ausnahme", wenn Sie einen Snapshot abrufen.

{#devops-config-jenkins-integration__ul_lgc_ry2_psb}

Eingabedefinitionen
:

    |-|-|
    | applicationName | Gibt die Anwendung an, in die Konfigurationsdaten hochgeladen oder Daten exportiert werden sollen. |
    | Bereitstellbarer Name | (Optional) gibt das bereitstellbare Element für die Anwendung an, für die die neuesten Snapshot-Daten abgerufen werden sollen. |
    | changesetNumber | (Optional) gibt die Changeset-ID für den Satz von Konfigurationsänderungen an, an denen der Anwender interessiert ist. |
    | Ist validiert | (Optional) gibt an, ob nur übergebene Snapshots oder mit Ausnahme (wahr/falsch) zurückgegeben werden sollen. Der Standardwert ist „wahr". |
    | ContinueWithLatest | (Optional) gibt an, ob der neueste Snapshot gemäß zurückgegeben werden soll <kbd class="ph userinput">ApplicatioName </kbd>-- <kbd class="ph userinput">Bereitstellbarer Name </kbd>-- <kbd class="ph userinput">ChangesetNumber </kbd>Kombination, wenn keine Snapshots generiert werden (wahr/falsch). Der Standardwert ist „falsch". |
    [ ]

    {#devops-config-jenkins-integration__table_hmn_3rf_psb}

Ausgabe
:
    * Wenn erfolgreich, ein Snapshot oder eine Reihe von Snapshots.
    * Bei einem Fehler wird eine API/Back-End-Fehlermeldung angezeigt.
    {#devops-config-jenkins-integration__ul_xhh_jqg_hvb}

Beispiel
:
    * Spezifischer Snapshot (angegeben):  


          $snapshots = snDevOpsConfigGetSnapshots(
               applicationName: 'PaymentDemo',
               deployableName: 'Production',
               changesetNumber: 'Chset-16',
               isValidated: 'true',
               continueWithLatest: 'true'
          )

    * Letzter validierter Snapshot (gibt den neuesten Snapshot für die Kombination aus Anwendung und bereitstellbarem Element zurück):  


          $snapshots = snDevOpsConfigGetSnapshots(
               applicationName: 'PaymentDemo',
               deployableName: 'Production',
               isValidated: 'true'
          )

    * Alle Changeset-Snapshots (gibt alle Snapshots für die Kombination aus Anwendung und bereitstellbarem Element zurück):  


          $snapshots = snDevOpsConfigGetSnapshots(
               applicationName: 'PaymentDemo',
               changesetNumber: 'Chset-16'
          )

    * Zeigen Sie die Ergebnisse der Richtlinienvalidierung in einer Pipeline-Ausführung an.  
      1. Weisen Sie dem Pfad der Datei eine Variable zu, die die Snapshot-Validierungsergebnisse enthält, die während generiert wurden <kbd class="ph userinput">SnDevOpsConfigGetSnapshots </kbd>Aktion.
      2. Rufen Sie an [JUnit-Aktion](https://plugins.jenkins.io/junit/)Zum Laden der Snapshot-Validierungsergebnisse in den Testabschnitt der Pipeline-Ausführung.

      {#devops-config-jenkins-integration__ol_zkz_gyz_mwb}


          stage('Validate') {
              steps {
          	script {
                     changeSetResults = snDevOpsConfigGetSnapshots( ... )
                     if (!changeSetResults) {
                        echo "No snapshots were created"
                     } else {
          	       def changeSetResultsObject = readJSON text: changeSetResults

          	       changeSetResultsObject.each {
                            snapshotName = it.name
                            snapshotObject = it
          	       }
          	       // STEP 1
          		validationResultsPath = "${snapshotName}_${currentBuild.projectName}_${currentBuild.number}.xml"
          	    }
          	}
              }
          }

          post {
              always {
                  // STEP 2
                  junit testResults: "${validationResultsPath}", skipPublishingChecks: true
              }
          }

    {#devops-config-jenkins-integration__ul_v33_4qg_hvb}

## SnDevOpsConfigPublish {#devops-config-jenkins-integration__section_mpv_lrf_psb}

Mit dieser Aktion wird ein Snapshot für die angegebene Anwendung und das bereitstellbare Element veröffentlicht. Von hier aus kann der Snapshot über den Exportprozess verbraucht werden.

Eingabedefinitionen
:

    |-|-|
    | applicationName | Gibt die Anwendung an, aus der Konfigurationsdaten veröffentlicht werden sollen. |
    | Bereitstellbarer Name | Gibt das bereitstellbare Element für die Anwendung an, aus der Konfigurationsdaten veröffentlicht werden sollen. |
    | snapshotName | Gibt den Namen des zu veröffentlichenden Snapshots an. |
    [ ]

    {#devops-config-jenkins-integration__table_i4g_xrf_psb}

Ausgabe
:
    * Wenn erfolgreich, „wahr".
    * Andernfalls falsch.
    {#devops-config-jenkins-integration__ul_m4r_nrg_hvb}

Beispiel
:


        snDevOpsConfigPublish(
             applicationName: 'PaymentDemo',
             deployableName: 'Production',
             snapshotName: 'Production-v23.dpl',
        )

## SnDevOpsConfigExport {#devops-config-jenkins-integration__section_i3w_ksf_psb}

Mit dieser Aktion wird ein Snapshot für die angegebene Anwendung und das bereitstellbare Element exportiert.

Der Anwender muss den Exporter, relevante Exporter-Argumente, das Exportformat (z. B. YAML, JSON usw.) und den Ausgabestandort für die exportierten Konfigurationsdaten angeben.

Von hier aus können die Konfigurationsdaten direkt als Eingabe für ein nachgelagertes Bereitstellungs- oder Bereitstellungstool in der Pipeline verwendet werden.

Eingabeargumente
:

    |-|-|
    | applicationName | Gibt die Anwendung an, aus der Daten exportiert werden sollen. |
    | Bereitstellbarer Name | Gibt die bereitstellbare Konfiguration für die Anwendung an, aus der Daten exportiert werden sollen. |
    | snapshotName | (Optional) gibt den Snapshot an, aus dem Daten exportiert werden sollen. Wenn kein Snapshot angegeben ist, wird der neueste Snapshot für das bereitstellbare Element verwendet. |
    | ExporterName | Gibt den Exporter an, der auf den Snapshot angewendet werden soll (z. B. <kbd class="ph userinput">UniqueCDIs </kbd>). |
    | ExporterArgumente | (Optional) gibt Argumente an, die zusammen mit dem Exporter verwendet werden sollen. |
    | Exportformat | Gibt das Format für den Export der Snapshot-Daten an (z. B. <kbd class="ph userinput">INI </kbd>, <kbd class="ph userinput">YAML </kbd>, <kbd class="ph userinput">EIGENSCHAFTEN </kbd>). |
    | fileName | Gibt die Datei an, in die Daten exportiert werden sollen (wird angenommen, dass sie sich im Arbeitsbereich befindet). Wenn kein Dateiname angegeben ist, wird standardmäßig eine Verkettung aus Anwendungsname und Name des bereitstellbaren Elements (plus Dateierweiterung) verwendet. |
    [ ]

    {#devops-config-jenkins-integration__table_syy_nsf_psb}

Ausgabe
:
    * Wenn erfolgreich, „wahr".
    * Andernfalls falsch.
    {#devops-config-jenkins-integration__ul_hfv_yrg_hvb}

Beispiel
:


        snDevOpsConfigExport(
             applicationName: 'PaymentDemo',
             deployableName: 'Production',
             snapshotName: 'Production-v23.dpl',
             exporterFormat: 'yaml',
             exporterName: 'returnAllData-now',
             exporterArgs: '',
             fileName: 'exported_file-Production-20220302.yml'
        )

## SnDevOpsConfigRegisterPipeline {#devops-config-jenkins-integration__section_c3m_vsf_psb}

Diese Aktion verknüpft ein Changeset und/oder einen Snapshot mit der Pipeline, sodass sie während der Pipeline-Ausführung nachverfolgt werden kann. In DevOps Change-Geschwindigkeit, Wird in der Pipeline-UI angezeigt.

Siehe [Beschleunigen Sie Ihre DevOpsChange-Prozess](https://www.servicenow.com/docs/OHJLAuDiecA3Xwgg2B58TA "Aktivieren Sie die Change-Beschleunigungsfunktion von DevOps Change-GeschwindigkeitFür die automatische Erstellung von Change-Anforderungen in Ihrer Pipeline und verwenden Sie Change-Genehmigungs-Flows und -Richtlinien, um die Genehmigung unter bestimmten Bedingungen zu automatisieren.")Für weitere Informationen zu DevOpsChange-Beschleunigungsfunktion.

Eingabeargumente
:

    |-|-|
    | applicationName | Gibt den Namen der Anwendung an. |
    | changesetNumber | (Optional) gibt das Changeset an, das der Pipeline-Ausführung zugeordnet werden soll. Hinweis: Geben Sie entweder „changesetNumber" oder „snapshotName" an, aber nicht beides. |
    | snapshotName | (Optional) gibt den Namen des Snapshots an, der der Pipeline-Ausführung zugeordnet werden soll. Hinweis: Geben Sie entweder „changesetNumber" oder „snapshotName" an, aber nicht beides. |
    [ ]

    {#devops-config-jenkins-integration__table_uql_ctf_psb}

Ausgabe
:
    * Wenn erfolgreich, „wahr".
    * Andernfalls falsch.
    {#devops-config-jenkins-integration__ul_urr_psg_hvb}

Beispiel
:
    * Eingabe:Hier ist ein Beispiel für <kbd class="ph userinput">SnDevOpsConfigRegisterPipeline </kbd>Aktion. Zur Illustration weisen wir die Antwort einer Variablen zu, <kbd class="ph userinput">ChangeSetRegResult </kbd>, Die für Debugging-Szenarien in unser Konsolenprotokoll übernommen werden könnten.


          changeSetRegResult = snDevOpsConfigRegisterPipeline(
               applicationName: "PaymentDemo",
               changesetNumber: "Chset-122"
          )

          echo "Pipeline registration result: ${changeSetRegResult}"

    * Ausgabe:Zusätzlich zu den Daten, die in unser Datenmodell in hochgeladen werden DevOps Config, Die Ausgabe würde so aussehen (mit dem Plugin „Blauer Ozean" zur Visualisierung der Konsolenausgabe).

    {#devops-config-jenkins-integration__ul_cc2_knl_yxb}

## SnDevOpsConfigValidieren {#devops-config-jenkins-integration__section_rsc_wdj_psb}

Validieren Sie Konfigurationsdaten anhand Ihrer Organisationsrichtlinien.

Eingabeargumente
:

    |-|-|
    | applicationName | Zu validierende Anwendung. |
    | Bereitstellbarer Name | Bereitstellbar für die Anwendung zur Validierung. |
    | snapshotName | (Optional) Name des zu validierenden Snapshots. |
    | Als fehlgeschlagen markiert | (Optional) schlägt die Pipeline fehl, wenn der Validierungsversuch fehlgeschlagen ist (aufgrund eines Back-End-Problems). |
    | Ergebnisse anzeigen | (Optional) Validierungsergebnisse in anzeigen JenkinsProtokoll der Auftragskonsole. |
    [ ]

    {#devops-config-jenkins-integration__table_e1d_zdj_psb}

Ausgabe
:
    * Wenn erfolgreich, keine Ausgabe.
    * Bei einem Fehler wird eine API/Back-End-Fehlermeldung angezeigt.
    {#devops-config-jenkins-integration__ul_dcv_1pg_hvb}

Beispiel
:
    * Spezifischer Snapshot (angegeben):  


          snDevOpsConfigValidate(
               applicationName: 'PaymentDemo',
               deployableName: 'Production',
               snapshotName: 'Production-v23.dpl',
          )

    * Letzter Snapshot (ruft den neuesten Snapshot für die Kombination aus Anwendung und bereitstellbarem Element ab und validiert ihn):  


          $changeset = snDevOpsConfigValidate(
               applicationName: 'PaymentDemo',
               deployableName: 'Production'
          )

    {#devops-config-jenkins-integration__ul_qgw_kpg_hvb}

## SnDevOpsChange {#devops-config-jenkins-integration__section_zk1_w5x_mxb}

Erstellen Sie eine Change-Anforderung, und hängen Sie einen Snapshot zur Referenz an.

Siehe [Beschleunigen Sie Ihre DevOpsChange-Prozess](https://www.servicenow.com/docs/OHJLAuDiecA3Xwgg2B58TA "Aktivieren Sie die Change-Beschleunigungsfunktion von DevOps Change-GeschwindigkeitFür die automatische Erstellung von Change-Anforderungen in Ihrer Pipeline und verwenden Sie Change-Genehmigungs-Flows und -Richtlinien, um die Genehmigung unter bestimmten Bedingungen zu automatisieren.")Für weitere Informationen zu DevOpsChange-Beschleunigungsfunktion.

Eingabeargumente
:

    |-|-|
    | applicationName | Gibt den Namen der Anwendung an. |
    | snapshotName | Gibt den Namen des Snapshots an, der der Change-Anforderung zugeordnet werden soll. |
    [ ]

    {#devops-config-jenkins-integration__table_w5k_x5x_mxb}

Beispiel
:


        snDevOpsChange(
             applicationName: 'PaymentDemo',
             snapshotName: 'Production-v23.dpl'
        )

## Beispiel für Jenkins-Pipeline {#devops-config-jenkins-integration__section_m1b_gvz_mwb}


    pipeline {
        environment {
            buildArtifactsPath = "build_artifacts/${currentBuild.number}"
            validationResultsPath = ""
        }

        agent any

        stages {
            // Initialize pipeline
            stage('Initialize') {
                steps {
                    script {
                        // DevOps Config application related information
                        appName = 'PaymentDemo'
                        deployableName = 'Production'
                        componentName = "web-api-v1.0"
                        collectionName = "release-1.0"
                        // Configuration file information
                        exportFormat = 'yaml'
                        configFilePath = "k8s/helm/values.yml"
                        // Exporter related information
                        exporterName = 'returnAllData-nowPreview' 
                        exporterArgs = ''
                        // Jenkins variables declared to be used in pipeline
                        exportFileName = "${buildArtifactsPath}/export_file-${appName}-${deployableName}-${currentBuild.number}.${exportFormat}"
                        changeSetId = ""
                        snapshotName = ""
                        snapshotObject = ""
                        isSnapshotValidateionRequired = false
                        isSnapshotPublisingRequired = false
                    }
                }
            }
                
            // Validate configuration data changes
            stage('Validate') {
                parallel {
                    stage('Config') {
                        stages('Config Steps') {
                            // Upload configuration data to DevOps Config
                            stage('Upload, Validate, & Publish') {
                                steps {
                                    sh "echo uploading and auto-validating configuration file: ${configFilePath}"
                                    script {
                                        changeSetResults = snDevOpsConfig(
                                            applicationName: "${appName}",
                                            target: 'component',
                                            namePath: "${componentName}",
                                            configFile: "${configFilePath}",
                                            dataFormat: "${configFileFormat}",
                                            autoCommit: 'true',
                                            autoValidate: 'true',
                                            autoPublish: 'true',
                                            isValidated: 'true',
                                            continueWithLatest: 'true',
                                            markFailed: 'true'
                                        )

                                        echo "Snapshots generated, validated, and published: ${changeSetResults}"

                                        def changeSetResultsObject = readJSON text: changeSetResults

                                        changeSetResultsObject.each {
                                            snapshotName = it.name
                                            snapshotObject = it
                                        }

                                        validationResultsPath = "${snapshotName}_${currentBuild.projectName}_${currentBuild.number}*.xml"
                                    }
                                }
                            }
                            // Export published snapshot to be used by downstream deployment tools
                            stage('Export') {
                                steps {
                                    script {
                                        // create build artifacts dir to store export file
                                        sh "mkdir -p ${buildArtifactsPath}"
                                        
                                        exportResponse = snDevOpsConfigExport(
                                            applicationName: "${appName}",
                                            snapshotName: "${snapshotObject.name}",
                                            deployableName: "${deployableName}",
                                            exporterFormat: "${exportFormat}",
                                            fileName: "${exportFileName}",
                                            exporterName: "${exporterName}",
                                            exporterArgs: "${exporterArgs}"
                                        )
                                    }
                                }
                            }
                        }
                    }
                }
            }
            
            // Create change request and attach snapshot for reference
            stage('Change Management') {
                steps {
                    script {
                        // Trigger change request
                        snDevOpsChange(
                            applicationName: "${appName}",
                            snapshotName: "${snapshotName}"
                        )
                    }     
                }
            }
        }
        // NOTE: attach snapshot validation results to run (if the snapshot fails validation)
        post {
            always {
                // attach policy validation results
                junit testResults: "${validationResultsPath}", skipPublishingChecks: true
            }
        }
    }


