go to post Evgeny Shvarov · Jun 23, 2023 Thanks a lot, @Alex Woodhead ! @Philipp Bonin , maybe you could consider that in your wonderful ObjectScript to Embedded Python translator?
go to post Evgeny Shvarov · Jun 22, 2023 Hi @Alexander.Woodhead! List installed modules that have a previous IPM bytecode install Having IPM client in place you can check the installed modules and its versions. The newly installed module will replace the old one. List installed modules that would be affected by an IRIS upgrade. Is the newer source code even available in registered repos? (Postpone the IRIS upgrade) I'm not sure I understand correctly what you are asking here. Anyway, one can setup their own IPM registry to supply its customers/clients with IPM modules. and this private IPM registry has the list of all the versions available and the stats of installations if this is set up. So any client that has access to this registry can install any desired version or just the latest if the version is omitted. Provide a batch upgrade option, to upgrade installed modules to the SAME module version but with the newer version of IRIS $ZVersion Byte code I'm not sure this functionality exists. It's better to have a newly published module version with the upgraded IRIS $zversion bytecode. But if this functionality is in need please submit an issue.
go to post Evgeny Shvarov · Jun 21, 2023 Yes, indeed! I had an issue with VSCode that didn't compile code. But VSCode window reload solved the problem and I saw the function in the list! Perfect! Thank you, @Alex Woodhead !
go to post Evgeny Shvarov · Jun 21, 2023 Thanks Ed! It is more that I convert ObjectScript to Python and it get stuck on Job command. Thought of something universal for such cases.
go to post Evgeny Shvarov · Jun 21, 2023 Thank you @James MacKeith ! This is interesting, never touched our WorkQueue Manager before.
go to post Evgeny Shvarov · Jun 21, 2023 You also can manage it if you deploy your solution as an IPM package. Here is an example of IPM manifest to deploy code without source: <?xml version="1.0" encoding="UTF-8"?> <Export generator="Cache" version="25"> <Document name="demo.ZPM"> <Module> <Name>demo</Name> <Version>1.0.0</Version> <Description>DEMO.</Description> <Keywords>demo</Keywords> <SourcesRoot>src</SourcesRoot> <Resource Name="Sample.Demo.PKG" Deploy="true"/> </Module> </Document> </Export> Here are the release notes on introducing the feature. Regarding CSP - I agree with @Alex Woodhead, you better convert your CSP to CLS classes derived from %CSP with %OnPage() where you have all your HTML, and thus you can deploy without code. And you can refer to this CSP classes similar as you refer to CSP pages.
go to post Evgeny Shvarov · Jun 21, 2023 Hi Gautam! You can take any of the official templates, e.g. this one - they have already git-source-control set up and connected with IPM. So any class, listed in module.xml is automatically git-source-controlled for changes either in UI or in VSCode. HTH
go to post Evgeny Shvarov · Jun 21, 2023 Neat! @Alex Woodhead , noticed you derived the class from Ens.Rule.FunctionSet What benefits does it give? I was hoping to see the compiled function in the available functions list here: But it doesn't.
go to post Evgeny Shvarov · Jun 20, 2023 This was related to OwnObjectScriptExtension. It has a nice feature of converting ObjectScript to Python. It converts quite nice but gets stuck with such special variables.
go to post Evgeny Shvarov · Jun 19, 2023 Very interesting, @Philipp Bonin ! Translate to Python is really impressive feature!
go to post Evgeny Shvarov · Jun 19, 2023 Thanks, Robert! Anyway I think every operation should expose these classes: request class and response class. They are like interfaces of a given service or operation. And once I start building a transformation where it is known where the router gets the message(response) from and where it directs it the data transformation builder could show these message classes on the source and target parts of the transformation. This will safe a significant amount of developers' time. If we think how this could be implemented, what about extending Operations with MessageClasses class, that will add two properties RequestClass and ResponseClass, that could be overridden with a proper class types by Operation developer? This is crucial if we have a lot of 3rd party Operation and Services builders.
go to post Evgeny Shvarov · Jun 19, 2023 The links to InterSystems IRIS community Editions are updated. The application should work either on IRIS Community Edition or IRIS for Health Community Edition. Both could be downloaded as host (Mac, Windows) versions from Evaluation site, or can be used in a form of containers pulled from InterSystems Container Registry or Community Containers: intersystemsdc/iris-community:latest or intersystemsdc/irishealth-community:latest . Thanks for reporting!
go to post Evgeny Shvarov · Jun 19, 2023 I like your idea of introducing it in a "New Transform" Wizard
go to post Evgeny Shvarov · Jun 19, 2023 Ah, thanks Alex! I should have been enabling the Testing option for Production first. Yes, this shows a set of available requests but doesn't expose response types though. IMO request and response message classes are like Interfaces of a service or a production so it should be very obvious which they are.
go to post Evgeny Shvarov · Jun 19, 2023 Hi Alex! This is a good one about Test Action! However it doesn't work for me - maybe it is a UI glitch:
go to post Evgeny Shvarov · Jun 19, 2023 Yes, thank you Robert. I'm wondering why the class of the request message (which is the same as incoming message) and response message (which is outgoing) are not the properties of the class of operation. As every time when we do a Router it connects one operation or service with another and should be suggested automatically to a transformation UI.
go to post Evgeny Shvarov · Jun 13, 2023 @Kurro Lopez ! I overlooked your package and introduced my own "one-class" package to handle this. So the Setup.Init() method is not a loop anymore :) ClassMethod Init(TgToken As %String, GPTKey As %String) As %Status { set st=$$$OK set production="shvarov.telegramgpt.i14y.TgGptProduction" for item="Telegram.InboundService","Telegram.OutboundOperation" { set st=##class(shvarov.i14y.Settings).SetValue(production,item,"Token",TgToken) quit:$$$ISERR(st) } set item="St.OpenAi.BO.Api.Connect" set st=##class(shvarov.i14y.Settings).SetValue(production,item,"ApiKey",GPTKey) return st }