Thank you, @Jonathan Lent ! Pleasure to hear we are still better in some spaces than bots :)
- Log in to post comments
Thank you, @Jonathan Lent ! Pleasure to hear we are still better in some spaces than bots :)
Are you sure you want to see that many rectangles on a treemap?
Great points, Dima. But I think any discussions make sense - this is how people communicate and exchange ideas, as you did in your post as well. We could request ObjectScriptQuality to add a profile that will enforce the rule and also, there is a linter in VSCOde ObjectScript - maybe it is possible to request the change in it too.
The idea of an open-source parser for ObjectScript - a good one, do we have it published on the ideas portal?
Rebuild indices, this could be the case.
Voted.
This is great, @Ben Spead! Could you please provide an example of how any developer can leverage the code guidelines @Robert Barbiaux suggests in this post?
I see that coding guidlines for ObjectScript linter should be a document (json? yaml?) you include in your code repository or reference any file in a github/gitlab and VSCode linter follows it on-the-go.
Or as some ObjectScript.Quality like ruleset, is it possible @Daniel Tamajon ?
Or as a codetidy feature by @Timothy Leavitt, but it's not easy to use.
I see, makes sense
Hi Paul!
I suggest to take a look two mechanisms:
1. merge cpf - you can list the configuration changes made to vanilla iris/or your custom image.
2. IPM
with IPM you can deploy classes, web apps, files and production elements, run install scripts and version product changes.
a really helpful repo, @Sylvain Guilbaud ! do you want to publish it on OEX? Please? )
It works because you published a question on Developer Community :) (Joking, of course :)
Jokes aside - a very helpful discussion! Thanks @Sylvain Guilbaud !
Thank you, @John Murray, for what you did and keep doing for this community! Well deserved!
Great app, @Raj Singh ! thanks for the contribution!
Adding two more "cents" for different LOAD DATA usage options:
1. csvgen app, which allows you to create a table and import data automatically as simply as:
do ##class(community.csvgen).Generate("/home/irisowner/dev/data.csv",",","package.class")
It will guess datatypes and use LOAD DATA under the hood.
2. And csvgen-ui - a web UI for csvgen by @Guillaume Rongier
Also, if you are into embedded Python, take a look at csvgenpy, which uses not LOAD DATA, but sqlalchemy.
$zel, $zlp - two new ObjectScript functions in one day after more than 10 years in InterSystems... Love this community! )
In anyways, there are folks on the community that can help even with these already undocummented stuff )
Thanks for this great contribution, @David McCaldon ! Could you please also publish at Open Exchange?
I guess DC AI bot takes only the post body into the consideration thinking the title is a summary of the post. I this case title is one question and post body is another one.
Hi @Sam Duncan !
I think DC AI Bot answered right: if you try also add:
zpm "enable -community"
this will allow to install packages from a community registry
BTW, faced the same situation today to have an option of getting full sqlname for a class, and generated a classmethod in VSCode with AI (no my personal touch):
ClassMethod GetSQLTableName(pclass As%String) As%String
{
// returns the SQL table name for a classset tablename = ##class(%DeepSee.Utils).%GetSQLTableName(pclass)
if tablename="" {
set tablename=$TR($P(pclass,".",1,*-1),".","_")_"."_$p(pclass,".",*)
}
return tablename
}And its working. Not bad for a bot.
Hi @Dmitrij Vladimirov ! This is pure ObjectScript AFAIK in an expression mode (think of it if you create a classmethod in ObjectScript in Expression mode), with options of %source to reference base class properties and %cube to reference Cube class methods.
It's not for JSON transformation directly, but a nice package by @Guillaume Rongier that lets you have messages contain data in JSON vs XML in the Interoperability pipeline.
Great project! If the source code is available?
Oh my god! What a drama!

Guys, you are maybe late for the Venice Film Festival 2025, but the Oscar 2026 nomination is yours!

And moreover, Dave Davidson is healthy and sound because of Interoperability and InterSystems! Thanks @Vishal Pallerla and team!

Thanks @David Hockenbroch !
An almost ideal pattern to run an SQL query in ObjectScript.
If you could also share with error handling around?
My typical pattern looks like this one below. Includes try-catch in case when I need to rollback something:
try {
set tStatement = ##class(%SQL.Statement).%New()
set query = "ALTER Table "_table_" ADD PRIMARY KEY ("_column_")"$$$TOE(st,tStatement.%Prepare(query))
set rset=tStatement.%Execute()
if rset.%SQLCODE < 0 {
write"Error adding primary key: "_rset.%SQLCODE_" "_rset.%Messageset ex=##class(%Exception.SQL).CreateFromSQLCODE(rset.%SQLCODE,rset.%Message)
$$$ThrowStatus(ex.AsStatus())
}
}
catch ex {
set st=ex.AsStatus()
}Congrats, @Henry Pereira ! Well deserved!
Cool! Add dsw? Curious how it displays it? Also, DSW works neatly on a mobile
I agree, makes total sense. Documentation also have a feedback button on every page IIRC
Thanks for sharing, @Stephen Canzano!
%expression - is a really impactful feature that can greatly help to tune performance while cubes building.
Thanks @David Hockenbroch ! Is it like @Robert Cemper suggests with Do LOG^%ETN()?
Thanks @Brett Saviano ! I'll give it a try