- 5 minutes to read

Message Types

System Integration Solutions typically communicate by sending messages to each other as part of a conversation. The participants in a conversation agree on the name and content for each type of message usually following some business-standard, for example, the UN standard for EDI Despatch Advice.

A Message Type object defines a unique name for a message type and defines the type of data that the message contains. Message types are persisted in the configuration database and are used by Search Fields to extract values for use in search and restrictions in Log Views.

graph LR subgraph "MessageTypes" roMTPurchaseOrder(fal:fa-file Papinet.PurchaseOrder/2.31) roMTOrder(fal:fa-file EDIFACT.ORDRSP.D96A) end subgraph "Search Field Expressions" roSFEOrderIdFromEdifact(fal:fa-flask RegEx with Capturing Groups) roSFEOrderIdFromXML(fal:fa-flask XPath) end subgraph "Search Fields" roSFOrderId(fal:fa-search-plus Order Number) end roMTPurchaseOrder --- roSFEOrderIdFromXML roSFEOrderIdFromXML --- roSFOrderId roMTOrder ---roSFEOrderIdFromEdifact roSFEOrderIdFromEdifact --- roSFOrderId

Nodinite can correlate transactions like order/order response in different formats even transmitted on many various integration brokers spanning long time intervals.

  • All logged messages within Nodinite must have a well-known Message Type.
  • For a message type that specifies XML conforming to a particular schema collection, the message must contain valid well-formed XML.
  • For a message type that specifies no validation and/or schema, Nodinite accepts any message content. This includes binary data, XML, or even empty messages (for example an API call where you only want to log the HTTP headers).

A Message Type is a member of a Service in the Repository Model model and represents the type of message for a logged message. Examples can be:

Messages can be displayed for end-users in a user-friendly format by the use of Stylesheets.

Origin of Message Types

Message Types origin from the process of logging. Messages are not allowed to be logged without a Message Type. The proposed Message Type from the Logging Agent Configuration is retained and stored as the Original Message Type.

  • For custom logging, the Message Type is defined by the custom code.

All logged Messages will be processed by the Logging Service. During processing, the Message Type will get known, one way or the other.

When a message is logged to Nodinite, it is unprocessed. Once the Logging Service has managed to deal with unprocessed and messages pending a re-index operation; The message becomes processed.

Automated deployments

Devops
Manage Nodinite Message Types as part of your DevOps routine

As part of your Azure Devop routine; It is possible to programmatically create/manage Message Types by invoking the Nodinite Web API.

Microsoft BizTalk Server

The Logging Service has special support for Microsoft BizTalk Server. When solutions within BizTalk Server uses pipeline components with a defined schema the Message Type is well-known. For Passthru pipeline components the message type is unknown and needs to be dealt with. Nodinite provides many options.

  • For Nodinite Logging Agents, the Message Type is created with our logic.
    Avoid the built-in Unparsed Interchange and Serialized Interchange(!). Make sure to set a default message type in the Advanced tab of the Endpoint for the message exchange.

Passthru

Using any of the Passthru pipeline components results in logged messages being either Unparsed Interchange or Serialized Interchange depending on direction.

XML Content

If the content happens to be UTF-8 encoded (default for BizTalk Server) and the content is XML then Nodinite will resolve the Message Type in the same way as BizTalk does. This is the composition of the target namespace and the name of the root node, for example:

urn:oasis:names:draft:ubl:schema:xsd:DespatchAdvice-2#DespatchAdvice

Non XML Content

For flat file and EDI based messaging the Logging Service will query the BizTalk Server Configuration database (BizTalkMgmtDB) for additional information to resolve the current schema used for the message exchange.

In conclusion; For BizTalk Server, this means that even if Passthru pipeline components are being used, the message type will still be known for Nodinite.

Message Types set on Endpoint

As a last resort, you can always configure the Nodinite Endpoint to always treat content as being a named user-defined Message Type

Unprocessed Message

Unprocessed

Processed Message

Processed

If the message is JSON, XML or EDIFACT based, the Logging Service extracts the Message Type to be used within Nodinite from the message payload. The Original Message Type is kept on record level, but Nodinite uses the value set/extracted as the Message Type. This facilitates the use of Search Fields.

Note: You can supersede the logic by providing your own defined message type as a Context Option.

XML

For XML mesages, Nodinite extracts the Message Type from the value for Target Namespace with the combination of the root node, for example (Orders/1.0#Order)

EDIFACT

For EDIFACT messages, Nodinite sets the Message Type using the value from the UNA field.

JSON

For JSON messages with the schema property set, Nodinite sets the Message Type accordingly.

Read more about JSON schema here

Search Fields

Values for Search Fields will be extracted during the processing of messages. You can reprocess/re-index messages based on the Message Type if you add or change the configuration for a Search Fields.

Note: Adding Search Fields and Search Field Expressions on MessageTypes increases workload. Make sure to configure and use this powerful feature wisely

reindex
Re-index operation available in the Action Menu

Removal of old messages based on message type (Days to keep)

This topic is in details in the Add or manage Message Type user guide.


Custom Meta Data

All entities of the Nodinite Repository Model, a System can have any number of Custom Meta Data fields assigned.

Custom Fields

All entities of the Nodinite Repository Model, a System can have any number of Custom Fields assigned.


Next Step

Add or manage Message Types
Add or manage Search Field
Add or manage Service
Message Type Overview

Repository Model
Services
Logging Service
Log API
Search Fields
Log Views
Stylesheets