Udostępnij za pośrednictwem


Tworzenie aplikacji kanwy

Power Apps to wysokowydajna platforma dla aplikacji biznesowych. Możesz tworzyć dopasowane, idealne pod względem pikseli aplikacji z mocą pustej kanwy w Power Apps Studio. Aby udostępnić użytkownikom, renderuj aplikację w przeglądarce lub osadzoną w różnych kontenerach, takich jak Teams i witryny SharePoint.

Podstawowe środowiska użytkownika końcowego dla rozwiązań szablonu zaopatrzeniowych SAP są zbudowane przy użyciu aplikacji na kanwie i można je łatwo rozszerzyć w celu obsługi lokalnych wymagań biznesowych. Aby rozpocząć, postępuj zgodnie z wzorcami i najlepszymi praktykami opisanymi w tym artykule.

Przestrzeganie najlepszych praktyk i standardów

Wszystkie aplikacje są tworzone przy użyciu opublikowanych najlepszych praktyk i standardów. Zalecamy przyjęcie tych samych lub podobnych najlepszych praktyk i standardów podczas rozszerzania lub tworzenia nowych aplikacji.

Standardowa Komentarze Więcej informacji
Stan funkcji Funkcje, które są domyślnie włączone lub wyłączone. Zawiera podzbiór wersji zapoznawczych z wyjątkiem funkcji eksperymentalnych. Omówienie funkcji eksperymentalnych, wersji zapoznawcza i wycofanych w aplikacjach kanwy
Responsywność Responsywny dla jednego typu urządzenia, takiego jak tablet lub telefon komórkowy. Umożliwia przyciąganie aplikacji do różnych standardowych rozmiarów ekranu i kontenera, w tym osadzanie aplikacji w Microsoft Teams. Szeroko korzysta z responsywnych kontrolek kontenera z automatycznym układem. Tworzenie responsywnych aplikacji kanwy
Nazewnictwo i standardy kodowania Kontrolki, zmienne, kolekcje i standardy nazewnictwa Dataverse są przestrzegane w celu ułatwienia wyszukiwania i konserwacji. Power Apps Standardy i wytyczne dotyczące kodowania aplikacji kanwy
Dostępność Właściwości wspierające dostępność. Na przykład dostępne etykiety, role, na żywo, grubość obramowania ostrości, kontrast kolorów i kolejność kart. Właściwości te pozwalają uniknąć znanych wzorców projektowych, które nie obsługują wymogów dostępności. Tworzenie aplikacji kanwy z ułatwieniami dostępu i ograniczenia ułatwień dostępu w aplikacjach kanwy
Wydajność Stosowane są najlepsze praktyki pozwalające uniknąć znanych ograniczeń wydajności. Porady i najlepsze rozwiązania dotyczące zwiększania wydajności aplikacji kanwy

Globalne motywy kolorystyczne aplikacji

Wszystkie aplikacje mają niestandardowy motyw i mogą być zmieniane zgodnie z preferowanym schematem kolorów organizacji. Zmienna globalna jest ustawiana we właściwościach App.OnStart we wszystkich aplikacjach. Ta zmienna jest używana przez większość właściwości związanych z kolorem we wszystkich kontrolkach w aplikacji. Zmiana globalnej zmiennej motywu koloru w jednym miejscu będzie miała natychmiastowy efekt w całej aplikacji po uruchomieniu zdarzenia App.OnStart.

Ważne

Chociaż możliwa jest zmiana różnych właściwości palety kolorów, zaleca się zmianę tylko właściwości koloru podstawowego w globalnej zmiennej motywu.

    Set(
        varThemeColors,
        {
            background: ColorValue("#FAF9F8"),
            backgroundFill: ColorValue("#FFFFFF"),
            backgroundFillDisabled: ColorValue("#F3F2F1"),
            text: ColorValue("#201F1E"),
            altText: ColorValue("#FFFFFF"),
            disabledText: ColorValue("#A19F9D"),
            primary: ColorValue("#0078D4"),
            secondary: ColorValue("#EFF6FC"),
            tertiary: ColorValue("#005A9E"),
            primaryGray: ColorValue("#8A8886"),
            secondaryGray: ColorValue ("#C8C6C4"),
            tertiaryGray: ColorValue("#605E5C"),
            requiredRed: ColorValue("#A80000"),
            lookupBlue: ColorValue("#0078D4")
        }
    )

Dodaj logo firmy do aplikacji, najpierw przesyłając plik obrazu logo firmy do aplikacji, a następnie dodając go do komponentu ScreenHeader.

Dodaj logo swojej firmy do aplikacji

Więcej informacji: Używanie plików multimedia w aplikacjach na kanwie

Lokalizacja i globalna obsługa aplikacji

Wszystkie aplikacje na kanwie domyślnie obsługują język angielski. Jednak wszystkie aplikacje są zaprojektowane tak, aby były gotowe do lokalizacji i mogą być zarządzane w celu obsługi większej liczby języków. Właściwości szerokości kontrolki mogą wymagać bezpośredniej zmiany w zależności od języków wybranych do wdrożenia.

Wzorzec lokalizacji ciągu znaków

  1. Na pierwszym ekranie właściwości OnVisible podczas uruchamiania aplikacji, aplikacja odczytuje ustawienia języka przeglądarki użytkownika i określa odpowiednią wartość wyboru Kodu językowego ISO.
      Set(
        varISOUserLanguageCode,
        Switch(
            Left(
                Language(),
                2
            ),
            "ar",
            'ISO Language Code'.ar,
            "de",
            'ISO Language Code'.de,
            "en",
            'ISO Language Code'.en,
            "es",
            'ISO Language Code'.es,
            "fr",
            'ISO Language Code'.fr,
            "he",
            'ISO Language Code'.he,
            "it",
            'ISO Language Code'.it,
            "ja",
            'ISO Language Code'.ja,
            "pt",
            'ISO Language Code'.pt,
            "zh",
            'ISO Language Code'.zh,
            'ISO Language Code'.en
        )
    )

Uwaga

Właściwości etykiet i kontrolek wejściowych próbują przewidzieć szerokość lokalizacji wartości tekstowej, ale nie zawsze może się to udać ze względu na złożoność tych obliczeń. Dlatego zaleca się, aby zawsze testować i wprowadzać drobne zmiany w aplikacjach po wprowadzeniu ciągów znaków i zmian w lokalizacji.

Napiwek

Dodatkowe języki można dodawać i obsługiwać, dodając kolejne wartości do komponentu wyboru Kod językowy ISO zawartego w rozwiązaniu SAP Base.

Aplikacja odpytuje encję Lokalizacja SAP Dataverse o ciągi znaków, które zostały zlokalizowane zgodnie z językiem zalogowanego użytkownika i buforuje je lokalnie w kolekcji.

        ClearCollect(
            colUserLocalizedStrings,
            Filter(
                'SAP Localizations',
                Language = varISOUserLanguageCode,
                'SAP Localizations (Views)'.'Active SAP Localizations'
            )
        )

Wszystkie właściwości związane z tekstem w różnych kontrolkach, takich jak Text, HintText, Accessible Label, InputTextPlaceholder, NoSelectionText i ToolTips mają formuły, które najpierw szukają odpowiednika w lokalizacji. Jeśli nie znajdzie odpowiednika, domyślnie wybiera język angielski, który jest ustawiony we właściwości Text w bloku With.

  With(
      {Text: "Vendor name"},
      If(
          IsBlank(
              LookUp(
                  colUserLocalizedStrings,
                  'English Value' = Text
              ).'Localized Value'
          ),
          Text,
          LookUp(
              colUserLocalizedStrings,
              'English Value' = Text
          ).'Localized Value'
      )
  )

W przypadku kontrolek pole kombi, które filtrują wartości z tabeli Lista wartości SAP, zmapowany przez użytkownika Język kodu ISO z ustawienia przeglądarki jest zawsze stosowany do kryteriów filtrowania, domyślnie do języka angielskiego, jeśli dla jego języka nie jest administrowana żadna lista wartości.

Sort(
    Filter(
        'SAP List of Values',
        Status = 'Status (SAP List of Values)'.Active,
        Domain = 'Domain (SAP List of Values)'.Country,
        Language = varISOUserLanguageCode
    ),
    'Display Value'
)

Ustawienia lokalizacji przeglądarki

Wszystkie pola liczb, daty i godziny w aplikacjach na kanwie domyślnie uwzględniają ustawienia lokalizacji przeglądarki użytkownika. Na przykład data wyświetlana jako 3/23/2023 dla użytkownika korzystającego ze Stanów Zjednoczonych jako ustawienia lokalizacji będzie wyświetlana jako 23.03.2023 dla użytkownika korzystającego z ustawienia lokalizacji Niemcy.

Więcej informacji: Wbudowanie globalnej obsługi w aplikacje kanwy

Elementy

Składniki to świetny sposób na uproszczenie procesu tworzenia i konserwacji aplikacji oraz pomoc w poprawie wydajności.

Komponenty są konfigurowane dla obszarów, w których istnieje potrzeba wspólnego doświadczenia użytkownika, zarówno wewnętrznie, jak i między aplikacjami. Biorąc pod uwagę ograniczenia bibliotek komponentów do obsługi takich rzeczy, jak dostęp do zakresu aplikacji i wbudowanych przepływów w chmurze, we wszystkich aplikacjach można używać lokalnych komponentów, które następnie można importować do innych aplikacji.

Na przykład, komponent VendorSearch jest używany we wszystkich aplikacjach obsługujących procesy procure-to-pay i został pierwotnie zbudowany w aplikacji SAP Vendor Management i zaimportowany do użycia w innych aplikacjach procure-to-pay.

Ostrzeżenie

Negatywną konsekwencją korzystania z lokalnych komponentów aplikacji w porównaniu z bibliotekami komponentów jest to, że jeśli zostanie określona zmiana, zmiany te muszą zostać wprowadzone we wszystkich aplikacjach, które już zaimportowały ten komponent.

Wspólne komponenty używane w aplikacjach:

Składnik opis
ScreenHeader Wspólny nagłówek na każdym ekranie
LeftNavigation Główna nawigacja umożliwiająca szybki dostęp do innych aplikacji sterowanych przez źródło Element menu Dataverse
CommandBar Lista wspólnych elementów sterujących do tworzenia, zmiany, zapisywania, anulowania, wyszukiwania, ostatniego wyszukiwania lub poprzedniego wyszukiwania obiektów
ScreenTabs Grupy logicznych komponentów ułożone razem w zakładkach dla łatwej nawigacji
NoItemsDisplay Produkty są wyświetlane w siatkach, gdy nie ma żadnych rekordów
ObjectNameSearch Wspólne komponenty wyszukiwania obiektów SAP są zawarte w odpowiedniej aplikacji, w której są używane i mogą być importowane do innych aplikacji w razie potrzeby. Przykłady: VendorSearch, GLAccountSearch, MaterialSearch oraz RequisitionSearch

Więcej informacji: Omówienie składnika kanwy

Dodatkowe pola SAP

Każde wdrożenie SAP jest inne i w pełni oczekiwane jest dodanie własnych pól, które wspierają procesy biznesowe. W związku z tym zaimplementowano dużą przestrzeń ekranową i względy projektowe, aby umożliwić łatwe dodawanie potrzebnych pól.

Wspólne kontenery kontrolne

Większość kontrolek znajduje się w kontenerze składającym się z etykiety i kontrolki wejściowej. Na przykład pole do przechwytywania nazwy dostawcy w aplikacji SAP Vendor Management składa się z etykiety i kontrolki wprowadzania tekstu, jak widać na poniższym zrzucie ekranu. Aby dodać nowe pole, skopiuj istniejącą kontrolkę kontenera i wklej do odpowiedniego komponentu responsywnego, aktualizując nazwy, tekst i ostatecznie mapowane pola.

Praca z formantami kontenerów.

Uwaga

Istnieją podobne kontenery dla innych typów kontrolek wejściowych, takich jak pola kombi, wybieraki daty i przyciski.

Kontenery responywne

Aplikacje są zaprojektowane tak, aby reagować na typ tabletu / komputera stacjonarnego za pomocą pionowych i poziomych elementów sterujących kontenera, takich jak pokazano na poniższym zrzucie ekranu. Kontenery te są skonfigurowane tak, aby miały punkty początkowe dla właściwości takich jak wysokość, szerokość, LayoutMinHeight, LayoutMinWidth i Zawijanie. Gdy dodasz więcej pól do tych kontenerów, upewnij się, że te właściwości są również aktualizowane, aby nadal odpowiednio obsługiwać responsywność.

Praca z responsywnymi kontenerami.

Więcej informacji: Automatyczny układ kontenerów

Połączenie z innymi danymi

Potęga aplikacji na kanwie polega na tym, że mogą one łatwo łączyć się z jednym z kilkuset innych systemów i aplikacji w bezpieczny sposób przy użyciu ich natywnej biblioteki łączników.

Na przykład, jeśli proces zlecenia zakupu SAP Procurement wymaga danych z wcześniejszych możliwości przedsprzedażowych, które istnieją w CRM, aby zakończyć proces, można użyć Salesforce lub łączników Dataverse do integracji z Dynamics 365, dzięki czemu można łatwo dodać te dane do aplikacji SAP Purchase Order za pomocą jednego przycisku.

Ponadto w przypadku wewnętrznego, własnościowego systemu lub systemu bez macierzystego łącznika można we współpracy z zespołem it Power Apps utworzyć niestandardowy łącznik, który umożliwi łatwy interfejs z tym systemem za pośrednictwem obsługiwanego interfejsu API.

Więcej informacji:

Obsługa błędów aplikacji

Wszystkie wbudowane wywołania przepływów domyślnie oceniają pole statusu odpowiedzi wysyłane z powrotem przez przepływy i obsługują je poprzez podniesienie komunikatu za pośrednictwem funkcji Powiadomienie. Aby dowiedzieć się więcej, zobacz Obsługa błędów.

If(
    !IsBlank(FirstError.Message),
    Patch(
        'SAP Integration Errors',
        Defaults('SAP Integration Errors'),
        {
            Action: FirstError.Source,
            'Additional Information': App.ActiveScreen.Name,
            'Error Message': FirstError.Message,
            Name: "SAP Vendor Management",
            'Source Type': 'Source Type (SAP Integration Errors)'.'Power App',
            'Workflow Status': 'Workflow Status (SAP Integration Errors)'.Failed
        }
    );
Trace(FirstError.Message);
Error(FirstError);  
)

Wszystkie nieoczekiwane wyjątki generowane przez aplikację są obsługiwane we właściwości App.OnError, gdzie tworzony jest rekord Błąd szablonu rozwiązania SAP, zanim błąd zostanie ponownie odrzucony i prześledzony. Administrator może wyświetlić szczegóły błędu, a także umieścić wyzwalacze, aby otrzymywać powiadomienia o nieobsługiwanych wyjątkach aplikacji, jak pokazano w dokumencie Błędy monitorowania.

Więcej informacji: Właściwość OnError

Następne kroki

Rozszerzanie aplikacji opartych na modelu i Dataverse

Zobacz też

Wprowadzenie do szablonu SAP Procurement