0
eine einfachste Situation: Ich habe einen Sabber fließen. Sehr einfach, wieWie kann ich den vordefinierten Drools-Flow-Prozess programmgesteuert ändern?
"<?xml version="1.0" encoding="UTF-8"?>
<process xmlns="http://drools.org/drools-5.0/process"
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xs:schemaLocation="http://drools.org/drools-5.0/process drools-processes-5.0.xsd"
type="RuleFlow" name="ruleflow" id="com.sample.ruleflow" package-name="com.sample" >
<header>
</header>
<nodes>
<start id="1" name="Start" x="16" y="16" width="48" height="48" />
<actionNode id="2" name="Hello" x="96" y="16" width="80" height="48" >
<action type="expression" dialect="mvel" >System.out.println("Hello World");</action>
</actionNode>
<end id="3" name="End" x="208" y="16" width="48" height="48" />
</nodes>
<connections>
<connection from="1" to="2" />
<connection from="2" to="3" />
</connections>
</process>"
Wie kann ich es ändern, um die Flow-Datei, um XML-Parser etc programmatisch, nicht mit dem Laden, aber die Knoten und die Verbindung durch den Code hinzufügen?
Vielen Dank im Voraus
seine nicht wahr ist, ist unten ein sehr komplexes Beispiel für Flow-Upgrade, aber ich brauche etwas viel einfacher , das hilft, einfach einen neuen Knoten hinzuzufügen – Alexey
// Prozessinstanz in neue Version migrieren Zuordnung Zuordnung = neu HashMap (); // Top-Level-Knoten 2 ist einem neuen Knoten mit ID 3 zugeordnet mapping.put ("2", 3L); // Knoten 2, der Teil des zusammengesetzten Knotens 5 ist, wird einem neuen Knoten mit ID 4 zugeordnet mapping.put ("5.2", 4L); WorkflowProcessInstanceUpgrader.upgradeProcessInstance ( ksession, processInstance.getId(), "com.sample.process2" mapping); –
Alexey