Search

Clear filter
Announcement
Evgeny Shvarov · Mar 2, 2020

InterSystems Developers Community Release, March 2020

Hi Developers! In February we introduced into Developers Community: Autosaved drafts; Open Exchange linkage; PDF attachments; Weekly Unanswered questions digest; language-specific search; bug fixes and small enhancements. See the details below. Autosaved drafts Sometimes when we create a long post directly on Developers Community we can accidentally close the page or browser and lose the draft text. This release comes with the feature of the autosaved draft. Every 10 seconds DC autosaves the draft you are working with and if you close the page it will suggest you restore the draft when you click Create Post again. Open Exchange Linkage Starting from this release your member profile page has the direct link to your Open Exchange profile and shows your published applications. E.g. here is the @Peter.Steiwer's members page: PDF attachments "You asked about it - and we did it!" This release comes with the option to attach pdf file to any post. There is a special control that gives you the option to upload a PDF file from you machine and DC will host it: And you can give it a description. Example. Weekly Unanswered questions digest Starting from the current release we introduce a new weekly Unanswered Questions Digest which will be sent on Wednesdays. It will contain questions that either don't have any reply or have replies but no accepted as an answer by its author. Questions are split by categories. You can subscribe or unsubscribe from it in your Member->Subscriptions settings: Language-specific search We fixed it. With this release if you search for something in the English community all the results will be for the English-speaking site. And the search on the Spanish community will give you the posts only in Spanish. Small enhancements We also fixed a few issues and did a couple of minor enhancements, like additional "Creation Date" sorting for posts to show the posts feed in a publishing date order, not last reply order: Also if you forgot to give a reply an "Accepted" sign we made a special filter for your questions "Without accepted answer": Here is the full kanban of solved issues in February 2020. Here is the planned kanban for March 2020. Submit your ideas, bug fixes, contribute to Developers Community and stay tuned! Wow!! Very useful enhancements! This Developers Community seems veeery professional Thanks a lot for your work! Esther Thank you, Esther!
Announcement
Evgeny Shvarov · Dec 2, 2019

InterSystems Developers Community Release, December 2019

Hi Developers! Here is what's we introduced in Developers Community features and UI last month: Pinned topics for main feed and tags; One-click unsubscribe option in every email we send; A 'new' indicator for the posts and comments; Notification of changes made by moderators; Articles without translation don't show 'access denied' anymore. See the details below! Pinned topics Important news and posts now could be pinned to the top of the main feed and tags. I think this will be very used by partners - tag owners. One-click unsubscribe action If you don't want to receive any email notifications from Developers Community now you can unsubscribe now with one click. New indicator DC marks with New indicator posts and comments you haven't seen yet since your last visit. And removes the indicator once you do. Also, you may find useful a New filter in the filter list: Notifications of changes made by moderators We have moderators on DC, and they work. Since this release, you will get a 'diff' notification of what changes moderators made to your post to make moderators' work more clear and visible. No 'Access denied for the posts without translation As you know, we are the two-languages community since May 2019! And every post has a switcher to another language. And if there is a translation you see the translated post. If there is no translation you see the UI to request a translation. If you are logged in. If not - you saw 'Access denied', now we fixed it. Also, we fixed a lot of bugs and introduced new tasks! Add your requests, contribute to InterSystems Developers Community, and stay tuned!
Announcement
Derek Robinson · Feb 14, 2020

ICYMI: A Discussion on IntegratedML in InterSystems IRIS

You may have seen earlier this week that we launched a brand-new learning podcast called Data Points! There are three episodes released, one of which was a really interesting discussion with Thomas Dyar — a product specialist here at InterSystems focused on machine learning. Take a listen and reach out if you're interested in exploring more about IntegratedML! You can check out the other two episodes — one on InterSystems IRIS and one on Kubernetes — by going to https://datapoints.intersystems.com. That page also has links to subscribe on Spotify, Apple Podcasts, and more!
Announcement
Anastasia Dyubaylo · Oct 14, 2019

InterSystems Global Summit 2019 Keynotes Videos

Hi Community, See all the Key Notes videos from Global Summit 2019 in a dedicated Global Summit 2019 Keynotes playlist on InterSystems Developers YouTube Channel! 1. The Age of Interoperability – presented by Terry Ragon, InterSystems CEO & Founder, presents a vision of data as the engine of the future and how the data platform will let people do more with their data. 2. The Future Begins Now – presented by Erica Orange, Executive Vice President and Chief Operating Officer of The Future Hunters. 3. Taking Flight with Data – presented by Scott Gnau, Head of Data Platforms, InterSystems. 4. InterSystems IRIS: Three Perspectives (panel) with Steve Ayer, Rhodes Group & David Gahan, RxMx & Jim Heiman, Northwell Health. 5. Healthcare Unbounded – presented by @Donald.Woodlock, Head of HealthShare, InterSystems & @Christine.Chapman, Head of TrakCare, InterSystems. 6. A Next-Generation Data & Technology Network for Healthcare Systems – presented by Jeff Elton, Concerto Health AI (CHAI) CEO. 7. We Have the Power to Make Healthcare Work Better – presented by David Braza, Executive VP, Chief Financial Officer, and Chief Actuary at Premera. 8. Artificial Intelligence in Healthcare and BioMedicine – presented by James Collins, MIT Professor. 9. Disruption and Opportunities for Developers – presented by Vivek Wadhwa, Distinguished Fellow at Harvard Law School and the Carnegie Mellon University College of Engineering at Silicon Valley. 10. InterSystems IRIS Show and Tell – presented by @Jeff.Fried, Director of Product Management, Data Platforms, InterSystems. BIG APPLAUSE TO ALL SPEAKERS! 👏🏼 And... If you want to learn more about Global Summit 2019, follow this link. Enjoy and stay tuned with InterSystems Developers!
Announcement
Anastasia Dyubaylo · Dec 20, 2019

New Video: InterSystems IRIS Containers for Developers

Hi Community, Please welcome the new Global Summit 2019 video on InterSystems Developers YouTube Channel: ⏯ InterSystems IRIS Containers for Developers This video aims to demystify the process of working with InterSystems IRIS containers in development scenarios. We will walk through setting up Docker, InterSystems IRIS in a container, and connecting Studio, Atelier, and the VS Code plugin. Examples will be on Windows, but are transferable to Mac. Takeaway: You will learn how easy it is to set up and use InterSystems IRIS for development purposes on a Windows or Mac laptop.Presenter: @Sean.Klingensmith, Software Developer, InterSystems Learn more in this InterSystems Online Learning Course. Enjoy watching the video! 👍🏼
Article
Alexey Maslov · Dec 24, 2019

Adopting InterSystems IRIS: from CACHETEMP to IRISTEMP

It seems that everyone who is moving from Caché to IRIS have noticed this small change among other, more noticeable ones. But have you noticed that temporary globals mapping rules have been changed as well? As to Adoption Guide ("InterSystems IRIS 2019.1 Document Version: 2.42 32 Adoption Guide for Caché & Ensemble customers. C. Application Development"), there are some differences in reserved global names patterns. Here are those that concern IRISTEMP: Caché / Ensemble InterSystems IRIS Comment ^CacheTemp* <none> You are free to define a preferred global name pattern for temporary globals and map it to IRISTEMP. For compatibility purposes, ^CacheTemp* will continue to be mapped to IRISTEMP automatically. But if you take a look at your namespace using some global explorer (e.g., the standard one, available with System Management Portal), you may notice some other globals, e.g. many of them that matches ^IRIS.Temp* pattern. Having been curious to get a full list, I've got it with ^%NSP utility redirecting its output to file: set x="/tmp/map.txt" open x:("NW"):1 else write "not writable "_x use x do SHOW^%NSP close x <... view locally or download map.txt file from IRIS server ...> set x="/tmp/map.txt" open x:("NW"):1 close x:("D") ; delete the file Here is an extract from map.txt file that concerns IRISTEMP global mappings only: Namespace: QMS Default globals location: directory /opt/bases/i-qms-d/ (local) Default % routines location: directory /opt/iris/mgr/ (local) ********************************************************************* Global name/Range Dirset Target directory --------------------------------------------------------------------- [%utility] -> /opt/iris/mgr/iristemp/ *> /opt/iris/mgr/iristemp/ [CacheTemp:CacheTemq)-> /opt/iris/mgr/iristemp/ *> /opt/iris/mgr/iristemp/ [IRIS.Temp:IRIS.Temq)-> /opt/iris/mgr/iristemp/ *> /opt/iris/mgr/iristemp/ [mtemp:mtemq) -> /opt/iris/mgr/iristemp/ *> /opt/iris/mgr/iristemp/ ===================================================================== [<global>] shows redirection scheme for one global; [<global1>:<global2>] shows redirection scheme for a range between 2 globals; a square bracket [] means that left or right margin is inclusive, while a parenthesis means that the margin is exclusive. An empty parenthesis before or after ':', that is (: or :) , means that the redirection scheme is effective from the start of alphabet space, or till its end, respectively A subscript mapping is missing if it is the same as the default mapping of the global. The default mapping of a global is missing if it is the same as the default global dataset. -> implicit *> lock target So, there are a few additions to "Adoption Guide" table: Caché / Ensemble InterSystems IRIS Comment ^%utility ^%utility Used by some CLI utilities. <none> ^IRIS.Temp* Used by IRIS internally. Avoiding such names for application globals seems to be a reasonable precaution. ^mtemp* ^mtemp* Seems to be still in use by IRIS SQL, while they were mentioned as legacy many years ago.^mtempSomeLegacyAppCode* can be in use as well. Hope this help somebody on the way to InterSystems IRIS. Merry Christmas and Happy New Year everyone!
Announcement
Evgeny Shvarov · Jan 2, 2020

InterSystems Developers Community Release, January 2020

Hi Developers! Happy New Year! And I'm pleased to share the notes on the new DC Release. What comes? New design for Articles Voice over for Articles Format painter feature for editor New private messages informer, Github profile and other minor enhancements See the details below, here we go! New Articles Design We made articles special. Articles really need more focus, more of your attention cause sometimes (we hope) it contains a lot of technical wisdom which expects special attention. So we tried to make you comfortable reading articles. We made the font different, and we removed all the ads and announcements from the side. I hope it makes a difference: Example 1, Example 2. Read them all! And in Spanish ;) Voice Over for Articles Sometimes we don't have the option to read the article but can listen to it. Sometimes we don't have time for reading but can listen to it during the ride or morning running. Sometimes listening is just better than reading - you decide! And we introduced the option of 'articles listening' with the release! Each article now has the small audio player on top (or the link to generate audio): You are able to download it or use the embedded player. Listen to them all! And it works for Spanish too! Format Painter With this release, we introduced a format painter which gives you an option to copy the format in one place and implement it to another section of text which is a very useful option for WYSIWYG editor. Minor Enhancements We introduced a "New Direct Message" informer which appears on top near your name when you get a new Direct Message. Member page updated: Github, Open Exchange, and LinkedIn profiles introduced: See all the solved tasks last month. Please check the new kanban and submit your requests and bug reports! Happy new year! Thanks for all the improvements! Very useful! Esther Thanks, Esther!
Discussion
Raj Singh · Jan 6, 2020

Your opinion matters: InterSystems development environments

Happy new year! I’m Raj Singh, InterSystems’ product manager for Developer Experience and I’d love your feedback on how you use IDEs today and your thoughts for the future. We understand you depend on a solid, intuitive and flexible IDE from InterSystems - whether you are an ObjectScript expert or new to it; whether ObjectScript is at the core of your applications, or you develop more in Java, Python, C# or Node.js. ObjectScript has proven to be a powerful and productive paradigm that gives you an edge over other platforms, and with that comes our responsibility to provide developer tools to support your work. Our long-standing IDE, Studio, will continue to be the principal IDE for shops with the most sophisticated ObjectScript requirements, but many users will be working in an increasingly heterogeneous language environment in the future. With the introduction of InterSystems IRIS and its deeper commitment to language “freedom of choice”, it’s time once again to take stock of InterSystems’ IDEs. Last year we paused and took a step back to study the IDE landscape and formulate a plan that would embrace our ever expanding language options – you can now do even more with Java, C#, Python and Node.js as well as ObjectScript – without forgetting that ObjectScript is as powerful as ever. In doing so we’ve become extremely excited about Visual Studio Code. Increasingly, the highest quality and most innovative developer productivity tools are being built on the that platform, and according to the 2019 Stack Overflow survey, over half of developers use Visual Studio Code already. As we develop plans to support InterSystems development on Visual Studio Code, we’d like your input. What do you like or dislike about using Studio or Atelier today? What external tools (source control, testing, etc.) do you wish you could integrate more tightly with InterSystems IRIS? Have you tried ObjectScript development with 3rd party VS Code extensions (Serenji or vscode-objectscript)? Do you expect to be writing code in a web-based editor five years from now? Feel free to comment below or direct message me. As always, the voice of our customers plays a major role in this important process. Hi Raj, I use different IDE's and combinations : - Caché Studio without any extensions for development where i am self-employed and no other developers are involved - Caché Studio with Serenji source control from Gerorge James for a particular customer where i am one of the developers - Visual Studio Code with the vscode-objectscript extention from Dmitry Maslennikov for another customer where i am one of the developers. I like Caché Studio since I use it from day 1, because it is build-in so no need to configure anything. I use the 'projects' feature a lot, and export my projects regularly as a sort of 'light' source control. (I even edit my html and js files in Studio, even when they contain no COS code at all.) But when developing in teams a good build-in source control is essential, so that's why i also use the other options. I am still learning Visual Studio Code but it seems the way for the future. Thanks for sharing Danny! I'm not using IRIS yet. Having options is good, especially for those coming from other development languages and/or not primarily focused on ObjectScript. Hopefully Studio continues to be supported, even better, receives future updates. I have no issues working in Studio. I'm primarily developing with ObjectScript and XSLT. I've also used Studio for JavaScript, CSP, and web development (mixed with ObjectScript). I'm not using Atelier now, but used it at a few previous jobs in team environments. Linking and using it with Git was very easy. After primarily using Studio for many years, adjusting to Atelier wasn't a steep learning curve. Initially there were things I switched back to Studio for, like "Find in files". But after a few updates and getting used to it, it was comfortable, flow felt logical. I haven't used VS Code for ObjectScript. I tried it recently as a potential replacement for UltraEdit/Studio. I found it cumbersome, no toolbars, not intuitive...for me. I suspect if I were to dive in with it, as I had to with Atelier, it would feel better. Scott, could you give some more details about your experience with VSCode, privately directly to me or publicly here? What do you expect, and what would help you decide to use VSCode instead of Studio? Thanks Scott. In case I was vague on the point, but let me say that Studio will definitely be supported. p.s. I'm an old UltraEdit user too! Hello Raj, I'm fine with Studio, but... what are the chances of: * Native Studio support for Linux and macOS. * Default studio editor support for up-to-date language syntaxes like recent ECMAScript revisions. * API allowing access to ObjectScript AST, parser and lexer as well. (this might be out-of-context for this discussion, but still it could help the community creating transpilable languages). ​​​​​​​* Integrated and full featured terminal with support for special characters including colors. * Improved debug support for jobs or simply multiple job debugging (this would make it easier to debug HTTP requests). * Studio editor API that allows users to add new language syntaxes, like JSX, TypeScript, Flow, etc. ? Excellent list Rubens. In fact all of these are possible with VS Code. I'm curious what you would do with API access to the ObjectScript AST, parser and lexer? For example, some months ago there was a discussion about how to bring functional programming to ObjectScript. I think this could be possible if we had a way to transpile functional-oriented code to pure ObjectScript. Dmitriy, I have very limited experience with VSCode, none using it with Cache coding. I looked at using it to replace UltraEdit/UEStudio and Notepad ++. I use those daily for XML, HTML file formatting, base64 decoding, file comparisons, CSS and JavaScript. Using VSCode instead of Studio isn't an option for me at this time, team uses Studio with source hooks. If that changed, I'd be open to using it side by side with Atelier to compare. I've read many of your post and other's on using VSCode for Cache development. I assumed that path was being taken as the future of Atelier was unsure, and suggested at times that it had no future, other than support for what was already there. When your team uses Studio with source hooks, it's even easier to move to VSCode. VSCode supports source control class hooks, and even some types of actions from menu. You can the latest beta release, to get more features. VSCode can also be used to edit files directly on a server, almost the same way as Studio. Just at the moment it does not check any changes on the server, and uses your opened files as a source of truth. Hi @Raj.Singh5479 ! We recently introduced a new post type - Discussion, I changed this announcement to Discussion - I think this is more relevant. Discussion is the type of posting where you want a conversation, input, discussions on the topic. What do you like or dislike about using Studio or Atelier today? Like: Studio is fast. My REPL cycle is very short. Dislike: Studio in synchronous so after every connection issue I need to restart it. REST based IDE don't have this problem and it's great. Version pinning (need 2019.4 Studio to connect to 2019.4 server). What external tools (source control, testing, etc.) do you wish you could integrate more tightly with InterSystems IRIS? We should offer APIs, so any tool can be integrated. Have you tried ObjectScript development with 3rd party VS Code extensions (Serenji or vscode-objectscript)? I use VSCode extension. With direct server edit it's good. Subjectively slower that Studio but now it's comparable. Like: The interface is way more modern. Crossplatform. Dislike: XDatas are unformatted. Only one server connection. No BPL editor. Do you expect to be writing code in a web-based editor five years from now? Not really. Our IDEs don't take that much space. And REPL timings would go up. Studio : Like : It's fast Find in files directly on the server side Intuitive Debugging is not perfect but manageable Dislike : Only on windows No easy to use with other third party file or software Atelier : Like : Easy to use with source control Dislike : File synchronization with server especially BPL, DT, RecorMap Complicate to configure Slow VS Code with Dmitriy's plugin Like : Modern UI Crossplatform Lite Intuitive with no file synchronization concern Fast Dislike : Can't edit, manage CSP files No find in file on server side Debugging not easy to use Serenji : I haven't tried it yet because you need to install some classes on the server side, but sound very promising for debugging. Conclusion : My main IDE is VSCode with Dmitriys's plugin and some times Studio for find in files, csp managment and debugging. Do you expect to be writing code in a web-based editor five years from now? Yes, why not, already a lot of people do it on Jupyter Notebook. Hi Raj, Just like others in the community, I use different IDE's. I like the Caché Studio; it's fast, reliable, and useful for debugging. My favorite IDE right now it's VSCode with the vscode-objectscript extension from Dmitry Maslennikov. To work with Docker, Github, and other extensions that make my workflow faster. I tried to use Atelier, but comparing with others that I mentioned above, it's the last IDE for me. Do you expect to be writing code in a web-based editor five years from now? No, I agree with @Eduard.Lebedyuk answer. Regards, Henrique Only one server connection. At the moment it is possible to have multiple folders configured for each own server, and tied up with .code-workspace file. I see you already use server-side editing, so, you can just extend your file. And the link for the info, how to configure it. Curiously, what do you expect from XData? Could you fill the issue, so, for any other ideas as well? Could you explain a bit, how would you like to see work with CSP files? For me, when you working with own local instance, you can just open csp folder in VSCode, and edit as a usual file, InterSystems will compile it automatically with the next request. I think it would be possible to add CSP editor only as part of Server-side editing feature. Server-side search, not yet available, because, search engine not yet publicly released. I've already implemented server-side search when server-side editing enabled, and you can test it with the latest beta version of vscode-objectscript, and only with Code-Insiders version, and with flag --enable-proposed-api daimor.vscode-objectscript Could you add your expectations from debugging feature, as an issue here? So workspace per server and multiple namespaces per workspace? Curiously, what do you expect from XData? Filed. It is interesting that you are asking this as we have tried, for well over a year, via various mediums, at various levels within Intersystems, to get an answer as to the future of IDE's given that previous announcements and responses from WRC state that both Atelier and Studio are end-of-life. We have never received a response even after Evgeny pinged such a request to John fried and others after some posts. Your statements seem to indicate that Studio is not end-of-life so it would be nice to have some clarification as even WRC are saying non-critical fixes or changes will not be done. You also indicate work being done on VSCode integration, again any details would be appreciated. The reason for wanting to know is that is difficult to commit to a particular toolset or plan changes to DevOps etc... if the future of the tools to be used is unknown, the actual answer and whether it is an individuals or companies preference is immaterial, it is simply that an answer is required but everyone has been reluctant for a long time now to commit to anything. Coming back to your questions, we use Studio with our own version control based on StudioHooks and some use of Serenji for debugging. We have tried Atelier but noone liked using it and we have worked in VSCode via Dmitry's plugin and have also tried the Serenji plugin both of which were generally a good experience but migration would require changes to development processes and version control. We are likely to move to a GIT based Version control and whether this is intergrated with Studio or VSCode will likely depend on Intersystems commitment to the IDE though I suspect there would be a preference to stick with Studio as it is familiar and has integration to Cube etc... though as we continue to do more Web based development in VSCode this may change. Something like this, you can have many serverN folders, with own settings.json there, configured for any server. { "folders": [ { "name": "root", "path": ".", }, { "name": "server1", "path": "server1", }, { "uri": "isfs://server1", "name": "server1", }, { "uri": "isfs://server1?ns=%25SYS", "name": "server1 sys", }, { "name": "server2", "path": "server2", }, { "uri": "isfs://server2", "name": "server2", }, { "uri": "isfs://server2?ns=%25SYS", "name": "server2 sys", }, { "name": "server3", "path": "server3", }, { "uri": "isfs://server3", "name": "server3", }, { "uri": "isfs://server3?ns=%25SYS", "name": "server3 sys", } ], "settings": { "objectscript.serverSideEditing": true } } I've already published a beta version with support for CSP editing, It would be cool, if you could test it and give some feedback. Not sure if it's already included, but just wanted to know if we're going to be able to view and develop business processes using BPL, or data transformations, etc...in their graphical way. If this is meant to be a real modern alternative to Studio, support all the IRIS components is a must... Otherwise we'll have to be changing from one IDE to the other... which is not practical and prone to errors.
Announcement
Evgeny Shvarov · Mar 4, 2020

InterSystems Open Exchange March 2020 Release

Hi Developers! Here are the release notes of changes we made to InterSystems Open Exchange since the previous release in December 2019. What's new? Email notifications and subscriptions; Better UI/UX for application publishing process; Mobile UI for tablets and phones. See the details below. Email notifications and subscriptions Starting with this release you'll be able to receive email notifications about the releases of applications in Open Exchange. You can set up these settings via Profile->Subscription menu: There are several levels of subscription: 1. Everything If this is in the mode "ON" you will receive all the notifications of the site. But you can alter it and subscribe only for companies, members or applications in which you are interested. 2. Application subscription You can subscribe to the application's releases on the application page - click Follow in the top right corner to subscribe or cancel the subscription: In your Profile->Subscription page you can check what subscriptions for applications you have at the moment and alter it. Change the category filter to App and see all the current subscriptions: 2. Member subscription If you want to get notifications for all applications a particular Open Exchange developer releases you can subscribe to this Open Exchange member. Click on the author's page and Choose 'Follow' to subscribe to all the releases of the member's applications: And with the similar filter in your Profile->Subscription page you can see developers you are subscribed for and alter it: 3. Company subscription Same as with Open Exchange members you are able to subscribe to all the releases of the apps of the particular company. Open Company's profile and click Follow: And you can alter the list of companies you subscribed for in your Subscription settings: If you don't want to receive any emails turn off with Everything filter or click on "Unsubscribe from everything" in the email notifications from Open Exchange. Better UI/UX for the application publishing process We received the feedback from you that the new UI is not obvious that you need to send the application fro approval after saving all the changes. We made this button more obvious now in the new release of Open Exchange. When you save the draft of the application you will see the "Send for approval" button in the top-right corner. Click it to follow up with the application version and release notes and send it for the approval chain. Please share your feedback to make the publishing process easier and robust. Mobile UI for tablets and phones It should be just great! Check it on your mobile! We also made a few small enhancements and bugfixes - check the kanban here. Here is the new kanban, and don't hesitate to share your feedback, bug reports and enhancement requests! Stay tuned!
Announcement
Evgeny Shvarov · Aug 22, 2019

InterSystems Open Exchange Release, August 2019

Hi Developers!Here is a new release of InterSystems Open Exchange - InterSystems applications gallery!What's new?Github Integration is improved;Better application update mechanism;UI/UX enhancements.See the details below.Better Github IntegrationWith this release, if your InterSystems application source code is hosted on Github a lot of mandatory Open Exchange application fields could be imported from Github repo. Enter the URL of the GitHub repo and the name, download URL, short description, license, full description will be imported from Github. The only mandatory fields to feel in will be InterSystems Data platform and tag-list. Check the video which illustrates the process.Improved application update procedureAll the parameters of Open Exchange application need to pass the approval procedure. And starting from this release you don't need to unpublish the repository if you want to make changes and publish the next release. If you want to publish the next release of the application do the following steps:1. Open the published app and click Edit:2. Make the necessary changes and click Save - this will create a draft version of your application. You may see both published and draft entries on My Apps section:3. Once you good with the new changes send the draft application for approval review.4. When and if the new version of the app is approved the previously published version will be changed to the newly approved version.Minor UI/UX improvementsWith this release, we've improved the performance of Open Exchange and we introduced a set of minor UI enhancements such as sorting selector for apps, better image icon update for apps and companies, clickable category on the application page and things like this which could improve your experience with InterSystems Open Exchange.Also, don't hesitate to use Google Adwords vouchers option we are introducing with this release to promote your Open Exchange application which you can redeem with Global Masters program. Learn more.Check all the tasks we solved in this version and welcome the new kanban for the next release where we plan email subscriptions, better integration with Developers Community and Partner hub, better analytics, and other nice features!Introduce your bug reports and feature requests and stay tuned!
Announcement
Evgeny Shvarov · Aug 2, 2019

InterSystems Developers Community Release, August 2019

Hi Developers!Happy to share with you the release notes of InterSystems Developers community site in August 2019. What's new?Direct messages between registered members;Accounts merging;Better navigation for serial posts;Spanish DC enhancements: translated tags, analytics.See the details below.Direct messagesYou asked about this a lot - so we've added this. Now members can communicate with each other, respond directly for job offers or job-seeking announcements. We allow the feature only for those members who contribute to the site. Learn more on direct messages.Accounts mergingInterSystems Developers account depends on the email. You register with another email and you are another DC member. Sometimes it causes numerous alter-egos on the site of one person if a developer changes emails, changes work but keep staying with Community. We appreciate that you stay with the community for years. But we can make this convenient and we can move your content from one account to another.If you want to move your assets from different accounts to a one and/or block the unused accounts please contact our content manager @Irina.Podmazko and Irina will help you.Serial posts navigationWe love when you guys introduce the posts with several parts. There are a lot of examples of such: check this one or another one. But the support from the site for the navigation of such posts was poor. Until this release! Today you can connect the multi-part postings with Next and Prev parts and let your readers easily navigate between episodes of the story. How to do that?Edit the post and add the link to the Next or Prev part or both and this will introduce the arrows in the title of the article.Check how it works with these posts: part1, part2.And looking for more multi-episode stories about InterSystems IRIS!Spanish Tags and Spanish AnalyticsWe keep enhancements for the Spanish DC. This release brings the totally translated tags and public analytics for the members, postings, and views of Spanish DC.As always we've fixed tons of bugs, introduced some plans for the next release and are looking forward to your feature requests and bug reports.Stay tuned!
Announcement
Anastasia Dyubaylo · Aug 9, 2019

New Video: InterSystems API Manager Introduction

Hi Community! You're very welcome to watch a new video on InterSystems Developers YouTube, recorded by @Stefan.Wittmann, InterSystems Product Manager: InterSystems API Manager Introduction InterSystems API Manager is a tool that allows you to manage your APIs within InterSystems IRIS™ and InterSystems IRIS for Health™. In this video, @Stefan.Wittmann describes what API Manager is and describes several use cases in which the tool would be useful. And... Additional info about InterSystems API Manager you can find in this post. Enjoy and stay tuned!
Announcement
Anastasia Dyubaylo · Aug 29, 2019

New Video: Scaling Fluidly with InterSystems IRIS

Hi Everyone! New video, recorded by @Benjamin.DeBoe, is already on InterSystems Developers YouTube: Scaling Fluidly with InterSystems IRIS In this video, @Benjamin.DeBoe, InterSystems Product Manager, explains how sharding capabilities in InterSystems IRIS provide a more economical approach to fluidly scaling your systems than traditional vertical scaling. And... To learn more about InterSystems IRIS and its scalability features, you can browse more content at http://www.learning.intersystems.com. Enjoy watching the video!
Article
Evgeny Shvarov · Aug 29, 2019

Introducing InterSystems ObjectScript Package Manager

Hi Developers! Often when we develop some library, tool, package, whatever on InterSystems ObjectScript we have a question, how we deploy this package on the target machine? Also, we often expect that some other libraries already installed, so our package depends on them, and often on some particular version of it. When you code on javascript, python, etc the role of packages deployment with dependency management takes package manager. So, I'm pleased to announce that InterSystems ObjectScript Package Manager available! CAUTION! Official Disclaimer. InterSystems ObjectScript Package Manager server situated on pm.community.intersystems.com and InterSystems ObjectScript Package Manager client installable from pm.community.intersystems.com or from Github are not supported by InterSystems Corporation and are presented as-is under MIT License. Use it, develop it, contribute to it on your own risk. How does it work? InterSystems ObjectScript Package Manager consists of two parts. There is a Package Manager server which hosts ObjectScript packages and exposes API for ZPM clients to deploy and list packages. Today we have a Developers Community Package Manager server available at pm.community.intersystems.com. You can install any package into InterSystems IRIS via ZPM client installed first into IRIS system. How to use InterSystems Package Manager? 1. Check the list of available packages Open https://pm.community.intersystems.com/packages/-/all to see the list of currently available packages. [{"name":"analyzethis","versions":["1.1.1"]},{"name":"deepseebuttons","versions":["0.1.7"]},{"name":"dsw","versions":["2.1.35"]},{"name":"holefoods","versions":["0.1.0"]},{"name":"isc-dev","versions":["1.2.0"]},{"name":"mdx2json","versions":["2.2.0"]},{"name":"objectscript","versions":["1.0.0"]},{"name":"pivotsubscriptions","versions":["0.0.3"]},{"name":"restforms","versions":["1.6.1"]},{"name":"thirdpartychartportlets","versions":["0.0.1"]},{"name":"webterminal","versions":["4.8.3"]},{"name":"zpm","versions":["0.0.6"]}] Every package has the name and the version. If you want to install one on InterSystems IRIS you need to have InterSystems ObjectScript Package Manager Client aka ZPM client installed first. 2. Install Package Manager client Get the release of the ZPM client from ZPM server: https://pm.community.intersystems.com/packages/zpm/latest/installer It is ObjectScript package in XML, so it could be installed by importing into classes via Management Portal, or by terminal: USER>Do $System.OBJ.Load("/yourpath/zpm.xml","ck") once installed it can be called from any Namespace cause it installs itself in %SYS as Z-package. 3. Working with ZPM client Zpm client has CLI interface. Call zpm in any namespace like: USER>zpm zpm: USER> Call help to see the list of all the available commands. Check the list of currently available packages on ZPM server (pm.community.intersystems.com): zpm: USER>repo -list-modules -n registry deepseebuttons 0.1.7 dsw 2.1.35 holefoods 0.1.0 isc-dev 1.2.0 mdx2json 2.2.0 objectscript 1.0.0 pivotsubscriptions 0.0.3 restforms 1.6.1 thirdpartychartportlets 0.0.1 webterminal 4.8.3 zpm 0.0.6 Installing a Package To install the package call install package-name version This will install the package with all the dependencies. You can omit version to get the latest package. Here is how to install the latest version of web terminal: zpm: USER> install webterminal How to know what is already installed? Call list command: zpm:USER> list zpm 0.0.6 webterminal 4.8.3 Uninstall the Package zpm: USER> uninstall webterminal Supported InterSystems Data Platforms Currently, ZPM supports InterSystems IRIS and InterSystems IRIS for Health. I want my package to be listed on Package Manager It's possible. The requirements are: Code should work in InterSystems IRIS You need to have module.xml in the root. Module.xml is the file which describes the structure of the package and what is need to be set up on the deployment phase. Examples of module.xml could be very simple, e.g. ObjectScript Example Or relatively simple: Samples BI (previously known as HoleFoods), Web Terminal Module with dependencies: DeepSee Web expects MDX2JSON to be installed and this is how it described in module.xml:DeepSeeWeb If you want your application to be listed on the Community Package Manager comment in this post or DM me. Collaboration and Support ZPM server source code is not available at the moment and will be available soon. ZPM client source code is available here and is currently supported by InterSystems Developers Community and is not supported by InterSystems Corporation. You are welcome to submit issues and pull requests. Roadmap The current roadmap is: introduce Open Exchange support, introduce the automation for package updating and uploading; open source ZPM server. Stay tuned and develop your InterSystems ObjectScript packages on InterSystems IRIS! Interesting... however I have some questions: 1 - Is there any plans to automatize the `module.xml` generation by using something like a Wizard? 2 - Is there any plans to support non-specific dependency versions like NPM does? 3 - Is it possible to run pre/post-install scripts as well? Kind of what installer classes do. 4 - Is also possible to use the `module.xml`to provide a contextual root? this way it would be used to run UnitTests without the need of defining (or overwriting) the UnitTestRoot global. I already did it with Port, so it's not hard to implement as you basically have to overwrite the `Root` method: ```objectscript Class Port.UnitTest.Manager Extends %UnitTest.Manager { ClassMethod Root() As %String { // This provides us the capability to search for tests unrelated to ^UnitTestRoot. return ##class(%File).NormalizeFilename(##class(Port.Configuration).GetWorkspace()) } ClassMethod RunTestsFromWorkspace(projectName As %String, targetClass As %String = "", targetMethod As %String = "", targetSpec As %String = "") As %Status { set recursive = "recursive" set activeProject = $get(^||Port.Project) set ^||Port.Project = projectName if targetClass '= "" set target = ##class(Port.UnitTest.Util).GetClassTestSpec(targetClass) else set target = ##class(Port.Configuration).GetTestPath() if targetMethod '= "" { set target = target_":"_targetMethod set recursive = "norecursive" } set sc = ..RunTest(target_$case(targetSpec, "": "", : ":"_targetSpec), "/"_recursive_"/run/noload/nodelete") set ^||Port.Project = activeProject return sc } } ``` 1 - Is there any plans to automatize the module.xml generation by using something like a Wizard?Submit an issue? More over, craft a module which supports that! And PR - it's a Community Package manager.3 - Is it possible to run pre/post-install scripts as well? Kind of what installer classes do.I think, this already in place. @Dmitry.Maslennikov who contributed a lot will comment.4 - Is also possible to use the module.xmlto provide a contextual root?We maybe can use the code! Thanks! @Dmitry.Maslennikov ? And!It worth to mention, that credit in development goes to:@Timur.Safin6844 @Timothy.Leavitt @Dmitry.Maslennikov Thank you very much, guys! I hope the list of contributors will be much longer soon! 1 - Is there any plans to automatize the module.xml generation by using something like a Wizard?Any reasons for it? Are you so lazy, that you can't write this simple XML by hand? Just kidding, not yet, I think best and fastest what I can do it, add Intellisense in vscode for such files, so you can help to do it easier. Any UI, at the moment, is just a waste of time, it is not so important. And anyway, is there any wizard from NPM?2 - Is there any plans to support non-specific dependency versions like NPM does?It is already there, should work the same as semver in npm3 - Is it possible to run pre/post-install scripts as well? Kind of what installer classes do.There is already something like this, but I would like to change this way.4 - Is also possible to use the module.xmlto provide a contextual root? Not sure about contextual root. But if saying about UnitTests, yes actually there are many things which should be changed in the original %UnitTests engine. But in this case, it has some way to run tests without care about UnitTestRoot global. ZPM itself has own module.xml, and look there. You will find lines about UnitTests. with this definition, you run these commands, and it will run tests in different phases zpm: USER>packagename test zpm: USER>packagename verify > Any reasons for it? Are you so lazy, that you can't write this simple XML by hand? Just kidding, not yet, I think best and fastest what I can do it, add Intellisense in vscode for such files, so you can help to do it easier. Any UI, at the moment, is just a waste of time, it is not so important. And anyway, is there any wizard from NPM? Haha, I'll overlook this first line. I meant something like a CLI wizard really, that asks you for steps, but maybe this can be something apart, you know Yeoman don't you? NPM does have the command `npm init` which asks you the basic information about your package and generates a package.json. > It is already there, should work the same as semver in npm Nice! Does it follow the same format as the one from NPM? (symbolically speaking ^ and *) > Not sure about contextual root. But if saying about UnitTests, yes actually there are many things which should be changed in the original %UnitTests engine. But in this case, it has some way to run tests without care about UnitTestRoot global. ZPM itself has own module.xml, and look there. You will find lines about UnitTests. with this definition, you run these commands, and it will run tests in different phases. Yeah, that's exactly what I meant about contextual root, my wording looked wrong because I intended for this feature to be used outside UnitTest, but now I see that there isn't much use for it outside of unit testing. NPM does have the command npm init which asks you the basic information about your package and generates a package.json.Yes, kind of init command sounds useful. You know, we anyway have many differences with npm, for instance. Like, zpm works inside the database with nothing on disk, while npm in OS close to source files, but I think we can find the way how to achieve the best way.It is already there, should work the same as semver in npmNice! Does it follow the same format as the one from NPM?Yes, the same way This brought me to another question. How does the ZPM handle two modules that use the same dependency but both have different versions while being used as peer dependencies? Example: Module A using dependency C requires its major 1. Module B also uses dependency C but requires the newer major 2. The requisite for this case is: You must have both because you're making a module D that uses both module A and B. In our case, it should actually fail the installation, as we don't have any way to install two versions at the same time.But, not sure, if we already have such check. Hi @Evgeny.Shvarov In Step "2. Install Package Manager client", it says to run the following code: Do $System.OBJ.Load("/yourpath/zpm.xml") It also needs to be compiled and should probably be: Do $System.OBJ.Load("/yourpath/zpm.xml","ck") Can ZPM run in Cache' ? Tried to install ZPM on Cache' but failed: %SYS>D $system.OBJ.Load("/tmp/deps/zpm.xml","ck")Load started on 04/21/2021 11:30:27Loading file /tmp/deps/zpm.xml as xmlImported class: %ZPM.InstallerCompiling class %ZPM.InstallerCompiling routine : %ZPM.Installer.G1.MACERROR #6353: Unexpected attributes for element Import (ending at line 9 character 45): Recurse > ERROR #5490: Error reported while running generator for method '%ZPM.Installer:setup' > ERROR #5030: An error occurred while compiling class %ZPM.InstallerCompiling routine %ZPM.Installer.1ERROR: Compiling method/s: ExtractPackageERROR: %ZPM.Installer.1(3) : MPP5610 : Referenced macro not defined: 'FileTempDir' TEXT: Set pFolder = ##class(%File).NormalizeDirectory($$$FileTempDir)ERROR: Compiling method/s: MakeERROR: %ZPM.Installer.1(7) : MPP5610 : Referenced macro not defined: 'FileTempDir' TEXT: Set tmpDir = ##class(%File).NormalizeDirectory($$$FileTempDir)%ZPM.Installer.1.INT(79) ERROR #1002: Invalid character in tag : '##class(%Library.File).NormalizeDirectory($$$FileTempDir)' : Offset:61 [zExtractPackage+1^%ZPM.Installer.1] TEXT: Set pFolder = ##class(%Library.File).NormalizeDirectory($$$FileTempDir)%ZPM.Installer.1.INT(117) ERROR #1002: Invalid character in tag : '##class(%Library.File).NormalizeDirectory($$$FileTempDir)' : Offset:62 [zMake+4^%ZPM.Installer.1] TEXT: Set tmpDir = ##class(%Library.File).NormalizeDirectory($$$FileTempDir)Detected 5 errors during load. ZPM works in IRIS only, but you can search around on DC, and OEX - there were attempts to provide alternative support of ZPM in Cache. I hope this ZPM will be a yet-another-reason to upgrade to IRIS ;) When I try to install webterminal, I am getting the following... IRIS for Windows (x86-64) 2022.1 (Build 209U) Tue May 31 2022 12:16:40 EDT zpm:USER>install webterminal [USER|webterminal] Reload START (C:\InterSystems\HealthConnect_2022_1\mgr\.modules\USER\webterminal\4.9.2\)[USER|webterminal] Reload SUCCESS[webterminal] Module object refreshed.[USER|webterminal] Validate START[USER|webterminal] Validate SUCCESS[USER|webterminal] Compile STARTInstalling WebTerminal application to USERCreating WEB application "/terminal"...WEB application "/terminal" is created.Assigning role %DB_CACHESYS to a web application; resulting roles: :%DB_CACHESYS:%DB_USERCreating WEB application "/terminalsocket"...WEB application "/terminalsocket" is created.ERROR #879: Target role %DB_CACHESYS does not exist.[webterminal] Compile FAILUREERROR! Target role %DB_CACHESYS does not exist. > ERROR #5090: An error has occurred while creating projection WebTerminal.Installer:Reference. Hi Scott! which version of IRIS it is? What is the version of ZPM client? I have seen this on both... HealthShare Health Connect IRIS for Windows (x86-64) 2022.1 (Build 209U) Tue May 31 2022 12:16:40 EDT IRIS for UNIX (Red Hat Enterprise Linux 8 for x86-64) 2022.1 (Build 209U) Tue May 31 2022 12:13:24 EDT using the link from https://pm.community.intersystems.com/packages/zpm/latest/installer zpm:USER>version %SYS> zpm 0.5.0https://pm.community.intersystems.com - 1.0.6 This was fixed by me on https://github.com/intersystems-community/webterminal/pull/149 in July 2022. The ZPM package is outdated. I recommend you use instructions at https://intersystems-community.github.io/webterminal/#docs to install the latest version. @Nikita.Savchenko7047 made a ZPM release - now could be installable via ZPM too Thanks @John.Murray ! ZPM package is updated When a config for instance CSPApplication already exist and the module.xml has the CSPApplication section, can you opt to not override config on server for if the client for instance made changes to application Roles then after an upgrade it is missing
Announcement
Evgeny Shvarov · Sep 4, 2019

InterSystems Developers Community Release, September 2019

Hi InterSystems Developers!Here is are the release notes of Developers Community new features added in August 2019. What's new?Site performance fix;New features for the job opportunity announcements;feature to embed DC posts into other sites;minor enhancements.See the details below.DC Performance fixIn August we've fixed a major problem in performance and think that we don't need any more tweaks on it. If you feel that some DC functionality needs performance fixes please submit an issue.New features for Job Opportunities on InterSystems Developers communityDevelopers!We want to let you know about all the opportunities for a job as InterSystems Developers so with this release we've introduced a few new features to make Job opportunities announcements on DC more visible and handy to use.Every post with Job Opportunity now have the button - I'm interested which, if you click it, sends a Direct Message to a member who submitted a vacancy with the following text:"Hi! I'm interested in your job opportunity "name of job opportunity"(link). Send me more information please".Job Opportunities now have a new icon - suitcase (for your laptop?).Job posters!If the job opportunity is closed you can click a Close button now which will hide it and which will let developers know that this opportunity is no longer available.This action will hide the opportunity into drafts.DC articles embedded to other sitesWith this release, we introduced a feature to embed DC post (an article, or event, or question) into another site.Just add "?iframe" parameter to an article and this gives you a link ready to be embedded into another site as an iframe. Example: Minor changes Again we've fixed a lot of bugs and introduced some nice features, e.g. better support for tables in markdown, new options for members sorting - by posts rating, comments rating, answers rating. Also, we added an extra link to the app in the bottom of the article if the link to the Open Exchange app is introduced. We also added a few enhancements in translated articles management - see new articles in Spanish Community. See the full list of changes with this release and submit your issues and feature requests in a new kanban. Stay tuned!