最新のコマンドのスコープ
コマンドには、3 つのスコープのいずれかがあります。 スコープは、コマンド (schemaname = appaction
) は、単一のアプリ内のテーブル、すべてのアプリにわたるテーブル、またはすべてのテーブルとすべてのアプリに対してレンダリングされます。
コマンドは、スコープに関係なく、メイングリッドやメイン フォームなどのコマンド バーの場所にバインドする必要があります。 したがって、スコープを変更しても、メイン グリッドやメイン フォームなどの異なるコマンド バーの場所にコマンドが表示されることはありません。
- アプリ これは、最新のコマンドデザイナーを使用してコマンドを作成または編集する際に、最も狭い範囲と既定の動作です。 コマンド デザイナーは、モデル駆動型アプリ、テーブル、コマンド バーの場所のコンテキスト内で開かれます。
- テーブル エンティティ スコープとも呼ばれます。 特定のテーブルとコマンド バーの場所にバインドされます。 特定のアプリにバインドされていません。 そのため、テーブルを使用するすべてのアプリで、テーブル スコープのコマンドがレンダリングされます。 例えば、取引先企業テーブルとメインフォームの場所を指定するテーブル スコープ コマンドは、取引先企業レコードのメイン フォームを表示する際に、すべてのアプリに存在することになります。
- グローバル これが最も広い範囲です。 グローバル スコープ コマンドは、コマンド バーの場所にのみバインドされ、アプリやテーブルにはバインドされません。 たとえば、メイン フォームの場所を指定するグローバル スコープのコマンドは、すべてのテーブルのメイン フォームを表示する際に、環境内のすべてのアプリに存在する。
重要
アクションや可視性に Power Fx を使用したコマンドは、現時点ではテーブルやグローバル スコープに変換できません。
ドロップ ダウンリスト、グループ、分割ボタンの中にコマンドがネストされている場合、すべて同じスコープに設定する必要があります。
グローバル、またはテーブル・スコープのコマンドを最新のコマンド デザイナーで編集すると、アプリのスコープでコピー (インスタンス) が作成され、元のコマンドにリンクされます。 たとえば、コマンド デザイナでグローバル スコープ コマンドを編集すると、元のグローバル スコープ コマンドが上書きされますが、コマンド デザイナーを開くときに選択された特定のアプリとテーブルに対してのみ上書きされます。 他のすべてのアプリとテーブルは、元のコマンドをレンダリングします。 コピー (インスタンス) には、独自のライフサイクルがあります。 元のグローバルスコープコマンドを変更しても、新しいアプリ スコープ インスタンスには影響しません。その逆も同様です。
テーブルとグローバル スコープのコマンドを上書きする
より狭いスコープは、すべてのレベルでより広いスコープ コマンドを上書きできます。 最も狭い範囲が勝ちます。
- テーブル (エンティティ) スコープ コマンドは、グローバル スコープのコマンドを上書きします。 すべてのテーブルで同じになるコマンドを定義できますが、特定のテーブルの動作のみを変更します。
- アプリ スコープコマンドは他のすべてのスコープを上書きしますが、対象は特定のアプリとテーブルに対してのみです。
テーブル スコープ コマンドの作成方法
コマンド デザイナを使用して、ソリューション内に 1 つ以上のコマンドを作成します。 または、別のソリューションを作成して、既存を追加 > テーブルを選択します。
オブジェクトの選択を選択し、次に必要なコマンドを追加します。
エクスポートを選択してソリューションをエクスポートします。
最近行った変更で、まだ公開されていないものがある場合は、公開を選択します。 続いて、実行を選択してソリューションに問題や依存関係があるかどうかを確認し、次へを選択します。
Unmanaged オプションを選択し、エクスポート を選択します。
ダウンロード ダイアログ ボックスで、保存 を選択し、ダウンロードの完了 ダイアログ ボックスで、フォルダを開く を選択します。
ダウンロードした圧縮 .zip ファイルを右クリックして選択し、すべて展開 を選択します。
ファイルを展開する場所を選択してから、展開 を選択します。
解凍したファイルのフォルダーを開き、appaction.xml ファイルを開いて、目的のコマンド (appaction) を見つけます。
xml から appmoduleid ノードを削除します。
<appmoduleid> <uniquename>demo_DemoFestApp</uniquename> </appmoduleid>
appaction uniquename の値を変更します。 1 から 2 など、最後の文字のいずれかを変更するだけで十分です。または、必要に応じて、よりわかりやすい命名規則を使用することもできます。
例 XML。
<appaction uniquename="crdff_NewCommand!a078463b5d7c473d8965f0f80469f412!crdff_CustomApp!crdff_entity1!1">
<buttonlabeltext default="Show Alert">
<label description="Show Alert" languagecode="1033" />
</buttonlabeltext>
<buttonsequencepriority>10.0000000000</buttonsequencepriority>
<context>1</context>
<contextentity>
<logicalname>crdff_entity1</logicalname>
</contextentity>
<fonticon>AALinkedInLogo</fonticon>
<contextvalue>crdff_entity1</contextvalue>
<hidden>0</hidden>
<iscustomizable>1</iscustomizable>
<location>1</location>
<name>EntityScoped!a078463b5d7c473d8965f0f80469f412</name>
<onclickeventjavascriptfunctionname>ShowAppAlert</onclickeventjavascriptfunctionname>
<onclickeventjavascriptparameters>[]</onclickeventjavascriptparameters>
<onclickeventjavascriptwebresourceid>
<webresourceid>ac21ad24-3c11-ef11-b6u7-000d3a1d942c</webresourceid>
</onclickeventjavascriptwebresourceid>
<onclickeventtype>2</onclickeventtype>
<statecode>0</statecode>
<statuscode>1</statuscode>
<type>0</type>
</appaction>
appaction.xml ファイルを編集して保存した後、エクスポートしたのと同じフォーマットでソリューションを zip で圧縮します。 その後、ソリューションを環境にインポートし、動作をテストします。
グローバル スコープ コマンドの作成方法
上記と同じ手順に従って、appaction.xml ファイルを編集します。
xml から appmoduleid ノードを削除します:
<appmoduleid> <uniquename>demo_DemoFestApp</uniquename> </appmoduleid>
appaction uniquename の値を変更します。 1 から 2 など、最後の文字のいずれかを変更するだけで十分です。または、必要に応じて、よりわかりやすい命名規則を使用することもできます。
xml から contextentity ノードと contextvalue ノードを削除します:
<contextentity> <logicalname>account</logicalname> </contextentity> <contextvalue>account</contextvalue>
context の値を 1 から 0 に変更します。
<appaction uniquename="crdff_NewCommand1!8fe72a85-1f84-431e-ac56-854f1bfadc4e!1"> <buttonlabeltext default="Show Alert"> <label description="Show Alert" languagecode="1033" /> </buttonlabeltext> <buttonsequencepriority>10.0000000000</buttonsequencepriority> <context>0</context> <hidden>0</hidden> <iscustomizable>1</iscustomizable> <fonticon>AALinkedInLogo</fonticon> <location>1</location> <name>EntityScoped!a078463b5d7c473d8965f0f80469f412</name> <onclickeventjavascriptfunctionname>ShowGlobalAlert</onclickeventjavascriptfunctionname> <onclickeventjavascriptparameters>[]</onclickeventjavascriptparameters> <onclickeventjavascriptwebresourceid> <webresourceid>ac21ad24-3c01-ec11-b6e7-000d3a1d942c</webresourceid> </onclickeventjavascriptwebresourceid> <onclickeventtype>2</onclickeventtype> <statecode>0</statecode> <statuscode>1</statuscode> <type>0</type> </appaction>
appaction.xml ファイルを編集して保存した後、エクスポートしたのと同じフォーマットでソリューションを zip で圧縮します。 その後、ソリューションを環境にインポートし、動作をテストします。
グローバル スコープ コマンドをテーブル スコープで上書きする方法
この例は、グローバル スコープのコマンドが、特定のテーブルを除いてどこでも同じにしたい場合に使用します。
- エンティティ スコープのアクションは、
crdff_CustomApp
を除くすべてのアプリのcrdff_entity1
グリッドに表示されます。 - グローバル スコープのアクションは
crdff_entity1
を除くすべてのエンティティ グリッドに表示されます。
注意
グローバルまたはテーブルスコープのコマンドをアプリ スコープのコマンドで上書きするには、コマンド デザイナーを使用してコマンドを編集するだけです。
グローバル スコープのコマンドをテーブル スコープのコマンドで上書きするには、appactions.xml ファイルを変更して、同じ XML <name>
を持たせます。
上書きの手順
グローバルスコープコマンドの作成方法に記載の手順に従いますが、コマンド デザイナーを使用して 2 つのコマンドを作成します。
手順にあるように、ソリューションをエクスポートして、appactions.xml ファイルを編集します。
手順に従って、1 つのグローバル スコープコマンドと 1 つのエンティティ スコープ コマンドを作成します。
グローバル・スコープとエンティティ・スコープの両方のコマンドで、name プロパティがまったく同じになるように設定します。
グローバル スコープ コマンド XML の例
<appaction uniquename="crdff_NewCommand1!8fe72a85-1f84-431e-ac56-854f1bfadc4e!1">
<buttonlabeltext default="Show Alert">
<label description="Show Alert" languagecode="1033" />
</buttonlabeltext>
<buttonsequencepriority>10.0000000000</buttonsequencepriority>
<context>0</context>
<hidden>0</hidden>
<iscustomizable>1</iscustomizable>
<fonticon>AALinkedInLogo</fonticon>
<location>1</location>
<name>EntityScoped!a078463b5d7c473d8965f0f80469f412</name>
<onclickeventjavascriptfunctionname>ShowGlobalAlert</onclickeventjavascriptfunctionname>
<onclickeventjavascriptparameters>[]</onclickeventjavascriptparameters>
<onclickeventjavascriptwebresourceid>
<webresourceid>ac21ad24-3c01-ec11-b6e7-000d3a1d942c</webresourceid>
</onclickeventjavascriptwebresourceid>
<onclickeventtype>2</onclickeventtype>
<statecode>0</statecode>
<statuscode>1</statuscode>
<type>0</type>
</appaction>
テーブル スコープ コマンド XML の例
<appaction uniquename="crdff_NewCommand!a078463b5d7c473d8965f0f80469f412!crdff_entity1!1">
<buttonlabeltext default="Show Alert">
<label description="Show Alert" languagecode="1033" />
</buttonlabeltext>
<buttonsequencepriority>10.0000000000</buttonsequencepriority>
<context>1</context>
<contextentity>
<logicalname>crdff_entity1</logicalname>
</contextentity>
<fonticon>AALinkedInLogo</fonticon>
<contextvalue>crdff_entity1</contextvalue>
<hidden>0</hidden>
<iscustomizable>1</iscustomizable>
<location>1</location>
<name>EntityScoped!a078463b5d7c473d8965f0f80469f412</name>
<onclickeventjavascriptfunctionname>ShowEntityAlert</onclickeventjavascriptfunctionname>
<onclickeventjavascriptparameters>[]</onclickeventjavascriptparameters>
<onclickeventjavascriptwebresourceid>
<webresourceid>ac21ad24-3c01-ec11-b6e7-000d3a1d942c</webresourceid>
</onclickeventjavascriptwebresourceid>
<onclickeventtype>2</onclickeventtype>
<statecode>0</statecode>
<statuscode>1</statuscode>
<type>0</type>
</appaction>
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示