Bonjour,

Je souhaite faire un appel synchrone d'un process. En entrée je reçois un flux json qui me déclenche mon business process mais tant que ce flux n'est pas analysé je ne souhaite pas récupérer un autre flux json tant que le premier n'est pas terminé.

Pour cela j'ai crée un business Service faisant un appel au targetconfigname, or le SendRequestSync ne fonctionne pas, celui ci a le même comportement que le SendRequestAsync :

1 12
2 78

Est-il possible d'utiliser Django avec InterSystems Iris, dont les classes sont implémentées en ObjectScript ?

Class EpErp.ARTICLES Extends (%Persistent, %JSON.Adaptor, %XML.Adaptor) [ ClassType = persistent, SqlTableName = ARTICLES ]

{

Parameter IDPROPERTY = "IDARTICLES";

Property IDARTICLES As %BigInt [ SqlColumnNumber = 2, SqlFieldName = IDARTICLES ];

Property dhDateCreation As %TimeStamp [ SqlColumnNumber = 3, SqlFieldName = dhDateCreation ];

Property sCode As %String(MAXLEN = 30) [ SqlColumnNumber = 4, SqlFieldName = sCode ];

1 7
0 85

Je souhaite créer des fichiers excel (xls) et des fichiers pdf pour la création de rapports.

Ces rapports étant complexes je souhaite programmer en objectscript leur création et non utiliser un système de report.

Je cherche les classes qui pourraient m'aider à réaliser cette tâche sachant que pour moi ces classes doivent exister puisqu'Iris propose la génération de fichiers xls.

J'avais demandé à chatGpt qui m'a "inventé" une classe inexistante : %Library.Excel.Workbook qui correspondait tout a fait à ce que je cherche.

Mes questions sont donc :

0 6
0 68

Bonjour à tous,

Je cherche la syntaxe ou le moyen pour utiliser une classe créée dans le Namespace "BNA" (mon application) depuis le Namespace %SYS.

Voici le contexte :

Je dispose d'une application "BNA" contenue dans le NS "BNA", cette application met à disposition une fonctionnalité de création des utilisateurs. Cette fonctionnalité crée à la fois l'utilisateur dans une table de l'application et dans le système Iris.

2 5
0 63
Question
· Fév 13
Sécurité du login

Bonjour à tous,

Nous développons une application avec FrontEnd (angular) et BackEnd (objectscript Iris), nous utilisons l'identification intégrée grâce à la route /login fournie par %CSP.REST. Nous n'utilisons pas IAM, nous attaquons l'API directement.

Pour éviter les attaques automatisées, nous avons mis une temporisation sur le login (1s entre chaque tentative). Cela protège donc l'API dans le cadre de son utilisation via l'application.

0 5
0 48

Bonjour,

Depuis ce matin j'arrive pas à compiler ou lancer mes programmes qui tourne en local sur docker avec l'image : intersystemsdc/irishealth-community:2024.1-zpm

J'ai toujours cette erreur sur le terminal ou le portal de management : request to http://localhost:52773/api/atelier/ failed, reason: socket hang up

Dans mes logs docker aussi j'ai des erreurs en conitnu , voici un extrait ...

0 5
0 55
import os

# Récupérer les variables d'environnement
db_host = os.getenv('DB_HOST')
db_port = os.getenv('DB_PORT')
db_namespace = os.getenv('DB_NAMESPACE')
db_username = os.getenv('DB_USERNAME')
db_password = os.getenv('DB_PASSWORD')

# Créer une connexion à la base de données
conn = irisnative.createConnection(db_host, db_port, db_namespace, db_username, db_password)

# Créer une instance IRIS à partir de cette connexion
iris_native = irisnative.createIris(conn)

status = iris_native.classMethodValue('%SYSTEM.OBJ', 'Load', 'Production.cls', 'ck')

if status == 1:
1 4
1 80

Bonjour a tous,

Dans le cadre d'un projet, j'ai mis en place à l'aide de quelques classes objectscript une solution de tests d'integration.

Son principe est basique, les tests sont rassemblés dans des suites elles mêmes incluses dans un fichier par classe ou ensemble de classes testé.

Mon outil m'affiche à l'écran le bon passage des tests et utilise des séquences d'échappement terminal pour mettre en exergue les échecs (écriture en rouge) .

Mon souci est maintenant que j'aimerai obtenir les résultat dans un fichier tcommunicable à mon client.

0 4
0 35

Est-il prévu que LOAD DATA prenne en compte plusieurs formats de DATE/DATETIME avec, par exemple un paramètre de indiquant le format utilisé dans les données sources ?

exemple :

LOAD DATA .../...
USING
{
  "from": {
    "file": {
       "dateformat": "DD/MM/YYYY"
    }
  }
}
2 3
0 66
Question
· Oct 24, 2023
Stream dans un objet dynamique

Bonjour,

J'ai un petit soucis je souhaite renvoyé via une API REST des données IRIS mais j'ai une erreur sur le renvoi de données de type Stream.GlobalBinary, j'essaie de faire un "CopyFrom" via $METHOD mais je récupère un "INVALID OREF" :

2 3
1 58

Je 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.

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.

1 3
0 265
Question
· Déc 11, 2023
Accès refusé

Bonjour,

Je suis en train de faire un test avec django sur notre base de données. Le but étant de créer une API pour voir la réactivité de celle-ci.

J'ai créé le projet sans problème, j'ai réussi à créer les 16 000 lignes de models avec inspect_db. Tout se passait bien jusqu'au moment où j'ai voulu testé mon projet, 'Accès refusé'.

De ce que j'ai pu voir, Il n'y aurait pas d'erreur de code, car les seules erreurs retournées sont les suivantes.

0 3
0 68
Question
· Oct 17, 2023
Dézipper avec objectScript

Bonjour,

Je cherche à dézipper un fichier zip que je récupère via HTTP avec ObjectScript.

Je récupère de ma requête HTTP un %Stream.GlobalBinary, et via mon BusinessOperation, je crée le fichier Zip.

J'aimerais savoir s'il y a une méthode pour dézipper directement le %Stream.GlobalBinary et avoir le dossier dézipper en sortie ?

Ou sinon quelle méthode permet de dézipper un fichier Zip en ObjectScript ?

Merci d'avance pour votre aide

1 3
0 56
Question
· Jan 17
Requête LDAP

Bonjour,

je dois faire une requête LDAP pour récupérer des infos sur une équipe spécifique d'employés. J'ai un service custom qui instancie un message de type EnsLib.LDAP.Message.Search avec un filtre correspondant à la recherche et qui le redirige vers une opération de type EnsLib.LDAP.Operation.Standard. Je ne récupérais pas d'erreur mais pas de résultat non plus. J'ai donc créé une opération qui hérite de EnsLib.LDAP.Operation.Standard et j'ai surchargé la méthode pour récupérer qqch. Je récupère ceci :

0 3
1 85

Bonjour,

Je rencontre une situation embarassante avec mon environnement de développement InterSystems IRIS et Visual Studio Code.
Je n'arrive pas à pousser un fichier modifié à dessin, (hors push automatique lors du save) et si quelqu'un à la réponse mille merci.

Contexte :
J'ai une instance IRIS en cours d'exécution sur un serveur.
Mon poste client utilise Visual Studio Code avec l'extension InterSystems ObjectScript.
Je me suis volontairement abstenu d'utiliser Git pour simplifier la problématique.

0 2
0 39
Question
· Nov 16, 2023
Vue SQL vers fichier CSV

Bonjour,

Je dois récupérer quotidiennement la totalité des données d'une vue SQL externe pour générer un fichier csv unique. J'étais partie sur l'utilisation d'un service de type EnsLib.SQL.Service.GenericService mais cela ne me convient pas puisque chaque ligne de résultat de la requête SQL génère un message et une trace différents. Dois-je passer par une table de lien ? Créer un service de toute pièce en implémentant le OnProcessInput() ? Autre ?

Merci par avance pour votre aide.

Bien cordialement,

0 2
1 105

Bonjour,

Je souhaite réaliser une méthode générique pour modifier des propriétés d'une classe dynamique. Lorsque je fais un JSONImport() cela fonctionne très bien pour certains objet, or dans le cas d'un objet contenant une liste cela m'ajoute un élément en plus au lieu de la modifier. J'ai essayée de vérifier le type lors de l'itération du JSON afin de faire un Insert mais je n'arrive pas à utiliser les $METHOD sur le Insert ou même le %Set.

Voici la classe :

0 2
0 63

Bonjour,

Je cherche à faire un systeme de pagination en SQL et je suis tombé sur un article ici https://community.intersystems.com/post/scrollable-resultset-pagination-...

J'ai essayé d'appliquer la solution, mais j'ai un bug assez particulier et je me demandais si quelqu'un pouvait m'éclairer.
Sur mon environnement de dev local aucun soucis, par contre pour la même requete en environnement de preprod j'ai cette erreur:

0 2
0 56

Bonjour,

Je peux récupérer au sein d'un interop un objet dynamique vide : "{}"

Il faudrait que je puisse ajouter une condition afin de ne pas faire un traitement dans le cas ou je n'ai pas de contenu. Le seul moyen que j'ai trouvé pour l'instant c'est de vérifier si $LENGTH > 2 car cela me prend en compte les accolades.

Avez-vous un moyen beaucoup plus propre ?

Merci pour vos réponses

0 2
0 41

Pour suivre les bonnes pratiques, j'utilise maintenant VSCode en remplacement de studio, toutefois cela me pose quelques problèmes dans la remontée des erreurs de compilation.

Dans les copies d'écran suivantes, j'utilise par erreur un paramètre inexistant : ..#MessageFinessExisting (en fait le paramètre correct est ..#MessageCentreFinessExisting).

0 2
0 47