Hi, Mike!
There is no option to delete your own posts now.
But you can unpublish them.
- Log in to post comments
Hi, Mike!
There is no option to delete your own posts now.
But you can unpublish them.
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.
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!
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 HolefoodsI suppose 'All Product' level should have the Sum of all Product levels. But in your example 'All product' lesser than 'Snack' for example.
One more hint from Russian forum:
%GCMP - Compares two globals in the same or different namespace.
HI, Cheng!
Thanks, great example!
What is the "LEVEL_NUMBER"? Is it a kind of internal property?
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?
Thank you, Scott!
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.
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.
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?
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?
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?
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.
Why do you need this?
Thank you, Jon!
Good option. Thanks, Jose!
Nice snippet, Eduard!
I wonder what is the reason to calculate Package length?
You can buy MUMPS DBMS book by Evgeniy Karataev on this site if you want.
Also there is another online book about Caché in Russian: "Модели и смыслы в Caché и Oracle" by Nikolay Bessarabov.
And last year there were new book about InterSystems Caché on Ukranian: see the TOC by Irene Mikhailova and Vladimir Gaidarzhi

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.
Copy-paste the current index from the previous post and add a new link to the previous 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.
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.
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.
It's not very clear. You want to use CubeB.TotalClients in CubeC compound cube?
What this measure should show in CubeC?
Hi, Mike!
It works for me.
Would you please send me your word-file to try?
What is the browser?
Try Chrome, Firefox or Safari?
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?