メインコンテンツまでスキップ

業務ロジックをデバッグする

この記事では、業務ロジックをデバッグする方法を解説します。

デバッグ機能の概要

デバッグは、以下のような業務ロジックの問題を解決するために効果的です。

  • 業務ロジックの出力が想定と異なる
  • 作成した業務ロジックが特定の入力で必ず失敗する
  • 条件分岐や繰り返し処理が正しく動作していない

また、問題解決だけではなく、作成した業務ロジックのテスト実行にも利用できます。

デバッグ画面を表示する

  1. ツールバー内の「デバッグ」をクリックします。

    「デバッグ」ボタン

  2. 「ロジックフロー定義のデバッグ」画面がポップアップで表示されます。

    「ロジックフロー定義のデバッグ」

デバッグ画面の見方

デバッグ画面は5つの部分(ペイン)に分かれています。

デバッグ画面の見方

それぞれの名称と説明は以下の通りです。

名称説明
ツールバーロジックの実行・停止やデバッグ画面の表示切替ができます。
ロジックフロー確認ペイン実行中のロジックの確認、および、ブレークポイントの設定ができます。
プロパティペインロジックフローや②のロジックフロー確認ペインで選択中のタスクのプロパティ情報を確認できます。
変数情報ペインロジックフローの実行に関わる変数の値の表示、および、編集ができます。
コンソールペインデバッグ時の処理情報がログとして出力されます。

入力値を設定してデバッグ実行を開始する

  1. 「実行」をクリックしてデバッグを開始します。

    デバッグ実行を開始する

    注意

    デバッグを実施すると、業務ロジックで実装されている内容が実際に実行されます。
    データの登録・更新、メールの送信、外部サービスとの連携などが含まれる業務ロジックの場合は特に注意してください。

  2. 「デバッグの実行」ダイアログが表示されます。

  3. デバッグ実行の入力値を設定します。

  4. 値を設定したい変数をクリックして選択状態にし、「値の編集」をクリックしてダイアログを開きます。

    入力値の設定

  5. 「値の入力」のラジオボタンを選択して、値を入力します。

    「値の入力」

    注記

    入力エリアの形式は選択された変数の型によって異なります。
    例えば、string 型であればテキストエリア、date型であれば日付・時刻・タイムゾーンの入力欄になっています。

  6. 「決定」をクリックして「値の編集」ダイアログを閉じます。

  7. 「実行」をクリックしてデバッグ実行を開始します。

    「デバッグの実行」

備考

ワークフローやWebデータベースと連携する業務ロジックの場合、ワークフローに関連する情報を入力値に設定しないとうまく動作しないことがあります。
例えば、ワークフローの「後処理」で「再申請」の際に実行される業務ロジックをデバッグしたい場合は、imwActionProcess - resultStatusreapply を設定する必要があります。
それぞれの業務ロジックの入力値については、以下のリンク先で対象の業務ロジック種別の「入力値」の項目を参照してください。

ヒント

入力値は、上記手順のように1つずつ設定するほかに、「JSON」という形式の文字列でまとめて設定できます。
「入力値の設定」ダイアログで「JSON入力」をクリックすると、「JSONの入力」ダイアログが開き、その時点で設定されている入力値がJSON形式で表示されます。
表示されたJSON文字列をコピーして保存しておくと、後ほど同じ入力でデバッグ実行したい場合に利用できます。 (「JSON入力」の入力欄をコピーしたJSON文字列で上書きして「決定」をクリックすると、入力値に反映されます。)
また、JSON文字列を直接編集して入力値の設定をすることも可能です。

デバッグ実行の結果を確認する

デバッグ実行が正常に終了した場合は、「フローの実行が正常終了しました。」というメッセージが表示されます。
もし、「フローの実行が異常終了しました。」というメッセージが表示された場合は、より詳細にデバッグするを参照してください。

業務ロジックの実行結果が想定通りになっているかを確認します。

  1. デバッグ画面の「変数情報ペイン」を確認します。

    変数情報ペイン

    変数情報ペインの表示が見づらいときは

    デバッグ画面では、各ペインの端をドラッグ&ドロップすることで表示域を拡大・縮小できます。
    また、ツールバーの「プロパティ」「変数情報」などをクリックすることで、各ペインの表示・非表示を切り替えられます。 変数情報ペインの表示活きの拡大・縮小

  2. 「出力」配下の変数を確認します。

    • 業務ロジックの出力として想定される値になっているか確認します。

      変数情報ペイン

  3. その他、業務ロジックの実行時に想定している動作があれば、期待通りに実行されているかを確認します。

    • メール送信、データベースの更新、外部サービスとの連携など
  4. 問題なければ、デバッグ画面を閉じてデバッグを終了します。

  5. 想定通りの結果にならなかった場合は、「より詳細にデバッグする」を参照してください。

より詳細にデバッグする

業務ロジックの実行結果が想定通りとならなかった場合は、より詳細な確認を行います。

コンソールを確認する

「コンソールペイン」にはフローの実行情報が出力されています。
以下の点に着目して確認してください。

  • 分岐を使用している場合、想定通りの評価結果となっているか
  • 繰り返しを使用している場合、想定通りの回数繰り返されているか
  • フローが異常終了した場合、最後に実行されたのはどのタスクか
    • 異常終了した場合はスタックトレース(エラーに関する情報)が表示されますが、スタックトレースが開始する行の1つ上に最後に実行されたタスクが記載されています。

コンソールペイン

備考

デバッグ実行が異常終了した場合は、エラーログも参照してください。
エラーメッセージからエラーの原因が推測できる場合があります。
エラーログの参照方法は「エラーログ」を参照してください。

変数情報を確認する

デバッグ実行の結果を確認する」では「出力」配下の変数のみを確認しましたが、その他の変数情報も確認します。

  1. 「変数情報ペイン」の「-」アイコンをクリックし、展開されている変数ツリーを閉じます。

    変数ツリーを閉じる

  2. 各タスクの出力値を確認します。

  3. 確認したいタスクのエイリアス(タスクエレメントの上部に記載されている文字列)名の変数を選択し、左側の三角形のアイコンをクリックしてツリーを展開します。

    変数ツリーを開く

  4. 選択したタスクの出力値が想定通りとなっているか確認します。
    例えば、特定のタスクの出力値が想定と異なる場合、そのタスクの処理自体に問題がある、または、そのタスクの入力値に問題があることが推測できます。

    タスク出力値の確認

  5. 業務ロジックの「変数」を利用している場合は、同様に「変数」の値も確認できます。

    変数の確認

    ヒント

    「デバッグ実行」を行った場合、「変数」の値はロジックの実行が終了した時点での値になっています。
    ロジックを実行している途中の値が知りたい場合は、「処理ごとにデバッグする(ステップ実行)」を参照してください。

  6. 業務ロジックではユーザが定義した「変数」以外にも、暗黙的な変数を利用できます。これらの値も同様に確認できます。

    暗黙的な変数

    業務ロジックではユーザが定義した「変数」以外にも、以下のような暗黙的な変数を利用できます。これらの値も同様に確認できます。

    • アカウントコンテキスト

    • セッション情報

    • 処理結果情報

    • ユーザコンテキスト

    • 外部ユーザコンテキスト

    暗黙的な変数の詳細については、「暗黙的な変数の利用」を参照してください。

処理ごとにデバッグする(ステップ実行)

通常のデバッグ実行で問題が解決しなかった場合は、ロジックを1処理ごとに停止しながら実行する「ステップ実行」を利用します。

  1. 「ロジックフロー定義のデバッグ」画面で「ステップ実行」をクリックします。

    デバッグのステップ実行

  2. 入力値を設定してデバッグ実行を開始する」と同様に入力値を設定し、実行をクリックします。

  3. すると、「開始」の次のタスクの手前で停止した状態でステップ実行が開始します。
    「ロジックフロー確認ペイン」で、現在停止している位置に矢印が表示されます。

    ステップ実行開始

  4. ツールバーの「ステップ実行」を再度クリックすると、タスクを1つ実行し、次のタスクの手前でまた停止します。
    次に実行されるタスクは「ロジックフロー確認ペイン」や「コンソールペイン」で確認できます。

  5. 「変数情報ペイン」では停止している時点での変数情報が確認できるため、ステップ実行を利用してロジック実行途中の各変数の値を調べられます。

デバッグ実行途中に変数の値を変更する

デバッグのステップ実行途中で特定の変数の値を変更し、そのまま後続の処理を行うことが可能です。
例えば、ロジック実行途中の段階で特定の変数の値が想定通りでなかった場合に、当該変数の値を修正したうえで後続の処理が動作するか、といった確認が行えます。

  1. ステップ実行中に、「変数情報ペイン」を表示します。

  2. 値を変更したい変数を選択し、「値を編集」をクリックします(または、変数をダブルクリックします)。

    変数の編集

  3. 「値の編集」ダイアログが表示されるため、任意の値を入力します。

    「値の編集」

  4. 「決定」ボタンをクリックしてダイアログを閉じます。

  5. 「変数情報ペイン」に変更が反映されていることを確認し、「ステップ実行」をクリックしてデバッグを再開します。

  6. 変更後の変数を使用して後続の処理が実行されます。実行結果を確認してください。

任意のポイントでデバッグを停止する(ブレイクポイントの利用)

長大なロジックのデバッグを行う際は、「ブレイクポイント」の利用を検討してください。 ブレイクポイントを特定のタスクに設定すると、その手前でデバッグ実行を停止します。停止した箇所から「ステップ実行」を開始することもできます。

  1. 「ロジックフロー定義のデバッグ」画面を開きます。

  2. 「ロジックフロー確認ペイン」で、ブレイクポイントを設定したいタスクを選択します。

  3. 「プロパティペイン」の「タスク設定 - ブレイクポイント」の「このタスクで一時停止する」のチェックボックスをオンにします。
    (または、「ロジックフロー確認ペイン」で当該タスクをダブルクリックします。)

    ブレイクポイントの設定

  4. 選択したタスクの右上に停止アイコンが表示されます。

  5. ツールバーの「実行」をクリックして、デバッグ実行を開始します。

  6. ブレイクポイントを設定したタスクの手前でデバッグ実行が停止します。

    ブレイクポイントでデバッグ実行が停止する

  7. 「変数情報ペイン」などで必要な情報が確認できたら、「実行」または「ステップ実行」をクリックしてデバッグを再開します。