Question Chris Bransden · Nov 17, 2021

Hi All,

I'm having a strange issue where doing a .setValue on a ZEN datacombo is updating it with the value as-is, not the corresponding display value. Eg, if I connected it to query that returns two columns: ID,Name, and do a setValue(ID), I would expect the text in the datacombo to update showing Name. Instead it updates show ID, which I only want to use internally.

However, if I click on the dropdown, showing all the valid Names, select one, it works fine, showing Name (with the ID retrievable by getValue() as normal).

2
0 281
Question Chris Bransden · Mar 11, 2021

Hi! I have a complex SQL select query which I execute via %ResultSet. It also includes a UNION. The select statement within the union should only be done when an external parameter is set, and I'm not sure of way of doing that within SQL, other than something like

SELECT FOO FROM BAR

WHERE (some conditions)

UNION

SELECT FOO2 FROM BAR2

WHERE :doUnion = 1 AND (some conditions)

this works, but I don't think it's particularly optimal as I believe it will still execute the second SELECT regardless of :doUnion.

12
0 622
Question Chris Bransden · Jul 4, 2018

Hi, I found some issues with $ZF(-100) whilst replacing our old $ZF(-1) calls following the security alert. They're easy enough to work around, just figured it might be useful to someone :)

 

There seems to be some inconsistency with how $ZF(-100) is functioning between Unix and Win, contrary to the documentation. For example, for a simple ‘output directory listing to file’  operation:

 

Windows:

set dev="dir.txt"

set com="dir"

set options(1)=""

set options(2)="e:\nbupg\webserver\"

w $ZF(-100,"/SHELL /STDERR=""NUL"" /STDOUT="_dev,com,.

5
0 1366
Question Chris Bransden · Jul 25, 2017

Hi! I am trying to automatically populate an array property of cash amounts keyed by currency ("GBP", "USD", etc). This property needs to be NOT stored on the database and visible via SQL and the cache object. 

Here's my attempt. Ultimately the array will be populated based on the the some child classes, but for now I'm just hardcoding it:

 Property Amounts As array Of %Numeric [ SqlComputeCode = { set {*} = ##class(ContainerSize).GetTotalAmounts()}, SqlComputed, Transient ];
 ClassMethod GetTotalAmounts(thisID) As %Collection.ArrayOfDT
{
set arrAmounts=##class(%Collection.ArrayOfDT).
4
0 798
Question Chris Bransden · Jun 28, 2017

Hi!

I have a global-mapped class that I want to add a transient property through (or at least, not stored on the database). This property is the sum total of various charge classes that are linked to the class via child relationships.

I want this new transient property to be visible at least via SQL.

My current approach is to total it up in a ClassMethod called via SqlComputeCode. It seems to work, but feels clunky. I wonder if there is a way without passing the %%ID through? I tried it with $this but that only returns the object name in a ClassMethod.

4
0 671
Question Chris Bransden · Apr 19, 2017

Hi!

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?

Cheers :)

Chris

3
0 319