Use Search Field Expressions to automatically extract Order Numbers, Customer IDs, Invoice amounts, and other business identifiers from your logged message bodies—no manual parsing, no SQL queries.
How It Works
- Define Message Types - Identify message formats: "PurchaseOrder#1.0", "Invoice#2.0", "CustomerUpdate#1.0"
- Include message body in JSON Log Event - Set
Bodyfield with XML, JSON, CSV, EDIFACT, or X12 content - Create Search Field Expressions - Configure extraction rules bound to Message Types
- Nodinite extracts automatically - When logs arrive, Search Fields parse message bodies and extract business identifiers
- Business users search by business data - Log Views enable search: "Show me Order 12345" or "Export invoices >$10K for customer Contoso"
Example: Extract Order Number from XML
Message Type: PurchaseOrder#1.0
Logged message body (XML):
<Order>
<OrderId>PO-2025-001</OrderId>
<CustomerId>CUST-12345</CustomerId>
<OrderAmount>15750.50</OrderAmount>
<OrderDate>2025-10-12</OrderDate>
</Order>
Search Field Expression (XPath):
/Order/OrderId/text()
Result: Nodinite automatically extracts PO-2025-001 as searchable field. Business users search: "Order PO-2025-001" → finds transaction instantly.
Example: Extract Customer ID from JSON
Message Type: APIRequest#1.0
Logged message body (JSON):
{
"requestId": "req-98765",
"customerId": "CUST-Contoso",
"endpoint": "/api/orders",
"responseTime": 145
}
Search Field Expression (JSON Path):
$.customerId
Result: Extracts CUST-Contoso. Business users filter Log View: "Show all API requests for customer CUST-Contoso last week".
Supported Extraction Methods
Search Field Expressions support multiple parsers:
- XPath - XML messages (
/Order/OrderId/text()) - JSON Path - JSON messages (
$.order.orderId,$.items[0].sku) - Regular Expressions - Any text format (
Order ID: (\d+)) - Flat File parsers - CSV, fixed-width, delimited formats
- Formula - Complex transformations, concatenation, conditional logic
Multiple Search Fields Per Message Type
Extract multiple business identifiers from same message:
Message Type: PurchaseOrder#1.0
- Search Field 1:
OrderId(XPath:/Order/OrderId/text()) - Search Field 2:
CustomerId(XPath:/Order/CustomerId/text()) - Search Field 3:
OrderAmount(XPath:/Order/OrderAmount/text())
Result: Business users search by any combination: "Orders from customer CUST-12345 with amount >$10K last month".
Configuration Steps
- Navigate to Administration → Log Management → Search Fields
- Create Search Field - Name: "Order Number", Description: "PurchaseOrder identifier"
- Bind to Message Type - Select "PurchaseOrder#1.0"
- Configure Expression - Choose parser (XPath, JSON Path, Regex), enter extraction rule
- Test with sample - Validate extraction with sample message body
- Save - Nodinite applies to all future logs with that Message Type
Existing logs: Search Fields apply retroactively—re-index existing logs to extract business data from historical messages.
Related Topics:
Search Field Expressions Overview
Message Types
Formula for Complex Transformations
See all FAQs: Troubleshooting Overview
Next Step
Back to Custom Logging Overview