Esse é um artigo da página de "Perguntas frequentes" (FAQ) da InterSystems.
1. Exportar API
a. Use $system.OBJ.Export()
para especificar rotinas individuais para exportar. Por exemplo:
do $system.OBJ.Export("TEST1.mac,TEST2.mac","c:\temp\routines.xml",,.errors)
O formato que você deve especificar é: NomeDaRotina.extensão
, e a extensão pode ser: mac, bas, int, inc, obj.
Os erros durante a exportação se armazenam na variável "errors".
Veja a referência da classe %SYSTEM.OBJ para mais detalhes sobre $system.OBJ.Export()
.
b. Use $system.OBJ.Export()
ao fazer uma exportação genérica usando * (wildcards). Por exemplo:
*Antes da versão 2008.1, utilize $system.OBJ.ExportPattern()
.
2. Importar API
a. Use $system.OBJ.Load()
para importar todas as rotinas contidas no arquivo. Por exemplo:
do $system.OBJ.Load("c:\temp\routines.xml",,.errors)
b. Importe só algumas das rotinas contidas no arquivo
Observe o exemplo abaixo. Se quiser selecionar e importar somente algumas das rotinas inclusas no arquivo XML, coloque 1 no 5º argumento "listonly" numa primeira execução e carregue o arquivo XML com $system.OBJ.Load()
, estabelecendo o 4º argumento (argumento de saída, list no exemplo abaixo). Isto criará uma lista de elementos na variável list. Depois poderemos recorrer essa lista e decidir que elementos (loaditem) queremos carregar, votando a executar $system.OBJ.Load()
e indicando o elemento a carregar no 6º argumento. Você pode ver mais claramente neste exemplo:
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)