15 Creating and using macros
![]()
By the end of this chapter you will be able to:
- Create macros
- Use macros
Creating macros
Macros are used to create reusable expressions. They can be thought of as, the ability to write bespoke functions. Macros can optionally take in a number of parameters to use within its expression:
- Find
Macros in the repository - Right-click and select
Add Macro - Configure the macro:
- Name:
NumOfWeeks - Minimum Parameters:
2 - Maximum Parameters:
2 - Expression: create an expression to work out the number of weeks - as a whole number – between two dates
Use the functions dateDiff() and round() to help with this
See Completed Expressiondo(// Create variables from incoming parameters$Date1 = $args[1],$Date2 = $args[2],// Get the difference in time between the two dates$dateDiffMilliSecs = dateDiff( $Date2, $Date1 ),// Round the answer into whole weeksround($dateDiffMilliSecs/(1000*60*60*24*7), 0 ))
- Name:
- Press
Apply and Close to save your new macro
Using Macros
- Create a new model:
Try Macros - Drag the table
MC Macro Terminated Customerson to your model- This contains some key dates for terminated customers: the signup date; the date that the customer terminated their service; the date that the final debt on the customer's account was cleared
- Add
Attributes for:- the number of weeks between signup and termination
- the number of weeks between termination and the final debt being cleared
In each case, use your macro to calculate the number of weeks between the two dates
How?Expression:
NumOfWeeks(_out.SIGNUP_DATE,_out.TERMINATION_DATE)Expression:
NumOfWeeks(_out.TERMINATION_DATE,_out.DEBT_CLEARED)
- Run the table
MC Macro Terminated Customersto test your new attributes