What are Search Field Expressions?
A Search field expression for a Search Field is the syntax/format/code/logic used to extract one or more unique values on selected Message Types and is crucial to enable support for correlation spanning multiple platforms and time. For example, an Order Number may exist in numerous messages (of different Message Types), and to find this Order Number, one or more search field expressions can be used for the Search Field.
Tip
Find and correlate your data regardless if it's within the payload (XML, Edifact/X12/flat files, JSON,... ), Context, or even external sources like a Database, Web Service and so on, by using the Nodinite Search Field Expressions, or your custom search field expression plugins.
A tracking example of the Search Field Order Number to enable a true end-to-end logging experience.
- There can be any number of search field expressions for a given Search Field
- Each search field expression can be used on one or more message type
- Set the Global option to apply the expression on all message types. Use this feature with care as this causes additional processing.
- Set the Optional option to prevent the Log Event to end up in the Processed with Warnings state when the value is missing.
A Search Field Expression retrieves values from any part of the Log Event:
- Messages (message body/payload) (and/or depending on plugin)
- Context properties (Metadata stored in a Key/Value Collection for the Event)
- Custom Plugins: External source using data from message or Context
The extract operation performed by the Logging Service uses the statement from the Expression on the selected Message Type using the selected Search Field Expression Type. The latter is a .NET assembly implementing the appropriate Nodinite contracts. Put the assemblies in the 'Plugins' folder of the Logging Service. You must restart to load the assemblies.
Note
The contracts may change with different versions, you must have a plan to update your code whenever this happens.
What Expression Types does Nodinite provide out of the box?
Nodinite comes with many built-in Search Field Expression Type plugins for use in everyday scenarios. There are many different data formats, and the data of interest may be embedded within the payload or the context properties (key/value pair). You may also need to clean the data to get the result you seek (for example, you may only want to extract the filename, without the suffix from a full path). You can also create virtual search fields, for example, count the number of order rows or the length of a field. The latter is helpful for non-events monitoring scenarios.
Search field expression types reference table
The plugins we ship out of the box sport different features on what data is possible to extract; please review specific user guides for additional details.
Here's an example of Expression Types, in this use case, the high-performance XPath is exemplified.
Plugin Name | XML | EDIFACT/X12/FLATFILE | JSON | Context Property |
---|---|---|---|---|
Flat File CSV | ||||
Flat File Fixed Width | ||||
Formula | ||||
JSON Path | ||||
Message Context Key | ||||
RegEx on Message Context with capturing groups | ||||
RegEx on Message Context | ||||
RegEx with capturing groups | ||||
RegEx | ||||
XPath on Message Context | ||||
XPath on Wrapped XPath | ||||
XPath with RegEx | ||||
XPath |
Nodinite is easily extendable and we make regular updates; contact our Support if you are missing a feature.
Next Step
Add or manage Log View
Add or manage Message Types
Related
Search Fields Overview
Search Field Expressions
Repository Model
Logging Service
Message Type Overview
Message Types