コマンド バー アプリケーション ライフサイクル管理

完了

Power Apps モデル駆動型アプリでコマンド バーをカスタマイズすると、Microsoft Dataverse ソリューションによってカスタマイズが追跡されます。 Dataverse ソリューションでは、開発からテスト、実稼働へと、ある Power Platform 環境から別の環境へとコマンドバーカスタマイズ、アプリ、および関連するソリューション コンポーネントへ転送できます。

コマンド バー デザイナーで最初のコマンドを作成する際に、コンポーネント ライブラリが必要かどうかを決定するコマンドの種類を選択します。 コンポーネント ライブラリは、表示方法またはコマンドの OnSelect に対して Power Fx ロジックを使用する場合に必要です。 コマンド ロジックに対して、Power Fx または JavaScript を選択できるダイアログを次に示します。

JavaScript のみを使用する場合は、コンポーネント ライブラリは不要です。 ただし、[コマンド プロパティ] パネルで [式の実行] または [式の条件を表示する] を選択して、いつでも使用できるコンポーネント ライブラリを作成し、Power Fx を使用できます。 この変更を行った場合、コンポーネント ライブラリの作成を促すメッセージが表示されます。

通常、アプリおよび関連資産に対してカスタム ソリューションを作成するのが最適です。 アプリがカスタム Dataverse ソリューションにある場合、コンポーネント ライブラリも同じソリューションに追加されます。 そうでない場合は、アプリおよびコンポーネント ライブラリは既定の Common Data Services 既定のソリューションに追加されます。 コンポーネント ライブラリの名前には、アプリケーション名と DefaultCommandLibrary が使用されます。 以下は、テーブル、アプリ、コンポーネント ライブラリを含むソリューションを示しています。

複数のアプリケーションでコマンド バーをカスタマイズし、Power Fx を使用した場合は、それぞれ対応するコンポーネント ライブラリが存在します。

コンポーネント ライブラリには、コマンド バー のコマンドに対して使用されるそれぞれの Power Fx 式のコンポーネントが追加されます。 表示ラベル、アイコン、ヒントなどのその他のプロパティは独立しており、モデル駆動型アプリの定義の一部です。 Dataverse ソリューションがこれらのリソースの追跡を行う場所ついては、Power Platform 環境間での転送の変更に影響を及ぼすため、理解する必要があります。 注意深く進めないと、コマンド定義を構成する 2 つのソリューション リソースをターゲット環境で直接変更した場合、その同期が取れなくなる可能性があります。 たとえば、ソリューションをマネージドとして開発環境からテスト環境に移動してから、テスト環境で直接何らかの変更を加える場合です。 誰かがアプリケーションを公開し、ユーザーがそれを自分の開発環境にインポートしてカスタマイズすると、また同期がとれなくなります。 元のアプリ開発者からのコマンド バーの変更のある将来の更新されたバージョンは、ユーザーがカスタマイズのソリューション レイヤーを作成したために表示されません。

コマンド バー コマンドに対する最新の変更が表示されない場合は、ソリューション レイヤーを確認して、管理されていない変更が行われたか確認し、最新バージョンが表示されるのを防ぐ必要があります。 これを行うには、ソリューション エクスプローラーでコンポーネント ライブラリを選択し、[詳細 > ソリューションの階層を表示] を選択します。 以下は、管理ソリューションの上で更新が行われたコンポーネント ライブラリの例です。

この例では、この環境で誰かがアンマネージド レイヤーの変更行ったため、ユーザーが更新をインポートすると、アンマネージド レイヤーの変更を削除するまでこの環境で更新はアクティブになりません。

開発環境でのみ変更を行い、インポートしたソリューションの上で変更のレイヤーの意図しない作成を回避することをお勧めします。 さらに、コンポーネント ライブラリの管理プロパティ設定を更新して、コンポーネント ライブラリをカスタマイズできないとマークすることもできます。

管理プロパティの設定を使用すると、コンポーネント ライブラリのカスタマイズを無効にできます。

カスタマイズを無効にすると、Visibility および OnSelect のフォームのカスタマイズが回避されますが、Display Label などの他のコマンド プロパティの変更は回避されません。 有効にした場合、ソリューションをマネージドとしてエクスポートし、別の環境にインポートした後にのみ有効になります。 マネージドとしてインポート後に変更しようとすると、その変更が回避され、次のエラーが表示されます。

ローカライズ サポート

コマンド バーをカスタマイズしてコマンドを追加すると、ラベルを他の言語に翻訳する必要があるかもしれません。 コマンドに翻訳を提供するには、次の手順を実行します。

  • ソリューション エクスプローラーで、[翻訳 > 翻訳のエクスポート] を選択します。

  • エクスポートが完了すると、エクスポートされた翻訳の圧縮 (zip) ファイルがブラウザーの既定のダウンロード フォルダーにダウンロードされ、これにはエクスポートされたラベルが格納されます。

  • XML ファイルを圧縮 (.zip) ファイルから展開します。

  • CrmTranslations.xml ファイルを Excel で開きます。

  • 「ローカライズされたラベル」という名前のシートを選択します。

「ローカライズされたラベル」シートで、エンティティ名に "appaction" が含まれる場所まで下にスクロールします。 各コマンド バー コマンドには、テキスト、ヒント、説明のような各プロパティを表す複数の行を含めることができます。 ボタンごとに、1034 (スペイン語) ワークシートの列に含まれるような翻訳を入力します。

変更が完了したら、ファイルを保存し、ファイルを新しい圧縮ファイルに圧縮します。 [翻訳 > 翻訳のインポート] メニュー オプションを使用して、Dataverse ソリューション内の翻訳を更新します。 ラベルを更新するか、コマンド バーにコマンドを追加する際に、このプロセスを繰り返します。

Dataverse ソリューションは、コマンド バーでのカスタマイズを追跡し、ある環境から別の環境に転送することを許可する上で重要です。 また、ソリューションは、ソリューション コンポーネント間の依存関係を確保する上でも重要な役割を果たします。 依存関係により、アプリがコマンド バー Power Fx の式によって依存するコンポーネント ライブラリの削除といった誤りを防ぎます。 コマンド バーに対するカスタマイズを開始する際は、カスタム ソリューション、アプリ、およびコンポーネント ライブラリが一緒に機能していることを確認する時間を設けます。 これによりソリューションをエクスポートする際に、解決するべき依存関係の不足を心配する必要がなくなります。