文章 姚 鑫 · 一月 24 阅读大约需 2 分钟 第六章 C 开头的术语 第六章 C 开头的术语 计算机名称 (computer name) 系统 分配给一个处理器、其外围设备及所有相关数据集的名称。这个名称在整个网络中必须唯一。另见系统名称。 并发模式 (concurrency mode) 对象(Objects) 并发模式决定在打开和保存对象时执行何种类型的锁定。IRIS 支持五种并发模式(0-4),允许你指定不锁定、原子锁定、共享锁定、共享保留锁定和独占锁定。 并发 (concurrency) 对象(Objects) 并发通过锁定机制控制数据完整性。IRIS 支持五种并发模式,从不锁定到在对象加载到内存直到保存期间持有独占锁。默认情况下,IRIS 对所有对象使用原子锁定。 并发备份 (concurrent backup) 系统 #InterSystems IRIS for Health 0 0 0 28
文章 姚 鑫 · 一月 23 阅读大约需 3 分钟 第五章 C 开头的术语 第五章 C 开头的术语 客户端应用程序 (client application) 系统 一个独立于IRIS可执行文件的可执行文件,但依赖于IRIS,例如作为数据源。这样的应用程序可以在IRIS中注册,从而作为 安全模型的一部分进行管理。客户端应用程序的用户必须使用支持的认证机制之一进行IRIS认证。 代码方法 (code method) 对象(Objects) 执行 ObjectScript 的方法。 排序规则 (collation rule) 系统 #InterSystems IRIS for Health 0 0 0 24
文章 姚 鑫 · 一月 22 阅读大约需 2 分钟 第四章 C 开头的术语 # 第四章 C 开头的术语 #### 循环引用 (circular reference) **对象(Objects)** 在不同类中的两个属性相互引用对方的集合。只要循环引用中的两个属性都不是必需属性,`IRIS` 完全支持循环引用。如果循环引用中的两个属性都是必需属性,你将无法保存这两个类的对象。 #### 类编译器 (class compiler) **对象(Objects)** 类编译器用于编译`IRIS` 类。你可以在 `IDE` 中使用类编译器,或者通过 ` IRIS` 对象实用库中的编译调用来使用。 #### 类定义语言 (Class Definition Language) **对象(Objects)** `IRIS` 的类定义语言(`CDL`)是一种基于关键字的语言,用于定义 `IRIS` 中的类。 #### 类描述符 (class descriptor) **对象(Objects)** 包含运行时信息(方法和属性列表)的特殊类型例程,用于使用对象。 #### 类字典 (class dictionary) **对象(Objects)** #InterSystems IRIS for Health 0 0 0 23
文章 Nicky Zhu · 一月 22 阅读大约需 2 分钟 如何查询某张数据表占用的磁盘空间? 近期有些小伙伴需要查询某张特定的表所占用的磁盘大小,可能其他小伙伴也有类似的需求。 给大家一个例子供参考。 应当考虑到IRIS的表底层使用global存储数据,包括表数据、索引数据和流数据(如果表中有流属性的话),因此一张表的完整占用应当包含至少上述三种global的求和,如下所示: #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 50
文章 姚 鑫 · 一月 18 阅读大约需 2 分钟 第七十七章 设备特殊变量 第七十七章 设备特殊变量 ^%IS 的更多功能 ^%IS 还可用于执行以下任务: #Java #管理门户 #系统管理 #InterSystems IRIS for Health 0 0 0 28
文章 姚 鑫 · 一月 18 阅读大约需 2 分钟 第七十七章 使用 ^%IS - 示例 第七十六章 使用 ^%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 的例程调用。此入口点可用于确保您不选择仅输出设备,例如打印机。 #Java #InterSystems IRIS for Health 0 0 0 29
文章 姚 鑫 · 一月 16 阅读大约需 3 分钟 第七十五章 使用 ^%IS - OPEN 参数 第七十五章 使用 ^%IS - OPEN 参数 OPEN 参数 默认情况下,OPEN 命令使用 ^%IS 全局中定义的设备的规范。在使用 ^%IS 时,可以通过指定其他设置来覆盖这些设置。 发出 USE 命令 运行 ^%IS 后,应用程序必须向 ^%IS 打开的设备发出 USE 命令。你可以使用变量 IO,只要你明白每次调用 ^%IS 时它的值都会发生变化。然后,后续的IRIS I/O 命令,例如 READ 和 WRITE,将引用该设备。 发出 CLOSE 命令 用户或应用程序开发人员必须关闭使用 ^%IS 实用程序打开的设备。 #InterSystems IRIS for Health 0 0 0 31
文章 姚 鑫 · 一月 15 阅读大约需 3 分钟 第七十四章 使用 ^%IS 第七十四章 使用 ^%IS ^%IS 是一个通用的设备选择实用程序,用于基于字符的应用程序。可以使用内置的 ^%IS 实用程序来允许用户选择要将 I/O 操作定向到的设备。每当要选择设备时,应用程序都应该调用 ^%IS 实用程序。此实用程序允许用户指定要使用的设备和相应的 OPEN 命令参数,打开所选设备,然后将特定于设备的信息返回给调用程序。用户输入已在 ^%IS 全局中定义的助记词。^%IS 依赖于 Management Portal 中建立的 IO 配置默认值。 #InterSystems IRIS for Health 0 0 0 27
文章 姚 鑫 · 一月 14 阅读大约需 2 分钟 第七十三章 管理设备和助记词空间 - 设备的解释级别 第七十三章 管理设备和助记词空间 - 设备的解释级别 与 ^%IS 或 OPEN 命令一起使用的设备标识符最多要经过三个级别的解释。因此,如果在 ^%ISDevice: 提示符处输入助记词 47,则使用的最终设备 ID 可能会有所不同。下面介绍了这三个级别。 级别 1:%IS 实用工具级别 如果使用 ^%IS 实用程序选择设备,则使用第一级。^%IS 全局中的助记词可以与设备编号相关联。然后,^%IS 实用程序向该设备编号发出 OPEN 命令。 级别 2:OPEN 命令级别 在 OPEN 命令中,IRIS 会检查此数字是否存在于 Device panel 表的 Alias 列中。如果是这样,它会将其转换为该设备的实际设备号或名称。 #InterSystems IRIS for Health 0 0 0 24
文章 姚 鑫 · 一月 13 阅读大约需 2 分钟 第七十二章 管理设备和助记词空间 - 定义设备 第七十二章 管理设备和助记词空间 - 定义设备 定义设备 可以在 Management Portal 的 Devices (设备) 配置设置中定义、编辑和删除设备。您输入的信息存储在 ^%IS 全局变量中。有关此全局的更多信息,请参阅 ^%IS 全局的结构。 如果在 IRIS 运行时进行设备更改,系统会提示是否要在不重新启动 IRIS 的情况下激活更改。如果同意激活更改,则新定义将立即提供给用户。 访问设备 在 Windows 系统上,必须将设备编号用于作业间通信设备和常规联锁设备。对于终端和打印机,可以使用您分配的设备助记词或设备编号。 在 UNIX 系统上,可以使用 UNIX 文件规范来引用文件,也可以设置设备编号来引用文件。 #InterSystems IRIS for Health 0 0 0 29
文章 姚 鑫 · 一月 12 阅读大约需 2 分钟 第七十一章 管理设备和助记词空间 - 设备 ID 第七十一章 管理设备和助记词空间 - 设备 ID 可以通过数字或操作系统名称来识别设备。可以在 OPEN 命令中使用此标识符。 设备别名 可以为定义的每个 IRIS 设备定义一个或多个别名值。当用户在 OPEN 命令中指定别名时,IRIS 会将其转换为设备 ID。 IRIS 提供的默认设备 ID 适用于大多数用户。但是,某些用户可能希望覆盖这些默认值。可以通过在 Management Portal 中提供别名作为设备配置设置的一部分来实现此目的。 默认设备 ID 和助记词 当安装 IRIS 时,这些是每种设备类型的默认设备编号和助记符。 默认设备编号和助记词 #InterSystems IRIS for Health 0 0 0 32
文章 姚 鑫 · 一月 9 阅读大约需 3 分钟 第七十章 管理设备和助记词空间 第七十章 管理设备和助记词空间 设备管理实用程序 下表总结了用于管理设备的实用程序。 IRIS 设备实用程序 #InterSystems IRIS for Health 0 0 0 31
文章 姚 鑫 · 一月 9 阅读大约需 2 分钟 第六十九章 打印机 - 使用助记词空间控制设备 第六十九章 打印机 - 使用助记词空间控制设备 助记词是执行设备控制操作(如光标移动和设备属性)的 IRIS 例程。每个操作都与一个标签相关联。这些标签是 WRITE /mnemonic 命令中使用的助记词。有关 WRITE /mnemonic 语法的更多信息,请参阅本文档其他页面中每种设备类型的 WRITE 命令说明。 预定义的助记词空间 IRIS 提供下表中描述的预定义助记词空间。 预定义的助记词空间 #InterSystems IRIS for Health 0 0 0 30
文章 姚 鑫 · 一月 7 阅读大约需 3 分钟 第六十八章 打印机 - 在 UNIX® 上指定打印机 第六十八章 打印机 - 在 UNIX® 上指定打印机 要在 UNIX 设备名称为 /dev/tty06 的终端上打开 I/O 设备,请输入以下命令 OPEN "/dev/tty06" 在 UNIX 系统上,打印机由 OPEN 命令上的名称标识,并在 tty 设备上作为“字符特殊”文件处理。因此,支持的 OPEN 和 USE 命令参数与终端 I/O 相同, 而不是顺序文件 I/O 的参数。 在 UNIX 上,OPEN 支持大多数终端 I/O 关键字参数,如终端 I/O 中所述。 #InterSystems IRIS for Health 0 0 0 39
文章 Michael Lei · 一月 6 阅读大约需 1 分钟 获得 InterSystems 技术认证 借助 InterSystems 行业标准认证考试,您和您的团队可以获得认证,以验证您的技能并证明您拥有 InterSystems 技术方面的专业知识。 查找适合您的角色的考试! #认证 #学习门户 0 0 0 52
文章 姚 鑫 · 一月 5 阅读大约需 2 分钟 第六十六章 打印机 第六十六章 打印机 打印机 本页讨论了如何在 IRIS 数据平台中配置和使用打印设备。打印机是仅物理输出设备。打印机可以是字符打印机,也可以是非字符设备,例如传真或绘图仪。 在大多数情况下,输出不会直接发送到打印机。通常,要打印的输出首先发送到逻辑假脱机设备(^SPOOL 全局)。然后,可以将 ^SPOOL 全局的内容发送到物理打印机。有关假脱机的更多详细信息,请参阅 假脱机设备。 #InterSystems IRIS for Health 0 0 0 29
文章 姚 鑫 · 一月 4 阅读大约需 2 分钟 第六十五章 假脱机设备 - 列出假脱机文档 第六十五章 假脱机设备 - 列出假脱机文档 列出假脱机文档 %SPOOL 实用程序菜单 List documents 的选项 2 显示当前为运行 %SPOOL 的目录假脱机的文档列表。如果没有 Despool start-end 值,则文档尚未解散(打印)。 每个假脱机文档的描述显示在有关该文档的其余信息之后的一个或多个单独行上。 在以下示例中,用户选择了选项 2。显示屏将显示存储在后台处理程序中的两个文档。第一份记录在 8 月 30 日下午 2:23 存储,并于当天下午 2:25 打印。第二份于 3 月 4 日上午 11:39 存储,并于当天上午 11:42 打印。 #InterSystems IRIS for Health 0 0 0 18
文章 姚 鑫 · 一月 4 阅读大约需 3 分钟 第六十四章 假脱机设备 - 使用 %SPOOL 打印 第六十四章 假脱机设备 - 使用 %SPOOL 打印 使用 %SPOOL 打印 %SPOOL 实用程序菜单的选项 1 Print(打印)允许您在任何设备上打印 ^SPOOL 全局中的一个或多个文档,继续打印中断的文档,以及将单张纸张手动送入信纸质量打印机。通过将输出发送到后台处理程序,可以在输出设备打印文档时释放终端用于其他用途。 可以在完全创建后台打印文档之前或之后开始打印。如果打印机赶上新输出,则打印过程将暂停 5 秒钟,然后打印在此期间累积的所有输出。打印过程知道您何时关闭了后台打印文档,并在文档完成时完成。 当 %SPOOL 打印文档时,它会跟踪已打印的页面。它还会创建页面索引,以便可以按页码对文档进行排序,并从您选择的任何页面的顶部开始打印。 如果停止打印(例如,在终端输出期间按 Ctrl-c,或者打印机损坏),则可以稍后在最后一个部分打印的页面的顶部或文档中任何其他页面的顶部继续打印。请注意,IRIS 不会将文档开头的换页数计为页数中的页数。 #InterSystems IRIS for Health 0 0 0 33
文章 姚 鑫 · 一月 1 阅读大约需 2 分钟 第六十二章 假脱机设备 - 查看 ^SPOOL 全局 第六十二章 假脱机设备 - 查看 ^SPOOL 全局 查看 ^SPOOL 全局 与任何下标的全局变量一样,您可以通过发出 WRITE 命令来显示 spool 文件中的行,如下所示: WRITE "1st spool file node: ",^SPOOL(1,1),! 但是,要查看和编辑假脱机文件本身,请转到管理门户并选择 System Explorer 和 Globals。选择您当前的命名空间,找到 SPOOL 全局变量,然后单击 data。这将显示类似于以下示例的假脱机文件数据。 在下面的假脱机文件中,(!) 终止字符结束假脱机文件中的每个节点行。这些终止字符是假脱机文件的一部分,作为 $CHAR(13,10) 连接到文本字符串(Return 和 Line Feed)。 #InterSystems IRIS for Health 0 0 0 35
文章 姚 鑫 · 十二月 31, 2024 阅读大约需 2 分钟 第六十一章 假脱机设备 - 假脱机和特殊变量 第六十一章 假脱机设备 - 假脱机和特殊变量 写入 ^SPOOL 时,IRIS 会不断更新 $X 并$Y特殊变量。$X 表示写入当前索引行的字符数,$Y 包含当前 OPEN 期间写入的行数。请注意,$Y 的值不一定与 node 索引相同。例如: #InterSystems IRIS for Health 0 0 0 35
文章 姚 鑫 · 十二月 29, 2024 阅读大约需 2 分钟 第六十章 假脱机设备 - WRITE 命令 第六十章 假脱机设备 - WRITE 命令 WRITE 命令 要将一行写入 ^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 命令将附加到同一打印行。两者都写入同一个全局节点。此行保存在缓冲区中,在发出行终止字符或关闭后台处理程序设备之前,不会写入后台处理程序全局。 #InterSystems IRIS for Health 0 0 0 41
文章 姚 鑫 · 十二月 27, 2024 阅读大约需 2 分钟 第五十九章 假脱机设备 第五十九章 假脱机设备 介绍 IRIS数据平台使能够将打印输出直接发送到您的打印机或屏幕,或将其保留在后台打印中以供以后打印。IRIS 假脱机独立于您的操作系统执行的假脱机。 IRIS 中的假脱机是一种技术,可让自动将程序的输出保存在 ^SPOOL 下标全局中,而不是立即打印。可以通过将 ^SPOOL 全局的内容发送到打印机来稍后打印输出。本页介绍使用此假脱机工具的两种方法:使用 ObjectScript 命令(OPEN、USE、WRITE、CLOSE)或使用 %IS 和 %SPOOL 实用程序。 打开和使用假脱机设备 要将输出发送到当前命名空间中的 spool 全局变量,请打开 spooler 并将其指定为输出设备。 #InterSystems IRIS for Health 0 0 0 38
文章 姚 鑫 · 十二月 25, 2024 阅读大约需 2 分钟 第五十八章 File 输入 输出 - WRITE 命令 第五十八章 File 输入 输出 - WRITE 命令 WRITE 命令 在定位的 READ 或 WRITE 之后,后续的 READ 或 WRITE 操作将按顺序进行,直到下一个带有 position 参数的 USE 命令。 WRITE 命令将数据(一次一条记录)写入作为当前设备的顺序文件。 语法 WRITE x x 变量 x 中的数据将作为一条记录写入顺序文件中。 CLOSE 命令 CLOSE 命令放弃对顺序文件的所有权。 如果指定的文件未打开或不存在,则 IRIS 将忽略 CLOSE 并返回而不发出错误。 #InterSystems IRIS for Health 0 0 0 32
文章 Louis Lu · 一月 26, 2022 阅读大约需 2 分钟 在 InterSystems IRIS 中使用网页版本的命令行工具 - Web Terminal 许多使用InterSystems IRIS的用户在调试代码的时候习惯使用命令行的方式,比如运行一个函数查看输出或者查看代码运行过程中保存在global中的数据等等。 对于将 InterSystems IRIS 安装在 Windows 操作系统的用户,只需要点击右下角图标选择Terminal 就可以很方便的使用。 但是对于将其安装到 Linux 或者Docker 容器中的用户,要使用命令行却不那么方便,下面我将会介绍在我们 Openexchange 中的一个应用 -- Web Terminal。 也就是说可以在网页中直接执行Terminal中的命令。 或者查看SQL执行结果: #InterSystems IRIS #InterSystems IRIS for Health #Open Exchange Open Exchange app 0 3 0 328
文章 Louis Lu · 十二月 25, 2024 阅读大约需 2 分钟 在IRIS 2024.2 中使用 WebTerminal IRIS 2024.2 版本包含一项变更(DP-432503),该变更要求Web Gateway最初连接到 IRIS 时所使用的用户(通常是 CSPSystem)必须对承载 REST web applicatioon 的dispatch类的数据库具备 READ 权限。 在不满足该条件的情况下,就会引发一个错误,这会向调用者返回一个 HTTP 404 状态码,而非预期的 HTTP 401 状态码。 显然,这个问题将在 2024.3 版本中修复,参考编号为 DP-432898 / ALI048:REST 登录端点将返回 401 HTTP 错误码而非 404,但作为持续交付(CD)版本,2024.2 不会获得维护版本修正。 解决方法是让 CSPSystem 用户对安装WebTerminal所在命名空间的数据库具备读权限。 下面是所需的步骤: 1. 创建一个新的资源 “%DB_WEBTERMINAL”,并设置 “WEBTERMINAL” 数据库使用该资源,而非 “%DB_% DEFAULT”。 2. 创建一个名为 “% DB_WEBTERMINAL” 的角色,该角色能让角色持有者对 “% DB_WEBTERMINAL” 资源具有读写(RW)访问权限。 #InterSystems IRIS Open Exchange app 0 0 0 33
文章 Louis Lu · 十二月 24, 2024 阅读大约需 1 分钟 新的WebTerminal —— iterm Web Terminal 已经存在相当长一段时间了,但它存在诸多限制,并非所有功能都能正常使用。它不支持 shell,也没有诸如嵌入式 Python 支持这样的最新功能。对于那些需要编程模式的工具来说,存在一些问题。基本身份验证也不如简单的登录页面便捷,使用登录页面的话,倘若你想要改变登录应用程序的方式(比如使用单点登录,即 SSO),你还可以自行添加登录页面。 通过将最初的iris terminal 封装到一个网页表单中,利用在网络领域应用极为广泛且同样被像 Visual Studio Code(VSCode)这类工具所使用的 xterm.js,并借助 Python 施展的一些 “魔法”(这些 “魔法” 有助于实现进程间的终端交互),我们就能在网络上完整地实现终端功能了。 安装方法 #InterSystems IRIS Open Exchange app 0 0 0 36
文章 Louis Lu · 十二月 24, 2024 阅读大约需 1 分钟 如何基于表格现有数据新增数据列 现有一个数据表的数据像这样: 我们的需求是基于表中的Item列新增一个status字段,如果item的内容是第一次出现,那么status列就是New,反之显示Old, 比如,应该是下面的显示内容 在原文章的回复中, Robert Cemper给出了下面的建议 新建一个存储过程,并在SELECT查询语句中生效: #InterSystems IRIS 0 0 0 33
文章 姚 鑫 · 十二月 24, 2024 阅读大约需 2 分钟 第五十七章 File 输入 输出 - READ 命令 第五十七章 File 输入 输出 - READ 命令 在定位的 READ 或 WRITE 之后,后续的 READ 或 WRITE 操作将按顺序进行,直到下一个带有 position 参数的 USE 命令。 READ 命令从当前设备读取数据,一次读取一条记录。读取超过文件末尾会导致错误。 #InterSystems IRIS for Health 0 0 0 36
文章 姚 鑫 · 十二月 23, 2024 阅读大约需 2 分钟 第五十六章 File 输入 输出 - USE 命令 第五十六章 File 输入 输出 - USE 命令 US 命令 USE 命令使打开的顺序文件成为当前设备。可以打开多个顺序文件,但一次只能使用一个顺序文件。 语法 USE file:position file 文件 任何有效的文件规范,用引号括起来。指定的文件必须已打开。在 UNIX 路径名中,可以使用波形符 (~) 扩展来指示当前用户的主目录。例如:~myfile 或 ~/myfile。 #InterSystems IRIS for Health 0 0 0 25
文章 Hao Ma · 十二月 23, 2024 阅读大约需 6 分钟 从TTL值发现网络中的中间人攻击 技术支持团队在不同的项目中发现了类似中间人攻击的情况, 和各位分享一下。 我们的系统一般是安装在内网里,没有恶意的中间人攻击的风险。但是在有些医院发现了这样的情况:IT在网络中安装了某种网络监控或者嗅探的设备, 它会在通信通道中模拟其中一方,或者双方的通信节点, 以截获通信双方的网络流量。通常它不影响双方的通信,但偶尔,它会中断双方的连接, 造成业务的中断。实质上这也是一种中间人攻击的情况,只不过这是用户允许的行为,偶然出现了故障。 我们看看以下的例子: 以下的wireshark抓包截图中, 172.18.1.131和172.18.1.145在正常的通信过程中, 忽然收到了RST消息,造成了TCP连接上的复位。 #提示和技巧 #InterSystems IRIS 3 0 0 165