Udostępnij za pośrednictwem


Przycisk na pasku poleceń jest ukryty, gdy powinien być widoczny w usłudze Power Apps

Dotyczy: Power Apps
Oryginalny numer KB: 4552163

Określanie, dlaczego przycisk jest ukryty

Przycisk może być ukryty z powodu reguły włączania lub wyświetlania reguły na poleceniu skojarzonym z przyciskiem oceniania wartości false. Może się okazać, że skojarzone polecenie ma regułę Mscrm.HideOnModern wyświetlania, która ukrywa przycisk w aplikacjach ujednoliconego interfejsu. Utworzono również element HideCustomAction , który wymusiłby ukrycie przycisku. Jeśli użytkownik jest w trybie offline, polecenia niestandardowe i polecenia domyślne bez Mscrm.IsEntityAvailableForUserInMocaOffline reguły włączania nie będą wyświetlane.

Ostrzeżenie

  • Każda reguła wyświetlania typu EntityPrivilegeRule z wartością PrivilegeType jednej z następujących wartości (Create, Write, Delete, Assign, Share) będzie oceniać wartość false, jeśli jednostka ma włączoną opcję Tylko do odczytu w usłudze Mobile, co spowoduje, że jednostka będzie wymuszać zezwolenie na uprawnienia tylko do odczytu. Przykłady niektórych typowych domyślnych reguł systemowych, które będą oceniać wartość false, gdy flaga Tylko do odczytu w aplikacji mobilnej jest włączona w jednostce, są następujące, ale nie tylko do tej listy (Mscrm.CreateSelectedEntityPermission, Mscrm.CanSavePrimary, Mscrm.CanWriteSelectedMscrm.SharePrimaryPermissionMscrm.CanWritePrimaryMscrm.AssignSelectedEntityPermissionMscrm.DeleteSelectedEntityPermissionMscrm.WriteSelectedEntityPermissionMscrm.WritePrimaryEntityPermissionMscrm.CanDeletePrimaryMscrm.DeletePrimaryEntityPermission). Mscrm.ShareSelectedEntityPermission Możesz edytować jednostkę i usunąć zaznaczenie opcji Tylko do odczytu w usłudze Mobile , aby zezwolić tym regułom na ocenę wartości true, pod warunkiem że uprawnienie testowane przez regułę jest również przyznawane użytkownikowi.
  • Nie usuwaj reguły wyświetlania Mscrm.HideOnModern z polecenia, aby wymusić wyświetlanie przycisku w ujednoliconym interfejsie. Polecenia z regułą wyświetlania Mscrm.HideOnModern są przeznaczone dla starszego interfejsu klienta sieci Web i nie są obsługiwane w ujednoliconym interfejsie i mogą nie działać poprawnie.
  1. Włącz moduł sprawdzania poleceń i wybierz przycisk polecenia, aby sprawdzić.

  2. W poniższym przykładzie pokazano, że przycisk Nowy na stronie siatki jednostki kontaktowej nie jest widoczny i jest reprezentowany przez element oznaczony etykietą Nowy (ukryty).

    Uwaga 16.

    Jeśli przycisk nie znajduje się na liście, może to być spowodowane dostosowaniem HideCustomAction , które mogło zostać zainstalowane, lub skojarzone polecenie ma regułę wyświetlania Mscrm.HideOnModern . W momencie pisania tego przewodnika narzędzie do sprawdzania poleceń nie wyświetla przycisków, które zostały ukryte przez regułę wyświetlania HideCustomAction lub Mscrm.HideOnModern . Obecnie pracujemy nad rozszerzeniem tej listy, aby uwzględnić te informacje w przyszłej aktualizacji.

    Zrzut ekranu przedstawiający przycisk Nowy na stronie siatki jednostki kontaktowej nie jest widoczny i jest reprezentowany przez element oznaczony etykietą Nowy (ukryty).

    Uwaga 16.

    Jeśli przycisk jest nadal ukryty, gdy wszystkie reguły oceniają wartość True, może to być spowodowane kontekstowymi poleceniami w siatkach. Gdy rekordy są zaznaczone w siatce, wszystkie przyciski bez SelectionCountRule elementu będą traktowane jako nieistotne dla wybranych rekordów. I są ukryte, nawet jeśli ich ocena reguły jest prawdziwa. Należy pamiętać, że nie ma to wpływu na wysuwane elementy podrzędne, ponieważ elementy podrzędne mogą nadal mieć polecenia oparte na rekordach.

  3. Wybierz kartę Właściwości polecenia, aby wyświetlić szczegóły polecenia dla tego przycisku. Spowoduje to wyświetlenie reguł włączania i wyświetlania reguł wraz z wynikiem (True, False, Skipped) każdej oceny reguły. W poniższym przykładzie pokazano polecenie Mscrm.NewRecordFromGrid przycisku Nowy (ukryte) i istnieje reguła włączania o nazwie new.contact.EnableRule.EntityRule , która ma wartość False, w wyniku czego przycisk zostanie ukryty.

    Zrzut ekranu przedstawiający szczegóły właściwości polecenia dla przycisku Nowy (ukryty).

  4. Rozwiń regułę włączania new.contact.EnableRule.EntityRule , wybierając ikonę cudzysłów, aby wyświetlić szczegóły reguły. Aby zrozumieć, dlaczego reguła zwraca wartość True lub False, wymaga nieco zrozumienia typu reguły. Aby uzyskać szczegółowe informacje o każdym typie reguły, zobacz Definiowanie reguł włączania wstążki i Definiowanie reguł wyświetlania wstążki. W poniższym przykładzie pokazano, że typ reguły to Jednostka , a nazwa logiczna jednostki to konto. Ponieważ bieżąca jednostka jest kontaktem, która nie jest równa kontu, ta reguła zwraca wartość False.

    Zrzut ekranu przedstawia przykład wyświetlania szczegółów reguły.

  5. Podejście potrzebne do naprawienia widoczności przycisku będzie zależeć od różnych dostosowań w określonym scenariuszu. Biorąc pod uwagę nasz przykład:

    • Jeśli ta reguła została utworzona błędnie, tak aby jednostka zadeklarowana w regule miała być kontaktem , ale została ustawiona na konto, można edytować new.contact.EnableRule.EntityRule regułę włączania i wprowadzać zmiany, które pozwolą regule ocenić wartość true.
    • Jeśli ta reguła została dodana do polecenia przypadkowo, można zmodyfikować Mscrm.NewRecordFromGrid polecenie i usunąć regułę new.contact.EnableRule.EntityRule włączania z definicji polecenia.
    • Jeśli polecenie jest zastąpieniem opublikowanej definicji firmy Microsoft, można usunąć tę niestandardową wersję polecenia w celu przywrócenia domyślnej funkcjonalności.

Opcje naprawy

Wybierz opcję naprawy z jednej z poniższych kart. Pierwsza karta jest domyślnie zaznaczona.

Jak usunąć polecenie

Jeśli istnieje inna warstwa rozwiązania zawierająca działającą definicję polecenia, możesz usunąć definicję w celu przywrócenia nieaktywnej definicji roboczej.

Jeśli jest to jedyna warstwa i nie potrzebujesz już polecenia, możesz usunąć ją z rozwiązania, jeśli żaden inny przycisk nie odwołuje się do polecenia.

Aby usunąć polecenie, musimy określić, które rozwiązanie zainstalowało dostosowanie:

  1. Wybierz link Wyświetl warstwy rozwiązania definicji poleceń poniżej nazwy polecenia, aby wyświetlić rozwiązania, które zainstalowały definicję polecenia.

    Zrzut ekranu przedstawiający link Wyświetl warstwy rozwiązania definicji poleceń pod nazwą polecenia.

  2. W okienku Warstwy rozwiązania zostanie wyświetlona warstwa każdej definicji składnika wstążki, która została zainstalowana. Warstwa w górnej części listy to bieżąca definicja używana przez aplikację, pozostałe warstwy są nieaktywne i nie są obecnie używane przez aplikację. Jeśli najlepsze rozwiązanie zostanie odinstalowane lub zainstalowano zaktualizowaną wersję, która usunie definicję, następna warstwa stanie się bieżącą aktywną definicją używaną przez aplikację. Gdy jest obecna niezarządzana warstwa aktywnego rozwiązania, zawsze będzie to definicja używana przez aplikację. Jeśli na liście nie ma aktywnego rozwiązania, rozwiązanie wymienione na początku listy będzie definicją używaną przez aplikację. Wszelkie rozwiązania zarządzane niestandardowe, które nie są publikowane przez firmę Microsoft, będą miały również pierwszeństwo przed warstwami rozwiązań opublikowanych przez firmę Microsoft.

    Kontekst jednostki wskazuje obiekt, na który jest włączona wstążka, jeśli zostanie wyświetlona pozycja "Wszystkie jednostki", warstwa pochodzi z rozszerzeń klienta wstążki aplikacji, a nie specyficznych dla jednostki. W przeciwnym razie zostanie wyświetlona nazwa logiczna jednostki.

    Jeśli istnieją co najmniej dwie warstwy, możesz wybrać dwa wiersze i wybrać pozycję Porównaj , aby wyświetlić porównanie definicji wprowadzonych przez każde rozwiązanie.

    Wybranie pozycji Wstecz spowoduje powrót do poprzedniego okna narzędzia do sprawdzania poleceń.

    Na poniższej ilustracji przedstawiono warstwy rozwiązania dla polecenia w naszym przykładzie i wskazuje, że istnieje warstwa rozwiązania dla jednostki kontaktowej, która jest niezarządzanym dostosowaniem, co oznacza rozwiązanie o nazwie Aktywne. Rzeczywisty scenariusz może się różnić, być może nie masz aktywnej warstwy rozwiązania, być może masz rozwiązanie zarządzane i nazwa tego rozwiązania zostanie wyświetlona tutaj.

    Zrzut ekranu przedstawia przykład warstwy rozwiązania.

  3. Po przejrzeniu warstw rozwiązania i zidentyfikowaniu rozwiązania, które zainstalowało dostosowanie, musimy naprawić definicję w odpowiednim rozwiązaniu.

Wybierz jedną z następujących opcji, które pasują do konkretnego scenariusza:

Polecenie znajduje się w niezarządzanych aktywnych rozwiązaniach

Aby usunąć polecenie w warstwie rozwiązania Aktywne niezarządzane, wyeksportujemy rozwiązanie niezarządzane zawierające jednostkę lub wstążkę aplikacji i zmodyfikujemy <RibbonDiffXml> węzeł w pliku customizations.xml , a następnie zaimportujemy nową wersję tego rozwiązania, w której to polecenie zostało usunięte, aby usunąć składnik. Zobacz Eksportowanie, przygotowywanie do edycji i importowanie wstążki.

Polecenie jest specyficzne dla jednostki

Na podstawie naszego przykładowego scenariusza ustaliliśmy, że jednostka jest kontaktem i poleceniem, które należy usunąć, jest Mscrm.NewRecordFromGrid i jest zadeklarowane w warstwie rozwiązania Aktywne niezarządzane z wydawcy o nazwie DefaultPublisherCITTest.

  1. Otwórz pozycję Ustawienia zaawansowane.

  2. Przejdź do Ustawienia>Rozwiązania.

  3. Wybierz pozycję Nowy , aby utworzyć nowe rozwiązanie, ustaw program Publisher na wartość wyświetlaną w warstwach rozwiązania narzędzia do sprawdzania poleceń na liście poleceń i warstwy rozwiązania Aktywne. (W naszym przykładzie jest toDefaultPublisherCITTest)

  4. Wybierz pozycję Jednostki>Dodaj istniejące.

  5. Wybierz jednostkę zdefiniowaną przez polecenie (w naszym przykładzie jest to kontakt) i wybierz przycisk OK.

  6. Przed wybraniem pozycji Zakończ usuń zaznaczenie opcji Uwzględnij metadane jednostki i Dodaj wszystkie zasoby.

  7. Wybierz pozycję Zapisz.

  8. Wybierz pozycję Eksportuj rozwiązanie i wyeksportuj rozwiązanie niezarządzane.

  9. Wyodrębnij pliki z archiwum zip.

  10. Otwórz plik customizations.xml.

  11. <Entity> Znajdź węzeł podrzędny węzła jednostki, który chcesz edytować, i znajdź jego węzeł podrzędny<RibbonDiffXml>.

  12. <CommandDefinition> Znajdź węzeł. (W naszym przykładzie identyfikator węzła <CommandDefinition> to Mscrm.NewRecordFromGrid, aby zlokalizować następujący węzeł)

    Zrzut ekranu przedstawiający lokalizację węzła CommandDefinition.

  13. Zmodyfikuj <RibbonDiffXml> węzeł i usuń określony <CommandDefinition> węzeł, który ma identyfikator polecenia, które chcesz usunąć. Upewnij się, że nie usuwasz przypadkowo innych <CommandDefinition> węzłów, które mogą być obecne. (Na podstawie naszego przykładu <CommandDefinition> usuniemy węzeł, w którym znajduje się Mscrm.NewRecordFromGrididentyfikator ).

    Zrzut ekranu przedstawiający usuwanie węzła CommandDefinition.

  14. Zapisz plik customizations.xml.

  15. Dodaj zmodyfikowany plik customizations.xml z powrotem do pliku .zip rozwiązania.

  16. Zaimportuj plik rozwiązania.

  17. Wybierz Publikuj wszystkie dostosowania.

Polecenie znajduje się na wstążce aplikacji (dotyczy wszystkich jednostek)

Jeśli polecenie nie jest specyficzne dla jednostki, zamiast tego ma zastosowanie do "Wszystkie jednostki" zadeklarowane na wstążce aplikacji, kroki będą nieco inne w następujący sposób:

  1. Otwórz pozycję Ustawienia zaawansowane.
  2. Przejdź do Ustawienia>Rozwiązania.
  3. Wybierz pozycję Nowy , aby utworzyć nowe rozwiązanie, ustaw program Publisher na wartość wyświetlaną w warstwach rozwiązania narzędzia do sprawdzania poleceń na liście poleceń i warstwy rozwiązania Aktywne.
  4. Wybierz pozycję Rozszerzenia>klienta Dodaj istniejące>wstążki aplikacji.
  5. Wybierz pozycję Zapisz.
  6. Wybierz pozycję Eksportuj rozwiązanie i wyeksportuj rozwiązanie niezarządzane.
  7. Wyodrębnij pliki z archiwum zip.
  8. Otwórz plik customizations.xml.
  9. Znajdź węzeł główny <RibbonDiffXml> .
  10. <CommandDefinition> Znajdź węzeł.
  11. Zmodyfikuj <RibbonDiffXml> węzeł i usuń <CommandDefinition> węzeł, który ma identyfikator polecenia, które chcesz usunąć. Upewnij się, że nie usuwasz przypadkowo innych <CommandDefinitions> węzłów, które mogą być obecne.
  12. Zapisz plik customizations.xml.
  13. Dodaj zmodyfikowany plik customizations.xml z powrotem do skompresowanego rozwiązania .zip pliku.
  14. Zaimportuj plik rozwiązania.
  15. Wybierz Publikuj wszystkie dostosowania.
Polecenie pochodzi z niestandardowego rozwiązania zarządzanego przez moją firmę

Aby usunąć polecenie zainstalowane przez utworzone rozwiązanie niestandardowe, wykonaj następujące kroki:

  1. W oddzielnej organizacji programistycznej, która ma niezarządzaną wersję źródłową rozwiązania niestandardowego, wykonaj kroki wymienione powyżej dla polecenia Polecenie znajduje się w niezarządzanej opcji Aktywnego rozwiązania .
  2. Zwiększ wersję rozwiązania niestandardowego.
  3. Eksportowanie rozwiązania jako zarządzanego.
  4. W oddzielnej organizacji, której dotyczy problem, zaimportuj tę nową wersję rozwiązania zarządzanego niestandardowego.
Polecenie pochodzi z niestandardowego rozwiązania zarządzanego przez moją firmę, które nie zostało utworzone (od innej firmy/niezależnego dostawcy oprogramowania)

Aby usunąć polecenie zainstalowane przez niestandardowe rozwiązanie zarządzane przez inną firmę/niezależnego dostawcę oprogramowania, należy skontaktować się z autorem rozwiązania i zażądać nowej wersji rozwiązania, która usunęła konkretną definicję poleceń, a następnie zainstalować to nowe rozwiązanie w organizacji, której dotyczy problem.