Rechercher

質問
· 2025年10月2日

Login Failure for a single person (not user!) in IRIS for Health

Hi community,

A colleague gets ERROR #822: Access denied every time he tries to log in via Management portal. It is NOT the case of wrong credentials: I reset his password password to a temporary one so it would prompt him to create a new one upon first login. He did get the prompt, changed his password and his next attempt at logging in displayed the same error.

The audit log record displays this:
Error message: ERROR #862: User is restricted from running application /csp/sys/op, %Admin_Operate:U required -- cannot execute.
Web Application: /csp/sys/op
$I: |TCP|1972|1533396
$P: |TCP|1972|1533396

Other information:

  • he can get access with the same credentials via R, so it is absolutely not the problem with credentials
  • the login works just fine on my device. He provided me with his old password, which I tested before setting a new one, and I created a test user with the same permissions. Both worked for me but not for him
  • no one else encounters this error. I asked a different colleague (also a Mac user like the first colleague) to try it (test user with the same permissions) just to be sure. It works for the second colleague but the first one still cannot log into Management portal
  • changing browsers (Chrome, Safari) or devices doesn't help. The first colleague encounters the same error (Access denied) in Chrome and Safari, both on his work laptop and an old one he's tried at my request
  • we cannot tell when it started because this colleague usually connects programmatically, not via Management portal. This was the first time he's tried it in about a month

In short, one person encounters the error that no one else trying the same thing does. IRIS Audit log reports a LoginFailure event and claims that "%Admin_Operate:U required" - but it shouldn't require that to just log in! The issue seems to be localized to him specifically  (somehow!) but Audit log claims it's a permissions error. I am deeply confused.

Has anyone else encountered anything like this?

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

Un Hook útil de pre-commit de Git para Health Connect Cloud

Hola,

He pensado en compartir con vosotros un hook bastante útil que me ha ayudado cuando desarrollo en Health Connect Cloud con VS Code y GitBash. Al desarrollar en Health Connect Cloud, si hacéis cambios directamente en el servidor, como reglas de enrutamiento o despliegue de componentes, estos no se incluyen automáticamente en el control de versiones; por lo tanto, debéis exportarlos desde el servidor a vuestros archivos locales y hacer push a vuestro repositorio remoto. Estoy seguro de que hay métodos más sencillos para gestionar esto, que estoy en proceso de probar, pero como solución rápida pensé que sería útil tener un hook de pre-commit que active un recordatorio en GitBash. Mirad el ejemplo a continuación.

Este recordatorio se puede ajustar para mencionar las reglas de enrutamiento y cualquier otra cosa que penséis que debe tenerse en cuenta para exportar.

El código del hook:

#!/bin/bash
# Git pre-commit hook - gentle reminder for Production.cls
targetFile="src/HCC/Connect/Production.cls"
# Check if Production.cls is already staged
staged=$(git diff --cached --name-only | grep "$targetFile")

# If Production.cls is not staged, show a gentle reminder
if [ -z "$staged" ]; then
    echo ""
    echo "💡 Gentle reminder: Have you made any changes to the Production class on the server?"
    echo ""
    echo "   If YES: Export and add $targetFile to this commit"
    echo "   If NO:  Continue with: git commit --no-verify"
    echo ""
    echo "   (This reminder appears on every commit - use --no-verify to skip)"
    echo ""
    exit 1
fi
# Production.cls is staged, proceed normally
exit 0

Espero que esto os resulte útil a quienes desarrolláis con Health Connect Cloud.

Jordan

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

Exécution d'InterSystems IRIS avec Docker : guide étape par étape - Partie 1 : A partir des principes de base au fichier Dockerfile personnalisé

Table des matières

  1. Objectif de l'article
  2. Les conteneurs : définition et pertinence dans le cadre d'IRIS
     2.1 Les conteneurs et les images en quelques mots
     2.2 Avantages des conteneurs pour les développeurs
     2.3 Pourquoi IRIS fonctionne bien avec Docker
  3. Conditions préalables
  4. Installation de l'image InterSystems IRIS
     4.1 Utilisation de Docker Hub
     4.2 Extraction de l'image
  5. Exécution de l'image InterSystems IRIS
     5.1 Démarrage d'un conteneur IRIS
     5.2 Vérification de l'état des conteneurs
     5.3 Exécution de code dans le terminal conteneur
     5.4 Accès au portail de gestion IRIS
     5.5 Connexion du conteneur à VS Code
     5.6 Arrêt ou suppression du conteneur
     5.7 Configuration d'un mot de passe spécifique avec un montage de type bind
     5.8 Utilisation de volumes %SYS durables
      5.8.1 Contenu stocké sous %SYS durable
      5.8.2 Comment activer %SYS durable
  6. Utilisation de Docker Compose
     6.1 Exemple d'utilisation de l'outil Docker Compose
     6.2 Exécution de Docker Compose
  7. Utilisation d'un fichier Dockerfile pour l'exécution d'un code source personnalisé
     7.1 Exemple de fichier Dockerfile
     7.2 Exemple de Docker Compose
     7.3 Compréhension des couches, du balisage des images et de la différence entre le temps de compilation et le temps d'exécution
     7.4 Code source et script d'initialisation
     7.5 Création de l'image avec le fichier Dockerfile
     7.6 Exécution d'instructions dans le terminal IRIS conteneurisé
  8. Conclusion et suite

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

De "¡Ups!" a "¡Ajá!" - Evitad los errores de principiantes en ObjectScript

Empezar con ObjectScript es realmente emocionante, pero también puede resultar un poco extraño si estáis acostumbrados a otros lenguajes. Muchos principiantes tropiezan con los mismos obstáculos, así que aquí tenéis algunas "trampas” a las que debéis prestar atención. (Y también algunos consejos para evitarlas)


PONER NOMBRES AL AZAR

Todos hemos caído en la tentación de llamar a algo Test1 o MyClass solo para avanzar rápido. Pero una vez que vuestro proyecto crece, esos nombres se convierten en una pesadilla.

➡ Elegid nombres claros y coherentes desde el principio. Pensad en ello como si dejarais migas de pan para vuestro yo del futuro y para vuestros compañeros de equipo.


CONFUNDIR GLOBALES Y VARIABLES

Los globales (^GlobalName) pueden ser confusos al principio. No son simples variables. Viven en la base de datos y permanecen incluso después de que vuestro código deje de ejecutarse.

➡ Usadlos solo cuando realmente necesitéis datos persistentes. Para todo lo demás, quedaos con variables locales. (Esto también ahorra almacenamiento.)


OLVIDAR LAS TRANSACCIONES

Imaginad que actualizáis el registro de un paciente y vuestra sesión se bloquea a mitad de camino. Sin una transacción, os quedaríais con datos a medio hacer.

➡ Encapsulad las actualizaciones importantes en TSTART/TCOMMIT. Es como pulsar “guardar” y “deshacer” al mismo tiempo.


CONSTRUIR SQL EN CADENAS

Es tentador meter SQL directamente en cadenas y ejecutarlo. Pero eso rápidamente se vuelve desordenado y difícil de depurar.

➡ Usad SQL embebido. Es más limpio, seguro y fácil de mantener.

EJEMPLO:

❌ Construir SQL en cadenas

Set id=123
Set sql="SELECT Name, Age FROM Patient WHERE ID="_id
Set rs=##class(%SQL.Statement).%ExecDirect(,sql)

✅ Uso de SQL Embebido

&SQL(SELECT Name, Age INTO :name, :age FROM Patient WHERE ID=:id)
Write name_" "_age,!

SALTARSE EL MANEJO DE ERRORES

A nadie le gusta ver cómo su aplicación se bloquea con un mensaje críptico. Eso suele pasar cuando se ignora el manejo de errores.

➡ Encapsulad las operaciones arriesgadas en TRY/CATCH y daos a vosotros mismos mensajes de error con sentido.


IGNORAR MEJORES HERRAMIENTAS

Sí, el terminal funciona. Pero si solo programáis ahí, os estáis perdiendo mucho.

➡ Usad VS Code con la extensión de ObjectScript. La depuración, el autocompletado y el resaltado de sintaxis hacen la vida mucho más fácil.


REINVENTAR LA RUEDA

Los desarrolladores nuevos suelen intentar escribir sus propias utilidades de registro o de manejo de JSON, sin darse cuenta de que ObjectScript ya tiene soluciones integradas.

➡ Explorad %Library y los objetos dinámicos antes de crear lo vuestro.


ESCRIBIR “CÓDIGO MISTERIOSO”

Todos hemos pensado: “Esto lo recordaré más tarde.”

⚠️ SPOILER: ¡NO LO HARÉIS!

➡ Añadid comentarios breves y claros. Incluso una sola línea explicando por qué habéis hecho algo ayuda muchísimo.


 

CONCLUSIONES FINALES :)

Aprender ObjectScript es como aprender cualquier otro lenguaje nuevo. Requiere un poco de paciencia, y cometeréis errores por el camino. La clave está en reconocer estas trampas comunes cuanto antes y construir buenos hábitos desde el principio. De ese modo, en lugar de pelearos con el lenguaje, disfrutaréis realmente de lo que puede hacer.

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

エージェンティック AI RAG アプリケーションの構築方法: 手順ガイド

コミュニティの皆さん、こんにちは。

従来のキーワードベースの検索では、ニュアンスのあるドメイン固有のクエリには対応できません。 ベクトル検索であれば、セマンティック認識を利用して、キーワードだけでなくコンテキストにも基づいたレスポンスを AI エージェントで検索して生成することができます。

この記事では、エージェンティック AI RAG(検索拡張生成)アプリケーションを作成手順を紹介します。

実装手順:

  1. エージェントツールを作成する
    • インジェスト機能の追加: ドキュメント(例: InterSystems IRIS 2025.1 リリースノート)を自動的にインジェストしてインデックス作成を行います。
    • ベクトル検索機能の実装
  2. ベクトル検索エージェントを作成する
  3. Triage(メインエージェント)に渡す
  4. エージェントを実行する
ディスカッション (0)0
続けるにはログインするか新規登録を行ってください