公告 Michael Lei · 六月 8, 2023 InterSystems 测试管理器 - %UnitTest 框架的新 VS Code 扩展 如果您已经使用%UnitTest 框架构建了单元测试,或者正在考虑这样做,请查看InterSystems 测试管理器Test Manager。 无需离开 VS Code,您现在可以浏览单元测试、运行或调试它们,并查看之前的运行结果。 InterSystems 测试管理器适用于 ObjectScript 扩展支持的两种源代码位置范例。您的单元测试类可以在 VS Code 的本地文件系统(“客户端编辑”范例)或服务器命名空间(“服务器端编辑”)中掌握。在这两种情况下,实际测试运行都发生在服务器命名空间中。 欢迎反馈。 #工具 #测试 #Caché #InterSystems IRIS #VSCode Open Exchange app 0 0 0 142
公告 Michael Lei · 一月 27, 2023 InterSystems IRIS 持久化类审计包 大家好, 我在 OEX 上加载了一个新软件包,我也计划在本月参加比赛。 简而言之,它为您提供以下内容。 用于 InterSystems IRIS 的持久(表)类以保存记录历史的基类 这些类允许在touch时将持久类记录历史化到另一个持久类中。 这提供了任何记录的完整历史记录。 它允许记录回滚到特定版本。 它可以自动清除旧的历史记录。 请检查一下。 谢谢你们。 #ObjectScript #InterSystems IRIS #Open Exchange Open Exchange app 0 0 0 142
文章 Vincent Wu · 十月 23, 2022 阅读大约需 4 分钟 TrakCare Lab之延伸应用-护理站自动采检备管系统(NSAD)之开发 TrakCare Lab是TrakCare #业务服务 #TrakCare 3 0 0 142
文章 Qiao Peng · 十月 20, 2022 阅读大约需 5 分钟 在集成产品中压缩解压文件 在InterSystems IRIS医疗版里有一个文件压缩解压的适配器HS.Util.Zip.Adapter和对应的文件压缩解压业务操作HS.Util.Zip.Operations。集成产品可以使用它们进行文件的压缩和解压操作。这2个类的联机文档说明较少,这里介绍它们的使用方法。 1. 基础配置 InterSystems IRIS使用操作系统的压缩和解压缩能力,因此需要注册操作系统执行压缩解压的命令。 在管理门户的Health标签页下,选中配置注册(Configuration Registry): 在其中增加2个注册项目: \ZipUtility\UnZipCommand 和\ZipUtility\ZipCommand,分别代表解压和压缩命令。适配器HS.Util.Zip.Adapter会检查这2个注册项并得到相应的命令。各个操作系统的命令并不一样,示例如下: #开发运维 #提示和技巧 #InterSystems IRIS #InterSystems IRIS for Health 3 0 1 142
公告 Claire Zheng · 一月 17, 2022 2021开发者社区中文版最热门的提问有哪些? 尊敬的开发者,2021年,InterSystems开发者社区中文版收到了很多提问/问题。 #摘要 #开发者社区官方 0 0 0 142
文章 Louis Lu · 十一月 2, 2021 阅读大约需 15 分钟 IRIS 2021 技术文档 First Look 35 -- 使用 Production 进行大文件传输(Managed File Transfer, MFT) #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 142
文章 姚 鑫 · 六月 12, 2021 阅读大约需 6 分钟 第五章 生成XML元素 第五章 生成XML元素 生成XML元素 如果使用RootElement()启动文档的根元素,则负责生成该根元素内的每个元素。有三个选择: 将对象生成为元素 可以从InterSystems IRIS对象生成输出作为元素。在本例中,使用object()方法,该方法写入支持XML的对象。输出包括该对象中包含的所有对象引用。可以指定此元素的名称,也可以使用在对象中定义的默认值。 只能在RootElement()和EndRootElement()方法之间使用object()方法。 此示例为给定启用XML的类的所有已保存实例生成输出: #Caché #InterSystems IRIS 0 0 0 142
文章 姚 鑫 · 五月 9, 2021 阅读大约需 6 分钟 第四章 多维存储的SQL和对象使用(一) 第四章 多维存储的SQL和对象使用(一) 本章介绍InterSystems IRIS®对象和SQL引擎如何利用多维存储(全局变量)来存储持久对象、关系表和索引。 尽管InterSystems IRIS对象和SQL引擎会自动提供和管理数据存储结构,但了解其工作原理的详细信息还是很有用的。 数据的对象视图和关系视图使用的存储结构是相同的。为简单起见,本章仅从对象角度介绍存储。 数据 每个使用%Storage.Persistent存储类(默认)的持久化类都可以使用多维存储(全局变量)的一个或多个节点在InterSystems IRIS数据库中存储其自身的实例。 每个持久化类都有一个存储定义,用于定义其属性如何存储在全局变量节点中。这个存储定义(称为“默认结构”)由类编译器自动管理。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 142
Job Claire Zheng · 五月 8, 2021 最新职位正在招聘:Channel Sales Manager InterSystems中国正在招聘SE,具体职位需求以英文发布,详情如下,欢迎将简历砸过来 (claire.zheng@intersystems.com)or 私信联系 :) #工作机会 0 0 0 142
文章 姚 鑫 · 九月 22, 2024 阅读大约需 3 分钟 第三十章 使用派生密钥令牌进行加密和签名 第三十章 使用派生密钥令牌进行加密和签名 IRIS 支持 WS-SecureConversation 1.4 定义的 <DerivedKeyToken> 元素。可以创建并使用<DerivedKeyToken> 元素进行加密和签名,作为前三个主题中描述的方法的替代。 通常,会同时执行加密和签名。为简单起见,本主题分别介绍这些任务。有关结合加密和签名的信息,请参阅结合加密和签名。 概述 <DerivedKeyToken> 元素旨在携带发送者和接收者可以独立使用的信息来生成相同的对称密钥。这些方可以使用该对称密钥对 SOAP 消息的指定部分进行加密、签名或同时执行这两种操作。 要生成和使用 <DerivedKeyToken>,请执行以下操作: #InterSystems IRIS for Health 0 1 0 121
公告 Claire Zheng · 七月 2, 2023 创意社区新闻摘要#7 | InterSystems Ideas News#7 Hi 开发者社区的成员们,大家好! 欢迎关注我们第7期 InterSystems Ideas News! 本期分享如下: ✓ 创意门户已收集了 200 多个创意 ✓ 由社区成员实施的创意 ✓ 在 Grand Prix 23 竞赛中实施一个创意并获得技术奖励 ✓ 最近发布的创意 #InterSystems 想法门户 1 0 0 141
公告 Michael Lei · 六月 3, 2023 InterSystems 硬件OS支持平台更新 2023年2季度 InterSystems 支持的硬件OS平台更新 2023年2季度 我们经常收到有关 InterSystems IRIS 数据平台支持的平台和框架列表最近和即将发生的变化的问题。此更新旨在分享最近的更改以及我们对即将发生的更改的已知的情况,但预测未来是一项棘手的工作,不应将其视为承诺的路线图。 话虽如此,关于更新…… #Caché #InterSystems IRIS 0 0 0 141
文章 姚 鑫 · 四月 6, 2023 阅读大约需 3 分钟 第二十章 镜像架构和规划 - 限制对备份故障转移成员的访问 第二十章 镜像架构和规划 - 限制对备份故障转移成员的访问 虽然托管镜像备份故障转移成员的系统可能有未使用的资源或容量,或者可能希望在其镜像数据库上运行只读查询,但 推荐的最佳实践是将主机专用于其角色,仅作为备份镜像成员。对备份的任何镜像相关或非镜像使用都会产生以下影响: 如果备份性能的降低导致其确认从主服务器接收到日志数据的速度变慢,则访问主服务器上镜像数据库的应用程序用户可能会遇到性能下降的情况。任何必须等待主节点确认的应用程序交互,包括那些涉及显式日志同步以及同步提交事务和 ECP 活动的应用程序交互,都可能以这种方式受到影响。 如果备份的确认延迟到足以防止它在 QoS 超时内发生,则主要撤销备份的活动状态,导致自动故障转移变得更加困难或不可能,具体取决于主要中断的性质。 如果确实发生自动故障转移,备份现在支持其现有资源使用和主要用户应用程序资源使用。如果可能的话,备份主机必须有能力处理这两种负载。 出于这些原因,如果必须从主成员卸载用户活动,则应使用异步成员而不是备份成员。 #InterSystems IRIS 0 0 0 141
文章 王喆 👀 · 三月 12, 2023 阅读大约需 8 分钟 教程 - 使用 SSH 开发 IRIS #Java #JDBC #开发环境 #教程 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 141
文章 姚 鑫 · 十月 9, 2022 阅读大约需 3 分钟 第十一章 CSP 架构 - Web Application Settings 第十一章 CSP 架构 - Web Application Settings Special Case: DeepSee 对于使用 DeepSee 的 Web 应用程序,它需要访问 %DeepSee 包中的所有类。要使特定应用程序能够使用 DeepSee,请在 %SYS 命名空间中使用以下命令: Do EnableDeepSee^%SYS.cspServer("/csp/webapp/") 其中 web-app-name 是带有斜杠的 Web 应用程序名称。前面的命令等价于以下命令: #CSS #Caché 0 0 0 141
公告 Claire Zheng · 八月 2, 2022 探索之夏——来开发者社区提问,获取400积分! Hi 社区成员们, 我们希望你正在经历一个激情而又鼓舞人心的夏天(你所在的地方也有可能是冬天:D)! 今天我们在开发者社区启动“探索之夏”活动,详情如下: #Global Masters 0 0 0 141
文章 姚 鑫 · 七月 14, 2022 阅读大约需 3 分钟 第五章 使用嵌入式 Python (二) 第五章 使用嵌入式 Python (二) 在 Python 脚本文件 (.py) 中 还可以使用 irispython 命令执行 Python 脚本。 考虑 Windows 系统上的文件 C:\python\test.py,其中包含以下代码: ##嵌入式 Python #Caché 0 0 0 141
文章 姚 鑫 · 六月 23, 2022 阅读大约需 3 分钟 第八章 操作位和位串(四) 第八章 操作位和位串(四) 操作以整数形式实现的位串 设置位 要创建一个存储为整数的新位串,请对每个位求和 2 的幂: set bitint = (2**2) + (2**5) + (2**10) write bitint 1060 要将现有位串中的位设置为 1,请使用 $zboolean 函数(逻辑 OR)的选项7 (arg1 ! arg2): set bitint = $zboolean(bitint, 2**4, 7) write bitint 1076 要将现有位串中的位设置为 0,请使用 $zboolean 函数的选项 2 (arg1 & ~arg2): #SQL #Caché 0 0 0 141
文章 姚 鑫 · 四月 11, 2022 阅读大约需 2 分钟 第109章 SQL函数 POSITION 第109章 SQL函数 POSITION 返回子字符串在字符串中的位置的字符串函数。 大纲 POSITION(substring IN string) 参数 substring - 要搜索的子字符串。 它可以是列的名称、字符串字面值或另一个标量函数的结果,其中基础数据类型可以表示为任何字符类型(如CHAR或VARCHAR2)。 IN string - 要在其中搜索子字符串的字符串表达式。 POSITION返回INTEGER数据类型。 #SQL #Caché 0 0 0 141
文章 姚 鑫 · 八月 26, 2021 阅读大约需 2 分钟 Storage关键字IdFunction,IdLocation,IndexLocation,SqlRowIdName 第149章 Storage关键字 - IdFunction 指定使用默认存储为持久类分配新ID值的系统函数。 大纲 <IdFunction>increment</IdFunction> 值 这个元素的值可以是increment(使用$increment函数)或sequence(使用$sequence函数)。 描述 如果持久化类不使用IdKey来确定对象ID值,则该元素允许指定用于分配ID值的函数($increment函数或$sequence函数)。 如果类使用$increment函数,则通过对<IdLocation>元素中定义的全局位置中存储的值进行递增来创建新的id。 #Caché 0 0 0 141
文章 姚 鑫 · 八月 16, 2021 阅读大约需 4 分钟 属性关键字ServerOnly,SqlColumnNumber,SqlComputeCode,SqlComputed 第109章 属性关键字 - ServerOnly 指定是否将此属性投影到Java客户机。 用法 要指定属性是否被投影到Java客户端,请使用以下语法: Property name As classname [ ServerOnly = n ]; 其中n是下列之一: - 0表示此属性是投影的。 - 1表示不投影该属性。 详解 此关键字指定属性是否被投影到Java客户端。 默认 如果省略此关键字,属性将被投影。 第110章 属性关键字 - SqlColumnNumber 指定此属性的SQL列号。仅适用于持久类。 用法 要指定属性的SQL列号,请使用以下语法: #Caché 0 0 0 141
文章 姚 鑫 · 七月 26, 2021 阅读大约需 3 分钟 类关键字NoExtent,OdbcType,Owner,ProcedureBlock # <center> 第二十五章 类关键字 - NoExtent 指定是否阻止编译器为此类生成继承类(如果不这样做的话)。 # 用法 要防止编译器为此类生成继承类,请使用以下语法: ```Class MyApp.MyClass [ NoExtent ] { //class members }``` 否则,省略此关键字或将单词`Not`放在关键字的前面。 # 详解 如果该关键字为真,则该类没有 `extent`。不能创建此类的实例。通常,这样的类会扩展或覆盖从`%Library.Persistent`继承的标准持久接口。 # 对子类的影响 此关键字不是继承的。 # 默认 如果省略此关键字,类可以有一个`extent`。 # <center> 第二十六章 类关键字 - OdbcType 指定通过`ODBC`或`JDBC`公开此数据类型时使用的类型。每个数据类型类都必须指定一个`ODBC`类型。此关键字仅适用于数据类型类。 # 用法 #Caché 0 0 0 141
文章 姚 鑫 · 七月 8, 2021 阅读大约需 2 分钟 第三十一章 检查命名空间和类 第三十一章 检查命名空间和类 类%XML.Namespaces提供了两个类方法,可用于检查XML命名空间及其包含的类: GetNextClass() classmethod GetNextClass(namespace As %String, class As %String) as %String 返回给定XML命名空间中给定类之后的下一个类(按字母顺序)。当没有更多的类时,此方法返回NULL。 GetNextNamespace() classmethod GetNextNamespace(namespace As %String) as %String 返回给定命名空间之后的下一个命名空间(按字母顺序)。当没有更多的命名空间时,此方法返回NULL。 在这两种情况下,只考虑当前的InterSystems IRIS命名空间。此外,映射的类也会被忽略。 #Caché 0 0 0 141
文章 姚 鑫 · 六月 28, 2021 阅读大约需 6 分钟 第二十一章 使用%XML.TextReader 导航文档 第二十一章 使用%XML.TextReader 导航文档 导航文档 要在文档中导航,请使用文本阅读器的以下方法:Read()、ReadStartElement()、MoveToAttributeIndex()、MoveToAttributeName()、MoveToElement()、MoveToContent()和Rewind()。 导航到下一个节点 要移动到文档中的下一个节点,请使用read()方法。Read()方法返回TRUE值,直到没有更多节点可读为止(即,直到到达文档末尾)。前面的示例在如下所示的循环中使用了此方法: #Caché 0 0 0 141
文章 姚 鑫 · 五月 6, 2021 阅读大约需 5 分钟 第三章 使用多维存储(全局变量)(二) 第三章 使用多维存储(全局变量)(二) 遍历全局变量中的数据 有许多方法可以遍历(迭代)存储在全局变量中的数据。 $ORDER(下一个/上一个)函数 ObjectScript $Order函数允许顺序访问全局中的每个节点。 $ORDER函数返回给定级别(下标编号)的下一个下标的值。例如,假设定义了以下全局设置: Set ^Data(1) = "" Set ^Data(1,1) = "" Set ^Data(1,2) = "" Set ^Data(2) = "" Set ^Data(2,1) = "" Set ^Data(2,2) = "" Set ^Data(5,1,2) = "" 要查找第一个第一级下标,我们可以使用: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 141
文章 姚 鑫 · 七月 27, 2023 阅读大约需 3 分钟 第四章 HL7 架构和可用工具 - 查看数据结构 第四章 HL7 架构和可用工具 - 查看数据结构 查看数据结构 当单击“数据结构”列中的名称时,InterSystems 会显示该数据结构中的所有字段。这是 HL7 数据结构页面。显示的以下列是最有用的: 组件列列出了可用于访问段内字段的数字。 属性名称列列出了可用于访问段内字段的名称。 单击“数据结构”列中的条目可深入了解详细信息。 单击“代码表”列(如果有)中的条目可查看可在此字段中输入的有效代码。 当单击上面段结构页面中名为 2.3:XCN 的数据结构项时,将出现以下示例页面。该页面指出类别 2.3 数据结构 XCN 描述“扩展复合 ID 号和名称”并由 14 个字段组成。其中,有些是简单值,有些是数据结构,有些是代码。 有了这些信息,就可以为消息结构 2.3:ADT_A01 中的复杂 PR1grp().PR1:Surgeon 字段创建虚拟属性路径,如下所示: #InterSystems IRIS for Health 0 0 0 140
文章 姚 鑫 · 一月 26, 2023 阅读大约需 3 分钟 第五十七章 历史监视器 - 汇总 第五十七章 历史监视器 - 汇总 汇总 Application Monitor 执行的 %Monitor.System.HistoryPerf 和 %Monitor.System.HistorySys 类也在每天结束时创建每小时和每天的摘要。摘要被定义为持久类 SYS.History.Hourly 和 SYS.History.Daily;它们包括所有四个基类作为嵌入对象。 #Caché 0 0 0 140
文章 姚 鑫 · 一月 24, 2023 阅读大约需 4 分钟 第五十五章 使用 ^mgstat 监控性能 - Seizes、ASeizes 和 NSeizes 第五十五章 使用 ^mgstat 监控性能 - Seizes、ASeizes 和 NSeizes Column Description Notes Glorefs 全局引用(数据库访问)。指示代表当前工作负载正在发生的工作量;尽管全局引用会消耗 CPU 时间,但由于缓冲池的存在,它们并不总是需要物理读取。 RemGrefs * 远程全局引用(数据库访问)。指示代表分布式缓存集群应用程序服务器生成的全局引用数。 GRratio 全局引用与远程全局引用的比率。 PhyRds 从磁盘物理读取。大量的物理读取可能表明存在性能问题;可以通过增加数据库(全局)缓冲区的数量来提高性能。 Rdratio #Caché 0 0 0 140
文章 姚 鑫 · 十月 19, 2022 阅读大约需 2 分钟 第二十一章 CSP Session 管理 - 身份验证和加密 第二十一章 CSP Session 管理 - 身份验证和加密 身份验证和加密 在发送到 HTTP 客户端的页面上放置状态信息是很常见的。当从这些页面发出后续请求时,会将状态信息发送回服务器。很多时候,重要的是将状态信息放置在网页上,以便 a) HTTP 源的查看者无法确定状态信息的值,并且 b) 服务器可以验证返回的信息是,实际上,从同一服务器和会话发送出去。通过其加密服务,CSP 提供了一种易于使用的机制来实现这一点。 Session Key CSP 可以使用加密密钥对服务器上的数据进行加密和解密。每个 CSP session 都有一个唯一的会话密钥(可通对象 Key 属性中的 %CSP.Session 访问),用于加密会话数据。这种机制是安全的,因为会话密钥永远不会发送到 HTTP 客户端;它作为 %CSP.Session 的一部分保留在 CSP 服务器上,位于对象中。 #CSP #Caché 0 0 0 140
文章 姚 鑫 · 七月 16, 2022 阅读大约需 4 分钟 第七章 使用嵌入式 Python (四) 第七章 使用嵌入式 Python (四) 弥合 ObjectScript 和嵌入式 Python 之间的差距 由于 ObjectScript 和 Python 语言之间的差异,将需要了解一些有助于弥合语言之间差距的信息。 在 ObjectScript 方面,%SYS.Python 类允许从 ObjectScript 使用 Python。 在 Python 方面,iris 模块允许使用 Python 中的 ObjectScript。在 Python 中,键入 help(iris) 以获取其方法和函数的列表。 使用 Python 内置函数 builtins 包在 Python 解释器启动时自动加载,它包含语言的所有内置标识符,例如基对象类和所有内置数据类型类、异常类、函数和常量。 ##嵌入式 Python #Caché 0 0 0 140