go to post Peter Steiwer · Apr 16, 2021 I looked into these suggestions, but I still can't make it work. I see that when I am editing a file and I hover over the name on the tab at the top, it says "C:\Users\....\PivotSubscriptions\Subscription.cls". After using "Go To Definition", the new class opens with the path of "/PivotSubscriptions/EventLog.cls"
go to post Peter Steiwer · Apr 16, 2021 By default, changing the display of the Week members is not available. However, you can create a custom time level by extending %DeepSee.Time.WeekYear and overriding a couple methods. Then you can change your timeFunction value in your cube definition. Here is a sample I put together that was MINIMALLY tested on a newer version than the version you noted here: Class CustomTime.WeekRange Extends %DeepSee.Time.WeekYear { /// Return the user-visible name of this level. ClassMethod %GetName() As %String { Quit "WeekRange" } /// Convert a level key value to a display value. ClassMethod %KeyToValue(pKey As %Integer, pFormat As %String = "", pOffset As %String = "") As %String { Set tValue = "" Set tSC=..%KeyToBaseRange(pKey,.tStart,.tEnd,pOffset) Set tValue=$zd(tStart)_"-"_$zd(tEnd-1) Quit tValue } /// Convert a $H value to the logical value used for this level. /// This is used within the computed field logic for properties /// within a fact table based on this level.<br/>. /// In this case, we convert $H to an ISO Week: YYYYWnn ClassMethod %Convert(pTime As %DeepSee.Datatype.dateTime, pTimeOffset As %String = "") As %Integer [ CodeMode = expression ] { $S(pTime="":"",pTime=$$$DeepSeeNullTimeMarker:$$$DeepSeeNullTimeMarker,1:##class(%DeepSee.Time.WeekYear).ISOWEEK(pTime)) } }
go to post Peter Steiwer · Mar 17, 2021 This InterSystems IRIS connector will look at the Tables and BI Cubes that are defined on the system. I believe you can use the ODBC connector if you want to write your own SQL. Another option could be to define a view inside of IRIS and use the view with this connector
go to post Peter Steiwer · Mar 15, 2021 Hi Evgeny, I have previously played around with this concept of a custom action manager that would allow mapping classes/methods in an easier way without needing to manually create new action classes and modify your cube. This is still in an Alpha version, but if you want to give it a test and offer any suggestions before it goes into Beta or OpenExchange, I would be glad to hear any thoughts https://github.com/psteiwer/CustomCubeActions
go to post Peter Steiwer · Mar 15, 2021 You need to make sure "found" is being updated when the recursive call exits. This can either be done by reference (passing in .found) or simply as a return value (set found instead of do). It is always going through the full loop and never exiting early because once the value is found, it is never passed back up as being found. This means that the loop just continues on. Here are two examples of these solutions if $isObject(value) { do ..JSONIterator(value,newPath,.SearchKey,.SearchVal,.found) } if $isObject(value) { set found= ..JSONIterator(value,newPath,.SearchKey,.SearchVal,found) }
go to post Peter Steiwer · Jan 19, 2021 You might also need to add:Set mgr.IQN=SchemaName_"."_$Translate(TableName,".",$c(2))
go to post Peter Steiwer · Dec 8, 2020 Great for dealing with errors as they happen - before they get out of hand!
go to post Peter Steiwer · Oct 20, 2020 It looks like you are able to fix this error. Just in case anyone else comes across this error in the future, it means that the data has not yet been built for the element that is being referred to. In this example, that element is [Measures].[AvgTime]. By running the task, the following line was executed: set tCubeRebuild = ##class(%DeepSee.Utils).%BuildCube("Operational Analytics") This performed a full build of the cube, so the Measure that was referenced in the error and all other elements in the cube were built
go to post Peter Steiwer · Jun 22, 2020 Hi Reid, There is no current way to change the Axis Scale in a standard DeepSee chart. However, if you are using a third party charting library you are able to implement this. I added this capability to my Third Party Chart Library project. For example you can turn your chart from: into: By just modifying one setting in the UI.
go to post Peter Steiwer · Apr 30, 2020 I believe it is 3 days. I think this is to confirm posts are real and not spam. Also to allow them to get some votes and confirm it has a positive rating.
go to post Peter Steiwer · Mar 23, 2020 If you are using %INSTALLER, you can use GRANT to assign a role: <CSPApplication Url="/api/pivotsubscriptionsunsubscribe" Directory="${CSPDIR}" DispatchClass="PivotSubscriptions.UI.Unsubscribe" Grant="PivotSubscriptionsUnsubscribe" AuthenticationMethods="64" /> I have tested and confirmed that this does add the Application Role.
go to post Peter Steiwer · Mar 13, 2020 To add a little more to this, I would say it is basically the same as using SET vs WRITE: SAMPLES>set person=##class(Sample.Person).%OpenId(1) SAMPLES>w person.CurrentAge($h-1000)2SAMPLES>set person.CurrentAge($h-1000)=1 SET person.CurrentAge($H-1000)=1^<PROPERTY DOES NOT EXIST> *CurrentAge,Sample.Person
go to post Peter Steiwer · Mar 13, 2020 Based on the documentation, it seems like this may be expected since $GET is expecting a variable, not a value returned from a method call. The main purpose is to protect against undefined references which a method call should never return since an empty string is different than undefined. Since the documentation mentions it accepts multidimensional object properties, it seems like it is assuming this is what the passed in reference is. Documentation on expected values here.
go to post Peter Steiwer · Mar 13, 2020 Have you tried using a JOIN to get the desired results? If you have already tried using a JOIN, what are you seeing that is not expected?
go to post Peter Steiwer · Mar 13, 2020 Hi Michel, I am not exactly sure which type of stream you are using, but different types appear to override the Read methods. For example:%Stream.FileCharacter does not implement a Read method, but it extends %Stream.FileBinary. In %Stream.FileBinary, the Read method is defined as: Method Read(ByRef len As %Integer = 32000, ByRef sc As %Status) As %RawString
go to post Peter Steiwer · Mar 12, 2020 Something like this may work: SELECT parent FROM %Dictionary.CompiledProperty where name like 'Name' and NOT %ID %Startswith '%' This will give you all tables that aren't % classes that have a "Name" property
go to post Peter Steiwer · Mar 11, 2020 Also, CSPDIR should be a good default value and you probably don't need a dummy directory: https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=GC...
go to post Peter Steiwer · Mar 11, 2020 Even though it isn't throwing an error it is not creating the Web App correctly. If you view your Web App, the Dispatch class is not set
go to post Peter Steiwer · Mar 11, 2020 You can use GetOneStatusText: USER>w $system.Status.GetErrorText(x)ERROR #5002: ObjectScript error: <UNDEFINED> *yyUSER>w $system.Status.GetOneStatusText(x)ObjectScript error: <UNDEFINED> *yy
go to post Peter Steiwer · Mar 11, 2020 I seem to get an error when I do not specify Directory: 2020-03-11 08:29:03 0 PivotSubscriptions.Installer: ERROR #5001: - ERROR when creating Portal application: Application name, namespace and directory must not be null