Skip to end of metadata
Go to start of metadata


The analysis controller is an invisible component that makes analysis data available for reports and other components. The term invisible component means that the controller component appears in the designer, but is not visible from the client.

How to add columns into the dataset of the analysis controller from a custom property dataset?
Code Snippet
#Get the table data from the Analysis Controller
ds1 = event.source.parent.getComponent('Analysis Controller').tableData
colCount = ds1.getColumnCount()
#Get the custom property 'Area'
columnName = event.source.parent.getComponent('Analysis Controller').Area #Area is the column to be added
columnData = [] 
for i in range(ds1.getRowCount()):
 	columnData.append(i* 10)
#Adds 'Area' to the Analysis Controller's dataset
ds2 = system.dataset.addColumn(ds1, colCount, columnData, columnName, int)
event.source.parent.getComponent('Analysis Controller').tableData = ds2

Watch the Video

Component Palette

Component Properties

Properties are provided that can be set to affect the operation and look of the component. They can be set through the Property Editor in the Designer or through scripting.

event.source.parent.getComponent('MES Analysis Controller').previousDrillDownEnabled = True

NameScriptingProperty TypeDescription
Refresh on Settings ChangerefreshOnSettingsChangebooleanIf true, automatically refresh when analysis settings values change
DatadataDatasetAnalysis results.
Drill Down OptionsdrillDownOptionsDatasetDataset containing drill down options.
Previous Drill Down EnabledpreviousDrillDownEnabledbooleanIf true, then prevDrillDown.
Drill Down Bread CrumbdrillDownBreadCrumbStringA string representing the drill down path.
Ignition DatasetignitionDatasetDatasetAnalysis results returned in an Ignition component friendly dataset. This property is not visible from the properties tab, but is accessbile for bindings to other components.
Analysis Settings SourceanalysisSettingsSourceintThe source of the analysis settings. If set to Component, the component Data Points, Filter By, etc. property settings are used. If set to Saved, then the named analysis settings are used.
Analysis Settings Name analysisSettingsNameStringName of the analysis settings.
Filter ByfilterByStringThe filter section allows you to limit the data that is included in the analysis. For details, refer to the MES Analysis Selector.
Group BygroupByStringGroup Bys are the factors used to group the analysis data. For details, refer to the MES Analysis Selector.
Order ByorderByStringOrder Bys are the factors used to sort the analysis data. For details, refer to the MES Analysis Selector.
Data PointsdataPointsString

Data points are the individual pieces of information that will be present in the analysis. For details, refer to the MES Analysis Selector.

Start DatestartDateDateTimeStart Date.
End DateendDateDateTimeEnd Date.
Error MessageerrorMessageStringError Message.
Execution Time (ms)executionTimelongAnalysis execution time in milliseconds.
Setting ValuessettingValuesStringAdditional analysis setting values separated with commas.

Event Handlers

Event handlers provide the ability to add custom script when a user interacts with a component.


Fires whenever a bindable property of the source component changes. This works for standard and custom (dynamic) properties.

.sourceThe component that fired this event.
.newValueThe new value that this property changed to.
.oldValueThe value that this property was before it changed. Note that not all components include an accurate oldValue in their events.
.propertyNameThe name of the property that changed. NOTE: Remember to always filter out these events for the property that you are looking for! Components often have many properties that change.

Extension Functions

  • Description

Called to get a parameter value.

  • Parameters

self - A reference to the component that is invoking this function.

name - The parameter name as a string.

  • Return

The parameter value.

  • Scope


Code Snippet
def getParameterValue(self, name):
	##In this case, we check for the parameter named "eqPath", short for Equipment Path.
	##Return the parameter value as the Equipment Item Path of the MES Object Selector in the root container.
	##Note that this enables the use of the Stored Analysis in a Report (with parameter "@eqPath") and in vision module
	##screens with this Extension Function.
	if name == 'eqPath':
		return self.parent.getComponent('MES Object Selector').equipmentItemPath
  • Description

Called just before analysis data is refreshed.

  • Parameters

self - A reference to the component that is invoking this function.

  • Return


  • Scope


  • Description

Called just after analysis data is refreshed.

  • Parameters

self - A reference to the component that is invoking this function.

data - The dataset that contains the new analysis data.

  • Return


  • Scope


Custom Methods

Custom methods allow you to add your own component functions to a component that can be called through scripting. This is a useful and clean method of re-using script that is specific to the component (say you want to update a visual aspect of the component in the same way whether a user clicks on the component or a window property value changes). See Component Custom Methods in the Ignition Help Manual for more information.

Custom Analysis Settings

Right click on the MES analysis Controller and select Custom Analysis Settings. The same selection interface as the MES Analysis Selector component is displayed, which allows you to select a stored analysis or create new analysis settings for use on this analysis controller.

Creating an Analysis Setting

Step 1: Click on the icon.

Step 2: Give the setting a name.

Step 3: Set the permissions of who can execute or modify these settings. 

Roles containing invalid characters will not be displayed in the Permissions table.

Step 4: Add parameters.

Step 5: Save the setting.

For more details on adding Data Points, Filter By, Group By and Order By, please refer to the MES Analysis Selector.

For details on using a Custom Property as a variable for the Equipment Path in the MES Analysis Controller component, refer to the Knowledge Base page
Using a Custom Property for Equipment Path in MES Analysis.

Allowable Key Words

Operator expression key words inside string parameters used in Filter By (in either upper or lower or mixed case), such as 'AND', 'OR', 'LIKE', 'IS NULL', 'IS NOT NULL' and 'IN' will be safely ignored. Therefore, these key words are permissible (example: Equipment Path = 'My Enterprise\Site\Area\Line\Block and Tackle').

Filter By Equipment Path

It is recommended to include Equipment Path in the Filter By expression in some form. Doing so will help analysis operate more efficiently. As a reminder, a message will appear in the Error Message field if if an analysis is run without specifying Equipment Path:

Component Functions

This component provide the following functions that can be called on it. If this component has been dropped onto the windows root container, the path and an example call would be event.source.parent.getComponent('MES Analysis Controller').refresh().

  • Description

Causes the results to be refreshed.

  • Parameters


  • Return


  • Scope


  • No labels


  1. Anonymous

    Is there an easy way to have an analysis controller return values in daily intervals? the largest interval i see listed in the analysis selector is 1 hour. 

    1. The following data points could be set to get analysis results in a specified interval. Since you want the results in daily basis Shift Day Text will help you. Refer to Analysis Data Points and Settings for more details.

      • Shift Day Text
      • Shift Day of Month
      • Shift Day of Week
      • Shift Day of Year