Artículo
· 31 mayo, 2023 Lectura de 2 min

API para importar/exportar rutinas

Este es un artículo de la página de "Preguntas frecuentes" (FAQ) de InterSystems.

 1. Exportar API

a. Usa $system.OBJ.Export() para especificar rutinas individuales para exportar. Por ejemplo:

do $system.OBJ.Export("TEST1.mac,TEST2.mac","c:\temp\routines.xml",,.errors)

El formato que debes especificar es: NombreDeLaRutina.extension, y la extensión puede ser: mac, bas, int, inc, obj.

Los errores durante la exportación se almacenan en la variable "errors".

Echa un vistazo a la referencia de clase %SYSTEM.OBJ para más detalles sobre $system.OBJ.Export().

b. Usa $system.OBJ.Export() incluso al hacer una exportación genérica usando * (wildcards). Por ejemplo:

do $system.OBJ.Export("*.mac",c:\temp\allmacroutines.xml")

*Antes de la versión 2008.1, utiliza $system.OBJ.ExportPattern().

2. Importar API

a. Usa $system.OBJ.Load() para importar todas las rutinas contenidas en el fichero. Por ejemplo:

do $system.OBJ.Load("c:\temp\routines.xml",,.errors)

b. Importa solo algunas de las rutinas contenidas en el fichero

Observa el ejemplo de abajo. Si quieres seleccionar e importar solo algunas de las rutinas incluidas en el fichero XML, pon a 1 el 5º argumento "listonly" en una primera ejecución, y carga el  archivo XML con $system.OBJ.Load(), estableciendo el 4º argumento (argumento de salida, list en el ejemplo abajo). Esto creará una lista de elementos en la variable list. Después podremos recorrer esa lista y decidir que elementos (loaditem) queremos cargar, volviendo a ejecutar $system.OBJ.Load() e indicando el elemento a cargar en el 6º argumento. Lo puedes ver más claramente en este ejemplo:

 Set file="c:\temp\routines.xml"
 // First get the list of items contained in the XML
 Do $system.OBJ.Load(file,,.errors,.list,1 /* listonly */)
 Set item=$Order(list(""))
 Kill loaditem
 While item'="" {
     If item["Sample" Set loaditem(item)="" {    // Import only those containing Sample
         Set item=$Order(list(item))
     }
 }
 // Execute import process with created list
 Do $system.OBJ.Load(file,,.errors,,,.loaditem)
Comentarios (0)1
Inicie sesión o regístrese para continuar