次の方法で共有


最新のコマンドのスコープ

コマンドには、3 つのスコープのいずれかがあります。 スコープは、コマンド (schemaname = appaction) は、単一のアプリ内のテーブル、すべてのアプリにわたるテーブル、またはすべてのテーブルとすべてのアプリに対してレンダリングされます。

コマンドは、スコープに関係なく、メイングリッドやメイン フォームなどのコマンド バーの場所にバインドする必要があります。 したがって、スコープを変更しても、メイン グリッドやメイン フォームなどの異なるコマンド バーの場所にコマンドが表示されることはありません。

  • アプリ これは、最新のコマンドデザイナーを使用してコマンドを作成または編集する際に、最も狭い範囲と既定の動作です。 コマンド デザイナーは、モデル駆動型アプリ、テーブル、コマンド バーの場所のコンテキスト内で開かれます。
  • テーブル エンティティ スコープとも呼ばれます。 特定のテーブルとコマンド バーの場所にバインドされます。 特定のアプリにバインドされていません。 そのため、テーブルを使用するすべてのアプリで、テーブル スコープのコマンドがレンダリングされます。 例えば、取引先企業テーブルとメインフォームの場所を指定するテーブル スコープ コマンドは、取引先企業レコードのメイン フォームを表示する際に、すべてのアプリに存在することになります。
  • グローバル これが最も広い範囲です。 グローバル スコープ コマンドは、コマンド バーの場所にのみバインドされ、アプリやテーブルにはバインドされません。 たとえば、メイン フォームの場所を指定するグローバル スコープのコマンドは、すべてのテーブルのメイン フォームを表示する際に、環境内のすべてのアプリに存在する。

重要

アクションや可視性に Power Fx を使用したコマンドは、現時点ではテーブルやグローバル スコープに変換できません。

ドロップ ダウンリスト、グループ、分割ボタンの中にコマンドがネストされている場合、すべて同じスコープに設定する必要があります。

グローバル、またはテーブル・スコープのコマンドを最新のコマンド デザイナーで編集すると、アプリのスコープでコピー (インスタンス) が作成され、元のコマンドにリンクされます。 たとえば、コマンド デザイナでグローバル スコープ コマンドを編集すると、元のグローバル スコープ コマンドが上書きされますが、コマンド デザイナーを開くときに選択された特定のアプリとテーブルに対してのみ上書きされます。 他のすべてのアプリとテーブルは、元のコマンドをレンダリングします。 コピー (インスタンス) には、独自のライフサイクルがあります。 元のグローバルスコープコマンドを変更しても、新しいアプリ スコープ インスタンスには影響しません。その逆も同様です。

テーブルとグローバル スコープのコマンドを上書きする

より狭いスコープは、すべてのレベルでより広いスコープ コマンドを上書きできます。 最も狭い範囲が勝ちます。

  • テーブル (エンティティ) スコープ コマンドは、グローバル スコープのコマンドを上書きします。 すべてのテーブルで同じになるコマンドを定義できますが、特定のテーブルの動作のみを変更します。
  • アプリ スコープコマンドは他のすべてのスコープを上書きしますが、対象は特定のアプリとテーブルに対してのみです。

テーブル スコープ コマンドの作成方法

  1. コマンド デザイナを使用して、ソリューション内に 1 つ以上のコマンドを作成します。 または、別のソリューションを作成して、既存を追加 > テーブルを選択します。

  2. オブジェクトの選択を選択し、次に必要なコマンドを追加します。

  3. エクスポートを選択してソリューションをエクスポートします。

    ソリューションのエクスポート。

  4. 最近行った変更で、まだ公開されていないものがある場合は、公開を選択します。 続いて、実行を選択してソリューションに問題や依存関係があるかどうかを確認し、次へを選択します。

  5. Unmanaged オプションを選択し、エクスポート を選択します。

  6. ダウンロード ダイアログ ボックスで、保存 を選択し、ダウンロードの完了 ダイアログ ボックスで、フォルダを開く を選択します。

  7. ダウンロードした圧縮 .zip ファイルを右クリックして選択し、すべて展開 を選択します。

  8. ファイルを展開する場所を選択してから、展開 を選択します。

  9. 解凍したファイルのフォルダーを開き、appaction.xml ファイルを開いて、目的のコマンド (appaction) を見つけます。

  10. xml から appmoduleid ノードを削除します。

     <appmoduleid>
       <uniquename>demo_DemoFestApp</uniquename>
     </appmoduleid>
    
  11. 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 で圧縮します。 その後、ソリューションを環境にインポートし、動作をテストします。

グローバル スコープ コマンドの作成方法

  1. 上記と同じ手順に従って、appaction.xml ファイルを編集します。

  2. xml から appmoduleid ノードを削除します:

     <appmoduleid>
       <uniquename>demo_DemoFestApp</uniquename>
     </appmoduleid>
    
  3. appaction uniquename の値を変更します。 1 から 2 など、最後の文字のいずれかを変更するだけで十分です。または、必要に応じて、よりわかりやすい命名規則を使用することもできます。

  4. xml から contextentity ノードと contextvalue ノードを削除します:

    <contextentity>
     <logicalname>account</logicalname>
    </contextentity>
    <contextvalue>account</contextvalue>
    
  5. 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> を持たせます。

上書きの手順

  1. グローバルスコープコマンドの作成方法に記載の手順に従いますが、コマンド デザイナーを使用して 2 つのコマンドを作成します。

  2. 手順にあるように、ソリューションをエクスポートして、appactions.xml ファイルを編集します。

  3. 手順に従って、1 つのグローバル スコープコマンドと 1 つのエンティティ スコープ コマンドを作成します。

  4. グローバル・スコープとエンティティ・スコープの両方のコマンドで、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 分かかります。 個人データは収集されません (プライバシー ステートメント)。