By the end of this chapter you will be able to:
...
- Add a new Merge Stream to your model, by dragging the icon onto your model pane
- Call this stream Name Channel List Reconciliation 2
- Add an input pipe from Latest Package All Channels, with Name sales
- Drag the following attributes from Latest Package All Channels to Channel List Reconciliation 2:
- CustomerRef
- Channel
- Add an pipe from the Database Collector SOURCE_ALL_CHANNELS_LIST to Channel List Reconciliation 2
Call this pipe inv
If you set up a merge directly from an external database table you cannot use PhixFlow's automated merge builder – therefore, if possible, always load data from external tables into PhixFlow first, and then merge |
- Set up the grouping attributes on the input pipes:
- Double click on the pipe sales
- Go to the Sort/Group tab
- Press and drag in CustomerRef and Channel
- Press to save your changes
- Double-click on the pipe inv
- Go to the Sort/Group tab
- Press
- In the new Grouping Attribute form that pops up:
- Select the attribute CustomerRef from the drop down list
- Tick the Group flag
- Press
- Add the grouping attribute Channel in the same way
- Back in the main pipe configuration form, press
- Double click on the pipe sales
...
Code Block |
---|
select * from SOURCE_ALL_CHANNELS_LIST order by CustomerRef, Channel (the ordering is needed to support the merge) |
When merging directly from database tables –you have to repeat the ordering of data across the query and the pipe; that is, the ordering of data in the Database Collector query much match the grouping on the pipe from the Database Collector |
- Run Analysis on Channel List Reconciliation 2
- In your results you should see an additional 3 records that were not included in the reconciliation you did in the previous exercise – channels that are recorded in the inventory, but not in the channels list, are included in your output
This is because a Merge will generate an output record for every key value it finds across all input pipes, whereas if you do a data enrichment using a lookup pipe – you will only get an output record for every record from the input pipe
Anchor | ||||
---|---|---|---|---|
|
To help you find unmatched rows in your output data, you will now add a filter (if you have already done the User course or Dashboards and Forms course, this should be familiar):
- Open the data set you have just generated in Channel List Reconciliation 2
- Press - Select, create or clear a filter
- Press in the drop-down list that appears
- In the filter details form, press the condition at the top of conditions list that says Where ALL of the following are true
- From the drop down list select ANY item true
- The top condition will now say Where ANY of the following are true
- In the second condition in the conditions list:
- Select SalesCheck
- Leave the operator as equals
- In the value field enter: NO
- Add a third condition:
- Select InvCheck
- Leave the operator as equals
- In the value field enter: NO
- Press - Apply the filter without saving
- You will get a list of all non-matched records, that is, all records where the SalesCheck value is NO or the InvCheck value is NO