文章
· 六月 7, 2022 阅读大约需 3 分钟
InterSystems 最佳实践之--发挥 $Query 的最大作用

我今天遇到了一个有趣的ObjectScript用例,有一个通用的解决方案,我想与大家分享。

用例:

我有一个JSON数组(在本例中具体而言是一个来自Jira的问题数组),我想在几个字段上进行聚合--例如,类别、优先级和问题类型。然后,我想把聚合的数据编平化到一个简单的列表中,其中包含每个组的总数。当然,对于聚合来说,使用一个本地数组的形式是有意义的,即:

agg(category, priority, type) = total

这样,对于输入数组中的每一条记录,我可以只用:

Do $increment(agg(category, priority, type))

但是一旦我做了聚合,我想把它变成一种更容易迭代的形式,比如一个整数下标的数组:

summary = n
summary(1) = $listbuild(total1, category1, priority1, type1)
...
summary(n) = $listbuild(totalN, categoryN, priorityN, typeN)

基础解决方案:

简单的方法是,用$Order嵌套三个For循环--比如说:

0 0
0 62
文章
· 四月 28, 2021 阅读大约需 11 分钟
第八章 解释SQL查询计划(一)

第八章 解释SQL查询计划(一)

SQL语句

这个SQL语句列表为每个表提供了SQL查询和其他操作的记录,包括插入、更新和删除。
这些SQL语句链接到一个查询计划,该链接提供冻结该查询计划的选项。

系统为每个SQL DML操作创建一条SQL语句。
这提供了一个按表、视图或过程名称列出的SQL操作列表。
如果更改表定义,可以使用此SQL Statements列表来确定每个SQL操作的查询计划是否会受到此DDL更改的影响,以及/或是否需要修改某个SQL操作。
然后,可以:

  • 确定每个SQL操作使用哪个查询计划。
    可以决定使用反映对表定义所做更改的修改后的查询计划。
    或者可以冻结当前查询计划,保留在更改表定义之前生成的查询计划。
  • 根据对表定义所做的更改,确定是否对对该表执行SQL操作的例程进行代码更改。

注意:SQL语句是一个SQL例程列表,它们可能会受到表定义更改的影响。
它不应该用作表定义或表数据更改的历史记录。

创建SQL语句操作

下面的SQL操作会创建相应的SQL语句:

0 0
0 62
文章
· 八月 20, 2021 阅读大约需 4 分钟
IRIS ObjectScript 原生API Demo
这是一个IRIS 2020.2上的代码示例,并非InterSystems 官方支持!

本demo基于原始类描述 is based on the raw class descriptions.
使用的数据类是Address, Person, Employee, Company
如果要做更有吸引力的 demo, 可以添加 JSONtoString by ID的方法

用ZPM安装后从终端启动:After installation with ZPM just run from Terminal

0 0
0 61
文章
· 四月 21, 2021 阅读大约需 1 分钟
云助力的集成平台方案

在医院信息化建设中,如何打通医院的各个系统,给患者提供连续、无缝的良好体验,集成平台发挥着重要作用。而集成平台方案如何适应现在的多云时代、需要具备什么样的特性、如何与多云环境更好地结合以便为医院的信息化建设带来更多的便利?面对这一系列问题,InterSystems中国业务拓展经理李岩为您解读InterSystems集成平台方案的特点和优势,以及构建在VMware云方案上的最佳实践,让您了解云环境下集成平台方案的新特性和优势。

0 0
0 61
文章
· 五月 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) = ""

要查找第一个第一级下标,我们可以使用:

0 0
0 60
文章
· 二月 12, 2021 阅读大约需 2 分钟
第三十二章 Caché 变量大全 $ZJOB 变量

第三十二章 Caché 变量大全 $ZJOB 变量

包含JOB状态信息。

大纲

$ZJOB
$ZJ

描述

$ZJOB包含一个数字,其中每个位代表作业状态的一个特定方面。 $ZJOB返回一个整数,该整数由设置的状态位的总和组成。例如,如果$ZJOB = 5,则表示设置了1位和4位。

要测试单个$ZJOB位设置,可以使用整数除(\)和模(#)运算符。例如,$ZJOB\x#2,其中x是位号。下表显示了位的布局(按位的位置值)、其设置和含义:

0 1
0 60

我在 InterSystems 工作了 35 年,期间见证了许多客户与我们共同成长。我们热忱地帮助客户取得成功——无论他们衡量成功的标准是什么——而成功的基石就是我们提供的技术。我们的名字现在通常与我们的 InterSystems IRIS 数据平台联系在一起,因为它实际上是我们经过验证的下一代数据管理软件。

0 0
0 60
文章
· 四月 12, 2021 阅读大约需 3 分钟
第一章 SQL性能优化简介

第一章 SQL性能优化简介

InterSystems SQL支持几个特性来优化InterSystems IRIS®数据平台的SQL性能。

表定义优化

SQL性能从根本上取决于良好的数据架构。
将数据划分为多个表并在这些表之间建立关系对于高效的SQL是必不可少的。

描述了以下优化表定义的操作。
这些操作要求定义表,但不要求用数据填充表:

0 0
0 60
文章
· 二月 3, 2021 阅读大约需 2 分钟
第二十三章 Caché 变量大全 $Y 变量

第二十三章 Caché 变量大全 $Y 变量

包含光标的当前垂直位置。

大纲

$Y

描述

$Y包含光标的当前垂直位置。当字符写入设备时,Caché会更新$Y以反映垂直光标位置。

输出的每个换行符(换行符)(ASCII 10)将$Y递增1。换页符(ASCII 12)将$Y重置为0。

$Y是16位无符号整数。当其值达到65536时,$Y换行为0。换句话说,如果$Y为65535,则下一个输出字符将其重置为0。

0 0
0 60

IRIS Interoperability互操作性/HealthConnect(前身是Ensemble)有许多内置的适配器。但是没有一个接收邮件的服务或适配器。我洗的了一个电子邮件服务,通过SMTP接收邮件,这些邮件可以被传递到电子邮件操作。

现在我想对一个使用电子邮件操作向外部邮件服务器发送邮件的Production进行负载测试。邮件服务器团队不希望我向他们发送成千上万的信息。

我创建了iris-mail应用程序来替代邮件服务器。我更新了电子邮件操作中的服务器和端口设置。外发的邮件被发送到替代的邮件服务器,我能够计算出iris-mail中收到的邮件数量,并将其与邮件操作发送的邮件数量进行比较。

应用程序的源代码:https://openexchange.intersystems.com/package/iris-mail

0 0
0 60
文章
· 一月 21, 2021 阅读大约需 3 分钟
InterSystems IRIS History Monitor仪表盘界面展示

大家好!

我想跟大家分享一个个人项目,该项目始于工作中的一个简单需求:“能否知道我们使用了多少个Caché许可证?”

在阅读社区的其他文章时,我发现了一篇David Loveluck写的非常棒的文章:APM——使用Caché History Monitor

我根据David的这篇文章,开始使用Caché History Monitor并显示所有这些信息。

在面临“选择哪种很酷的技术”这个问题时,我决定使用简单而强大的CSP,这样我的客户可以认识到Caché不仅仅是MUMPS/终端。

在创建了页面以显示许可、数据库增长和CSP会话的历史记录后,我决定为System Dashboard和进程页面创建一个新设计。

我的Caché实例运行得良好。

但是,如果使用IRIS呢?

0 0
0 60
文章
· 六月 3, 2021 阅读大约需 10 分钟
第十五章 Caché WebSocket

第十五章 Caché WebSocket

使用WebSockets (RFC 6455)

web是围绕请求/响应范例构建的:客户机向服务器发送请求,服务器通过向客户机发送响应进行响应。此范式和HTTP本身不允许此通信协议的反向形式,即服务器与客户机启动请求/响应周期。已经开发了许多技术来解决了这个问题,即服务器可以启动与客户机的对话。这些技术通常被称为基于推送或 comet-based的技术,它们都存在不适合在web基础设施上进行全面部署的问题。目前使用的三种主要技术如下所述。

Short Polling 短轮询

使用这种技术,客户端定期发送HTTP请求来检测服务器状态的变化,服务器被编程为立即响应。空响应表示没有变化。

0 0
0 60

2022年,香港大学深圳医院迎来建院十周年。作为深港合作医疗平台和公立医院改革试点,医院是由深圳市政府全额投资,并引进香港大学现代化管理模式的大型综合性公立医院。十年来,医院全力打造集“医、教、研、管”为一体的四个粤港澳大湾区国际化中心,2021年7月成为国家公立医院高质量发展试点医院,2021年12月成为国家建立健全现代医院管理制度试点医院。目前,医院正在探索改革创新路径,全面配合公立医院高质量发展对信息化建设提出的需求。

0 0
0 60

亲爱的社区开发者,

我们诚挚邀请您参加 InterSystems编程大奖赛获奖成员线上见面会!

时间: 周五(2021年3月12日)-22:00(北京时间)

在此次线上见面会,您可以:

  • 了解获胜者的个人履历
  • 观看获奖应用的简短demo
  • 针对此次大奖赛使用到的技术、奖金和各类疑问,您可以畅所欲言,各抒己见,为下一次竞赛做准备!

线上见面会参与成员:

0 2
0 59
文章
· 一月 17 阅读大约需 3 分钟
ZPM 简单实现实战宝典

ZPM 设计用于与 InterSystems IRIS 数据平台的应用程序和模块一起使用。 它由两个组件组成:ZPN 客户端(用于管理模块的 CLI)和注册表(模块和元信息的数据库)。 我们可以使用 ZPM 来搜索、安装、升级、移除和发布模块。 使用 ZPM,可以安装 ObjectScript 类、前端应用程序、互操作性生产环境、IRIS BI 解决方案、IRIS 数据集或任何文件,例如嵌入式 Python wheel。

今天的这份实战宝典将分为 3 个部分:

  1. 安装 ZPM
  2. 生成模块
  3. 在注册表中查找、安装、发布模块
1 0
0 59
文章
· 五月 17 阅读大约需 12 分钟
IRIS, Caché监控指导 - 指标监控(1)

Caché, IRIS在系统产生了最严重的问题时会产生错误信息并通知客户,但这并不足够。一是客户需要更多更灵活的通知消息,二是客户通常会有第3方的监控系统,因此得到Cache, IRIS的监控指标是必须的。

在所有的指标中,用户最关心的是以下几类:

  • 硬件资源的使用,CPU, 内存, IO性能
  • 数据库使用的硬盘的占用
  • Cache, IRIS Journal的硬盘占有
  • Mirror的状态
  • License的使用情况
  • Caché的性能指标

除此之外,第3方监控系统还需要获得Caché的一些系统信息,比如版本,instance名字等等。

指标的获得

有以下几个获得指标的方法

1. 系统仪表板及其Web服务

Caché的系统仪表板显示的数据包括:系统性能;系统运行状态 (运行时间,上一次备份,数据库,Journal状况等; 事务和进程情况;软件许可使用情况;任务,ECP等,还有就是错误和警告的数量。

0 0
0 59
文章
· 九月 21, 2022 阅读大约需 2 分钟
Production 中调用 web service 组件时有关超时参数的设置

我在这里和大家分享下在 Interoperability 的接口开发中,调用Web Service接口的几个超时参数的设置经验。

赶时间的同学可以直接拉到文章最下面看结论就好。

1.实验过程

首先我设计了一个Web service的服务器端,强制在接收到请求后 8s 返回结果。

在客户端我设置了响应超时7s, 重试间隔5s, 故障超时23s,如图:

在客户端、服务器端均设置了SOAP Log 记录接收和发送的内容

1 1
0 58

下载网址:

https://hub.docker.com/r/yape/yape/

$ docker container run --rm -v "$(pwd)":/data yape/yape --version
yape 2.2.6
 

在以下网址查看自述文件:

https://github.com/murrayo/yape

更改包括:

  • 恢复配置文件,进行了更多更改使 x 和 y 轴更智能。
  • 更新了配置文件中的线条样式选择。
  • 解决了 yyyy 日期和 yy 日期或退出的问题。 使窗口标题的日期字符串一致(去掉小数位),在标题中添加短日期。
  • 提高了 y 轴上小于 10 的值的小数精度,例如 Windows 每次读取时间为秒,而不是 linux 中的毫秒
  • 更新 Python 库后的一些小错误修复。

现在,GitHub 和容器保持同步。

0 0
0 58
文章
· 四月 7, 2022 阅读大约需 6 分钟
谈谈InterSystems IRIS数据平台的部署灵活性与TCO降低

众所周知,InterSystems IRIS的产品设计理念源于互操作性(Interoperable)、稳定性(Reliable)、直观(Intuitive)、可扩展性(Scalable),在云时代,InterSystems IRIS的云上操作与本地一样便捷,令用户体验有了明显提升,除此之外,为了更高效地对InterSystems IRIS进行配置,我们还提供了哪些新特性?为了便捷地进行数据迁移,InterSystems IRIS最新版本提供了哪些解决方案?

0 0
0 57
文章
· 二月 6, 2021 阅读大约需 10 分钟
InterSystems:技术支持和 DBMS 互操作性管理解决方案

在本文中,我们将讨论一个我每天都会使用的应用程序,当监控 InterSystems IRIS 平台上的应用程序和集成解决方案并查找所发生的错误时,我就会用到它。

在查找用来记录 InterSystems IRIS、Ensemble 和 Caché DBMS 中对象变化的解决方案时,我发现了一篇关于使用宏进行日志记录的好文章。 受到该文章的启发,我对其介绍的项目进行了分叉,并做了相应调整以满足一些特定需求。 生成的解决方案以面板子类 %CSP.Util.Pane 的形式实现,它具有主命令窗口、“Run”(运行)按钮和已启用的命令配置。

该应用程序允许查看和编辑 global 数组、执行查询(包括 JDBC 和 ODBC)、通过电子邮件发送搜索结果(压缩的 XLS 文件)、查看和编辑对象,以及用几个简单图表来表示系统协议。

1 0
0 57