アタッチ構成でのアタッチとデバッグの使用
スナップショット デバッガーと同様に、既存の実行中のセッション、または特定のユーザーの次のセッションに、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 つの新しいプロパティ (sessionId と userId) が起動構成に追加されます。これにより、継続中のセッションにアタッチすることや、別のユーザーに代わってデバッグを行うことが可能になります。
アタッチ構成では、breakOnNext 設定は、デバッグ セッションの開始時にブレークする次のクライアントを指定し、1 つのオプションのみを許可します。 使用できるオプションは次のとおりです。
WebServiceClient
WebClient
Background
その他の重要なプロパティとして、sessionId と userId の 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"
}
アタッチ セッションの開始
アタッチ セッションを開始するには、次の手順に従います。
Visual Studio Code の実行で、構成の追加を選択します。
クラウド セッションとローカル セッションのどちらにアタッチするかを選択します。 これで、launch.json ファイルに正しいアタッチ構成設定が入力されます。 ローカル セッションを選択した場合は、server と serverInstance の設定でローカル サーバーをポイントするように既定の設定を変更します。
breakOnNext プロパティを設定して、ブレークするクライアント タイプを指定します。
コードで、ツールバーの実行を使用して少なくとも 1 つのブレークポイントを設定し、新しいブレークポイントを選択します。その後、追加するブレークポイントのタイプを選択します。 デバッグ中にブレークポイントを追加できます。
最新のアプリがまだ公開されていない場合は、Ctrl+F5 キーまたは Alt+Ctrl+F5 キー (RAD の発行の場合) を押して公開する必要があります。 次に、F5 キーを使用してアタッチ セッションを開始します。 デバッグ セッション中にアプリ コードを変更する場合は、Ctrl+F5 キーを押してアプリケーションを再公開してください。
デバッグ セッションを開始するには、アプリの公開後に F5 キーを押します。 アタッチ構成の設定が複数ある場合は、まずどの構成から開始するかを選択する必要があります。
コードをデバッグし、検査します。 デバッグ中にブレークポイントを追加できます。
Visual Studio Code ツールバーのデタッチを選択して、アタッチ デバッグ セッションを停止します。