2012-03-29 34 views
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

Antwort

0

Das glaube ich nicht geifert API gibt die Regeln werden

zum Modifizieren
+0

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

+0

// 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

Verwandte Themen