文章 姚 鑫 · 六月 12, 2021 阅读大约需 6 分钟 第五章 生成XML元素 第五章 生成XML元素 生成XML元素 如果使用RootElement()启动文档的根元素,则负责生成该根元素内的每个元素。有三个选择: 将对象生成为元素 可以从InterSystems IRIS对象生成输出作为元素。在本例中,使用object()方法,该方法写入支持XML的对象。输出包括该对象中包含的所有对象引用。可以指定此元素的名称,也可以使用在对象中定义的默认值。 只能在RootElement()和EndRootElement()方法之间使用object()方法。 此示例为给定启用XML的类的所有已保存实例生成输出: #Caché #InterSystems IRIS 0 0 0 90
文章 姚 鑫 · 六月 11, 2021 阅读大约需 4 分钟 第四章 添加命名空间声明 第四章 添加命名空间声明 添加命名空间声明 默认行为 在%XML.Writer会自动插入命名空间声明,生成命名空间前缀,并在适当的地方应用前缀。例如,以下类定义: Class Sample.Person Extends (%Persistent, %Populate, %XML.Adaptor) { Parameter NAMESPACE = "http://www.yaoxin.com"; } 如果导出此类的多个对象,则会看到类似以下内容: #Caché #InterSystems IRIS 0 0 0 111
文章 姚 鑫 · 六月 10, 2021 阅读大约需 4 分钟 第三章 指定输出的字符集 第三章 指定输出的字符集 指定输出的字符集 若要指定要在输出文档中使用的字符集,可以设置Writer实例的Charset属性。选项包括“UTF-8”、“UTF-16”以及InterSystems IRIS支持的其他字符集。 Writing the Prolog XML文件的序言(根元素之前的部分)可以包含文档类型声明、处理指令和注释。 影响Prolog的属性 在writer实例中,以下属性会影响prolog: Charset 控制两件事:XML声明中的字符集声明和(相应的)输出中使用的字符集编码。 NoXmlDeclaration 控制输出是否包含XML声明。在大多数情况下,默认值是0,这意味着已经编写了声明。如果没有指定字符集,并且输出定向到字符串或字符流,则默认为1,并且不写入任何声明。 #Caché #InterSystems IRIS 0 0 0 146
文章 姚 鑫 · 六月 9, 2021 阅读大约需 6 分钟 第二章 从对象写入XML输出 第二章 从对象写入XML输出 本章介绍如何从InterSystems IRIS对象生成XML输出。 创建XML编写器概述 InterSystems IRIS提供了用于为InterSystems IRIS对象生成XML输出的工具。可以指定XML投影的详细信息,如将对象投影到XML中所述。然后创建一个Writer方法,该方法指定XML输出的整体结构:字符编码、对象的显示顺序、是否包括处理指令等。 基本要求如下: 如果需要特定对象的输出,则该对象的类定义必须扩展%XML.Adaptor。除了少数例外,该对象引用的类还必须扩展%XML.Adaptor。 输出方法必须创建%XML.Writer的实例,然后使用该实例的方法。 下面的终端会话显示了一个简单的示例,在该示例中,我们访问启用了XML的对象并为其生成输出: #Caché #InterSystems IRIS 1 0 1 80
文章 姚 鑫 · 六月 8, 2021 阅读大约需 8 分钟 第一章 InterSystems XML工具简介 第一章 InterSystems XML工具简介 介绍了如何使用 IRIS XML工具。 InterSystems IRIS为XML处理带来了对象的力量--可以使用对象作为XML文档的直接表示,反之亦然。由于InterSystems IRIS包括本机对象数据库,因此可以将此类对象直接用于数据库。此外,InterSystems IRIS提供了用于处理XML文档和DOM(文档对象模型)的工具,即使它们与任何InterSystems IRIS类无关。 用XML表示对象数据 有些InterSystems IRIS XML工具主要用于支持XML的类。要为类启用XML,需要将%XML.Adaptor添加到其超类列表中。%XML.Adaptor类使能够将该类的实例表示为XML文档。可以添加类参数和属性参数来微调投影。 #XML #Caché #InterSystems IRIS 0 0 0 178
文章 Michael Lei · 六月 7, 2021 阅读大约需 1 分钟 翻译文章:用IRIS来建立数据服务Build a digital service with IRIS 这是一个系列的第一篇文章。我将使用bpmn符号提供细节,如何开发、部署、保护、运营和消费IRIS数字服务,并与IRIS文档相联系。每一个子流程都将用一个单独的bpmn图来描述。这就是宏观过程。 Documentation links: #InterSystems 业务解决方案和架构 #InterSystems IRIS 0 0 0 78
文章 姚 鑫 · 六月 5, 2021 阅读大约需 5 分钟 第七章 Caché JSON %JSON快速参考 第七章 Caché JSON %JSON快速参考 %JSON快速参考 本节提供本章中讨论的%JSON方法、属性和参数的快速参考。 %JSON.Adaptor方法 这些方法提供了从JSON序列化和序列化到JSON的能力。 %JSONExport() %JSON.Adaptor.%JSONExport()将启用JSON的类序列化为JSON文档,并将其写入当前设备。 #JSON #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 158
文章 姚 鑫 · 六月 5, 2021 阅读大约需 7 分钟 第六章 Caché JSON 使用JSON适配器 第六章 Caché JSON 使用JSON适配器 JSON适配器是一种将ObjectScript对象(registered, serial or persistent)映射到JSON文本或动态实体的方法。本章涵盖以下主题: #JSON #Caché #Ensemble #InterSystems IRIS 0 0 0 132
文章 Hao Ma · 六月 4, 2021 阅读大约需 3 分钟 JSON in IRIS (1) - Dynamic Object 之所以称为Dynamic,是说这个对象在代码编译的时候可以不定义对象的属性和结构,在runtime时才根据装入的数据来产生对象定义。IRIS里用Dynamic Object来处理JSON数据。简单说: 先定义一个Dynamic Object, 把JSON数据装进去,然后用对象的方式处理JSON文档。 让我们看看是它是怎么工作的。 创建一个Dynamic Object很简单, 标准而且啰嗦的写法是: set dynObject1 = ##class(%DynamicObject).%New() 大家通常用简单的写法,像这样用一个{}来定义Dynamic Object: #JSON #新手 #InterSystems IRIS 0 0 0 209
文章 姚 鑫 · 六月 3, 2021 阅读大约需 10 分钟 第十五章 Caché WebSocket 第十五章 Caché WebSocket 使用WebSockets (RFC 6455) web是围绕请求/响应范例构建的:客户机向服务器发送请求,服务器通过向客户机发送响应进行响应。此范式和HTTP本身不允许此通信协议的反向形式,即服务器与客户机启动请求/响应周期。已经开发了许多技术来解决了这个问题,即服务器可以启动与客户机的对话。这些技术通常被称为基于推送或 comet-based的技术,它们都存在不适合在web基础设施上进行全面部署的问题。目前使用的三种主要技术如下所述。 Short Polling 短轮询 使用这种技术,客户端定期发送HTTP请求来检测服务器状态的变化,服务器被编程为立即响应。空响应表示没有变化。 #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 85
文章 姚 鑫 · 六月 2, 2021 阅读大约需 2 分钟 第十四章 其他InterSystems %Net工具 第十四章 其他InterSystems %Net工具 下面是%Net中其他一些有用类的简短列表: %Net.URLParser InterSystems IRIS提供了一个实用程序类%Net.URLParser,可以使用它将URL字符串解析为其组成部分。例如,当您重定向HTTP请求时,这很有用。 该类包含一个类方法Parse(),它接受一个包含URL值的字符串,并通过引用返回一个包含URL各部分的数组。例如: #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 79
文章 姚 鑫 · 六月 1, 2021 阅读大约需 3 分钟 第十三章 使用SSH 第十三章 使用SSH %Net.SSH软件包支持SSH(安全外壳)通信。本主题简要介绍此包中的类。 创建SSH会话 %Net.SSH.Session表示SSH会话。要使用此类,请执行以下操作: 创建类的实例。 使用Connect()实例方法连接到服务器。 使用AuthenticateWithKeyPair()或AuthenticateWithUsername()向服务器验证身份。 使用%Net.SSH.Session的其他方法执行进出远程系统的单个文件的SCP(安全复制)操作、执行远程命令、传输TCP通信或执行SFTP操作。 例如,使用SFTP将会话用于SFTP操作。此方法通过引用返回可用于SFTP操作的%Net.SSH.SFTP实例。 #SSL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 103
文章 Michael Lei · 六月 1, 2021 阅读大约需 4 分钟 使用 InterSystems IRIS 实现 Data Fabric 架构 什么是 Data Fabric? “这是一套用于在公司中实施、管控、管理和执行数据操作的硬件基础架构、软件、工具和资源,功能包括跨所有数据存储平台的数据采集、转换、存储、分发、整合、复制、可用性、安全性、保护、灾难恢复、演示、分析、保存、保留、备份、恢复、归档、召回、删除、监视和容量规划,并可使应用程序的使用满足公司的数据需求”。 (Alan McSweeney) #InterSystems 业务解决方案和架构 #InterSystems IRIS 0 0 0 312
文章 姚 鑫 · 五月 31, 2021 阅读大约需 4 分钟 第十二章 IBM WebSphere MQ检索邮件 第十二章 IBM WebSphere MQ检索邮件 检索邮件 要检索邮件,请执行以下操作: 按照“创建连接对象”中的说明创建连接对象。在这种情况下,请创建%Net.MQRecv的实例。Connection对象有一个消息队列,可以从中检索消息。 根据需要调用以下方法: - %Get()-通过引用返回字符串消息作为第一个参数。 - %GetStream()-给定初始化的文件字符流,此方法从队列中检索消息,并将其放入与该流关联的文件中。请注意,必须设置流的Filename属性才能对其进行初始化。不支持二进制流。 #FTP #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 108
文章 Louis Lu · 五月 30, 2021 阅读大约需 7 分钟 如何保存、查询 List 类型数据 本文主要总结了在InterSystems IRIS 中如何保存、查询List类型数据 假设我们设计的对象中包含姓名,同时每个姓名下可以包含多个电话。我们可以使用下面方法进行处理。 1. 传统方式 我们可以把每一个姓名和电话放在不同列中。 Class Test.Person Extends %Persistent { Property Name As %String; Property Phone As %String; } 我们使用SQL语句插入数据: #InterSystems IRIS 0 0 0 139
文章 姚 鑫 · 五月 30, 2021 阅读大约需 8 分钟 第十一章 发送和接收IBM WebSphere MQ消息 第十一章 发送和接收IBM WebSphere MQ消息 InterSystems IRIS为IBM WebSphere MQ提供了一个接口,可以使用该接口在InterSystems IRIS和IBM WebSphere MQ的消息队列之间交换消息。要使用此接口,必须能够访问IBM WebSphere MQ服务器,并且IBM WebSphere MQ客户端必须与InterSystems IRIS在同一台计算机上运行。 该接口由%Net.MQSend和%Net.MQRecv类组成,这两个类都是%Net.abstractMQ的子类。这些类使用由InterSystems IRIS在所有合适的平台上自动安装的动态链接库。(这是Windows上的MQInterface.dll;其他平台的文件扩展名不同。)。反过来,InterSystems IRIS动态链接库需要IBM WebSphere MQ动态链接库。 该界面仅支持发送和接收文本数据,不支持二进制数据。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 294
文章 姚 鑫 · 五月 29, 2021 阅读大约需 4 分钟 第十章 使用FTP 第十章 使用FTP IRIS提供了一个类%Net.FtpSession,可以使用它从InterSystems IRIS内建立与FTP服务器的会话。 # 建立FTP会话 要建立FTP会话,请执行以下操作: #FTP #Caché #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 129
文章 姚 鑫 · 五月 28, 2021 阅读大约需 4 分钟 第九章 创建、编写和阅读MIME邮件 第九章 创建、编写和阅读MIME邮件 Iris提供了一个可以用于创建MultiPart Mime消息(%Net.MimePart)的类。创建要添加到SOAP消息的附件时,请使用此类;请参阅创建Web服务和Web客户端。因为MIME是一个常见的标准,所以有许多其他可能的应用程序,例如电子邮件处理和HTTP Multipart Post。 # MIME消息概述 MIME格式的文档被称为MIME部分。每个MIME部件都有标题,包含邮件正文(文本或二进制)或包含额外的MIME部件。具有MIME版本标题的MIME部分可以用作顶级文档,称为MIME消息。下图显示了示例: 在该示例中,E和F具有未显示的附加子部分。 要表示MIME部件,请使用 %Net.MIMEPart类,该类提供用于设置零件的标题和内容的属性。 # 创建MIME部分 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 97
文章 姚 鑫 · 五月 27, 2021 阅读大约需 5 分钟 第八章 处理收到的电子邮件 第八章 处理收到的电子邮件 处理收到的电子邮件 本节介绍如何处理通过%Net.POP3检索到的电子邮件(%Net.MailMessage)。 Message Basics 检索电子邮件(%Net.MailMessage)后,通常首先确定它是哪种类型的邮件以及如何阅读它;也就是说,它是否是多部分邮件以及各部分是否是二进制的。在此步骤中,您可以使用ContentType属性。或者,可以使用IsBinary、IsHTML和IsMultiPart属性,它们间接提供与contentType相同的信息。 如果消息是多部分消息,则每个部分都是%Net.MailMessagePart的一个实例。 Message Headers 消息本身和消息的每个部分都有一组标头。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 102
文章 姚 鑫 · 五月 26, 2021 阅读大约需 6 分钟 第七章 从POP3服务器提取电子邮件 第七章 从POP3服务器提取电子邮件 将附件另存为文件 Content-Disposition标头可以指定附件,可以带文件名,也可以不带文件名。例如: Content-Disposition: attachment; filename=genome.jpeg; 如果Content-Disposition标头确实指定了附件,则%Net.POP3实例可以将邮件中的所有附件保存到文件。要实现这一点,请执行以下操作: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 89
文章 姚 鑫 · 五月 25, 2021 阅读大约需 7 分钟 第六章 从POP3服务器提取电子邮件 第六章 从POP3服务器提取电子邮件 从POP3服务器提取电子邮件 与POP3服务器通信 如果拥有所需的权限,并且邮件服务器正在运行,则可以使用POP3协议从该服务器下载和处理电子邮件。通常,要与POP3服务器通信,请登录,执行一系列影响邮箱的操作,然后提交或回滚任何更改。要在系统间IRIS中执行此操作,请执行以下操作: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 89
文章 Michael Lei · 五月 24, 2021 阅读大约需 1 分钟 大数据平台的五个等级 作为一个软件架构师,如果要设计一个企业级的架构来满足当前的业务需求时,你需要达到5级的水平,这是一个巨大的挑战。有了InterSystems IRIS。这是有可能的。通过1个产品,你可以得到SQL + NoSQL + ESB + BI + Open Analytics + Real Time Virtual cubes + NLP + AutoML + ML(使用Python)和高级云支持 + Sharding支持。 #InterSystems 业务解决方案和架构 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 143
文章 姚 鑫 · 五月 24, 2021 阅读大约需 7 分钟 第五章 向邮件添加附件 第五章 向邮件添加附件 向邮件添加附件 可以将附件添加到电子邮件或消息部分(具体地说,是添加到%Net.MailMessagePart或%Net.MailMessage的实例)。要执行此操作,请使用以下方法: 这些方法中的每一种都会将附件添加到原始邮件(或邮件部分)的Parts数组中,并自动将IsMultiPart属性设置为1。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 72
文章 Michael Lei · 五月 24, 2021 阅读大约需 3 分钟 将 pButtons 数据提取到 csv 文件以便绘制图表 本帖的目的是回答一个问题。 在本系列的第二篇帖子中,我包括了从 pButtons 提取的性能数据的图表。 有人在线下问我,有没有比剪切/粘贴更快的方法从 pButtons .html文件中提取 mgstat 等指标,以便在 Excel 中绘图。 参见:- 第 2 部分 - 研究收集的指标 pButtons 将其收集的数据编译成一个 html 文件,以便发送给 WRC 和查看整理的数据。 不过,尤其是对于长时间(如 24 小时)进行收集的 pButtons 来说,一些基于时间的数据(如 mgstat、vmstat 等)以图形方式查看更容易查找趋势或模式。 #CSV #性能 #系统管理 #InterSystems IRIS 0 0 0 103
文章 Michael Lei · 五月 24, 2021 阅读大约需 2 分钟 InterSystems 最佳实践系列之数据平台和性能 - 第 6 部分 Caché 存储 IO 配置文件 我本人和其他技术架构师经常需要向客户和供应商说明 Caché IO 要求以及 Caché 应用程序使用存储系统的方式。 在向客户和供应商说明典型的 Caché IO 配置文件和事务性数据库应用程序的要求时,下面的表格很有用。 原始表格由 Mark Bolinsky 创建。 在以后的帖子中,我将讨论更多关于存储 IO 的内容,所以现在贴上这些表格也作为将来文章的参考。 #InterSystems 业务解决方案和架构 #性能 #系统管理 #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 123
文章 Michael Lei · 五月 24, 2021 阅读大约需 7 分钟 InterSystems 数据平台和性能 – 第 1 篇 您的应用程序已部署,一切运行正常。 很好,击个掌! 然后电话突然响个不停 – 用户投诉应用程序有时很“慢”。 这是什么意思? 有时? 您有哪些工具,查找和解决这个缓慢问题应查看哪些统计数据? 您的系统基础架构是否能承担用户负载的任务? 在投入生产之前,应该询问哪些基础架构设计问题? 如何自信地为新硬件规划容量,而不会过度规定? 如何停止电话铃声? 如何一开始就不让它响? #InterSystems 业务解决方案和架构 #性能 #系统管理 #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 183
文章 姚 鑫 · 五月 23, 2021 阅读大约需 7 分钟 第四章 收发电子邮件 第四章 收发电子邮件 本主题描述如何使用InterSystems IRIS发送和接收MIME电子邮件消息。 注意:本主题中的示例是经过组织的,因此管理电子邮件的方法可以用于不同的电子邮件服务器,这在测试和演示期间非常有用。这不一定是最适合生产需要的代码组织。 支持电子邮件协议 电子邮件使用标准协议通过Internet发送消息。 InterSystems IRIS支持以下三种协议: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 69
文章 姚 鑫 · 五月 23, 2021 阅读大约需 6 分钟 第三章 发送HTTP请求 第三章 发送HTTP请求 发送HTTP请求 创建HTTP请求后,使用以下方法之一发送该请求: Delete() method Delete(location As %String = "", test As %Integer = 0, reset As %Boolean = 1) as %Status 发出HTTP DELETE请求。 Get() method Get(location As %String = "", test As %Integer = 0, reset As %Boolean = 1) as %Status 发出HTTP GET请求。此方法使Web服务器返回请求的页面。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 109
文章 姚 鑫 · 五月 21, 2021 阅读大约需 6 分钟 第二章 设置和获取HTTP标头 第二章 设置和获取HTTP标头 设置和获取HTTP标头 可以设置和获取HTTP标头的值。 %Net.HttpRequest的以下每个属性都包含具有相应名称的HTTP标头的值。如果不设置这些属性,则会自动计算它们: #.NET #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 169
文章 Nicky Zhu · 五月 20, 2021 阅读大约需 7 分钟 互操作消息统一管理系列:SearchTable加速检索 在上一篇文章《互操作消息统一管理系列:Message Bank》中,我们了解到在Message Bank中,消息均以半结构化(XML)或非结构化(Stream)的形式保存,因此无法与客户端的结构化消息一样,直接支持基于索引的检索。为此,需要在Message Bank中定义Search Table以支持查询。关于Search Table的定义和作用,请查阅https://docs.intersystems.com/healthconnectlatest/csp/docbook/DocBook.UI...。 #API #InterSystems 业务解决方案和架构 #互操作性 #企业消息库 #消息搜索 #监视 #系统管理 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 151