Working with Wave Recipes
I’ve had the pleasure of working on a Wave project that started up after the Salesforce Spring17 release. Knowing that there were some great enhancements [see about them here], I thought this was the perfect opportunity to try some of them out. One that I ended up exploring and using quite a lot was the recipes and I thought it would be interesting to share my experience.
Preview
If your dataset is very large and have more than 100 columns you need to choose which fields to preview as the limit in preview mode is 100. This does not mean that you cannot add more fields in your dataset once you run it. A very handy feature when you have so many fields is the search function, especially any transformation you want to do, you have to start by selecting the field.
Search and replace
I really like the idea of search and replace, but I actually found it a little annoying to work with. So let’s say want to search for any rows where it says “UK” and replace it with “United Kingdom” in your field “Country”. This is easy to do. However, what happens is that it creates a new field and calls it “Country SearchReplace”. So if your existing dashboard are using “Country” as a grouping you would have to manually change it to the new “Country SearchReplace” in the dashboard JSON. If you want to search for other countries that will create new fields and not add to the field you already created. Be aware that searches are case sensitive.
Also the label “Country SearchReplace” isn’t what I would prefer the end user to see, but I cannot change that in the recipe, so I would have change that in the XMD. Since I am now in the XMD anyway I might as well just change the member/keys for “Country” and let the display value be “United Kingdom” instead of “UK”.
Another thing I then tried was to search for blank values, which I found wasn’t possible. However, bucket fields might be helpful here.
Bucket fields
So if you have worked with Salesforce operational reporting then bucket fields are not a new concept. It’s rather nice for grouping values. Let’s say you want to group opportunities into High Value, Medium Value and Low Value based on opportunity amount, this can be achieved with recipes. No need to create formula fields in Salesforce and import that value over. It can even put null/blank values into a bucket which I found quite helpful. Bucket fields values are also case sensitive.
Filter Rows
If you want to create a dataset that filters out any lost or open opportunities, you can do this with a recipe. This can be quite handy if you just want to look at a certain criteria. Especially if you have scenarios where you would apply a global filter on your dashboard.
Recipe Updates
When you create or update your recipe and thereby new dataset you will have to choose the fields to include in your dataset. The first time it will take the same fields as you have in your preview. The following times newly created fields like a bucket field will not automatically be added to your dataset, so remember to add them before running your recipe.
I also noted that if you try to change where the app where the dataset should be placed, then it will create a new dataset. Which will mean your dashboards need to have their reference changed to the new dataset.
XMD
If you use XMD for your dataset, recipes will use the label in the dataset, so you do not have to change labels afterwards for your new dataset. However, if you have added keys/members and definitions of how to sure measures, those are not copied over.
Clone a Recipe
You can create a recipe based on another recipe. The idea is good, but it creates a new recipe with the exact same name. I haven’t found a way to change the name of the recipe, so you are stuck with two recipes not knowing which one is which.
Deployment
Recipes cannot be deployed! And you cannot access the JSON. So I have not found an easy way to move recipes from sandbox to productions. This I found very annoying having datasets with 200+ fields.
To finish
It’s clear that recipes still have some need to improvements, but it’s a step in the right direction. I didn’t have a chance to work with all the functionalities of recipes, but I am keen to test it more in the future, especially merging datasets in the recipe. However, based on my experience I would say create your master datasets using the dataset builder and Salesforce dataflow and just include all fields. With your recipes you can modify a version of those dataset. If you do need to make changes to this dataset it’s a lot easier to do in the recipe than in the data flow JSON.
Hey Rikke,
Can you share how you were able to put blank/null in a bucket?