Pregunta

He Drools siguiente regla a la que me envíe mapa lleno de elemento, pero cuando el fichero es ejecutado tengo elemento. ¿Por qué recibo nula cuando debería ser "Y" para el valor? Cuando pongo punto de interrupción en ACDebug.debug método () e inspeccionar mapa después map.put $ () fue ejecutado se ve bien, tiene "Y" para el valor, pero después de mis reglas se ejecutan tengo nula? Alguien ha Tengo un problema similar?

import java.util.Map;
import java.util.HashMap;
import edu.abc.ACDebug;

rule "POSTPROCESSOR 8"
    ruleflow-group "supress-processor"
    when
        $map:Map(keySet contains "STANDARD_ADDRESS:STREET_NAME")
    then
        ACDebug.debug($map, "Map before PUT: ");
        $map.put("/locationList/sourceAddress/fullStreet",new String("Y"));
        ACDebug.debug($map, "Map after PUT: ");
        $map.remove("STANDARD_ADDRESS:STREET_NAME");
end
¿Fue útil?

Solución

Después de haber hecho los cambios en el mapa, que tiene que hacer una actualización. Esto permite que el know memoria de trabajo que ha modificado el mapa.

Agregue la línea siguiente:

update( $map );
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top