스크립트 디버거 API

  • 릴리스 버전: Washingtondc
  • 업데이트 날짜 2024년 02월 01일
  • 읽기13분
  • 스크립트 디버거 API는 비즈니스 규칙 및 스크립트 포함과 같은 서버 측 JavaScript 코드 줄을 디버그하는 끝점을 제공합니다.

    스크립트 디버거에 대한 자세한 내용은 스크립트 디버거 및 세션 로그를 참조하십시오.

    이 API는 기본적으로 사용할 수 있습니다.

    스크립트 디버거 - GET /js/debugpoints/script/{tableName}/{sysId}/{fieldName}

    서버 측 스크립트(예: 비즈니스 규칙 또는 스크립트 포함)에서 중단점 또는 로그포인트 목록을 검색합니다.

    URL 형식

    기본 URL: /api/now/js/debugpoints/script/{tableName}/{ sysId}/{fieldName}

    지원되는 요청 매개변수

    표 1. 경로 매개변수
    이름 설명
    tableName 서버 측 스크립트가 포함된 테이블의 이름(예: sys_script 또는 sys_script_include)입니다.

    데이터 유형: 문자열

    sysId 서버 측 스크립트에 대한 Sys_id입니다.

    데이터 유형: 문자열

    fieldName 서버 측 스크립트 내용을 포함하는 필드의 이름입니다.

    데이터 유형: 문자열

    표 2. 쿼리 매개변수
    이름 설명
    없음
    표 3. 요청 본문 매개변수(XML 또는 JSON)
    이름 설명
    없음

    헤더

    다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 이 작업에 고유한 방식으로 적용됩니다. REST API에서 사용되는 일반 헤더 목록은 지원되는 REST API 헤더를 참조하세요.

    표 4. 요청 헤더
    헤더 설명
    수용 응답 본문의 데이터 형식입니다. 지원되는 유형은 application/json 또는 application/xml입니다.

    기본값: application/json

    표 5. 응답 헤더
    헤더 설명
    없음

    상태 코드

    다음 상태 코드는 이 HTTP 작업에 적용됩니다. REST API에서 사용할 수 있는 상태 코드 목록은 REST API HTTP 응답 코드를 참조하세요.

    표 6. 상태 코드
    상태 코드 설명
    200 성공입니다. 요청이 성공적으로 처리되었습니다.
    403 인증되지 않은 사용자입니다. 요청을 실행한 사용자에게 지정된 레코드에 대한 중단점 또는 로그포인트 정보에 액세스할 수 있는 권한이 없습니다.

    응답 본문 매개변수(JSON 또는 XML)

    이름 설명
    canWrite 현재 로그인한 사용자가 스크립트의 중단점을 설정 또는 수정할 수 있는지 여부를 나타내는 플래그입니다.
    가능한 값:
    • true: 중단점을 설정하거나 수정할 수 있습니다.
    • false: 중단점을 설정하거나 수정할 수 없습니다.

    데이터 유형: 부울

    디버그포인트 스크립트에 있는 모든 중단점 및 로그점의 목록입니다.
    "debugpoints": {
      "breakpoint": {Object}
      "logpoint": {Object}
    }

    데이터 유형: 객체

    debugpoints.breakpoint 키-값 쌍으로 표시되는 스크립트의 모든 중단점 목록입니다. 키는 중단점의 줄 번호입니다. 값은 중단점의 sys_id과 텍스트를 포함하는 개체입니다.
    "breakpoint": {
      <line_number>: {Object}
    }

    데이터 유형: 객체

    debugpoints.breakpoint.&lt;line_number> 중단점의 줄 번호입니다.
    <line_number>: {
      "evaluationString": "String"
      "sysId": "String"
    }

    데이터 유형: 객체

    debugpoints.breakpoint.&lt;line_number>.evaluationString 중단점의 텍스트입니다. 중단점이 조건부인 경우 evaluationString에는 조건 텍스트가 포함됩니다. 중단점이 조건부가 아닌 경우 evaluationString은 빈 문자열입니다.

    데이터 유형: 문자열

    debugpoints.breakpoint.&lt;line_number>.sysId 중단점의 Sys_id입니다.

    데이터 유형: 문자열

    디버그 포인트.logpoint 키-값 쌍으로 표시되는 스크립트의 모든 로그점 목록입니다. 키는 logpoint의 줄 번호입니다. 값은 logpoint의 sys_id과 텍스트를 포함하는 개체입니다.
    "logpoint": {
      <line_number>: {Object}
    }

    데이터 유형: 객체

    debugpoints.logpoint.&lt;line_number> Logpoint의 줄 번호입니다.
    <line_number>: {
      "evaluationString": "String"
      "sysId": "String"
    }

    데이터 유형: 객체

    debugpoints.logpoint.&lt;line_number>.evaluationString logpoint의 텍스트입니다. 기록되는 메시지가 들어 있습니다.

    데이터 유형: 문자열

    debugpoints.logpoint.&lt;line_number>.sysId 로그 지점의 Sys_id입니다.

    데이터 유형: 문자열

    디버깅 중인 스크립트에 대한 상세 정보를 제공하는 객체입니다.
    "key": {
      "scriptField": "String"
      "scriptId": "String"
      "scriptType": "String"
      "value": "String"
    }

    데이터 유형: 객체

    키.스크립트필드 스크립트가 포함된 필드의 이름입니다.

    데이터 유형: 문자열

    키.스크립트 ID 스크립트의 Sys_id입니다.

    데이터 유형: 문자열

    key.scriptType 스크립트가 포함된 테이블의 이름입니다.

    데이터 유형: 문자열

    키.값 요청을 수행하는 데 사용되는 경로 매개변수입니다. 다음 순서로 나열됩니다.
    • tableName
    • sysId
    • fieldName

    데이터 유형: 문자열

    이름 스크립트의 이름입니다.

    데이터 유형: 문자열

    스크립트 스크립트의 코드를 표시하는 텍스트입니다.

    데이터 유형: 문자열

    cURL 요청 예

    cURL 요청

    서버 측 스크립트에 대한 추적점 및 중단점 목록을 검색합니다. 이 스크립트의 2번째 줄에는 로그점, 11번째 줄에는 중단점, 18번째 줄에는 조건부 중단점이 있습니다.

    curl "https://instance.servicenow.com/api/now/js/debugpoints/script/sys_script_include/d65f78c40a0a0b6900196656f35913d3/script" \
    --request GET \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --user 'username':'password'
    {
      "result": {
        "canWrite": true,
        "debugpoints": {
          "LOGPOINT": {
            "2": {
              "evaluationString": "A log message",
              "sysId": "ba28b0fa739310101c233096fbf6a75e"
            }
          },
          "BREAKPOINT": {
            "11": {
              "evaluationString": "",
              "sysId": "dc5f5bf341256010f877587fbdf5ec1d"
            },
            "18": {
              "evaluationString": "a == true",
              "sysId": "3d4f5bf341256010f877587bdf5ecf6"
            }
          }
        },
        "script": "// script code",
        "name": "AbstractAjaxProcessor",
        "key": {
          "scriptType": "sys_script_include",
          "scriptId": "d65f78c40a0a0b6900196656f35913d3",
          "scriptField": "script",
          "value": "sys_script_include.d65f78c40a0a0b6900196656f35913d3.script"
        }
      }
    }

    스크립트 디버거 - POST js/debugpoints/process

    서버 측 스크립트(예: 비즈니스 규칙 또는 스크립트 포함)에서 중단점 또는 로그점을 추가, 업데이트 또는 제거합니다. 한 번에 여러 중단점 또는 추적점을 처리합니다.

    URL 형식

    기본 URL: / api/now/js/debugpoints/process

    지원되는 요청 매개변수

    표 7. 경로 매개변수
    이름 설명
    없음
    표 8. 쿼리 매개변수
    이름 설명
    모두 가져오기 true인 경우 사용자가 추가하거나 업데이트한 모든 중단점 또는 로그점의 목록을 반환합니다.

    데이터 유형: 부울

    기본값: false

    fetchAllFilter

    사용자가 추가하거나 업데이트한 모든 중단점 또는 로그포인트의 필터링된 목록을 반환합니다.

    유효한 값은 다음과 같습니다.
    • debugpointType입니다. 중단점 또는 추적점으로 설정합니다.
    • scriptId입니다. 디버그 지점을 검색할 스크립트의 sys_id으로 설정합니다.
    • 범위. 디버그 지점을 검색할 범위의 이름으로 설정합니다.

    캐럿(^) 기호를 여러 속성의 구분 기호로 사용합니다. 예: fetchAllFilter=debugpointType=logpoint^scope=MyApp

    데이터 유형: 문자열

    표 9. 요청 본문 매개변수(XML 또는 JSON)
    이름 설명
    debugpoint유형

    필수 추가, 삭제 또는 업데이트할 디버그 지점의 유형입니다.

    유효한 값은 다음과 같습니다.
    • 중단점
    • Logpoint

    데이터 유형: 문자열

    평가 문자열

    Logpoint 또는 조건부 중단점에 대한 텍스트입니다.

    logpoint의 경우 the evaluationString 는 로그 메시지입니다.

    조건부 중단점의 경우 는 evaluationString 조건입니다. 예를 들어 사용자 ID 목록을 반복하고 사용자 ID가 38493일 때만 디버거를 일시 중지하려는 경우 조건으로 userID == 38493 을 사용하여 루프 내에 조건부 중단점을 추가할 수 있습니다. 디버거는 조건이 true인 경우에만 이 중단점에서 일시 중지됩니다.

    중단점이 조건부 중단점이 아닌 경우 t evaluationString 는 빈 문자열입니다.

    데이터 유형: 문자열

    fieldName 필수 서버 측 스크립트 내용을 포함하는 필드의 이름입니다.

    데이터 유형: 문자열

    라인 번호 중단점 또는 로그점을 추가, 삭제 또는 업데이트할 위치를 지정하는 서버 쪽 스크립트의 줄 번호입니다.

    데이터 유형: 숫자

    운영 필수 중단점 또는 로그점에 대해 수행할 작업입니다.
    유효한 값은 다음과 같습니다.
    • add
    • 삭제
    • 업데이트

    데이터 유형: 문자열

    스크립트 ID 필수 서버 측 스크립트에 대한 Sys_id입니다.

    데이터 유형: 문자열

    tableName 필수 서버 측 스크립트가 포함된 테이블의 이름(예: sys_script 또는 sys_script_include)입니다.

    데이터 유형: 문자열

    헤더

    다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 이 작업에 고유한 방식으로 적용됩니다. REST API에서 사용되는 일반 헤더 목록은 지원되는 REST API 헤더를 참조하세요.

    표 10. 요청 헤더
    헤더 설명
    수용 응답 본문의 데이터 형식입니다. 지원되는 유형은 application/json 또는 application/xml입니다.

    기본값: application/json

    콘텐츠-형식 요청 본문의 데이터 형식입니다. 지원되는 유형은 application/json 또는 application/xml입니다.

    기본값: application/json

    표 11. 응답 헤더
    헤더 설명
    없음

    상태 코드

    다음 상태 코드는 이 HTTP 작업에 적용됩니다. REST API에서 사용할 수 있는 상태 코드 목록은 REST API HTTP 응답 코드를 참조하세요.

    표 12. 상태 코드
    상태 코드 설명
    200 성공입니다. 요청이 성공적으로 처리되었습니다.

    응답 본문 매개변수(JSON 또는 XML)

    이름 설명
    requestedDebugpoints 요청된 중단점 및 로그점의 목록입니다. 객체의 배열로 표시됩니다.
    "requestedDebugpoints": [
      {
        "scriptId": "String",
        "evaluationString": "String",
        "operation": "String",
        "tableName": "String",
        "fieldName": "String",
        "status": "String",
        "lineNumber": Number,
        "debugpointType": "String"
      }
    ]

    데이터 유형: 배열

    requestedDebugpoints.ScriptId 서버 측 스크립트에 대한 Sys_id입니다.

    데이터 유형: 문자열

    requestedDebugpoints.evaluationString Logpoint 또는 조건부 중단점에 대해 추가되는 텍스트입니다. logpoint의 경우 the evaluationString 는 로그 메시지입니다. 조건부 중단점의 경우 는 evaluationString 조건입니다.

    데이터 유형: 문자열

    requestedDebugpoints.operation

    중단점 또는 로그점에 대해 수행되는 작업입니다.

    가능한 값:
    • add
    • 삭제
    • 업데이트

    데이터 유형: 문자열

    requestedDebugpoints.tableName 서버 측 스크립트가 포함된 테이블의 이름(예: sys_script 또는 sys_script_include)입니다.

    데이터 유형: 문자열

    requestedDebugpoints.fieldName 서버 측 스크립트 내용을 포함하는 필드의 이름입니다.

    데이터 유형: 문자열

    requestedDebugpoints.status

    특정 중단점 또는 로그점을 추가, 삭제 또는 업데이트하는 지침의 결과입니다.

    가능한 값:
    • 실패
    • 무시됨
    • 성공
    디버그 지점을 추가, 삭제 또는 업데이트하는 요청은 다음과 같은 상황에서 무시됩니다.
    • 존재하지 않는 중단점 또는 로그포인트를 삭제하도록 요청합니다.
    • 이미 존재하는 중단점 또는 로그점과 동일한 중단점 또는 로그포인트를 추가하도록 요청합니다.

    데이터 유형: 문자열

    requestedDebugpoints.lineNumber 중단점 또는 로그점이 추가, 삭제 또는 업데이트된 위치를 지정하는 서버 쪽 스크립트의 줄 번호입니다.

    데이터 유형: 숫자

    requestedDebugpoints.debugpointType

    추가, 삭제 또는 업데이트된 디버그 지점의 유형입니다.

    가능한 값:
    • 중단점
    • Logpoint

    데이터 유형: 문자열

    상태 전체 작업의 결과입니다. HTTP 호출의 상태 코드입니다.

    데이터 유형: 숫자

    cURL 요청

    이 예제에서는 스크립트의 12번째 줄에 조건부 중단점을 추가합니다.

    curl "https://instance.servicenow.com/api/now/js/debugpoints/process" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data “[
    {
    \"tableName\": \"sys_script_include\",
    \"scriptId\": \"d65f78c40a0a0b6900196656f35913d3\",
    \"fieldname\": \"script\",
    \"lineNumber\": 12,
    \"evaluationString\": \"a == false\",
    \"debugpointType\": \"breakpoint\",
    \"operation\": \"add\"
    }
    ]” \
    --user 'username':'password'
    {
      "result": {
        "requestedDebugpoints": [
          {
            "scriptId": "d65f78c40a0a0b6900196656f35913d3",
            "evaluationString": "a == false",
            "operation": "add",
            "tableName": "sys_script_include",
            "fieldName": "script",
            "status": "success",
            "lineNumber": 12,
            "debugpointType": "breakpoint"
          }
        ],
        "status": 200
      }
    }