バージョン コントロール、メタデータ検索、およびナビゲーション
このチュートリアルでは、Microsoft Azure DevOps をコンフィギュレーションして、モデルのソース管理を有効にします。 これは、TODO タスクの作成および整理、メタデータおよびソース コードの検索、関連するモデル要素間の移動、モデルからのプロジェクトの作成を行う機能など、開発ツールでのその他の生産性機能について把握することにも役立ちます。
Azure DevOps 組織およびプロジェクトをコンフィギュレーションする
このセクションでは、Azure DevOps で新しいプロジェクトを作成します。 このプロジェクトはモデルのソース コードをホストします。 例として、フリート管理モデルを使用します。 組織で Azure DevOps をお持ちでない場合は、作成します。
Azure DevOps への登録、アカウントの作成、および新しいプロジェクトの作成
https://www.visualstudio.com/ に移動して Azure DevOps に新規登録します。 サインアップをクリックします。 Azure DevOps のアカウントを既に持っている場合は、この記事の後半の Azure DevOps チーム プロジェクトの作成 セクションに移動します。
Microsoft アカウントでサインインします。
メモ
組織のアカウント (Microsoft 365 ドメイン) を使用することも可能です。
Azure DevOps 組織を作成し、アカウントの URL を選択します。 Visual Studio でソース管理を設定する際に、開発用コンピューターから接続する URL を使用します。 次の図は、アカウント URL の例です。
アカウントが作成されると、アカウントのメイン ページに進むように指示され、そこで最初のプロジェクトの作成を求められます。
デモフリート管理プロジェクトを作成します。
メモ
このチュートリアルでは、財務と運用アプリの既定のオプションである Team Foundation Version Control (TFVC) を使用することを前提としています。 X++ 開発用にC++ を使用する方法の詳細については、Git の X++ を参照してください。
Azure DevOps チーム プロジェクトの作成
Azure DevOps 組織を既に持っている場合は、Microsoft Edge のアカウントに移動します。 この記事では、説明のための URL の例として .visualstudio.com を使用します。
https://www.visualstudio.com/ に移動します。
最近使用したプロジェクトとチーム で 新規 をクリックして新しいプロジェクトを作成します。
プロジェクト名フィールドに、フリート管理と入力し、説明を入力してからプロジェクトの作成をクリックします。
チーム プロジェクトで推奨するフォルダー構造を作成する
Microsoft Dynamics Lifecycle Services の自動コードアップグレードツールを使用して、以前のバージョンからコードを移行した場合、Azure DevOps チームのプロジェクトに以下のフォルダ構造が自動的に作成されます。
メタデータ フォルダーには、パッケージとモデルによって整理されたソース XML ファイルがあり、プロジェクトフォルダーには Visual Studio プロジェクトが含まれています。 コードを移行せず、最初から開始している場合、開発を開始する前に、チーム プロジェクト内のサーバーに類似したフォルダ構造を作成します。
Visual Studio をコンフィギュレーションしてチーム プロジェクトに接続する
Visual Studio を開きます。 マシンに管理者としてサインインしている場合は、管理者として Visual Studio を開く必要があります。
ツール > オプション > ソース管理 > プラグインの選択 の順にクリックします。
現在のソース管理プラグイン フィールドで Visual Studio Team Foundation Server を選択します。
チーム > Team Foundation Server に接続 を選択します。
チーム エクスプローラーで、チーム プロジェクトの選択をクリックします。
Team Foundation Server の選択ドロップダウン リストで、フリート管理プロジェクトをホストする Azure DevOps 組織を選択するか、メニューにない場合はサーバーをクリックします。
- Team Foundation Server の追加および削除 ダイアログ ボックスが開いたとき、追加 をクリックします。
- Azure DevOps 組織の URL を入力します。
- OKをクリックします。
- メッセージが表示されたら、Microsoft アカウントのユーザー名とパスワードを入力します。
チーム プロジェクト で フリート管理 チェック ボックスをオンにし、接続 をクリックします。
Azure DevOps プロジェクトをローカルのモデル ストアとプロジェクト フォルダーにマップ
モデル ストアのルート フォルダーには、アプリケーションの一部であるすべてのパッケージとモデルのソース ファイルが含まれています。 展開中には、複数のパッケージにまたがる複数のモデルのソース ファイルを使用するでしょう。 モデル ストアのルート フォルダーを Azure DevOps のチーム プロジェクト メタデータ フォルダーにマップすることをお勧めします。
Visual studio のチーム エクスプローラーで、このドキュメントで前に説明したようにチーム プロジェクトに接続します。
ソース管理エクスプローラーからチーム エクスプローラーを開きます。
チーム プロジェクトの メタデータ フォルダーを、ローカル ドライブのモデル ストアのルート フォルダー (通常は K:\AOSService\PackagesLocalDirectory) にマップします。例を以下の図に示します。
メモ
マシンの構成によっては、モデル ストアが I:\AosService\PackagesLocalDirectory または別のドライブの配下にある場合があります。
マップをクリックし、次のダイアログ ボックスで、No をクリックします。
同様に、/Trunk/Main/Projects サーバー フォルダーを、Visual Studio ソリューションとプロジェクト ファイルを保持する ローカル プロジェクト フォルダー にマッピングします。
シナリオ 1: フリート管理ソリューションを開き、Azure DevOps ソース管理に追加する
このセクションでは、Azure DevOps のソース管理にソリューションを追加するために必要なステップについて説明します。 このシナリオは、新しいモデルで開発を開始し、初めてソース管理に追加する場合に関係します。 コード移行シナリオまたは他の開発者により作成された新しいモデルを同期する場合は、以下の シナリオ 2 を参照してください。
FleetManagement ソリューションを開く
メモ
このプロジェクトは単なる一例です。 任意のプロジェクト/ソリューションを開いて、ソリューションをソース管理に追加するプロセスについて学習することができます。
- ファイルメニューで、開くをポイントし、プロジェクト/ソリューションをクリックします。
- デスクトップを参照し、FleetManagement フォルダーを開きます。
- FleetManagement という名前のソリューション ファイルを選択します。 表示されるファイル タイプは Microsoft Visual Studio Solution です。 ソリューション ファイルが自分のコンピューターにない場合、フリート管理サンプル アプリケーションのエンド アンド エンドのシナリオ の手順に従って作成します。
- 開く をクリックします。 ソリューションの読み込みには時間がかかる場合があります。
ソース コントロールへの FleetManagement ソリューションの追加
ソリューション エクスプローラーで、フリート管理ソリューションを右クリックして、ソリューションをソース管理に追加を選択します。
次のダイアログで、Team Foundation バージョン管理を選択し、次へをクリックします。
チーム プロジェクト ロケーションにて、以下画像のように プロジェクト を選択します。
メモ
サーバー プロジェクト フォルダ を FleetManagement ソリューションを含むローカルフォルダに既にマッピングしている場合は、手順2 と 3 を省略します。
[OK] をクリックします。
チーム エクスプ ローラー > 保留中の変更に移動し、チェックインをクリックして、ソリューションおよびモデル要素が Azure DevOps ソース管理にチェックインするようにします。
ソース コントロールへのモデル記述子ファイルの追加
すべての Visual Studio プロジェクトはモデルに属しています。 モデルは、通常 Visual Studio プロジェクトよりも大きなスコープ内にあるソース コードの配布と配置の単位です。 前のセクションでは、ソース管理にフリート管理ソリューションの要素のファイルを追加しました。 フリート管理モデルの要素をソース管理に追加したのは初めてのため、モデル記述子ファイルをチェックインする必要があります。
Visual Studio 内のチーム エクスプローラーで,ソース管理エクスプローラーを開きます。
メタデータ フォルダー (たとえば、\Trunk\Main\Metadata) を右クリックし、フォルダーへの品目の追加をクリックします。
モデル記述子ファイルを選択します。 モデル記述子ファイルは、モデルの XML ファイルのマニフェストです。 これは、モデルが属するパッケージの記述子フォルダーにあります。 次の図は、フリート管理モデルのモデル記述子ファイルが存在する場所の例を示しています (c:\packages\FleetManagement\Descriptor\FleetManagement.xml)。
メモ
マシンの構成によっては、モデル ストアが、K:\AosService\PackagesLocalDirectory、c:\AosService\PackagesLocalDirectory、または別のドライブの下にある場合があります。
完了 をクリックします。
メモ
ソリューションに 2 つのモデルの要素が含まれていたため、ソース管理に追加のモデル記述子ファイルを追加する必要があります: K:\AOSService\PackagesLocalDirectory\FleetManagementExtension\Descriptor\FleetManagementExtension.xml
保留中の品目をチェックインします。 これで、Azure DevOps の最新のクラウド ベースのソース コントロール システムとその他の多くのアプリケーション ライフ サイクルの機能を使用して、品目のフリート管理アプリケーションの開発をする準備が整いました。
ソース管理を試す
このセクションでは、FMRental テーブルにマイナーな変更を加え、変更内容をソース コード リポジトリ内の最新バージョンと比較します。
ソリューション エクスプローラーで、移行されたフリート管理 > データ モデル > テーブル > FMRental を選択します。
デザイナーを開けるには、FMRental をダブルクリックします。
フィールド ノードを右クリックし、新規 > 整数 をクリックします。
メソッド を右クリックして、新しいメソッドを追加します。
X++ コード エディターで、新たなメソッドにコメントを入力します。
既存メソッドにコメントを入力します。
FMRental を保存します。
チーム エクスプローラーで、FMRental.xml を右クリックして最新バージョンと比較を選択します。
比較 (差異) ウィンドウの違いを参照してください。
ソリューション エクスプローラーで FMRental テーブルを右クリックし、ソース管理 > 元に戻す > 保留中の変更を選択して変更を元に戻します。
次のダイアログで取り消しを確認し、差異ウィンドウを閉じます。
シナリオ 2: ソース管理からモデルを同期する
このセクションでは、Azure DevOps プロジェクトから既存のモデルおよびモデル要素を同期します。 同期は以下の場合に関連します。1) 以前のバージョンのコードを Lifecycle Services 経由で移行した。2) 別の開発者が新しいモデルまたは新しいモデル要素をチェックインし、それらを開発環境と同期させたい。
ソース管理エクスプローラーで、メタデータを右クリックして最新バージョンの取得を選択します。 最新バージョンを取得することにより、ローカル パッケージ フォルダーと最新のコードが同期されます。
別の方法として、詳細メニューを使用して固有のビルド バージョンまたは変更セットを同期することができます。
同期が完了し、新しいモデルを環境に同期させる場合は、Visual Studio からメタデータを更新する必要があります。
Dynamics 365 > モデル管理 > モデルの更新の順に移動します。
プロジェクト内の TODO タスクの整理
このセクションでは、X++コードに埋め込まれたタスク (TODO コメント) から Visual Studio プロジェクトを作成する方法について説明します。
ソリューション エクスプローラーで、移行されたフリート管理 > コード > クラス > FMDataHelper を選択してから、FMDataHelper をダブルクリックします。 X++ コード エディターが開きます。
任意のメソッド内に、TODO コメント (//TODO: my comment) を入力します。
他のフリート管理のクラスやテーブルを開き、さらに TODO コメントを追加します。
FleetManagement Migrated プロジェクトをリビルドします。
表示 > タスク一覧を選択し、Visual Studio タスク一覧ウィンドウを開きます。
ドロップダウン リストから コメント を選択します。
すべての作業項目を選択して右クリックし、新しいプロジェクトに追加 を選択します。
品目を追加することにより、新規プロジェクト ダイアログが開き、すべての TODO を含む新しいプロジェクトを作成できます。
このプロジェクトを作業プロジェクトとして保存し、TODO リストを管理することができます。
完了したら、チーム エクスプ ローラー ですべての保留中の変更を元に戻します。
FleetManagement ソリューションを閉じるには、ファイル > ソリューションを閉じるをクリックします。
メタデータ検索とナビゲーション ツールを使用して要素を検索し、プロジェクトを作成する
このセクションでは、アプリケーション全体でメタデータ ベースの検索を実行する方法を示します。
[メタデータ検索] ウィンドウの使用
Dynamics 365 > メタデータの検索とクリックします。
メタデータ検索ウィンドウの検索フィールドに、次のテキストを入力して会社間クエリを含むアプリケーション スイート モデルのすべてのテーブル挿入メソッドを検索します。
type:table,method name:insert code:"crosscompany" model:"Application Suite"
。検索が完了するまで待ちます。 これにはしばらく時間がかかる場合があります。
リスト内の結果をダブルクリックします。 コード エディターが開き、検索条件に一致する行にカーソルを移動します。
Ctrl キーを押しながら複数選択することで結果リストで複数の要素を選択し、右クリックして 新しいプロジェクトに追加 を選択します。 要素を追加することにより、選択した要素を含む新しいソリューションとプロジェクトを作成できます。
他の検索例を試す
検索結果を操作する前に、検索が完了するのを待つ必要はありません。 いつでも結果をダブルクリックして、検索条件に一致するメタデータまたはソース コードを表示することができます。 推奨される検索例を次に示します。
モデル アプリケーション スイートの表示モードおよび自動幅モードで定義された、垂直タブのコントロールを検索します。
type:form,formtabcontrol property:arrangeMethod=Vertical,ViewEditMode=view,WidthMode=Auto model:"Application Suite"
プロパティ heightmode = 列で、編集できないフォームですべてのグリッド コントロールを検索します。
type:form,formgridcontrol:allowedit=no,heightmode=column
アプリケーション スイート モデル内のすべての SimpleListDetail フォームを検索します。
type:formdesign property:style=simplelistdetail model:"Application Suite"
キーワード xpNum を含むインデックス フィールド名を持つすべてのテーブルを検索します。
type:table,tableindexfield anem: xpNum*
以前の検索条件にアクセスするには、検索バーのドロップダウン メニューを使用します。
関連する要素への移動
このセクションでは、アプリケーション エクスプローラーまたはソリューション エクスプローラーで関連要素を見つけることなく、ある要素から関連要素に移動する機能を紹介します。
アプリケーション エクスプローラーを開き、モデル ビューに切り替えます。
フリート管理 モデルで、ユーザー インターフェイス>メニュー項目>メニュー項目を表示>FMCustomer をクリックします。
FMCustomer を右クリックし、デザイナーを開く を選択します。
FMCustomer メニュー項目デザイナーでルート ノードを右クリックし、フォーム FMCustomer に移動するを選択します。
FMCustomer フォーム デザイナーが開きます。
FMCustomer フォームのデザイナーで、データ ソースを展開して、FMCustomer を右クリックしてからテーブル FMCustomer へ移動を選択します。
FMCustomer テーブル デザイナーが開きます。
同じ方法を使用すると、テーブル フィールドが参照する EDT 要素に移動できます。 ヒント: コンテキスト メニューを開くのではなく F9 キーを押します。 F9 キーを押すと、参照要素のデザイナーが開きます。 ヒント: 現在のプロジェクトに要素を追加するには、ドキュメント タブを右クリックし、プロジェクトへの追加を選択します。
アプリケーション エクスプローラーを使用してモデルからプロジェクトを作成
アプリケーション エクスプ ローラーを使用して、モデルのすべてまたは一部の要素を検索し、検索結果からプロジェクトを作成することができます。
要素のタイプでプロジェクトを整理するためのオプションがオンになっていることを確認します。 Dynamics 365 > オプション > プロジェクトの順に移動します。
アプリケーション エクスプローラーに移動し、目的のモデル内の要素を検索します。 たとえば、モデル: "フリート管理" を入力し、入力 をクリックします。
検索が完了したら、AOT ルート ノードを右クリックし、新しいプロジェクトへの検索結果の追加 を選択します。
新しいプロジェクト ダイアログ ボックスでプロジェクトのプロパティを指定し、OK をクリックしてプロジェクトを作成します。
ヒント
検索結果からプロジェクトを作成するには、すべての結果が同じモデル内にある限り、任意のタイプ、名前、またはその他のフィルタを検索に追加できます。 例: モデル:「フリート管理」 タイプ:テーブル名:^FM は、文字 FM で始まる名前を持つフリート管理モデルで、すべてのテーブルを返します。