If you are developing applications that use CSP or Zen, or potentially any of the other InterSystems web-related stuff that's built on top of CSP, then it's important to know how to keep one particular secret.
A central part of the CSP security architecture is a server-side session key. "Server-side" because its value should never be revealed to the client that is issuing the web requests. If it is revealed, a malicious client might be able to use it to bypass your security and make your server do things you don't want it to.
Code coverage and performance optimization of code has come up a bunch of times already, so most of you should already be aware of the SYS.MONLBL utility.
I'm trying to insert a relationship from a parent object instance to a child object instnace programmatically. Ie, i want to do:
Do parentObject.childRefProperty.Insert(chilDobject)
where childRefProperty is defined by a string. I feel this should be achievable with $PROPERTY and/or $METHOD or maybe something in $SYSTEM.OBJ.*, but can't quite figure it out. Anyone know?
I have a client sending us data MLLP in base64 format. I'm using the EnsLib.HL7.Adapter.TCPInboundAdapter adapter. What setting do I change to accept the base64?
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.
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.
Aside from doing a print to PDF is there any way to use the existing DeepSee "export to PDF" functionality to export the entire dashboard rather than each individual pivot or chart?
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} }
On the back of my recent post on writing bug-less code I wanted to raise a few suggestions (to ISC) that would help prevent certain types of bugs at compile time. I've probably missed a few, but these are the main ones in my mind. Please contribute more suggestions.
Btw, these also serve as potential gotchas for new COS developers.
Cache Studio almost always crashes when I click rows in Call Stack view during debugging. Then Cache has to be restarted because last edited file remains locked.
Looks like I'm the only one who uses the debugger. Or is there a magic spell to make stack view working?
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?
I'd like to know about what source control version is recommended to use with Caché / Ensemble. Can someone help me? If yes, there is some documentation to how to configure?
https://www.youtube.com/embed/gmHsmCf7VpY [This is an embedded link, but you cannot view embedded content directly on the site because you have declined the cookies necessary to access it. To view embedded content, you would need to accept all cookies in your Cookies Settings]
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?
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".
In this recent post I highlighted the importance of a CSP session's Key property in enforcing the level of security your web application may be relying on, and in particular the need to keep the property value secret.
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!
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: