- 8 minutes to read

Context options to automate and control logged events during processing in Nodinite

Add any of the documented context values below to a Log Event to help the Nodinite Logging Service determine how to process and present events and messages.

Note: Beginning with Nodinite 5.1, the name of the context keys start with ExtendedProperties/1.0. In the earlier versions, the name was IM.DefaultProperties/1.0. The old names continue to work, but you should start using the ExtendedProperties/1.0 naming scheme for new development.

1. Control Message/Payload

The following context values control the processing of the message payload

# Context Key Value Applicable Category
1.1 ExtendedProperties/1.0#MessageTypeName string value
1.2 ExtendedProperties/1.0#MessageTypeExtractFromBody true or false
1.3
  • ExtendedProperties/1.0#Filename
  • ExtendedProperties/1.0#FullFilePath
  • Filename
  • FileName
  • filename
  • originalFilename
string value

1.1 Message Type Name

Use to override the logged MessageType name normally extracted from the payload (XML) or provided as part of the Log Event. The name of the Message Type is essential for all logging in Nodinite and must be set for the proper administration of Search Fields and processing by the Logging Service.

Context Key Value
ExtendedProperties/1.0#MessageTypeName https://nodinite.com/Customers/1.0#Batch Any string that that makes the MessageType name unique/distinguishable

Do version the Target namespace using /1.0 or /2016/05/17 notation as part of the name to provide uniqueness.

1.2 Extract Message Type Name from message/payload

You can enable/disable the control of how the MessageType name is set by providing a boolean value for the ExtendedProperties/1.0#MessageTypeExtractFromBody property.

If the context property ExtendedProperties/1.0#MessageTypeName is NOT already set, and the ExtendedProperties/1.0#MessageTypeExtractFromBody = true (True or true as a string); Then the Nodinite Logging Service tries to extract the message type name from the body/payload. This works very well for XML messages where the name of Message Type is translated as TargetNameSpace#RootNodeName.

If you log custom Log Events with XML payloads and provide the ExtendedProperties/1.0#MessageTypeName overriding parameter; The value for this system parameter should be set to false.

Context Key Value
ExtendedProperties/1.0#MessageTypeExtractFromBody true or false true=enabled, false=disabled

1.3 File Name

Pre-sets the name used as the file name for a logged event when users perform Resend, Repair and resubmit and Save (Download) operations from within the Web Client.

Context Key Value
ExtendedProperties/1.0#Filename
ExtendedProperties/1.0#FullFilePath
Filename
FileName
filename
originalFilename
Any valid file name with full path read more about valid file paths

To make use of this property, the Log Event must have a body/payload (there must be something to resubmit)

Example Meaning
c:\temp\in\order123.txt Proposed file name in Nodinite is order123.txt and the folder is c:\temp\in\
c:\temp\in\ Proposed file name in Nodinite is auto generated and the folder is c:\temp\in\
c:\temp Proposed file name in Nodinite is temp and the folder is c:\

2. Repository Binding

# Category Name Values/Example
2.0 ExtendedProperties/1.0#RepositoryBinding Json object bind Transport Contract
2.1.a ExtendedProperties/1.0#IntegrationName INT001 Invoiceflow Northwind to ACME
2.2.a ExtendedProperties/1.0#ServiceName SVC001 Send XML Invoice from Northwind
2.2.b ExtendedProperties/1.0#ServiceSystemName string value
2.2.c ExtendedProperties/1.0#ServiceDirection int or string value
2.3.a ExtendedProperties/1.0#ExternalServiceRelationName SVC001 Send XML Invoice from Northwind
2.3.b ExtendedProperties/1.0#ExternalServiceRelationSystemName string value
2.4.a ExtendedProperties/1.0#InternalServiceRelationName SVC001 Send XML Invoice from Northwind
2.4.b ExtendedProperties/1.0#InternalServiceRelationDirection int or string value
2.5.a ExtendedProperties/1.0#ContractName string value
2.5.b ExtendedProperties/1.0#ContractSystemName string value

Automatically populates the Repository Model and binds the Events' Endpoint + Message Type to a Transport Contract, within a Service.

The following properties can be set to poplulate an Integration:

  • 2.1.a. Integration Name
    • Service relation
      • 2.2.a. Name
      • 2.2.b. System
      • 2.2.c. Direction
    • Contract relation
      • 2.5.a. Name
      • 2.5.b. System

This feature is available from Nodinite version 4.3.0.72.

2.0 Repository Binding

Use this instead of the other 2.1 - 2.5 context properties to set all information about the

  • Context key: ExtendedProperties/1.0#RepositoryBinding

Repository Binding - Service Relations
Example of a logged event from Integration INT004 - Bank (2 Way) in the System Mule, Service is Receive Quotes, Transport Contract name is set to Receive Quotes via JSON The Service origin of the event is Broker A - Get Quote in System Broker A. The Service Receive Quotes in the integration platform Mule (System) publish this message and be picked up by the Service Bank - Loan Request which in this example is a Two-Way send service.

{
	"Name": "Receive Quotes via JSON",
	"Service": {
		"Name": "Receive Quotes",
		"Direction": "TwoWayReceive",
		"System": {
			"Name": "Mule"
		},
		"Integration": {
			"Name": "INT004 - Bank (2 Way)"
		},
		"ExternalServiceRelations": [{
			"Name": "Broker A - Get Quote",
			"System": {
				"Name": "Broker A"
			}
		}],
		"InternalServiceRelations": [{
			"Name": "Bank - Loan Request",
			"Direction": "TwoWaySend"
		}]
	}
}

2.1 a Integration

2.1 a Name the Integration

Set the unique name for the Integration.

The Integration is only created when either a Service or a Contract is created.

  • Context key: ExtendedProperties/1.0#IntegrationName
  • Value: string with the Name of the Integration to create like INT001 - X to Y

2.2 Service

Set of properties needed to assign a Service

2.2.a Service Name

Set the name for the Service.

  • Context key: ExtendedProperties/1.0#ServiceName
  • Value: string with the Name of the Service to create like SVC001 - Y

2.2.b System Name

Set the name for the System.

  • Context key: ExtendedProperties/1.0#ServiceSystemName is optional
  • Value: string with the Name of the System this Service is bound to. A new System is created if it does not already exists.

2.2.c Service Direction

Set the direction for the Service. If not set, the direction of the Endpoints is used instead.

  • Context key: ExtendedProperties/1.0#ServiceDirection is optional
  • Value: string or int from table below
string int
'None' -2
'Unknown' -1
'Receive' 0
'Send' 1
'TwoWayReceive' 10
'TwoWaySend' 11

2.2 Service Relation to an external Service

Tie a Service in one System to another Service in another System.

graph LR subgraph "System A" roS1(fa:fa-cog Service 1) end subgraph "System B" roS2(fa:fa-cog Service 2) roS1 --> roS2 end

2.3.a Service Name

Set the name for the Service.

  • Context key: ExtendedProperties/1.0#ExternalServiceRelationName
  • Value: string with the Name of the Service to create like SVC001 - Y

2.3.b System Name

Set the name for the System.

  • Context key: ExtendedProperties/1.0#ExternalServiceRelationSystemName is optional
  • Value: string with the Name of the System this Service is bound to. A new System is created if it does not already exists.

2.4 Service Relation to an internal Service

Tie a Service in one System to another Service in the same System.

graph LR subgraph "System A" roS1(fa:fa-cog Service 1) --> roS2(fa:fa-cog Service 2) end

2.4.a Service Name

Set the name for the Service.

  • Context key: ExtendedProperties/1.0#InternalServiceRelationName
  • Value: string with the Name of the Service to create like SVC001 - Y

2.4.c Service Direction

Set the direction for the Service. If not set, the direction of the Endpoints is used instead.

  • Context key: ExtendedProperties/1.0#InternalServiceRelationDirection is optional
  • Value: string or int value as described in the table:
string int
'None' -2
'Unknown' -1
'Receive' 0
'Send' 1
'TwoWayReceive' 10
'TwoWaySend' 11

2.5 Contract

This feature requires that the UseContracts system parameter is set to true.

Set of properties needed to assign a Contract.

The following properties can be set for the Contract:

  • Contract Name
  • System Name

NOTE: When sending a Contract; You are also supposed to send information about the Service to which the Contract is connected with.

2.5.a. Contract Name

Set the name for the Contract

  • Context key: ExtendedProperties/1.0#ContractName
  • Value: The Name of the Contract. For example, SVC001A - X. The data type is string. If the Contract does not already exist, it is created.

2.5.b. System Name

Set the name for the System.

  • Context key: ExtendedProperties/1.0#ContractSystemName optional
  • Value: The name of the System the Contract belongs to. The data type is string. If the System does not already exist, it is created.

3. Event properties

The following context values control the properties of a Log Event.

# Context Key Value Applicable Category
3.1 ExtendedProperties/1.0#LogText string value
3.2 ExtendedProperties/1.0#LogStatus long

3.1 Log Text

Use to set the Log Text property for a Log Event.

  • Context key: ExtendedProperties/1.0#LogText
  • Value: The data type is string.

Log Text Example

{"ExtendedProperties/1.0#LogText": "The node that unites different systems. Or as we call it Nodinite"}

3.2 Log Status

New 5.3

Overrides the original Log Status and replaces the value for the Log Event. This feature allows you to override the Log Statuses set by the Log Agents, for example, the Nodinite Azure Logic Apps Logging

  • Context key: ExtendedProperties/1.0#LogStatus
  • Value: The expected Data type is long, but a string value is also accepted.

Log Status Example

{"ExtendedProperties/1.0#LogStatus": 42}

Numeric example

or

{"ExtendedProperties/1.0#LogStatus": "42"}

String example


Next Step

Logging Service
Log Agents