Evgeny Shvarov · Jul 14, 2016 go to post

Hi, Mike!

There is no option to delete your own posts now. 

But you can unpublish them.

Evgeny Shvarov · Jul 13, 2016 go to post

Hi, Rustam!

A lot of Caché code parts (classes, mac and int routings, DFI's etc) are stored in the database itself, not in files. They should be exported some way to be presented in files.

I see you have already the way to export classes, so I believe you can repeat similar code logic to export mac and int code part into the files in the same or another OS folder.

Evgeny Shvarov · Jul 12, 2016 go to post

Sorry, Cheng Cheng!

Got the idea now: you wanted Sum function for each Product Category, and Avg function for All Products in the same pivot)

And this use case of IIF and LEVEL_NUMBER solves the task. 

Great! Thanks!

Evgeny Shvarov · Jul 12, 2016 go to post

Hi, Cheng! 

Thank you for the explanation! Great use case, btw. Now it's more clear with your initial post.

It would be great if you include Level_number in the query too to see what rows has different Level_number.

Like this:

WITH MEMBER measures.[with avg summary info] AS

                              'IIF(Product.CurrentMember.Properties("LEVEL_NUMBER") = 1,

                                 AVG(Product.[Product Category].Members, measures.[amount sold]),

                                 SUM(Product.[Product Category].Members, measures.[amount sold]))'

               MEMBER measures.[total count] AS 'SUM(Product.[Product Category].Members)'

SELECT {Product.[Product Category].Members, [Product].[All Product]} ON 1,

               {Product.CurrentMember.Properties("LEVEL_NUMBER"),measures.[with avg summary info],measures.[total count]} ON 0

FROM Holefoods

I suppose 'All Product' level should have the Sum of all Product levels. But in your example 'All product' lesser than 'Snack' for example.

Evgeny Shvarov · Jul 11, 2016 go to post

HI, Cheng! 

Thanks, great example!

What is the "LEVEL_NUMBER"? Is it a kind of internal property?

Evgeny Shvarov · Jul 11, 2016 go to post

That depends on property collation. For EXACT/ TRUNCATE/SQLSTRING collation, yes "val" should exactly match the value of the property (compared part of the value), case sensitive. For SQLUPPER - no.

Should I see this collation setting in Index or in property definition? 

And what is the default setting - SQLUPPER?

Evgeny Shvarov · Jul 7, 2016 go to post

Thank you, Benjamin!

It is still so much to work to make email notifications really helpful.

We'll try to fix the issues in some next releases.

Evgeny Shvarov · Jul 7, 2016 go to post

Thank you, Eduard. We plan to add Member Collaboration page with posts and comments and I think this page will be changed to the link of Member's collaboration of yourself and will go with pagination.

So it will be fixed in some next releases.

Evgeny Shvarov · Jul 6, 2016 go to post
ClassMethod PropertyGetStored(id)

For datatype properties this method returns their logical value, for object properties, it returns the id. It’s a wrapped global reference to the class data global and the fastest way to retrieve the singular property value. This method is only available for stored properties.

Eduard, you say it's the fastest way to take the value. Did you measure it?

Evgeny Shvarov · Jul 6, 2016 go to post

The interesting question would be - why not traverse index global to get id instead of using SQL?

Really good question...

Another question what is the sense to check "val" for IS NULL for Unique Index?

So, "val" should exactly match the value of property, case sensitive?

Evgeny Shvarov · Jul 6, 2016 go to post

Edward, thank you for the very useful article! As addition to your article it would be great to add a demo class with direct examples of all the features.

Regarding this method:

ClassMethod IndexOpen(val, concurrency, sc As %Status)

"val" should be in Upper case I suppose?

Evgeny Shvarov · Jun 30, 2016 go to post

Thank you John, some of your points here really make sense. We'll think about it.

You can be sure, that all posts in InterSystems Data Platform Blog  were reviewed by InterSystems engineers team and are promoted by InterSystems product managers.

Speaking about the high standard of technical and professional competence of engineers here in the community, I think votes, views and comments for the posts and answers can indicate the competence. I'm quite sure that there are a lot of engineers in InterSystems Developer Community (DC) who has high competence in InterSystems technology.

We have plans to introduce some signs/badges here on DC, which will indicate competence in different parts of InterSystems technology and products upon their contribution to Developer Community.

Evgeny Shvarov · Jun 22, 2016 go to post

Hi, Rob! It would be better if you post the whole text of the solution here in Developer Community, instead of supplying the link only. I think this is the better approach to engage the discussion. 

Evgeny Shvarov · Jun 21, 2016 go to post

Copy-paste the current index from the previous post and add a new link to the previous post?

Evgeny Shvarov · Jun 15, 2016 go to post

Yes. But what if Debug Target is not a Class method or Routine?

In that case you can use locks or hang as Fabio suggested to catch the line and the moment and attach to the process with Studio.

Evgeny Shvarov · Jun 15, 2016 go to post

I think the problem is that you use calculated measure for the measure with the same name - f.e. count.

To solve this introduce the measure for Count with another name, f.e. CubeACount and use calculated measure to use this measure in the expression.

Hope it helps.

Evgeny Shvarov · Jun 14, 2016 go to post

I believe it should just work. Place CubeB.TotalClients in pivot based on CubeC and you'll get the CubeB.TotalClients for the facts in CubeB only.

The idea of compound cubes is that you get pivot table with  different measures from different fact tables sliced by same shared dimension. 

Evgeny Shvarov · Jun 14, 2016 go to post

It's not very clear. You want to use CubeB.TotalClients  in CubeC compound cube?

What this measure should show in CubeC?

Evgeny Shvarov · Jun 8, 2016 go to post

Very nice Alexander!

Will it work only for time dimensions with the help of %Timerange or I can use the similar approach for any type of dimensions?