Evgeny Shvarov · Jun 15, 2018 go to post

Could you please share a sample code with ordering of the main grouping to understand the problem better?

Evgeny Shvarov · Jun 15, 2018 go to post

Hi, Community members!

It's just a reminder on a meetup we are having on 25th in UK, Birmingham!

And! We have a time slot available! So if you want to tell about your solution or share your best practices with InterSytems Data Platform please contact me or comment to this post!

Evgeny Shvarov · Jun 14, 2018 go to post

Hi, John!

Yes, we had the issue here - it is fixed now.

Thanks for pointing this out!

Evgeny Shvarov · Jun 11, 2018 go to post

Hi, David! Yes, actually all of them are already listed in your profile if you happen to accomplish it in the past.

Evgeny Shvarov · Jun 9, 2018 go to post

No advantage of course if Locale Defaults works for you. That was not obvious. Does it work?

Evgeny Shvarov · Jun 9, 2018 go to post

Also there is a common approach to use the root as a counter of the one-level array using $seq(uence) or $I(ncrement). E.g.

Class Test.Arrays {

ClassMethod ArrayExample()

{

 set a($seq(a))="blue"

set a($seq(a))="red"

set a($seq(a))="yellow"

write a,!    // will return 3

zwrite a // will out the full array to the device

}

}

And if we execute the following in terminal you'll get:

USER>d ##class(Test.Arrays).ArrayExample()

3

a=3
a(1)="blue"
a(2)="red"
a(3)="yellow"

Also see the good article on $seq vs $I by @Alexander.Koblov

HTH

Evgeny Shvarov · Jun 9, 2018 go to post

Hi, Ed!

You can build your own Localised dimension via expressions and put whatever language you want for the months.

Evgeny Shvarov · Jun 6, 2018 go to post

Thanks Vitaly!

Really great!

Classmethod Public: is it to be able to call for $$functions in a class?

Evgeny Shvarov · Jun 5, 2018 go to post

Like this:

write $case(condition,
             1:{ 
                 set a="hello " _"world"
                 return a
               }    
             2:"name",
             :"!")

I figured out that the thing I want is close to "closures" ;)

Evgeny Shvarov · Jun 5, 2018 go to post

Hi, Ed!

Thanks! 

I'll elaborate the problem a bit. Here is the $case everybody loves:

write $case(condition, 1:expression1, 2:expression2, expression3)

My problem is that with business logic change the expression1 and expression2 showed the need for multiline logic. And I was looking for something like:

write $case(condition,

1: {

New cool logic for expression 1 with line 1
and line 2


},

2:{

Perfect, better logic for expression2
maybe with 
few lines
more

},

expression3)
Evgeny Shvarov · May 31, 2018 go to post

Hi, Jaqueline!

@Sam Duncan is right below, and please don't consider my example above!

See the updated version of the method for Cube class:

classmethod UnitLevel(unitID, level) as %String {

s unit=##class(Police.Unit).%OpenId(unitID)

if '$IsObject(unit) return ""

return $Case(level,

  1:unit.UNI_PADRE.UNI_PADRE.UNI_PADRE.%Id(),

  2:unit.UNI_PADRE.UNI_PADRE.%Id(),

  3:unit.UNI_PADRE.%Id(),

  4:unit.%id(),:"") }

Introduce the dimension with 4 levels, with expressions:

1 st level:

%cube.UnitLevel(%source.%ID,1)

2nd level:

%cube.UnitLevel(%source.%ID,2)

3 and 4 levels same idea.

AND!!! The key thing!

introduce a calculated or direct field in your class which will indicate a level of the row - say H_LEVEL with values 1,2,3,4 according to the level of administration.

and introduce a build restriction to the cube with:

H_LEVEL=4

So, there would be only 4th level records in the cube, but you'll gather all other needed calculations and values using your hierarchy.

Evgeny Shvarov · May 31, 2018 go to post

Hi, Jaqueline!

Really interesting task. Do you have only 4 levels?

If so, you can introduce a method on a cube which would return a level of the unit.

Say:

classmethod UnitLevel(unitID as %Integer) as %String {

 s unit=##class(Police.Unit).%OpenId(unitID)

 if unit.UNI_PADRE="" return "Zone"

s padre=##class(Police.Unit).%OpenId(unit.UNI_PADRE)

if padre.UNI_PADRE="" return "Prefecrure"

/// continue here!

}

It's for 2 levels,  leave other two for you ;)

And use

%cube.UnitLevel(%source.UNI_CODIGO)

for the Dimension level expression.

Evgeny Shvarov · May 25, 2018 go to post

Thank you, Kyle! We'll cover you with comments until you back! And thanks for the great session!