你好,开发者!

你们中的许多人在 Open Exchange 和 Github 上发布了 InterSystems ObjectScript 库。

但对于开发者来说,如何简化项目的使用和协作呢?

在本文中,我想介绍一种简单方法,只需将一组标准文件复制到你的仓库中,就可以启动任何 ObjectScript 项目和对其做出贡献。

我们开始吧!

0 0
0 154

开发者们现在可以下载一套InterSystems ObjectScript扩展插件,并开始使用微软的Visual Studio Code IDE编写应用程序。我们培训部门的新VS Code资源指南提供了大量开发人员入门需要的内容,包括:

连接到InterSystems实例:安装和使用VS Code的ObjectScript扩展
VS Code开发应用程序文档:
使用开源社区。
播客集: 在VS代码中编写ObjectScript (20m)
开发者社区文章。如何报告问题
Github Repository。InterSystems语言服务器
Github Repository。InterSystems服务器管理器
Github Repository。VS代码的InterSystems ObjectScript扩展
了解IDE。
微软文档。Visual Studio代码 - 入门
微软视频。Visual Studio代码入门 (5m)

0 0
0 147
文章
· 十二月 23, 2021 阅读大约需 6 分钟
在大学使用IRIS(一项有趣的任务)

正如你在我的简介中看到的,我在一所大学教书,我想分享我对IRIS(或之前的Caché)教学的看法。

已经有一段时间了,但我还记得在今年早些时候看到YURI MARX GOMES关于 "用InterSystems对象和SQL开发 "一系列课程。他对第1天第2天第3天的课程内容进行了简要的描述,并附有讲师Joel Solon的评论。我心想,分享我自己的经验可能会有趣。

0 1
0 144
文章
· 十二月 29, 2021 阅读大约需 5 分钟
ObjectScript数据类型 - 日期

$HOROLOG($H)

表示当前的本地日期和时间,是由两个整数值组成的字符串,这些整数是计数器,是InterSystems IRIS存储格式,不是用户可读的日期和时间。

ddddd,sssss

代码示例:

w $H,!
 
北京时间2021年12月29日15:15:30时,输出结果为:
 
66107,54930
0 0
0 143

可以使用%SYS.Journal.File类中的ByTimeReverseOrder查询,以及%SYS.Journal.Record类中的List查询来实现。

下面是这两个查询的具体作用:

A) %SYS.Journal.File类中的ByTimeReverseOrder查询
这个查询会获取journal日志文件名并按降序排列

1 0
1 143
文章
· 二月 1, 2021 阅读大约需 1 分钟
如何在帖子中突出显示 ObjectScript?

Hi大家好!

有时您需要在帖子中放入带格式的 ObjectScript。

为此,请将代码放入编辑器,将其选中,然后点击 ObjectScript 按钮。

在保存/预览帖子后,代码将突出显示为 ObjectScript。

请参见下面的 gif:

如果您使用 Markdown 编辑器,将代码放入两个标签的范围内就可以突出显示 ObjectScript:

<pre><code> .... 您的代码... </code></pre>

0 0
0 136

我们需要调整%GlobalBinaryStream中已经存在的图像的大小以创建缩略图。

还要求使用该方法来调整上载的新图像的大小。

有人对此有解决方案吗?

How to resize an Image in classmethod

We need to resize existing images already in %GlobalBinaryStream to create thumbnails.

The requirement is also to use the method to resize new images that are uploaded.

0 0
0 130
文章
· 一月 19, 2023 阅读大约需 6 分钟
介绍使用嵌入式 Python 进行 Web 抓取

什么是网页抓取:

简单来说,网络抓取网络收获网络数据提取是从网站收集大数据(非结构化)的自动化过程。用户可以根据需要提取特定站点上的所有数据或特定数据。收集的数据可以以结构化格式存储以供进一步分析。

什么是网页抓取? — 詹姆斯·勒

网页抓取涉及的步骤:

  1. 找到您要抓取的网页的 URL
  2. 通过检查选择特定元素
  3. 编写代码获取被选元素的内容
  4. 以需要的格式存储数据

就这么简单!

0 0
0 129
文章
· 八月 9, 2022 阅读大约需 23 分钟
社区文章汇总--跟着社区学习InterSystems 技术

在这篇文章中,你可以访问InterSystems开发者社区中与学习InterSystems IRIS最相关主题的文章库。找到按机器学习、嵌入式Python、JSON、API和REST应用、管理和配置InterSystems环境、Docker和云、VSCode、SQL、分析/BI、全局、安全、DevOps、互操作性、Native API排列的顶级发表的文章。快来享受学习的乐趣吧!

机器学习

机器学习是建立先进的数据分析和自动化人工活动的一种必要的技术,具有很好的效率。它可以创建认知模型,从现有的数据中学习,并根据其自我调整的算法进行预测、概率计算、分类、识别和 "非创造性 "的人类活动的自动化。

在所有情况下,InterSystems IRIS作为一个数据平台和环境来创建、执行、提供和使用这些机器学习模型。IRIS能够从SQL命令(IntegratedML)中使用ML,使用嵌入式Python和PMML(预测模型标记语言)来执行ML。你可以在以下文章中查看它的功能:

0 1
0 126
文章
· 六月 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 122
文章
· 五月 23, 2022 阅读大约需 1 分钟
SQL Debug 小技巧

大家是不是经常遇到以下情况:

  • 系统有 bug 但是无法在本地复现
  • 你需要在受影响的实例中运行几行代码
  • 能完整访问系统管理门户,但是没有终端或者管理控制台, 也不能访问 Studio, Atelier 或者 VSCode
  • 你要怎么运行你的几行代码来测试???

0 0
0 120
文章
· 三月 23, 2023 阅读大约需 24 分钟
中高级开发者教程:通用查询解决方案

简介

什么是Query

Query是一种查询方法,用于查找满足条件的数据,将结果以数据集的形式展现出来。

Query类别

  • SQL Query,使用类 %SQLQuerySQL SELECT 语句。
  • 自定义Query,使用类 %Query 和自定义逻辑生成查询数据。

说明:在讲通用Query解决方案之前,我们先了解一下Query的基础和基础使用,有助于理解实现原理。如果读者了解Query基本使用,可跳过此章节,直接阅读“现状”。

2 0
0 115
文章
· 四月 19, 2022 阅读大约需 13 分钟
用Caché ObjectScript 生成EXCEL

有很多方法可以使用Intersystems生成excel文件,其中一些是ZEN报告、IRIS报告(Logi报告或正式称为JReports),或者我们可以使用第三方Java库,可能性几乎是无限的。

但是,如果你想只用Caché ObjectScript创建一个简单的电子表格呢?(没有第三方应用程序)

在我的案例中,我需要生成包含大量原始数据的报告(财务人员喜欢这些数据),但是我的ZEN/IRIS失败了,给了我一个我想称之为 "零字节的文件",基本上说java的内存用完了,并导致报告服务器上的重载。

这可以用Office Open XML(OOXML)来完成。Office Open XML格式是由一个ZIP包内的一些XML文件组成的。因此,基本上我们需要生成这些XML文件,并将其压缩重命名为.xslx。就这么简单。

这些文件遵循一套简单的惯例,称为开放包装惯例。你需要声明各部分的内容类型,以及告诉消费应用程序应该从哪里开始。

为了创建一个简单的电子表格,我们至少需要5个文件。

0 0
0 115
文章
· 六月 26, 2022 阅读大约需 5 分钟
跟踪数据更改 - 审计日志 - 下篇

前一篇文章中,我已经演示了一种简单的方法来记录数据的变化。在这个时候,我改变了负责记录审计数据的 "审计抽象类 "和记录审计日志的数据结构。

我已经将数据结构改为父子结构,其中将有两个表来记录 "交易 "和在该交易中改变的 "字段的值"。

看一下新的数据模型:

看看从 "审计类 "改变的代码吧:

0 0
0 114
文章
· 三月 2, 2023 阅读大约需 4 分钟
基于IRIS的Python实践与示例

在这里,您将找到一个在 IRIS 环境中使用 Python 的简单程序,以及另一个在 Python 环境中使用 ObjectScript 的简单程序。另外,我想分享一些我在学习实践时遇到的麻烦。

IRIS 环境中的 Python

比方说,您在 IRIS 环境中想要解决一个您认为使用 Python 更容易或更有效的问题。

您可以简单地更改环境:像创建任何其他方法一样创建您的方法,并在其名称和规范的末尾添加 [Language = python]:

您可以在该方法中使用任何类型的参数,并且要访问它们,您可以执行与在 COS 中完全相同的操作:

假设您有这个 %String 参数 Arg 和一个来自自定义类的参数 OtherArg。这个其他类可能具有标题和作者等属性。您希望像这样访问:

0 0
0 112
我需要在当前命名空间下创建一系列的只读类,并限制除_system之外的所有用户都只有读取权限,无法在studio中编译,请问我应该如何操作呢?
我的目的是可以在工程的项目分支中管理这些类,并通过发布方式持续升级这部分类文件。
但是这些类的内部逻辑有可能会需要维护人员能够知晓其中的功能和实现方式,所以不能通过MakeDeployed来解决这个问题
我现在知道可以通过设置database的读写属性来解决这个问题,但是这样就需要额外新建一个database并maping到当前命名空间下。采取这种方式处理时有一个重大的缺点,即在执行代码发布过程中,需要停库,并且停库时间可能会在半个小时左右,这个我无法接受。
0 1
0 110

我有一个SQL查询,我想使用SQL外向适配器从Caché Ensemble针对MS SQL运行。如果我直接从MS SQL Studio运行此查询,则最多需要7秒钟的时间,并返回大约50万行。该行仅包含一列,它是一个大小均相同的数字,如果我在Ensemble生产环境中运行此查询,它将一直运行但不会返回响应。同样的查询在Enssemble环境外的caché中运行,将结果写入文件,返回的结果大约需要3分钟完成。但是如果我把结果加载到一个列表或记录图(Record Map)中,它就会一直运行下去。 能加载到记录图或列表中的数据行数是否有限制,是什么原因导致了这种情况的发生?这个查询所返回的文件大约是5.7MB。

SQL ODBC Connection query running longer than expected

0 0
0 109
文章
· 一月 15, 2021 阅读大约需 2 分钟
npm-iris概览

什么是npm-iris?

NPM是“No Project Mess(项目不乱)”的缩写。

NPM是使用Intersystems IRIS和Bootstrp 4建成的项目和任务管理应用程序。

NPM的创建初衷是通过一个简单直观的项目和任务管理软件,帮助开发者和小型商业公司降低日常问题的复杂度。

它能提供不同的任务视图,包括电子表格、看板、日历,甚至甘特图!

0 0
0 100

嗨,社区,

我正在尝试访问对象的另一个进程的内容,例如%request和%session。我正在使用类/方法“%SYS.ProcessQuery:VariableByPid”。有谁知道如何从数据库服务器上运行的一个进程中获取诸如%request.Data(“ ID”,1)之类的属性的值?

我想做的例子:

set rs=##class(%ResultSet).%New("%SYS.ProcessQuery:VariableByPid")
set tsc=rs.Execute(ProcessID,"%request")
while rs.%Next() {
w "Name:"_$g(rs.Data("Name")),!
w "Value:"_$g(rs.Data("Value")),!
}
do rs.Close()

Output:

Name:%request
Value:1@%CSP.Request

0 1
0 98