文章
· 三月 15, 2022 阅读大约需 4 分钟
第八十二章 SQL函数 $LISTDATA

第八十二章 SQL函数 $LISTDATA

列表函数,指示指定元素是否存在并具有数据值。

大纲

$LISTDATA(list[,position])

参数

  • list - 计算结果为有效列表的表达式。列表是包含一个或多个元素的编码字符串。您可以使用 SQL 或 ObjectScript 的 $LISTBUILD$LISTFROMSTRING 函数创建列表。您可以使用 SQL 或 ObjectScript $LIST 函数从现有列表中提取列表。
  • position - 可选 — 指定列表中元素的整数表达式。

描述

$LISTDATA 检查列表中请求元素中的数据。如果位置参数指示的元素在列表中并且具有数据值,则 $LISTDATA 返回值 1。如果元素不在列表中或没有数据值,则 $LISTDATA 返回值 0。

0 0
0 56
文章
· 二月 6, 2021 阅读大约需 2 分钟
第二十六章 Caché 变量大全 $ZCHILD 变量

第二十六章 Caché 变量大全 $ZCHILD 变量

当前进程的包含最后一个子进程的ID。

DHC-APP>job ##class(PHA.TEST.SpecialVariables).ZB()

DHC-APP>w $zchild
16636
DHC-APP>job ##class(PHA.TEST.SpecialVariables).ZB()

DHC-APP>w $zchild
5412

image

大纲

$ZCHILD
$ZC 

描述

$ZCHILD包含当前进程使用JOB命令创建的最后一个子进程的ID。如果进程没有使用JOB创建子进程,则$ZCHILD返回0(零)。

0 0
0 55
文章
· 四月 23, 2021 阅读大约需 6 分钟
第五章 优化查询性能(二)

第五章 优化查询性能(二)

使用索引

索引通过维护常见请求数据的排序子集,提供了一种优化查询的机制。
确定哪些字段应该被索引需要一些思考:太少或错误的索引和关键查询将运行太慢;
太多的索引会降低插入和更新性能(因为必须设置或更新索引值)。

什么索引

要确定添加索引是否会提高查询性能,请从管理门户SQL接口运行查询,并在性能中注意全局引用的数量。
添加索引,然后重新运行查询,注意全局引用的数量。
一个有用的索引应该减少全局引用的数量。
可以通过在WHERE子句或ON子句条件前使用%NOINDEX关键字来防止使用索引。

应该为联接中指定的字段(属性)编制索引。左外部联接从左表开始,然后查看右表;因此,应该为右表中的字段建立索引。在下面的示例中,应该为T2.f2编制索引:

0 0
0 55
文章
· 八月 3, 2023 阅读大约需 3 分钟
第十一章 配置Production - 添加 HL7 路由进程

第十一章 配置Production - 集成和配置 HL7 业务服务

集成和配置 HL7 业务服务

要将新的 HL7 业务服务集成到production中,必须将其与其中继消息的路由流程或业务操作相关联。此外,如果希望业务服务接收非标准消息结构,将需要创建自定义 HL7 架构定义来解析和验证这些消息。去做这个:

0 0
0 55
文章
· 二月 8, 2022 阅读大约需 3 分钟
第四十八章 SQL函数 DAYOFMONTH

第四十八章 SQL函数 DAYOFMONTH

返回日期表达式的月份日期的日期函数。

大纲

{fn DAYOFMONTH(date-expression)}

参数

  • date-expression - 要从中返回月值日期的日期或时间戳表达式。作为列名、另一个标量函数的结果或日期或时间戳文字的表达式。

描述

DAYOFMONTH131之间的整数形式返回每月的第几天。日期表达式可以是日期整数、$HOROLOG$ZTIMESTAMP值、ODBC格式的日期字符串或时间戳。

日期表达式时间戳可以是数据类型%Library.PosiTime(编码的64位有符号整数)或数据类型%Library.TimeStamp(yyyy-mm-dd hh:mm:ss.fff)

0 0
0 55
文章
· 五月 8, 2021 阅读大约需 7 分钟
第三章 使用多维存储(全局变量)(四)

第三章 使用多维存储(全局变量)(四)

管理事务

InterSystems IRIS提供了使用全局变量实现完整事务处理所需的基本操作。
InterSystems IRIS对象和SQL自动利用这些特性。
如果直接将事务性数据写入全局变量,则可以使用这些操作。

事务命令是TSTART,它定义事务的开始;
TCOMMIT,它提交当前事务;
TROLLBACK,它将中止当前事务,并撤消自事务开始以来对全局变量所做的任何更改。

例如,下面的ObjectScript代码定义了事务的开始,设置了一些全局变量节点,然后根据ok的值提交或回滚事务:

0 0
0 55
文章
· 九月 18, 2021 阅读大约需 4 分钟
第十九章 SQL命令 CREATE TABLE(六)

第十九章 SQL命令 CREATE TABLE(六)

WITH子句,%CLASSPARAMETER关键字,STORAGETYPE关键字

可选的WITH子句可以在表格元素逗号结尾的圆括号之后和Shard Key定义(如果存在的话)之后指定。
WITH子句可以包含一个用逗号分隔的列表:
- 一个或多个%CLASSPARAMETER 子句。
- STORAGETYPE子句

0 0
0 55

第五十二章 开发Productions - ObjectScript Productions - 不常见的任务 - 在目标是动态的情况下渲染连接

在目标是动态的情况下渲染连接

当用户选择业务主机时,管理门户会自动显示与给定业务主机之间的连接。例如:

为此,IRIS 读取业务主机的配置设置并使用它们。

但是,如果业务服务在运行时动态托管其目标, IRIS 将无法自动显示此类连接。在这种情况下,要显示此类连接,请实施 OnGetConnections() 回调方法。 IRIS 在呈现配置图时自动调用此方法(默认情况下不执行任何操作)。

OnGetConnections() 具有以下签名:

ClassMethod OnGetConnections(Output pArray As %String, item As Ens.Config.Item) [ CodeMode = generator ]

其中参数如下:

0 0
0 55
文章
· 二月 10, 2022 阅读大约需 2 分钟
第五十章 SQL函数 DAYOFWEEK

第五十章 SQL函数 DAYOFWEEK

Date函数,它返回日期表达式的整型日期。

参数

  • date-expression - 日期表达式,它是列名、另一个标量函数的结果或日期或时间戳文字。

描述

DAYOFYEAR返回一个介于1到366之间的整数,该整数对应于给定日期表达式的一年中的第几天。DAYOFYAR计算闰年日期。

根据日期整数、$HOROLOG$ZTIMESTAMP值、ODBC格式日期字符串或时间戳计算一年中的日期。

日期表达式时间戳可以是数据类型%Library.PosiTime(编码的64位有符号整数)或数据类型%Library.TimeStamp(yyyy-mm-dd hh:mm:ss.fff)

时间戳的时间部分不计算,可以省略。

0 0
0 55
文章
· 九月 26, 2022 阅读大约需 2 分钟
第四十四章 使用多个 IRIS 实例(四)

[toc]

第四十四章 使用多个 IRIS 实例(四)

配置多个 IRIS 实例

可以在一台机器上安装并同时运行多个 IRIS 实例。像单一安装一样安装 IRIS,为每个实例提供唯一的名称、唯一的安装目录以及用于超级服务器、Web 服务器和 Telnet 的唯一端口号。

多个实例的特殊注意事项是:

  • 安装多个实例受到系统上仅存在一个的组件的限制。例如,通常系统上只有一个 Web 服务器;因此 IRIS 安装将 Web Gateway 配置为最新安装。存储在注册表中的 IRIS 客户端组件遇到了同样的问题。 IRIS 将其 ODBC 驱动程序存储在注册表中,每个驱动程序使用一个名称。目前,最后一次安装会更新这些组件以指向最后安装的实例。

努力将通用组件移动到可以在 IRIS 实例之间共享的通用目录中。

1 0
0 55
文章
· 九月 24, 2021 阅读大约需 4 分钟
第二十五章 SQL命令 CREATE VIEW(二)

第二十五章 SQL命令 CREATE VIEW(二)

通过视图更新

视图可用于更新视图所基于的表。可以通过视图插入新行,更新通过视图看到的行中的数据,以及删除通过视图看到的行。如果CREATE VIEW语句指定了此功能,则可以为视图发出INSERTUPDATEDELETE语句。要允许通过视图进行更新,请在定义视图时指定WITH CHECK选项(默认值)。

注意:如果视图基于分片表,则不能通过WITH CHECK OPTION视图进行INSERTUPDATEDELETE操作。
尝试这样做会导致一个SQLCODE -35,其中%msg INSERT/UPDATE/DELETE not allowed for view (sample.myview) based on sharded table with check option conditions

0 0
0 55
文章
· 九月 16, 2022 阅读大约需 3 分钟
第三十四章 在 Windows 上使用 IRIS(一)

第三十四章 在 Windows 上使用 IRIS(一)

Microsoft Windows 平台上管理 IRIS 数据平台实例非常简单。可以使用管理门户和 IRIS 启动器执行大多数任务。还可以从命令提示符控制 IRIS 实例。

本主题使用 install-dir 来指代 IRIS 安装目录——可以在安装指南的默认安装目录部分找到默认目录。

注意:不要对 IRIS IRIS.DAT 数据库文件使用 Windows 文件压缩。 (通过右键单击 Windows 资源管理器中的文件或文件夹并选择属性,然后选择高级,然后压缩内容以节省磁盘空间来压缩文件;压缩后,文件夹名称或文件名在 Windows 资源管理器中呈现为蓝色。)如果压缩一个IRIS.DAT 文件,它所属的实例将无法启动,并出现误导性错误。

1 0
0 55
文章
· 四月 17, 2022 阅读大约需 1 分钟
第115章 SQL函数 REPEAT

第115章 SQL函数 REPEAT

将字符串重复指定次数的字符串函数。

大纲

REPEAT(expression,repeat-count)

{fn REPEAT(expression,repeat-count)}

参数

  • expression - 要重复的字符串表达式。
  • repeat-count - 重复的次数,以整数表示。

描述

REPEAT 返回一串重复计数的表达式实例,连接在一起。

如果表达式为 NULL,则 REPEAT 返回 NULL。如果 expression 是空字符串,则 REPEAT 返回一个空字符串。

0 0
0 55
文章
· 六月 29, 2022 阅读大约需 10 分钟
第十三章 信号(三)- 示例演示

第十三章 信号(三)- 示例演示

运行示例

MainProducerConsumer 这三个类中的每一个都有自己的 Run 方法,最好在各自的终端窗口中运行它们。每次运行时,它都会显示它为日志生成的消息。一旦用户通过提供它正在等待的输入来响应 Main 类,MainRun 方法将终止删除信号量。然后,用户可以通过键入命令查看所有进程的合并日志文件的显示

  Do ##class(Semaphore.Util).ShowLog()

注意:以下所有示例都假定所有类都已在“USER”命名空间中编译。

示例 1 - 创建和删除信号量

最简单的例子演示了信号量的创建和销毁。它使用 Semaphore.Main 类。请执行下列操作:

0 0
0 55
文章
· 八月 2, 2022 阅读大约需 3 分钟
第十五章 源代码文件 REST API 简介

第十五章 源代码文件 REST API 简介

源代码文件 REST API 简介

REST API 提供对源代码文件的访问。我们开发此 API 是为了允许 Atelier(我们基于 EclipseIDE)访问 IRIS 服务器上的 IRIS 代码文件。可以使用 API 执行访问 IRIS 代码文件所需的操作。这些行动包括:
- 获取 IRIS 实例上可用的命名空间
- 查找命名空间中定义的类定义和例程
- 获取类和例程的文本定义
- 更新类定义或例程
- 创建新的类定义或例程
- 删除类定义或例程
- 编译 IRIS 类或例程
- 通过对表执行 SQL 查询来发现 IRIS 环境的属性

0 0
0 55
文章
· 七月 11, 2022 阅读大约需 4 分钟
第二章 嵌入式Python概述(二)

第二章 嵌入式Python概述(二)

从 Python 调用 IRIS API

如果使用的是嵌入式 Python 并且需要与 IRIS 交互,可以使用 Python shell 中的 iris 模块,或者使用 Python 编写的 IRIS 类中的方法。要遵循本节中的示例,可以使用 ObjectScript 命令 do ##class(%SYS.Python).Shell() 从终端会话启动 Python shell

当启动终端会话时,将被放置在 IRISUSER 命名空间中,将看到提示 USER>。但是,如果从 GitHub 加载了示例类,则需要在 SAMPLES 命名空间中才能访问它们。

0 0
0 55
文章
· 五月 10, 2023 阅读大约需 3 分钟
第五十四章 镜像中断程序

第五十四章 镜像中断程序

由于计划维护或计划外问题,镜像中一个或两个故障转移成员上的 IRIS 实例可能变得不可用。当故障转移成员的 IRIS 实例不可用时,其 ISCAgent 可能继续可用(如果主机系统仍在运行),也可能不可用(如主机系统关闭时)。本节提供了处理各种计划内和计划外中断场景的过程,这些场景涉及实例中断或一个或两个故障转移成员的全部中断。

如自动故障转移机制中所述,从主要故障转移成员到备份故障转移成员的安全和成功故障转移有两个要求:

  • 确认主实例确实已关闭,并且没有被临时网络问题隔离。
  • 确认备份具有来自主数据库的最新日志数据,因为它在主数据库发生故障时处于活动状态(请参阅镜像同步)或因为它已被手动捕获(请参阅主数据库的计划外中断而没有自动故障转移)。

在阅读和使用本材料时,可能需要参考自动故障转移规则来查看管理自动故障转移的规则。

有关使用镜像监视器确定备份故障转移成员是否处于活动状态或 DR 异步是否被赶上的信息,请参阅镜像成员日志传输和取消日志状态和监控镜像。

0 0
0 55

第六十一章 镜像中断程序 - 计划故障转移到提升的 DR 异步

计划故障转移到提升的 DR 异步

如果在镜像中包含一个或多个 DR 异步以提供灾难恢复功能,则最好通过计划的故障转移到每个 DR 异步来定期测试此功能。要执行此测试,或者当出于任何其他原因(例如包含故障转移成员的数据中心计划停电)而想要故障转移到 DR 异步时,请使用以下过程:

  1. IRIS C 提升为故障转移成员;因为 IRIS A 可用,所以不会要求您选择故障转移伙伴。 IRIS C 成为备份, IRIS B(如果存在)降级为 DR 异步。

注意:如果镜像仅包含一个故障转移成员,则过程相同;不需要选择故障转移伙伴, IRIS C 成为备份,因此镜像现在有两个故障转移成员。

1 0
1 55
文章
· 二月 22, 2021 阅读大约需 7 分钟
第四十四章 Caché 变量大全 $ZTRAP 变量

第四十四章 Caché 变量大全 $ZTRAP 变量

包含当前错误陷阱处理程序的名称。

大纲

$ZTRAP
$ZT

描述

$ZTRAP包含当前错误陷阱处理程序的行标签名和/或例程名。有三种方法可以设置$ZTRAP:

  • SET $ZTRAP=“location”
  • SET $ZTRAP=“*location”
  • SET $ZTRAP=“^%ET” or “^%ETN”

在这里,位置可以指定为标签(当前例程中的行标签)、^routine(指定外部例程的开始)或label^routine(指定外部例程中的指定标签)。

0 0
0 54
文章
· 二月 23, 2021 阅读大约需 3 分钟
第四十五章 Caché 变量大全 $ZVERSION 变量

第四十五章 Caché 变量大全 $ZVERSION 变量

包含一个字符串,描述do命令后面的InterSystems IRIS.line的当前版本。

大纲

$ZVERSION 
$ZV

描述

$ZVERSION包含一个字符串,该字符串显示当前运行的InterSystems IRIS®Data Platform实例的版本。

以下示例返回$ZVERSION字符串:

0 0
0 54
文章
· 十月 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个注册项并得到相应的命令。各个操作系统的命令并不一样,示例如下:

3 0
1 54
文章
· 二月 9, 2021 阅读大约需 9 分钟
第二十九章 Caché 变量大全 $ZERROR 变量

第二十九章 Caché 变量大全 $ZERROR 变量

包含上一个错误的名称和位置。

大纲

$ZERROR
$ZE 

描述

$ZERROR包含最新错误的名称,最新错误的位置(在适用的情况下)以及(对于某些错误代码而言)有关导致错误的原因的其他信息。 $ZERROR始终包含相应语言模式的最新错误。

$ZERROR值旨在错误后立即使用。由于$ZERROR值可能不会在例程调用中保留,因此希望保留$ZERROR值以供以后使用的用户应将其复制到变量中。强烈建议用户在使用后立即将$ZERROR设置为空字符串(“”)。

$ZERROR中包含的字符串可以是以下任何一种形式:

0 0
0 54
文章
· 五月 16, 2023 阅读大约需 3 分钟
第六章 介绍Productions - 其他Production 选项

第六章 介绍Productions - 其他Production 选项

本章概述了与制作相关的其他选项。

用户门户

Studio 和管理门户等后端工具不同,用户门户(正式名称为 用户门户)旨在供最终用户直接使用。下面显示了一个例子:

用户门户旨在使最终用户能够执行以下任务:

  • 视图和仪表板,其中可以包括生产业务指标,将在本章后面介绍。
  • 查看和管理工作流任务,将在下一节介绍。
  • 向用户门户的其他用户发送消息,如上图左上角所示。

工作流

IRIS 为制作中的工作流程提供支持。工作流使得将人机交互合并到自动化业务流程中成为可能。企业内工作流的使用可能包括订单输入、订单履行、合同批准或服务台活动。

production 使用业务流程和业务操作集实现工作流。业务流程接收请求,组织完成该请求所需的任务,然后调用业务操作来执行这些任务。

这些业务操作中的每一个都将任务分配给一个工作流角色,该角色将任务放入属于该角色的每个用户的工作流收件箱中。要访问此收件箱,用户需要使用上一主题中介绍的用户门户。

0 0
0 54
文章
· 一月 19, 2022 阅读大约需 3 分钟
第二十八章 SQL函数 CHAR_LENGTH

第二十八章 SQL函数 CHAR_LENGTH

返回表达式中的字符数的函数。

大纲

CHAR_LENGTH(expression)

参数

  • expression - 表达式,可以是列名、字符串文字或另一个标量函数的结果。底层数据类型可以是字符类型(如CHARVARCHAR)、数字或数据流。

CHAR_LENGTH返回整数数据类型。

描述

CHAR_LENGTH返回一个整数值,表示指定表达式中的字符数,而不是字节数。表达式可以是字符串,也可以是任何其他数据类型,如数字或数据流字段。返回的整数计数包括前导和尾随空格以及字符串终止字符。如果传递NULL值,则CHARACTER_LENGTH返回NULL,如果传递空字符串(‘’)值,则返回0。

0 0
0 54
文章
· 十月 12, 2022 阅读大约需 3 分钟
第十四章 CSP 中的 HTTP 请求 - CSP.Page 类

第十四章 CSP 中的 HTTP 请求 - CSP.Page 类

CSP 服务器上,所有 HTTP 请求都通过调用由类中的 %CSP.Page 定义的方法来处理。类中的 %CSP.Page 从不直接处理请求本身;它只是定义了处理 HTTP 请求所需的接口。实际的事件处理的 %CSP.Page 的子类完成(手动创建或作为处理 CSP 源文件的结果)。

%CSP.Page 的子类永远不会被实例化;也就是说,不会在对象中创建 %CSP.Page%CSP.Page 定义的方法都是类方法,不需要对象即可调用。正如我们将看到的,这些方法所需的任何状态信息都由 CSP 服务器管理的其他对象(例如%CSP.Request 和对象中的 %CSP.Session)提供。

2 0
0 54