---
sourceDocument: Xanadu IT Service Management
sourceDocumentLink: https://www.servicenow.com/docs/r/de-DE/xanadu/it-service-management

 Release :

    - xanadu

ft:locale :

    - de-DE

ft:publication_title :

    - Xanadu IT Service Management

ft:clusterId :

    - itsm

bundleId :

    - itsm

workflow :

    - Technology


---

# DevOps -Subflows werden erstellt

# DevOps -Subflows werden erstellt {#ariaid-title1}

* Freigeben Version: Xanadu
* 
* Aktualisiert 1. August 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 4 Minuten Lesedauer

Erstellen Sie für vom Anwender erstellte Integrationen einen DevOps Workflow-Studio -Subflow, um Daten aus dem zu integrierenden Tool zu sammeln und zu transformieren.

ServiceNow [Flow Designer](https://www.servicenow.com/docs/access?context=flow-designer&version=xanadu&pubname=xanadu-application-development&ft:locale=en-US) ist eine Funktion von Now Platform, mit der Ihr Integrationsentwickler Prozesse anhand einer Reihe von Aktionen automatisieren kann. Auslöserbedingungen starten den Flow, und Variablen übergeben Informationen zwischen Aktionen.

Informationen zum Erstellen eines [Flow Designer](https://www.servicenow.com/docs/access?context=flow-designer&version=xanadu&pubname=xanadu-application-development&ft:locale=en-US) [Subflows](https://www.servicenow.com/docs/access?context=subflows&version=xanadu&pubname=xanadu-build-workflows&ft:locale=en-US) finden Sie unter Subflows.

## Subflow der Benachrichtigungsfähigkeit {#creating-dev-ops-subflows__section_ep4_txg_w3b}

{#creating-dev-ops-subflows__table_hbx_dn1_1kb__entry__2}

| Element | Erwarteter Wert |
|-|-|
| Eingaben | Bezeichnung: current Typ: Referenz.Eingehendes Ereignis |
| Ausgaben | N/V |
[ ]

{#creating-dev-ops-subflows__table_hbx_dn1_1kb}

Transformieren Sie die ursprüngliche Nutzlast, und speichern Sie die endgültige Nutzlast im Feld transform_payload.

Erwartete Nutzlast der Standard-JSON-Benachrichtigungsfähigkeit -- Planungstool
:   Hinweis:  
    Das Versionsattribut in der JSON-Nutzlast ist optional. Auch wenn Sie das Versionsattribut nicht angeben, wird die Nutzlast erfolgreich verarbeitet.

        {
          "id": "STR1234",
          "type": "Story",
          "shortDescription": "Planning API Spec",
          "state": "In-progress",
          "createdDateTime": "1970-01-01T08:15:30-05:00",
          "assignedTo": {
            "name": "Leo Neo",
            "userName": "lenn",
            "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "email": "lenn@smithworksinc.com"
          },
        // The Version attribute is optional
          "version": {
              "id": "REL1234",
              "shortDescription": "APIs Release",
              "createdDateTime": "1970-01-01T08:15:30-05:00",
              "app": {
                  "id": "PRODUCT1234",
                  "shortDescription": "Mobile UI",
                  "createdDateTime": "1970-01-01T08:15:30-05:00",
                  "url": "https://jira.com/mycompany/browse/PRODUCT-125"
                },
              "url": "https://jira.com/mycompany/browse/REL-125"
            },
          "app": {
              "id": "PRODUCT1234",
              "shortDescription": "Mobile UI",
              "createdDateTime": "1970-01-01T08:15:30-05:00",
              "url": "https://jira.com/mycompany/browse/PRODUCT-125"
            },
          "url": "https://jira.com/mycompany/browse/HALOKEY-25"
        }

Erwartete Standard-JSON-Benachrichtigungsfähigkeitsnutzlast -- Codierungstool
:

        {
          "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "url": "https://github.com/mycompany/mobileplatform/commit/3fa85f6457174562b3fc2c963f66afa6",
          "committedDate": "1970-01-01T08:15:30-05:00",
          "repository": {
            "name": "Platform-Mobile",
            "url": "https://github.com/mycompany/mobileplatform"
          },
         "branch": {
            "name": "master",
            "path": "refs/heads/master"
          },
          "committer": {
            "email": "lenn@smithworksinc.com"
          },
          "details": [
            {
              "additions": 0,
              "deletions": 0,
              "totalChanges": 0,
              "file": "src/test/java/com/mycompany/app/App.java",
              "action": "modified",
              "changes": "%40%40%20-30%2C6%20%2B30%2C18%20%40%40%20public%20void%20testAppConstructor%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%7D%0A%20%0A%2B%20%20%20%20%40Test%0A%2B%20%20%20%20public%20void%20testDatabase%28%29%0A%2B%20%20%20%20%7B%0A%2B%09%2F%2FThis%20is%20a%20test%20function%0A%2B%20%20%20%20%20%20%20%20App.main%28null%29%3B%0A%2B%20%20%20%20%20%20%20%20try%20%7B%0A%2B%20%20%20%20%20%20%20%20%20%20%20%20assertEquals%28%22Hello%20World%21%22%20%2B%20System.getProperty%28%22line.separator%22%29%2C%20outContent.toString%28%29%29%3B%0A%2B%20%20%20%20%20%20%20%20%7D%20catch%20%28AssertionError%20e%29%20%7B%0A%2B%20%20%20%20%20%20%20%20%20%20%20%20fail%28%22%22message%22%20is%20not%20%22Hello%20World%21%22%22%29%3B%0A%2B%20%20%20%20%20%20%20%20%7D%0A%2B%20%20%20%20%7D%0A%2B%0A%20%20%20%20%20%40Test%0A%20%20%20%20%20public%20void%20testAppMain%28%29%0A%20%20%20%20%20%7B"
            }
          ]
        }
         
Erwartete Nutzlast der Standard-JSON-Benachrichtigungsfähigkeit -- Orchestration-Tool
:

        {
          "toolId": "bc1d9454dbdb0810ae77f3c61d9619d1",
          "buildNumber": "100",
          "nativeId": "HILR/Prod #100",
          "name": "HILR/Prod",
          "id": "HILR/Prod #100",
          "url": "https://dev.azure.com/lenn/CorpSite-ADO/_build/results?buildId=100#Prod/",
          "isMultiBranch": "false",
          "orchestrationTaskUrl": "https://dev.azure.com/lenn/CorpSite-ADO/_build?name=HILR#Prod",
          "orchestrationTaskName": "CorpSite-ADO/HILR#Prod",
          "upstreamTaskUrl": "https://dev.azure.com/lenn/CorpSite-ADO/_build/results?buildId=100#UAT/",
          "upstreamId": "CorpSite-ADO/HILR#UAT",
          "result": "building",
          "startDateTime": "2020-03-20 22:59:27"
        }

Erwartete Nutzlast der Standard-JSON-Benachrichtigungsfähigkeit -- Test-Tool
:   Funktionell:

        { 
        "name": "CorpSite-selenium#55", 
        "duration": 78.802, 
        "passedTests": 4, 
        "failedTests": 0, 
        "skippedTests": 0, 
        "blockedTests": 0, 
        "totalTests": 4, 
        "startTime": "2020-06-30T18:12:31Z", 
        "finishTime": "2020-06-30T18:12:31Z", 
        "passingPercent": 100, 
         
         
        // Use Artifact OR Package OR Build + Stage + PipelineName Attributes 
        "packages": [{"name": "CorpSite-pkg1"}], 
        "artifacts": [{"name": "CorpSite-artifact", "version": "1.0.0"}], 
        "buildNumber": "55", 
        "stageName": "test", 
        "pipelineName": "CorpSite-selenium", 
        } 


    Leistung:

        { 
        "name": "Performance Tests", 
        "url": "http://abc.com", 
        "startTime": "2020-06-30T18:12:31Z", 
        "finishTime": "2020-06-30T18:12:31Z", 
        "duration": 78.802, 
        "maximumVirtualUsers": "", 
        "throughput": "", 
        "maximumTime": "", 
        "minimumTime": "", 
        "averageTime": "", 
        "ninetyPercent": "", 
        "standardDeviation": "", 
         
        // Use Artifact OR Package OR Build + Stage + PipelineName Attributes 
        "packages": [{"name": "CorpSite-pkg1"}], 
        "artifacts": [{"name": "CorpSite-artifact", "version": "1.0.0"}], 
        "buildNumber": "55", 
        "stageName": "test", 
        "pipelineName": "CorpSite-Performance", 
        } 

Erwartete Nutzlast der Standard-JSON-Benachrichtigungsfähigkeit -- Artefakt-Tool
:   Pipelines:

        {
          "artifacts": [
            {
              "name": "acm.jar",
              "version": "1.82",
              "semanticVersion": "1.82.0",
              "repositoryName": "acm-repo"
            }
          ],
          "pipelineName": "testMultiBranch/master",
          "taskExecutionNumber": "82",
          "stageName": "buildmbmaster",
          "branchName": "master"
        }


    Jenkins Freestyle-/Mven-Projekt:

        {
          "artifacts": [
            {
              "name": "mav1.jar",
              "version": "1.11",
              "semanticVersion": "1.11.0",
              "repositoryName": "mav-repo"
            }
          ],
          "projectName": "maven-test-proj",
          "taskExecutionNumber": "11"
        }

Abbildung : 1. DevOps Beispiel für das Flow-Diagramm der Benachrichtigungsfähigkeit -- Codierungstool

## Subflow der Connect-Fähigkeit {#creating-dev-ops-subflows__section_tkj_jzf_1kb}

Die Connect-Fähigkeit wird unterstützt.  
{#creating-dev-ops-subflows__table_xys_nm1_1kb__entry__2}

| Element | Erwarteter Wert |
|-|-|
| Eingaben | Bezeichnung: current Typ: Referenz.DevOps-Tool Tooldatensatz, für den auf die Schaltflächenaktion „ Verbinden " geklickt wird. |
| Ausgaben Siehe [Subflow-Ausgaben](https://www.servicenow.com/docs/access?context=subflows&version=xanadu&pubname=xanadu-build-workflows&ft:locale=en-US). | * Bezeichnung: verbundenKennzeichnung, die angibt, ob die Verbindung mit dem Zieltool erfolgreich hergestellt wurde (wahr/falsch). * Bezeichnung: FehlermeldungZeichenfolgennachricht, die im Formular bei Verbindungsfehlern angezeigt wird. Bei erfolgreicher Verbindung ist die Variable eine leere Zeichenfolge. {#creating-dev-ops-subflows__ul_v5t_sm1_1kb} |
[ ]

{#creating-dev-ops-subflows__table_xys_nm1_1kb}  
Verbindungsfehler, die im Toolformular DevOps angezeigt werden:

Verbindung fehlgeschlagen
:   Subflow wurde erfolgreich ausgeführt, aber die Verbindung konnte nicht hergestellt werden.

Fehler: Fehlerdetails aus dem Tool-spezifischen Verbindungs-Flow konnten nicht abgerufen werden
:   Die Ausführung des Subflows ist aus einem unbekannten Grund fehlgeschlagen.

Fehler beim Aktualisieren des Tool-Verbindungsstatus
: Das Attribut „connection_state" konnte aus einem unbekannten Grund nicht aktualisiert werden.  
Abbildung : 2. DevOps Beispiel für das Flow-Diagramm der Connect-Fähigkeit -- Orchestration-Tool

## Subflow zum Erkennen der Fähigkeit {#creating-dev-ops-subflows__section_sgn_lzf_1kb}

Die Fähigkeit „Erkennen" wird unterstützt.  
{#creating-dev-ops-subflows__table_acq_yj1_1kb__entry__2}

| Element | Erwarteter Wert |
|-|-|
| Eingaben | Bezeichnung: current Typ: Referenz.DevOps-Tool |
| Ausgaben Siehe [Subflow-Ausgaben](https://www.servicenow.com/docs/access?context=subflows&version=xanadu&pubname=xanadu-build-workflows&ft:locale=en-US). | Ohne Paginierung: Bezeichnung: discoverypayload Typ: Array von Objekten als JSON-Zeichenfolge. <kbd class="ph userinput">(JSON.stringify([{},{}]))</kbd> Planungstool ohne Paginierung: [ { "id":"REL1234567", "name": "REL NUMBERS", "url":"https://jira.com/vult/browse/REL1234567", "nativeId": "1790e6cc-085b-4529-9cb8-47f393182226" }, { "id":"TOR67", "name": "TOR 67", "url":"https://jira.com/welp/browse/TOR67", "nativeId": "482ce864-085b-4529-9cb8-47f393767eb2" } ] Codierungstool ohne Paginierung: [ { "name": "nvm_repo", "url": "https://github.com/nvm_repo/" }, { "name": "golang_util", "url": "https://github.com/golang_util/" } ]; Orchestration-Tool ohne Paginierung: { "orchestrationTasks": [ { "name": "Build_APC_1", "url": "https://jenkins.wsf.xyz/job/Build_APC_1", "projectName": "Build_APC_1" }, { "name": "CI_CD_Jenkins", "url": "https://pt1.jenkins.com/job/CI_CD_Jenkins", "projectName": "CI_CD_Jenkins" }, { "name": "CI_deploy", "url": "https://pt2.jenkins.com/job/CI_deploy", "projectName": "CI_deploy" } ], "pipelines": [ { "name": "Build_APC_1", "url": "https://jenkins.wsf.xyz/job/Build_APC_1", "projectName": "Build_APC_1" }, { "name": "CI_CD_Jenkins", "url": "https://pt1.jenkins.com/job/CI_CD_Jenkins", "projectName": "CI_CD_Jenkins" }, { "name": "CI_deploy", "url": "https://pt2.jenkins.com/job/CI_deploy", "projectName": "CI_deploy" } ] } Mit Paginierung: Bezeichnung: discoverypayload Typ: Array von Objekten als JSON-Zeichenfolge. <kbd class="ph userinput">(JSON.stringify([{},{}]))</kbd> Beispiel für JSON-Format: "pageInfo" : { "isLastPage" : true, "discoverPayload" : {}, "pageDetails" : {} } Planungstool mit Paginierung: { "pageInfo": { "isLastPage": false, "discoverPayload": [ { "id":"REL1234567", "name": "REL NUMBERS", "url":"https://jira.com/vult/browse/REL1234567", "nativeId": "1790e6cc-085b-4529-9cb8-47f393182226" }, { "id":"TOR67", "name": "TOR 67", "url":"https://jira.com/welp/browse/TOR67", "nativeId": "482ce864-085b-4529-9cb8-47f393767eb2" } ], "pageDetails": { "curPage" : 1, "nextPage": 2 } } } Codierungstool mit Paginierung: { "pageInfo": { "isLastPage": false, "discoverPayload": [ { "name": "nvm_repo", "url": "https://github.com/nvm_repo/" }, { "name": "golang_util", "url": "https://github.com/golang_util/" } ], "pageDetails": { "curPage" : 1, "nextPage": 2 } } } Orchestration-Tool mit Paginierung: { "pageInfo": { "isLastPage": false, "discoverPayload": { "orchestrationTasks": [ { "name": "Build_APC_1", "url": "https://jenkins.wsf.xyz/job/Build_APC_1", "projectName": "Build_APC_1" }, { "name": "CI_CD_Jenkins", "url": "https://pt1.jenkins.com/job/CI_CD_Jenkins", "projectName": "CI_CD_Jenkins" } ], "pipelines": [ { "name": "Build_APC_1", "url": "https://jenkins.wsf.xyz/job/Build_APC_1", "projectName": "Build_APC_1" } ] }, "pageDetails": { "curPage" : 1, "nextPage": 2 } } } |
[ ]

{#creating-dev-ops-subflows__table_acq_yj1_1kb}  
Der Haupt-Flow „Erkennen" wird während der Erstellung des Datensatzes für die Importanforderung ausgelöst. Eine Importanforderung weist diese Status und Nachrichten auf.{#creating-dev-ops-subflows__table_pjc_x5t_jkb__entry__2}

| Status | Nachricht |
|-|-|
| Angefordert | -- |
| In Verarbeitung | -- |
| Abgeschlossen | Aktualisiert\<number\> Objekt(e) Gefunden\<number\> Objekte mit ungültiger Tool-ID Gefunden\<number\> Objekte konnten nicht validiert werden |
| Fehler | * Nutzlastzeichenfolge aus Subflow kann nicht analysiert werden * „discoverypayload" muss ein Array von Objekten sein * ImportRequest-Datensatz enthält keinen Verweis auf Tooltabelle. {#creating-dev-ops-subflows__ul_tf3_vvt_jkb} |
| Angehalten | -- |
| Abgebrochen | -- |
| Nicht abgeglichen | -- |
[ ]

{#creating-dev-ops-subflows__table_pjc_x5t_jkb}  
Abbildung : 3. DevOps Beispiel für Flow-Diagramm zur Fähigkeitserkennung -- Planungstool  
Abbildung : 4. DevOps Erkennen Sie die Fähigkeit mit dem Flow-Diagramm zur Unterstützung der Paginierung

## Aktion „Importanforderung aktualisieren Workflow-Studio " \[\]. {#creating-dev-ops-subflows__section_tns_mzf_1kb}

Sie können die Aktion Importanforderung aktualisieren in Ihrem Subflow „Erkennen" verwenden, um den Status des Importanforderungsdatensatzes bei Bedarf zu ändern.  
{#creating-dev-ops-subflows__table_ncn_xs1_1kb__entry__2}

| Eingabebezeichnung | Typ |
|-|-|
| aktuell | Referenz.Importanforderung |
| Staat | (Zeichenfolge) * angefordert * Verarbeitung Hinweis: Die Flow-Ausführung wird gestoppt (nachdem die Rückgabe vom Subflow empfangen wurde), wenn der Status auf „In Verarbeitung" festgelegt ist. * abgeschlossen * Fehler * paused * Abgebrochen * nicht abgeglichen {#creating-dev-ops-subflows__ul_kbx_yt1_1kb} |
| details | (Zeichenfolge) |
[ ]

{#creating-dev-ops-subflows__table_ncn_xs1_1kb}

