🚨 计划维护公告 🚨
由于计划中的维护,开发者社区网站可能会在2025年1月20日(星期一)期间出现短暂的停机现象。
对于由此可能带来的不便,我们深表歉意,并感谢您的理解。感谢您耐心等待,我们将努力提升我们的平台!
🚨 计划维护公告 🚨
由于计划中的维护,开发者社区网站可能会在2025年1月20日(星期一)期间出现短暂的停机现象。
对于由此可能带来的不便,我们深表歉意,并感谢您的理解。感谢您耐心等待,我们将努力提升我们的平台!
^%IS 的更多功能^%IS 还可用于执行以下任务:
^%IS 实用程序时存在变量 IOP,则实用程序会自动尝试打开该设备,而不是请求设备。如果 ^%IS 不成功,则将变量 POP 设置为 1。Management Portal,可以配置不向用户请求任何设备信息的设备。^%IS Global 的结构^%IS 全局变量存储在 %SYS 命名空间中。它包含两个下标。第一个下标是在 Management Portal 中为设备配置的助记词名称。选择 System Administration、Configuration > Device Settings、IO Settings 以显示不同设备类型的默认助记词。第二个下标可以是 0 或 1。
节点 0 包含设备面板 Location 值:
^%IS(mnemonic,0) = Location
1 的内容节点 1 包含其他 Device panel 字段值,用插入符号 (^) 分隔:
^%IS - 示例调用 CURRENT^%IS 后,将 $X 和 $Y 设置为 DX 和 DY 以定位光标。
DO CURRENT^%IS
WRITE *27,*61,*DY+32,*DX+32
SET $X=DX,$Y=DY
IN^%IS 入场点IN 是 ^%IS 中的一个内部入口点,可以由仅计划从设备进行 input 的例程调用。此入口点可用于确保您不选择仅输出设备,例如打印机。
%SYS> Do IN^%IS
Device: 3
Right margin: 132= <RETURN>
[you can't read from this device]
Device: <RETURN>
Right margin: 80= <RETURN>
%SYS>
OUT^%IS 入口点OUT 是 ^%IS 中的一个内部入口点,可以由仅计划向设备输出的例程调用。
SpoolingIRIS 假脱机独立于您的操作系统执行的假脱机。IRIS 中的假脱机是一种技术,可让自动将程序的输出保存在全局中,而不是立即打印。稍后可以通过将 global 的内容发送到打印机来打印输出。
OPEN 参数默认情况下,OPEN 命令使用 ^%IS 全局中定义的设备的规范。在使用 ^%IS 时,可以通过指定其他设置来覆盖这些设置。
USE 命令运行 ^%IS 后,应用程序必须向 ^%IS 打开的设备发出 USE 命令。你可以使用变量 IO,只要你明白每次调用 ^%IS 时它的值都会发生变化。然后,后续的IRIS I/O 命令,例如 READ 和 WRITE,将引用该设备。
CLOSE 命令用户或应用程序开发人员必须关闭使用 ^%IS 实用程序打开的设备。
^%IS 助记词^%IS 有几个功能可以简化它的使用。例如,如果想将 I/O 发送到自己的终端,只需在“设备”提示符处按 Enter 键即可。还可以使用内置的默认助记词或您自己定义的新助记词。
为各种设备提供助记符很有用,在某些情况下,为单个设备提供多个助记符也很有用。多个助记符允许您为设备指定不同的设备特征,并根据设备的使用方式改变特征。例如,通常用于数据输入的终端,因此具有终端的特性,可能连接了辅助打印机。通过分配不同的助记词来打开具有不同特征的同一设备,当您需要硬拷贝时,您可以将终端/打印机组合视为打印机。
^%IS^%IS 是一个通用的设备选择实用程序,用于基于字符的应用程序。可以使用内置的 ^%IS 实用程序来允许用户选择要将 I/O 操作定向到的设备。每当要选择设备时,应用程序都应该调用 ^%IS 实用程序。此实用程序允许用户指定要使用的设备和相应的 OPEN 命令参数,打开所选设备,然后将特定于设备的信息返回给调用程序。用户输入已在 ^%IS 全局中定义的助记词。^%IS 依赖于 Management Portal 中建立的 IO 配置默认值。
^%IS 如何运作当您调用 ^%IS 实用程序时,IRIS 会提示输入设备名称。可以通过以下方式之一进行响应:
ID 号。Enter 选择当前设备。^%IS 响应如下:
^%IS 会在 ^%IS 全局变量中找到对应的设备并打开它。^%IS 会向该设备发出 OPEN 命令。IRIS 设备 ID,则 ^%IS 会检查设备表,查看该编号是否被重新映射到另一个实际的设备编号。然后 ^%IS 为设备发出 OPEN。与 ^%IS 或 OPEN 命令一起使用的设备标识符最多要经过三个级别的解释。因此,如果在 ^%ISDevice: 提示符处输入助记词 47,则使用的最终设备 ID 可能会有所不同。下面介绍了这三个级别。
%IS 实用工具级别如果使用 ^%IS 实用程序选择设备,则使用第一级。^%IS 全局中的助记词可以与设备编号相关联。然后,^%IS 实用程序向该设备编号发出 OPEN 命令。
OPEN 命令级别在 OPEN 命令中,IRIS 会检查此数字是否存在于 Device panel 表的 Alias 列中。如果是这样,它会将其转换为该设备的实际设备号或名称。
注:如果想通过 ^%IS 的助记词访问该设备,请确保不要定义与设备 ID 匹配但与其他设备关联的别名。
程序员可以通过在其应用程序中使用 WRITE /mnemonic 命令来控制设备。例如,当程序员使用以下命令使用 %X364 助记词时,他们可以将光标移动到终端设备上当前行中的特定列:
WRITE /CHA(column)
由助记词的任何特定值引起的操作由 WRITE 命令使用的助记词空间决定。助记词空间是具有定义设备操作和属性的入口点 (助记词) 的例程。
可以在 Management Portal 的 Devices (设备) 配置设置中定义、编辑和删除设备。您输入的信息存储在 ^%IS 全局变量中。有关此全局的更多信息,请参阅 ^%IS 全局的结构。
如果在 IRIS 运行时进行设备更改,系统会提示是否要在不重新启动 IRIS 的情况下激活更改。如果同意激活更改,则新定义将立即提供给用户。
在 Windows 系统上,必须将设备编号用于作业间通信设备和常规联锁设备。对于终端和打印机,可以使用您分配的设备助记词或设备编号。
在 UNIX 系统上,可以使用 UNIX 文件规范来引用文件,也可以设置设备编号来引用文件。
可以通过以下两种方式之一访问设备:
^%IS 实用程序的 Device: 提示符处输入设备助记词。OPEN 命令并输入设备 ID 或别名。^%IS 实用程序选择设备如果希望基于字符的应用程序的用户以交互方式选择设备,请从应用程序中调用 ^%IS 实用程序。您可以在 允许用户指定设备 中了解有关 ^%IS 实用程序的更多信息。
要使用 ^%IS 实用程序选择设备:
Device: 提示符处,输入设备助记词。预定义的助记词空间
可以通过数字或操作系统名称来识别设备。可以在 OPEN 命令中使用此标识符。
可以为定义的每个 IRIS 设备定义一个或多个别名值。当用户在 OPEN 命令中指定别名时,IRIS 会将其转换为设备 ID。
IRIS 提供的默认设备 ID 适用于大多数用户。但是,某些用户可能希望覆盖这些默认值。可以通过在 Management Portal 中提供别名作为设备配置设置的一部分来实现此目的。
ID 和助记词当安装 IRIS 时,这些是每种设备类型的默认设备编号和助记符。
默认设备编号和助记词
| Device 装置 | Device ID 设备 ID | Mnemonic 记忆 | Notes 笔记 |
|---|---|---|---|
| Principal | 0 | TERM | 无法更改此设备的设备 ID。 |
| Spooler | 后台处理程序 | 2 S | POOL |
但是,IRIS 还可以识别可用于定义设备的其他设备编号。下表列出了已识别的默认设备编号。
IRIS 默认设备编号
2024 年 12 月 4 日,系统警报和监视 (SAM) 已从 InterSystems 下载网站、容器注册表和文档网站移除。
InterSystems 去年宣布停止进一步开发 SAM,并同时将其标记为已弃用。InterSystems 将继续按照与超出最低支持版本窗口的产品版本相同的方式为使用此技术的现有客户提供支持。
Intersystems 发现,大多数对 SAM 提供的可观察性类型感兴趣的客户已选择将 InterSystems IRIS 指标 API 和结构化日志记录连接到其组织现有的可观察性平台,以便更全面地了解其运行平台。
如果您对 SAM 当前的使用方式或今后的使用计划有任何疑问,请联系您的客户团队或 dbpprodmgrs@intersystems.com。
下表总结了用于管理设备的实用程序。
IRIS 设备实用程序
助记词是执行设备控制操作(如光标移动和设备属性)的 IRIS 例程。每个操作都与一个标签相关联。这些标签是 WRITE /mnemonic 命令中使用的助记词。有关 WRITE /mnemonic 语法的更多信息,请参阅本文档其他页面中每种设备类型的 WRITE 命令说明。
IRIS 提供下表中描述的预定义助记词空间。
预定义的助记词空间
| Routine Name 例程名称 | Device Type Default 设备类型 默认 | Description 描述 |
|---|---|---|
^%X364 | 终端、顺序文件、其他设备 | X3.64 (ANSI) 端子的助记词空间。有关信息,请参阅 X3.64 的助记词空间。 |
^%XDTM | DTM PC Console | DTM PC 控制台的助记词空间。有关信息,请参阅 DTM PC Console 的助记词空间。 |
可以在 Management Portal 中更改以下设备类型的默认助记词空间。依次选择 System Administration、Configuration (配置)、Device Settings (设备设置)、 IO Settings (IO 设置)。这将显示以下内容的助记词:
要在 UNIX 设备名称为 /dev/tty06 的终端上打开 I/O 设备,请输入以下命令
OPEN "/dev/tty06"
在 UNIX 系统上,打印机由 OPEN 命令上的名称标识,并在 tty 设备上作为“字符特殊”文件处理。因此,支持的 OPEN 和 USE 命令参数与终端 I/O 相同, 而不是顺序文件 I/O 的参数。
在 UNIX 上,OPEN 支持大多数终端 I/O 关键字参数,如终端 I/O 中所述。
可以使用 %IS 实用程序将输出定向到打印机。可以使用命令 DO ^%IS 调用 %IS 实用程序。(也可以使用 DO OUT^%IS 来指定选择的是仅输出设备。无论哪种情况,IRIS 都会返回 Device: 提示符。要指定打印机,请使用默认助记符 “|PRN|“ 或其他已配置打印机的助记符。然后,%IS 实用程序会建议 OPEN 参数;对于打印机,默认值为 “W” (只写)。可以通过按 Enter 键来接受参数 default,如以下示例所示:
%SYS>DO ^%IS
Device: |PRN|
Parameters? "W" => <RETURN>
%SYS>
这将打开指定的打印机作为当前进程的输出设备。
%IS 实用程序设置各种变量。以下是 Windows 系统上的打印机默认值。
%IS 设置的变量
我们已经有一段时间没有在开发者社区上发表关于嵌入式 Git 的文章了,我想借此机会更新一下今年我们完成的大量工作以及未来的工作计划。
如果您要在 IRIS 上构建解决方案,并想要使用 Git,那就太棒了! 只需将 VSCode 与本地 Git 仓库结合使用,并将更改推送到服务器上即可,就是这么简单。
但在以下使用场景中该怎么办:
借助 InterSystems 行业标准认证考试,您和您的团队可以获得认证,以验证您的技能并证明您拥有 InterSystems 技术方面的专业知识。 查找适合您的角色的考试!
本页讨论了如何在 IRIS 数据平台中配置和使用打印设备。打印机是仅物理输出设备。打印机可以是字符打印机,也可以是非字符设备,例如传真或绘图仪。
在大多数情况下,输出不会直接发送到打印机。通常,要打印的输出首先发送到逻辑假脱机设备(^SPOOL 全局)。然后,可以将 ^SPOOL 全局的内容发送到物理打印机。有关假脱机的更多详细信息,请参阅 假脱机设备。
请注意,Windows 和 UNIX 处理打印机 I/O 的方式不同。
Windows 系统将打印机作为顺序 I/O 设备处理,因此遵循与顺序文件 I/O 相同的语法。但是,通过串行通信端口连接的打印机将作为终端 I/O 设备处理。UNIX 系统始终将打印机作为终端 I/O 设备进行处理。UNIX 将其视为 tty 设备上的 “字符特殊” 文件,因此遵循与终端 I/O 相同的语法。在 Windows 系统上,您可以使用 %Library.Device.InstalledPrinters() 方法返回系统上当前打印机的计数。您可以使用 %Library.Device.GetPrinters() 方法返回系统上当前打印机的列表。
可以为打印机分配一个介于 256 和 2047 之间(包括 256 和 2047)的设备编号。此设备编号范围也用于终端和平面文件。
2024.3 版 InterSystems IRIS® 数据平台、InterSystems IRIS® for Health 和 HealthShare® Health Connect 现已正式发布 (GA)。
在此版本中,您可以期待一系列激动人心的更新,包括:
请通过开发者社区分享您的反馈,与我们共同打造更好的产品。
请访问以下链接了解所有亮点功能的详细信息:
此外,请查看此版本的升级信息。
目前提供多个 EAP。 请查看此页面并注册您感兴趣的计划。
像往常一样,持续交付 (CD) 版本包含适用于所有受支持平台的经典安装包,以及 Docker 容器格式的容器镜像。
%SPOOL 实用程序菜单 List documents 的选项 2 显示当前为运行 %SPOOL 的目录假脱机的文档列表。如果没有 Despool start-end 值,则文档尚未解散(打印)。
每个假脱机文档的描述显示在有关该文档的其余信息之后的一个或多个单独行上。
在以下示例中,用户选择了选项 2。显示屏将显示存储在后台处理程序中的两个文档。第一份记录在 8 月 30 日下午 2:23 存储,并于当天下午 2:25 打印。第二份于 3 月 4 日上午 11:39 存储,并于当天上午 11:42 打印。
%SPOOL 打印%SPOOL 实用程序菜单的选项 1 Print(打印)允许您在任何设备上打印 ^SPOOL 全局中的一个或多个文档,继续打印中断的文档,以及将单张纸张手动送入信纸质量打印机。通过将输出发送到后台处理程序,可以在输出设备打印文档时释放终端用于其他用途。
可以在完全创建后台打印文档之前或之后开始打印。如果打印机赶上新输出,则打印过程将暂停 5 秒钟,然后打印在此期间累积的所有输出。打印过程知道您何时关闭了后台打印文档,并在文档完成时完成。
当 %SPOOL 打印文档时,它会跟踪已打印的页面。它还会创建页面索引,以便可以按页码对文档进行排序,并从您选择的任何页面的顶部开始打印。
如果停止打印(例如,在终端输出期间按 Ctrl-c,或者打印机损坏),则可以稍后在最后一个部分打印的页面的顶部或文档中任何其他页面的顶部继续打印。请注意,IRIS 不会将文档开头的换页数计为页数中的页数。
%SPOOL 使用术语 despool 来表示打印。仅当文档已打印(depooled)时,Despool start-end 列和描述行中才会有值。
InterSystems IRIS® 数据平台、InterSystems IRIS® for Health 和 HealthShare® Health Connect 2025.1 的首个开发者预览版已发布到 WRC 开发者预览网站。容器可在我们的容器注册表中找到,并已添加 latest-preview 标签。
这些开发者预览版包含用于迁移到 IBM Open XL C/C++ for AIX 17.x 编译器的功能,从而在旧版编译器接近支持终止时确保与未来的 AIX 版本兼容。 此迁移侧重于 aixopenssl30 目标,支持 AIX 7.2 和 7.3 上的 SSL3。
可以在以下链接中找到初始文档:
此版本提供适用于所有受支持平台的经典安装包。有关完整列表,请参阅“支持的平台”文档。
安装包和预览版密钥可从 WRC 的预览版下载网站或通过评估服务网站(勾选“Show Preview Software”(显示预览软件)框)获取。
各位社区成员,大家好
🎉 2024 年已接近尾声,是时候庆祝大家的贡献了! 请在开发者社区上查看您的个性化 2024 年回顾,了解您今年的成就、活动和影响。
深入了解您产生的影响! 💫
.jpg)
^SPOOL 全局与任何下标的全局变量一样,您可以通过发出 WRITE 命令来显示 spool 文件中的行,如下所示:
WRITE "1st spool file node: ",^SPOOL(1,1),!
但是,要查看和编辑假脱机文件本身,请转到管理门户并选择 System Explorer 和 Globals。选择您当前的命名空间,找到 SPOOL 全局变量,然后单击 data。这将显示类似于以下示例的假脱机文件数据。
在下面的假脱机文件中,(!) 终止字符结束假脱机文件中的每个节点行。这些终止字符是假脱机文件的一部分,作为 $CHAR(13,10) 连接到文本字符串(Return 和 Line Feed)。
^SPOOL(1,1)=<<"First line of text"_$C(13,10)>>
^SPOOL(1,2)=<<"Second line of text"_$C(13,10)>>
^SPOOL(1,2147483647)={59605,43605{3{
在下面的假脱机文件中,没有行终止字符。两个 WRITE 命令写入一个 node 行,该行由关闭 spool 文件终止。
✓ 十二月有 29 位新成员加入
✓ 所有时间发布了 2,316 篇帖子
✓ 所有时间有 2,100 位成员加入
写入 ^SPOOL 时,IRIS 会不断更新 $X 并$Y特殊变量。$X 表示写入当前索引行的字符数,$Y 包含当前 OPEN 期间写入的行数。请注意,$Y 的值不一定与 node 索引相同。例如:
/* Writing to the ^SPOOL global */
OPEN 2:(2:3)
USE 2
WRITE "Hello " SET x1=$X,y1=$Y,z1=$ZA
WRITE "world",! SET x2=$X,y2=$Y,z2=$ZA
WRITE "Good to see you",! SET x3=$X,y3=$Y,z3=$ZA
CLOSE 2
/* Displaying the ^SPOOL global */
WRITE ^SPOOL(2,3),^SPOOL(2,4)
WRITE !,"$X=",x1," ",x2," ",x3
WRITE !,"$Y=",y1," ",y2," ",y3
WRITE !,"$ZA=",z1," ",z2," ",z3
要将一行写入 ^SPOOL 全局变量,请发出 WRITE 命令,以行终止符字符结尾。例如
/* Writing to the ^SPOOL global */
OPEN 2
USE 2
WRITE "First line of text",!
WRITE "Second line of text",!
CLOSE 2
/* Displaying the ^SPOOL global */
WRITE ^SPOOL(1,1),^SPOOL(1,2)
每行都以行终止符(感叹号)结尾,并存储在单独的全局节点中。
但是,在生成单个打印行时,可能需要使用多个 WRITE 命令;如果 WRITE 不包含行终止符,则下一个 WRITE 命令将附加到同一打印行。两者都写入同一个全局节点。此行保存在缓冲区中,在发出行终止字符或关闭后台处理程序设备之前,不会写入后台处理程序全局。
以下示例在发出 CLOSE 时写入一个全局节点:
IRIS数据平台使能够将打印输出直接发送到您的打印机或屏幕,或将其保留在后台打印中以供以后打印。IRIS 假脱机独立于您的操作系统执行的假脱机。
IRIS 中的假脱机是一种技术,可让自动将程序的输出保存在 ^SPOOL 下标全局中,而不是立即打印。可以通过将 ^SPOOL 全局的内容发送到打印机来稍后打印输出。本页介绍使用此假脱机工具的两种方法:使用 ObjectScript 命令(OPEN、USE、WRITE、CLOSE)或使用 %IS 和 %SPOOL 实用程序。
要将输出发送到当前命名空间中的 spool 全局变量,请打开 spooler 并将其指定为输出设备。
假脱机程序是 IRIS 提供的预定义设备。它在设备表中被分配了设备编号 2。此设备号可用于在 OPEN、USE 和 CLOSE 命令中标识后台处理程序设备。
您可以通过 Management Portal 访问后台处理程序设备信息。依次选择 System Administration、Configuration (配置)、Device Settings (设备设置)、Devices (设备)。在这里,将找到设备 2 和名为 SPOOL 的设备。默认情况下,它们都映射到同一物理设备(设备 2),并且具有相同的 option 值。
java如何使用IRIS sdk这个方法创建MIRROR
WRITE 命令在定位的 READ 或 WRITE 之后,后续的 READ 或 WRITE 操作将按顺序进行,直到下一个带有 position 参数的 USE 命令。
WRITE 命令将数据(一次一条记录)写入作为当前设备的顺序文件。
WRITE x
x 变量 x 中的数据将作为一条记录写入顺序文件中。CLOSE 命令CLOSE 命令放弃对顺序文件的所有权。
如果指定的文件未打开或不存在,则 IRIS 将忽略 CLOSE 并返回而不发出错误。
CLOSE file
CLOSE file:"D"
CLOSE file:("R":newname)
file 文件 任何有效的文件规范,用引号括起来。指定的文件必须已打开。在 UNIX 路径名中,可以使用波形符 (~) 扩展来指示当前用户的主目录。例如:~myfile 或 ~/myfile。"D" 关闭并删除具有参数中指定的名称的文件。"R":newname) 使用参数中指定的名称关闭文件,并将其重命名为 newname。CLOSE-Only 命令关键字下表描述了仅使用 CLOSE 命令控制顺序文件的关键字。
顺序文件的 CLOSE-only 命令关键字
/DELETE[=n] /DEL[=n]0,除非文件在打开时标记为删除。
Web Terminal 已经存在相当长一段时间了,但它存在诸多限制,并非所有功能都能正常使用。它不支持 shell,也没有诸如嵌入式 Python 支持这样的最新功能。对于那些需要编程模式的工具来说,存在一些问题。基本身份验证也不如简单的登录页面便捷,使用登录页面的话,倘若你想要改变登录应用程序的方式(比如使用单点登录,即 SSO),你还可以自行添加登录页面。
通过将最初的iris terminal 封装到一个网页表单中,利用在网络领域应用极为广泛且同样被像 Visual Studio Code(VSCode)这类工具所使用的 xterm.js,并借助 Python 施展的一些 “魔法”(这些 “魔法” 有助于实现进程间的终端交互),我们就能在网络上完整地实现终端功能了。
安装方法
在
zn"%SYS"
zpm "install iterm"为了测试它是如何在web中工作的,可以执行 term routine,如下
现有一个数据表的数据像这样:
我们的需求是基于表中的Item列新增一个status字段,如果item的内容是第一次出现,那么status列就是New,反之显示Old,
比如,应该是下面的显示内容
在原文章的回复中, Robert Cemper给出了下面的建议
新建一个存储过程,并在SELECT查询语句中生效:
/// Return NEW for first occurance of item /// otherwise return OLDClass User.ItemStat Extends%RegisteredObject
{
ClassMethod NewOld(item As%String = "") As%String [ SqlProc ]
{
if item=""quit"?"if$d(^||list(item)) quit"OLD"if$i(^||list(item)) quit"NEW"
}
}使用下面SELECT语句使之生效:
SELECT *, ItemStat_NewOld(item) asStatusFROM items orderby2结果如下:
File 输入 输出 - READ 命令在定位的 READ 或 WRITE 之后,后续的 READ 或 WRITE 操作将按顺序进行,直到下一个带有 position 参数的 USE 命令。
READ 命令从当前设备读取数据,一次读取一条记录。读取超过文件末尾会导致错误。
READ x#n:timeout
x 该变量将保存从文件中读取的记录。n 可选 – 对于可变长度读取,为要读取的字符数,指定为整数。对于固定长度的读取,此参数将被忽略。timeout 超时 可选 – 在超时之前等待读取操作完成的秒数。整数值或解析为整数的变量。timeout 参数虽然是可选的,但强烈建议使用,因为如果指定了 timeout,则 READ 的成功或失败由 $TEST 特殊变量的值指示。如果读取尝试在超时到期之前成功,则 $TEST 设置为 1;如果超时到期,则 $TEST 设置为 0。
以下示例显示了从 Windows 顺序文件中读取固定长度记录的 READ 操作。它创建一个顺序文件,将数据写入该文件,然后关闭该文件。然后,它会打开此文件以进行 4 个字符的固定长度读取 (“RF”:4)。它将 USE position 参数设置为第一条记录(记录 0);每个读取操作都会推进此位置。FOR 循环将每个四字符的记录读取到下标变量中。然后,ZWRITE 命令显示所有这些下标局部变量及其值。