Najlepsze rozwiązania dotyczące aktualizowania przepływu używanego przez aplikację Power App

W tym artykule opisano najlepsze rozwiązania i kroki w celu wyeliminowania typowych błędów podczas uruchamiania przepływów firmy Microsoft w usłudze Power Apps.

Dotyczy: Power Apps
Oryginalny numer KB: 4477072

Kod błędu "InvokerConnectionOverrideFailed" w przebiegu przepływu

Niektóre przepływy nie mogą działać w usłudze Power Apps. W historii uruchamiania przepływu lub danych telemetrycznych usługi Power Apps może zostać wyświetlony błąd podobny do następującego:

    { 
        "code": "InvokerConnectionOverrideFailed", 
        "message": "Failed to parse invoker connections from trigger 'manual' outputs. Exception: Could not find any valid connection for connection reference name '<some_connection>' in APIM tokens header." 
    }

Uwaga

Ten błąd występuje również podczas wywoływania interfejsu install API w usłudze Common Data Service (CDS), ale odpowiedzią jest błąd ogólny "Przepływ instalacji nie powiódł się".

Przyczyna

Ten problem występuje, ponieważ przepływ został zaktualizowany w celu użycia nowego połączenia, ale aplikacja nadal używa starych metadanych przepływu. Aktualizowanie przepływu nie powoduje zaktualizowania aplikacji korzystających z przepływu. Aby rozwiązać ten problem, musisz ręcznie zaktualizować aplikację, aby zmiany zostały odzwierciedlone w aplikacji i aby przepływ działał.

Kroki ograniczania ryzyka

Uwaga

Pamiętaj, aby wykonać następujące kroki w środowisku źródłowym lub programistycznym i zaktualizować rozwiązanie. Po zaktualizowaniu rozwiązania zaimportuj go do wszystkich środowisk docelowych lub produkcyjnych.

  1. Otwórz aplikację do edycji przy użyciu najnowszej wersji programu Power Apps Studio.
  2. Usuń przepływy z aplikacji (usuń przepływy z karty Power Automate).
  3. Dodaj ponownie przepływy do aplikacji.
  4. Zapisz i ponownie opublikuj aplikację.

Kod błędu "ConnectionAuthorizationFailed" w przebiegu przepływu

    { 
        "code": "ConnectionAuthorizationFailed", 
        "message": "The caller with object id '{user_id}' does not have the minimum required permission to perform the requested operation on connection '{some_connection_id}' under API '{some_connection_api}'." 
    }

Przyczyna

Ten błąd oznacza, że mimo że twórca ma uprawnienia do przepływu, twórca nie ma uprawnień do połączeń zależnych, które są używane w akcjach przepływu. Jest to ograniczenie integracji usługi Power Apps i usługi Flow.

Kroki ograniczania ryzyka

Uwaga

Pamiętaj, aby wykonać następujące kroki w środowisku źródłowym lub programistycznym i zaktualizować rozwiązanie. Po zaktualizowaniu rozwiązania zaimportuj go do wszystkich środowisk docelowych lub produkcyjnych.

To ograniczenie ryzyka polega na tym, aby wszystkie połączenia w przepływie były własnością jednego użytkownika, a następnie aby ten użytkownik dodał przepływ do aplikacji.

Kod błędu "WorkflowTriggerIsNotEnabled" w przebiegu przepływu

    { 
        "code": "WorkflowTriggerIsNotEnabled", 
        "message": "Could not execute workflow '<GUID>' trigger 'manual' with state 'Disabled': trigger is not enabled."  
    } 

Przyczyna

Ten błąd oznacza, że przepływ jest wyłączony.

Kroki ograniczania ryzyka

Uwaga

Pamiętaj, aby wykonać następujące kroki w środowisku źródłowym lub programistycznym i zaktualizować rozwiązanie. Po zaktualizowaniu rozwiązania zaimportuj go do wszystkich środowisk docelowych lub produkcyjnych.

Ograniczenie ryzyka polega na włączeniu przepływu.

Kod błędu wewnętrznego "ResponseTimeout" w przebiegu przepływu

        {
            "error": {
            "code": 504,
            "source": "<api hub source>",
            "clientRequestId": "<GUID>",
            "message": "BadGateway",
            "innerError": {
                "error": {
                    "code": "ResponseTimeout",
                    "message": "The server did not receive a timely response from the upstream server. Request tracking id '<some_tracking_id>'."
                    }
                }
            }
        } 

Przyczyna

Ten błąd oznacza, że ukończenie przepływu synchronicznego trwa dłużej niż 120 sekund (2 minuty), co powoduje przekroczenie limitu czasu. Dowiedz się więcej o limicie limitu czasu wychodzącego żądania synchronicznego.

Kroki ograniczania ryzyka

Uwaga

Pamiętaj, aby wykonać następujące kroki w środowisku źródłowym lub programistycznym i zaktualizować rozwiązanie. Po zaktualizowaniu rozwiązania zaimportuj go do wszystkich środowisk docelowych lub produkcyjnych.

Ograniczenie ryzyka polega na znalezieniu przebiegu przepływu, który trwa zbyt długo , i zoptymalizowanie go do uruchomienia w ciągu dwóch minut przy użyciu rozwiązań podanych w artykule Rozwiązywanie problemów z wolno działającymi przepływami.

Kod błędu "0x80040265" lub "0x80048d0b" w przebiegu przepływu

    {

        "code": " 0x80040265", 
        "message": "Failed to install the flow."  

    }  
    {

        "code": " 0x80048d0b", 
        "message": "Failed to install the flow."  

    } 

Kroki ograniczania ryzyka

Uwaga

Pamiętaj, aby wykonać następujące kroki w środowisku źródłowym lub programistycznym i zaktualizować rozwiązanie. Po zaktualizowaniu rozwiązania zaimportuj go do wszystkich środowisk docelowych lub produkcyjnych.

Wypróbuj rozwiązania wymienione dla jednego z następujących kodów błędów:

Kod błędu "MissingConnectionReference" w przebiegu przepływu

    { 
        "code": " MissingConnectionReference' ", 
        "message": " Connection reference '<connection name>' was not given by invoker."
    } 

Przykładowy błąd:

Odwołanie do połączenia "<nazwa> połączenia" nie zostało podane przez wywoływacz.

Przyczyna

Zasadniczo metadane aplikacji i przepływu muszą być zsynchronizowane. Wszelkie zmiany wprowadzone w przepływie wymagają od twórcy aplikacji edytowania aplikacji przy użyciu przepływu i usunięcia lub ponownego dodania zmienionego przepływu.

W przypadku aplikacji rozwiązania lub przepływów aplikacja może pomyślnie wywołać przepływ w środowisku źródłowym, a następnie zakończyć się niepowodzeniem w środowisku docelowym z następującym komunikatem o błędzie:

Nie skonfigurowano połączenia dla tej usługi.

Przyczyną może być zmiana przepływu w środowisku docelowym, ale nie istnieje w środowisku źródłowym.

Kroki ograniczania ryzyka

Uwaga

Pamiętaj, aby wykonać następujące kroki w środowisku źródłowym lub programistycznym i zaktualizować rozwiązanie. Po zaktualizowaniu rozwiązania zaimportuj go do wszystkich środowisk docelowych lub produkcyjnych.

  1. W środowisku źródłowym edytuj aplikację. Usuń, a następnie ponownie dodaj przepływy do aplikacji. Zapisz i opublikuj zmiany.

  2. W środowisku docelowym usuń wszystkie niezarządzane warstwy w aplikacji i przepływie.

  3. Wyeksportuj rozwiązanie i zaimportuj je do środowiska docelowego.

    Uwaga

    W przepływie lub aplikacji nie może być żadnych warstw niezarządzanych, ponieważ może to powodować problemy związane z przepływem.

Kod błędu "NotAllowedConnectionReferenceon" w przebiegu przepływu

    {
        "code": " NotAllowedConnectionReference", 
        "message": "Connection reference '<connection name>' was not given by invoker."
    }

Przykładowy błąd:

Odwołanie do połączenia "<nazwa> połączenia" nie zostało podane przez wywoływacz.

Przyczyna

Ten błąd oznacza, że aplikacja ma metadane przepływu, które określają, że w instalacji jest wymagane połączenie SQL, ale rzeczywiste metadane przepływu są inne.

Kroki ograniczania ryzyka

Uwaga

Pamiętaj, aby wykonać następujące kroki w środowisku źródłowym lub programistycznym i zaktualizować rozwiązanie. Po zaktualizowaniu rozwiązania zaimportuj go do wszystkich środowisk docelowych lub produkcyjnych.

Opcja ograniczania ryzyka 1

  1. W środowisku źródłowym edytuj aplikację. Usuń, a następnie ponownie dodaj przepływy do aplikacji. Zapisz i opublikuj zmiany.

  2. W środowisku docelowym usuń wszystkie niezarządzane warstwy w aplikacji i przepływie.

  3. Wyeksportuj rozwiązanie i zaimportuj je do środowiska docelowego.

    Uwaga

    W przepływie lub aplikacji nie może być żadnych warstw niezarządzanych, ponieważ może to powodować problemy związane z przepływem.

Opcja ograniczania ryzyka 2

  1. Zmień połączenie z Osadzone na Invoker.
  2. Przejdź do portalu przepływu, aby edytować i aktualizować ustawienia przepływu.
  3. Na stronie szczegółów przepływu w sekcji Uruchamianie tylko użytkowników wybierz pozycję Edytuj.
  4. Aby zaktualizować źródło połączenia przepływu do elementu Invoker, wybierz pozycję Dostarczone przez użytkownika tylko do uruchamiania i zapisz.
  5. Aby zaktualizować źródło połączenia przepływu do pozycji Osadzone, wybierz pozycję Użyj tego połączenia i zapisz.
  6. Sprawdź, wyzwalając przepływ. Zobaczysz, że wywołania "zainstaluj sieć przepływu" teraz kończą się pomyślnie.

Inne objawy

Po zaktualizowaniu przepływu wywołania tego przepływu z usługi Power Apps zaczynają kończyć się niepowodzeniem.

  • Jeśli nowe dane wejściowe zostaną dodane do przepływu bez aktualizowania aplikacji Power App, przepływ zakończy się niepowodzeniem z komunikatem o błędzie podobnym do następującego:

    Nie można przetworzyć wyrażeń języka szablonu w akcji "Send_me_a_mobile_notification" danych wejściowych w wierszu "1" i kolumnie "1900": "Nie można ocenić wyrażenia języka szablonu "triggerBody()['Sendmeamobilenotification_Text']", ponieważ nie można wybrać właściwości "Sendmeamobilenotification_Text". https://aka.ms/logicexpressions Zobacz, aby uzyskać szczegółowe informacje o użyciu.'.

    Zrzut ekranu przedstawiający komunikat o błędzie podczas dodawania nowych danych wejściowych do przepływu bez aktualizowania aplikacji Power App.

  • Jeśli połączenia wymagane do uruchomienia przepływu zmienią się, powinien zostać wyświetlony błąd narzekający na połączenia:

    W usłudze Power Apps może to wyglądać następująco:

    Zrzut ekranu przedstawiający komunikat o błędzie informujący o połączeniach w usłudze Power Apps.

    Lub w usłudze Flow może to wyglądać następująco:

    Nie można przetworzyć wyrażeń języka szablonu w akcji "Send_an_email" danych wejściowych w wierszu "1" i kolumnie "1899": "Wyrażenie języka szablonu "json(decodeBase64(triggerOutputs().headers['X-MS -APIM-Tokens']))['$connections']['shared_office365']['connectionId']' nie można ocenić, ponieważ właściwość "shared_office365" nie istnieje, dostępne właściwości to "shared_flowpush". https://aka.ms/logicexpressions Zobacz, aby uzyskać szczegółowe informacje o użyciu.'.

    Zrzut ekranu przedstawiający komunikat o błędzie narzekający na połączenia w usłudze Flow.

  • Jeśli dane wyjściowe odpowiedzi zostaną usunięte, usługa Power Apps będzie traktować wartość jako pustą, a aplikacja Power App będzie zachowywać się nieoczekiwanie.

Przyczyna

Aby wywołać przepływ z usługi Power Apps, usługa Power Apps musi wiedzieć, jakich danych wejściowych potrzebuje przepływ, jakie połączenia należy podać do przepływu i jakie dane wyjściowe będą zwracane przez przepływ. Usługa Power Apps przechowuje te informacje w definicji aplikacji Power App, która tworzy powiązanie między wersją aplikacji Power App a używanymi w niej przepływami. Zmiana dowolnego z tych trzech aspektów przepływu może przerwać wszystkie poprzednie wersje usługi Power Apps zintegrowane z tym przepływem. Aby rozwiązać problem z aplikacją Power App lub użyć jednej z tych zmian przepływu, należy zaktualizować aplikację Power App.

Typy zmian, które mogą najprawdopodobniej złamać możliwość wywoływania przepływu przez usługę Power Apps, obejmują:

  • Dodawanie nowego tokenu Zapytaj w usłudze Power Apps.

    Zrzut ekranu przedstawiający dodawanie nowego tokenu Zapytaj w usłudze Power Apps.

  • Dodawanie nowego połączenia. Na przykład przez dodanie nowej akcji z łącznika, która nie była wcześniej używana jak łącznik programu SharePoint.

    Zrzut ekranu przedstawia przykład dodawania nowego połączenia.

  • Zmiana istniejącego połączenia. Na przykład zmiana istniejącego połączenia na nowe połączenie.

    Zrzut ekranu przedstawiający zmianę istniejącego połączenia w usłudze Flow.

  • Usuwanie danych wyjściowych z akcji Odpowiedz na usługę Power Apps.

    Zrzut ekranu przedstawiający usuwanie danych wyjściowych z akcji Odpowiedz na usługę Power Apps.

Inne zmiany danych wejściowych lub wyjściowych nie przerywają integracji między usługami Power Apps i Flow, ale wymagają aktualizacji aplikacji Power App, aby mogła z nich korzystać.

Rozwiązanie

Zmienianie aktywnej aplikacji Power App

Po opublikowaniu aplikacji Power App zawsze zaleca się tworzenie kopii przepływów używanych przez usługę Power Apps do dokonywania jakichkolwiek aktualizacji. Każda aktualizacja przepływu, do którego odwołuje się aktywna aplikacja Power App, może spowodować przerwanie istniejących użytkowników. Nie usuwaj ani nie wyłączaj istniejących przepływów, dopóki wszyscy użytkownicy nie zostaną uaktualnieni do nowej opublikowanej wersji aplikacji Power App.

Zrzut ekranu przedstawiający tworzenie kopii przepływów używanych przez aplikację Power App, wybierając opcję Zapisz jako.

W nowej wersji aplikacji Power App odwołaj się do nowych przepływów. Po opublikowaniu nowej wersji aplikacji Power App użytkownicy zaczną korzystać z nowych przepływów z odpowiednimi danymi wejściowymi, danymi wyjściowymi i połączeniami. Dzięki temu aktualizacje przepływu dla nowych wersji usługi Power Apps nie będą miały wpływu na użytkowników istniejącej wersji.

Zmiana wersji programistycznej aplikacji Power App

Podczas tworzenia aplikacji Power App wprowadzanie zmian w przepływie, który nie jest używany przez aktywną wersję aplikacji Power App, jest łatwe. Po wprowadzeniu zmian w danych wejściowych, wyjściowych lub połączeniach przepływu nieopublikowanego wybierz ponownie przepływ z okienka Przepływy .

Zrzut ekranu przedstawiający aktualizowanie definicji przepływu w usłudze Power Apps.

Zaktualizuje definicję przepływu w aplikacji Power App, sprawdzając, czy w usłudze Power App są używane poprawne dane wejściowe, wyjściowe i połączenia.

Użytkownicy aplikacji Power App nie zaczną korzystać z nowych przepływów, dopóki aplikacja Power App nie zostanie opublikowana. Dlatego aktualizowanie istniejącego przepływu jest prawidłowe, dopóki nie zostanie użyte przez aktywną wersję aplikacji Power App.