Gracias por compartir Tomás. Muy interesante... seguro que ayudará a muchos que no puedan esperar a la acualización de su versión de IRIS y tengan que utilizar Exchange. Si es posible, te pediría que compartieses el código como proyecto en GitHub... puede resultar más fácil para otros si quieren aportar correcciones o mejoras.

Hola Ramón! Bienvenido a la Comunidad... Gracias por compartir!! Interesante artículo, con un caso de uso que es bastante común y que otros seguro aprovechan. La ventaja de ir a través de una BO es que igual que en este caso tu has decidido realizar directamente la inserción vía SQL en IRIS, esa misma BO y toda la lógica de negocio anterior, podría estar dirigida a otra BD externa, que puede ser IRIS o no, e incluso a otra tabla. Es decir, la BO te encapsula el almacenamiento. El Business Process o Business Service que la llama, no sabe ni cómo ni dónde se va a almacenar la información... el BO se encarga y puede cambiar sin afectar al resto. Este desacople nos simplifica muchísimo el trabajo de mantenimiento y evolución de la solución!!

Estaría muy bien si pudieras poner tu código en un GitHub y compartirlo junto con el artículo. Seguro que otros lo pueden aprovechar.

Gracias por compartir tu experiencia Heloisa... mucha gente no sabe que tiene la posibilidad de decidir el formato de los objetos JSON... y que puede predefinir distintos formatos de exportación e importación y utilizar uno u otro según necesite.

Duda... las clases de las que quieres exportar objetos en JSON, ¿no deberían heredar de %JSON.Adaptor? O es que consigues hacerlo de otro modo?

Muy ingenioso. Gracias por compartir!

Me ha gustado cómo le sacas partido a las funciones de asignación dinámica tanto de métodos ($classmethod(clase,metodo)), como de propiedades ($property(objRef,propName)). Igualmente el utilizar las macros del sistema $$$comMemberNext y $$$cCLASSproperty. 

Como sugerencia, en lugar de utilizar directamente estas macros, quizá ahí sería mejor utilizar el API que ya existe en %SYSTEM.Dictionary. En concreto esa línea podría ser:

set prop = $system.Dictionary.comMemberNext(claseRequest,$$$cCLASSproperty,prop)