InterSystems API 导入与导出例程完整指南:高效管理 Routine 与 Class

作者:API传播员 · 2025-10-14 · 阅读时间:3分钟
本文详细介绍了在InterSystems平台上使用API进行例程导入和导出的方法,包括$.Export、$.ExportUDL、$.Load和$.ImportDir等关键API的使用示例和注意事项,帮助开发者高效完成相关操作。

导入与导出例程的API指南

在使用 InterSystems 平台进行开发时,导入和导出例程是常见的操作。本文将详细介绍如何使用相关 API 来完成这些任务,包括导出和导入例程的具体方法和注意事项。


导出API

1. 使用 $system.OBJ.Export() 导出单个例程

通过 $system.OBJ.Export() 方法,可以指定要导出的单个例程。以下是具体示例:

do $system.OBJ.Export("MyRoutine.mac", "C:\temp\MyRoutine.xml")
  • 格式说明:例程名需包含扩展名,例如 .mac.bas.int.inc.obj
  • 错误处理:导出过程中产生的错误会被存储在 Errors 变量中。
  • 参考文档:更多关于 $system.OBJ.Export() 的信息,请参阅 %SYSTEM.OBJ 类参考。

2. 使用通配符导出多个例程

即使使用通配符导出多个例程,也可以通过 $system.OBJ.Export() 实现。例如:

do $system.OBJ.Export("*.mac", "C:\temp\AllMacRoutines.xml")
  • 注意事项:在 2008.1 版本之前,需使用 $system.OBJ.ExportPattern() 方法。

3. 使用 $system.OBJ.ExportUDL() 导出为 UDL 格式

如果需要将例程导出为 UDL 格式而非 XML 格式,可以使用 $system.OBJ.ExportUDL()。示例如下:

do $system.OBJ.ExportUDL("MyClass.cls", "C:\temp\MyClass.csl")

导入API

1. 使用 $system.OBJ.Load() 导入所有例程

通过 $system.OBJ.Load() 方法,可以导入文件中包含的所有例程。例如:

do $system.OBJ.Load("C:\temp\MyRoutines.xml")

2. 选择性导入部分例程

如果只想从 XML 文件中选择性导入部分例程,可以按照以下步骤操作:

  1. 将第 5 个参数 listonly 设置为 1,以获取文件中包含的例程列表。
  2. 使用第 4 个参数(输出参数)从列表中选择需要导入的例程。
  3. 使用第 6 个参数指定导入目标。

示例代码:

do $system.OBJ.Load("C:\temp\MyRoutines.xml", , , .outputList, 1)
; 从 outputList 中选择目标例程后执行导入
do $system.OBJ.Load("C:\temp\MyRoutines.xml", , , , 0)

3. 使用 $system.OBJ.ImportDir() 导入目录下的多个文件

如果需要导入某个目录下的所有文件,可以使用 $system.OBJ.ImportDir() 方法。例如:

do $system.OBJ.ImportDir("C:\temp\", "*.xml", , , 1)

通过以上方法,您可以高效地完成例程的导入和导出操作。根据实际需求选择合适的 API 和参数设置,能够显著提升开发效率


原文链接

用于导入/导出例程的API | InterSystems开发者社区

原文链接: https://community.intersystems.com/post/api-importexport-routines