ChildFlowNeverPublished-Workaround als unverwaltete Ebene

Bild von esitio2

esitio2

Problem

Die Bereitstellung einer Lösung ist möglicherweise nicht so einfach, wie es zunächst erscheint. Während einer unserer Testbereitstellungen wurden alle Prozesse automatisch deaktiviert. Obwohl dies nach einer Bereitstellung eine ziemlich normale Situation ist, führte der Versuch, sie einzuschalten, diesmal zur Meldung „ChildFlowNeverPublished“. Interessant, wenn man bedenkt, dass es vorher nie notwendig war, Power Automate-Lösungen manuell zu veröffentlichen. Noch interessanter, wenn man bedenkt, dass die Veröffentlichung der Lösung nicht half. Auch die einzelne Veröffentlichung der Flows half nicht. Was ist also passiert? Und warum ist es in der Entwicklungsumgebung nicht passiert?

POZNAN, POL - MAY 24, 2022: Laptop computer displaying logo of Microsoft Power Automate

Lösung

Nachdem ich in meinen Flows nach Antworten gesucht hatte, suchte ich im Internet. Nach kurzer Recherche scheint es, dass Tomek Poszytek dasselbe Problem hatte und bei uns beiden war der Grund für die Ausnahme derselbe – zirkuläre Referenzen in der Lösung.

Mehr dazu: https://poszytek.eu/en/microsoft-en/office-365-en/powerautomate-en/childflowneverpublished/

Das Design meiner Automatisierung war jedoch etwas anders als das von Tomek.

1

Laut dem Artikel meines Kollegen sollte das Hinzufügen eines Proxys das Problem lösen.

2

Das obige Lösungsdesign scheint das Kernproblem auf den ersten Blick nicht zu beseitigen. Der Proxy-Flow bricht die zirkuläre Referenz in diesem Szenario nicht – er fügt ihr lediglich einen weiteren Schritt hinzu. Keiner der Flows referenziert jedoch direkt die anderen, was hier der entscheidende Hinweis sein könnte. Leider löste die obige Implementierung das Problem nach der Bereitstellung in der Testumgebung nicht – die ChildFlowNeverPublished-Ausnahme trat weiterhin auf.

Was also tun? Die zirkuläre Referenz scheint das Problem zu sein und sollte unterbrochen werden, um den Fehler zu verhindern. Wie kann sie unterbrochen werden? Nach einem Brainstorming fiel mir auf, dass in der Entwicklungsumgebung die gesamte Verarbeitung nie in erster Linie deaktiviert wurde. Nach dem Einschalten funktionierte alles einwandfrei. Was also getan werden muss, ist die zirkuläre Referenz nur zu unterbrechen, um die Flows einzuschalten. Danach könnte diese Änderung rückgängig gemacht werden. Und es scheint, dass Power Automate das Werkzeug dafür hat – die unverwaltete Ebene.

Um dies zu erreichen, bearbeitete ich den „Run a Child Flow“ eines Verarbeitungsflows, um auf einen Dummy-Flow zu verweisen, und speicherte ihn. Erster Punkt für mich – korrekt gespeichert. Dann eingeschaltet – zweiter Punkt, der Flow wurde ohne Ausnahme eingeschaltet. Die zirkuläre Referenz ist vorübergehend unterbrochen, also versuchte ich es mit anderen Flows. Alle wurden ohne Fehler eingeschaltet. Schließlich war es Zeit, die Änderungen rückgängig zu machen. Mit allen eingeschalteten Flows löschte ich die unverwaltete Ebene im Verarbeitungsflow – und voilà! Keine Ausnahmen. Weitere Tests des Flows bewiesen, dass er wie beabsichtigt funktioniert. Fall gelöst.

3

Zusammenfassung

Die Bereitstellung einer Lösung mit untergeordneten Flows kann auf Herausforderungen stoßen, wie den ChildFlowNeverPublished-Fehler. Der Schlüssel zur Lösung dieses Problems liegt darin zu verstehen, dass er durch zirkuläre Referenzen in der Lösung verursacht werden kann. Das vorübergehende Unterbrechen dieser Referenzen durch Bearbeitung von Flows und Verwendung der unverwalteten Ebene kann helfen, die Flows ohne Ausnahmen einzuschalten. Nach dem Einschalten aller Flows können die Änderungen rückgängig gemacht werden, wodurch die ursprüngliche Struktur der Lösung wiederhergestellt wird.

RPA Robotic process automation innovation technology concept. Wooden cube with Robot, Operating,  and Artificial intelligence (AI) on light background. Intelligent system automation, banner copy space

Ähnliche Fälle wurden von Tomek Poszytek in seinem Blog beschrieben. Seine Lösung beinhaltete das Hinzufügen eines Proxy-Flows, um die zirkulären Referenzen zu unterbrechen, was jedoch in meinem Fall nicht funktionierte. Jede Bereitstellung kann ihre eigenen einzigartigen Herausforderungen haben, daher ist es wichtig, flexibel und kreativ bei der Problemlösung zu sein.

Share the Post:

Contact KTBNet today!

Everything in one place

Related