アタッチ構成でのアタッチとデバッグの使用

完了

スナップショット デバッガーと同様に、既存の実行中のセッション、または特定のユーザーの次のセッションに、AL デバッガーをアタッチする必要があります。 どちらの場合も、launch.json アタッチ構成でセッション ID またはユーザー ID を指定することで設定されます。

また、ユーザー間のデバッグを許可するのに新しいアタッチ デバッグ アクセス許可セットを使用できます。

デバッグの機能を公開したり呼び出したりしない場合は、指定したサーバーにセッションをアタッチすることもできます。 その後、設定したブレークポイントをトリガーするプロセスを待ちます。 その後、ブレークポイントが設定されているコードに達すると、デバッグが開始されます。

アタッチ機能を使用するには、F5 キーを押してデバッグ セッションを開始する前に、まず Ctrl+F5 キーまたは Alt+Ctrl+F5 キー (RAD の発行の場合) を押して、アプリが公開されていることを確認する必要があります。 クライアントから新しいサーバー セッションを作成するには、たとえば、新しいクライアント セッションを起動します。 ブラウザーで F5 (更新) キーを押すと、キャッシュされるため、新しいサーバー セッションは作成されない場合がありますが、セッションが有効期限切れになって更新された場合は、新しいセッションが作成されます。

サーバーで Web 要求を発行できるのは、Visual Studio Code のアタッチ セッションを開始したユーザーのみです。

アタッチ機能を有効にするには、launch.json ファイルで新しい構成を作成します。 構成には次の 2 種類があります。

  • クラウド サンドボックスクライアントにアタッチする

  • サーバーでクライアントにアタッチする

最初のオプションを使用してクラウド セッションにアタッチし、2 番目のオプションを使用してローカル サーバーにアタッチします。

Business Central 2023 のリリース サイクル 1 では、2 つの新しいプロパティ (sessionIduserId) が起動構成に追加されます。これにより、継続中のセッションにアタッチすることや、別のユーザーに代わってデバッグを行うことが可能になります。

アタッチ構成では、breakOnNext 設定は、デバッグ セッションの開始時にブレークする次のクライアントを指定し、1 つのオプションのみを許可します。 使用できるオプションは次のとおりです。

  • WebServiceClient

  • WebClient

  • Background

その他の重要なプロパティとして、sessionIduserId の 2 つがあります。 sessionId は、breakOnNext で指定されたタイプの継続中のセッションを指定します。 このセッションは、userId プロパティのユーザーに属する必要があります (指定されている場合)。

sessionId が指定されていないが、userId が指定されている場合、デバッガーは、特定のユーザーに対して breakOnNext で指定されたタイプの次のセッションにアタッチします。

userId が、Visual Studio Code にログインしているユーザーとは別のユーザーである場合、Visual Studio Code にログインしているユーザーは、D365 ATTACH DEBUG アクセス許可セットに含まれている必要があります。

デバッガーは、バックグラウンド タスクではなくバックグラウンド セッションに接続できます。

次の例は、ローカル サーバーの構成を示しています。

{
            "name": "My attach to local server",
            "type": "al",
            "request": "attach",
            "server": "https://localhost",
            "serverInstance": "BC200",
            "authentication": "Windows",
            "breakOnError": true,
            "breakOnRecordWrite": false,
            "enableSqlInformationDebugger": true,
            "enableLongRunningSqlStatements": true,
            "longRunningSqlStatementsThreshold": 500,
            "numberOfSqlStatements": 10,
            "breakOnNext": "WebClient"
        }

アタッチ セッションの開始

アタッチ セッションを開始するには、次の手順に従います。

  1. Visual Studio Code の実行で、構成の追加を選択します。

  2. クラウド セッションとローカル セッションのどちらにアタッチするかを選択します。 これで、launch.json ファイルに正しいアタッチ構成設定が入力されます。 ローカル セッションを選択した場合は、server と serverInstance の設定でローカル サーバーをポイントするように既定の設定を変更します。

  3. breakOnNext プロパティを設定して、ブレークするクライアント タイプを指定します。

  4. コードで、ツールバーの実行を使用して少なくとも 1 つのブレークポイントを設定し、新しいブレークポイントを選択します。その後、追加するブレークポイントのタイプを選択します。 デバッグ中にブレークポイントを追加できます。

  5. 最新のアプリがまだ公開されていない場合は、Ctrl+F5 キーまたは Alt+Ctrl+F5 キー (RAD の発行の場合) を押して公開する必要があります。 次に、F5 キーを使用してアタッチ セッションを開始します。 デバッグ セッション中にアプリ コードを変更する場合は、Ctrl+F5 キーを押してアプリケーションを再公開してください。

  6. デバッグ セッションを開始するには、アプリの公開後に F5 キーを押します。 アタッチ構成の設定が複数ある場合は、まずどの構成から開始するかを選択する必要があります。

  7. コードをデバッグし、検査します。 デバッグ中にブレークポイントを追加できます。

  8. Visual Studio Code ツールバーのデタッチを選択して、アタッチ デバッグ セッションを停止します。