Calculated Field

The Calculated Field Transformation enables a user to create new column values by applying expressions, the result of which can be a newly defined column or it can replace the value in an existing one.

For example, the Agent could convert a temperature attribute on the incoming payload from Celsius to Fahrenheit - and either replace the temperature value or add a new attribute to the outgoing payload.

Statements can be written using a subset of the C# syntax. Refer to the example section for sample expressions and supported operations.

Details for an example and its configuration can be found in the How to Use section.


None at this time


Not every C# syntax is supported. Here are some examples of NOT supported features:

  • Multiline expressions

  • for/foreach/while/do operators

  • Array/list/dictionary initialization

  • Explicit generic invocation (like method<type>(arg))

  • Lambda/delegate declaration (delegate and lamda are only supported as variables or parameters or as a return type of the expression)

  • Array/list/dictionary element assignment (set indexer operator)

  • Other operations on dynamic objects (only property, method invocation, and index now are supported)

Current Version

  • Download the Calculated Field Transformation v3.45

Please contact XMPro if you're looking for an older version of this Agent.

Release Notes

v3.45, 10 Apr 2024

  • Downgraded Newtonsoft.Json to v11.0.1

  • Backward compatible with older Stream Host versions

v3.44, 29 Feb 2024

  • Added a circular dependency check in the ParseExpression function

Note: this version is only supported on Stream Host v4.4.0 and v4.4.1.


v3.43, 26 Jun 2023

  • Fixed parsing error when braces are inside quotations

  • Fixed parsing of column names used in an expression


v3.42, 07 Sept 2022

  • Repackaged to include the Agent's Category


v3.41, 28 Apr 2021

  • Fixed repetitive NEW_ prefixes added to an new column internally

v3.40, 13 Nov 2020

  • Added better error messages

v3.39, 26 Oct 2020

  • Grid converted to edit list and added multiline expression support

v3.381, 30 Jul 2021

  • Fixed repetitive NEW_ prefixes added to an new column internally using base code of v3.38

  • This is an interim version which doesn't support 'EditList' control available in latest XMIoT Framework

v3.38, 26 Oct 2020

  • Fix existing columns being deleted

v3.37, 06 Aug 2020

  • Fix to nested variable expressions when also using { }

v3.35, 15 Jul 2020

  • Added support for variable expressions using [ ]

v3.34, 26 May 2020

  • Upgraded validation to check if each expression is valid

v3.33, 21 May 2020

  • Added proper hyphen support

v3.31, 13 May 2020

  • Added column name support for ' ', '_', and numbers at the start of the column

v3.30, 27 Feb 2020

  • Fixed issue with expression not parsing on start

v3.29, 24 Feb 2020

  • Fixed expression parsing so users can use True/False properly for Boolean values

v3.27, 03 Feb 2020

  • Fixing issue where expressions replace a column's value

v3.26, 03 Feb 2020

  • Added better exception messages and fixed errors with Boolean expressions to support XMIoT Boolean Casing

v3.25, 27 Jan 2020

  • Reworked how expressions are parsed so it is no longer reliant on System.Dynamic.Linq.Core reflections

v3.14, 09 Sep 2019

  • Added the ability to use one calculated field in another calculated field's expression

v3.13, 09 Sep 2019

  • Fixed issues with Payload selection

v3.12, 04 Sep 2019

  • Upgraded System.Linq.Dynamic.Core

v3.11, 27 Aug 2019

  • Added option to specify Existing With New or only New columns as output

v3.10, 04 Mar 2019

  • Added validation for field identifiers

  • Added Error output when calculation fails

v3.09, 21 Jun 2019

  • Change name to Calculated Field and update icon

v3.08, 04 Mar 2019

  • Updated help URL

v3.07, 22 May 2018

  • Fixed outputs that overwrite input fields not having the specified output type

v3.06, 11 May 2018

  • Added DateTime type to list of derived output types

v3.05, 10 May 2018

  • Fixed null-reference exceptions in GetOutputAttributes

v3.04, 10 May 2018

  • Fixed "ToInt is not a valid method" exception

v3.03, 10 May 2018

  • Fixed "Operator cannot be applied to operands of type Object and ..." exceptions

v3.02, 26 Apr 2018

  • Updated DLL

v3.01, 19 Apr 2018

  • Changed Agent state to Virtual

v3.0, 19 Apr 2018

  • Initial Release

Last updated