go to post Dmitrij Vladimirov · Nov 27 Thank you for participation.Take a look at this comment. I'm reposting a screenshot of the entire test table.https://community.intersystems.com/post/conditions-quantity-select#comme...The userActionten field in the last row has a value of 1. In fact, it is in all columns.
go to post Dmitrij Vladimirov · Nov 27 There's not much code. In fact, there's none at all. All I have is a table with some data (the data is confidential) and a $SELECT() with the conditions described. I reproduced my case almost identically. All happend inside Architect and Analyzer.
go to post Dmitrij Vladimirov · Nov 26 The source table I use in production always contains a matching row. If there's no user data, it's not recorded in the table. Therefore, the SELECT statement must match each condition with 100% certainty. And there are no restrictions (at least not ones that would exclude some conditions).
go to post Dmitrij Vladimirov · Nov 26 Both. But if i add trird condition the result is still two $SELECT(%source.userActionone=1:"First user action", %source.userActiontwo=1:"Second user action", 1:"Other")
go to post Dmitrij Vladimirov · Nov 26 Thank for the comment. The result is the same When constructing facts for a cube, each row of the source table is passed through the dimension logic and written to the fact table. In each row, some conditions are true, while others are false. Obviously, when rows pass through this logic, all 14 conditions are expected to be returned. But that does not happen for some reason.
go to post Dmitrij Vladimirov · Nov 26 Ok, lets say there is table SELECT userActionone, userActiontwo, userActionthree, userActionfour, userActionfive, userActionsix, userActionseven, userActioneigth, userActionnine, userActionten, userActioneleven, userActiontwelve, userActionthirteen, userActionfourteen FROM TEST.TEST Then we randomly populate it with 0 and 1. Then we create a cube, dimension and function for it $SELECT( %source.userActionone=1:"User action one", %source.userActiontwo=1:"User action two", %source.userActionthree=1:"User action three", %source.userActionfour=1:"User action four", %source.userActionfive=1:"User action five", %source.userActionsix=1:"User action six", %source.userActionseven=1:"User action seven", %source.userActioneigth=1:"User action eigth", %source.userActionnine=1:"User action nine", %source.userActionten=1:"User action ten", %source.userActioneleven=1:"User action eleven", %source.userActiontwelve=1:"User action twelve", %source.userActionthirteen=1:"User action thirteen", %source.userActionfourteen=1:"User action fourteen", 1:"Other") Compile and build. Then look in analyzer. Only four this time. My production tables return 10 no matter what
go to post Dmitrij Vladimirov · Nov 26 Thanks for the comment. I tested $SELECT() in a similar script before writing this question and got the same result as yours.
go to post Dmitrij Vladimirov · Nov 11 Try this function AGGREGATE(%TIMERANGE(YourTimeDimension.hierarchy.level,YourTimeDimension.hierarchy.level.CurrentMember),Measures.YourMeasure)
go to post Dmitrij Vladimirov · Nov 7 In ObjectScript "_" is concatenation operator variable _ variable or for defining a name for data class MyPackage_User.Names. In you case the system tries to concatenate two fields. In case when you wrap it in double quotes it realy just became a string, that how syntax works for %source in Architect, you can not workaround it, i suggest you to just rename it without any delimiter if possible.If you use any other data classes exclusively for SQL tables, delimited field will work just fine with double quotes.
go to post Dmitrij Vladimirov · Oct 26 I solved this problem by creating a SQL view and then join it inside a listing query SELECT v.somefields FROM $$$SOURCE, CustomSchema.MyView as v WHERE $$$RESTRICT and source.Field = v.SameField
go to post Dmitrij Vladimirov · Oct 16 Thanks for the reply!As i said, the query works perfectly fine when executed normaly (without $$$ tokens). The data is correctI should add some details then When I compare dates in the WHERE clause, I convert them to INTs, just to make sure all the data is consistent. I also do a slightly more complex comparison. I've omitted the details because they're not relevant to my case anotherDateField BETWEEN CAST(TO_CHAR(dateFieldOne, 'YYYYMM') as int) and CAST(TO_CHAR(dateFieldTwo, 'YYYYMM') as int) Next, the date format is %TimeStamp, and it's very common in my data. I work with it every day, and every time function you can think of works without a problemSo the time data works fine, the outer WHERE clause doesn't catch up because of $$$RESTRICT in the inner section but without it the listing would not work at all
go to post Dmitrij Vladimirov · Sep 29 If it is pure ObjectScript how to write IF ELSE statement in %expression for example? Or can i use RETURN stetement? There are situations when you need to return a specific value. The Range expression doesn't work, for example, when you need to determine the display value for Null. So there's only one wayIF 'value {return "Value is False"} else {return "Value is True"}But this is wont workI can still define a class method inside the cube and reference it from within, for example, %cube.CustomLogicClass(%source.DBValue), but that seems redundant. It leaves my cube looking cluttered with simple functions containing only if-else logic.
go to post Dmitrij Vladimirov · Sep 27 Thanks for the information, but I would like to see more comprehensive documentation. Such feature rich application and no solid docs anywhere. I think i would create an idea on Ideas Portal about it.
go to post Dmitrij Vladimirov · Sep 27 I noticed you've stopped publishing app quality reports since january 2025. Why? You can publish the same information in the moderation section. Reviews aren't useful anywhere except for the app's rating on the platform. Quality reports, on the other hand, show how well developers take care of their apps.
go to post Dmitrij Vladimirov · Sep 13 You should place tag #Beginner on your article to help people find it
go to post Dmitrij Vladimirov · Sep 12 Here is your Plotly code. fig = go.Figure( data=[ go.Bar( y=df['category'], x=df['debit'] ) ], layout=go.Layout( title='Total Monthly Cost' ) ) You should convert df to a list to pass the data to the graph. Since it takes an array, it cannot display a data frame.Try it like this:df['category'].tolist() df['debit'].tolist()
go to post Dmitrij Vladimirov · Aug 12 I reproduced your case on our data, and yes, the problem is with treeMap. The problem is in the columns. If your pivot table has columns (in your case, years), DeepSeeWeb does not know how to display them on the treeMap. As an experiment, try removing years from the pivot table and see if any labels appear there.I am part of the team that supports DeepSeeWeb. I'll create an issue for our front-end department
go to post Dmitrij Vladimirov · Aug 11 HiCurrently there is no issue with displaying labels on the treeMap. What version of mdx2json and DeepSeeWeb do you use?