Versions Compared
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:
- Use the attribute function replaceAll()
- Use the attribute function toUpper()
- Use the attribute function substring()
- Use the attribute function if()
- Use the internal variable _out
Reformat post codes to remove all spaces and make upper case
...
In your Introduction to Modelling analysis model, you will now reformat post codes to remove all spaces, and ensure that all letters are upper case:
- In your model, add a new
...
- table:
- Hover over Customer Details with Region, and press
...
.Insert excerpt _table_new _table_new nopanel true - Give the new
...
- table the Name:
Reformatted Customer Details.
- Drag all attributes from to the new table Customer Details with Region
- table the Name:
...
- .
- Open the
...
- settings for the Reformatted Customer Details table.
- In the Attributes section, add a new attribute:
- Press
- In the Attributes section, add a new attribute:
...
Insert excerpt _add _add nopanel true - In the
...
- New Table Attribute settings, set:
- New Table Attribute settings, set:
...
- Name:
ReformattedPostCode
- Leave the settings for the attribute as default (Type is String, Length is 50)
- Name:
...
- Expression
...
- :
Code Block |
---|
toUpper(replaceAll(in.PostCode, " ", "")) |
...
- Press Image Removed
...
- Press
on the New Table Attribute settings.Insert excerpt _finish _finish nopanel true
- Press
Tip |
---|
Above the attribute's Expression is a help link that will open a page containing details of all attribute functions available in PhixFlow |
...
. Find the attribute functions you used above – toUpper() and replaceAll() |
...
– click each of these to see the help pages specifically for these functions. Inline help is also provided for functions, this will appear as you type. At the bottom of the popup help is a link directly to the page for the function in question. |
Generate short code for Counties
Now you will generate a short code for counties by taking the first 3 letters of the county for each customer detail record:
...
- In the Reformatted Customer Details table settings, add a new attribute called
CountyShortCode.
- Leave the default settings.
Set the attribute
...
's Expression to:
Code Block substring(in.County, 1, 3)
Press
...
.Insert excerpt _finish _finish nopanel true
Categorise bills as "LARGE" or "NORMAL"
...
To categorise bills as "LARGE" or "NORMAL":
...
- In the Reformatted Customer Details table settings, add a new attribute called
BillCategory
- Leave the default settings.
...
Set the attribute
...
's Expression to:
Code Block if (in.BILLAMOUNT > 10.0, "LARGE", "NORMAL")
Press
...
.Insert excerpt _finish _finish nopanel true
Set special processing flag _out
Finally, you will now set a special processing flag
...
. This will be set to "YES" when the last bill for the customer is large. To do this, we need to access an attribute value that is in the
...
table, but
...
not in any of the input pipes to the
...
table, only
...
the
...
table output.
To do this, you will use the internal variable _out:
...
- In the Reformatted Customer Details table settings, add a new attribute called
SpecialProcessing
- Leave the default settings.
...
Set the attribute
...
's Expression to:
Code Block if (_out.BillCategory == "LARGE", "YES", "NO")
Press
...
Run stream
...
.Insert excerpt _finish _finish nopanel true
Check Point - Table Attributes
- The Attributes section for the Reformatted Customer Details table should now look like this:
- Image Added
Run table
- In the settings for the table Reformatted Customer Details, press
.Insert excerpt _finish _finish nopanel true - Run analysis on the table Reformatted Customer Details.
- Have a look at the data in
...
- this table – check that all your transformations have been correctly applied, like the image below:
- Image Added
- Remember to save your model layout,
.Insert excerpt _save_saveModel _save_saveModel nopanel true