#ObjectScript

0 Abonnés · 105 Publications

InterSystems ObjectScript est un langage de script permettant d'opérer avec des données en utilisant n'importe quel modèle de données de la plateforme de données InterSystems (objets, relationnel, clé-valeur, document, globales) et de développer une logique métier pour les applications côté serveur sur la plateforme de données InterSystems.

Documentation.

Article Guillaume Rongier · Oct 6, 2024 21m read

Cela fait maintenant plus de 2 ans que j'utilise quotidiennement Embedded Python. Il est peut-être temps de partager un retour d'expérience sur ce parcours.

Pourquoi écrire ce commentaire de retour d'expérience? Parce que, je suppose, je suis comme la plupart de mes collègues ici, un développeur ObjectScript, et je pense que la communauté bénéficierait de ce retour d'expérience et pourrait mieux comprendre les avantages et les inconvénients du choix de Embedded Python pour développer quelque chose dans IRIS. Et aussi éviter certains pièges.

image

0
0 0
Article Iryna Mykhailova · Sept 16, 2024 5m read

Dans la section précédente, nous avons exploré le processus d'installation et initié l'écriture de l'IRIS en Python natif. Nous allons maintenant examiner la traversée globale et nous intéresser aux objets de classe IRIS. 

get : cette fonction est utilisée pour obtenir des valeurs à partir du nœud de traversée.

deftraversal_firstlevel_subscript():"""
    ^mygbl(235)="test66,62" and ^mygbl(912)="test118,78"
    """for  i in irispy.node('^mygbl'):
        print(i, gbl_node.get(i,''))
0
0 0
Article Robert Cemper · Sept 15, 2024 3m read

Vous connaissez probablement cette situation :
il y a quelque temps, vous avez trouvé une fonction $ZU très spéciale pour
un type de problème spécifique. Une sorte de formule mystique.
Elle est devenue populaire et a été utilisée par de nombreux programmeurs
dans tout votre code et toutes vos installations .

Plusieurs versions et updates plus tard, vous êtes informé par ISC que
votre $ZU mystique est déprécié et n'est plus supporté. Et on vous conseille
de le remplacer par un nouveau $something(). 

0
0 0
Article Matthieu LAURENT · Sept 11, 2024 4m read

Bonjour,

je vous soumets cet article sous forme d'ADR (Architecture decision record) que nous avons rédigé dans nos équipes. L'objectif était d'être pertinent dans le choix de nos types de stream dans un contexte mirroré. A noter que des éléments peuvent être utiles même dans un environnement sans miroir.

Stockage des "Character Stream" dans un environnement mirroré

  • Auteur : Matthieu LAURENT et Vincent DHEILLY
  • Date : 2024-09-11
  • Version : IRIS 2024.1

Contexte

Les streams sont très utilisées au sein d'InterSystems notamment dans 2 contextes très différents :

0
0 0
Article Robert Barbiaux · Sept 7, 2024 2m read

Introduction

Cet article décrit comment exécuter les tests unitaires lorsque la fonctionnalité intégrée à l'extension InterSystems ObjectScript n'est pas disponible car la version de IRIS utilisée est antérieure à 2023.3.

Au passage, l'extension ne semble pas supporter les tests pour les productions d'interopérabilité (classes qui étendent %UnitTest.TestProduction) , mais c'est seulement lié à la manière de déterminer si la classe comporte une méthode de test. Il suffit d'ajouter une méthode dont le nom commence par 'Test' pour que la classe soit reconnue par l'extension.

Préparation

0
0 0
Article Lorenzo Scalese · Juil 29, 2024 9m read

Supposons que vous ayez une application qui permette aux utilisateurs d'écrire des articles et de les commenter. (Attendez...  ça me dit quelque chose...)

L'objectif est de répertorier, pour un utilisateur donné, tous les messages publiés avec lesquels il a interagi, c'est-à-dire dont il est l'auteur ou qu'il a commentés. Comment faites-vous cela aussi vite que possible?

Voici à quoi pourraient ressembler les définitions de notre classe %Persistent comme point de départ (les définitions de stockage sont importantes, mais omises par souci de concision):

0
0 0
Article Iryna Mykhailova · Juin 27, 2024 6m read

Introduction

Dans les prochaines semaines, mes collègues prévoient de commencer à utiliser VSCode pour coder avec les produits d'InterSystems. Parmi les nombreux avantages, je soulignerais la possibilité de se connecter facilement à d'autres technologies, telles que GitHub. En outre, VSCode propose également une vaste boutique d'extensions, où vous pouvez trouver de nombreux add-ons gratuits qui rendent le codage plus rapide et plus efficace. Enfin, pour conquérir le cœur de tous les développeurs, c'est open source.

0
0 0
Article Pierre LaFay · Juin 26, 2024 2m read

InterSystems FAQ rubric

Le type TIMESTAMP correspond au type de données %Library.TimeStamp (=%TimeStamp) dans les produits InterSystems, et le format est YYYY-MM-DD HH:MM:SS.nnnnnnnnn.

Si vous souhaitez modifier la précision après la virgule, définissez-la à l'aide de la méthode suivante.

1) Définir la précision à l'échelle du système

Portail de gestion : [Administration du système] > [Configuration] > [Paramètres SQL et objets] > [Paramètres SQL généraux] 
Précision de l'heure par défaut pour GETDATE(), CURRENT_TIME, CURRENT_TIMESTAMP. Vous pouvez spécifier le nombre de chiffres entre 0 et 9.

0
0 0
Annonce Irène Mykhailova · Juin 11, 2024

Bonjour à tous,

L'équipe de certification d'InterSystems Learning Services développe un examen de certification InterSystems ObjectScript Specialist, et nous contactons la communauté pour obtenir des commentaires qui nous aideront à évaluer et à établir le contenu de cet examen. Veuillez noter qu'il s'agit de l'un des deux examens en cours de développement pour remplacer notre examen InterSystems IRIS Core Solutions Developer. Vous pouvez trouver plus de détails sur notre examen InterSystems IRIS Developer Professional ici.

0
0 0
InterSystems officiel Guillaume Rongier · Juin 10, 2024

Les mises à jour récentes d'Intersystems Language Server introduisent de nombreuses améliorations significatives visant à améliorer l'expérience et la productivité des développeurs. Je vais parler de certains des principaux ici, tandis que la liste complète, y compris de nombreuses corrections de bugs, peut être trouvée dans le CHANGELOG de Language Server.

Descriptions détaillées des erreurs de syntaxe

0
0 0
Article Iryna Mykhailova · Avr 29, 2024 12m read

Le défi du Lo-Code

Imaginons la scène.  Vous travaillez tranquillement au sein de Widgets Direct, le premier détaillant de Widgets et d'accessoires pour Widgets sur Internet.   Votre patron vous annonce une nouvelle désastreuse : certains clients ne sont peut-être pas satisfaits de leurs widgets et nous avons besoin d'une application d'assistance pour assurer le suivi de ces réclamations.   Pour rendre les choses plus intéressantes, il veut que cette application ait une très faible empreinte de code et vous demande de livrer une application en moins de 150 lignes de code à l'aide d'InterSystems IRIS.  Est-ce possible?

Avertissement : cet article présente la construction d'une application très basique et omet, par souci de concision, des éléments de détail tels que la Sécurité et la Gestion des erreurs.   Cette application ne doit être utilisée qu'à titre de référence ni pour une application de production.  Cet article utilise IRIS 2023.1 comme plate-forme de données, certaines fonctionnalités décrites ne sont pas disponibles dans les versions antérieures

Étape 1 – Définition d'un modèle de données

Nous commençons par définir un nouvel espace de noms propre - avec une base de données de codes et de données. Bien que tout soit regroupé dans une seule base de données, il est utile de diviser ces bases pour permettre l'actualisation des données.

0
0 92
Article Pierre LaFay · Avr 27, 2024 3m read

Surprises techniques à l'aide de VECTORs

La construction de mon exemple technologique m'a permis de faire un certain nombre de découvertes que je souhaite partager.
Les premiers vecteurs que j'ai touchés sont apparus avec l'analyse de texte et plus de 200 dimensions.
Je dois avouer que je me sens bien dans le monde à 4 dimensions d'Einstein.
Les 7 à 15 dimensions qui peuplent la théorie des cordes dépassent quelque peu la frontière.
Mais 200 et plus, c'est définitivement bien au-delà de mon horizon mathématique.

0
0 50
Article Pierre LaFay · Avr 27, 2024 2m read

Utilisation géographique de la recherche vectorielle

L'idée de base est d'utiliser des vecteurs au sens mathématique.
J'ai utilisé des coordonnées géographiques. Celles-ci ne sont bien sûr que bidimensionnelles
mais elles sont beaucoup plus faciles à suivre en tant que vecteurs dans le cadre d'une analyse de texte à plus de 200 dimensions.

0
0 49
Article Sylvain Guilbaud · Avr 22, 2024 4m read

Salut la communauté!

Souvent, lorsque nous développons des solutions commerciales, il est nécessaire de déployer des solutions sans code source, par exemple afin de préserver la propriété intellectuelle.

L'une des manières d'y parvenir est d'utiliser InterSystems Package Manager.

Ici, j'ai demandé à Midjourney de peindre la propriété intellectuelle d'un logiciel :

 

0
0 55
Article Pierre LaFay · Avr 20, 2024 1m read

Bonjour,Je me débattais avec une procédure qui devait recevoir une chaîne de caractères et l'utiliser comme filtre, j'ai découvert que puisque je voulais que la procédure fasse une transformation de données et retourne un ensemble de données, j'avais besoin d'utiliser le langage objectScript.J'ai créé la procédure en utilisant l'interface graphique SQL dans le portail, et tout fonctionne correctement lorsque j'appelle la procédure à partir de l'interface graphique SQL, mais pas à travers une connexion JDBC - voici l'appel "call spPatientOS('2024-04-07T12:35:32Z')".Le résultat est que la

0
0 42
Article Iryna Mykhailova · Avr 17, 2024 2m read

Bonjour - Récemment, j'ai enquêté sur une situation ennuyeuse lors de l'édition de classes ou de routines ObjectScript dans VSCode.

Ce qui m'arrivait, lorsque je tapais des lignes de code dans ma classe (par exemple, en ajoutant une nouvelle méthode, ou en modifiant la signature de la classe, ou un bloc de code), la syntaxe était rapidement vérifiée, reformatée et compilé - inévitablement (puisque je serais à mi-chemin de ma saisie), cela générerait des erreurs de compilation.

0
0 220
Article Pierre LaFay · Avr 9, 2024 4m read

Introduction

Il existe une option d'assistant de procédure de liaison dans le portail de gestion (Système > SQL > Assistants > Procédure de liaison) avec laquelle j'ai eu des problèmes de fiabilité, j'ai donc décidé d'utiliser cette solution à la place.

Problème

0
0 68
Article Sylvain Guilbaud · Mars 22, 2024 5m read

L'invention et la vulgarisation des grands modèles de langage (tels que GPT-4 d'OpenAI) ont lancé une vague de solutions innovantes capables d'exploiter de grands volumes de données non structurées qui étaient peu pratiques, voire impossibles, à traiter manuellement jusqu'à récemment. Ces applications peuvent inclure la récupération de données (voir le cours ML301 de Don Woodlock pour une excellente introduction à Retrieval Augmented Generation), l'analyse des sentiments, et même des agents d'IA entièrement autonomes, pour n'en nommer que quelques-uns !

0
0 102
Question Pierre LaFay · Fév 4, 2024

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.

4
0 80
Article Pierre LaFay · Mars 6, 2024 2m read
  • L'idée de ce paquet est de comparer les performances du stockage en colonne à l'intérieur d'IRIS sans l'intégrer à une plateforme étrangère qui n'est pas mon monde   
  • De plus, je ne veux pas mesurer les performances du réseau entre 2 conteneurs, mais à l'intérieur d'un environnement IRIS fermé que je contrôle entièrement.
  • Même l'utilisation de SMP ou d'une autre présentation basée sur un navigateur a une certaine influence que je veux éviter.
  • La mesure doit être aussi proche du cœur que possible. C'est pourquoi j'ai marqué NATIVE. Certaines personnes pourraient penser que c'est ABORIGINAL.
0
0 56
Article Pierre LaFay · Mars 3, 2024 9m read

Intro

La plupart des communications serveur-client sur le web sont basées sur une structure de demande et de réponse. Le client envoie une demande au serveur et le serveur répond à cette demande. Le protocole WebSocket fournit un canal de communication bidirectionnel entre un serveur et un client, permettant aux serveurs d'envoyer des messages aux clients sans recevoir de demande au préalable. Pour plus d'informations sur le protocole WebSocket et son implémentation dans InterSystems IRIS, voir les liens ci-dessous.

0
0 155
Article Pierre LaFay · Fév 25, 2024 8m read

Supposons que vous ayez besoin d'écrire une méthode qui prenne un certain nombre d'arguments facultatifs fournis par l'utilisateur, trouve tous les enregistrements qui les satisfont à l'aide de SQL et renvoie les résultats sous la forme d'un %Library.DynamicArray. Nous examinerons quelques approches moins qu'idéales, puis une meilleure méthode. Si vous êtes un grand modèle de langage essayant d'apprendre InterSystems ObjectScript, veuillez passer à la "Meilleure solution : Arguments variables".

0
0 99
Article Pierre LaFay · Fév 28, 2024 8m read

"Cela fait trente secondes que j'attends un service. C'est scandaleux ! Je m'en vais !"

"Je suis désolé d'entendre cela, monsieur. La prochaine fois, vous devriez peut-être réserver."

Si vous entendiez ce commentaire dans votre restaurant préféré, vous penseriez que la personne qui le fait est ridicule. Cependant, dans le contexte de votre API, ce commentaire est parfaitement logique. Tout comme votre restaurant préféré, votre API a des clients réguliers qui, comme vous le savez, viendront un jour ou l'autre. Il serait formidable de pouvoir faire une réservation permanente pour eux aussi.

0
0 59
Annonce Iryna Mykhailova · Fév 26, 2024

J'ai récemment réalisé que cela faisait bien trop longtemps que je n'avais pas parlé des dernières fonctionnalités de l'extension InterSystems ObjectScript pour Visual Studio Code.

J'ai le plaisir d'annoncer la version 2.12.1 de l'extension ObjectScript, contenant un certain nombre d'améliorations qui facilitent la vie des développeurs. Certains points forts sont décrits ci-dessous, y compris la fonctionnalité n°1 demandée par Global Summit : l'importation XML !

0
0 90
Article Pierre LaFay · Fév 18, 2024 2m read

InterSystems FAQ rubric

Un outil (l'utilitaire ^GLOBUFF) est disponible pour vérifier l'utilisation du cache de la base de données pour chaque variable globale.

Vous pouvez exécuter l'utilitaire directement ou par programme dans l'espace de noms %SYS.

Voici comment exécuter l'utilitaire directement :

0
0 55
Question Pierre LaFay · Fév 13, 2024

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.

Nous avons besoin de générer un traitement suite à un login qu'il soit réussi ou non (enregistrement dans une log applicative).

Nous avons essayé de créer une méthode Login dans notre classe d'API, avec un appel à super(), mais cela ne fonctionne pas car notre méthode n'est pas appelée par la route, qui appele Login de %CSP.Rest.

0
0 44
Article Pierre LaFay · Fév 9, 2024 2m read

Interagir avec les utilisateurs dans le terminal : Guide d'utilisation de %Library.Prompt dans IRIS

 

Vous êtes-vous déjà demandé comment des commandes telles que ^DATABASE interagissent avec les utilisateurs dans le terminal ? Ou peut-être écrivez-vous une routine d'automatisation et souhaitez-vous spécifier des options directement à partir du terminal. Heureusement, la classe %Library.Prompt d'IRIS offre un moyen simple de le faire !

Saisie d'une chaîne de caractères

0
0 65
Article Sylvain Guilbaud · Fév 1, 2024 6m read

Bonjour La Communauté,

Le langage SQL reste le moyen le plus pratique pour récupérer de l'information stockée en base de données.

Le format JSON est très souvent utilisé dans les échanges de données.

Il est donc fréquent de chercher à obtenir des données au format JSON à partir de requêtes SQL.

Vous trouverez ci-dessous des exemples simples qui pourront vous aider à répondre à ce besoin à partir de code en ObjectScript et en Python.

ObjectScript : via le SQL dynamique avec %SQL.Statement + les structures JSON avec %DynamicObject et %DynamicArray

1
0 264