accéder à la publication Sylvain Guilbaud · Sept 12, 2023 Dans ce cas, @Ben Spead propose d'installer Python sur le serveur avec la bibliothèque que l'on souhaitez utiliser et d'appeler le script Python via $zf(-100). Plus tard, lorsque d'une mise à niveau de l'environnement, il sera possible de passer directement à l’utilisation de Embedded Python.
accéder à la publication Sylvain Guilbaud · Sept 12, 2023 Malheureusement, l'environnement de @Gilberto Alves n'est pas prêt à utiliser Embedded Python.
accéder à la publication Sylvain Guilbaud · Sept 12, 2023 @Ben Spead a donné une première réponse en proposant d'utiliser Embedded Python : Cela ressemble à un exemple classique d'exploitation de Python intégré dans IRIS pour utiliser le très grand nombre de bibliothèques Python qui font à peu près n'importe quoi :) Voici un article que j'ai trouvé lors d'une recherche rapide sur Google sur la façon de procéder en Python : https://www.geeksforgeeks.org/convert-pdf-to-image-using-python/ Vous pouvez simplement exploiter les capacités Python d'InterSystems IRIS pour utiliser la façon dont ce problème a été résolu en Python !
accéder à la publication Sylvain Guilbaud · Août 31, 2023 Le moyen le plus simple de toujours rester dans le siècle en cours est : $ZDATEH("26/05/23",4,,6) Il suffit d'utiliser yearopt = 6 pour obtenir toutes les dates qui n'ont que 2 chiffres dans le siècle courant. w $zdt($ZDATEH("26/05/23",4,,6),3) 2023-05-26 w $zdt($ZDATEH("26/05/1923",4,,6),3) 1923-05-26
accéder à la publication Sylvain Guilbaud · Août 30, 2023 Pour activer l'ensemble des événements d'AUDIT système, il suffit d'exécuter la requête SQL suivante depuis l'espace de noms %SYS : update security.events set enabled=1 where flags = 1 exemple : set tRes = ##class(%SQL.Statement).%ExecDirect(,"update security.events set enabled=1 where flags = 1") if tRes.%SQLCODE=0 { set ^["USER"]TRACE("%SYS Security.Events")=tRes.%ROWCOUNT_" successfully enabled" } else { set ^["USER"]TRACE("%SYS Security.Events")=tRes.%Message_" SQLCODE:"_tRes.%SQLCODE }
accéder à la publication Sylvain Guilbaud · Août 29, 2023 Avec embedded Python, vous pouvez avoir un code assez simple en utilisant pandas : /// Convert an Excel file to a CSV file ClassMethod XLStoCSV(source As %String = "/data/sample.xlsx") As %Status [ Language = python ] { import pandas as pd read_file = pd.read_excel(source) read_file.to_csv(source+'.csv', index = None, header=True) }
accéder à la publication Sylvain Guilbaud · Août 28, 2023 La syntax correcte à utiliser pour exclure les schémas système est : \%*
accéder à la publication Sylvain Guilbaud · Août 28, 2023 En fait, exclure tous les schémas '%' ne fonctionne pas très bien : avec cette option tous les noms de schémas sont masqués et quand on veut voir les données, les requêtes échouent du fait que toutes les tables sont considérées comme appartenant au schema par défaut SQLUser.
accéder à la publication Sylvain Guilbaud · Août 28, 2023 La solution consiste à utiliser les filtres Schémas / Utilisateurs : En ajoutant '%' dans les schémas / utilisateurs à exclure :
accéder à la publication Sylvain Guilbaud · Août 24, 2023 Bonjour @Taher C, je te suggère de créer des API REST dans IRIS et de les consommer depuis PowerApps/PowerAutomate. Tu trouveras ici un exemple de comment envoyer une requête http depuis PowerAutomate : https://www.spguides.com/rest-api-in-power-automate/ NB : Hubic est le nom historique du projet chez CFAO, qui n'a pas d'équivalence avec InterSystems Ensemble ni IRIS 😉
accéder à la publication Sylvain Guilbaud · Août 24, 2023 Faire la modification depuis la classe %SYSTEM.CSP en utilisant $system.CSP.SetConfig: CSS>d $system.CSP.DisplayConfig() ... CSS>w $system.CSP.GetConfig("DefaultPasswordChangePage") %CSP.PasswordChange.cls CSS>d $system.CSP.SetConfig("DefaultPasswordChangePage","CSS.CSP.ChangePassword.cls") CSS>w $system.CSP.GetConfig("DefaultPasswordChangePage") CSS.CSP.ChangePassword.cls
accéder à la publication Sylvain Guilbaud · Août 23, 2023 Bonjour, vous pouvez aussi utiliser une méthode "low-code" en utilisant le langage DTL avec l'action REMOVE utils.HL7.transfo.removeSegment Class utils.HL7.transfo.removeSegment Extends Ens.DataTransformDTL [ DependsOn = EnsLib.HL7.Message ] { Parameter IGNOREMISSINGSOURCE = 0; Parameter REPORTERRORS = 1; Parameter TREATEMPTYREPEATINGFIELDASNULL = 0; XData DTL [ XMLNamespace = "http://www.intersystems.com/dtl" ] { <transform sourceClass='EnsLib.HL7.Message' targetClass='EnsLib.HL7.Message' sourceDocType='2.6:ADT_A01' targetDocType='2.6:ADT_A01' create='copy' language='objectscript' > <assign value='' property='target.{EVN}' action='remove' /> <assign value='' property='target.{DG1()}' action='remove' /> </transform> } }