Eduard Lebedyuk · Jul 17, 2021 go to post

There are two ways to do that:

1. Mappings. Map classes and globals into the namespace you're querying from. This would work if there's no global/class collisions of course.

2. Custom queries. Here's an article on the topic. And here's an example.

3. Just set $namespace before running your query. Works only if you need to query one other namespace at a time. Example.

Eduard Lebedyuk · Jul 15, 2021 go to post

Sure, just mount C:\InterSystems\IRISHealth\mgr\samples\ folder as a docker volume.

After that add a new Database from inside the container pointing to the mounted folder.

Eduard Lebedyuk · Jul 13, 2021 go to post

Well, in that case:

ClassMethod ToNato(t) [ CodeMode = call ]
{
^S
}

And write everything in the S routine.

Eduard Lebedyuk · Jul 12, 2021 go to post

Article idea: Building IRIS images with Docker Build Mounts

From the docs on Docker Build Mounts:

RUN --mount allows you to create mounts that process running as part of the build can access. This can be used to bind files from other part of the build without copying, accessing build secrets or ssh-agent sockets, or creating cache locations to speed up your build.

This is a recent Docker feature allowing users to build compact images (since we no longer need to COPY everything inside). Try it out and write an article about it?

Eduard Lebedyuk · Jul 11, 2021 go to post

Have you tried to declare C# property like this:

public Dictionary<string, string> VarsXctsTU { get; set; }
Eduard Lebedyuk · Jul 10, 2021 go to post

Please consider adding samples illustrating your issue:

  • ObjectScript class
  • C# class
  • C# code you're using do deserialize your JSON
  • JSON
Eduard Lebedyuk · Jul 2, 2021 go to post

I'm authorized in containers.intersystems.com in docker. Is that not enough? Interesting.

Eduard Lebedyuk · Jul 2, 2021 go to post

What happened to intersystems/arbiter? I  can't find it in containers.intersystems.com registry:

>docker-ls.exe repositories  --registry https://containers.intersystems.com
requesting list . done
repositories:
- intersystems/iris-community
- intersystems/iris-community-arm64
- intersystems/iris-ml-community
- intersystems/irishealth-aa-community
- intersystems/irishealth-community
- intersystems/irishealth-community-arm64
- intersystems/irishealth-ml-community
- intersystems/sam

However, a direct pull succeeds:

docker pull containers.intersystems.com/intersystems/arbiter:2021.1.0.215.0
2021.1.0.215.0: Pulling from intersystems/arbiter
f22ccc0b8772: Already exists
3cf8fb62ba5f: Already exists
e80c964ece6a: Already exists
cc40d98799c0: Pull complete
4179ff34652c: Pull complete
70ed38c703cc: Pull complete
ab1c2108b984: Pull complete
758289e88757: Pull complete
Digest: sha256:51c31749251bea1ab8019a669873fd33efa6020898dd4b1749a247c264448592
Status: Downloaded newer image for containers.intersystems.com/intersystems/arbiter:2021.1.0.215.0
containers.intersystems.com/intersystems/arbiter:2021.1.0.215.0

@Luca Ravazzolo?
 

Eduard Lebedyuk · Jun 28, 2021 go to post

The value has reached 7gb and now it has become a problem.

So, how's the memory consumption now?

Eduard Lebedyuk · Jun 24, 2021 go to post

Is there a way to do the same but for the query text and documents, and not document and documents?

Eduard Lebedyuk · Jun 24, 2021 go to post

regarding your comment around moving JSON parsing to BS, is there a reason for doing so?  

In general it might be preferable to move from less structured data (JSON) to more structured data (Objects) as fast and as early in your processing pipeline as possible.

The reasons for it are varied but include:

  • Ability to query fields via SQL
  • Object access with defined properties anywhere downstream
  • Ability to build analytics on that data
  • Fail fast (in the case of parsing errors)

So in your case I would have structured it like this:

  • Business Service accepts JSON and parses it into one of the several classes
  • Business Service calls Business Routing Rule where target Business Process is determined and the message is sent
  • Business Process does not have parsing logic and just processes messages

It's also advantageous to move all parsing logic is in one place (Business Service) as it minimizes the amount of code written and frees Business Processes from the more low-level technical tasks which usually obfuscate the more high-level intent of a Business Process.