2. Enricher is used if the target system needs more information
than the source system can provide.
It enriches the mule message by calling external system or
do some transformation to existing payload and save it into
some scope of variable like session or outbound or
invocation and the transformation happened in en-richer
scope doesn't affect the actual payload.
3. Set-property: Save some information extracted from payload
or original payload to some invocation or flow scope variable.
NOTE: Mule currently supports enrichment of flow
variables and message headers only.
Example:
Consider a message from a source system contains a zip code
but the target system needs the two letter state. A message
enricher can be used to lookup the state using the zip (postal
code) from an enrichment resource. The enricher calls out to
the enrichment resource with the current message (containing
the zip code) then enriches the current message with the
result.
5. This is a very simple flow with one-way inbound and
outbound endpoints, and which acts as part of an order
processing pipeline. This flow uses an enricher to add a
state flow variable to the current message with the state that
the flow ref returns. The ‘target’ attribute defines how the
current message is enriched using a MessageEnricher which
uses the same syntax as expression evaluators.
6. Description:
1. The http endpoint receives an xml input as a payload with
H-No, street, city and zip elements.
2. In message enricher we modified the payload as zip and
forwarded the same to sub flow to retrieve the state for that
particular zip.
3. The flow reference in the processor chain of the enricher
receives the state as a payload which enricher assigns to a new
target flow variable named state.
4. The payload sent from the enricher is the same as the input
payload and the new state variable is added to the xml using
Data-Mapper.
8. The enricher element also supports more advanced use cases
where the message returned by the enrichment resource isn’t
just a simple string which is exactly what we need to enrich
the current message with; often you may want to enrich your
message with just part of the information from the result of
the invocation of an external service.
More Complex Enrichment
9. In this particular example the ‘Get State’ endpoint receives
the full message, and we are supposed to use a part of
that payload. Here we mention the part of the payload in
the Source section of the Message Enricher and that is
saved in the target section.
10. The “enrichment resource” can be any message processor,
outbound connector, processor-chain or flow-ref. If using
an outbound-connector then of course it should have a
request-response exchange pattern.