適用於: Power Apps
原始 KB 編號: 4552163
如果與按鈕相關聯的命令上所有啟用規則和顯示規則評估為 true,就會顯示按鈕。 如果這是非預期的,則命令定義可能已被覆寫,而且遺漏了啟用規則或顯示規則,或是覆寫規則定義本身,並在您預期會隱藏按鈕時顯示。
注意
某些按鈕無法自定義。 如需詳細資訊,請參閱 功能區中的不可自定義按鈕。
警告
請勿從命令移除 Mscrm.HideOnModern
顯示規則,強制按鈕出現在整合介面中。 具有顯示規則的 Mscrm.HideOnModern
命令適用於舊版 Web 用戶端介面,且在整合介面中不受支援,而且可能無法正常運作。
啟用命令檢查程式,然後選取要檢查的命令按鈕。
下列範例顯示活動方格頁面上的兩 個 [約會 ] 按鈕,而其中一個應該隱藏。
選取 [ 命令屬性] 索引標籤,以顯示此按鈕的命令詳細數據。 這會顯示動作、啟用規則和顯示規則,以及每個規則評估的結果(True、 False、 略過)。 檢閱啟用規則和顯示規則,如果您預期特定規則應該評估為 false,則規則可能自定義不正確,或不符合傳回 False 結果的必要情況。 若是如此,請跳至步驟 9,否則命令可能會遺失規則或規則,我們將檢視命令解決方案層以進行進一步分析。
選取命令名稱下方的 [ 檢視命令定義方案層] 連結,以檢視已安裝命令定義的方案。
[解決方案層] 窗格會顯示已安裝特定解決方案的每個功能區元件定義的分層。 清單頂端的圖層是應用程式所使用的目前定義,其他層則為非使用中,且目前應用程式不會使用。 如果卸載最上層解決方案,或已安裝移除定義的更新版本,則下一層會變成應用程式所使用的目前使用中定義。 當非受控 作用 中解決方案層存在時,它一律會是應用程式所使用的定義。 如果沒有列出的作用中解決方案,則清單頂端所列的解決方案將會是應用程式所使用的定義。 任何未由Microsoft發行的自定義受控解決方案,也會優先於Microsoft已發行的解決方案層。
實體內容指出功能區自定義所開啟的物件,如果列出「所有實體」,則圖層來自應用程式功能區用戶端延伸模組,而非實體特定,否則會列出實體的邏輯名稱。
當有兩個以上的圖層時,您可以選取兩個數據列,然後選取 [比較 ] 以檢視每個解決方案引進的定義比較。
選取 [上一頁 ] 會返回上一個 [命令檢查程式] 視窗。
如果只有一個解決方案層,請跳至步驟 9,否則請選取前兩個解決方案層(如果您有作用中解決方案中的圖層,但未列在頂端,請選取 [作用中解決方案層],然後選取頂端數據列),然後選取 [ 比較]。
如果有任何差異,則會顯示目前使用中定義的比較和先前的非使用中定義。 下列範例顯示已使用移除非使用中Microsoft已發行解決方案層中包含的顯示規則 Mscrm.HideOnModern
來自定義的非受控作用中 msdynce_ActivitiesPatch
定義。
修正按鈕可見度所需的方法將取決於您特定案例中的各種自定義。 如果您判斷規則未正確評估為 false,且規則定義未正確定義,則您應該修改規則定義,並進行變更,讓規則在適當情況下評估為 false。 如果規則定義正確,則可能不符合將規則傳回 false 的需求,例如未正確指派域值或安全性許可權。 根據您的規則定義,需求可能會有很大的差異,請參閱 定義功能區啟用規則和 定義功能區顯示規則。 考慮到我們的範例,命令是透過移除顯示規則來自定義的 Mscrm.HideOnModern
。 此顯示規則旨在隱藏此特定按鈕,不要顯示在整合介面應用程式中,而且只能在舊版 Web 用戶端介面中顯示。 我們可以修改命令的自定義版本,並將遺漏的 Mscrm.HideOnModern
顯示規則新增至命令定義。 由於這是Microsoft已發佈定義的自定義覆寫,而且沒有任何其他刻意修改,因此建議刪除這個自定義版本的命令,以還原預設功能。
修復選項
從下列其中一個索引標籤中選取修復選項。 默認會選取第一個索引標籤。
如何刪除命令
如果有另一個解決方案層包含此命令的工作定義,您可以刪除此定義以還原下一個非使用中的工作定義。
如果這是唯一的圖層,而且您不再需要命令,則如果沒有其他按鈕參考命令,則可以從解決方案中移除它。
選取符合您特定案例的下列其中一個選項:
此命令位於 Unmanaged Active 解決方案中
若要刪除 Active Unmanaged 解決方案層中的命令,我們會匯出包含實體或應用程式功能區的 Unmanaged 方案,並編輯<RibbonDiffXml>
customizations.xml檔案中的節點,然後匯入這個解決方案的新版本,其中已移除此命令以刪除元件。 請參閱 匯出、準備編輯和匯入功能區。
此命令是實體特定的
根據我們的範例案例,我們發現實體是 activitypointer,而需要刪除Mscrm.CreateAppointment
的命令是 ,而且它會從名為 DefaultPublisherCITTest 的發行者,在 Active Unmanaged 解決方案層中宣告該實體。
開啟 [ 進階設定]。
流覽至 [設定] ->[解決方案]。
選取 [新增 ] 以建立新的解決方案,將 [發行者] 設定為命令和作用中解決方案層的 [命令檢查器] 解決方案層列表中顯示的值。 (在我們的範例中,這是 DefaultPublisherCITTest)。
選取 [實體>新增現有]。
選取您命令所定義的實體 (在我們的範例中,這是 activitypointer),然後選取 [ 確定]。
請務必取消核取 [包含實體元數據],然後取消核取 [新增所有資產選項],再選取 [完成]。
選取儲存。
選取 [導出解決方案 ],然後匯出 Unmanaged 解決方案。
解壓縮 .zip 檔。
開啟customizations.xml檔案。
<Entity>
找出您想要編輯之實體節點的節點子節點,並找出其子<RibbonDiffXml>
節點。
<CommandDefinition>
找出節點 (在我們的範例中,節點的<CommandDefinition>
標識碼是 Mscrm.CreateAppointment
,因此我們會找到下列節點。
編輯節點, <RibbonDiffXml>
並移除具有您想要刪除之命令標識碼的特定 <CommandDefinition>
節點。 請確定您不小心刪除可能存在的其他 <CommandDefinition>
節點。 (根據我們的範例,我們會刪除 <CommandDefinition>
標識碼為 Mscrm.CreateAppointment
的節點。
儲存 customizations.xml 檔案。
將修改 過的 customizations.xml檔案新增回方案.zip檔案。
匯入方案檔。
選取發佈所有自訂。
命令位於應用程式功能區中(適用於「所有實體」)
如果命令不是實體特定的,而是適用於應用程式功能區中宣告的「所有實體」,則步驟會稍有不同,如下所示:
- 開啟 [ 進階設定]。
- 瀏覽至設定>解決方案
- 選取 [新增 ] 以建立新的解決方案,將 [發行者] 設定為命令和作用中解決方案層的 [命令檢查器] 解決方案層列表中顯示的值。
- 選取 [用戶端延伸模組>][新增現有的>應用程式功能區]。
- 選取儲存。
- 選取 [導出解決方案 ],然後匯出 Unmanaged 解決方案。
- 解壓縮 .zip 檔。
- 開啟customizations.xml檔案。
- 找出根
<RibbonDiffXml>
節點。
<CommandDefinition>
找出 。
- 編輯節點,
<RibbonDiffXml>
並移除 <CommandDefinition>
具有您想要刪除之命令標識碼的節點。 請確定您不小心刪除可能存在的其他 <CommandDefinition>
節點。
- 儲存 customizations.xml 檔案。
- 將修改 過的 customizations.xml檔案新增回壓縮方案.zip檔案。
- 匯入方案檔。
- 選取發佈所有自訂。
此命令來自我公司撰寫的自定義受控解決方案
若要刪除您所建立之自定義受控解決方案所安裝的命令,請遵循下列步驟:
- 在具有自定義解決方案非受控來源版本的個別開發組織中,完成上述命令 的步驟位於 Unmanaged Active solution 選項中。
- 遞增自定義解決方案的版本。
- 將解決方案導出為受控。
- 在您的個別受影響的組織中,匯入這個新版的自定義受控解決方案。
此指令來自我的公司未撰寫的自訂受控解決方案(來自第三方/ISV)
若要刪除由第三方/ISV 所建立的自定義受控解決方案所安裝的命令,您必須連絡解決方案的作者,並要求已移除特定命令定義的新版本解決方案,然後將這個新解決方案安裝到受影響的組織。
如何將遺漏的啟用/顯示規則新增至命令
如果對需要保留的命令進行修改,但仍想要在適當情況下隱藏按鈕,您可以將遺漏的啟用/顯示規則新增至命令,而不是刪除自定義定義。
選取符合您特定案例的下列其中一個選項:
此命令位於 Unmanaged Active 解決方案中
如果您判斷命令定義中遺漏了啟用/顯示規則,則可以修改 <CommandDefinition>
節點並新增規則以達到所需的行為。 若要修正 Active Unmanaged 解決方案層中的命令,我們會匯出包含實體或應用程式功能區的 Unmanaged 方案,並編輯<RibbonDiffXml>
customizations.xml檔案中的節點,然後匯入包含固定命令定義的新版本此解決方案。 請參閱 匯出、準備編輯和匯入功能區。
此命令是實體特定的
根據我們的範例案例,我們發現實體是 activitypointer,而需要修正Mscrm.CreateAppointment
的命令是 ,而且它是從名為 DefaultPublisherCITTest 的發行者在 Active Unmanaged 解決方案層中宣告的。
開啟 [ 進階設定]。
瀏覽至設定>解決方案。
選取 [新增 ] 以建立新的解決方案,將 [發行者] 設定為命令和作用中解決方案層的 [命令檢查器] 解決方案層列表中顯示的值。 (在我們的範例中,這是 DefaultPublisherCITTest)
選取 [實體>新增現有]。
選取您命令所定義的實體 (在我們的範例中,這是 activitypointer),然後選取 [ 確定]。
選取 [完成] 之前,請務必取消核取 [包含實體元數據] 和 [新增所有資產] 選項。
選取儲存。
選取 [導出解決方案 ],然後匯出 Unmanaged 解決方案。
解壓縮 .zip 檔。
開啟customizations.xml檔案。
<Entity>
找出您要編輯之實體節點的節點子節點,並找出其子<RibbonDiffXml>
節點。
<CommandDefinition>
找出節點。 在這裡範例中,節點的 <CommandDefinition>
識別碼為 Mscrm.CreateAppointment
。 因此,您會找到下列節點:
<RibbonDiffXml>
編輯節點,並對節點進行必要的變更<CommandDefinition>
,以便命令在正確情況下正確運作,以修正命令。 如需如何宣告命令的詳細資訊,請參閱 定義功能區命令。 (根據我們的範例,我們會藉由新增Mscrm.HideOnModern
正確隱藏此按鈕的顯示規則來修改<CommandDefinition>
節點。
將修改 過的 customizations.xml檔案還原至方案.zip檔案。
匯入方案檔。
選取發佈所有自訂。
命令位於應用程式功能區中(適用於「所有實體」)
如果命令不是實體特定的,而是適用於應用程式功能區中宣告的「所有實體」,則步驟會稍有不同,如下所示:
- 開啟 [ 進階設定]。
- 瀏覽至設定>解決方案。
- 選取 [新增 ] 以建立新的解決方案,將 [發行者] 設定為命令和作用中解決方案層的 [命令檢查器] 解決方案層列表中顯示的值。
- 選取 [用戶端延伸模組>][新增現有的>應用程式功能區]。
- 選取儲存。
- 選取 [導出解決方案 ],然後匯出 Unmanaged 解決方案。
- 解壓縮 .zip 檔。
- 開啟customizations.xml檔案。
- 找出根
<RibbonDiffXml>
節點。
<CommandDefinition>
找出 。
- 編輯
<RibbonDiffXml>
並對節點進行必要的變更 <CommandDefinition>
,以便命令在正確情況下正確運作,以修正命令。 如需如何宣告命令的詳細資訊,請參閱 定義功能區命令。
- 將修改 過的 customizations.xml檔案新增回方案.zip檔案。
- 匯入方案檔。
- 選取發佈所有自訂。
此命令來自我撰寫的自定義受控解決方案
若要修正您所建立之自定義受控解決方案所安裝的命令,請遵循下列步驟:
- 在具有自定義解決方案非受控來源版本的個別開發組織中,完成上述命令 的步驟位於 Unmanaged Active solution 選項中。
- 遞增自定義解決方案的版本。
- 將解決方案導出為受控。
- 在您的個別受影響的組織中,匯入這個新版的自定義受控解決方案。
此指令來自我未撰寫的自訂受控解決方案,或我的組織沒有擁有 (亦即來自第三方/ISV)
若要修正由第三方/ISV 所建立的自定義受控解決方案所安裝的命令,您必須連絡解決方案的作者,並要求包含固定命令定義的新版本解決方案,並將這個新解決方案安裝到受影響的組織。
命令位於Microsoft已發佈的受控解決方案中
若要修正Microsoft已發佈受控解決方案所安裝的命令,您可能需要安裝較新版本的解決方案,這通常會在發行更新期間完成。 您有可能識別出仍然需要修正的 Bug。 請連絡客戶支援以取得協助。
如何修正啟用/顯示規則
選取規則名稱下方的 [ 檢視規則定義方案層] 連結,以檢視已安裝規則定義的解決方案。
[解決方案層] 窗格會顯示已安裝特定解決方案的每個功能區元件定義的分層。 清單頂端的圖層是應用程式所使用的目前定義,其他層則為非使用中,且目前應用程式不會使用。 如果卸載最上層解決方案,或已安裝移除定義的更新版本,則下一層會變成應用程式所使用的目前使用中定義。 當非受控 作用 中解決方案層存在時,它一律會是應用程式所使用的定義。 如果沒有列出的作用中解決方案,則清單頂端所列的解決方案將會是應用程式所使用的定義。 任何未由Microsoft發行的自定義受控解決方案,也會優先於Microsoft已發行的解決方案層。
實體內容指出功能區自定義所開啟的物件,如果列出「所有實體」,則圖層來自應用程式功能區用戶端延伸模組,而非實體特定,否則會列出實體的邏輯名稱。
當有兩個以上的圖層時,您可以選取兩個數據列,然後選取 [比較 ] 以檢視每個解決方案引進的定義比較。
選取 [上一頁 ] 會返回上一個 [命令檢查程式] 視窗。
下圖顯示範例中啟用規則的解決方案層,並指出此案例中有一個解決方案層,而且它是非 受控自定義,如名為 Active 的解決方案所表示。 您的實際案例可能不同,您可能不是作用中解決方案層,您可能有受控解決方案,且該解決方案的名稱將會列在這裡。
既然我們已檢閱解決方案層,並識別已安裝自定義的方案,我們必須修正適當的解決方案中的定義。
選取符合您特定案例的下列其中一個選項:
啟用/顯示規則位於 Unmanaged Active 解決方案中
若要修正 Active Unmanaged 解決方案層中的啟用/顯示規則,我們會匯出包含實體或應用程式功能區的 Unmanaged 方案,並編輯<RibbonDiffXml>
customizations.xml檔案中的節點,然後匯入包含固定啟用/顯示規則定義的新版本此解決方案。 請參閱 匯出、準備編輯和匯入功能區。
啟用/顯示規則是實體特定的
根據我們的範例案例,我們識別出實體是連絡的,而且需要修正的啟用規則是 new.contact.EnableRule.EntityRule
,而且它會在名為 DefaultPublisherCITTest 的發行者之 Active Unmanaged 解決方案層中宣告。
開啟 [ 進階設定]。
瀏覽至設定>解決方案。
選取 [新增 ] 以建立新的方案,將 [發行者] 設定為啟用規則和作用中解決方案層的 [命令檢查器] 解決方案層清單中顯示的值。 (在我們的範例中,這是 DefaultPublisherCITTest)
選取 [實體>新增現有]。
選取您啟用/顯示規則所定義的實體(在我們的範例中,這是 聯繫人),然後選取 [ 確定]。
選取 [完成] 之前,請務必取消核取 [包含實體元數據] 和 [新增所有資產] 選項。
選取儲存。
選取 [導出解決方案 ],然後匯出 Unmanaged 解決方案。
解壓縮 .zip 檔。
開啟customizations.xml檔案。
<Entity>
找出您想要編輯之實體節點的節點子節點,並找出其子<RibbonDiffXml>
節點。
找出啟用/顯示規則。 在這裡範例中,啟用規則的識別碼為 new.contact.EnableRule.EntityRule
。 因此,您會找到下列節點:
<RibbonDiffXml>
編輯節點,並對啟用/顯示規則進行必要的變更,讓規則在正確情況下評估為 True,以修正規則。 如需如何宣告規則的詳細資訊,請參閱 定義功能區啟用規則和 定義功能區顯示規則。 (根據我們的範例,我們會將規則定義變更為下列專案)
將修改 過的 customizations.xml檔案新增回方案.zip檔案。
匯入方案檔。
選取發佈所有自訂。
開啟/顯示規則位於應用程式功能區中(適用於「所有實體」)
如果啟用/顯示規則不是實體特定的,而是適用於應用程式功能區中宣告的「所有實體」,則步驟會稍有不同,如下所示:
- 開啟 [ 進階設定]。
- 瀏覽至設定>解決方案。
- 選取 [新增 ] 以建立新的方案,將 [發行者] 設定為 [命令檢查工具] 解決方案層清單中針對啟用/顯示規則和作用中解決方案層顯示的值。
- 選取 [用戶端延伸模組>][新增現有的>應用程式功能區]。
- 選取儲存。
- 選取 [導出解決方案 ],然後匯出 Unmanaged 解決方案。
- 解壓縮 .zip 檔。
- 開啟customizations.xml檔案。
- 找出根
<RibbonDiffXml>
節點。
- 找出啟用/顯示規則。
<RibbonDiffXml>
編輯節點,並對啟用/顯示規則進行必要的變更,讓規則在正確情況下評估為 True,以修正規則。 如需如何宣告規則的詳細資訊,請參閱 定義功能區啟用規則和 定義功能區顯示規則。
- 將修改 過的 customizations.xml檔案新增回方案.zip檔案。
- 匯入方案檔。
- 選取發佈所有自訂。
啟用/顯示規則來自我撰寫的自定義受控解決方案
若要修正由您所建立的自定義受控解決方案所安裝的啟用/顯示規則,請遵循下列步驟:
- 在具有自定義解決方案非受控來源版本的個別開發組織中,完成上述的 啟用/顯示規則位於 Unmanaged Active 解決方案 選項中的步驟。
- 遞增自定義解決方案的版本。
- 將解決方案導出為受控。
- 在您的個別受影響的組織中,匯入這個新版的自定義受控解決方案。
開啟/顯示規則來自我未撰寫的自訂受控解決方案,或我的組織沒有擁有 (來自第三方/ISV)
若要修正由第三方/ISV 所建立的自定義受控解決方案所安裝的啟用/顯示規則,您必須連絡解決方案的作者,並要求包含固定啟用/顯示規則定義的新版本解決方案,並將這個新解決方案安裝到受影響的組織中。
啟用/顯示規則位於Microsoft已發佈的受控解決方案中
若要修正Microsoft已發佈的受控解決方案所安裝的啟用/顯示規則,您可能需要安裝較新版本的解決方案,這通常會在發行更新期間完成。 您有可能識別出仍然需要修正的 Bug。 請連絡客戶支援以取得協助。
參考
模型驅動應用程式功能區的命令檢查程式