Top

ChildFlowNeverPublished

Spis treści:


Czy kojarzysz problem opatrzony powyższym błędem, podczas próby włączenia podprzepływu, który wdrożyłeś w innym środowisku? Myślę, że znalazłem rozwiązanie!

Pewnego dnia wdrożyłem solucję (za pomocą Power Platform Pipelines) do środowiska produkcyjnego, które zawierało kilka podprzepływów (child flows). Podprzepływy były wyłączone po wdrożeniu, więc spróbowałem je włączyć. Kiedy to zrobiłem, zobaczyłem ten czerwony błąd:

Turn on failed. Flow client error returned with status code „BadRequest” and details „{„error”:{„code”:”ChildFlowNeverPublished”,”message”:”The workflow with id '{some-guid}’ cannot be used as a child workflow because it has never been published. Child workflows need to be published at least once before they can be included in a published parent workflow.”}}”.

Następnie spróbowałem zaimportować solucję ręcznie, ale w tym przypadku błąd występował natychmiast po imporcie.

Dalsze śledztwo

Zacząłem szukać, co ten błąd może oznaczać, jednak w internecie nie było naprawdę żadnych informacji. Moją pierwszą myślą było, że może to być związane z nowo wydaną funkcjonalnością umożliwiającą wersjonowanie, zapisywanie wersji roboczych i publikowanie głównych wersji przepływów w chmurze:

Zatem, idąc tym tropem, ponownie kliknąłem „Opublikuj” we wszystkich procesach zaangażowanych w moją automatyzację. Następnie ponownie wdrożyłem solucję, aby zdać sobie sprawę, że nadal występuje ten sam błąd.

Następnie pomyślałem o funkcji „Publish all customizations” na poziomie solucji (mimo że ta funkcja nie jest przeznaczona dla przepływów w chmurze – źródło). Bez zmian.

Rozwiązanie

Tym co również zwróciło moją uwagę i sprawiło, że przestałem łączyć ten błąd „wersjonowaniem” był fakt, że pierwsze wzmianki dla podanego kodu błędu pojawiły się w wynikach wyszukiwania już dla 2021 roku. Spróbowałem ztem wdrożyć solucję jako niezarządzalną – i znów ten sam problem. Inne konto – to samo. Światło na sprawę rzuciło dopiero, gdy próbowałem usunąć komponenty solucji ze środowiska po wdrożeniu go jako niezarządzalne. Wtedy zdałem sobie sprawę, że miałem tam odniesienia cykliczne, które uniemożliwiały mi faktyczne usunięcie komponentów:

Nie mogłem usunąć podprzepływów „Stage”, ponieważ były one referencjami z podprzepływu maszyny stanów i odwrotnie. Wprowadziłem wtedy niewielką zmianę:

Po wprowadzeniu powyższej zmiany i ponownym wdrożeniu rozwiązania, w końcu udało mi się pomyślnie włączyć wszystkie przepływy w chmurze!

Nie mam żadnego oficjalnego oświadczenia od Microsoftu na temat tego błędu, czy jest to celowe, czy jest to jakiś problem z solucjami. Jeśli się czegoś dowiem, obiecuję zaktualizować ten post 🙂 W każdym razie – mam nadzieję, że to rozwiązanie pomoże również Tobie.


Tomasz Poszytek

Cześć! Nazywam się Tomasz. Jestem ekspertem w dziedzinie automatyzacji procesów i budowaniu rozwiązań dla biznesu z użyciem Power Platform. Jestem Microsoft MVP i Nintex vTE.

Brak komentarzy

Wyślij komentarz

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.