Article Kyle Baxter · Apr 12, 2017 1m read

 It's almost time to get your customers upgraded to new versions - are you worried about showing off your SQL Performance after upgrades?  If you want to upgrade without worrying, then I have just the program for you!!!  Check out this video from Global Summit 2016 featuring yours truly explaining how to upgrade a system without worrying about pesky SQL queries showing on your waistline!  

https://www.youtube.com/watch?v=GfFPYfIoR_g

Unfortunately the video started after the Frozen Musical Sing-a-long, but it's 30 minutes of the most fun you'll have while learning tools and tips for Caché SQL!

Que

0
0 387
Question Arto Alatalo · Apr 11, 2017

I have classes A and B, B derived from A, A has method Abc.

From INT of class B I see that compiler copies implementation of Abc to class B, so that Abc exists both in A and B.

As result, when B invokes Abs, B.Abs() is executed instead of A.Abs(). In result debuger is not able to step into Abs and breakpoints in A.Abs never hit.

Why this happens and how can I avoid this?

Update:

OK, now I know the reason: compiler makes the copy if Abc has this line:

cn=##Expression($$$quote(%classname))

hmmmm... compiler needs name of method's class so it "moves" the method to child class.

21
0 523
Question Scott Roth · Apr 11, 2017

With help from others here I had developed some code to take a Base64 PDF within a OBX.5 and save it locally to the file structure on the server.

I had to make a change to the code to return me a String so I can pass the Path back into Ensemble to use it in the message. When I made this change I am getting " ERROR #5034: Invalid status code structure ("/ensemble/data/transfer/AncillaryPDF/TMSAUDIO/Apr-11-1/980512729TMSAUDIO1046784936436537800.pdf")"

Here is the code...

ClassMethod DecodeBase64HL7ToFile(base64 As %Stream.GlobalBinary, Ancillary As %String, FileName As %String) As %String{set
3
0 1344
Question Stella Ticker · Apr 11, 2017

There is a large file that needs to be processed, with over 500 000 rows. Each row needs to be verified for various data and then all the results collated and reported into a single report.  What is the most efficient way to do this? I tried calling the processing function with Job , where each function jobbed off would report results to a different node of a common global. But the jobbed functions are not updating their respective rows even though I am passing the global name and root node. What is the most efficient way to process this large file? Any Cache/Ensemble ideas are appreciated.

1
0 1302
Question Ivan Tioh · Apr 5, 2017

I have done Python - Cache binding setup following the guide from http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…. I have also run test.py from sample3 folder and it able to run and complete successfully.

However, when I try to run the same test.py code via $zf, it gives error with exit code 1.

I've tried running help("intersys.pythonbind3") via $zf and also running from Cache terminal as follows:

  1. $zf(-1,"C:\Python36\python <path>/script.py")
  2. ! C:\Python36\python <path>/script.py

which gives me the following output:

problem in intersys.

6
0 846
Question Glenn van Bavel · Apr 11, 2017

Hi,

Terminal says "Unable to open Registry key 'SOFTWARE\Microsoft\Windows\CurrentVersion\CommonFilesDir.1" when I execute $$Register^SNMP().

For monitoring purposes I want to use SNMP in Ensemble. One of the steps I have to do is to use the method $$Register^SNMP() in the terminal "%SYS" namespace. This is mentioned in a Intersystems Docs page.

Monitoring Caché Using SNMP

  • Caché expects the SNMP service to be installed before you install Caché, so it can add iscsnmp.dll to the proper Registry keys. Once Caché is installed, the SNMP service must be restarted so that it properly loads iscsnmp.

5
0 1680
Question Raul Munoz · Apr 4, 2017

Hello,

I have been involved with using terminal scripts lately (I use GE Centricity Business), that usually do not go beyond 'send:' and 'wait for:' commands.  Notwithstanding, I have been stuck with the message boxes since the script recorder does not record over this whenever I need to click 'Yes' in a given message box prompt which aggressively stops my scripts/macros from continuing.  I know that this commands are labeled 'Extended Escape Sequences', but I have been looking all over at the Intersystems document repository with no luck in finding anything of the sort.

7
0 653
Question Sebastian Thiele · Apr 7, 2017

Hi,

is there a way to implement the behaviour for a zen dataCombo? Let´s assume the dataCombo retrieves it´s data via sql query, lets say 50 records. Now the user type into the input of the datacombo 'a', which shall auto select the first entry beginning with character 'a'. If the type 'a' again, the next item from the list is selected. What I am looking for is an approach to implement such an behaviour. See a simple <select> component which support the desired functionality out-of the box.

I´ve found an old google group entry on this (https://groups.google.com/forum/#!

3
0 449
Question Gordon Hodgkinson · Apr 9, 2017

Hi All,

Am attempting to run sample unit tests as per

Caché %UnitTest Tutorial
Example: Executing a Test Using Set-Up and Tear Down Methods
 

 and getting an ERROR #5007:

The Terminal detail is as follows:

SAMPLES>Set ^UnitTestRoot="C:\UnitTests"                                        
SAMPLES>write ^UnitTestRoot
C:\UnitTests
SAMPLES>do ##class(%UnitTest.Manager).RunTest("MyTests")
 
ERROR #5007: Directory name '/usr/cachesys/mgr/samples/C:/UnitTests/MyTests/' is invalid
SAMPLES>

The '/usr/cachesys/mgr/samples/' part is the correct path for the namespace 'SAMPLES' and the

2
0 571
Question Ashok S · Apr 6, 2017

Based on user request in zenpage, i am running the method ConvertMDXtoJSON in background and loading the status in progressbar.

D ..%RunBackgroundMethod("ConvertMDXtoJSON",MDX)

From this background method ConvertMDXtoJSON() i want to return the value(sjson) and store it into session.

How can i do this?

Below is my code. 

ClassMethod ConvertMDXtoJSON(pMDX) As %String
{
  Try 
  {
      Do ..%SetBackgroundMethodStatus("Started",0)
      set Params = ""
      set pStatus = $$$OK
      set RS = ##class(MS.Deepsee.MDX2JSON.ResultSet).%New()    
      set pStatus = RS.%PrepareMDX(pMDX)
4
0 2170
Question Evgeny Shvarov · Apr 9, 2017

Hi!

Sometimes I need to filter the widget on a dashboard from a different cube. And I face the following problem:

Widget A refers to a query from Cube A and I want to filter Widget B from Widget B.

Widget's B pivot refers to Cube B, and which has different dimensions for the same data.

E.g. cube A has the dimension Author and the Cube B has the dimension Member for the same data. So  there is no way to filter such a widget B from the widget A.

Actually, once we filter a given widget B with another widget A, we add the Filter Expression to the MDX query which looks like member's expression from

1
1 406
Announcement Evgeny Shvarov · Mar 16, 2017

Hi, Community!

I hope you know the option to use DeepSee analytics portal for Developer Community stats. You can find it in Community-Analytics menu.

Let me introduce the beta of new analytical dashboard 'Articles' Views', which is available in Authors folder.

It consists of two dashboards, first shows the running total of the views for the articles (to see the impressive growing curve).

The second shows the daily additions in unique views (to analyze the dates of spikes).

Use the filters of Author, Article name, Publishing year and year timescale of analysis.

E.g.

5
0 355
Question John Murray · Apr 6, 2017

The DC homepage has a Top Stories panel.

What makes a story appear here?

When I click the "View All" link (highlighted above) I get the page at https://community.intersystems.com/top-stories

This one seems to reload periodically, each time displaying more and more posts. Will it ever stop? Or maybe it'll try and load every post there's ever been.

Perhaps because of the periodic reloading, the Comments, Views and Rating counts never seem to appear alongside the entries:

2
0 191
Question Graham Uricchio · Apr 4, 2017

I created a DTL to do HL7 mapping. The test function in the tools works the DTL perfectly but when used by the rule in my business process, the OBX segments are stripped and the MRN is gone. The assigning authority and ID type are added into the PID but the actual patient MRN is blank (3.1 value).

Here is the source code. 

<transform sourceClass='EnsLib.HL7.Message' targetClass='EnsLib.HL7.Message' sourceDocType='2.3:MDM_T02' targetDocType='2.5:MDM_T02' create='new' language='objectscript' >
<code>
<![CDATA[ //MSH SEGMENT]]></code>
<assign value='source.{MSH}' property='target.{MSH}' action='set

8
0 845