Ich habe mir die Fingerübung gemacht und ein Testszenario für dich gebaut:
Grundlage ist wie bereits beschrieben eine kurze PHP-Regel:
<?php
class className extends JobRouter\Engine\Runtime\PhpFunction\RuleExecutionFunction
{
public function execute($rowId = null)
{
define("AKTION", $this->getInputParameter('AKTION'));
$subtable = 'EMAILIMPORTANHANG';
$subtableRowIds = $this->getSubtableRowIds($subtable);
foreach ($subtableRowIds as $row)
{
if($this->getSubtableValue($subtable, $row, 'AKTION') !== AKTION)
{
$this->deleteSubtableRow($subtable, $row);
}
}
}
}
?>
Im Dialog werden entsprechende Weiterleitungsregeln für deine Aktionen, ähnlich wie bei deinem Beispiel, eingerichtet:
Und in dem Entscheidungsschritt wird die PHP-Funktion mit der entsprechenden AKTION aufgerufen:
... das war es schon..
Ich kann dir meinen Demoprozess gerne senden, leider ist ein ZIP-Upload nicht erlaubt. Du kannst mich gerne direkt anschreiben und deine E-Mail-Adresse nennen.
Hallo @<1614014256435433472|Swen Niehaus>,
danke für die ausführliche Erklärung, allerdings brauche ich die anderen Zeilen/Anhänge in der Subtable ebenfalls, weil der Nutzer auch hier eine Aktion wählen soll. (Bsp. Archivieren, Löschen , etc.. ). Wenn ich die Subtable leere, dann habe ich die anderen Werte nicht mehr.
Zudem soll die Bearbeitung des Schittes nicht zwingend in einem Schritt passieren, der Nutzer kann beispielsweise für 2 Anhänge auswählen, dass diese archiviert werden sollen und den Schritt senden. Die ausgewählten Anhänge können, dann archiviert werden und wenn die Subtable noch Zeilen enthält, soll der Nutzer den Schritt wieder erhalten. So kann er die Zeilen, wo er noch keine Aktion ausgewählt hat, zu einem späteren Zeitpunkt bearbeiten. Beispielsweise weil er eine Rückmeldung braucht oder offene Fragen hat.
Eigentlich auch kein Thema ;) Da du durch die Weiterleitungsregel die Untertabellen eigentlich kopierst... Hierzu muss die PHP bei leerer Übergabe einer Aktion nur alle Spalten "mit Aktion" löschen und ...
und die Weiterleitung dann in den restlichen Workflow bzw. wieder in den selben Schritt weiterleiten. Ich bin noch auf Arbeit. Schaue mir das nachher mal an und poste die angepasste PHP ;)
Ich habe mir die Fingerübung gemacht und ein Testszenario für dich gebaut:
Grundlage ist wie bereits beschrieben eine kurze PHP-Regel:
<?php
class className extends JobRouter\Engine\Runtime\PhpFunction\RuleExecutionFunction
{
public function execute($rowId = null)
{
define("AKTION", $this->getInputParameter('AKTION'));
$subtable = 'EMAILIMPORTANHANG';
$subtableRowIds = $this->getSubtableRowIds($subtable);
foreach ($subtableRowIds as $row)
{
if($this->getSubtableValue($subtable, $row, 'AKTION') !== AKTION)
{
$this->deleteSubtableRow($subtable, $row);
}
}
}
}
?>
Im Dialog werden entsprechende Weiterleitungsregeln für deine Aktionen, ähnlich wie bei deinem Beispiel, eingerichtet:
Und in dem Entscheidungsschritt wird die PHP-Funktion mit der entsprechenden AKTION aufgerufen:
... das war es schon..
Ich kann dir meinen Demoprozess gerne senden, leider ist ein ZIP-Uploud nicht erlaubt. Du kannst mich aber genre direkt anschreiben und deine E-Mail-Adresse nennen.
ERWEITERUNG FÜR DIE RESTLICHEN SCHRITTE
Regel musste nicht mal angepasst werden.. einfach eine weitere Weiterleitungsregel in Schritt 1 auf Schritt 5 ohne Angabe der Aktion.
Ohne dein Szenario jetzt nachzubauen, wenn der Filter nicht funktioniert, dann mach doch eine einfache Regelausführungsfunktion in PHP und entferne dort in einer Loop einfach alle Zeilen ohne AKTION = email.