##class(Ens.Director).GetProductionStatus() will tell you if the production state is running/stopped/suspended/troubled.
Documentation:
https://docs.intersystems.com/iris20241/csp/documatic/%25CSP.Documatic…
- Log in to post comments
##class(Ens.Director).GetProductionStatus() will tell you if the production state is running/stopped/suspended/troubled.
Documentation:
https://docs.intersystems.com/iris20241/csp/documatic/%25CSP.Documatic…
Just nitpicking but I think it's 2022.1.7.1116.1, not 116.
Thanks for the background.
The following is for the documentation team:
From: https://docs.intersystems.com/irisforhealthlatest/csp/docbook/DocBook.U…
Case-sensitive: variable names (other than the ObjectScript system variables) are case-sensitive. Names of packages, classes, and class members, names of routines and their entry points, names of include files and macros are also all case sensitive.
This is plain wrong. The package and class names are case in-sensitive as you can read in this message thread and in the compilation example below:
Compilation started on 02/25/2025 10:16:38 with qualifiers 'bckru' Compiling class Foo.Class1 Compilation finished successfully in 0.056s. ERROR #5093: Name conflict on class 'foo.Class2' because package 'Foo' has the same name but differs in case. ERROR #5092: Name conflict on class 'Foo.class1' because class 'Foo.Class1' has the same name but differs in case.
VS Code (extension) checks that too:
Compilation started on 02/25/2025 10:16:38 with qualifiers 'bckru' Compiling class Foo.Class1 Compilation finished successfully in 0.056s. ERROR #5093: Name conflict on class 'foo.Class2' because package 'Foo' has the same name but differs in case.
I guess the 2025 answer is to look at Python solution(s) which are likely many. A quick internet search suggests e.g. https://pypi.org/project/jsondiff/ that seems to be a reasonable complete, recent and popular.
Unfortunately I'm not yet arrived to IRIS Python-land, hence I had to come up yet another partial solution that fits to my current use case:
https://github.com/janihur/objectscript-ex/blob/main/src/OSEX.Json.Comp…
How to take control of your own code snippets:
The "old school" way: keep a "tidy" public or private repository from where you can easily import the code into any namespace with $system.OBJ.ImportDir
The "new school" way: organize the code into a public or private IPM module (or modules). In case of public code host the module(s) in https://openexchange.intersystems.com/?zpm=1 Remember to be explicit about the license!
Select top level package name (try to follow the de-facto naming rules) and organize the code there as you see best (use sub packages and classes).
I don't know about public collections of functions but browse and follow-up the https://openexchange.intersystems.com/
In addition they have to by case-insensitive unique.
IMO this is s strange way of saying the name is case insensitive.
If foo, Foo and FOO are consider the same name then the name is case insensitive.
If foo, Foo and FOO are consider different names then the name is case sensitive.
Err ... class names are not case sensitive?
ERROR #5092: Name conflict on class 'Package.subpackage.classname' because class 'Package.subpackage.ClassName' has the same name but differs in case.
Is there a related configuration option(s)?
I just added a column to show completion of parts in the exercises
- - no part
- 1 only part 1 (silver star)
- 2 only part 2 (another silver star)
- 3 1+2 both parts completed (gold star)
The option 2 is redundant. Part 2 only unlocks when part 1 has been solved.
Now available on your favorite internet community portal: My little Advent of Code 2024 journey!
If you update from IPM 0.7.x to 0.9.0 [...]
I have no idea how one could update IPM and I don't see updating mentioned anywhere in the documentation. I created https://github.com/intersystems/ipm/issues/673 with a bit more background. Let's continue discussion there.
Did you noticed the top level schemas import even more schemas? E.g. VSDService.xsd imports ../ConnectorContext.xsd that imports ConnectorCommon.xsd and so on.
I know nothing about IRIS WSDL support but I suspect you have to have all the types from bottom-up.
v0.9.1 has been out for some time now!
I'm definitely and permanently fallen behind and used already most of my annual skill+time puzzle quota. So I'm not expecting to solve more than 7 or 8 first days. However you'll get a small story about my learnings here when I'm done ;)
Great! After I have upgraded it too we can have a session about my IPM usage scenario if you're still interested. I guess the session could take place on early January.
Any updates when 0.9 will be released?
I feel your pain. It's very frustrating to work with systems like that 😟I'd recommend to put as much "pressure" as possible on the upstream system to fix their MSH18. Or course that might not be a realistic option in your case.
Can't you check MSH.18 - Character Set? See e.g. https://hl7-definition.caristix.com/v2/HL7v2.5/Fields/MSH.18
Or are we talking about something else ?
Yes, this seems to make sense.
However one will miss all this if just reading:
As I did. I'll file a documentation issue 😒
Currently we have in-house ObjectScript code to convert a JSON configuration file into OAuth2.ServerDefinition, OAuth2.Client et al. objects.
Related: how do I configure locale with CPF? I didn't find an option. Currently we are running:
do ##class(Config.NLS.Locales).Install("finw")
set ^SYS("NLS", "Config", "Collation")="Finnish3"with iris terminal.
I'm not sure if there is other options too but how about to convert the dates into strings? In select use to_char() and in insert use to_date():
select
-- date to string with to_char()
to_char(current_date, 'YYYY-MM-DD') as date1,
-- string to date with to_date
to_date('2024-11-14','YYYY-MM-DD') as date2So the conclusion is the compiler doesn't have tail-call elimination.
I finally figured this out with a help of a colleague! I just had to create a user that I can use for authentication in publish operation. AFAICS now everything works as expected.
The difference in authentication of zpm-registry's /package and /packages paths confused me untiI I read the source code.
Essentially my problem here was this was the first time I run into these web applications and IRIS authentication model.
Unfortunately the company doesn't have open-source culture (yet) so the answer is no.
However I have got an assignment a while ago to argument why the company should open-source software components. So if you or anyone where here have good arguments please share 😉 I do have my own list of arguments already but more the merrier!
Thanks for asking - I have not yet solved this (I have prioritized other things).
The overall work flow is clear but I'm struggling with this step on self-hosted remote registry:
repo -n local -r -url http://localhost:52773/registry/ -user test -pass PassWord42
How do I configure the authentication? I.e. how do I know the values for -user and -pass? AFAIK this is explained nowhere.
A side note for the community registry:
I recall I have seen the instructions how to self-register to the community registry (probably written by you 😉) but I didn't saved the link and now I can't find it anymore.
I'm expecting the front page at:
https://pm.community.intersystems.com/
would have clear description and instructions in the the similar way than the official (?) registry:
Now I have this kind of workaround:
<!-- unit testing workaround -->
<Invoke Phase="Test" Class="Company.UnitTest.IPM" Method="Load" CheckStatus="true">
<Arg>${root}/test</Arg>
</Invoke>
<Invoke Phase="Test" Class="Company.UnitTest.IPM" Method="RunTestPackage" CheckStatus="true">
<Arg>CompanyTests</Arg>
</Invoke>
<Invoke Phase="Unconfigure" Class="%SYSTEM.OBJ" Method="DeletePackage" CheckStatus="true">
<Arg>CompanyTests</Arg>
</Invoke>The amount of boilerplate is tolerable.
Test cases are located in ${root}/test.
Company.UnitTest.IPM is just an IPM "compatible" facade for our framework.
Now I can run test -o my-company-module. This has been working fine so far, fingers crossed there is no nasty surprises just waiting around the corner ...
I had a look into the IPM source code and I guess the correct places where the testing action happens are:
However I got a quite confused how I would be able to inject my own Processor.UnitTest and/or UnitTest.Manager there and what are those pParams that are passes everywhere.
Nexus is not listed in https://oras.land/adopters/ but OCI support is mentioned e.g. here: https://www.sonatype.com/blog/sonatype-nexus-repository-as-a-container-…