By the end of this chapter you will be able to:
- Combine data sets (a union) with a calculate stream
- Record the source for each record in a stream
- Use the internal variable _pipeName
In this exercise you will produce a single list of updates to customers' Cable TV packages. Customers can update their packages both through a Customer Care system and in shops. You will bring all these updates together into a single list.
Read in Data Sets from Files
For this exercise you need two files from the zip file you downloaded in 2 Using Excel Templates, step 5.
containing updates from the two sources (Customer Care, and Shop).
- Customer Care updates: this file containing details of customer care updates can be found in the input files, at:
<path>\train\inputData\ChannelPackages\CustomerCareUpdates\CustomerCareUpdates.txt
- ShopUpdates.txt
A file containing details of shop updates can be found in the input files, at:<path>\train\inputData\ChannelPackages\ShopUpdates\ShopUpdates.txt
- Create a new model with Name
Channel Package Check
. - Add a file collector to your model.
- Set Name to
Customer Care Updates
. - Navigate to the directory …\inputData\ChannelPackages\CustomerCareUpdates.
- Select the file CustomerCareUpdates.txt and complete the automatic file collector and stream configuration.
- Set Name to
- Add another file collector to your model.
- Set Name to
Shop Updates
. - Navigate to the directory …\inputData\ChannelPackages\ShopUpdates.
- Select the file ShopUpdates.txt and complete the automatic file collector and stream configuration.
- Set Name to
- Run both streams and check that data from the files is loaded into each one.
Combine Data Sets
- Create a new stream in your model.
- Hover over
CustomerCareUpdates
and click Add a new Stream. - Set the Name to
Combined Updates
. - Drag all attributes from
CustomerCareUpdates
intoCombined Updates
.
- Hover over
- Save your model layout.
- Add a pipe from the other stream.
- Hover over
ShopUpdates
and click Add a new Connector. - Click
Combined Updates
to link the pipe to the output stream.
- Hover over
- Double-click on
Combined Updates
to open its configuration form and set the attribute expressions.
PhixFlow automatically adds a reference to the input pipe name at the start of each expression. To make the union work, you need to update the expression for each attribute to remove thein.
prefix. Changein.CustomerRef
toCustomerRef
. - Press in the main stream configuration form.
- Run analysis on
Combined Updates
. - Check that you have the correct number of records in this stream when the analysis is complete.
- Check the data set you generated to make sure that every field in every output record has been populated.
Record the Source for Each Update
You will now update your configuration to record the source for each update, in the set of combined updates. To do this:
- Update the name of the pipe from the stream
CustomerCareUpdates
.- Double-click on the pipe to open its configuration form.
- Update the Name to
CC
. - Press to save your changes.
- Update the name of the pipe from
ShopUpdates
toshop
. - Double-click the stream
Combined Updates
to open its configuration form. - In the Attributes section, add a new attribute and set:
- Name:
Source
. Expression :
if (_pipeName == "CC", "Customer Care" , "Shop" )
- Name:
- To make
Source
the first attribute in the stream, drag it to the top of the attributes list. - Press in the main stream configuration form.
- Run analysis on
Combined Updates
. - Check the output data set and make sure that the source has been recorded on each record correctly.