Ben Spead · Jul 20, 2024 go to post

Thank you @Robert Cemper!  Working with you on the Hermes application was a great joy to me as well, and I am very thankful that we have been able to stay in touch via the D.C. after your retirement :)  I continue to learn from your deep technical expertise!!

Ben Spead · Jul 17, 2024 go to post

@John Murray  - thank you for the great investment that you and George James makes into tooling for our community!  I am always very impressed with what you come up with :)

Ben Spead · Jul 15, 2024 go to post

I second this - using Do LOG^%ETN is very useful for grabbing the full stack and in memory values for later debugging ... this is where I usually start

Ben Spead · Jul 11, 2024 go to post

I think that is a really good idea.  IPM should definitely play a role in the future with %Zen

Ben Spead · Jul 11, 2024 go to post

very well articulated!  there was absolutely some great Rapid Application Development value inherit in Zen which is hard to replicate with a 3rd party library providing UI to an IRIS backend

Ben Spead · Jun 28, 2024 go to post

if the folder includes files referenced by the running instance (xslt or js) then it's absence would have an impact on those functions which try to use the files at runtime 

Ben Spead · Jun 25, 2024 go to post

Yes - this will work in that case above case (see my example which preserves all of them in the middle)

Ben Spead · Jun 25, 2024 go to post

If you know that it begins and ends with CRLF then it is as simple as:

USER>Set string = "[line feed](carriage return) str [line feed](carriage return) ing [line feed](carriage return)"
 
USER>Write $piece(string,"[line feed](carriage return)",2,*-1)
 str [line feed](carriage return) ing
Ben Spead · Jun 24, 2024 go to post

Could you please describe the situations where it does something "bad" or where you see things as not working correctly?

Ben Spead · Jun 19, 2024 go to post

We use nightly IRIS backups which are moved to a network share, so Test can restore the backups to an alternate application data DB via a script.  We always have 2 application DBs defined, so we can script a restore on a weekly basis so the data is readily available if a developer needs it - they simply swap from the active data DB to the alternate (the alternate is always the target of the automated restore so as not to interrupt any data depending testing which may be actively going on at the time of restore).  

We have found this to be very effective for our needs for multiple internal applications. 

Ben Spead · Jun 17, 2024 go to post

I recommend reaching out to the WRC to help you dig into this specific error.  

Ben Spead · Jun 13, 2024 go to post

Voted!  Nice write-up, thank you Jean.  (boy .. the MS community pages don't work nearly as well as the InterSystems D.C.!)  Have you considered posting your content above in the appropriate MS Discussion Forum for PowerBI in order to drum up some more support?  It is very well articulated :)

Ben Spead · Jun 13, 2024 go to post

Great work Developer Relations Team!!  It was a great conference and it was wonderful to see so many people connecting on so many different levels.  The culture is contagious :)  We all appreciate your hard work!

Ben Spead · Jun 13, 2024 go to post

if you are wanting to completely render the page within the context of another page, then using <iframe src="package.page.csp" </iframe> is going to be your best bet.  Remember that a csp page isn't just a static HTML snippet - it is an entire renderable page, along with pre-page headers, etc.  That is why OnPreHttp(), OnBody() and OnPostHttp() are all included in the page framework for a .csp.  If you simply want to show what is 'rendered' when you call the page directly, you can play with calling OnPage() (which contains the compiled version of the entire body of your .csp file), but that may not operate correctly when called in isolation - it is intended to be called as part of a full pageload process, which the iframe approach above would provide.

Ben Spead · Jun 13, 2024 go to post

just like you would call any class - "write ##class(csp.package.page).method()"

Ben Spead · Jun 13, 2024 go to post

It's been a while since I had to look these up.  You probably have to select the option for 'show generated code' order to find it.  Unless you overwrote the default package, they should show up as csp.****.cls classes (in the "csp" package)

Ben Spead · Jun 13, 2024 go to post

the .csp file compiles into a subclass of type %CSP.Page.  When it is called, on the back end the various methods of the subclass of %CSP.Page are involved in order to stream the content of the .csp page.  Please see the documentation link above for more details.  

Ben Spead · Jun 13, 2024 go to post

look at the generated class from the csp.  you should be able to call the OnBody() method to create the text stream containing the html

Ben Spead · Jun 13, 2024 go to post

a CSP page will actually compile into a .cls, so you can call specific methods of your CSP page by calling the method using ##class(mycsppackage.mycsppage).methodname() (the csp package name is configurable but defaults to 'csp')