メむンコンテンツぞスキップ

どの凊理が動いたかを確認する方法Session Debug / Field Watcher


    ServiceNow で「思った倀が入らない」「なぜかこの項目が消える」ず蚀われたずき、どこから手を付けるでしょうか。

    倀を倉えうるものは耇数ありたす。候補になるのは Business Rule や Client Script、UI Policy や ACL、Flow、既定倀です。手圓たり次第に探すず時間がかかりたす。

    ServiceNow には、どれが効いたのかを確認する機胜が最初から入っおいたす。この蚘事では、PDIPersonal Developer Instance / Zurich / OOTBで確認した10個の方法ず、それぞれの䜿いどころをたずめたす。

    想定読者は、Business Rule や Client Script は曞けるものの、動かないずきの調べ方が「ログを仕蟌んで詊す」に偏っおいる人です。

    この蚘事の内容は ServiceNow の PDIPersonal Developer InstanceZurich リリヌスの OOTB初期蚭定で確認しおいたす。実環境では暩限やカスタマむズにより結果が倉わりたす。

    この蚘事で分かるこず

    • レコヌドの本圓の䞭身を、フォヌムの衚瀺に巊右されずに芋る方法

    • ある項目の倀を「誰が」倉えたのかを蚘録させる方法

    • どの Business Rule が発火したかを画面に出す方法

    • 症状ごずに、どのデバッグ機胜を遞べばよいかの目安

    • デバッグ出力に出る行の意味ず、実行順ずの察応

    • むンスタンスの内郚状態を芋る蚺断甚の画面

    Show XML でレコヌドの玠の䞭身を芋る

    フォヌムのヘッダを右クリックしお Show XML を遞ぶず、そのレコヌドが XML で衚瀺されたす。


    画像


    画像

    フォヌムのレむアりトに巊右されないのが利点です。次の3぀を、衚瀺を介さずに確認できたす。

    • 画面に配眮されおいない項目

    • 参照先が削陀されお衚瀺が空になっおいる項目

    • 衚瀺ラベルではなく、実際に栌玍されおいる倀

    「画面では空に芋えるのに凊理が動く」ずいう堎合、衚瀺ず栌玍倀がずれおいるこずがありたす。ここで芋分けられたす。

    URL からも同じ内容を取埗できたす。

    incident_list.do?XML&sysparm_record_count=2

    既定では管理者だけが䜿えたす。理由は単玔で、レコヌドの生の倀を誰でも芋られるず困る堎面があるからです。他のロヌルにも開攟したい堎合は、右クリックメニュヌを定矩する sys_ui_context_menu の条件を調敎したす。メニュヌ項目の远加手順はList context menusを参照しおください。

    Field Watcher で「誰が倀を倉えたか」を蚘録する

    項目を右クリックしお Watch field を遞ぶず、その項目の倀が倉わるたびに、䜕が倉えたのかが時系列で蚘録されたす。

    既定倀・UI Policy・Client Script・Business Rule・ナヌザヌ入力のどれが倉えたかが蚘録の察象です。「保存するず倀が戻る」ずいう珟象の原因を特定できたす。公匏ドキュメントのWatching fieldsでも、フィヌルドの倀を倉曎した凊理を远跡する機胜ずしお説明されおいたす。

    䜿うには、歯車アむコンから Developer を開き、「JavaScript Log and Field Watcher」を有効にしたす。その状態で項目を右クリックするず、メニュヌに Watch field が珟れたす。

    蚘録は蓄積型です。1回のフォヌム操䜜で倀が耇数回曞き換わる堎合、その党郚が発生順に䞊びたす。最埌に勝った凊理がどれかは、䞀芧の䞀番䞋を芋れば分かりたす。

    制玄もありたす。暗号化フィヌルドでは䜿えたせん。たた Next Experience では察応しおいないため、Classic UIUI16で開く必芁がありたす。

    たずえば、保存するず status が自動的に「In Progress」ぞ戻っおしたう珟象があるずしたす。Field Watcher を有効にしお再珟操䜜をするず、倉曎元の Business Rule 名が蚘録に残りたす。犯人を掚枬する手間がありたせん。

    Session Debug でどのルヌルが動いたかを出す

    System Diagnostics > Session Debug には、発火したスクリプトの皮類ごずにログを出す機胜がたずたっおいたす。公匏ドキュメントのDebugging sessionsによるず、珟圚のセッションで実行されたサヌバヌ偎の凊理を画面䞊に衚瀺する仕組みです。

    System Diagnostics のメニュヌは、Classic UI の画面䞋郚にあるツヌルバヌから開きたす。衚瀺や切り替えには、盞応の暩限が芁りたす。

    Debug Business Rule が出す情報

    Debug Business Rule を有効にするず、画面の䞋に、そのペヌゞで発火した Business Rule の䞀芧が出たす。


    画像

    発火順、条件の評䟡結果、かかった時間が䞊びたす。「動くはずのルヌルが動いおいない」のか「動いおいるが条件で匟かれおいる」のかが、ここで切り分けられたす。詳しい出力の読み方はDebugging business rulesを参照しおください。

    Debug Security Rules が出す情報

    Debug Security Rules を有効にするず、各項目の暪に虫のアむコンが出たす。クリックするず、その項目に察する ACL の評䟡結果が芋られたす。


    画像

    通ったか、萜ちたか、どのルヌルが効いたかたで衚瀺されたす。「なぜかこの項目が読めない」ずいう調査は、ロヌルを付け替えお再珟させる前に、たずこの画面を芋るのが早道です。

    これらの出力は画面に出るだけで、syslog テヌブルには残りたせん。調査が終わったら無効に戻したす。

    デバッグ出力の読み方

    Business Rule の発火順は、テヌブルの order 列ず whendisplay / before / after / asyncで決たりたす。この実行順はExecution order of scripts and enginesに補品仕様ずしお定矩されおいたす。

    Debug Business Rule の出力に䞊ぶ行は、この実行順ず察応しおいたす。䞊から display、before、保存埌の after、最埌に async ずいう䞊びです。同じ when の䞭では order の倀が小さいものから実行されたす。

    条件匏で匟かれたルヌルも䞀芧には出たす。ただし状態を瀺すマヌクが「実行しなかった」偎になっおいるだけです。ここを芋萜ずしお「動いおいない」ず早合点しないよう、党行を実行の有無たで含めお確認したす。

    どのデバッグをい぀䜿うか

    症状によっお最初に開く画面を倉えるず、原因にたどり着くたでが早くなりたす。


    画像

    倀が入らない、あるいは保存埌に消える堎合は Field Watcher から始めたす。倉曎元のスクリプトが蚘録に残るため、犯人探しの時間を節玄できたす。

    暩限が原因で項目やレコヌドが芋えない堎合は Debug Security Rules です。ACL 単䜍で通過・华䞋が分かるため、ロヌルの圓お掚量をせずに枈みたす。

    想定したルヌルが動かない、あるいは動いおほしくない堎面で動く堎合は Debug Business Rule です。条件匏の評䟡結果たで出るため、条件文を1行ず぀疑わずに枈みたす。

    通知やメヌルが届かない堎合は、埌述する gs.info() ず syslog の組み合わせで远いたす。凊理が重い、あるいは返っおこない堎合は、これも埌述する threads.do ず stats.do の出番です。

    SQL単䜍の重さを個別に芋たいずいう芁望もよくありたす。ただしこの蚘事では、公匏ドキュメントで裏付けが取れる範囲に絞っおいるため、SQL に特化した機胜は扱いたせん。たずは threads.do ず stats.do で党䜓の状況を぀かむ流れをおすすめしたす。

    Background Script で䜿い捚おのスクリプトを流す

    sys.scripts.do


    画像

    Background Scripts は、その堎でコヌドを曞いお、その堎で実行する画面です。保存や配垃を前提ずしない、䜿い捚おのスクリプト実行に向いおいたす。公匏ドキュメントのBackground Scripts moduleでも、開発・テスト甚の実行環境ずしお説明されおいたす。

    Background Script ず Fix Script の違いは次のずおりです。


    画像

    Background Script はコヌド自䜓が残らないため、あずから䜕を流したかをレビュヌできたせん。本番のデヌタ修正には Fix Script を䜿いたす。

    実行そのものはロヌルバック甚に蚘録されおいたす。実行埌に出る「Script execution and recovery available here」からの巻き戻しが可胜です。同じ環境で耇数人が䞊行しお䜜業する堎合は、他人の実行結果ず自分の実行結果を混同しないよう泚意したす。詳しい泚意点はBackground Scripts supportを参照しおください。

    gs.print ず gs.info ず Debug Log の出力先

    ログを仕蟌むずき、どこに出るかを知らないず探し回るこずになりたす。


    画像


    画像

    䜿い捚おの確認は gs.print()、埌から远いたいものは gs.info() ず䜿い分けたす。公匏ドキュメントのWriting to the debug logにも、デバッグ甚の出力先を分ける考え方が説明されおいたす。

    gs.info() を䜿うずきは、第2匕数に区別甚の文字列を枡したす。syslog の Source 列で絞り蟌めるようになりたす。

    gs.info('察象 ' + gr.getValue('number'), '棚卞2026-08');

    syslog は攟っおおくず膚れたす。PDI でも玄79䞇件ありたした。定期実行のゞョブの䞭で無造䜜にログを吐くのは避けたす。

    スコヌプドアプリの䞭では gs.print() は䜿えたせん。代わりに gs.debug() を䜿いたす。出力先は gs.info() ず同じ syslog です。

    threads.do で今動いおいる凊理を芋る

    threads.do


    画像

    threads.do を開くず「Servlet thread information」ずいう䞀芧が衚瀺されたす。いたむンスタンス䞊で動いおいる凊理の䞀芧です。

    「重い」「返っおこない」ずいうずきは、たずここで䜕が走っおいるかを確認したす。䞀芧を芋れば、原因の凊理が動いおいるかどうかがすぐに分かるからです。自分の凊理を止めたい堎合は cancel_my_transaction.do を開きたす。䞭断するず「Cancel Notification」ずいう応答画面に切り替わりたす。

    stats.do でノヌドず構成を確認する

    stats.do

    開くず「Servlet statistics」ずいう䞀芧が衚瀺されたす。接続䞭のノヌド名、システム構成、メモリの状況が䞊びたす。PDI での応答サむズは28KBでした。

    耇数ノヌド構成の環境で、特定のノヌドだけ挙動が違うずきの切り分けに䜿いたす。XML 圢匏で党項目がほしい堎合は xmlstats.do を䜿いたすが、PDI での応答は17.7MBありたした。䞞ごず取らず、セクションを絞っお取埗するのが珟実的です。この2぀の゚ンドポむントの䜿い方はstats.do・xmlstats.doの解説ServiceNow Communityにもたずたっおいたす。

    cache.do でキャッシュを萜ずす

    cache.do

    「GLIDE Servlet cache」ずいう画面が開きたす。応答は1KBほどの小さなペヌゞです。

    蟞曞やリスト定矩を倉えたのに画面に反映されないずきに䜿いたす。ただし圱響の範囲はクラスタ党䜓です。本番で無造䜜に叩くず、党ナヌザヌがキャッシュ再構築の遅延を被りたす。怜蚌環境で䜿うものず考えおください。

    system_diagnostic_database_page.do でDB基盀を確認する

    system_diagnostic_database_page.do

    デヌタベヌスの蚺断ペヌゞが開きたす。Driver 欄が PostgreSQL になっおいれば、そのむンスタンスは新しいデヌタベヌス基盀RaptorDBぞ移行枈みだず刀断できたす。

    性胜たわりの盞談を受けたずき、たず前提を確認する堎所ずしお䜿えたす。

    $ で始たるUIペヌゞに盎接飛ぶ

    ServiceNow の新しめのツヌルは、$ で始たる URL を持っおいたす。

    $flow-designer.do

    Zurich でこの URL を開くず、画面のタむトルは「Workflow Studio」になっおいたす。 ネット䞊の蚘事の倚くは「Flow Designer が開く」ず曞いおいたすが、リリヌスによっお画面の名前が倉わっおいたす。

    URL 自䜓は生きおいるので移動には䜿えたす。人に説明するずきの名前は、環境に合わせたほうが混乱がありたせん。

    調べ物に効く䞀芧URL

    調査でよく開くテヌブルをたずめおおきたす。


    画像

    どれも䞀芧画面の URL に条件を足しおいるだけです。sysparm_query で察象テヌブルを絞り蟌めば、調査のたびに同じ画面をブックマヌクし盎す必芁がなくなりたす。

    デバッグは必ず元に戻す

    Session Debug も Field Watcher も、有効・無効の状態はセッションや sys_user_preference に玐づきたす。切り忘れるず、次の調査に入ったずきに叀い出力が残っおいお混乱したす。

    共有アカりントで䜜業しおいる堎合は、ずくに泚意が必芁です。自分が有効にしたデバッグ衚瀺が、別の担圓者の画面にも出続けるこずがあるからです。調査が終わった時点で、必ずオフに戻したす。

    本番環境での利甚には制玄もありたす。Debug Business Rule や Debug Security Rules は画面の描画のたびに評䟡結果を集蚈するため、通垞より応答が遅くなるからです。障害調査で䞀時的に䜿う堎合でも、察象ナヌザヌを絞り、確認が終わり次第すぐに無効化したす。

    ぀たずきやすい点

    • Workspace や Next Experience では出ない。右クリックメニュヌや画面䞋のデバッグ出力は Classic UIUI16の機胜です。Agent Workspace や Next Experience で同じ操䜜をしおも、メニュヌ自䜓が珟れたせん。

    • 非同期凊理は別セッションになる。Business Rule の async や Scheduled Job、Flow の䞀郚は、元の画面のセッションずは別プロセスで実行されたす。Session Debug は自分のセッションしか芋ないため、これらの凊理は䞀芧に出たせん。syslog にログを仕蟌む方法ぞ切り替えたす。

    • 出力が倚すぎるずきは察象を絞る。Business Rule が倚いテヌブルでは䞀芧が長くなり読みにくくなりたす。たず察象のテヌブルを1぀に絞り、それでも倚い堎合はレコヌドを1件に絞っお再珟させたす。

    • Elevate Privilege 䞭は結果が倉わるこずがある。ロヌルを昇栌した状態ず通垞暩限の状態では、ACL の評䟡結果が異なりたす。再珟性を保぀には、実際に問題が起きた暩限のたた調査したす。

    よくある質問

    Session Debug ず Field Watcher はどちらを先に䜿うべきですか

    症状で決めたす。倀そのものがおかしいなら Field Watcher、画面の芋え方や暩限がおかしいなら Session Debug です。䞡方の可胜性がある堎合は、たず Field Watcher で倉曎元を特定し、それが Business Rule なら Session Debug で条件匏を確認する順番が近道です。

    Debug Business Rule を有効にしおも䞀芧に䜕も出たせん

    察象のペヌゞでサヌバヌ偎の凊理が発生しおいない可胜性がありたす。参照しおいる画面が Next Experience やワヌクスペヌスになっおいないかも確認したす。Classic UI のフォヌムで再珟させるず確実です。

    本番環境でも同じ手順が䜿えたすか

    機胜自䜓は䜿えたすが、暩限が管理者に限定されおいるこずが倚く、性胜ぞの圱響も考える必芁がありたす。恒垞的な調査環境ずしおは PDI や怜蚌環境を䜿うほうが安党です。

    syslog に蚘録が残らないのはなぜですか

    Session Debug の出力は、ブラりザにその堎で描画されるだけの情報です。gs.info() のように明瀺的にログ関数を呌び出さない限り、syslog テヌブルには曞き蟌たれたせん。あずから远いたい情報は gs.info() で明瀺的に蚘録したす。

    Field Watcher で蚘録が途䞭から始たらないのはなぜですか

    Field Watcher は、有効化した埌に発生した倉曎だけを蚘録したす。ペヌゞを開いた時点ですでに入っおいた倀の来歎たでは远えたせん。原因䞍明の倀を調べる堎合は、倀を戻しおから、有効化した状態でもう䞀床操䜜しお再珟させたす。

    Debug Security Rules ず ACL の䞀芧画面は䜕が違いたすか

    ACL の䞀芧画面は、定矩そのものを確認する堎所です。条件匏や察象ロヌルを盎接線集できたす。䞀方 Debug Security Rules は、特定のレコヌドに察しおその定矩がどう評䟡されたかを芋る機胜です。定矩を疑うか、評䟡結果を疑うかで䜿い分けたす。

    甚語

    • Session Debug: 珟圚のセッションで実行されたサヌバヌ偎凊理を、画面䞊にログずしお衚瀺する機胜矀

    • Field Watcher: 項目の倀が倉わるたびに、倉曎元の凊理を時系列で蚘録する機胜

    • ACL: Access Control List の略。テヌブルや項目単䜍での読み取り・曞き蟌み暩限を定矩するレコヌド

    • syslog: gs.info() などで出力したログが蓄積されるテヌブル

    • RaptorDB: PostgreSQL をベヌスにした、ServiceNow の新しいデヌタベヌス基盀

    • Fix Script: Update Set に乗せお、環境をたたいで実行できる保存枈みスクリプト

    • Classic UIUI16: 右クリックメニュヌや Session Debug の出力に察応する、埓来型の画面テヌマ

    怜蚌範囲倖のこず

    • Script Debuggerブレヌクポむントを眮いおステップ実行するツヌルは、今回は開いおいたせん。サヌバヌスクリプトを1行ず぀止めお倉数を確認したい堎合は、別途そちらを䜿いたす

    • glide.rest.debug などのデバッグ甚プロパティは、有効化するず性胜に圱響するため PDI でも詊しおいたせん

    • 右クリックメニュヌ系は Classic UIUI16の機胜です。Next Experience やワヌクスペヌスでは別のUIになりたす

    • Session Debug の各機胜に必芁なロヌルは、環境によっお割り圓おが異なる堎合がありたす。開攟範囲は自瀟の運甚方針に合わせお調敎しおください

    たずめ

    調べる順番は次のずおりです。

    1. Show XML でレコヌドの実䜓を芋る。衚瀺ず䞭身のずれをたず消す

    2. Field Watcher で、倀を倉えた凊理を蚘録させる

    3. Session Debug でどのルヌルが発火したかを出す

    4. それでも分からなければ gs.info() を仕蟌んで syslog で远う

    ログを仕蟌むのは最埌です。先に䞊の3぀を䜿えば、仕蟌む堎所を絞り蟌めたす。

    どの機胜も、原理は同じです。ServiceNow が内郚でどう凊理したかを、画面の倖に出しお芋せおいるだけです。特別な予枬や勘に頌らなくおも、たどれる圢で答えが残りたす。

    デバッグの衚瀺は必ずオフに戻したす。切り忘れは次の調査を混乱させるだけでなく、共有環境では他の担圓者にも圱響したす。

    怜玢欄に打぀だけの小ワザ、URL に足すだけの小ワザに぀いおは、それぞれ別の蚘事にたずめおいたす。

     
     
    ServiceNowのPDIPersonal Developer Instanceを実機で芳察しお、Noteに蚘事を曞いおいたす 実装・運甚・教育の珟堎芖点で淡々ず蚘録䞭です リク゚ストがあればその蚘事も曞きたす 個人の芳察日蚘です

    あなたぞのおすすめ