하위 플로우 생성 DevOps

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기15분
  • 사용자 생성 통합의 경우 통합 중인 도구에서 데이터를 수집하고 변환하는 하위 플로우를 생성합니다 DevOps 워크플로우 스튜디오 .

    ServiceNow Flow DesignerNow Platform 통합 개발자가 일련의 작업을 사용하여 프로세스를 자동화하는 데 사용할 수 있는 기능입니다. 트리거 조건은 플로우를 시작하고 변수는 작업 간에 정보를 전달합니다.

    하위 플로우를 만드는 방법에 대한 자세한 내용은 Flow Designer 하위 플로우 를 참조하십시오.

    알림 역량 하위 플로우

    항목 예상 값
    입력

    레이블: current

    유형: Reference.Inbound 이벤트

    출력

    해당 사항 없음

    원래 페이로드를 변환하고 최종 페이로드를 transformed_payload 필드에 저장합니다.

    예상 표준 JSON 알림 역량 페이로드 - 계획 수립 도구
    주:
    JSON 페이로드의 버전 속성은 선택 사항입니다. 버전 속성을 제공하지 않아도 페이로드가 성공적으로 처리됩니다.
    {
      "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"
    }
    예상 표준 JSON 알림 역량 페이로드 - 코딩 도구
    {
      "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"
        }
      ]
    }
     
    예상 표준 JSON 알림 기능 페이로드 - 오케스트레이션 도구
    {
      "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"
    }
    
    예상 표준 JSON 알림 역량 페이로드 - 테스트 도구
    기능:
    { 
    "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", 
    } 
    
    공연:
    { 
    "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", 
    } 
    
    예상 표준 JSON 알림 역량 페이로드 - 아티팩트 도구
    파이프라인:
    {
      "artifacts": [
        {
          "name": "acm.jar",
          "version": "1.82",
          "semanticVersion": "1.82.0",
          "repositoryName": "acm-repo"
        }
      ],
      "pipelineName": "testMultiBranch/master",
      "taskExecutionNumber": "82",
      "stageName": "buildmbmaster",
      "branchName": "master"
    }
    
    Jenkins 자유형 / Maven 프로젝트 :
    {
      "artifacts": [
        {
          "name": "mav1.jar",
          "version": "1.11",
          "semanticVersion": "1.11.0",
          "repositoryName": "mav-repo"
        }
      ],
      "projectName": "maven-test-proj",
      "taskExecutionNumber": "11"
    }
    
    그림 1. DevOps 알림 역량 플로우 다이어그램 예시 - 코딩 도구
    DevOps 알림 코딩 도구 플로우

    역량 하위 플로우 연결

    커넥트 기능이 지원됩니다.

    항목 예상 값
    입력

    레이블: current

    유형: Reference.DevOps 도구

    연결 버튼 작업을 클릭하는 도구 기록입니다.

    출력

    하위 플로우 출력을 참조하십시오.

    • 레이블: 연결됨

      대상 도구에 대한 연결의 성공 또는 실패를 나타내는 플래그입니다(예/아니오).

    • 레이블: errormessage

      연결 실패에 대해 양식에 표시되는 문자열 메시지입니다. 연결에 성공하면 변수는 빈 문자열입니다.

    도구 양식에 표시된 연결 오류:DevOps
    연결 실패
    하위 플로우가 성공적으로 실행되었지만 연결할 수 없습니다.
    오류: 도구별 연결 플로우에서 실패 상세 정보를 가져오지 못함
    알 수 없는 이유로 하위 플로우 실행에 실패했습니다.
    도구 연결 상태 업데이트 중 오류 발생
    알 수 없는 이유로 connection_state 속성을 업데이트할 수 없습니다.
    그림 2. DevOps 역량 플로우 다이어그램 연결 예시 - 오케스트레이션 도구
    DevOps 오케스트레이션 도구 연결

    역량 하위 플로우 검색

    검색 기능이 지원됩니다.

    항목 예상 값
    입력

    레이블: current

    유형: Reference.DevOps 도구

    출력

    하위 플로우 출력을 참조하십시오.

    페이지 매김 미사용:

    레이블: discoverpayload

    유형: JSON 문자열로 표시되는 객체 배열.

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

    페이지 매김이 없는 계획 수립 도구:

    [
    {
       "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"
    }
    ]
    페이지 매김이 없는 코딩 도구:
    [
      {
          "name": "nvm_repo",
          "url": "https://github.com/nvm_repo/"
      },
      {
          "name": "golang_util",
          "url": "https://github.com/golang_util/"
      }
    ];
    페이지 매김이 없는 오케스트레이션 도구:
    {
      "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"
        }
      ]
    }

    페이지 매김 사용:

    레이블: discoverpayload

    유형: JSON 문자열로 표시되는 객체 배열.

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

    샘플 JSON 형식:

    "pageInfo" : {
        "isLastPage" : true, 
        "discoverPayload" : {},
        “pageDetails” : {}
    }
    페이지 매김 기능이 있는 계획 수립 도구:
    {               
        "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
            }
        }
    }
    페이지 매김 기능이 있는 코딩 도구:
    {
        "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
            }
        }
    }
    페이지 매김 기능이 있는 오케스트레이션 도구:
    { 
        "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 
            } 
        } 
    } 
    검색 메인 플로우는 임포트 요청 기록을 생성하는 동안 트리거됩니다. 임포트 요청에는 다음과 같은 상태와 메시지가 있습니다.
    상태 메시지
    요청됨 --
    처리 중 --
    완료됨

    객체 <번호> 업데이트됨

    toolId가 잘못된 객체 <number> 찾음

    확인에 실패한 객체 <수> 찾음

    오류
    • 하위 플로우에서 페이로드 문자열을 구문 분석할 수 없음
    • DiscoverPayload는 객체의 배열이어야 합니다.
    • ImportRequest 기록에 도구 테이블에 대한 참조가 없습니다
    일시 중지됨 --
    취소됨 --
    일치하지 않음 --
    그림 3. DevOps 역량 플로우 다이어그램 검색 예시 - 계획 수립 도구
    DevOps 계획 도구 플로우 검색
    그림 4. DevOps 페이지 매김 지원으로 역량 검색 플로우 다이어그램
    페이지 매김이 지원되는 일반적인 검색 플로우의 플로우 다이어그램

    임포트 요청 워크플로우 스튜디오 작업 업데이트

    원하는 경우 검색 하위 플로우에서 임포트 요청 업데이트 작업을 사용하여 임포트 요청 기록 상태를 수정할 수 있습니다.

    입력 레이블 유형
    current

    참조.임포트 요청

    상태 (문자열)
    • requested
    • 처리 중
      주:
      상태가 처리로 설정되면 플로우 실행이 중지됩니다(하위 플로우에서 반환이 수신되면).
    • 완료됨
    • 오류
    • 일시 중지됨
    • 취소됨
    • 일치하지 않는
    상세 정보 (문자열)