スクリプトデバッガー 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": {
      "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": {
      "scriptField": "String"
      "scriptId": "String"
      "scriptType": "String"
      "value": "String"
    }

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

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

    データタイプ:文字列

    key.scriptId スクリプトのSys_id。

    データタイプ:文字列

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

    データタイプ:文字列

    key.value 要求を行うために使用されるパスパラメーター。次の順序でリストされます。
    • 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. クエリパラメーター
    名前 説明
    fetchAll true の場合、ユーザーが追加または更新したすべてのブレークポイントまたはログポイントのリストを返します。

    データタイプ:ブール

    デフォルト値:false

    すべてフィルターをフェッチ

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

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

    キャレット (^) 記号を複数のプロパティの区切り文字として使用します。たとえば、 fetchAllFilter=debugpointType=logpoint^scope=MyApp

    データタイプ:文字列

    表 : 9. 要求本文パラメーター (XML または JSON)
    名前 説明
    デバッグポイントタイプ

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

    有効な値:
    • breakpoint
    • ログポイント

    データタイプ:文字列

    evaluationString

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

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

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

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

    データタイプ:文字列

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

    データタイプ:文字列

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

    データタイプ:数値

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

    データタイプ:文字列

    スクリプト ID 必須。サーバーサイドスクリプトの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)

    名前 説明
    requestedDebugpoint 要求されたブレークポイントとログポイントのリスト。オブジェクトのアレイとして表示されます。
    "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

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

    可能な値:
    • 追加
    • delete
    • 更新

    データタイプ:文字列

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

    データタイプ:文字列

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

    データタイプ:文字列

    requestedDebugpoints.status

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

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

    データタイプ:文字列

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

    データタイプ:数値

    requestedDebugpoints.debugpointType

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

    可能な値:
    • breakpoint
    • ログポイント

    データタイプ:文字列

    ステータス アクション全体の結果。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
      }
    }