All time
Article
· Jul 18, 2017 2m read
Old/New Dynamic SQL Cheat Sheet

The newer dynamic SQL classes (%SQL.Statement and %StatementResult) perform better than %ResultSet, but I did not adopt them for some time because I had learned how to use %ResultSet. Finally, I made a cheat sheet, which I find useful when writing new code or rewriting old code. I thought other people might find it useful.

First, here is a somewhat more verbose adaptation of my cheat sheet:

8 35
4 2.5K
InterSystems Developer Community is a community of 25,468 amazing developers
We're a place where InterSystems IRIS programmers learn and share, stay up-to-date, grow together and have fun!

Hey Community,

Please join the next InterSystems online programming competition:

🏆 InterSystems FHIR Accelerator Programming Contest 🏆

Submit an application that uses InterSystems FHIR-as-a-service on AWS or helps to develop solutions using InterSystems IRIS FHIR Accelerator.

    Duration: May 10 - June 06, 2021

    Total prize: $8,750

    👉 Landing page 👈

    6 15
    1 2.9K

    Hello, developers!

    In this series, I will not show you how to use IRIS for Health, but rather how to use SUSHI, a tool for creating FHIR profiles, as an associated technology.

    With the right tools, the profile information (specifications, limitations, extensions, etc.) of a FHIR project can be well organized and published.

    Before we begin, what is SUSHI? I will briefly explain it.

    11 0
    0 3.2K
    Article
    · Oct 24, 2016 4m read
    DeepSee Troubleshooting Guide

    The goal of this “DeepSee Troubleshooting Guide” is to help you track down and fix problems in your DeepSee project.

    If the problem can’t be fixed by following the guidelines, you will at least have enough information to submit a WRC issue with DeepSee Support and provide all the evidence to us, so we can continue the investigation together and resolve it faster!

    13 16
    1 2.8K
    Article
    · Jan 31, 2018 3m read
    Container - What is a Container?

    Containers

    With the launch of InterSystems IRIS Data Platform, we provide our product even in a Docker container. But what is a container?

    The fundamental container definition is that of a sandbox for a process.

    Containers are software-defined packages that have some similarities to virtual machines (VM) like for example they can be executed.

    Containers provide isolation without a full OS emulation. Containers are therefore much lighter than a VM.

    12 20
    1 2.8K
    Question
    · Aug 16, 2017
    PROTECT error

    I try to run below two statements

    Set tRS = ##class(%ResultSet).%New("%Dictionary.ClassDefinition:SubclassOf")
    ​set tSC = tRS.Execute("%Persistent")

    and I always get <PROTECT>check+5^%Dictionary.ClassDefinitionQuery.1

    The login user is _SYSTEM and should have all the permissions.

    I cannot run queries in the $SYSTEM.SQL.Shell(). I would get <PROTECT>%GenerateMetadata+16^%SQL.StatementMetadata.1

    However, when I run the query through SMP, everything is fine.

    Any idea where could I start to investigate ?

    Thanks.

    1 5
    0 3.2K
    Article
    · Mar 14, 2018 10m read
    REST Design and Development

    Intro

    For many in today's interoperability landscape, REST reigns supreme. With the overabundance of tools and approaches to REST API development, what tools do you choose and what do you need to plan for before writing any code?
    This article focuses on design patterns and considerations that allow you to build highly robust, adaptive, and consistent REST APIs. Viable approaches to challenges of CORS support and authentication management will be discussed, along with various tips and tricks and best tools for all stages of REST API development. Learn about the open-source REST APIs available for InterSystems IRIS Data Platform and how they tackle the challenge of ever-increasing API complexity.
    The article is a write-up for a recent webinar on the same topic.

    6 5
    6 3.1K

    The .NET Core Identity model has an IPasswordHasher<> interface for for

    • Hashing a password so that it can be stored in a database
    • Verifying a provided plain-text password matches a previously stored hash.

    I am getting invalid password errors during the login process when the .NET Core Identity model computes a hash from a plain text input and compares it to a password hash value I've returned from Caché. The default hashing algorithm is PBKDF2 with HMAC-SHA256, 128-bit salt, 256-bit subkey, and 10,000 iterations (detailed article on .NET Core Identity PasswordHasher). The algorithm Caché uses is probably different which may be why I am getting errors.

    0 6
    1 3.2K

    I have an imported WSDL from SalesForce and I am trying to send a login-request to the SalesForce-servers via InterSystems. The login requires a username and a password in the body, and an organizationId in the header. I am having trouble filling the organizationId in the header.

    Via SoapUI I can send a successfull message to the SalesForce-servers. The message should look like this:

    0 4
    0 3.1K

    Problem:

    Caché prints to printers in a manner somewhat different from other Windows applications. Caché sends the data directly to the GDI Printer, without the usual interface. This is because the GUI interface can only be shown on a system desktop session and not in web browser and terminal sessions. Some printer drivers have problems with this method of printing.

    Is this the problem you are having?

    4 3
    3 3.1K

    In this article, I would show how you can upload and download files from InterSystems products via http.

    The questions about working with files over http arise fairly often on community and I'm usually linking to my FileServer project which demonstrates file upload/download but I'd like to talk a bit more on how we can serve and receive files from InterSystems products.

    8 3
    5 3K

    Hi everyone,

    Does anyone know how to export projects via VSC?

    I opened the project through the "InterSystems Tools" plugin (command is "Edit Code in Project") and I can correctly work on it.

    However, when I try using the "ObjectScript" plugin to export the project (right click on the project -> "Export Project Contents")

    This message appears and it is not possible to export the project:

    0 8
    0 3.1K

    Hi all!

    In this article I would like to review those VS Code extensions which I use myself to work with InterSystems and which make my work much more convenient. I am sure this article will be useful for those who are just starting their journey to learn InterSystems technologies. However, I also hope that this article could be useful for experienced developers with many years of experience and open up new possibilities for them when using VS Code for development.

    39 10
    6 2.9K

    Hope most of you already familiar with project CachéQuality from @Daniel Tamajon. For those who don’t know about it, it is a static syntax analyzer for your code written for InterSystems products. It may help you to find and solve many different types of issues in your code, and even possible bugs before clients will find it in production. So, with help of CachéQuality you will be able to deliver a better product. You can find the complete list of rules used to check ObjectScript code here.

    It was already available in Studio. And now it is also available in VSCode.

    5 41
    1 2.3K

    In the WRC, we frequently see customers contact us because their Web Gateway is unable to serve web pages. This article will explain a frequent reason why these errors can occur, and explain some tools which can be used to debug the problem. This explanation is focused on the Web Gateway serving InterSystems IRIS instances, but the same explanation should apply to the CSP Gateway serving Caché instances as well.

    8 1
    3 3.1K

    Way back when during our Siemens LCR days we had to limit the number of characters in OBX.5 to a length of 75. That was back when we had eGate.

    Now I need to do the reversal of that and take loop through a string length and split the string up into multiple OBX or NTE based on a certain length. In reading documentation $EXTRACT can do this if you know the exact length, but in this case we don't.

    So how would one loop through a string and say every 75 characters create a new OBX or NTE segment?

    Thanks

    Scott

    1 7
    0 3.1K
    Question
    · Oct 30, 2016
    ISCAgent debug

    Good day!
    Is there an opportunity to debug the ISCAgent behaviour (in Linux)? ISCAgent uses /etc/iscagent/iscagent.conf as configuration file, but in docs I've found a description only for two parameters (port number and interface - http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...). Other parameters I can see by running /usr/local/etc/cachesys/ISCAgentCtrl status:

    1 8
    0 3.1K