検索

お知らせ
· 2025年11月7日

[Video] Document Server: Improving Performance While Reducing Stored Data

Hey Community!

We're happy to share a new video from our InterSystems Developers YouTube:

⏯  Document Server: Improving Performance While Reducing Stored Data @ Ready 2025
 

The presentation introduces the upcoming Document Server feature for InterSystems Cloud Document, a schemaless JSON database with SQL access. The new system uses two key innovations: Pack Vector Array (PVA): a compact, binary format for fast and efficient storage and retrieval and Common Key Map, which stores shared field names only once across similar documents. Together, these features significantly reduce storage size (up to 90% for deeply nested data) and improve query performance by enabling direct field access and faster indexing. This approach is especially useful for large, flexible datasets like medical records, offering both speed and efficiency in cloud document storage.

🗣 Presenter: Yiwen Huang, Data Platforms

Enjoy watching, and subscribe for more videos! 👍

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
記事
· 2025年11月7日 8m read

Understanding SQL Window Functions (Part 1)

Window functions in InterSystems IRIS let you perform powerful analytics — like running totals, rankings, and moving averages — directly in SQL.
They operate over a "window" of rows related to the current row, without collapsing results like GROUP BY.
This means you can write cleaner, faster, and more maintainable queries — no loops, no joins, no temp tables.

In this article let's understand the mechanics of window functions by addressing some common data analisys tasks.

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
質問
· 2025年11月7日

Try catch throwing error not actually throwing error to DTL in test or when run via router

Trying to check date in DTL. 

Want to throw a custom error not the default one from the $ZDTH. It does in the try as will write "Error" when testing the DTL but the actual error not showing. Report errors is turned on.  I also tried the THROW logic from best practices but that doesn't work either. $SYSTEM.Status.DisplayError(status) does display what the error should be returned. 

 try 
 {
    set tDateH = $ZDATEH(tDateofDeath, 8)
 }
 catch ex 
 { 
  w "error"
 set status = $$$ERROR($$$GeneralError,"Custom error message")
 do $SYSTEM.Status.DisplayError(status)
 do $System.Status.DecomposeStatus(status)  
    quit  
 }
5 Comments
ディスカッション (5)3
続けるにはログインするか新規登録を行ってください
お知らせ
· 2025年11月7日

Concours InterSystems « Réalisation des idées » 2025

Bonjour les développeurs,

Suite au succès retentissant du concours de l'année dernière, nous avons décidé de le renouveler. Bienvenue au

🏆 Concours « Réalisation des idées » 🏆

Soumettez une application mettant en œuvre une idée issue du portail InterSystems Ideas, ayant le statut Community Opportunity ou Future Consideration, créée avant la publication de cette annonce et nécessitant une programmation 😉

Durée : 17 novembre - 14 décembre 2025

Prix : $12,000$


Le sujet

Dans ce concours, nous attendons des applications qui mettent en œuvre n'importe quelle idée de votre choix issue du portail d'idées InterSystems et dont le statut est Opportunité communautaire ou Considération future, créée avant la publication de cette annonce.

Exigences générales :

  1. L'application ou la bibliothèque doit être entièrement fonctionnelle et originale. Il ne peut s'agir d'une simple importation ni d'une interface directe avec une bibliothèque existante écrite dans un autre langage (à l'exception du C++, où la création d'une interface IRIS nécessite un travail important). Elle ne doit pas être un copier-coller d'un projet existant ni inclure de code propriétaire. Elle ne peut pas utiliser les résultats de la rétro-ingénierie des produits d'InterSystems ni ceux de toute autre société. Veuillez consulter nos Conditions d'utilisation.
  2. Applications acceptées : nouvelles applications Open Exchange. Notre équipe examinera toutes les candidatures avant de les approuver pour le concours.
  3. L'application doit fonctionner soit sur IRIS Community Edition, soit sur IRIS for Health Community Edition. Les deux peuvent être téléchargés en tant que versions hôtes (Mac, Windows) à partir du site d'évaluation, ou peuvent être utilisés sous la forme de conteneurs extraits d'InterSystems Container Registry ou de Community Containers : intersystemsdc/iris-community:latest ou intersystemsdc/irishealth-community:latest .
  4. L'application doit être Open Source et publiée sur GitHub u GitLab.
  5. Le fichier README de l'application doit être en anglais, contenir le lien pour l'idée, les étapes d'installation, et soit la vidéo de démonstration ou/et une description du fonctionnement de l'application.
  6. Pas plus de 3 soumissions d’un développeur sont autorisées.

N.B. Nos experts auront le dernier mot quant à l'approbation ou non de la candidature au concours en fonction des critères de complexité et d'utilité. Leur décision est définitive et sans appel.

Prix ​​du concours :

1. Nomination des experts – les gagnants seront sélectionnés par l'équipe d'experts d'InterSystems :

🥇 1ère place - $5,000
🥈 2e place - $2,500
🥉 3e place - $1,000
🏅 4e place - $500
🏅 5e place - $300
🌟 6-10e places - $100

2. Gagnants de la communauté – candidatures qui recevront le plus de votes au total :

🥇 1ère place - $1,000 
🥈 2e place - $600
🥉 3e place - $300
🏅 4e place - $200
🏅 5e place - $100

❗ Si plusieurs participants obtiennent le même nombre de votes, ils sont tous déclarés gagnants et le prix est partagé entre eux.

❗ Les prix en espèces ne sont attribués qu'aux personnes pouvant justifier de leur identité. En cas de doute, les organisateurs contacteront le ou les participants pour obtenir des informations complémentaires.

 

Qui peut participer ?

Tout membre de la communauté de développeurs, à l'exception des employés d'InterSystems (sous-traitants ISC autorisés). Créer un compte !

Les développeurs peuvent s'associer pour créer une application collaborative. Autorisé de 2 à 5 développeurs dans une équipe.

N'oubliez pas de mettre en évidence les membres de votre équipe dans le README de votre application – profils d'utilisateurs DC.

Délais importants :

🛠 Phase de développement et d'inscription de l'application :

  • 17 novembre 2025 (00:00 EST): le concours commence.
  • 7 décembre 2025 (23:59 EST): la date limite de soumission.

 Période de vote:

  • 8 décembre 2025 (00:00 EST): le vote commence.
  • 14 décembre 2025 (23:59 EST): le vote se termine.

Remarque : Les développeurs peuvent améliorer leurs applications tout au long de la période d'inscription et de vote.

    Ressources utiles :

    ✓ Exemples d'applications et de bibliothèques :

    ✓ Modèles que nous vous suggérons de commencer par :

    ✓ Pour les débutants avec IRIS :

    ✓ Pour les débutants avec ObjectScript Package Manager (IPM) :

    ✓ Comment soumettre votre application au concours :

    Besoin d'aide ?

    Rejoignez la chaîne du concours sur le serveur Discord d'InterSystems ou discutez avec nous dans les commentaires de ce post.

    Nous avons hâte de voir vos projets! Bonne chance 👍


    En participant à ce concours, vous acceptez les conditions énoncées ici. Veuillez les lire attentivement avant de continuer.

     
     
    ディスカッション (0)1
    続けるにはログインするか新規登録を行ってください
    記事
    · 2025年11月6日 4m read

    现代且易用的VSCode插件:基于PlantUML的InterSystems ObjectScript类图可视化

    动机

    直到开始新工作,我才了解到ObjectScript。实际上,Objectscript并不是一种年轻的编程语言。与 C++、Java 和 Python 相比,它的社区并不活跃,但我们很想让这里更有活力,不是吗?

    我注意到,有些同事在理解大型项目中的类关系时感到棘手。目前还没有易于使用的现代化类图工具适用于ObjectScript。

    相关工作

    我尝试过相关的工作:

    ——InterSystems 类视图:
    1. https://github.com/intersystems-community/ClassExplorer
    这个工具很棒,类图显示清晰美观。但存在Docker构建问题:“#0 0.512 exec ./irissession.sh: no such file or directory”。我猜这是为Studio设计的支持功能,而非VSCode。它似乎需要手动导入项目,且需要一定配置才能使用。

    2. https://github.com/gjsjohnmurray/vscode-objectscript-class-view
    这是另一个给我带来灵感的伟大作品。类结构清晰,不仅支持项目中的类,也支持库中的类。但看起来像是VSCode大纲的增强版。

    ——其他语言的 VSCode 类图表视图插件

    1. https://github.com/OH318/J-Diagram
    自述文件很好地展示了使用 draw.io 的运行结果。但在本地测试时无法使用。所以我不会把它作为参考。

    2. https://github.com/pierre3/PlantUmlClassDiagramGenerator
    它相对较好,但需要一些配置。我的想法是先生成 uml,然后使用 PlantUML 生成类图。

    ——类图的最佳实现:
    1. JetBrains产品(如IntelliJ IDEA和PyCharm)的类图功能非常出色。只需拖放类、点击超链接,即可轻松生成强大的类图。

    2.VSCode typescript 类图插件
    https://marketplace.visualstudio.com/items?itemName=AlexShen.classdiagra...

    支持拖放、超链接点击、文件夹类图生成等功能。
    我借鉴了它们的设计思路。但遗憾的是,这些工具都是闭源的,因此我需要自行设计项目。

    InterSystems ObjectScript 类图视图

    是一个 Visual Studio Code 扩展,可从 InterSystems ObjectScript (.cls) 文件生成 UML 类图。它提供交互式可视化和导航功能,基于PlantUML进行可靠的图表渲染。

    主要功能

    • .cls 文件生成 UML 类图
    • 支持单个类和文件夹级图表生成
    • 在编辑器和资源管理器中集成右键上下文菜单
    • 可视化类关系、属性和方法
    • 基于 PlantUML 构建,可实现可靠的图表渲染
    • 使用 PlantUML Web 服务器生成图表(无需 Java)
    • 交互式类图浏览
      • 点击类名、属性或方法,快速跳转到相应的代码
      • 在 HTML 中嵌入 SVG 图表,实现流畅的交互
      • 类关系的可视化导航

    我在另一个伟大的 objectscript 项目apiPub上测试了该插件。

    我提供了两种模式:基于解析项目的本地文件系统或与虹膜集成生成类图。

    生成类图


    这种模式从本地项目解析类结构,不会生成库类的继承结构,也不能点击库类进入。

    对于单个类:

    文件夹

    整个项目类图采用 SVG 格式,始终清晰明了。

    通过 IRIS 集成生成类图

    该功能依赖于 InterSystems 插件,它将从所选类中生成所有类属性、参数和方法。值得注意的是,该功能会生成整个继承层次结构,即使是本地项目中不存在的类也不例外。

    在 VS Code 设置中配置 IRIS 连接:

    • 转到设置 > 扩展 > InterSystems ObjectScript 类图
    • 输入 IRIS 服务器主机、端口、命名空间、用户名和密码

    Configure IRIS Settings

    • 在编辑器中打开 .cls 文件
    • 右键单击并选择 "生成 InterSystems 类图“
    • 扩展程序将连接到 IRIS 服务器,并使用服务器上的类信息生成图表
    • 单击图表中的类名、属性或方法,可以:
    • 在 IRIS Documatic 中打开类
    • 在 IRIS 中查看属性定义
    • 浏览 IRIS 中的方法实现Generate InterSystems ObjectScript Class Diagram

    要求

    操作系统 需要 可选(用于本地生成 PlantUML)
    视窗 - VSCode 1.96.0+
    - ObjectScript 类文件(.cls)
    - Java 8+
    Linux - VSCode 1.96.0+
    - ObjectScript 类文件(.cls)
    - Java 8+
    - Graphviz

    使用方法

    • 打开 .cls 文件并使用以下方法生成类图:
      • Ctrl+Alt+U 快捷方式
      • 右键单击文件或文件夹,选择"生成类图
    • 点击图中的元素,跳转到类定义、属性和方法

    已知问题

    • 子类生成:缺少为当前类生成子类图的功能
    • 大型项目性能
      • 通过右键单击为大型文件夹生成图表时,可能会出现明显延迟
      • 为大型项目生成的网络视图/SVG 缺乏流畅的缩放功能和适当的缩放比例
    • IRIS Pwd 明文显示:密码不应显示为纯文本,此问题将在下一版本中修复。我没有存储连接信息,而且代码是开源的,所以您可以检查它是否安全。

    如有任何问题,请在 GitHub 代码库中报告。

    贡献与许可

    • 通过 GitHub贡献代码
    • 采用MIT许可协议

    您可以在应用市场上找到此插件,欢迎在issue 中提出问题,并通过PR 贡献代码。

    ディスカッション (0)1
    続けるにはログインするか新規登録を行ってください