Hola, estoy haciendo pruebas con la exportación del proyecto usando el DeployToFile, pero tengo problemas con los BusinessProcess.

Al exportarlo con DeployToFile, me añade las siguientes clases:

  • Ens.BP.MasterPendingResponse.cls
  • Ens.BusinessProcess.cls
  • Ens.BusinessProcessMessagesReceived.cls
  • Ens.BusinessProcessMessagesSent.cls

Pero al intentar importarlo en otro Namespace, me da error porque son clases del paquete Ens:

ERROR #5567: Class 'Ens.BP.MasterPendingResponse' is in a database you do not have write permissions on so it can not be compiled

> ERROR #5030: An error occurred while compiling class 'Ens.BP.MasterPendingResponse'

Solo me pasa con los BusinessProcess, con otras clases (mensajes, servicios, reglas...) funciona.

Creo que es por la recursividad. He probado a exportar sin recursividad (aunque no sé si estoy poniendo bien el flag), invocando do p.DeployToFile("C:\test.xml", "/norecursive", 1) pero sigue exportando esas clases.

Qué puedo hacer?

Gracias por la respuesta Luis Ángel. Lo probaré, aunque creo que para poder detectar los updates/deletes tendré que implementar también el %OnBeforeSave.

-------------------------------------------------------------------

Acabo de probar otra cosa. Buscando en la comunidad he encontrado este comentario: https://community.intersystems.com/post/trigger-or-callback#comment-99361

He probado a ponerle al trigger "Foreach = row/object" y ahora ya salta cuando se hacen acciones sobre los objetos 🎉

He mirado este artículo y estoy invocando correctamente el método. Lo que sí he tenido que hacer es reconvertir la clave pública de pkcs#8 a pkcs#1 como indica en el artículo. Con eso consigo que encripte, aunque luego el sistema del proveedor me dice que no es válido, pero quizá sea que me falte/sobre algo. Seguiré probando a ver si consigo hacerlo funcionar.

Muchas gracias!

Gracias David.

Al final, dado que el comando de terminal funcionaba, esto es exactamente lo que hice, invocar el comando utilizando $ZF(-100, "openssl", ...). Con esto hemos conseguido que funcione. Entiendo que es una solución igualmente válida, no? Me hubiera gustado poder realizarlo con los métodos de clase de $System.Encryption, pero no lo he conseguido.