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 reguły wyświetlania w poleceniu skojarzonym z przyciskiem obliczającym wartość false. Może się okazać, że skojarzone polecenie ma regułę Mscrm.HideOnModern wyświetlania, która ukrywa przycisk w aplikacjach ujednoliconego interfejsu. Można również utworzyć akcję HideCustomAction , która wymusi ukrycie przycisku. Jeśli użytkownik jest w trybie offline, polecenia niestandardowe i polecenia domyślne bez reguły Mscrm.IsEntityAvailableForUserInMocaOffline włączania nie będą wyświetlane.

Ostrzeżenie

  • Każda reguła wyświetlania typu EntityPrivilegeRule z wartością PrivilegeType z jedną z następujących wartości (Tworzenie, Zapis, Usuwanie, Przypisywanie, Udostępnianie) będzie miała wartość false, jeśli jednostka ma włączoną opcję Tylko do odczytu w aplikacji mobilnej , co spowoduje, że jednostka będzie zezwalać tylko na uprawnienie odczytu . Przykłady niektórych typowych domyślnych reguł systemowych, które będą ewaluować wartość false po włączeniu flagi Tylko do odczytu w aplikacji mobilnej w jednostce, są następujące, ale nie tylko do tej listy (Mscrm.CreateSelectedEntityPermission, , Mscrm.CanSavePrimaryMscrm.CanWritePrimary, Mscrm.CanWriteSelected, Mscrm.WritePrimaryEntityPermission, , Mscrm.WriteSelectedEntityPermission, Mscrm.CanDeletePrimary, Mscrm.DeletePrimaryEntityPermission, Mscrm.DeleteSelectedEntityPermission, , Mscrm.AssignSelectedEntityPermission, , Mscrm.SharePrimaryPermission). Mscrm.ShareSelectedEntityPermission Możesz edytować jednostkę i usunąć zaznaczenie opcji Tylko do odczytu w aplikacji mobilnej , aby zezwolić na ocenę wartości true tych reguł, pod warunkiem że uprawnienie testowane przez regułę zostanie również przyznane użytkownikowi.
  • Nie usuwaj reguły Mscrm.HideOnModern wyświetlania z polecenia, aby wymusić wyświetlenie przycisku w interfejsie Unified. Polecenia, które mają regułę Mscrm.HideOnModern wyświetlania, są przeznaczone dla starszego interfejsu klienta sieci Web i nie są obsługiwane w interfejsie Unified Interface i mogą nie działać poprawnie.
  1. Włącz sprawdzanie poleceń i wybierz przycisk polecenia do sprawdzenia.

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

    Uwaga

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

    Zrzut ekranu przedstawia przycisk Nowy na stronie siatki jednostki kontaktu nie jest widoczny i jest reprezentowany przez element z etykietą Nowy (ukryty).

    Uwaga

    Jeśli przycisk jest nadal ukryty, gdy wszystkie reguły mają wartość True, może to być spowodowane poleceniami wrażliwymi na kontekst w siatkach. Po wybraniu rekordów w siatce wszystkie przyciski bez SelectionCountRule elementu zostaną uznane za nieistotne dla wybranych rekordów. I są ukryte, nawet jeśli ich ocena reguł ma wartość True. Należy pamiętać, że wysuwane elementy wysuwane nie mają wpływu, ponieważ wysuwane 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 przedstawiono polecenie Mscrm.NewRecordFromGridnowego (ukrytego) przycisku i istnieje reguła włączania o nazwie, new.contact.EnableRule.EntityRule która obliczyła wartość False, w wyniku czego przycisk zostanie ukryty.

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

  4. Rozwiń regułę new.contact.EnableRule.EntityRule włączania, wybierając ikonę pagonu , aby wyświetlić szczegóły reguły. Aby zrozumieć, dlaczego reguła ma wartość True lub False, należy nieco zrozumieć typ reguły. Aby uzyskać szczegółowe informacje o poszczególnych typach reguł, zobacz Definiowanie reguł włączania wstążki i Definiowanie reguł wyświetlania wstążki. Poniższy przykład pokazuje, że typ reguły to Jednostka, a nazwa logiczna jednostki to konto. Ponieważ bieżąca jednostka to kontakt, który nie jest równy 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 konkretnym scenariuszu. Biorąc pod uwagę nasz przykład:

    • Jeśli ta reguła została utworzona błędnie, tak aby jednostka zadeklarowana w regule była przeznaczona do kontaktu , ale została ustawiona na konto, można edytować new.contact.EnableRule.EntityRule regułę włączania i wprowadzać zmiany, które pozwoliłyby na ocenę reguły na 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, aby przywrócić domyślną funkcjonalność.

Opcje naprawy

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

Jak usunąć polecenie

Jeśli istnieje inna warstwa rozwiązania zawierająca działającą definicję polecenia, możesz usunąć definicję, aby przywrócić nieaktywną definicję roboczą.

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 polecenia pod nazwą polecenia.

  2. W okienku Warstwy rozwiązania zostaną wyświetlone warstwy każdej definicji składnika wstążki zainstalowanego przez określone rozwiązanie. 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 odinstalowano najlepsze rozwiązanie lub zainstalowano zaktualizowaną wersję, która usuwa definicję, następna warstwa stanie się bieżącą aktywną definicją używaną przez aplikację. Gdy istnieje niezarządzana warstwa rozwiązania Active , zawsze będzie to definicja używana przez aplikację. Jeśli na liście nie ma aktywnego rozwiązania, rozwiązanie wymienione w górnej części listy będzie definicją używaną przez aplikację. Wszystkie rozwiązania zarządzane niestandardowo, które nie są publikowane przez firmę Microsoft, będą również mieć pierwszeństwo przed warstwami rozwiązań opublikowanych przez firmę Microsoft.

    Kontekst jednostki wskazuje obiekt dostosowywania wstążki jest włączona, jeśli "Wszystkie jednostki" jest na liście, a następnie warstwa pochodzi z rozszerzeń klienta wstążki aplikacji, a nie specyficzne dla jednostki, w przeciwnym razie nazwa logiczna jednostki zostanie wyświetlona.

    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 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 kontaktu, że jest to niezarządzane dostosowanie, jak wskazuje rozwiązanie o nazwie Active. Rzeczywisty scenariusz może się różnić, być może nie masz warstwy aktywnego rozwiązania, być może masz rozwiązanie zarządzane, a nazwa tego rozwiązania zostanie wymieniona 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 odpowiadających konkretnemu scenariuszowi:

Polecenie znajduje się w niezarządzaniu rozwiązaniem Active

Aby usunąć polecenie w warstwie rozwiązania active niezarządzanego, wyeksportujemy niezarządzane rozwiązanie 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, gdzie to polecenie zostało usunięte w celu usunięcia składnika. 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 kontaktowa , a polecenie, które należy usunąć, jest Mscrm.NewRecordFromGrid zadeklarowane w warstwie rozwiązania active niezarządzanego od wydawcy o nazwie DefaultPublisherCITTest.

  1. Otwórz pozycję Ustawienia zaawansowane.

  2. Przejdź do pozycji Rozwiązania ustawień>.

  3. Wybierz pozycję Nowy , aby utworzyć nowe rozwiązanie, ustaw dla programu Publisher wartość wyświetlaną na liście warstw rozwiązania narzędzia sprawdzania poleceń dla polecenia i warstwy rozwiązania Active. (W naszym przykładzie jest to DefaultPublisherCITTest)

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

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

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

  7. Wybierz Zapisz.

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

  9. Wyodrębnij plik .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, więc zlokalizujemy następujący węzeł)

    Zrzut ekranu przedstawia lokalizację węzła CommandDefinition.

  13. Edytuj <RibbonDiffXml> węzeł i usuń określony <CommandDefinition> węzeł z identyfikatorem 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 usuniemy <CommandDefinition> węzeł, w którym identyfikator to Mscrm.NewRecordFromGrid.)

    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 pozycję Publikuj wszystkie dostosowania.

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

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

  1. Otwórz pozycję Ustawienia zaawansowane.
  2. Przejdź do pozycji Rozwiązania ustawień>.
  3. Wybierz pozycję Nowy , aby utworzyć nowe rozwiązanie, ustaw dla programu Publisher wartość wyświetlaną na liście warstw rozwiązania narzędzia sprawdzania poleceń dla polecenia i warstwy rozwiązania Active.
  4. Wybierz pozycję Rozszerzenia> klientaDodaj istniejące>wstążki aplikacji.
  5. Wybierz Zapisz.
  6. Wybierz pozycję Eksportuj rozwiązanie i wyeksportuj rozwiązanie niezarządzane.
  7. Wyodrębnij plik .zip.
  8. Otwórz plik customizations.xml .
  9. Znajdź węzeł główny <RibbonDiffXml> .
  10. <CommandDefinition> Znajdź węzeł.
  11. Edytuj <RibbonDiffXml> węzeł i usuń <CommandDefinition> węzeł z identyfikatorem 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 pozycję Publikuj wszystkie dostosowania.
Polecenie pochodzi z rozwiązania zarządzanego niestandardowo, które jest utworzone przez moją firmę

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

  1. W osobnej organizacji deweloperów, która ma niezarządzaną wersję źródłową rozwiązania niestandardowego, wykonaj kroki wymienione powyżej dla polecenia The w niezarządzanym rozwiązaniu Active .
  2. Zwiększanie wersji rozwiązania niestandardowego.
  3. Eksportowanie rozwiązania jako zarządzanego.
  4. W osobnej organizacji, która ma problem, zaimportuj nową wersję rozwiązania zarządzanego niestandardowo.
Polecenie pochodzi z rozwiązania zarządzanego niestandardowo, które nie zostało utworzone przez moją firmę (od innej firmy/niezależnego dostawcy oprogramowania)

Aby usunąć polecenie zainstalowane przez rozwiązanie zarządzane niestandardowo, które zostało utworzone przez inną firmę/niezależnego dostawcy oprogramowania, należy skontaktować się z autorem rozwiązania i zażądać nowej wersji rozwiązania, które usunęło określoną definicję polecenia, a następnie zainstalować to nowe rozwiązanie w organizacji, której dotyczy problem.