Merge two documents together by matching on the value at the specified Path's in each document. Use this Node to merge related data from a secondary dataset into the correct place within a parent dataset. The documents can be Json or XML. Both documents must be the same type.

Revision History

2.0.0.3 - Fixed bug that prevented the node from being run downstream from a ForEach.

Properties

ParentDocument

Type: Multiline Text Input
The parent XML document.

ChildDocument

Type: Multiline Text Input
The child XML document.

ParentNamespaces

Type: Multiline Text Input
A list of namespace prefixes and namespaces (one per line) that are referenced in the parent XPath properties. See remarks for further details.

ParentPath

Type: String Input
The Path to the containing node for a single record in parent document.

ParentKeyPath

Type: String Input
The Path of the key element. This should be a child of the ParentPath, and should be an absolute path.

ChildNamespaces

Type: Multiline Text Input
Only used when the document type is XML.
A list of namespace prefixes and namespaces (one per line) that are referenced in the child XPath properties. See remarks for further details.

ChildPath

Type: String Input
The Path to the containing node for a single record in child document.

ChildKeyPath

Type: String Input
The Path of the key element. This should be a child of the ChildPath, and should be an absolute path.

MergedDocument

Type: Multiline Text Output
The merged document.

UnmappedItems

Type: Multiline Text Output
An array of all the records in the child document that was not mapped to a record in the parent document.


Remarks

Enables to datasets to be merged together based on a key field. This Node is useful when its necessary to enrichen a primary dataset with additional information before doing further processing on it.

For example, if a dataset of invoices needs to be extended to include more information on the customers for the invoices, the customer record matching the customer on each invoice can be merged into the invoices dataset (see example below for this specific use case).

Note that this Node handles merge only and does not handle transformation. It's generally recommended that it be used as a precursor to QuickMap or XSL Transform.

Specifying Namespaces

The namespaces properties should contain a prefix and namespace in the format prefix:namespace one per line. The prefixes can then be referenced in the relevant Path properties.

For example, declaring a namespace ns:http://uri.com/path enables evaluation of the Path invoices/ns:invoice.

Examples

See https://flowgear.me/s/YOsylZM for an example

Did this answer your question?