Versions Compared
compared with
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Insert excerpt | ||||||||
---|---|---|---|---|---|---|---|---|
|
By the end of this chapter you will be able to:
- Enrich a data set using a lookup pipe directly from a database collector
- Use the attribute function countElements()
In this exercise you will compare the
...
table you created in the previous exercise, listing all channels for each customer, with a list of assigned channels stored in an inventory database. To do this, you will create a lookup directly from a database collector:
- Open the model
Channel Package Check
- Add a new
...
- table to your model from
Latest Package All Channels
, calledChannel List Reconciliation
- Drag all the attributes from
Latest Package All Channels
intoChannel List Reconciliation
- Create a database collector, using the datasource
...
- CRM, to read all records from the table
SOURCE_ALL_CHANNELS_LIST
- Add a lookup pipe from the database collector
SOURCE_ALL_CHANNELS_LIST
to the
...
- table
Channel List Reconciliation
- Call the pipe
inv
- Go to the Order/Index section
- Press
- Call the pipe
...
Insert excerpt _attributes_show _attributes_show nopanel true - Drag the attribute
CustomerRef
from the
...
- left-hand box into the list of
...
- Order/Index attributes.
- Drag the attribute
CustomerRef
from the right-hand box into the list of
...
- Order/Index attributes again – on top of the matching attribute
CustomerRef
you created above – this will populate the right-hand part of the matching attribute. - Drag the attribute
Channel
from the
- Order/Index attributes again – on top of the matching attribute
...
- left-hand box into the list of
...
- Order/Index attributes.
- Drag the attribute
Channel
from the right-hand box into the list
...
- of Order/Index attributes
...
- - on top of the matching
...
- attribute
Channel
- attribute
...
- you created above.
This lookup will find values in the external database table which match the output records on CustomerRef
and Channel:
- Press
...
in the main pipe configuration form to save your changesInsert excerpt _finish _finish nopanel true - Open the configuration form for the
...
- table
Channel List Reconciliation
- Add an attribute with Name
InvoiceCheck.
- In this attribute, you will record whether you returned the channel from the inventory table - to do this, you will count the records returned from the lookup; if this is 1, you will record that the reconciliation check was successful:
Set the Expression of the
...
attribute to:
Code Block if (countElements(inv) == 1, "YES" , // ELSE "NO"
...
)
- Save your changes to the
...
- table.
- Run analysis on
Channel List Reconciliation
- Review the results, and see which channels reconciled against the list from the inventory database, and which did not.
- Remember that you can open the data in the external inventory table using the PhixFlow schema browser – if you want to verify the results.