...
When you run analysis on Accounts with phone numbers you will get an error message like: "Output attribute "PHONE_NUMBER" has evaluated to a set of 2 values rather than a single value while processing key value ..."
Look at the data in MC Troubleshoot Phone Numbers. You will see that for the key value given in the error message, there are two records – two different phone numbers for that customer.
This type of error message is common when manually setting up merges and aggregates in CenterViewPhixFlow. Look at the expressions for the attributes in the merge. Those created with the automated merge builder use an expression getElement(…) on each input to avoid this problem.
You can often use just this approach - getElement(…)- to return the first record for the key value. However, in this case you want to show all phone numbers returned:
...
- Drag the Stream MC Troubleshoot Post Codes on to your model
- Add a lookup pipe from this Stream to Accounts with phone numbers
- Add a match on the lookup pipe: ACCOUNT_NUM = ACCOUNT_NUM
- Drag the attribute POST_CODE from MC Troubleshoot Post Codes into Accounts with phone numbers
- Drag this attribute in Accounts with phone numbers to the top of the attributes list
- Run analysis on Accounts with phone numbers
- You will see that the values in the attribute POST_CODE are all blank
This is because CenterView PhixFlow processes attributes in order. When, in the lookup pipe, you refer to _out.ACCOUNT_NUM you are using the value of the attribute ACCOUNT_NUM in the output of the Stream Accounts with phone numbers. If this is not available at the time you use it, the lookup will return no values.
...
Note: you may in fact see more than 1 message from stop() – this is because CenterView PhixFlow processes data in parallel threads, and so several data records may be processed before the stop() is enforced. However, when processing large data sets stop() can be useful since CenterView PhixFlow will stop the analysis run as soon as possible.