Hat der Christian gefunden aber ich gebe mal einen Erklärungsversuch. Verlässt man mit einer Aktionskette B die Aktionskette A welche noch nicht fertig ist, also noch Aktionskettenbedingungen offen sind, und lässt B in C, dann D und E hüpfen und jeweils eine Bedingung fertig ausführen, dann dauert es so lange die Aktionsketten bis zu A zurückzuarbeiten, dass man in A leere Aktionsketten einfügen muss um die in A fehlende Bedingung auführen zu lassen. Ohne Leerketten in A wird der Befehl in A fehlerlos ignoriert und nicht ausgeführt.

Kann man dieses Timingproblem beheben?

Ich kann das gerne auf meinem Rechner an einem recht einfachen Fall demonstrieren.
Gefragt von (50.1k Punkte)
0 Punkte

2 Antworten

Das ist kaum so zu verstehen. Aus dem Grund möchte ich das Problem näher erläutern, ohne aber eine plausible Erklärung gefunden zu haben.

Innerhalb einer Aktionskette können verschiedene Aktionen in fest vorgegebener Reihenfolge gestartet werden. Zuerst werden alle Einzelaktionen abgearbeitet, z.B. Formulare geöffnet, Karteieinträge erzeugt usw., das geschieht grundsätzlich immer, bevor eine Aktionskettenbedingung gestartet wird. Will man einen Karteieintrag im Verlauf einer Kette starten, muss man dafür eine Bedingung erstellen. Dann arbeitet die Aktionskette die Bedingungen der Reihenfolge nach ab und man kann auch Karteieinträge an jeder beliebigen Stelle in einer bestimmten reihenfolge anlegen.

Sobald man dabei Karteieinträge erzeugt, können diese  im Verlauf der gestarteten Aktionskette allerdings nicht ausgewertet werden, weil der Eintrag erst in der Kartei gespeichert sein muss und das passiert erst, wenn alle Schritte und Unterschritte der ersten gestarteten Kette abgearbeitet sind.

Möchte man die so erzeugten Karteieinträge auswerten und mit den Inhalten weitere Aktionen starten oder steuern, muss man daher eine neue Kette starten.

Es scheint nun so zu sein, dass sobald die anderen Aktionen noch weitere Folgeschritte haben, werden  diese zuvor abgearbeitet, bevor der erzeugte Karteeieintrag ausgewertet werden kann. In solchen Fällen ist offenbar es notwendig, einen Zwischenschritt einzubauen, der nichts anderes tut, als eine Kette zu öffnen, die nur wieder die nächste Kette startet.
Beantwortet von (11.9k Punkte)
0 Punkte
Christian ich bin mir recht sicher, dass die Programmierer es so verstehen wie ich geschrieben habe und das Grundproblem das Verschlucken der Aktion aus der ersten Kette ist während die Kaskade rückabgewickelt wird. Deswegen funktioniert es mit Leeraktionen, die brauchen Zeit und die eigentliche Aktion aus der ersten Kette läuft dann ab wenn die Kaskade zurückgekommen ist und wird nicht verschluckt. Es ist ein Timingproblem bei zwei parallel laufenden Fäden.
Lässt sich mit viel rumprobieren lösen. Ein Wunder dass Christian das durch Probieren rausgefunden hat. Definitiv kein normaler Ablauf und nur durch looping Trick zu lösen, wenn Zollsoft da nicht was macht. Ohne Anleitung funktioneirt die Aktionskette nicht, es werden teile verschluckt und nicht ausgeführt und man kommt nie darauf warum.
Beantwortet von (50.1k Punkte)
0 Punkte
8,564 Beiträge
14,151 Antworten
20,733 Kommentare
3,606 Nutzer