本文內容
適用於: Power Apps
原始 KB 編號: 4552163
按鈕可能會隱藏,因為與評估為 false 的按鈕相關聯的命令 上有啟用規則 或顯示規則 。 可能是相關聯的命令具有 Mscrm.HideOnModern
顯示規則,可隱藏整合介面應用程式中的按鈕。 也可以建立 HideCustomAction ,以強制隱藏按鈕。 如果使用者離線,則不會顯示沒有 Mscrm.IsEntityAvailableForUserInMocaOffline
啟用規則的自定義命令和預設命令。
警告
EntityPrivilegeRule 類型的任何顯示規則,其 PrivilegeType 值為下列其中一個 (建立 、寫 入、刪除 、指派 、共用 ) 會在實體啟用 [行動裝置中只讀 ] 選項時評估為 false,這會強制實體只允許讀取 許可權。 在實體上啟用 [行動中只讀 ] 旗標時,一些最常用的默認系統規則會評估為 false 的范例如下所示,但不限於此清單 (Mscrm.CreateSelectedEntityPermission
、、Mscrm.CanWriteSelected
Mscrm.WritePrimaryEntityPermission
Mscrm.CanDeletePrimary
Mscrm.DeletePrimaryEntityPermission
Mscrm.CanSavePrimary
Mscrm.SharePrimaryPermission
Mscrm.DeleteSelectedEntityPermission
Mscrm.AssignSelectedEntityPermission
Mscrm.CanWritePrimary
Mscrm.WriteSelectedEntityPermission
Mscrm.ShareSelectedEntityPermission
) 。 您可以編輯實體並取消核取 [行動裝置中的只讀 ] 選項,以允許這些規則評估為 true,前提是規則所測試的許可權也會授與使用者。
請勿從命令中移除 Mscrm.HideOnModern
顯示規則,以強制按鈕出現在整合介面中。 具有顯示規則的 Mscrm.HideOnModern
命令適用於舊版 Web 用戶端介面,在整合介面中不支援,而且可能無法正確運作。
啟用 [命令檢查程式],然後選取要檢查的命令按鈕 。
下列範例顯示聯繫人實體方格頁面上的 [ 新增 ] 按鈕不可見,而且會以標示為 [新增] 的專案表示 (隱藏) 。
注意事項
如果您的按鈕未列出,可能是因為可能已安裝 HideCustomAction 自定義,或相關聯的命令具有 Mscrm.HideOnModern
顯示規則。 撰寫本指南時,命令檢查工具不會列出已由 或 Mscrm.HideOnModern
顯示規則隱藏的HideCustomAction
按鈕。 我們目前正在擴充此清單,以在未來的更新中包含此資訊。
注意事項
如果所有規則都評估為 True 時仍隱藏按鈕,可能是因為 方格中的內容敏感命令 。 在方格上選取記錄時,所有沒有 SelectionCountRule
元素的按鈕都會被視為與選取的記錄 () 無關。 而且即使其規則評估為 True ,也會隱藏它們。 請注意,飛出視窗不會受到影響,因為飛出視窗子系可能仍有以記錄為基礎的命令。
選取 [ 命令屬性] 索引標籤,以顯示此按鈕的命令詳細數據。 這會顯示啟用規則和顯示規則,以及每個規則評估結果 (True 、 False 、 Skipped ) 。 下列範例顯示新 (隱藏) 按鈕的 命令 Mscrm.NewRecordFromGrid
,而且有名為的啟用 new.contact.EnableRule.EntityRule
規則已評估為 False ,因此按鈕將會隱藏。
Expand the new.contact.EnableRule.EntityRule
enable rule, by selecting on the chevron icon to view the details of the rule. 若要瞭解規則評估為 True 或 False 的原因,需要稍微瞭解規則類型。 如需每種規則類型的詳細資訊,請 參閱定義功能區啟用規則 和 定義功能區顯示規則 。 下列範例顯示規則類型是 Entity ,而實體邏輯名稱是 account 。 由於目前的實體是 聯繫 人,不等於 帳戶 ,因此此規則會傳回 False。
修正按鈕可見度所需的方法,將取決於您特定案例中的各種自定義專案。 考慮我們的範例:
如果此規則是以錯誤方式建立,讓規則中宣告的實體想要 連絡 ,但設定為 帳戶 ,您可以編輯 new.contact.EnableRule.EntityRule
啟用規則,並進行允許規則評估為 true 的變更。
如果意外地將此規則新增至命令,您可以修改 Mscrm.NewRecordFromGrid
命令,並從命令定義中移除 new.contact.EnableRule.EntityRule
啟用規則。
如果命令是 Microsoft 已發布定義的覆寫,則可以刪除此自定義版本的命令來還原預設功能。
修復選項
從下列其中一個索引標籤中選取修復選項。 默認會選取第一個索引標籤。
如何刪除命令
如果有另一個解決方案層包含命令的工作定義,您可以刪除定義來還原非作用中的工作定義。
如果這是唯一的一層,而且您不再需要命令,則如果沒有其他按鈕參考命令,您可以從解決方案中移除它。
若要刪除命令,我們必須判斷安裝自定義的解決方案:
選取命令名稱下方的 [ 檢視命令定義解決方案層] 連結,以檢視安裝命令定義的解決方案 () 。
[方案圖層] 窗格會顯示特定解決方案已安裝之每個功能區元件定義的分層。 清單頂端的圖層是應用程式目前使用的定義,其他層級則為非使用中,而應用程式目前不會使用。 如果頂端解決方案已卸載,或已安裝可移除定義的更新版本,則下一層將會成為應用程式目前使用的使用中定義。 當 Unmanaged Active 解決方案層存在時,它一律會是應用程式所使用的定義。 如果沒有列出使用中的解決方案,則清單頂端所列的解決方案將會是應用程式所使用的定義。 任何未由 Microsoft 發佈的自定義受控解決方案,也會優先於 Microsoft 發佈的解決方案層。
Entity 內容表示功能區自定義所在的物件,如果列出 [所有實體],則圖層來自應用程式功能區用戶端擴充功能,而非實體特定,否則會列出實體的邏輯名稱。
當有兩個以上的圖層時,您可以選取兩個數據列,然後選取 [ 比較 ] 以檢視每個解決方案所帶入之定義的比較。
選 取 [上一步 ] 會回到上一個 [命令檢查程式] 視窗。
下圖顯示範例中 命令的解決方案層,並指出聯繫人實體有解決方案層,其 為 Unmanaged 自定義,如標題為 Active 的解決方案所表示。 您的實際案例可能不同,您可能沒有 作用中的 解決方案層,您可能有受控解決方案,而該解決方案的名稱會列在這裡。
既然我們已檢閱解決方案層,並識別出已安裝自定義的解決方案,我們必須修正適當解決方案中的定義。
選取符合您特定案例的下列其中一個選項:
此命令位於非受控作用中解決方案中
若要刪除 Active Unmanaged 解決方案層中的命令,我們將匯出包含實體或應用程式功能區的 Unmanaged 解決方案,並編輯 <RibbonDiffXml>
customizations.xml 檔案中的節點,然後匯入此解決方案的新版本,其中已移除此命令以刪除元件。 請參閱 匯出、準備編輯和匯入功能區 。
此命令是實體特定的
根據我們的範例案例,我們發現實體是 聯繫 人,而需要刪除的命令是 Mscrm.NewRecordFromGrid
,而且它是從名為 DefaultPublisherCITTest 的發行者,在作用中的 Unmanaged 解決方案層中宣告。
開啟 [進階設定] 。
流覽至 [設定 >方案] 。
選取 [新增 ] 以建立新的解決方案,將 Publisher 設定為命令和作用中解決方案層級的命令檢查程式解決方案層級清單中所顯示的值。 (在我們的範例中,這是 DefaultPublisherCITTest )
選 取 [實體 >] [新增現有] 。
選取命令在 (上定義的實體 在我們的範例中,這是 連絡 ) ,然後選取 [ 確定] 。
選取 [完成 ] 之前,請務必取消核取 [包含實體元 數據] 和 [新增所有資產 ] 選項。
選取 [儲存] 。
選 取 [導出解決方案 ] 並匯出 Unmanaged 解決方案。
擷取 .zip 檔。
開啟 customizations.xml 檔案。
<Entity>
找出您想要編輯之實體節點的節點子節點,並找出其子<RibbonDiffXml>
節點。
找出節點 <CommandDefinition>
。 (在我們的範例中,節點的 <CommandDefinition>
標識碼是 Mscrm.NewRecordFromGrid
,因此我們會找出下列節點)
編輯節點, <RibbonDiffXml>
並移除具有您想要刪除之命令標識碼的特定 <CommandDefinition>
節點。 請確定您不會不小心刪除可能存在的其他 <CommandDefinition>
節點。 (根據我們的範例,我們會刪除 <CommandDefinition>
標識符為 Mscrm.NewRecordFromGrid
.)
儲存 customizations.xml 檔。
將修改 過的customizations.xml 檔案新增至方案 .zip 檔。
匯入方案檔。
選 取 [發佈所有自定義] 。
命令位於應用程式功能區 (適用於「所有實體」)
如果命令不是實體特定的,而是適用於應用程式功能區中宣告的「所有實體」,則步驟會稍有不同,如下所示:
開啟 [進階設定] 。
流覽至 [設定 >方案] 。
選取 [新增 ] 以建立新的解決方案,將 Publisher 設定為命令和作用中解決方案層級的命令檢查程式解決方案層級清單中所顯示的值。
選取 [用戶端延伸模組 >] [新增現有的 >應用程式功能區] 。
選取 [儲存] 。
選 取 [導出解決方案 ] 並匯出 Unmanaged 解決方案。
擷取 .zip 檔。
開啟 customizations.xml 檔案。
找出根 <RibbonDiffXml>
節點。
找出節點 <CommandDefinition>
。
編輯節點, <RibbonDiffXml>
並移除 <CommandDefinition>
具有您想要刪除之命令標識碼的節點。 請確定您不會不小心刪除可能存在的其他 <CommandDefinitions>
節點。
儲存 customizations.xml 檔。
將修改 過的customizations.xml 檔案新增至壓縮的方案 .zip 檔。
匯入方案檔。
選 取 [發佈所有自定義] 。
此命令來自我公司撰寫的自定義受控解決方案
若要刪除您所建立的自定義受控解決方案所安裝的命令,請遵循下列步驟:
在具有自定義解決方案非受控來源版本的個別開發組織中,完成上述 命令位於 Unmanaged Active Solution 選項中的 步驟。
遞增自定義解決方案的版本。
將解決方案導出為Managed。
在個別受影響的組織中,匯入這個新版本的自定義受控解決方案。
此命令來自我公司未從第三方/ISV 撰寫 (的自定義受控解決方案)
若要刪除由第三方/ISV 所建立之自定義受控解決方案所安裝的命令,您必須連絡解決方案的作者,並要求已移除特定命令定義的新版本解決方案,然後將此新解決方案安裝到受影響的組織。
如何修正啟用/顯示規則
選取規則名稱下方的 [ 檢視規則定義解決方案層] 連結,以檢視安裝規則定義的解決方案 () 。
[方案圖層] 窗格會顯示特定解決方案已安裝之每個功能區元件定義的分層。 清單頂端的圖層是應用程式目前使用的定義,其他層級則為非使用中,而應用程式目前不會使用。 如果頂端解決方案已卸載,或已安裝可移除定義的更新版本,則下一層將會成為應用程式目前使用的使用中定義。 當 Unmanaged Active 解決方案層存在時,它一律會是應用程式所使用的定義。 如果沒有列出使用中的解決方案,則清單頂端所列的解決方案將會是應用程式所使用的定義。 任何未由 Microsoft 發佈的自定義受控解決方案,也會優先於 Microsoft 發佈的解決方案層。
Entity 內容表示功能區自定義所在的物件,如果列出 [所有實體],則圖層來自應用程式功能區用戶端擴充功能,而非實體特定,否則會列出實體的邏輯名稱。
當有兩個或多個圖層時,您可以選取兩個數據列,然後選取 [比較] 來檢視每個解決方案所帶入之定義的比較。
選 取 [上一步 ] 會回到上一個 [命令檢查程式] 視窗。
下圖顯示範例中啟用規則的解決方案層,並指出在此案例中有一個解決方案層,而且 它是標題為 Active 的解決方案所表示的非受控自定義。 您的實際案例可能不同,您可能不是作用中的解決方案層,您可能有受控解決方案,而該解決方案的名稱會列在這裡。
既然我們已檢閱解決方案層,並識別出已安裝自定義的解決方案,我們必須修正適當解決方案中的定義。
選取符合您特定案例的下列其中一個選項:
啟用/顯示規則位於非受控作用中解決方案中
若要修正 作用 中 Unmanaged 解決方案層中的啟用/顯示規則,我們將匯出包含實體或應用程式功能區的 Unmanaged 解決方案,並編輯 <RibbonDiffXml>
customizations.xml檔案中的節 點 ,然後匯入包含固定啟用/顯示規則定義的新版本此解決方案。 請參閱 匯出、準備編輯和匯入功能區 。
啟用/顯示規則是實體特定的
根據我們的範例案例,我們發現實體是聯繫 人,而需要修正的啟用規則是new.contact.EnableRule.EntityRule
,而且它是從名為 DefaultPublisherCITTest 的發行者,在作用 中的 Unmanaged 解決方案層中宣告。
開啟 [進階設定] 。
流覽至 [設定 >方案] 。
選取 [新增 ] 以建立新的解決方案,將 Publisher 設定為 [命令檢查程式] 解決方案層級清單中顯示的值,以供啟用規則和使用中解決方案層使用。 (在我們的範例中,這是 DefaultPublisherCITTest )
選取 [實體] 。
選 取 [新增現有] 。
選取您的啟用/顯示規則定義於 (在我們的範例中,這是 連絡 ) ,然後選取 [ 確定] 。
選取 [完成 ] 之前,請務必取消核取 [包含實體元 數據] 和 [新增所有資產 ] 選項。
選取 [儲存] 。
選 取 [導出解決方案 ] 並匯出 Unmanaged 解決方案。
擷取 .zip 檔。
開啟 customizations.xml 檔案。
<Entity>
找出您想要編輯之實體節點的節點子節點,並找出其子<RibbonDiffXml>
節點。
找出啟用/顯示規則。 (在我們的範例中,啟用規則的標識碼是 new.contact.EnableRule.EntityRule
,因此我們會找出下列節點)
編輯節點, <RibbonDiffXml>
並對啟用/顯示規則進行必要的變更,以允許規則在正確的情況下評估為 True 以修正規則。 如需宣告規則的詳細說明,請 參閱定義功能區啟用規則 和 定義功能區顯示規則 。 (根據我們的範例,我們會將規則定義變更為下列)
將修改 過的customizations.xml 檔案新增至方案 .zip 檔。
匯入方案檔。
選 取 [發佈所有自定義] 。
啟用/顯示規則位於應用程式功能區 (適用於「所有實體」)
如果啟用/顯示規則不是實體特定的,而是適用於應用程式功能區中宣告的「所有實體」,則步驟會稍有不同,如下所示:
開啟 [進階設定] 。
流覽至 [設定 >方案] 。
選取 [新增 ] 以建立新的解決方案,將 Publisher 設定為啟用/顯示規則和作用中解決方案層級的命令檢查程式解決方案層級清單中所顯示的值。
選取 [用戶端延伸模組 >] [新增現有的 >應用程式功能區] 。
選取 [儲存] 。
選 取 [導出解決方案 ] 並匯出 Unmanaged 解決方案。
擷取 .zip 檔。
開啟 customizations.xml 檔案。
找出根 <RibbonDiffXml>
節點。
找出啟用/顯示規則。
編輯節點, <RibbonDiffXml>
並對啟用/顯示規則進行必要的變更,以允許規則在正確的情況下評估為 True 以修正規則。 如需宣告規則的詳細說明,請 參閱定義功能區啟用規則 和 定義功能區顯示規則 。
將修改 過的customizations.xml 檔案新增至方案 .zip 檔。
匯入方案檔。
選 取 [發佈所有自定義] 。
啟用/顯示規則來自我撰寫的自定義受控解決方案
若要修正您所建立的自定義受控解決方案所安裝的啟用/顯示規則,請遵循下列步驟:
在具有自定義解決方案非受控來源版本的個別開發組織中,針對 [ 啟用/顯示規則位於非受控作用中解決方案 ] 選項中,完成上面所列的步驟。
遞增自定義解決方案的版本。
將解決方案導出為Managed。
在個別受影響的組織中,匯入這個新版本的自定義受控解決方案。
啟用/顯示規則來自我未撰寫的自定義受控解決方案,或我的組織沒有來自第三方/ISV ()
若要修正由第三方/ISV 所建立的自定義受控解決方案所安裝的啟用/顯示規則,您必須連絡解決方案的作者,並要求包含固定啟用/顯示規則定義的解決方案新版本,並將此新解決方案安裝到受影響的組織。
啟用/顯示規則位於 Microsoft 發佈的受控解決方案中
若要修正由 Microsoft 發佈的受控解決方案所安裝的啟用/顯示規則,您可能需要安裝較新版本的解決方案,通常會在發行更新期間完成。 您可能已識別出仍然需要修正的錯誤。 請連絡客戶支持人員以取得協助。
如何修正命令
為了修正命令,我們必須判斷安裝自定義的解決方案。
選取命令名稱下方的 [ 檢視命令定義解決方案層] 連結,以檢視安裝命令定義的解決方案 () 。
[方案圖層] 窗格會顯示特定解決方案已安裝之每個功能區元件定義的分層。 清單頂端的圖層是應用程式目前使用的定義,其他層級則為非使用中,而應用程式目前不會使用。 如果頂端解決方案已卸載,或已安裝可移除定義的更新版本,則下一層將會成為應用程式目前使用的使用中定義。 當 Unmanaged Active 解決方案層存在時,它一律會是應用程式所使用的定義。 如果沒有列出使用中的解決方案,則清單頂端所列的解決方案將會是應用程式所使用的定義。 任何未由 Microsoft 發佈的自定義受控解決方案,也會優先於 Microsoft 發佈的解決方案層。
Entity 內容表示功能區自定義所在的物件,如果列出 [所有實體],則圖層來自應用程式功能區用戶端擴充功能,而非實體特定,否則會列出實體的邏輯名稱。
當有兩個或多個圖層時,您可以選取兩個數據列,然後選取 [比較] 來檢視每個解決方案所帶入之定義的比較。
選 取 [上一步 ] 會回到上一個 [命令檢查程式] 視窗。
下圖顯示我們範例中 命令的解決方案層,並指出此聯繫人中有一個解決方案層,而且 它是標題為 Active 的解決方案所表示的非受控自定義。 您的實際案例可能不同,您可能沒有作用中的解決方案層,您可能有受控解決方案,而該解決方案的名稱會列在這裡。
既然我們已檢閱解決方案層,並識別出已安裝自定義的解決方案,我們必須修正適當解決方案中的定義。
選取符合您特定案例的下列其中一個選項:
此命令位於非受控作用中解決方案中
若要修正作用中 Unmanaged 解決方案層中的命令,我們將匯出包含實體或應用程式功能區的 Unmanaged 解決方案,並編輯 <RibbonDiffXml>
customizations.xml檔案中的節 點 ,然後匯入包含固定命令定義的新版本此解決方案。 請參閱 匯出、準備編輯和匯入功能區 。
警告
請勿從命令中移除 Mscrm.HideOnModern
顯示規則,以強制按鈕出現在整合介面中。 具有顯示規則的 Mscrm.HideOnModern
命令適用於舊版 Web 用戶端介面,在整合介面中不支援,而且可能無法正確運作。
此命令是實體特定的
根據我們的範例案例,我們發現實體是 聯繫 人,而需要修正的命令是 Mscrm.NewRecordFromGrid
,而且它是從名為 DefaultPublisherCITTest 的發行者,在作用中的 Unmanaged 解決方案層中宣告。
開啟 [進階設定] 。
流覽至 [設定 >方案] 。
選取 [新增 ] 以建立新的解決方案,將 Publisher 設定為命令和作用中解決方案層級的命令檢查程式解決方案層級清單中所顯示的值。 (在我們的範例中,這是 DefaultPublisherCITTest )
選取 [實體] 。
選 取 [新增現有] 。
選取命令在 (上定義的實體 在我們的範例中,這是 連絡 ) ,然後選取 [ 確定] 。
選取 [完成 ] 之前,請務必取消核取 [包含實體元 數據] 和 [新增所有資產 ] 選項。
選取 [儲存] 。
選 取 [導出解決方案 ] 並匯出 Unmanaged 解決方案。
擷取 .zip 檔。
開啟 customizations.xml 檔案。
<Entity>
找出您想要編輯之實體節點的節點子節點,並找出其子<RibbonDiffXml>
節點。
找出節點 <CommandDefinition>
。 (在我們的範例中,節點的 <CommandDefinition>
標識碼是 Mscrm.NewRecordFromGrid
,因此我們會找出下列節點)
編輯節點, <RibbonDiffXml>
並對節點進行必要的變更 <CommandDefinition>
,以允許命令在正確的情況下正常運作,以修正命令。 如需宣告命令的詳細說明,請參閱 定義功能區命令 。 (根據我們的範例,我們會藉由移除new.contact.EnableRule.EntityRule
導致隱藏按鈕的啟用規則來修改<CommandDefinition>
節點。)
將修改過 的customizations.xml 檔案新增至方案 .zip 檔案
匯入方案檔。
選 取 [發佈所有自定義] 。
命令位於應用程式功能區 (適用於「所有實體」)
如果命令不是實體特定的,而是適用於應用程式功能區中宣告的「所有實體」,則步驟會稍有不同,如下所示:
開啟 [進階設定] 。
流覽至 [設定 >方案] 。
選取 [新增 ] 以建立新的解決方案,將 Publisher 設定為命令和作用 中解決方案層 級的命令檢查程式解決方案層級清單中所顯示的值。
選取 [用戶端延伸模組 >] [新增現有的 >應用程式功能區] 。
選取 [儲存] 。
選 取 [導出解決方案 ] 並匯出 Unmanaged 解決方案。
擷取 .zip 檔。
開啟 customizations.xml 檔案。
找出根 <RibbonDiffXml>
節點。
找出節點 <CommandDefinition>
。
編輯節點, <RibbonDiffXml>
並對節點進行必要的變更 <CommandDefinition>
,以允許命令在正確的情況下正常運作,以修正命令。 如需宣告命令的詳細說明,請參閱 定義功能區命令 。
將修改 過的customizations.xml 檔案新增至方案 .zip 檔。
匯入方案檔。
選 取 [發佈所有自定義] 。
此命令來自我撰寫的自定義受控解決方案
若要修正您所建立自定義受控解決方案所安裝的命令,請遵循下列步驟:
在具有自定義解決方案非受控來源版本的個別開發組織中,完成上述 命令位於 Unmanaged Active Solution 選項中的 步驟。
遞增自定義解決方案的版本。
將解決方案導出為Managed。
在個別受影響的組織中,匯入這個新版本的自定義受控解決方案。
此命令來自我未撰寫的自定義受控解決方案,或我的組織沒有來自第三方/ISV ()
若要修正由第三方/ISV 所建立的自定義受控解決方案所安裝的命令,您必須連絡解決方案的作者,並要求包含固定命令定義的新版本解決方案,並將此新解決方案安裝到受影響的組織。
此命令位於 Microsoft 發佈的受控解決方案中
若要修正 Microsoft 發行的受控解決方案所安裝的命令,您可能需要安裝較新版本的解決方案,通常會在發行更新期間完成。 您可能已識別出仍然需要修正的錯誤。 請連絡客戶支持人員以取得協助。
參考
模型驅動應用程式功能區的命令檢查程式