The message processor is a framework for processing messages that represent events. It has the following properties:
- It processes messages in the correct order. (Dependent messages are processed in sequence.)
- It's scalable. (Independent messages can be processed in parallel.)
- It uses the required system resources.
- It avoids exhaustion of system resources if a spike in messages occurs.
- It's reliable.
- It's traceable.
You might use this framework, for example, to develop and manage custom integration with external systems, and to process other custom functionality. Microsoft Dynamics 365 Supply Chain Management includes, for example, several out-of-box features that use predefined message types and message queues. These features include third-party manufacturing execution system (MES) integration, deferred posting, and packing slip posting during container close. Warehouse management only mode uses the message processor framework to manage inbound and outbound shipment orders.
This article describes how to monitor and control the processing of all message types by using the Message processor messages page.
Message processor messages page
Use the Message processor messages page to view the list of incoming messages, view the message log, manually process messages, and troubleshoot issues.
Open the Message processor messages page
To view the list of messages that have been processed by the message processor, go to System administration > Message processor > Message processor messages.
Grid columns and filters on the Message processor messages page
You can use the fields at the top of the Message processor messages page to find specific messages that you're looking for. Most of these filters match the column headings in the message grid. The following filters and column headings are available:
Message type – The type of message.
Message queue – The name of the queue that the message will be processed in. The following queues are provided:
- Manufacturing Execution 3rd Party – This queue holds messages that are created as part of the Manufacturing execution system integration feature. These messages are also listed on the Manufacturing execution systems integration page, which is like the Message processor messages page but is focused exclusively on that feature. Learn more in Integrate with third-party manufacturing execution systems.
- Production – This queue holds messages that are created as part of the Make finished goods physically available before posting to journals feature. These messages are also listed on the Deferred production order posting page, which is like the Message processor messages page but is focused exclusively on that feature. Learn more in Make finished goods physically available before posting to journals.
- Warehouse – This queue holds messages that are created for warehouse management, such as to post a sales packing slip when the last shipment container is closed as part of a manual packing process. (This message has a message type of Run packing slip for container.)
- Shipment Orders – This queue holds messages that support Warehouse management only mode.
- Source System Products – This queue holds messages that support source product master data.
- External warehouse shipment order updates – This queue holds messages that support external shared warehouse processing.
- Dynamics 365 Sales Integration – This queue holds messages that integrate with Dynamics 365 Sales. For more information about this feature and the messages that it might add to this queue, see Work with added efficiency in quote-to-cash with Dynamics 365 Sales.
- <Custom queues> – If your system has been customized to support additional types of queues, they'll also be listed here. For more information about how to add custom queues, see Implement a new queue.
Message state – The state of the message. The following states exist:
- Queued – The message is ready to be processed by the message processor.
- Processed – The message was successfully processed by the message processor.
- Canceled – The message was canceled by a user.
- Failed – The message failed to be processed.
Message content – This filter does a full-text search of message content. (Message content isn't shown in the grid.) The filter treats most special symbols (such as hyphens) as spaces, and it treats all space characters as Boolean OR operators. For example, if you search for a specific
journalidvalue that equals USMF-123456, the system will find all messages that contain either "USMF" or "123456," and the list is likely to be long. Therefore, it's better to enter just 123456 in this case, because more specific results will be returned.
View the message log, message content, and details
To view detailed information about a message, select it in the grid, and then select the Log or Message content tab under the message grid, where each processing event is shown.
The text on the Message content tab depends on the Message type value. Therefore, the text length varies. A typical message content text will start with an opening brace ({) and end with a closing brace (}). In between will be field names (for example, journalId), each of which is followed by a colon and a value (for example, USMF-123456).
The toolbar on the Log tab includes the following buttons:
- Log – Select this button to show the processing results. This function is especially helpful when messages have a Processing result value of Failed, and you want to understand the reasons for the processing failure.
- Bundle – Multiple message processing operations can run as part of the same batch process. Select this button to view the detailed data. For example, you can see whether dependencies exist that require the system to process some messages in a specific sequence.
Manually process, cancel, or requeue a message
Depending on the current state of a message, you can manually process or cancel it as you require. Select the message in the grid, and then select Process or Cancel on the Action Pane.
If you want to requeue a message that was previously canceled, select it in the grid, and then select queue on the Action Pane. The system will process the message as usual.
Schedule message processing by using the message processor batch job
To process a message queue, you must set up a batch job to run it. Usually you'll set up a fixed, regular schedule for processing each queue. However, you can also run any queue on demand. To create and schedule the required batch jobs, follow these steps.
- Go to System administration > Message processor > Message processor.
- In the Message processor dialog box, in the Message queue field, select the message queue that's associated with the messages that you want to process. The queue that you select will depend on the feature or system that generated the messages.
- On the Run in the background FastTab, set up batch and scheduling options as you require, just as you would do for other types of jobs in Supply Chain Management.
- Select OK to run or schedule the job based on your settings.
Message processor queue setup
You can configure the number of processor tasks that should be dedicated to each message processor queue and set rules for how often the queue should cleaned of processed and canceled messages. Unconfigured queues will use a default value that you can override as you require. Follow these steps to customize one or more queues.
Go to System administration > Message processor > Message queue setup.
Follow one of these steps:
- To edit an existing queue, select Edit on the Action Pane, and then select the target queue in the grid.
- To add a new configuration, select Add on the Action Pane to add a new row to the grid. Then, in the Message queue field for the new row, select the name of the queue that you want to configure.
For the new or selected row, make the following settings:
- Number of processor tasks – Specify the number of processor tasks that should be dedicated to the specified queue. The maximum value is 8. The minimum value depends on the minimum number of batch threads that are configured for your system (typically 2).
- Days before processed message deletion – Specify the number of days before processed messages should be cleaned up (deleted). Set this field to zero (0) to turn off processed message cleanup. Learn more in Clean up processed and canceled message processor messages.
- Days before canceled message deletion – Specify of days before canceled messages should be cleaned up (deleted). Set this field to zero (0) to turn off canceled message cleanup. Learn more in Clean up processed and canceled message processor messages.
On the Action Pane, select Save.
Additional resources
- Clean up processed and canceled message processor messages
- Business events, custom message queues, and custom message types
- Message processor messages for warehouse management processes
- Exchange data between systems
- Integrate with third-party manufacturing execution systems
- Enable and configure extra efficiency in quote-to-cash with Dynamics 365 Sales
- Make finished goods physically available before posting to journals