在 VSCode 中使用 IRIS 实现 Git 源代码控制的最佳实践
目录
简介。
本文将介绍如何通过 InterSystems 开发人员社区快速入门 Git 开发,以及使用 IRIS InterSystems 时的版本控制实践。我们将介绍需要导出互操作性类、global和分析元素(如立方体和仪表盘)的情况。这些场景包括 IRIS 的关键版本控制实践。
要开始学习,您需要
- 注册并登录GitHub
- 成为 Git 上intersystems-community组织的成员
开始使用 IRIS InterSystems 非常简单!
IRIS 的版本控制与其他项目并无本质区别。我们对文件进行修改,然后提交到版本库。在 IRIS InterSystems 中,在 IRIS 中进行的更改不会自动导出到外部文件系统,我们需要专门的工具来实现这一点。
让我们先创建一个版本库并将代码上传到它。
要开始,请访问 github.com,创建一个空仓库。系统会提示你为其命名,选择隐私设置,并使用 intersystems-community/iris-interoperability-template 模板(如果你是 InterSystems 社区组织的成员,就可以使用该模板)。
- 该模板包含快速开始使用 IRIS 及其核心系统所需的一切:互操作性类、global类和用于分析的数据类。您还可以使用此模板与我一起学习。 -
填写相应字段并单击 "创建存储库
完成!现在我们有了一个版本库。接下来,我们只需将其克隆到硬盘上,用 IRIS 映像构建一个 Docker 容器,然后开始编码。
将版本库克隆到文件系统。然后打开 Microsoft Visual Studio,导航到包含代码的目录。
接下来,我们构建项目。
docker compose build - -no-cache - -progress=plain然后
docker compose up -d就这样,项目的安装和启动就完成了。
版本控制。
要将项目变更提交到版本库,需要将其从容器中检出并放入工作目录。要跟踪 IRIS 中的变更,请使用git-source-control应用程序。
我们的模板已经预装了 git-source-control 软件包,所以我们可以看看它是如何工作的,然后专注于版本控制。该软件包安装在 iris.cls 文件中。请注意这几行:
zpm "install git-source-control"
do ##class(%Studio.SourceControl.Interface).SourceControlClassSet("SourceControl.Git.Extension")
第一行是从 InterSystems Package Manager 或 IMP(例如:ZPM)安装应用程序。 第二行设置了 git-source-control 应用程序类:"SourceControl.Git.Extension" 作为 %Studio.SourceControl.Interface 系统类的参数,这样 VSCode 就能与源代码控制类通信。这一配置在构建容器时在 dockerfile 或 installer.cls 中完成,在本例中则在 iris.cls 中完成。
导出类
现在,让我们试着修改一下代码,看看会发生什么。 我们将为该模板中提供的一个表创建一个数据立方体。为此,请在控制台中运行以下命令,启用当前命名空间的分析功能:
do EnableDeepSee^%SYS.cspServer("/csp/USER/")
然后,我们进入地址"Management Portal->Analytics->Architect",就会看到这个窗口:
单击 "新建(New) "并填写表格中的字段,创建一个新的cube。 对于我们的cube,我们将使用 dc.Demo.PostMessages 数据模型。

这大概就是你应该得到的结果。
然后保存并编译新的 cube。
让我们回到 VSCode,看看有什么变化。
新cube被上传到文件系统中,与我们创建它时一模一样!就是这么简单。接下来,我们将修改其中一个业务生产类。
进入 IRIS,导航到Management Portal->Interoperability->Configure->Production。在那里,我们会看到 dc.Demo.RedditService 业务流程正在运行。
修改 dc.Demo.RedditService 类的定义并为其分配类别。然后点击应用。
我们转到 VSCode,看到业务流程类已上传到我们的文件系统,并包含所做的所有更改。
现在我们要做的就是把类放到相应的目录中,然后提交到版本库。
导出 BI 分析类。
接下来,我们将以业务分析元素为例,看看导出文件的另一种方法。 回顾一下我们根据 Reddit 消息创建的数据立方体。让我们创建一个透视图和仪表盘,将数据可视化并尝试导出。 为此,请进入 IRIS 并导航到Analytics->Analyzer。在这里,我们选择了 RedditMessages 数据立方体和基本的计数指标。
将该度量拖入 "Measures"字段,并将生成的数据透视保存为 "Reddit Messages Amount"。
接下来,让我们创建一个仪表盘来显示生成的数据透视表。转到Management Portal -> User Portal。在打开的窗口中,单击加号并选择添加仪表盘。
然后填写仪表盘名称并单击 "确定(OK)"。
然后将之前创建的 Widget 添加到仪表板并单击"OK"。
完成!非常简单。我们已经开始开发分析功能。现在我们需要导出这些元素。不幸的是,当前版本的 IRIS 和 Git-Source-Control 不允许跟踪分析类的更改,但我们有另一个方便的工具来完成这项任务。
我们将使用iris-bi-utils。这是一套实用工具,用于从 IRIS 导出或导入任何类到你的文件系统。与 Git-Source-Control 的主要区别在于,后者会自动跟踪类的变化,而 iris-bi-utils 则是手动导出类。使用 iris-bi-utils 应用程序,您可以下载 IRIS 中包含的任何类和元素。
因此,让我们先在 IRIS 中安装 iris-bi-utils。
在控制台运行以下命令
zpm "install iris-bi-utils"
然后运行命令设置项目根目录以存储对象。
do ##class(BIInstruments.utils).workdir("/home/irisowner/dev/")
以下命令将导出所需的透视和仪表盘。请注意导出类的语法。元素名称后必须跟上类别和类型:枢轴为 .pivot.DFI,仪表盘为 .dashboard.DFI。
do ##class(BIInstruments.export).export("Reddit Messages Amount.pivot.DFI")
do ##class(BIInstruments.export).export("Reddit overview.dashboard.DFI")
文件将导出到 /dfi 目录。该目录用于存储商业智能分析类文件。。
我们还会将它们放入相应的目录,并将更改推送到版本库。
导出Globals。
通常,我们不需要在开发过程中将global推送到版本库。通常,敏感数据会存储在那里,或者global的大小太大。不过,如果有必要,可以使用 %Library.Global 类的这种方法将global导出到外部文件系统并提交到 git 。
do ##class(%Library.Global).Export("NAMESPACE", "global.name, global.name1,....", “/path/and/outputFileName”)这也可以通过管理门户完成。为此,请访问Management Portal->System Explorer->Globals。选择所需的global并单击 "导出(Export)"。该界面具有方便的搜索功能。可以导出到文件系统或浏览器。
导出时,global可以使用最常用的以下几种变体进行编码

在本文中,我们创建了一个仓库,了解了导出业务类、分析和global的方法,并将更改发送到了 git 仓库。
本文的实用链接: