Announcement Ben Spead · Sep 18, 2020 CCR Angular UI Getting Ready for Launch! Earlier this year, we launched a beta program for the new CCR Angular UI. As almost all of the known issues and gaps have been addressed, we are getting ready to launch the new angular UI for all users. #Angular #CCR #HealthShare #TrakCare 4 0 1 302
Announcement Ben Spead · Feb 18, 2020 Beta testers wanted for new CCR Angular UI Hundreds of users at TrakCare and HealthShare sites around the world rely on the InterSystems CCR Application (Change Control Record) to track their changes and deploy their configuration. InterSystems is excited to announce that following the launch of the Angular-based Documentation and FAQs this summer, the CCR application is now ready to accept beta testers to try out further expansion of the Angular UIs. Users at CCR-controlled sites who wish to participate in the beta testing of the new UI can "opt-in" using the following steps: #CCR #HealthShare #TrakCare 3 9 0 799
Question Ben Spead · Dec 21, 2019 API for looking up server name based on IP? Does anyone know of an API that will do a hostname look-up based on IP? We could of course use call-out but the format of the results vary based on OS and if there is already an ObjectScript tool which will parse this then we'd rather use what is already available. Thanks!Ben #ObjectScript #Caché 0 4 0 272
Article Ben Spead · Sep 30, 2019 2m read Tips & Tricks: Use self-destructing debugging code Every developer has made the mistake of accidentally leaving temporary debug code in place when they meant to remove it after debugging is complete. The great thing about writing in ObjectScript is that there is a way to make temporary code be truly temporary and automatically self-destruct! This can also be done in such a way that the code has no change of making it into your source control stream, which can be helpful as well. #Debugging #Development Environment #Tips & Tricks #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 3 1 0 399
Article Ben Spead · Jan 11, 2019 4m read SQL Performance Resources There are three things most important to any SQL performance conversation: Indices, TuneTable, and Show Plan. The attached PDFs includes historical presentations on these topics that cover the basics of these 3 things in one place. Our documentation provides more detail on these and other SQL Performance topics in the links below. The eLearning options reinforces several of these topics. In addition, there are several Developer Community articles which touch on SQL performance, and those relevant links are also listed.There is a fair amount of repetition in the information listed below. The most important aspects of SQL performance to consider are:The types of indices availableUsing one index type over anotherThe information TuneTable gathers for a table and what it means to the OptimizerHow to read a Show Plan to better understand if a query is good or bad #Best Practices #Performance #SQL #InterSystems IRIS 8 1 4 974
Question Ben Spead · Nov 14, 2018 How to get DB and global location information? I need to write a script to answer a couple of fairly simple questions:1) What is the current routine DB (name and location) for this namespace?2) What is the current data DB (name and location) for this namespace?3) Is global ^ABC mapped to a different location than the default data DB?Can anyone point me to some system APIs that would allow me to answer these questions?Thanks!Ben #Caché #ObjectScript #System Administration 0 2 0 486
Question Ben Spead · Jun 19, 2018 Refresh object in memory from data on disk? 1) I have an oref pointing to an object on disk2) I save the object which causes an UPDATE / AFTER Trigger to fire, and updates a value in an embedded object property3) I would like to see that new embedded property value in my in-memory object (for unit testing)Is there a way to do this via a method call? Or do I need to close the object and re-open it to see the updated value?Thanks!Ben #Object Data Model #Caché 0 1 0 287
Question Ben Spead · Jun 12, 2018 How to navigate to parent of Serial Object? I have a serial object:Class EmbedObj Extends %SerialObjectwhich is stored as a property of another objectClass ContainerObj Extends %PersistentProperty InnerObj As EmbedObj;Property Foobar As %String;Question:From within the context of an instance of EmbedObj, how can I navigate to the containing instance of "ContainterObj" and find that value of its Foobar property? #Object Data Model #ObjectScript #SQL #Caché 0 8 0 668
Question Ben Spead · Jun 5, 2018 How to Update Caché User Full Name field via SQL? Does anyone have any sample code for updating Caché users (and specifically Full Name and Comments) via SQL? Bonus points for knowing specifically what security resource needs to be assigned to allow someone to run the SQL.Thanks in Advance!Ben #Access control #SQL #Caché 1 9 0 446
Article Ben Spead · Apr 25, 2018 6m read Managing Many Environments and Protecting Production NOTE: This content was originally presented at the InterSystems Global Summit in 2014, however related topics often come up on the Developer Community so I have decided to turn this into an article for easier reference and discussion. However, much of the content was pulled directly from the presentation slides so the article format resembles that of a PPT deck more than paragraphs. #Caché #Code Snippet #Development Environment #Studio #Tips & Tricks 7 1 3 1K
Question Ben Spead · Mar 23, 2018 No error when referencing unset relationship object property I've been writing ObjectScript for a long time and was a little surprised by this behavior so I'd like to understand what is going on.I was doing a peer review on some source which had roughly the equivalent of the following line: #Object Data Model #ObjectScript #Caché 0 2 0 325
Article Ben Spead · Sep 12, 2017 1m read Widgets Direct The Widgets Direct sample application highlights many aspects of how to use InterSystems technologies to build a modern web application. Features include: #Angular #Continuous Integration #Docker #Frontend #JSON #REST API #SOAP #Caché 5 5 0 1.5K
Article Ben Spead · Sep 6, 2017 1m read Pro Tip: Controlling your SysTray Cube icon appearance This 'feature' have been around for a long time, but I don't see any articles on it so I thought I would make everyone aware. #Caché #Development Environment #Studio #Tools #Ensemble #Microsoft Windows #Tips & Tricks 15 5 1 1.3K
Question Ben Spead · Aug 29, 2017 Are there server-side Git Studio Hooks available out there? I want to demonstrate using Git via Server-side Source Control hooks (to allow both Studio and Atelier to access a Shared Dev namespace), and I was planning to use the popular Caché Git hooks:https://github.com/intersystems/cache-tort-git #Git #Development Environment #Studio 0 7 0 897
Question Ben Spead · Mar 7, 2017 Getting URL detector RegEx to work with Caché %Regex.Matcher I am trying to write some code that takes in a string and does a serverside transformation of it to find embedded URLs and replace it with clickable links. I found the following regex for Javascript which is rated highly on StackOverflow; #Caché #ObjectScript 0 3 0 573
Article Ben Spead · Aug 25, 2016 4m read Writing forward compatible JSON in 2016.1 Background #Caché #Code Snippet #Compatibility #JSON #Tips & Tricks 9 11 0 2K
Question Ben Spead · Aug 17, 2016 Zen Mojo - REST vs native transport? I am going to start playing with Zen Mojo (again) and as I understand it there are two ways to manage moving data to/from your Zen Mojo page: interacting with REST services using Mojo's built-in transport I would like to understand the pros and cons of each approach. Which is recommended in different situations and why? I would like to create a sample application that will hopefully be reusable and helpful to others and I would like to understand which approach to pick for my app. #Frontend #ZEN #Caché 0 4 0 520
Discussion Ben Spead · Jun 7, 2016 Promote Comment to Answer and mark Best Answer Since we have a way to see 'Unanswered' questions now, there are a couple of things that jumped out at me. Not sure if I am missing how to do these or if they need to be added to the future enhancements list: 1) It looks like a lot of people 'Comment' on a Question rather than providing an Answer. This means that there are many questions listed as unanswered where the answer actually lies in a Comment (but noone has submitted a formal Answer). Is there some way to tag a Comment as the Answer? #DC Feedback 1 1 0 177
Article Ben Spead · Feb 25, 2016 1m read Studio Tip - running COS Commands from Output I wanted to share a little tidbit which is in the Studio documentation (http://docs.intersystems.com/cache20152/csp/docbook/DocBook.UI.Page.cls?...) but many people who have been using the InterSystems Studio for a long time missed the addition of this *very* useful feature, and every time I mention this to an audience I see at least one face light up because of how excited they are to learn about it!Within Studio, the Output pane (View -> Output) is actually misnamed. It is actually an Input/Output window which can be used to run Caché ObjectScript commands! #Caché #Development Environment #Studio #Ensemble #HealthShare #Tips & Tricks 10 7 0 1.4K
Question Ben Spead · Nov 20, 2015 How do you to a lone ">" in an &html<> block? I am using &html<> to output some CSS to my page (which is a class-based and not a tag-based page), and the selectors contain the '>' character which the compiler chokes on. How can I escape the '>' so it still displays as such in the web page source but doesn't trip up the compiler?This is for 2012.2 btw. #Compiler #HTML #Frontend #Caché 0 8 0 469