By the end of this chapter you will be able to:
- Combine Data Sets data sets (a union) with a Calculate Streamcalculate stream
- Record the source for each record in a Streamstream
- 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 the Customer Care a customer care system and in shops. You will bring all these updates together into a single list.
...
- Create a new model with Name: Channel Package Check
...
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. The files contain updates from the two sources: the customer care service and the shop.
...
- <path>\train\inputData\ChannelPackages\CustomerCareUpdates\CustomerCareUpdates.txt
...
- <path>\train\inputData\ChannelPackages\ShopUpdates\ShopUpdates.txt
...
- Create a new model with the Name
Channel Package Check
. - Add a file collector to your model and load the data.
- PhixFlow displays a form for the new file collector. Set the Name to
Customer Care Updates
. - In the model, hover over the
Channel Package Check
file collector to display the context toolbar. - Click Upload Managed File.
- Navigate to the directory <path>\train\inputData\ChannelPackages\CustomerCareUpdates.
- Select the file CustomerCareUpdates.txt
- PhixFlow displays a form for the new file collector. Set the Name to
...
- . and clickUpload.
- PhixFlow adds a new stream to the model, called
CustomerCareUpdates
. - In the model, hover over the new
CustomerCareUpdates
stream and click Run Analysis. - Check the data is loaded. There should be 8 lines of data, with columns for Customer Ref, Sales Date and Package.
- Now the data is loaded into the stream, set the stream to Static.
- Add another file collector to your model and repeat the process described in step 2. This time:
- Set the file collector Name to
Shop Updates
. - Upload <path>\train\inputData\ChannelPackages\ShopUpdates
- Set the file collector Name to
...
- \ShopUpdates.txt
...
- .
- PhixFlow loads 7 rows of data to this stream.
- Remember to set the steam to Static.
Snapshot of the Channel Package Check
model so far:
Combine Data Sets
- Create a new stream in your model and populate its attributes.
- Hover over
CustomerCareUpdates
and
- Hover over
...
- click
...
- Add a new Stream.
...
- In the form, set the Name to
Combined Updates
. - In the model, show the stream attributes for
CustomerCareUpdates
. - Select all the attributes and drag them into the form for the
Combined Updates
stream. Drop them into the Attributes section.
- In the form, set the Name to
- Save your model layout.
- Connect the
ShopUpdates
stream to theCombined Updates
stream.- Hover over
ShopUpdates
and
- Hover over
...
- click Add a new Connector.
...
Click
Combined Updates
to link the pipe to the
...
stream.
Info When you connect streams, PhixFlow automatically adds a reference to the input pipe name. this appears in the attribute expression. To merge this data successfully you must update the attribute expressions to remove the
in.
prefix.
- Fix all the attribute expressions.
- Double-click on
Combined Updates
to open
- Double-click on
...
- its configuration form
...
you must remove the reference to the input pipe that CenterView has automatically added to the start of each Expression, e.g.:
- Update the expression
in.CustomerRef
to
CustomerRef
- 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 – make sure that every field in every output record has been populated
...
- . For each attribute:
- In the Attributes section, double-click on an attribute to open its form.
- In the form for the attribute, in the Basic Settings section, edit the Expression to remove
in.
and press .
- In the
Combined Updates
stream form, press to save the changes. - Run analysis on
Combined Updates
. - Check that the stream has:
- the columns CustomerRef, Sales Date and Package
- 15 rows
- all cells have data.
The stream default view:
Snapshot of the Chanel Package Check model so far:
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.
- to
- Update the name of the pipe from
ShopUpdates
...
- to
shop
. - Double-click the
...
- stream
Combined Updates
to open
...
- its configuration form
- Add a new Attribute with Name: Source
- Set the Expression of Source to:
...
- .
- In the Attributes section, add a new attribute and set:
- Name:
Source
. Expression :
Code Block if (_pipeName == "CC",
- Name:
...
"Customer Care"
...
,
...
"Shop"
...
)
...
- 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.