Acabo de conseguir encontrar las referencias a las clases. Al abrir el XML, buscando "<Sub>CLS</Sub>" los siguientes 4 nodos son las 4 clases que no quiero que importe:  

Eliminando estos 4 nodos, ya puedo importar el archivo deploy en otro servidor.

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

Aunque ahora tengo otro problema: un BusinessProcess con código funciona bien, pero un BusinessProcess con BPL, no funciona. Creo que es porque el BPL genera un XData, así que tendré que cambiar el BPL por un proceso con código. Pero por lo menos ahora puedo añadir al archivo Deploy los BusinessProcess :)

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.