Bonjour,
J'ai une globale dont la structure est à plusieurs niveaux et j'essaie à travers une class et une requête SQL d'afficher un tableau qui comprend toutes les valeurs et les niveaux.
Bonjour,
J'ai une globale dont la structure est à plusieurs niveaux et j'essaie à travers une class et une requête SQL d'afficher un tableau qui comprend toutes les valeurs et les niveaux.
Bonjour,
quelle est notre expérience de l'intégration de Microsoft Dynamics avec IRIS/Ensemble ?
Si vous avez une expérience avec IRIS/Ensemble utilisant des flux d'interopérabilité avec Microsoft Dynamics, veuillez la partager dans cette discussion.
Cordialement,
Sylvain
Un script python pour garder vos images docker iris en forme ;)

Sans changer votre dockerfile ou votre code vous pouvez réduire la taille de votre image de 50% ou plus !
Nommez l'image de constructeur builder et l'image finale final et ajoutez ceci à la fin de votre fichier Dockerfile :
Modifiez votre fichier Dockerfile pour utiliser une construction multi-étapes :
ARG IMAGE=intersystemsdc/irishealth-community:latest
FROM $IMAGE as builder
Ajoutez ceci à la fin de votre fichier Dockerfile:
FROM $IMAGE as final
ADD --chown=${ISC_PACKAGE_MGRUSER}:${ISC_PACKAGE_IRISGROUP} https://github.com/grongierisc/iris-docker-multi-stage-script/releases/latest/download/copy-data.py /irisdev/app/copy-data.py
RUN --mount=type=bind,source=/,target=/builder/root,from=builder \
cp -f /builder/root/usr/irissys/iris.cpf /usr/irissys/iris.cpf && \
python3 /irisdev/app/copy-data.py -c /usr/irissys/iris.cpf -d /builder/root/
Boum ! Vous avez terminé !
pour démonter/monter une base de données, utilisez les méthodes Dismount() et Mount() dans la classe SYS.Database disponible dans l'espace de noms %SYS.
NB : l'ID de la base de données est le nom du chemin absolu de son répertoire.
Vous trouverez quelques exemples de démontage/montage et de méthodes contrôlant si une base de données est montée (Mounted=1) ou non (Mounted=0), ou affichant rapidement tous les attributs d'une base de données (via zwrite)
%SYS>set db="/opt/irisapp/data"
%SYS>w ##class(SYS.Database).%OpenId(db).Mounted
1
%SYS>w ##class(SYS.Database).%OpenId(db).Dismount()
1
%SYS>w ##class(SYS.Database).%OpenId(db).Mounted
0
%SYS>w ##class(SYS.Database).%OpenId(db).Mount()
1
%SYS>w ##class(SYS.Database).%OpenId(db).Mounted
1
%SYS>zw ##class(SYS.Database).%OpenId(db)
+----------------- general information ---------------
| oref value: 3
| class name: SYS.Database
| %%OID: $lb("/opt/irisapp/data","SYS.Database")
| reference count: 2
+----------------- attribute values ------------------
| %Concurrency = 0 <Set>
| BlockFormat = 2
| BlockSize = 8192 <Set>
| Blocks = 780288
| BlocksPerMap = 62464
| ClusterMountMode = 0 <Set>
| ClusterMounted = 0 <Set>
| CurrentMaps = 13
| Directory = "/opt/irisapp/data/" <Set>
| DirectoryBlock = 3
| EncryptedDB = 0 <Set>
| EncryptionKeyID = ""
| Expanding = 0
| ExpansionSize = 0 <Set>
| Full = 0
| GlobalJournalState = 3 <Get,Set>
| InActiveMirror = 0
| LastExpansionTime = "09/06/2023 20:00:01"
| MaxSize = 0 <Set>
|MirrorActivationRequired = 0
| MirrorDBCatchup = 0
| MirrorDBCreatedNew = 0
| MirrorDBName = ""
| MirrorDBPaused = 0
| MirrorFailoverDB = 0
| MirrorNoWrite = 0
| MirrorObsolete = 0
| MirrorSetName = ""
| Mirrored = 0
| Mounted = 1
| NewGlobalCollation = 5 <Set>
|NewGlobalGrowthBlock = 50 <Set>
| NewGlobalIsKeep = 0 <Set>
|NewGlobalPointerBlock = 16 <Set>
| NumberOfConfigDB = 0
| ROReasonCode = 0
| ROReasonText = ""
| ReCreate = 0
| ReadOnly = 0 <Set>
| ReadOnlyMounted = 0
| Reinitialize = 0
| RequestSize = 0
| ResourceName = "%DB_IRISAPP-DATA"
|RunCatchupDBOnCreate = 1
| SFN = 6
| Size = 6096 <Set>
| Skeleton = 0
| SparseDB = 0
+-----------------------------------------------------
%SYS>Dans cet article, nous allons apprendre les sujets ci-dessous répertoriés ci-dessous :
Alors commençons.

Dans cet article, nous aborderons les sujets suivants
Alors commençons.
Salut les développeurs !
Hibernate est le framework le plus populaire pour réaliser des projets ORM (Mapping Objet-Relationnel). Avec Hibernate, un logiciel peut utiliser les principaux SGBD du marché, et même changer de fournisseur de base de données à tout moment, sans impact sur le code source. Cela est possible car Hibernate prend en charge les dialectes. Chaque produit de base de données a un dialecte différent qui peut être assigné dans un fichier de configuration.
Je travaille avec des clients qui envisagent de migrer de Caché vers IRIS et je souhaite résumer les avantages d'aller vers IRIS. Je pense à ceux-ci:
Lorsque nous démarrons le développement avec IRIS, nous disposons d'un kit de distribution ou, dans le cas de Docker, nous extrayons l'image Docker, puis nous devons souvent l'initialiser et configurer l'environnement de développement. Nous devrons peut-être créer des bases de données, des espaces de noms, activer/désactiver certains services, créer des ressources. Nous devons souvent importer du code et des données dans l'instance IRIS et exécuter du code personnalisé pour lancer la solution.
Il existe de nombreux modèles sur Open Exchange dans lesquels nous suggérons comment initialiser REST, l'interopérabilité, l'analytics, le développement Fullstack et bien d'autres modèles utilisant ObjectScript. Mais qu'en est-il si nous souhaitons utiliser uniquement Python pour configurer l'environnement de développement d'un projet Embedded Python avec IRIS ?
De fait, la récente sortie de Embedded Python template est devenu le passe-partout du pur Python qui pourrait être un point de départ pour les développeurs qui créent des projets Python sans avoir besoin d'utiliser et d'apprendre ObjectScript. Cet article explique comment ce modèle pourrait être utilisé pour initialiser IRIS. C'est parti!
Bonjour la communauté,
je vous invite à regarder la nouvelle vidéo sur InterSystems Developers YouTube:
Salut les développeurs,
Nous sommes heureux de vous inviter tous au nouveau concours de programmation en ligne InterSystems axé sur Python !
🏆 Concours de programmation d'InterSystems sur Python 🏆
La durée: 4 - 24 septembre 2023
Le prix: $14,000

Voici le résumé des publications de la communauté des développeurs d'août 2023.
✓ Nouveaux membres 5 ayant rejoint le Août
✓ Publications 538 publiées depuis le début
✓ Membres 80 ayant rejoint depuis le début
Bonjour la Communauté,
J'essaie de charger des données d'un fichier CSV dans IRIS. J'utilise un RecordMap. Le CSV comporte 3 colonnes qui sont des dates et j'utilise $ZDATEH() pour convertir les colonnes de date au format interne IRIS. Mais l’année qui est chargée dans IRIS est fausse. Exemple : si dans mon csv la date est "26/05/23", après transformation des données et chargement des données, la date stockée dans l'IRIS est "26/05/1923". L'année de stockage est erronée, au lieu de 2023, l'année de stockage est 1923 Pouvez-vous s'il vous plaît me dire comment résoudre ce problème ?
Imaginons que vous soyez un développeur Python ou que vous disposiez d'une équipe bien formée et spécialisée en Python, mais que le délai dont vous disposez pour analyser certaines données dans IRIS est serré. Bien entendu, InterSystems propose de nombreux outils pour toutes sortes d’analyses et de traitements. Cependant, dans le scénario donné, il est préférable de faire le travail en utilisant les bons vieux Pandas et de laisser l'IRIS pour une autre fois.
À l'installation d'IRIS, tous les événements d'AUDIT système ne sont pas activés.
Quel est le moyen le plus rapide pour activer tous les événements ?
Système > Gestion de la sécurité > Événements d'audit système
.png)
Pour parler des différentes bases de données et des différents modèles de données qui existent, on doit premièrement comprendre ce qui est une base de données et comment les utiliser.
Une base de données est une collection organisée de données stockées et accessibles par voie électronique. Elle permet de stocker et de retrouver des données structurées, semi-structurées ou des données brutes souvent en rapport avec un thème ou une activité.
Au cœur de chaque base de données se trouve au moins un modèle utilisé pour décrire ses données. Et selon le modèle sur lequel elle est basée, elle peut avoir des caractéristiques un peu différentes et stocker différents types de données.
Pour inscrire, retrouver, modifier, trier, transformer ou imprimer les informations de la base de données on utilise un logiciel qui s’appelle système de gestion de base de données (SGBD, en anglais DBMS pour Database management system).
La taille, les capacités et les performances des bases de données et de leurs SGBD respectifs ont augmenté de plusieurs ordres de grandeur. Ces augmentations de performances ont été rendues possibles par les progrès technologiques dans différents domaines, tels que les domaines des processeurs, de la mémoire informatique, du stockage informatique et des réseaux informatiques. Le développement ultérieur de la technologie des bases de données peut être divisé en quatre générations basées sur le modèle ou la structure des données : navigation, relationnel, objet et post-relationnel.

Salut Developer Community,
Je télécharge un fichier Excel xlsx à partir du Web à l'aide de la méthode ci-dessous et je l'enregistre au format xlsx. Comment puis-je convertir et enregistrer un format xlsx au format csv ?
ClassMethodSet##classJe recherche dans DBeaver un moyen efficace permettant de filtrer les tables systèmes (ex: appartenant à un schéma commençant par "%").
En utilisant un utilisateur possédant le rôle %All, DBeaver nous affiche une longue liste de schémas systèmes, qui nous oblige à descendre la liste avant d'accéder aux tables utilisateurs.
.png)
En créant un utilisateur dans IRIS avec des droits restreints permet de réduire cette liste, mais on perd l'intérêt du rôle %All.
Nous sommes heureux d'annoncer que DBeaver prend en charge InterSystems IRIS dès la version 7.2.4. Vous n'avez plus besoin de le configurer manuellement, recherchez simplement l'icône IRIS dans la liste des connexions.
.png)
Bonjour les développeurs, Je suis actuellement en train de faire une démo sur la construction d'une interface utilisateur en front-end faisant de l'analyse de données et de mettre en place un test de performance avec de gros objets de données, donc l'utilisation de "Populate Utility" pourrait m'aider à générer automatiquement des échantillons de données avec lesquels je pourrais jouer.
Dans ce post, j'aimerais partager mon expérience de l'utilisation de Populate Utility, y compris l'utilisation du paramètre POPSPEC.
InterSystems Kubernetes Operator (IKO) 3.6 est désormais généralement disponible. IKO 3.6 ajoute de nouvelles fonctionnalités importantes ainsi que de nombreuses corrections de bugs.
Vous pouvez voir l'espace disponible libre pour la base de données à l'aide du bouton radio « Vue de l'espace libre » dans le portail de gestion : Exploitation du système > Bases de données.
Et il peut être obtenu par programmation par la requête FreeSpace de la classe système SYS.Database.
.png)
Salut,
Dans une application CSP de Caché, j'ai activé les jours d'expiration du mot de passe à certains jours dans Système > Gestion de la sécurité > Paramètres de sécurité de niveau système. Lorsque le mot de passe expire pour les utilisateurs et qu'ils tentent de se connecter, la page de connexion passe à la page de modification du mot de passe du cache standard.
Puis-je afficher ma page personnalisée au lieu de la page de modification du mot de passe standard de Caché ?
Il arrive parfois que suite à un événement indésirable la base d'AUDIT (IRISAUDIT) ait pris des proportions telles que le disque sur lequel elle réside soit plein et qu'on ne peut attendre la purge quotidienne pour récupérer l'espace disque.
Comme IRISAUDIT est une base système requise au démarrage, il n'est pas question de tenter un redémarrage d'IRIS après une simple suppression de IRIS.
À titre d'exemple d'application en Java fonctionnant avec le dialecte Hibernate pour IRIS, je souhaitais utiliser l'application RealWorld et j'ai trouvé une réalisation pour Quarkus. L'application RealWorld est un exemple d'application proche d'une application réelle, avec des tests déjà préparés pour le backend. La plupart des exemples de réalisations sont à retrouver ici

L'exemple d'application RealWorld est souvent appelé « Wikipédia pour la création d'applications full-stack ». Il sert de prototype standardisé que les développeurs peuvent utiliser pour créer des applications à l'aide de divers langages et frameworks de programmation. L'application fournit un cas d'utilisation réel en imitant une plate-forme de blogs, avec des fonctionnalités telles que l'authentification des utilisateurs, la gestion des profils, la publication d'articles et les commentaires. Avec un ensemble complet de spécifications, y compris une documentation d'API backend prête à l'emploi et des conceptions frontend, il permet aux développeurs de voir comment les mêmes exigences fonctionnelles sont mises en œuvre dans différentes piles technologiques. L'exemple RealWorld est largement utilisé comme outil d'apprentissage et comme référence pour comparer diverses technologies.
Quarkus est un framework Java open source natif de Kubernetes, conçu pour GraalVM et HotSpot. Créé dans le but d'améliorer l'environnement cloud natif moderne, il réduit considérablement l'empreinte et le temps de démarrage des applications Java. Quarkus est connu pour sa philosophie « privilégiant le conteneur », permettant aux développeurs de créer des applications légères et performantes en mettant l'accent sur l'architecture des microservices. Cette flexibilité en a fait un choix populaire pour les organisations cherchant à passer à des plates-formes sans serveur ou basées sur le cloud, combinant des modèles de programmation impératifs et réactifs. Qu'il s'agisse d'une application Web traditionnelle ou d'un système complexe de microservices, Quarkus fournit une plate-forme robuste pour créer des logiciels évolutifs et maintenables.
Bonjour,
existe-t-il un connecteur InterSystems IRIS qui permet de se connecter à la plate-forme de données IRIS (Hubic) à partir de Microsoft Power Apps/Power Automate ?
Merci
Salut,
Pour la connexion à l'application CSP, j'affiche une page de connexion personnalisée qui est rendue à partir de la sous-classe CSS.CSP.Login qui hérite de %CSP.Login, et j'ai également IBA.CSP.Page qui étend %CSP.Page en surchargeant OnPreHTTP(). Cette configuration fonctionne parfaitement pour une connexion normale.
Salut,
J'ai un message ORU, qui a un segment EVN que je veux supprimer et envoyer le message à travers. J'ai essayé de cloner la demande comme ci-dessous :
ss"EVN"mais cela échoue.
Existe-t-il un moyen de supprimer un segment en toute sécurité et de le transmettre ? J'apprécierais votre aide à ce sujet.
Merci,
Eric