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.

Pre-requisites

None at this time

Limitations

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.46

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

Release Notes

Version
Date
Description

v3.46

27 Aug 2024

Support an option to process records separately so that an error doesn't stop the execution of a batch.

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 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 Sep 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

Fixed issue where expressions replace a column's value.

v3.26

03 Feb 2020

Improved exception messages and fixed errors with Boolean expressions to support XMIoT Boolean Casing.

v3.25

27 Jan 2020

Reworked expression parsing to no longer be reliant on System.Dynamic.Linq.Core reflections.

v3.14

09 Sep 2019

Support using 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

Support specifying 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

Changed name to Calculated Field and updated 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.00

19 Apr 2018

Initial Release.

Last updated

Was this helpful?