嗨,开发者们, 

你准备好迎接新的挑战了吗? 我们很高兴地宣布第一届InterSystems技术文章写作比赛:

🏆 InterSystems技术文章写作大赛 🏆

从2021年7月15日至8月15日,写一篇与InterSystems技术有关的任何主题的文章!

每个人都有奖品: 在此期间,每个在DC上发表文章的人都将获得一个特别的奖品包!

大奖: Apple iPad

参加我们的新比赛,你的内容将被超过55K的月度读者看到! 详情如下。

00
0 0 60

        2021年7月9日-11日,2021(16th) 中国卫生信息技术/健康医疗大数据应用交流大会暨软硬件与健康医疗产品展览会(CHITEC)在武汉国际博览中心(湖北省武汉市汉阳区鹦鹉大道619号)盛大召开,欢迎莅临InterSystems展位A6-16,了解备受瞩目的InterSystems互联互通基础架构

00
1 1 171

InterSystems非常高兴地宣布,InterSystems IRIS数据平台、InterSystems IRIS for Health和HealthShare Health Connect的2021.1版本现已向我们的客户和合作伙伴全面开放。

这个版本的为开发者提供了更大的自由度,使他们可以用自己选择的编程语言在服务器端和客户端建立快速和强大的应用程序。这个版本还使用户能够通过新的和更快的分析能力更有效地消费大量的信息。

00
0 0 21
文章
Hao Ma · 五月 31 阅读大约需 6 分钟
HealthConnect中创建HTTP服务

HealthConnect中创建HTTP服务端

这里我说说怎么在HealthConnect上开发HTTP服务。

作为消息引擎,HealthConnect会需要从一个接口接收HTTP请求发送到另一个接口,中间做消息转换,路由等等,目的的接口可能是HTTP,或者SOAP,REST等等。这里只介绍HTTP服务的内容,也就是最简单的两种实现:

第一种:实现客户定制的HTTP服务业务服务组件(Business Servie)

创建Business Service类,继承EnsLib.HTTP.Service, 如下面的示例:

00
0 0 32

Hi 亲爱的社区开发者们,福利来了!

在Global Masters,我们为 Expert, Ambassador and VIP levels(专家级、大使级和VIP级)的用户提供了更多奖励!

Apple AirPods

 

希望你们喜欢新奖品!

此外,你可以在奖励列表中看到"解锁获奖" 项目,根据提示完成相应目标后,便可解锁并申请奖品。

10
0 2 34

 

InterSystems IRIS/Caché的CDC

InterSystems IRIS/Caché未提供开箱即用的变更数据捕获(CDC)工具,而且由于其多模型建模能力和底层的多维存储模型,相对于关系型数据库的单一模型,针对于SQL的CDC在InterSystems IRIS/Caché上会更复杂一些。例如通过Journal日志记录的是底层持久化多维数组的数据变更,而不是SQL table的变更。

通常,在应用层面实现变更数据捕获是更灵活和简单的方式,例如通过设置触发器、类的DSTIME参数。但如果无法在应用层做CDC,可以考虑使用InterSystems IRIS/Caché的Journal和强大的开发能力获取数据变更。

这里介绍使用InterSystems IRIS/Caché的Reporting类型的异步镜像成员获取数据变更。

00
0 0 82
文章
Louis Lu · 三月 12 阅读大约需 2 分钟
第 1 天:使用 InterSystems Object 和 SQL 进行开发

原文在这里

原作者YURI MARX GOME

我正在参加 Joel Solon 讲授的“使用 InterSystems Objects 和 SQL 进行开发”课程。 课程非常好,我将在这里分享一些从培训中总结的提示。

第 1 天的提示:

1. InterSystems IRIS 统一了:InterSystems IRIS Database (Caché)、IRIS Interoperability (Ensemble)、IRIS Business Intelligence (DeepSee) 和 IRIS Text Analytics (iKnow)。

2. IRIS 为多模型:对象、关系、文档和多维。

00
0 0 39
文章
Jeff Liu · 二月 5 阅读大约需 5 分钟
使用VSCode 进行IRIS 开发

 

VSCode 是目前很流行的一款免费开发工具,IRIS也支持使用其进行连接和开发,相比Studio 只能在windows 环境使用,Vscode 可以跨平台使用。

我们传统的工具Studio 是连接代码服务器的形式,不能便捷的使用目前流行的有本地代码的版本控制工具(如git),但VSCode可以存在本地代码,并且能方便的使用各类存在本地代码的版本控制工具。

20
0 0 63
文章
Hao Ma · 一月 30 阅读大约需 6 分钟
WebGateway系列(1): Web Gateway介绍

本文介绍InterSystems Web Gateway的安装和配置。

在2018以前的ISC产品中, InterSystems Web Gateway被称为CSP Gateway。, CSP是Cache'的页面技术。InterSystems的产品页面,Web服务等大多是CSP写成的。IRIS发布后CSP Gateway改名成Web Gateway, 但内部的配置文件,说明等等还到处可见CSP Gateway的叫法。在本文里不同的地方有这两个说法别奇怪,他们是一个东西。
IRIS通过它和外部Web服务器连接。 本文的内容适用任何ISC产品的部署,包括页面的选项Cache'. IRIS,HealthConnect, Ensemble等等。它的作用和表现是一样的。 无论您使用的是Cache',IRIS , HealthConnect还是HealthShare, 只有在生产环境中使用HTTP请求,基本上都需要使用Web Gateway。

00
0 0 77
文章
Nicky Zhu · 一月 8 阅读大约需 3 分钟
InterSystems 数据平台的容量规划和性能系列文章

索引

下文按顺序列出了数据平台上容量计划和性能系列中的所有帖子。 也列出了我的其他帖子。 我将随着该系列中新帖子的增加进行更新。


容量计划和性能系列

通常,每个帖子的内容都建立在上一个帖子的基础上,但您也可以直接浏览感兴趣的主题。

00
0 0 69
文章
姚 鑫 · 17 小时 前 阅读大约需 2 分钟
类关键字SoapBodyUse,SqlCategory,SqlRowIdName,SqlRowIdPrivate

第三十三章 类关键字 - SoapBodyUse

指定此类中定义的任何web method的编码。此关键字仅适用于web服务web客户端类。

用法

要指定此类的web method的输入和输出所使用的编码,请使用以下语法:

Class MyApp.MyClass [ SoapBodyUse = soapbodyuse ]  { //class members }

其中soapbodyuse是下列之一:

00
0 0 4

第二十九章 类关键字 - PropertyClass

向该类添加属性参数。

用法

要向该类添加属性参数,请使用以下语法:

Class PropClass.MyClass Extends %RegisteredObject [ PropertyClass = PropClass.MyPropertyClass ] { //class members }

其中·propertyclasslist·是下列之一:

[ PropertyClass = PropClass.MyPropertyClass ]
  • 用逗号分隔的类名列表,用括号括起来。

详情

如果需要添加自定义属性参数,请执行以下操作:

00
0 0 4

以下步骤展示如何显示 /api/monitor 服务提供的指标列表示例。

在上个帖子中,我概述了以 Prometheus 格式显示 IRIS 指标的服务。 该贴介绍了如何在容器中设置和运行 IRIS 预览版 2019.4,然后列出了指标。


本帖假定您已安装 Docker。 如果未安装,现在就为您的平台安装吧 :)


步骤 1. 下载并运行 docker 形式的 IRIS 预览版

按照预览发行版的下载说明下载预览版许可证密钥IRIS Docker 映像。 例如,我选择了 InterSystems IRIS for Health 2019.4

00
0 0 6
文章
姚 鑫 · 七月 26 阅读大约需 3 分钟
类关键字NoExtent,OdbcType,Owner,ProcedureBlock

 

# <center> 第二十五章 类关键字 - NoExtent

指定是否阻止编译器为此类生成继承类(如果不这样做的话)。

# 用法

要防止编译器为此类生成继承类,请使用以下语法:

```
Class MyApp.MyClass [ NoExtent ]  { //class members }
```

否则,省略此关键字或将单词`Not`放在关键字的前面。

# 详解

如果该关键字为真,则该类没有 `extent`。不能创建此类的实例。通常,这样的类会扩展或覆盖从`%Library.Persistent`继承的标准持久接口。

# 对子类的影响

此关键字不是继承的。

# 默认

如果省略此关键字,类可以有一个`extent`。

 

# <center> 第二十六章 类关键字 - OdbcType

指定通过`ODBC`或`JDBC`公开此数据类型时使用的类型。每个数据类型类都必须指定一个`ODBC`类型。此关键字仅适用于数据类型类。

# 用法

00
0 0 6

 

# <center> 第二十一章 类关键字 - Hidden

指定此类是否隐藏(未在类引用中列出)。

# 用法

要隐藏类,请使用以下语法:

```java
Class MyApp.Person [ Hidden ]  { //class members }
```
否则,省略此关键字或将单词Not放在关键字的前面。

# 详解

如果一个类是隐藏的,当使用Visual Studio代码的对象脚本扩展时,它不会在类引用中列出,也不会在studio检查器的工作区窗口中列出,也不会在对象脚本资源管理器窗格中列出。(但是,如果在“打开”对话框中键入该类的名称,或者在使用VS Code - ObjectScript时将其保存到本地工作区,仍然可以在Studio中打开该类。)

# 对子类的影响

此关键字不是继承的。

# 默认

如果省略此关键字,则该类不会被隐藏。

 

 

# <center> 第二十二章 类关键字 - Inheritance

指定此类的超类的继承顺序。

# 用法

00
0 0 7
文章
姚 鑫 · 七月 24 阅读大约需 2 分钟
类关键字DependsOn,Deprecated,Final,GeneratedBy

第十七章 类关键字 - DependsOn

指定此类应在编译器使其他(指定的)类可运行后编译。

用法

要指示类编译器应该在其他类可运行后编译此类,请使用以下语法:

Class MyApp.MyClass [ DependsOn = classlist ]  
{ //class members }

其中classlist是下列之一:

  • 类名
[ DependsOn = MyApp.Class1 ]
  • 用逗号分隔的类名列表,用括号括起来。
[ DependsOn = (MyApp.Class1,MyApp.Class2,...) ]

详情

此关键字指定类编译器应该在使指定的类可运行后编译此类。

如果此类的编译使用方法生成器逻辑中的这些其他类,则此关键字非常有用。如果类包含调用其他类的初始表达式,这也很有用。

00
0 0 7

 

# <center> 第十三章 类关键字 - ClientDataType

指定将此数据类型投影到客户端技术时使用的客户端数据类型。仅适用于数据类型类。

# 用法

要指定将此数据类型投影到客户端技术时要使用的客户端数据类型,请使用以下语法:
```java
Class MyApp.MyString [ ClientDataType = clienttype ]  
{ //class members }
```

其中clienttype是下列之一:

00
0 0 6

第九章 触发器定义

描述触发器定义的结构。

介绍

触发器是在SQL中发生特定事件时执行的代码段。InterSystems IRIS支持基于执行INSERTUPDATEDELETE命令的触发器。根据触发器定义,指定的代码将在相关命令执行之前或之后立即执行。每个事件可以有多个触发器,只要它们被分配了执行顺序。

可以向持久类添加触发器定义。它们在其他类中没有意义。

详情

触发器定义具有以下结构:

00
0 0 11

提示:本文包含在Java中通过JDBC Driver对Caché/IRIS数据库进行查询的示例代码。

近期有客户反应使用Java从老版本Caché中读取数据时,如果数据中包含long varchar, Caché数据库中与之对应的属性类型为%Stream.GlobalCharacter,即使实际上该流数据长度非常小,也会成十几倍的降低性能。

大家先来看一段代码, 

00
0 0 17

第五章 参数定义

描述参数定义的结构。

介绍

参数定义定义了一个给定类的所有对象都可用的常数值。创建类定义时(或在编译前的任何时候),可以设置其类参数的值。默认情况下,每个参数的值都是空字符串,但是可以在参数定义中指定一个非空值。在编译时,为类的所有实例建立参数值。除了极少数例外,该值不能在运行时更改。

详解

参数定义具有以下结构:

00
0 0 7
文章
姚 鑫 · 七月 20 阅读大约需 6 分钟
关键字类定义,外键定义,索引定义,方法定义

第一章 类定义

描述类定义的结构。

介绍

一个类可以包含熟悉的类元素,如属性、方法和参数(在其他类语言中称为常量)。它还可以包含通常不在类中定义的项,包括触发器、查询和索引。

详细

类定义具有以下结构:

Import import_ppackage_list  
Include include_code  
IncludeGenerator include_generator_code  

/// description 
Class package.shortclassname Extends superclass_list [ class_keyword_list ] 
{  
    Class_members
}
  • import_package_list(可选)指定类从中导入的任何包的名称。会影响编译器解析短类名的方式。

如果指定了此选项,则它可以是单个包的名称,也可以是多个包的逗号分隔列表,用括号括起来。

00
0 0 6
文章
姚 鑫 · 七月 18 阅读大约需 4 分钟
第七章 将文件内容复制到另外文件

第七章 将文件内容复制到另外文件

示例

本例显示了一个使用本文前面介绍的几个%Library.File方法的样例类。

在示例类Demo.FileDemo中,ProcessFile()方法接受输入文件和输出文件,并调用SetUpInputFile()SetUpOutputFile()打开文件,一个用于读取,另一个用于写入。然后,它逐行读取输入文件,并调用ProcessLine()对每行的内容执行一个或多个替换,将每行的新内容写入输出文件。

00
0 0 13