Escrito por

Roche Diagnostics
Pregunta Mathew Lambert · jun 16, 2020

Callback de resultado CRUD para clases persistentes

Me gustaría saber si hay alguna forma de tener un callback o similar para clases persistentes, que se ejecute siempre después de la operacion (ya sea que falle o que vaya bien)

%OnOpen se ejecuta antes de la accion y no hay callback de after.

%OnAfterDelete y %OnAfterSave se ejecutan solo después de una operación satisfactoria.

Comments

David Reche · jun 16, 2020

Hola Mathew,

Siempre se puede hacer una clase que herede de %Persistent y que exponga los métodos que quieras para guardar por ejemplo. Internamente allí puedes crear tu Callback y luego llamar al %Save.

Algo así como:

Class MiPersistente Extends %Persistent {

Method OnGuardar() {
}

Method Guardar() {
  ..OnGuardar()
  ..%Save()
}
}

Luego en lugar de heredar de %Persistent heredas de esta clase y sobre escribes el Callback.

No lo he probado pero es una alternativa a investigar

Gracias

0
Mathew Lambert  jun 17, 2020 to David Reche

Ya pero esto tiene dos problemas, el %Save es diferente para cada clase (es code generator) por llo que no es lo mismo hacer un save de mi clase que de esta "super", por otro lado, me gustaría evitar tener que modificar >17k llamadas a %Save

0
David Reche  jun 17, 2020 to Mathew Lambert

Buscar/Reemplazar todo 17 mil veces... ¿qué puede salir mal?

0
Mathew Lambert · jul 7, 2020

Como parece que no hay nada que pueda solucionar esto ahora mismo, vamos a hablar con InterSystems. Creo que puede ser interesante.

0