スクリプトデバッガー API

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:14分
  • スクリプトデバッガー 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 スクリプト内のすべてのブレークポイントとログポイントのリスト。
    "debugpoints": {
      "breakpoint": {Object}
      "logpoint": {Object}
    }

    データタイプ:オブジェクト

    debugpoints.breakpoint スクリプト内のすべてのブレークポイントのリスト。キーと値のペアとして表示されます。キーはブレークポイントの行番号です。値は、ブレークポイントの sys_id とテキストを含むオブジェクトです。
    "breakpoint": {
      <line_number>: {Object}
    }

    データタイプ:オブジェクト

    debugpoints.breakpoint.<line_number> ブレークポイントの行番号。
    <line_number>: {
      "evaluationString": "String"
      "sysId": "String"
    }

    データタイプ:オブジェクト

    debugpoints.breakpoint.<line_number>.evaluationString ブレークポイントのテキスト。ブレークポイントが条件付きの場合、evaluationString に条件テキストが含まれます。ブレークポイントが条件付きでない場合、evaluationString は空の文字列です。

    データタイプ:文字列

    debugpoints.breakpoint.<line_number>.sysId ブレークポイントの sys_id。

    データタイプ:文字列

    debugpoints.logpoint スクリプト内のすべてのログポイントのリスト。キーと値のペアとして表示されます。キーはログポイントの行番号です。値は、ログポイントの sys_id とテキストを含むオブジェクトです。
    "logpoint": {
      <line_number>: {Object}
    }

    データタイプ:オブジェクト

    debugpoints.logpoint.<line_number> ログポイントの行番号。
    <line_number>: {
      "evaluationString": "String"
      "sysId": "String"
    }

    データタイプ:オブジェクト

    debugpoints.logpoint.<line_number>.evaluationString ログポイントのテキスト。ログに記録されるメッセージが含まれます。

    データタイプ:文字列

    debugpoints.logpoint.<line_number>.sysId ログポイントの sys_id。

    データタイプ:文字列

    key デバッグされるスクリプトの詳細を提供するオブジェクト。
    "key": {
      "scriptField": "String"
      "scriptId": "String"
      "scriptType": "String"
      "value": "String"
    }

    データタイプ:オブジェクト

    key.scriptField スクリプトを含むフィールドの名前。

    データタイプ:文字列

    key.scriptId スクリプトの sys_id。

    データタイプ:文字列

    key.scriptType スクリプトを含むテーブルの名前。

    データタイプ:文字列

    key.value 要求を行うために使用されるパスパラメーター。次の順序でリストされます。
    • tableName
    • sysId
    • fieldName

    データタイプ:文字列

    name スクリプトの名前

    データタイプ:文字列

    script スクリプトのコードを表示するテキスト。

    データタイプ:文字列

    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. クエリパラメータ
    名前 説明
    fetchAll true の場合、ユーザーが追加または更新したすべてのブレークポイントまたはログポイントのリストを返します。

    データタイプ:ブーリアン

    デフォルト値:false

    fetchAllFilter

    ユーザーが追加または更新したすべてのブレークポイントまたはログポイントのフィルター済みリストを返します。

    有効な値:
    • debugpointType。ブレークポイントまたはログポイントのいずれかに設定します。
    • scriptId。デバッグポイントを検索するスクリプトの sys_id に設定します。
    • scope。デバッグポイントを検索するスコープの名前に設定します。

    複数のプロパティのセパレーターとしてキャレット (^) 記号を使用します。例:fetchAllFilter=debugpointType=logpoint^scope=MyApp

    データタイプ:文字列

    表 : 9. 要求本文パラメーター (XML または JSON)
    名前 説明
    debugpointType

    必須です。追加、削除、または更新するデバッグポイントのタイプ。

    有効な値:
    • breakpoint
    • logpoint

    データタイプ:文字列

    evaluationString

    ログポイントまたは条件付きブレークポイントのテキスト。

    ログポイントの場合、evaluationString はログメッセージです。

    条件付きブレークポイントの場合、evaluationString は条件です。たとえば、ユーザー ID のリストをループしていて、ユーザー ID が 38493 の場合にのみデバッガーを一時停止する場合は、userID == 38493 を条件としてループ内に条件付きブレークポイントを追加できます。条件が true の場合、デバッガーはこのブレークポイントでのみ一時停止します。

    ブレークポイントが条件付きブレークポイントでない場合、evaluationString は空の文字列です。

    データタイプ:文字列

    fieldName 必須です。サーバー側スクリプトのコンテンツを含むフィールドの名前。

    データタイプ:文字列

    lineNumber ブレークポイントまたはログポイントを追加、削除、または更新する場所を指定するサーバー側スクリプトの行番号。

    データタイプ:数値

    operation 必須です。ブレークポイントまたはログポイントに対して実行する操作。
    有効な値:
    • add
    • delete
    • update

    データタイプ:文字列

    scriptId 必須です。サーバー側スクリプトの sys_id。

    データタイプ:文字列

    tableName 必須です。sys_script や sys_script_include などのサーバー側スクリプトを含むテーブルの名前。

    データタイプ:文字列

    ヘッダー

    次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。

    表 : 10. 要求ヘッダー
    ヘッダー 説明
    承認 応答本文のデータフォーマット。サポートされるタイプ:application/json または application/xml

    デフォルト: application/json

    Content-Type 要求本文のデータ形式。サポートされるタイプ: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 ログポイントまたは条件付きブレークポイント用に追加されたテキスト。ログポイントの場合、evaluationString はログメッセージです。条件付きブレークポイントの場合、evaluationString は条件です。

    データタイプ:文字列

    requestedDebugpoints.operation

    ブレークポイントまたはログポイントに対して実行された操作。

    可能な値:
    • add
    • delete
    • update

    データタイプ:文字列

    requestedDebugpoints.tableName sys_script や sys_script_include などのサーバー側スクリプトを含むテーブルの名前。

    データタイプ:文字列

    requestedDebugpoints.fieldName サーバー側スクリプトのコンテンツを含むフィールドの名前。

    データタイプ:文字列

    requestedDebugpoints.status

    特定のブレークポイントまたはログポイントを追加、削除、または更新する指示の結果。

    可能な値:
    • failure
    • ignored
    • success
    デバッグポイントを追加、削除、または更新する要求は、次の状況では無視されます。
    • 存在しないブレークポイントまたはログポイントの削除を要求しています。
    • 既に存在するものと同じブレークポイントまたはログポイントを追加するように要求しています。

    データタイプ:文字列

    requestedDebugpoints.lineNumber ブレークポイントまたはログポイントが追加、削除、または更新された場所を指定するサーバー側スクリプトの行番号。

    データタイプ:数値

    requestedDebugpoints.debugpointType

    追加、削除、または更新されたデバッグポイントのタイプ。

    可能な値:
    • breakpoint
    • logpoint

    データタイプ:文字列

    status 全体的なアクションの結果。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
      }
    }