Artículo
· 16 nov, 2023 Lectura de 3 min

Cómo ocultar el programa fuente

Preguntas frecuentes de InterSystems

Para rutinas (*.mac)

Se puede ocultar el código fuente exportando/importando solo el *.obj que se genera después de compilar el programa fuente.

El ejemplo de ejecución de comandos especifica EX1Sample.obj y EX2Sample.obj, que se generan al compilar EX1Sample.mac y EX2Sample.mac, como destinos de exportación y los exporta al segundo archivo de argumentos.

Después de pasarlo a otro namespace, se usa el archivo XML exportado para realizar la importación.

USER>do $system.OBJ.Export("EX1Sample.obj,EX2Sample.obj","D:\routine.xml")       
Exporting to XML started on 10/23/2023 11:33:49
Exporting object code: EX1Sample.obj
Exporting object code: EX2Sample.obj
Export finished successfully.
 
USER>zn "USER2"  //change namespace
USER2>do $system.OBJ.Load("D:\routine.xml")
 
Load started on 10/23/2023 11:34:26
Loading file D:\routine.xml as xml
Imported object code: EX1Sample
Imported object code: EX2Sample
Load finished successfully.
 
USER2>

Para clases (*.cls)

Para las clases, después de exportar/importar *.cls en XML, ejecutad MakeClassDeployed() en el servidor.

¡Ojo! En versiones relativamente nuevas, después de ejecutar MakeClassDeployed(), el archivo fuente (*.cls) se convierte en modo de implementación - no se puede editar, solo se puede ver. Si queremos hacerlo invisible, hay que establecer la propiedad Hidden (oculta) de la clase después de ejecutar MakeClassDeployed() (estableced el atributo de propiedad Hidden=True).

Un ejemplo de ejecución de comando es el siguiente.

USER>do $system.OBJ.Export("WH.Color.cls,WH.Size.cls","D:\test.xml")
 
Exporting to XML started on 10/23/2023 11:39:24
Exporting class: WH.Color
Exporting class: WH.Size
Export finished successfully.
 
USER>zn "USER2"
USER2>do $system.OBJ.Load("D:\test.xml","ck")
 
Load started on 10/23/2023 11:39:48
Loading file D:\test.xml as xml
Imported class: WH.Color
Imported class: WH.Size
Compiling 2 classes
Compiling class WH.Size
Compiling class WH.Color
Compiling table WH.Size
Compiling routine WH.Color.1
Compiling routine WH.Size.1
Load finished successfully.
 
USER2>do $system.OBJ.MakeClassDeployed("WH.Size")
 
USER2>

Para CSP (*.csp)

Para archivos CSP, copiad *.csp y pegadlo en la carpeta CSP de destino.

Después de compilar en el servidor, desactivad la compilación automática en la configuración de CSP, luego eliminad *.csp y ejecutad MakeClassDeployed().

Un ejemplo de ejecución es el siguiente.

1) Después de copiar el archivo CSP, pegarlo en el directorio CSP del servidor y compilarlo.

TEST>do $SYSTEM.CSP.LoadPageDir("/csp/test")

2) Establecer NO en "Compilación automática", desde la configuración de ruta de la aplicación web

Versión 2013.1 o posterior, ir a [Administration Portal] > [System Management] > [Security] > [Applications] > [Web Applications] > Enlace a la aplicación

Versión 2010.1 a Version 2012.2, ir a [Management Portal] > [System Management] > [Security] > [Applications] > [Web Applications] > [Edit] nombre de la aplicación

Versión 2010.2 o anterior, ir a [System Management Portal] > [System] > [Security Management] > [CSP Application] > [Edit] nombre de la aplicación

3) Ejecutar MakeClassDeployed() - ejemplo para la copia de cspsample.csp

TEST>do $system.OBJ.MakeClassDeployed("csp.cspsample")
Comentarios (0)1
Inicie sesión o regístrese para continuar