Article Benjamin De Boe · Apr 3, 2017 11m read

If you've worked with iKnow domain definitions, you know they allow you to easily define multiple data locations iKnow needs to fetch its data from when building a domain. If you've worked with DeepSee cube definitions, you'll know how they tie your cube to a source table and allow you to not just build your cube, but also synchronize it, only updating the facts that actually changed since the last time you built or synced the cube. As iKnow also supports loading from non-table data sources like files, globals and RSS feeds, the same tight synchronization link doesn't come out of the box. In this article, we'll explore two approaches for modelling DeepSee-like synchronization from table data locations using callbacks and other features of the iKnow domain definition infrastructure.

2
0 488
Article Chris Stewart · Apr 19, 2017 3m read

We finished our last lesson with our Widgets Direct page receiving a Welcome message as a property of a JSON object, which was unpacked and displayed on the page. However, we are on Lesson 3, and we still haven't had any talk of displaying widgets yet.  

Let's change that.  Widgets Direct are a leader in widget and widget accessories, so we clearly have numerous items to display.   To transfer this, we will need to declare and return our first array.  Let's go back to our REST.Dispatch class, and add this data to our Service.

0
0 1974
Question Alexandr Ladoshkin · Apr 18, 2017

Hello,

I work with trigger and I need afeter update make INSERT into LogTable value of prorerty of saved class.  This is what i have in this monent.

S className = ..%ClassName(1)
S cls=##class(%Dictionary.CompiledClass).%OpenId(className)
F i = 1:1:cls.Properties.Count() {
    S prop = cls.Properties.GetAt(i)
    S propName = prop.Name
    S value={propName*N}
}

How Can I get value given "prop".

Thank you

8
0 693
Question Alexandr Ladoshkin · Apr 17, 2017

Hello everyone.

I have some issue with trigger. I have class where I defined 3 triggers (UPDATE, INSERT, DELETE). These triggers are Foreach = row/object. In my currently task, I need overide this triggers in children class.  is It possible to do it? 

Thank you for your help.

4
0 421
Announcement Evgeny Shvarov · Apr 15, 2017

Hi, Community!

With the recent release on Developer Community we have introduced member mentioning.

Now if you want to ping a member with email notification, just place in the post (or comment) following:

@name.surname

Once it is published, a member would get the email notification that he was mentioned in particular post/comment.

So, that's how I'm mentioning myself here: @evgeny.shvarov.

Have a great weekend!

1
0 345
Article John Murray · Apr 13, 2017 1m read

I only recently noticed the presence of a local database named CACHE alongside the more familiar CACHESYS, CACHELIB, CACHETEMP and CACHEAUDIT.

A bit of digging through the documentation archive led me to conclude that the CACHE database arrived in 2010.2, where the release notes say:

 

Note the lack of an accent on the words I have highlighted.

1
0 580
Question Greg Arnold · Apr 12, 2017

We are using an F5 load balancer to route public traffic to our IS server. My goal is to block public access to the Management Portal, and only allow what we want to expose, such as REST/SOAP services. At the F5, they can block URL wildcards or specific ports, so those are our options.

Since the URLs for the web services are in the same path ([host]/csp/healthshare/[namespace]/*), I can't see any URL wildcards happening. That leads me to ports; is there a way to put services on a specific port for all services, and everything else stay on a standard web port?

5
0 449
Question James Fitzpatrick · Apr 12, 2017

Hi all,

I was wondering if InterSystems offers any message profiling capabilities. What I mean by "message profiling" is essentially stats or metrics gathered from a collection of data submissions of a particular type. For instance, average number of segments  <XYZ> in a specific HL7 V2 message type. Or the number of sections found in a HL7 V3 CDA documents.

Curious if there is anything like this provided "out-of-box".

Thanks!

James

4
0 481
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!

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))

21
0 521
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...

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:

6
0 845
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.

5
0 1677