Search

Clear filter
Question
Sabrina Paravidini · Oct 19, 2023

Intersystems Cache x Power BI

Someone, please point me to the location of the cache ODBC drivers.I don't have acess https://login.intersystems.com/login/SSO.UI.Login.cls?referrer=https%253.... I need driver for acess the BD Intersystems Cache in the Power BI. For what operative system? I'm not sure if this will solve your problem, but you can find JDBC drivers in the installation folder: Installation folder > dev > java > lib > 1.8 You'll find the file intersystems-jdbc-3.6.1.jar. I believe you can use this to connect to Power BI, if necessary. Win11 I'm new here. I don't know how to search, I'm sorry, but would it be here within this same forum? Error: No worries, you can find more information at Documentation:https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=BNETODBC_introhttps://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=BTPI_jdbc
Question
Jordan Everett · Mar 30, 2023

Intersystems Environment Requiring Values in Parameters

Hey all, I have been creating a class to handle file encryption by using GPG keys. I pushed my code out today and my encrypt and decrypt methods weren't working. About a half an hour later in troubleshooting I found out that it needed to be a syntax change. My method has three parameters to it. Examples below: This is how I was calling it in the test system with no issues: do gpg.Encrypt() This is how I was having to call it in my production system to work with no issues: do gpg.Encrypt("","","") If I was to enter in my production environment do gpg.Encrypt() I would just get an undefined due to it not interpreting my variables. It's like on my test system it infers my arguments if they're null, but on my production system they need to be passed in order to be interpreted. Is there an environment variable in Intersystems that I might be missing that would cause this behavior? This is just out of pure curiosity and isn't a true need, but I just found it interesting/peculiar. What does your method's argument list look like? If it's something like this: Method Encrypt(pVarA As %String = "", pVarB As %String = "", pVarC As %String = "") As %Status The pVar* variables above should automatically default to empty strings when the method is called as provided in your first example. I'm not aware of any system setting that would affect the behavior of unsupplied values for method arguments when they're not defined with an initial value (unlike those in my snippet above). That doesn't mean that there isn't one, though ... What's the Undefined config value on TEST and PROD: zn "%SYS" set sc=##Class(Config.Miscellaneous).Get(.p) write p("Undefined") Here is a snippet of my arguments. I don't have them set to a default value which wouldn't be a bad practice to get into anyways. Method Encrypt(pDirectory As %String, pDelete As %Boolean, pLog As %Boolean) As %Status On my production box it is a 0 and on my test system it is a 2. Well I guess there IS a setting (thanks, @Eduard.Lebedyuk!) The parameter Undefined specifies the behavior when ObjectScript attempts to fetch the value of a variable that has not been defined. The value of Undefined may be 0, 1, or 2: 0 - Always throw an <UNDEFINED> error. (default) 1 - If the undefined variable has subscripts, return a null string, but if the undefined variable is single-valued, throw an <UNDEFINED> error. 2 - Always return a null string. You can change that setting in System Administration | System Configuration | Additional Settings | Compatibility. There definitely does seem to be one! I went ahead and set the parameters in the Method and changed my test system to match my production system. Thank you guys so much!
Question
Abdul-Rashid Yakubu · Mar 22, 2022

Finding the median in intersystems cache SQL

Hi, Is there a way to find the median in Intersystems Cache SQL? I know it is not available as an aggregate function. Also in SQL Server I could try something like: SELECT ( (SELECT MAX(Score) FROM (SELECT TOP 50 PERCENT Score FROM Posts ORDER BY Score) AS BottomHalf) + (SELECT MIN(Score) FROM (SELECT TOP 50 PERCENT Score FROM Posts ORDER BY Score DESC) AS TopHalf) ) / 2 AS Median However, there is no PERCENT Keyword in Cache as well. Any suggestions? Thanks See Median in SQL As of IRIS 2021.1, we allow users to create their own aggregate functions. Perhaps there's a beautiful community contribution in there? :-) You could build something simple where you just stuff all values in a temporary global (the name of which you pass as a state) and sort them (using $sortbegin/$sortend), maintaining a count and then in the FINALIZE method gather the actual median value. Two caveats: don't bother implementing a MERGE function. We don't support parallel execution just yet. in some query execution plans, the FINALIZE method may be called more than once (e.g. if the aggregate is used in the SELECT list and say a HAVING clause). So you may want to cache your result somewhere (a PPG will do as this is in the last single-process mile of query processing, typically mere milliseconds apart) We'll be removing these annoyances in a future version SELECT TOP 1 AVG(main.age) AS _Average,min(main.age) AS _Min, CASE WHEN %vid = count(main.age)/2 THEN main.age else 0 END+MAX(CASE WHEN %vid = count(main.age)/2 THEN main.age else 0 END) AS _Median, max(main.age) AS _Max FROM ( SELECT TOP all a.Age FROM Sample.Person a ORDER BY a.Age ) main Thanks Randy!
Announcement
Todd Patterson · Sep 24, 2021

Looking for an accomplished Intersystems Software Developer

Intersystems Software Developer – Grand Traverse Plastics Corp. Location: Williamsburg, MI Note: This position is an ‘on site’ position. We are looking for an accomplished InterSystems developer to join our team. Grand Traverse Plastics is a fast growing and leading edge plastics injection molder. With 145 employees and 35 million in annual sales we offer an excellent place to work in one of the nicest areas in the Midwest. The candidate will assist in the development of our custom ERP system running on Cache. The software has continually evolved over 20+ years and is involved in every aspect of our business. We are looking for a candidate that can leverage their skill to help us interface with things from best of breed accounting packages, BI systems and IoT type devices on our plant floors. Qualifications: 5+ years with Intersystems Cache/Iris Cache Object Script as well as Object oriented class development In depth knowledge of data storage and design with Globals and Classes SQL, Angular, Java, Python experience helpful 2+ years with Ensemble Interoperability with various connectors and protocols (APIs, REST, SOAP, XML, EDI) Linux knowledge a plus Experience with any of the following: Deep See, Tableau, Power BI, Crystal Reports, Adaptive Analytics Creative and Innovative mindset Strong verbal, written and inter-personal skills Salary: 70k to 90k depending on skill level If interested, please forward your resume to tpatterson@grand-t.com Learn more about our exciting company here: https://www.gtpplastics.com
Question
Padmini D · Nov 6, 2020

Unable to find Intersystems Cache` software

Hi All, I am new to InterSystems Cache and want to explore the database features for one of the use cases we have. I am trying to find the community version of it from in https://download.InterSystems.com but only found InterSystems IRIS and Intersystems IRIS health community versions. Please help me to download and install this. Regards, Sireesha You can download these versions. Community Edition just has a few limitations, but still can be used. And look at the installation guides Hello Dimitry/Team, can you please let me know the difference of Intersystems cache DB and intersystems IRIS, we are evaluating it in our POC to implement as a application solution. Hi Dmitriy/Team, what is the difference between Intersystems Cache DB and Intersystems IRIS ? I am looking for Cache DB installation details, but getting IRIS only everywhere. Thanks, Kranthi. IRIS is a kind of replacement for Caché, which now no active development. So, while you are evaluating it, you should not look for Caché, and switch to IRIS. Very generally speaking: There is nothing in Caché that you can't do with IRIS.The only thing you might miss eventually, are some ancient compatibility hooks back to the previous millennium. https://cedocs.intersystems.com/latest/csp/docbook/Doc.View.cls?KEY=GCI_windows
Question
Andy Stobirski · Dec 13, 2021

Log4Shell Apache exploit / Intersystems products

Hi everyone I see that a new Apache bug has been discovered, and since various InterSystems products use an Apache webserver, have Intersystems released any news or updates on this? I'm not seeing any updates, press releases from them. Anyone know anything? Andy The Apache HTTP Server is not written in Java (See this StackExchange post) The security exploit refers to a very popular java logging implementation, log4j. Log4j is published under the Apache Foundations name, but is not to be confused with the Apache http server (also called httpd occasionally). That said, you might want to check if you are using any Java libraries in your InterSystems products via the Java gateway - and if they are bundled with log4j for logging. Also check if you are having log4j directly in your Java classpath. What you are looking for is the log4j.jar. If you want to check a library, you can download the jar of the library and open it with 7zip or similar tools, then take a look and check if it contains log4j.jar. If it does, you should get in touch with the creator of the library. Disclaimer: I am not part of InterSystems, this is of course not an official statement. I am just a Java developer that had to deal with this today a bit! We got an answer from ISC: ====IRIS and Cache do use log4j but our products do not include versions affected by this vulnerability. This vulnerability affects versions from 2.0-beta9 to 2.14.1. The log4j versions used in Cache and IRIS product are based on version 1.x of log4j which is not affected by this issue.==== But of course one can use Log4j 2.* in your own Java applications. You can also open your log4j.jar as you would a zip file, go to the META-INF folder, open MANIFEST.MF and look for "Implementation-Version" to see which version of log4j it is. I'm surprised you got an answer as I was unable to get one over the weekend until ISC makes any official statement. However, re: the 1.x comment: 2031667 – (CVE-2021-4104) CVE-2021-4104 log4j: Remote code execution in Log4j 1.x when application is configured to use JMSAppender (redhat.com) The only usage of log4j I could find within an ISC platform was on Clinical Viewer. Curious if you could share where it is otherwise seen as being used? Maybe compiled into one of their own libraries and not directly exposed however. Please see the following page for official InterSystems guidance!https://community.intersystems.com/post/december-13-2021-advisory-vulnerability-apache-log4j2-library-affecting-intersystems-products That's interesting! @Dmitry.Maslennikov posted a quick grep on the community discord and found a few occurrences in the machine learning and fop parts. So I guess these parts are those that might potentially be affected - but actually not, since they are still log4j v1! I'll just repost @Dmitry.Maslennikov grep from the community discord here, which might give you a hint where to look until ISC updated the official statement $ grep -ir log4j /usr/irissys/ /usr/irissys/lib/RenderServer/runwithfop.bat:rem set LOGCHOICE=-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger Binary file /usr/irissys/dev/java/lib/h2o/h2o-core-3.26.0.jar matches Binary file /usr/irissys/dev/java/lib/uima/uimaj-core-2.10.3.jar matches Binary file /usr/irissys/dev/java/lib/1.8/intersystems-integratedml-1.0.0.jar matches Binary file /usr/irissys/dev/java/lib/1.8/intersystems-cloudclient-1.0.0.jar matches Binary file /usr/irissys/dev/java/lib/1.8/intersystems-cloud-manager-1.2.12.jar matches Binary file /usr/irissys/dev/java/lib/datarobot/datarobot-ai-java-2.0.8.jar matches /usr/irissys/fop/fop:# LOGCHOICE=-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger /usr/irissys/fop/fop.bat:rem set LOGCHOICE=-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger Binary file /usr/irissys/fop/lib/commons-logging-1.0.4.jar matches Binary file /usr/irissys/fop/lib/avalon-framework-impl-4.3.1.jar matches /usr/irissys/fop/lib/README.txt: (Logging adapter for various logging backends like JDK 1.4 logging or Log4J) Binary file /usr/irissys/fop/lib/pdfbox-app-2.0.21.jar matches
Announcement
Jonathan Gern · Jun 16, 2020

Intersystems Solutions Engineer- Full Time

My organization is looking for a full time Intersystems Solutions Engineer to join the team. Based in NY, the Solutions Engineer will design technical architectures to support efforts across the health system focused on clinical data exchange with other provider organizations and payors.
Announcement
Neerav Verma · Jan 27, 2021

Certified Intersystems Professional Available on Contract

Hello fellow community members, I would like to offer my services as an Intersystems Professional and am available to work on projects. I have more than a decade experience into Intersystems stack of technologies including IRIS, Ensemble, Healthshare, Healthconnect, Cache Objectscript, Mumps, Zen, Analytics etc. with companies spread over US and UK involved in multiple domains. KEY SKILLS: Cloud Computing (AWS, MS Azure, GCP)Intersystems Technology Stack (IRIS, Ensemble, Healthshare, Cache, Mumps, CSP, ZEN, Analytics)Databases (Modelling & Backend database design, SQL, PL/SQL SOAP & Restful APIsAnalytics & DashboardsHealthcare Interoperability Standards (HL7, FHIR, EDI X12)Notations (XML, JSON) |Agile Frameworks & Tools (Scrum, Kanban, JIRA, Confluence)Dockers | Linux Recent CertificationsIntersystems IRIS Core Solutions Developer SpecialistIntersystems Health Connect HL7 Interface SpecialistMicrosoft Azure Solutions Architect ExpertCertified Scrum Master I am keen and open to work on exciting projects which are not only focused on Intersystems stack but also using cloud and having AI/ML functionalities would be wonderful. My ideal role would be a position where I am able to make a strong impact to the project.Current availability : 20 hours a week.Location : London, UK Please feel free to drop me a line and say Hellonv@nv-enterprises.biz / https://www.linkedin.com/in/vneerav/ RegardsNeerav Verma
Question
Pushyanthkumar Mukkala · Aug 4, 2023

Azure Databricks JDBC connection to Intersystems

We encountered difficulties while attempting to establish a JDBC connection to Intersystems using AZURE Databricks, resulting in an inability to retrieve data. The JDBC version utilized was intersystems-jdbc-3.3.1.jar. If anyone has successfully employed Databricks for establishing a connection, we would appreciate information regarding the libraries you used Error Message:org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 0.0 failed 4 times, most recent failure: Lost task 0.3 in stage 0.0 (TID 3) (10.140.70.71 executor driver): java.sql.SQLException: [SQLCODE: <-25>:<Input encountered after end of query>] What was the query you were trying to run? This looks like an issue with the way the query was written. We followed the instructions in the Spark JDBC connection guide. We think the problem might have something to do with a library, but we're not sure Below is the query: cacheDF = spark.read \ .format('jdbc') \ .option('url', connectString) \ .option("query", "select AdjudicatedSvcNum from CLAIMS.AdjudicatedSvcs") \ .option('user', user) \ .option('password', password) \ .option('driver','com.intersystems.jdbc.IRISDriver') \ .load()cacheDF.show() Hi David We followed the instructions in the Spark JDBC connection guide. We think the problem might have something to do with a library, but we're not sure Below is the query: cacheDF = spark.read \ .format('jdbc') \ .option('url', connectString) \ .option("query", "select AdjudicatedSvcNum from CLAIMS.AdjudicatedSvcs") \ .option('user', user) \ .option('password', password) \ .option('driver','com.intersystems.jdbc.IRISDriver') \ .load()cacheDF.show() I hit this too...Instead of a query, try a dbtable with a query wrapper to a temp_table... .option("dbtable", "(SELECT name,category,review_point FROM SQLUser.scotch_reviews) AS temp_table;") check this post for full in and out with jdbc to databricks.https://community.intersystems.com/post/databricks-station-intersystems-cloud-sql Hello Ron I am using dbtable only final_result = (spark.read.format("jdbc")\ .option("url", jdbcUrl) .option("driver", "com.intersystems.jdbc.IRISDriver") .option("dbtable", f"({sql}) as temp;") .option("user", user) .option("password", password) .option("sslConnection","true") .load())This works fine until I add one specific column from the same table, when I add that column I get following error < Input (;) encountered after end of query using - intersystems-jdbc-3.8.0.jarKindly help Hi @Pushyanthkumar.Mukkala / @Vishwas.Gupta / @David.Hockenbroch / @sween,How did you fixed the issue? I tried below code, which is providing incorrect data. For String datatype columns, it is providing column name as values for rows and for Integer datatype columns, it is providing 0 as values for rows.Could someone assist with this issue? or How to read data from InterSystems Cache DB to Databricks using JDBC? df = spark.read \ .format("jdbc") \ .option("url", f"jdbc:Cache://{server_ip}:{port}/{namespace}") \ .option("driver", "com.intersys.jdbc.CacheDriver") \ .option("dbtable", "(SELECT * FROM Sample.Company) AS t;") \ .option("user", username) \ .option("password", password) \ .option("fetchsize", "1000") \ .option("pushDownPredicate", "false") \ .option("pushDownAggregate", "false") \ .option("pushDownLimit", "false") \ .load() df.show() Below is the output, I received:
Article
Rob Ellis · Dec 13, 2024

Intersystems Interoperability Enhancements with IRIS Whiz

The latest "Bringing Ideas to Reality" InterSystems competition saw me trawling through the ideas portal for UI problems to have a go at. I implemented the following ideas in the IRIS Whiz browser extension, so if you use the management portal to help with your day-to-day integration management this extension could be for you! Feature Added: Queue refresh Iris now has an auto refresh dropdown for the Queues page. Will refresh the queue at the interval selected. Does not load on Ensemble as it already has this feature. Useful if you have an upcoming clicking competition and need to rest your clicking finger. Implemented from idea: https://ideas.intersystems.com/ideas/DPI-I-487 Feature Added: Export Search as CSV On the Message Viewer page you can click the Iris Whiz Export button to download a CSV copy of the data currently in your search table. Useful if you want to do quick analysis on your data but don't want to use the fancy new Chart.JS page I spent ages creating (see that in action here!). Implemented from idea: https://ideas.intersystems.com/ideas/DPI-I-566 Feature Added: Production Page Queue Sort Added sort options for the queue tab on the production page. Defaults to sorting by error count. Click a table header to switch between asc and desc sort order. Use the search bar to find items quickly. Useful if you don’t want to scroll to get to the biggest queue. Implemented from idea: https://ideas.intersystems.com/ideas/DPI-I-628 Feature Added: Category Dropdown Case-Insensitive Order Alphabetises the category dropdown list on the production page, regardless of case. Without this the order is case dependent. Useful if you want to find things in the category list but don’t want to have to re-categorise everything into the same case to do it. Implemented from idea: https://ideas.intersystems.com/ideas/DPI-I-625 Bonus! There’s also a refresh rate on the message viewer tab on the production page. This will also refresh your queue tab if you select an interval and navigate to the queue tab. If you like any of these ideas please download the browser extension and let me know your thoughts. You can find a setup video on the OpenExchange listing which I recommend watching as you will need to complete some of it for most of the functionality to work!
Article
Developer Community Admin · Oct 21, 2015

Performance Comparison of InterSystems Caché and Oracle in a Data Mart Application

AbstractA global provider of mobile telecommunications software tested the performance of InterSystems Caché and Oracle as the database in a simulated data mart application. They found Caché to be 41% faster than Oracle at building a data mart. When testing the response time to SQL queries of the data mart, Caché's performance ranged from 1.8 times to 513 times faster than Oracle.IntroductionTelecommunications companies, because they generate and must analyze enormous amounts of information, are among the most demanding database users in the world. In order to make practicable business intelligence solutions, telecommunications firms typically select key pieces of raw data to be loaded into a "data mart", where it is indexed and aggregated in various ways before being made available for analysis. Even so, the data marts in question may be hundreds of gigabytes in size. Database performance, both in the creation of the data mart, and in the query response time of the data mart, is critical to the timely analysis of information, and ultimately to the ability of the enterprise to identify and act upon changes in their business environment.This paper presents the results of comparative performance tests between InterSystems Caché and Oracle. They were performed by a global provider of mobile telecommunications software, as they evaluated database technology for incorporation into a new business intelligence applications relating to mobile phone usage.
Article
Developer Community Admin · Oct 21, 2015

Using InterSystems Caché for Securely Storing Credit Card Data

Introduction In today's world, an ever-increasing number of purchases and payments are being made by credit card. Although merchants and service providers who accept credit cards have an obligation to protect customers' sensitive information, the software solutions they use may not support "best practices" for securing credit card information. To help combat this issue, a security standard for credit card information has been developed and is being widely adopted.The Payment Card Industry (PCI) Data Security Standard (DSS) is a set of guidelines for securely handling credit card information. Among its provisions are recommendations for storing customer information in a database. This paper will outline how software vendors can take advantage of the InterSystems Caché database - now and in the future - to comply with data storage guidelines within the PCI DSS. using-intersystems-iris-securely-storing-credit-card-data.pdf
Question
Tom Philippi · Feb 25, 2017

How do i change the language of my InterSystems studio

I did a clean install of InterSystems ensemble on a new computer. However, even though my OS and my browser are set the English, the Ensemble installation is in dutch. Does anyone know how I can change the language of my InterSystems Studio so that it is in English? In the old way you can choose any language to work. Studio uses language from Regional Settings. Even when system's language is English, but you can use your regional settings (clock, number formats etc). And you can change to use default language inside Studio. Nice, I didn't know that option.In the "old days" I simply rename or delete the CStudioXXX.dll (where XXX denote the language) at bin directory. Then the default english configuration was used.Thanks
Question
Evgeny Shvarov · Apr 5, 2016

How to avoid writing duplicate code in dtl InterSystems Ensemble

Hi! There is a question for Ensemble on Stackoverflow:I have the below dtl. In the foreach loop, I am just copying the same code in another part under anif condition. How can I avoid this redundancy? Can I reuse using sub transformation?Here is the dtl class file :https://docs.google.com/document/d/1snJXElyw13hAfb8Lmg5IaySc7md_DE8J40FB79hBaXU/edit?usp=sharingOriginal question. Hi, Nic!Thank you for your answer!Would you please put it on Stackoverflow too? http://stackoverflow.com/questions/36400699/how-to-avoid-writing-duplicate-code-in-dtl-intersystem-ensembleThank you in advance! Maybe I'm missing something, but it seems like you could have an OR condition to eliminate the code duplication if condition='ExcludeInactiveAllergiesAlerts="No" OR flag'="No"
Announcement
Janine Perkins · Sep 13, 2016

Featured InterSystems Online Course: Building Custom Business Operations

Learn to design, build, implement, and test a new custom business operation in an Ensemble production by taking this online learning course.This course will teach you how to determine when and why to create a custom business operation, design and create a custom business operation for a production, and add a new business operation to a production and configure settings.Learn More.