NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Report customisation

Solved!
Go to solution

Good morning,

I'm trying to allow the operator to decide which type of report he/she wants to generate, a more or less detailed report. I know that in the processing result windows there is the possibility to flag the enabled and display report properties. Is it also possible to activate/deactivate those flags in a sequence with a statement step for exemple? If this is possible, that step it's better to be included in the main sequence or in a callback such as the PreUUT?

In particular in my sequence, as the below screen shows, I want to allow the operetor to choose between Report and Report_all from the sequence.

 

Thank you for the help!

Best Regards

 

report.png

0 Kudos
Message 1 of 5
(217 Views)

Hello,

 

I'm not sure having this kind of settings during execution is a good idea. I mean, the Process Model does things related to the Result Processing, and when it calls the PreUUT or the MainSequence, that's too late, result processing is already running. Pick a look to you Process Model, in one of the Execution Entry Points, Model Plugins - Begin occurs before any client sequence file Callback.

 

I think an other way to give control to this selection may be an additional custom Configuration Entry Point, with a new dialog box to enable or disable those two kind of report (using the TestStand API - no idea of how to do this). Perhaps duplicate the default Configure Result Processing sequence... You can configure who can access to this new configuration dialog box using the Entry Point Enable Expression and the group of users you may have defined, and optionnaly block the access to Configure Result Processing for Operators (for instance).

 

But it will have to be configured before test execution.

 

Best regards,

0 Kudos
Message 2 of 5
(168 Views)
Solution
Accepted by miclab

You can enable and disable model plugins such as report generators in the Parameters.ModelPluginConfiguration.Plugins in the ModelPluginConfiguration callback (https://zone.ni.com/reference/en-XX/help/370052AA-01/tsfundamentals/infotopics/pmpclientfilecallback...).

 

The parameter Parameters.ModelPluginConfiguration.Plugins contains an array of all the plugins in the active configuration, whether they are enabled or not.

 

You can change the enabled state with Parameters.ModelPluginConfiguration.Plugins[<n>].Base.Enabled.

 

You can determine if a configuration element is for an NI report generator with Parameters.ModelPluginConfiguration.Plugins[<n>].Base.SequenceFileName == "NI_ReportGenerator.seq".

 

For report generators, you can get to the report options at Parameters.ModelPluginConfiguration.Plugins[<n>].PluginSpecific.Options.

 

If you create a ModelPluginConfiguration callback, it can help to set a breakpoint inside it and inspect Parameters.ModelPluginConfiguration to see what is available to change.

Message 3 of 5
(152 Views)

It works perfectly!!!

 

Thank you for your help. Moreover from that CallBacks and the variables associated I can access to a lot of options!

0 Kudos
Message 4 of 5
(105 Views)

Good Morning,

 

During the customization of mi Reports I encountered 2 difficulties:

 

1) By using the Property Loader step, in the report it is recorded the full list of all the variabels imported with this step (in the voice of TestResult/Data), I want to record only the status "Done" and nothing more of this step. Is it possible to configure this options in the filter expression in the Option of the Report or is it necessary to act in a callback? The same issue is also for the message pop up without a Time Out option, in the report is always reported the ButtonHit variables.

The best, for me, if it is possible, is to fix this question in the ModelPluginConfiguration where I create the selection of the Report that the User wants to apply. 

2) Is it possible to add the TimeStamp of the step in a format like h:min:sec.millisec? I have tried to use the TS.StartTime but I have some dubts:

  • I seen that it is located in the Locals.ResultList[<n>].TS, this is correct? But since TS is a Runtime variable, where do I have to put a statement to access or configure its options without causing a RunTime error?
  • I read that it depends on the Engine initialization time, is it correct? Because the value saved (exemple: 14116.0935425) is difficult to compare to the TimeStamp of an external logger which is related to the clock of the PC.
0 Kudos
Message 5 of 5
(65 Views)