#ObjectScript

0 Abonnés · 118 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 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 320
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 85
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 131
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.

5
0 102
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.
1
0 77
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 253
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".

1
0 126
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 78
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 122
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 72
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 60
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 92
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 332
Article Sylvain Guilbaud · Jan 29, 2024 13m read

Nous avons un délicieux dataset avec des recettes écrites par plusieurs utilisateurs de Reddit, mais la plupart des informations sont du texte libre comme le titre ou la description d'un article. Voyons comment nous pouvons très facilement charger l'ensemble de données, extraire certaines fonctionnalités et l'analyser à l'aide des fonctionnalités du grand modèle de langage OpenAI contenu dans Embedded Python et le framework Langchain.

Chargement de l'ensemble de données

Tout d’abord, nous devons charger l’ensemble de données ou pouvons-nous simplement nous y connecter ?

0
0 238
Article Pierre LaFay · Jan 20, 2024 9m read

Avec l'avènement d'Embedded Python, une myriade de cas d'utilisation sont désormais possibles depuis IRIS, directement en utilisant les librairies Python pour des opérations plus complexes. L'une de ces opérations consiste à utiliser des outils de traitement du langage naturel tels que la comparaison de similarités textuelles.

Configuration de Python intégré pour utiliser la librairie de transformateurs de phrases

0
0 185
Article Pierre LaFay · Jan 13, 2024 3m read

Bienvenue à tous!

Dans ce court article, je voudrais présenter un exemple d'utilisation auquel beaucoup d'entre vous qui travaillent avec IRIS comme backend pour vos applications Web ont sûrement été confrontés à plus d'une occasion : comment envoyer un fichier à votre serveur depuis le frontend. .

0
0 61
Question Pierre LaFay · Jan 12, 2024

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.

4
0 50
Article Pierre LaFay · Jan 6, 2024 23m read

Jusqu'à présent, nous avons expliqué comment utiliser ObjectScript pour gérer les utilisateurs, les rôles, les ressources et les applications. Il existe quelques autres classes dans ce package qui fonctionnent de manière similaire à celles mentionnées ci-dessus. Cependant, ces quatre classes sont celles que chacun devra utiliser pour gérer la sécurité de ses applications. Supposons que vous souhaitiez créer votre propre portail de gestion de la sécurité pour ce package. Il y aurait des problèmes spécifiques à prendre en compte pour une API. Étant donné que les classes utilisent des méthodes

1
0 77
Question Antoine.Dh · Déc 13, 2023

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-sample#comment-166186

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:

<UNDEFINED>newvar+3^%qaqcasl *%classname

la requete que j'effectue:

2
0 116
Annonce Irène Mykhailova · Nov 29, 2023

Bonjour la communauté,

Nous savons que vous attendez ce moment avec impatience depuis une année (et nous avons même reçu des messages demandant si cela se produira 😉)... Eh bien, le moment est maintenant là !

Rejoignez l'Advent of Code 2023 avec InterSystems et participez à notre concours ObjectScript pour avoir une chance de gagner des prix fabuleux !


0
0 70
Article Lorenzo Scalese · Nov 9, 2023 14m read

Salut les devs,

Actuellement, je travaille sur un projet qui requiert une gestion hautement dynamique des événements. Dans le contexte du langage de programmation Java, mon premier choix aurait été d'opter instinctivement pour l'utilisation du "Observer Pattern". Le "Observer Pattern" représente une approche pour gérer les interactions entre les objets en établissant un mécanisme de notification. Il permet à plusieurs observateurs de réagir de manière autonome aux changements d'état d'un sujet, favorisant ainsi la flexibilité et la modularité du code. Si vous n'êtes pas familier avec ce modèle de conception, vous pouvez trouver de plus amples informations à ce sujet sur ceWikipedia

Bien que ce soit naturel et couramment utilisé dans certains langages de programmations comme le Java ou le C++, en ObjectScript pas du tout. 

2
1 169
Question Laurent Jouron · Oct 24, 2023

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 ];

7
0 111
Article Lorenzo Scalese · Sept 15, 2023 6m read

Salut les développeurs,

Dans cet article, je vais vous montrer comment exécuter du code au moment de la compilation avec les macros ObjectScript.

Voici un cas d'utilisation qui m'a récemment amené à utiliser cette fonctionnalité :

Dans le cadre d'une application médicale développée depuis plus de 20 ans, nous avons un grand nombre de paramètres. Bien que nous disposions de procédures pour documenter ces paramètres, il peut être utile d'avoir une vue rapide sur les paramètres réellement utilisés par le code de l'application.

0
0 104
Article Iryna Mykhailova · Août 28, 2023 3m read

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.

0
0 58
Article Iryna Mykhailova · Juil 7, 2023 2m read

Excusez si cela est évident pour les programmeurs Python, mais pour ceux qui viennent d'ObjectScript, cela peut être une astuce utile.

Lorsqu'on développe avec des commandes python.

Le test des fonctionnalités sont en cours via le shell :

$SYSTEM.Python.Shell()
 
Python 3.9.5 (default, Mar 14 2023, 06:58:44) [MSC v.1927 64 bit (AMD64)] on win32
Type quit() or Ctrl-D to exit this shell.
>>>

Lorsque Python évalue une expression dans le shell, il imprime le résultat de l'expression sur le terminal.

>>> 1 + 2

3

Il est assez facile d'évaluer et d'afficher accidentellement des valeurs

0
0 91
Article Guillaume Rongier · Juil 3, 2023 5m read

Les méthodes écrites en ObjectScript peuvent utiliser des arguments de type " passage par référence " pour renvoyer des informations à l'appelant. Python ne supporte pas les arguments de type " passage par référence ", donc Python intégré dans IRIS ne les supporte pas non plus. Voilà, c'est la fin de cet article, j'espère qu'il vous a plu 😉 Mais attendez, et le Rock & Roll Classic ?

0
0 61