DevOps -Subflows werden erstellt

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 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 ist eine Funktion Now Platform von [], 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 Subflows finden Sie unter Flow Designer Subflows.

    Subflow der Benachrichtigungsfähigkeit

    Artikel Erwarteter Wert
    Eingaben

    Bezeichnung: current

    Typ: Referenz.Eingehendes Ereignis

    Ausgaben

    N/V

    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
    Funktional:
    { 
    "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
    Flow des DevOps-Benachrichtigungscodierungstools

    Subflow der Connect-Fähigkeit

    Die Connect-Fähigkeit wird unterstützt.

    Artikel Erwarteter Wert
    Eingaben

    Bezeichnung: current

    Typ: Referenz.DevOps-Tool

    Tooldatensatz, für den auf die Schaltflächenaktion „ Verbinden“ geklickt wird.

    Ausgaben

    Siehe Subflow-Ausgaben.

    • Bezeichnung: verbunden

      Kennzeichnung, die angibt, ob die Verbindung mit dem Zieltool erfolgreich hergestellt wurde (wahr/falsch).

    • Bezeichnung: Fehlermeldung

      Zeichenfolgennachricht, die im Formular bei Verbindungsfehlern angezeigt wird. Bei erfolgreicher Verbindung ist die Variable eine leere Zeichenfolge.

    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
    Orchestration-Tool „DevOps Connect“.

    Subflow zum Erkennen der Fähigkeit

    Die Fähigkeit „Erkennen“ wird unterstützt.

    Artikel Erwarteter Wert
    Eingaben

    Bezeichnung: current

    Typ: Referenz.DevOps-Tool

    Ausgaben

    Siehe Subflow-Ausgaben.

    Ohne Paginierung:

    Bezeichnung: discoverypayload

    Typ: Array von Objekten als JSON-Zeichenfolge.

    (JSON.stringify([{},{}]))

    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.

    (JSON.stringify([{},{}]))

    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 
            } 
        } 
    } 
    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.
    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.
    Angehalten --
    Abgebrochen --
    Nicht abgeglichen --
    Abbildung : 3. DevOps Beispiel für Flow-Diagramm zur Fähigkeitserkennung – Planungstool
    DevOps – Plan-Tool-Flow erkennen
    Abbildung : 4. DevOps Erkennen Sie die Fähigkeit mit dem Flow-Diagramm zur Unterstützung der Paginierung
    Flow-Diagramm eines typischen Erkennungs-Flows mit Paginierungsunterstützung

    Aktion „Importanforderung aktualisieren Workflow-Studio “ [].

    Sie können die Aktion Importanforderung aktualisieren in Ihrem Subflow „Erkennen“ verwenden, um den Status des Importanforderungsdatensatzes bei Bedarf zu ändern.

    Eingabebezeichnung Typ
    aktuell

    Referenz.Importanforderung

    state (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
    details (Zeichenfolge)