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

作者:API传播员 · 2025-10-14 · 阅读时间:4分钟
本文详细介绍了在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. 使用通配符导出多个例程

支持使用通配符一次导出多个例程,例如:

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)

四. 总结

通过本文介绍的方法,您可以高效地完成 例程的导入与导出 操作。根据实际开发需求选择合适的 InterSystems API 和参数设置,能够显著提升开发效率,并减少人为错误。

无论是导出单个例程、批量操作,还是将文件导入到特定目录,掌握这些 API 的使用都能帮助开发者在日常开发和部署中节省大量时间。


原文链接

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