#InterSystems IRIS

0 Abonnés · 756 Publications

InterSystems IRIS est une plateforme complète de données
InterSystems IRIS vous offre tout le nécessaire pour capturer, partager, comprendre et agir sur la ressource le plus précieuse de votre entreprise : vos données.
En tant que plateforme complète, InterSystems IRIS élimine la nécessité d'intégrer plusieurs technologies de développement. Les applications nécessitent moins de code, moins de ressources système et moins de maintenance.

Nouveau
Article Lorenzo Scalese · Fév 20 7m read

Introduction

La bibliothèque standard %Net.HttpRequest d'InterSystems IRIS est puissante et complète, mais elle peut s'avérer verbeuse pour des opérations simples. Écrire une requête HTTP nécessite souvent plusieurs lignes de code pour instancier la classe, configurer le serveur, le port, le HTTPS, ajouter des en-têtes, et enfin envoyer la requête.

Lors de tests en terminal, cette configuration devient vite trop lourde, et se termine généralement par la création de méthodes temporaires...

FastHTTP a été conçue pour répondre à ce besoin. Cette classe utilitaire propose une interface fluide et concise permettant d’effectuer des appels HTTP en une seule ligne, tout en gérant automatiquement la complexité sous-jacente (SSL/TLS, parsing d’URL, encodage JSON, headers, etc.).

0
0 5
Nouveau
Article Iryna Mykhailova · Fév 17 2m read

L'utilitaire Load Data est un excellent outil pour charger des données depuis des fichiers CSV/TXT dans une table SQL IRIS. Auparavant, il était nécessaire d'envoyer le fichier cible au serveur IRIS et d'y insérer la commande Load Data pour importer son contenu. Désormais, il est possible de sélectionner un fichier dans VS Code, de définir la table de destination et de soumettre la requête. L'utilitaire vscode-load-data enverra le fichier au serveur IRIS et exécutera la commande Load Data. C'est très simple !

0
0 6
Nouveau
Article Lorenzo Scalese · Fév 12 7m read

Table des matières

  1. Introduction
  2. Contrôle de version
  3. Exportation de classes
  4. Exportation de classes BI Analytics
  5. Exportation de globales

Introduction.

Dans cet article, nous aborderons une approche rapide du développement Git avec la Communauté de développeurs InterSystems et les pratiques de contrôle de version lorsqu'on utilise InterSystems IRIS. Nous traiterons des scénarios dans lesquels nous devons exporter des classes d'interopérabilité, des variables globales et des éléments d'analyse tels que des cubes et des tableaux de bord. Ces scénarios englobent les principales pratiques de contrôle de version avec IRIS.

Pour commencer, il vous faut:

  1. Vous inscrire et vous connecter à GitHub
  2. Être membre de l'organisation intersystems-community sur Git

Il est très simple de se lancer au moyen d'InterSystems IRIS!

0
0 18
Nouveau
InterSystems officiel Adeline Icard · Fév 11

Les versions de maintenance 2025.1.3 de la plateforme de données InterSystems IRIS®, d’InterSystems IRIS® for HealthTM et de HealthShare® Health Connect sont désormais disponibles en disponibilité générale (GA). Ces versions incluent des corrections pour un certain nombre d’alertes et d’avis récemment publiés, notamment :

0
0 15
Nouveau
Article Iryna Mykhailova · Fév 10 3m read

Lorsqu’on travaille avec InterSystems Interoperability (IRIS / Health Connect / Ensemble), les données de configuration sont souvent réparties entre de nombreux éléments de production : services, processus, opérations, adaptateurs et leurs paramètres.

Un besoin opérationnel ou de sécurité courant est de pouvoir répondre à des questions comme :

  • Quelles interfaces référencent des chemins du système de fichiers ?
  • Où sont configurés les répertoires, les partages réseau ou les chemins absolus ?
  • Puis-je auditer ou documenter rapidement ces informations sur l’ensemble de mes productions ?
0
0 14
Nouveau
InterSystems officiel Adeline Icard · Fév 9

Les troisièmes versions préliminaires pour développeurs de la plateforme de données InterSystems IRIS®, d'InterSystems IRIS® for Health et de HealthShare® Health Connect 2026.1 sont disponibles sur le site des versions préliminaires pour développeurs du WRC. Les conteneurs sont disponibles sur notre registre de conteneurs et portent l'étiquette « latest-preview ».

Ces versions préliminaires pour développeurs marquent la fin de la prise en charge des Mac Intel à partir de la version 2026.1.0 et le retour de la prise en charge de Windows Server 2019 dans la version 2026.1.0.

0
0 17
Article Sylvain Guilbaud · Fév 5 14m read

Dans cette dernière partie de notre présentation des fonctions de fenêtre, nous allons explorer les fonctions restantes qui n'ont pas encore été abordées. Vous découvrirez également des conseils de performance et un guide pratique pour vous aider à décider quand il convient (ou non) d'utiliser efficacement les fonctions de fenêtre.

1. Fonctions de valeur de décalage et de position

Aperçu

Les valeurs de référence de ces fonctions sont calculées à partir d'autres lignes par rapport à la ligne actuelle, ou elles sont extraites des première, dernière ou n-ième valeurs dans une fenêtre.

0
1 21
Article Sylvain Guilbaud · Jan 29 8m read

InterSystems IRIS offre de nombreuses options de sécurité configurables, mais beaucoup de développeurs utilisent surtout des rôles et des ressources pour sécuriser des tables ou des routines entières. Aujourd'hui, on va aller plus loin. On peut aussi sécuriser des colonnes et des lignes individuelles séparément, mais ces deux mécanismes fonctionnent très différemment. Commençons par les colonnes.

Sécurité des colonnes

À des fins de test et de démonstration, nous allons conserver une structure de table concise et simple. Nous avons une table appelée "Person" (Personne) dans l'espace de noms USER qui contient une colonne ID, une colonne date de naissance (DOB), et des colonnes prénom et nom. 

0
0 23
Article Guillaume Rongier · Jan 28 34m read

La sécurité est fondamentale pour le développement d'applications d'entreprise. InterSystems IRIS fournit un cadre de sécurité complet qui protège les données, contrôle l'accès et garantit la conformité. Ce guide présente les fonctionnalités de sécurité essentielles pour les développeurs novices dans IRIS, couvrant l'authentification, l'autorisation, le chiffrement et les stratégies de mise en œuvre pratiques.

0
0 23
Article Iryna Mykhailova · Jan 26 3m read

Pour générer un JWT à partir d'un certificat/clé X.509, toute opération (y compris la lecture) sur %SYS.X509Credentials requiert l'autorisation d'accès (U) à la ressource %Admin_Secure. Cette dernière est nécessaire car %SYS.X509Credentials est persistant ; cette implémentation vise à empêcher tout accès non autorisé aux clés privées.

Si la ressource %Admin_Secure n'est pas disponible lors de l'exécution, vous pouvez utiliser la solution de contournement suivante.

0
0 20
Article Iryna Mykhailova · Jan 23 2m read

J'ai rencontré à plusieurs reprises un cas où j'ai besoin d'utiliser un fichier/dossier temporaire et de le supprimer ultérieurement.

La solution la plus naturelle consiste alors à suivre les recommandations de "Robust Error Handling and Cleanup in ObjectScript" avec un bloc try/catch/pseudo-finally ou un objet enregistré pour gérer le nettoyage dans le destructeur. %Stream.File* possède également une propriété RemoveOnClose que vous pouvez définir, mais avec précaution, car vous pourriez supprimer accidentellement un fichier important. De plus, cette propriété est réinitialisée par les appels à %Save(), vous devrez donc la remettre à 1 après chaque utilisation.

Il existe cependant un cas particulier : supposons que vous ayez besoin que le fichier temporaire subsiste dans la pile d'exécution. Par exemple :

0
0 15
Article Sylvain Guilbaud · Jan 21 9m read

Introduction

Dans cet article, nous explorerons différentes approches permettant d'étendre et de personnaliser le comportement des routeurs de messages d'interopérabilité intégrés à InterSystems IRIS (et IRIS Health).

Les routeurs de messages remplissent l'une des fonctions essentielles de l'intégration d'applications d'entreprise (EAI) et font partie des processus métier les plus fréquemment utilisés dans les productions d'interopérabilité.

Après un bref aperçu des classes de routeurs de messages intégrés dans InterSystems IRIS et IRIS for Health, cet article expliquera comment améliorer leurs capacités afin d'obtenir des résultats spécifiques, sans avoir à développer un processus métier à partir de zéro.

Une mise en garde s'impose : la plupart de ces techniques impliquent de remplacer les méthodes de l'implémentation actuelle des classes de routeurs de messages dans IRIS Data Platform et IRIS for Health 2025.x. Elles peuvent ne pas s'appliquer à d'autres versions antérieures ou futures. 

Le référentiel GitHub qui accompagne cet article contient une collection d'exemples simples, minimalistes et volontairement abstraits illustrant les techniques abordées.

Nous vous invitons à nous faire part de vos avis, commentaires et retours constructifs!

0
0 23
Article Lorenzo Scalese · Jan 13 12m read

Les architectures de données modernes utilisent des solutions de capture, transformation, déplacement et chargement de données en temps réel pour construire des lacs de données, des entrepôts analytiques et des référentiels de big data. Cela permet l'analyse de données provenant de diverses sources sans impacter les opérations qui les utilisent. Pour y parvenir, il est essentiel d'établir un flux de données continu, évolutif, élastique et robuste. La méthode la plus répandue pour cela passe par la technique CDC (Change Data Capture). Le CDC surveille la production de petits ensembles de données, capture automatiquement ces données et les transmet à un ou plusieurs destinataires, y compris les référentiels de données analytiques. L'avantage majeur est l'élimination du délai J+1 dans l'analyse, car les données sont détectées à la source dès qu'elles sont produites, puis répliquées vers la destination.

Cet article démontrera les deux sources de données les plus courantes pour les scénarios CDC, à la fois comme source et comme destination. Pour la source de données (origine), nous explorerons le CDC dans les bases de données SQL et les fichiers CSV. Pour la destination des données, nous utiliserons une base de données en colonnes (un scénario typique de base de données analytique haute performance) et un topic Kafka (une approche standard pour le streaming de données vers le cloud et/ou vers plusieurs consommateurs de données en temps réel).

Aperçu

Cet article fournit un exemple pour le scénario d'interopérabilité suivant:

 

1
0 35
Article Iryna Mykhailova · Jan 12 2m read

Vous envoyez une requête HTTP et recevez une erreur HTTP, mais accompagnée d'une page d'erreur HTML inattendue… Que se passe-t-il ? 🤔

Par exemple, vous avez peut-être essayé de lire une ressource FHIR (par exemple, /Patient/123) et vous obtenez une erreur 404, alors qu'avec d'autres identifiants de patient, vous recevez bien la ressource. La page existe donc bel et bien… Pourquoi obtenez-vous une erreur 404 ? 🙄

La réponse à ces questions est liée au comportement du serveur web IIS face aux erreurs.

IIS propose trois options d'affichage des erreurs :

  • Afficher uniquement les pages d'erreur personnalisées
  • Afficher les erreurs serveur détaillées
  • Pour les requêtes locales, afficher les erreurs détaillées ; pour les requêtes distantes, afficher les pages d'erreur personnalisées.
0
0 32
Article Guillaume Rongier · Déc 11, 2025 6m read

Dans cet article, nous aborderons tous les outils de débogage disponibles dans l' IDE Microsoft Visual Studio Code.

Les sections suivantes seront abordées:

  • Points d’arrêt (Breakpoints)
  • Fenêtre de surveillance (Watch Window)
  • Pile d’appels (Call Stack)

Commençons par découvrir les prérequis nécessaires pour le débogage!

Prérequis

Il existe deux plugins (extensions) permettant le débogage d’ObjectScript

Le premier plugin fait partie de l’ InterSystems ObjectScript Extension Pack. Le second, Serenji, est un plugin autonome qui propose un éditeur, un gestionnaire de fichiers ainsi que des fonctionnalités de débogage. Les deux plugins peuvent être installés depuis la boutique d’extensions. Pour l'activqtion de ses fonctionnalités principales, Serenji nécessite une licence. Dans cet article, nous utiliserons l’InterSystems ObjectScript Extension Pack afin de réduire la courbe d’apprentissage. Une fois les bases maîtrisées, vous pourrez envisager l’achat d’une licence payante pour Serenji.

2
0 49
Article Thibault Odor · Déc 26, 2025 1m read

Commandes pour la gestion des productions :

Démarrer, arrêter, mettre à jour, restaurer et nettoyer une production

Do ##class(Ens.Director).StartProduction("ProductionName")
Do ##class(Ens.Director).StopProduction()
Do ##class(Ens.Director).UpdateProduction()
Do ##class(Ens.Director).RecoverProduction()
Do ##class(Ens.Director).CleanProduction()

Interrompre les messages en attente :

d ##class(Ens.Queue).AbortQueue("Component Name")

Obtenir le nom de l’instance :

W !,##class(%SYS.System).GetUniqueInstanceName()

Obtenir le nom du nœud :

W !,##class(%SYS.System).GetNodeName()

Terminer un Job (JobId) :

0
0 40
Article Iryna Mykhailova · Déc 18, 2025 6m read

L'idée qui a obtenu le plus de votes sur le portail InterSystems Ideas Portal (74 votes) concerne la création d'une version allégée d'IRIS. Bien que la plateforme soit devenue un puissant moteur de données, de nombreux projets ne nécessitent que ses capacités de base de données SQL. Cet article explique comment créer une image IRIS Community Edition non officielle et compacte, axée uniquement sur les fonctionnalités de base de données essentielles, ce qui réduit la taille de l'image de plus de 80 %.

⚠️ Avertissement

Ce projet produit une image non officielle et expérimentale d'InterSystems IRIS Community Edition.

  • Il n'est ni pris en charge ni approuvé par InterSystems.
  • Vous l'utilisez à vos propres risques. Les modifications suppriment des fonctionnalités essentielles de la plate-forme et peuvent nuire à la compatibilité avec les outils, les API et les comportements attendus.
  • Aucune garantie n'est fournie, y compris en ce qui concerne l'adéquation à une utilisation en production.
  • Il est destiné uniquement à des fins éducatives et expérimentales par des utilisateurs avancés.

Pourquoi une version allégée d'IRIS?

Bien que la version actuelle d'IRIS offre de nombreuses fonctionnalités (interopérabilité, analyse, apprentissage automatique, gestion du système, etc.), de nombreux projets ne nécessitent que ses capacités SQL de base. L'image Docker officielle de la version Community Edition est approximativement la suivante:

  • Espace disque utilisé: 3,5 à 3,8 Go
  • Format compressé: ~1,1 Go

IRIS Light réduit ces valeurs à:

  • Espace disque utilisé: ~575 à 583 Mo
  • Format compressé: ~144 à 148 MoB

Ainsi, elle convient pour:

  • L'utilisation de microservices ou de SQL conteneurisé
  • Les pipelines CI avec un démarrage et un pull plus rapides
  • La mise à l'échelle horizontale lorsque toutes les fonctionnalités ne sont pas nécessaires
0
0 25
Article Sylvain Guilbaud · Déc 16, 2025 12m read

Dans la Partie 1, nous avons exploré le fonctionnement des fonctions de fenêtre. Nous avons découvert la logique sous-jacente à PARTITION BY, ORDER BY et à des fonctions telles que ROW_NUMBER() et RANK(). Dans cette deuxième partie, nous allons approfondir notre connaissance des fonctions de fenêtre au moyen d'exemples pratiques..

1. Fonctions d'agrégation sur fenêtre

Présentation

0
1 34
Article Sylvain Guilbaud · Déc 15, 2025 4m read

Les fonctions de fenêtre dans InterSystems IRIS permettent de réaliser des analyses puissantes — comme des totaux cumulés, des classements (rankings) ou des moyennes mobiles — directement en SQL.
Ces fonctions s’appliquent à une "fenêtre" de lignes liées à la ligne courante, sans regrouper les résultats comme le fait GROUP BY. Cela signifie que vous pouvez écrire des requêtes plus claires, plus rapides et plus faciles à maintenir — sans boucles, sans jointures, sans tables temporaires.

0
1 43
Article Lorenzo Scalese · Déc 9, 2025 9m read

Les entités dynamiques (objets et tableaux) dans IRIS sont extrêmement utiles lorsque vous devez transformer des données JSON en un modèle d'objet pour les stocker dans la base de données, comme dans les points de terminaison API REST hébergés dans IRIS. En effet, ces objets et tableaux dynamiques peuvent facilement servir de point de conversion d'une structure de données à une autre.

Entités dynamiques

0
0 39
InterSystems officiel Adeline Icard · Déc 5, 2025

Présentation

Cette version apporte des améliorations majeures en matière d'évolutivité et de performances du stockage, une mise à niveau importante du système d'exploitation pour toutes les offres, et une nouvelle version par défaut du serveur FHIR. Ensemble, ces mises à jour renforcent la fiabilité, la flexibilité et la sécurité du système, tout en garantissant la prise en charge à long terme de la plateforme.

Nouvelles fonctionnalités et améliorations

0
0 34
Article Iryna Mykhailova · Déc 4, 2025 2m read

Bonjour,

Lorsque nous ouvrons un terminal dans IRIS, nous accédons à l'interpréteur de commandes ObjectScript. Dans cet interpréteur, nous pouvons exécuter des commandes IRIS, telles que :

Autrement dit, la commande ObjectScript est exécutée dans l'interpréteur de commandes actuel. Mais il est toujours bon de se rappeler qu'IRIS possède d'autres interpréteurs de commandes.

  • SQL
  • Python
  • TSQL
  • MDX

Un aspect très intéressant réside dans les raccourcis. On peut accéder à ces shells soit par leurs appels, soit par des raccourcis, comme indiqué dans le tableau ci-dessous :

0
0 30
Article Iryna Mykhailova · Déc 2, 2025 1m read

Il y a quelque temps, j'ai créé un petit exemple pour déployer rapidement des instances InterSystems IRIS connectées via ECP à l'aide de Docker.

Le temps a passé et, comme tout, il nécessitait une petite mise à jour.

Je l'ai donc mis à jour pour qu'il fonctionne avec la dernière version d'IRIS (actuellement la 2025.3), qui, entre autres, n'installe plus de serveur web par défaut. Ce n'est pas un problème majeur, mais il est bon de le savoir.

J'ai simplifié les Dockerfiles, mis à jour le fichier docker-compose.yml et ajouté des serveurs web dédiés au déploiement afin que vous puissiez administrer les instances de votre choix. Tout le reste (exemples d'applications, fonctionnalités principales, etc.) reste inchangé.

0
0 43
Article Iryna Mykhailova · Nov 28, 2025 4m read

Pour les développeurs d'applications externes, notamment ceux utilisant des technologies comme C#, ODBC (Open Database Connectivity) est une passerelle standardisée essentielle vers toute base de données relationnelle, y compris InterSystems IRIS. Bien qu'InterSystems propose son propre fournisseur ADO.NET natif, le pilote ODBC reste souvent la solution la plus simple pour l'intégration avec les outils et frameworks de bases de données génériques.

Voici un guide pas à pas pour connecter votre application C# à une instance IRIS à l'aide du pilote ODBC, en mettant l'accent sur la chaîne de connexion sans DSN.

Étape 1 : Installation du pilote ODBC InterSystems IRIS

Le pilote ODBC InterSystems est installé par défaut lors de l'installation d'InterSystems IRIS sur une machine Windows.

  • Si IRIS est installé sur la même machine : le pilote est déjà présent.
  • Si IRIS est installé sur un serveur distant : vous devez télécharger et installer le package du pilote client ODBC autonome correspondant à votre système d’exploitation (Windows, Linux ou macOS) et à son architecture (32 bits ou 64 bits) depuis le site web de WRC si vous êtes client, ou en installant les composants clients et en copiant le pilote ODBC.

Une fois installé, vous pouvez vérifier sa présence dans l’outil Administrateur de sources de données ODBC sous Windows (recherchez le pilote InterSystems IRIS ODBC35).

0
0 27
Article Robert Barbiaux · Nov 27, 2025 11m read

Le développement de la production interopérable InterSystems IRIS implique l'utilisation ou l'écriture de différents types de composants. Parmi ceux-ci figurent les services (qui traitent les données entrantes), les processus (qui gèrent le flux et la logique des données) et les opérations (qui gèrent les données ou les requêtes sortantes). Les messages circulant à travers ces composants doivent être constamment adaptés aux applications qui les utilisent. Ainsi, lesLes transformations de données constituent sans conteste le composant le plus courant dans les productions interopérables.

0
0 32