Platform 6 routing order Consumer creates active routing orders from transaction XML submitted via the messages.p6route() DSL.


Routing orders provide an inbuilt checkpoint restart mechanism in Platform 6. Routing orders can be replayed in the event of failure. They can also be used to trigger service execution asynchronously, leaving the internal routing engine free to queue and schedule execution.

The P6Route URL must contain the name of the destination service that will be called when the routing order is processed.

All headers present in the Camel Exchange input message will be mapped as parameters to the named service. In addition three headers are automatically added:

  • platform6.request.concept
  • platform6.request.cluster
  • platform6.request.ids


When using the Scripts service, these header values can be used to retrieve the message as a string using the message DSL call: message.getUsingPipelineRequest().

The service’s name and parameters are written to the Routing Order (which can be seen using the Routing Orders UI).

If the property execute.async is set to true the service request/response is scheduled and executed using another Thread.


To allow the messages user interface to ‘Reprocess’ messages using p6route you must add the endpoint uri of the route definition to send the message for re-evaluation. This is done using the Viewable attribute ReprocessRouteUri in the XML configuration.


Template: Dev_BaseRoute.groovy

${addRoutes} :=

        .throwException(com.amalto.b2box.core.api.B2boxException, "No matching rule found for item!")

${destroyRoutes} :=


Trigger from a script via:

message.p6projectAndRouteMI(xml, "direct:p6router.1", docId)

Allow reprocessing via the Message UI: