A través de los servicios broker.localPersistence.*, se tiene acceso a funciones relacionadas con el almacenamiento de datos en forma local, es decir en el dispositivo.

Los tipos de datos que pueden ser persistidos localmente por estas funciones en mat|r son:

Básicos := Integer | Bool | Double | String | Date

Recursivos := Array <Básicos> | Array <Recursivos> | Map <Básicos> | Map <Recursivos>

METODOS PUBLICOS

void broker.localPersistence.save(String key, Any valorAGuardar)

Guarda un valor en el almacenamiento de datos local en la key especificada como argumento.

Argumentos
key String: key en donde va a ser guardado el valor.
valorAGuardar [Básicos, Recursivos]: Valor a guardar en la key especificada.
Excepciones
LocalPersistenceInternalException – Has been an exception in local persistence service, in method save for key key. Se produjo una excepcion en el servicio de persistencia local.
UnsupportedTypeInPersistenceService – Error when trying to persist an unsupported type type. El tipo de dato que se intenta persistir no es soportado por la funcionalidad.

Any broker.localPersistence.get(String key)

Recupera un valor desde el almacenamiento de datos local.

Argumentos
key String: key del valor a ser recuperado.
Retorna
[Básicos, Recursivos] Valor correspondiente a la key especificada.
Excepciones
LocalPersistenceInternalException – Has been an exception in local persistence service, in method get for key key. Se produjo una excepcion en el servicio de persistencia local.
LocalPersistenceKeyNotFound – Local persistence service has not found a value for key key. El servicio de persistencia local no encontró un valor para la key especificada.

Any broker.localPersistence.get(String key, Any valorPorDefecto)

Recupera un valor desde el almacenamiento de datos local, devolviendo un valor por defecto si no se encuentra un valor para la key especificada.

Argumentos
key String: key del valor a ser recuperado.
valorPorDefecto [Básicos, Recursivos]: valor por defecto.
Retorna
[Básicos, Recursivos] Valor correspondiente a la key especificada.
Excepciones
LocalPersistenceInternalException – Has been an exception in local persistence service, in method get for key key. Se produjo una excepcion en el servicio de persistencia local.
LocalPersistenceKeyNotFound – Local persistence service has not found a value for key key. El servicio de persistencia local no encontró un valor para la key especificada.
UnsupportedTypeInPersistenceService – Error when trying to get an unsupported type type. El tipo de dato que se intenta recuperar por defecto no es soportado.

Bool broker.localPersistence.hasKey(String key)

Retorna true si existe la key espeficada en key.

Argumentos
key String: key a ser consultada en el almacenamiento local.
Retorna
Bool Retorna true si existe la key especificada.

void broker.localPersistence.remove(String key)

Borra el valor correspondiente a la key especificada desde el almacenamiento de datos local.

Argumentos
key String: key del valor a ser borrado.
Excepciones
LocalPersistenceKeyNotFound – Local persistence service has not found a value for key key. El servicio de persistencia local no encontró un valor para la key especificada.

void broker.localPersistence.removeAll()

Borra por completo el almacenamiento de datos local.

Ejemplo:

Experience Main {
    String name label("Main name")
    Decision rule1 action("MainContext.agregarTarea")     label("Agregar tarea")
    Decision rule2 action("MainContext.borrarLista")      label("Borrar lista de tareas")
}

Model Tarea {
    String nombreTarea
    String descripcionTarea
}

RuleContext MainContext {

  Rule agregarTarea {

    if (broker.localPersistence.hasKey(“listaTareas”)) {

        //recupero la lista de tareas
        Array<Tarea> miListaDeTareas =  broker.localPersistence.get(“listaTareas”)
        Tarea nuevaTarea = Tarea()
        nuevaTarea.nombreTarea = “nueva tarea”
        nuevaTarea.descripcionTarea = “comprar verduras”
        //agrego una nueva tarea a la lista recuperada
        miListaDeTareas.add(nuevaTarea)
        //guardo la lista en el almacenamiento local
        broker.localPersistence.save(“listaTareas”, miListaDeTareas)
    }
  }

  Rule borrarLista {

    if (broker.localPersistence.hasKey(“listaTareas”)) {
        //borro la lista de tareas
        broker.localPersistence.remove(“listaTareas”)
    }
  }

}