"Quick watch" function for analyses
While creating and/or debugging analyses in PI System Explorer, I would like to have available an instant evaluation dialog.
This would be something I can bring up empty, and start typing (if in template, use the context of the currently selected Example Element) to evaluate a formula.
If I right click a formula or expression already placed in a variable I would like to see "Evaluate in Instant Window" or "Evaluate instantly", where the dialog is brought up with that text pre-defined. If the expression you right clicked contains time expressions (such as start time, end time) I would like to see these pre-evaluated, if they refer to other expressions or are set with PI Time expressions. One if the things I spend most time doing while debugging is changing "T+6h" and "Y+6h" to their full "18-Feb-2019 06:00" equivalents.
Another thing I spend a lot of time doing is going between the Element -> Analyses tab to the Element Template -> Analysis Template counterpart, to change things. If I was able to debug things for a template-bound analysis using an instant window it would save time.
Asle Frantzen commented
Any updates on this suggestion? Who's the PM for PI Server these days, since Steve left?
Asle Frantzen commented
Hi Steve. I obviously never got any notification last year that you had answered this, but this morning I got one.
Anyways, as mentioned in the other comment here, the debug functionality seen in Excel is a good example of a user friendly feature. It shows expressions and by clicking Next... it evaluates each component one by one.
The "Evaluate" functionality currently implemented is working fine, it gives you the answer to your expression. Normally I split expressions up in many variables, and design analyses to be easy to debug later. But it should be easier to debug expressions where everything is jammed into one variable as well. It's like in math class in school, it's not sufficient to show the end result of an equation, the teacher needs to see the intermediate steps to see you've done it correctly.
You have rules implemented in the analysis evaluation engine, in order to determine the precedence of operators and functions, and I think it would be useful to be able to step through these evaluation steps. Here's a simplified example:
Step 1 (original expression): TagAvg('tag1', 'y+6h', 't+6h') + TagAvg('tag2', 'y+6h', 't+6h')
Step 2: TagAvg('tag1', '10-Dec-2020 06:00', '11-Dec-2020 06:00') + TagAvg('tag2', '10-Dec-2020 06:00', '11-Dec-2020 06:00')
Step 3: 17 + 20
Step 4: 37
As you see, the "Evaluate" button only provides the answer in Step4, but I think it would be really useful to see Step2 and Step3 here as well. And, yes - you can see this today if you've written your analysis expression with a lot of variables, but often you come in and debug analyses other people have written, often with no comments or clues to what has been implemented. And you don't necessarily want to start breaking down someone's analyses into different variables either, which is what you need to do today if you want to debug the individual steps in order to see all intermediate values.
I'm not suggesting one new feature here, this is a more general request to have better debugging capabilities. Have the software help you understand what's going on under the hood.
The thing I suggested with an empty evaluation dialog is something I've seen in other systems, not sure which but perhaps Seeq. It can also be compared to the debugger console of Chrome developer tools. Once you have a debugging session open you can just type the name of the variable/expression you're interested in, directly in the console, and it will evaluate it immediately for you. You don't have to wait for a breakpoint to be hit, or to add it to watches. Just type it, hit Enter, and then you have it.
Now if I had that available either as floating non-modal dialog or a console-style section at the bottom of the expression variable list, I could debug the individual parts of an advanced expression one by one.
Intelligent debugging or assisted debugging. If you need more examples, send me an email and we'll set up a call.
If you use the "Preview" feature it gives you all the values corresponding to Variables, Inputs and Outputs. Does that give you sufficient information?
I see this as working much like the Excel "Debug calculation" capability - the user sees the original equation, then clicks :Next>: through each evaluation component, seeing the replacement values on the screen, until the calculation completes, or an error occurs.
Can you help me understand how this would be different than the current "Evaluate" button that you can use to evaluate the expressions immediately?