Wednesday 19 December 2018

Trailblazer Community Meetings: Testing In A Box

It's now December 2018, and I would like to give some quick feedback on the meeting we had last week with the members of the Sevilla, ES Developers Group.

There's been a lot of changes in the Trailblazer Community over the last part of 2018, and we're all migrating from Meetup to Bevy.

I've also been quite busy with a few events after the summer, I first had the great opportunity to attend Dreamforce '18 for the 4th time!! OMG!! As well as French Touch Dreamin for the first time, which was a great experience just by the Eiffel Tower!

I've definitely had a really good time within the Community this year, but travelling to other events has kept me a bit out of focus with the local Developers Group I lead in Sevilla...

We had to do something about it; not only because we had everything ready to have our "Testing In A Box" workshop, but also because we had to give Bevy a go and try it.


LONG TIME NO SEE

So after a long time and a platform transition, we scheduled our "Testing In A Box" session. My regular attendees were quite happy to take part and they offered a room in their local office in Sevilla. Thanks very much to Accenture Seville for letting us organise the meeting in their premises.

My Trailblazer friends Jorge Ortega Traverso and Rogelio Machuca Guerrero encouraged most of the members of their team to come along, and we had a full room!!


SWAG

We all know this is very important for all of us Trailblazers. And that was also the case with the newbies in our group. Unfortunately, I didn't have much to give away, apart from the test cards that were shipped earlier in the year, and a number of left over Trailhead caps I had from previous events. So that kept me safe from swag-hungry developers... hahaha


TESTING IN A BOX

The format of the workshop was really good. I have to say that I enjoyed having a few videos to watch, with a number of 'Trailblazer Celebrities'. That gave me the opportunity to introduce some of the Salesforce Evangelists to the new comers. But it also makes it easier for everyone to be focused on what we're going to be doing.




So, after each of the videos, we had a really good and engaging chat. Most of the attendees shared their experience and their opinions on each of the topics being discussed.

That was also a bit surprising for me, as I normally find the situation where some of the attendees expect me to do all the talking and just listen to what I have to say, which is a bit stressful, because sometimes I don't have much to say... haha But anyway, I think the format of this workshop made it a lot easier for everyone to participate.

We shared knowledge, tips and tricks, and not only we discussed good testing practices... I learnt some really bad practices on testing that I don't even want to put into words just so I don't give anyone any bad ideas... but it was really educational...


CODE NEVER LIES

And I can't finish this blog post without mentioning Kevin Poorman's T-shirt!!! We all loved the printed message, that reads: "Code never lies. Comments sometimes do."

This was also part of the conversation amongst the attendees and we all agreed that the message is very true.

That T-shirt looks really cool and we all want one!!


CAN'T WAIT FOR THE NEXT ONE

After this meeting, we had some information about the new Lightning Web Components being released soon and the plans for the coming "Developer Week 2019" meeting in order to go through what's new and what it's all about.

I have to admit that I'm quite excited about the next meeting. I really missed having our local meetings in Sevilla and having had such good turnout I can't wait for the next one!!

I do think this format for the meetings is really good and we all enjoy it more! Well done team Trailblazer Community!
  
  

Friday 16 November 2018

Can't find your object fields in Lightning?

Can't find your Fields in the Object Manager search using Lightning Experience?

Then, this is the blog post you are looking for.

What's the problem?

The problem is that, as of November 2018, the search functionality for the Object Manager in Lightning Experience only provides searches by the Label of the objects and the Label of the field.

How did I find out?

I found out about this problem a couple of weeks ago, when I was working in a project where the API Field names don't quite follow the best practices and they are very different to the Field Labels...

I'm a developer, so I'm sometimes a victim of copy-paste typos and hard-coded field names, where miss-spellings happen all the time... So I was getting compilation errors due to 'non-existing' fields in the object...

So, as I've mentioned before on this blog, I consider myself an 'Admineloper', as I do a lot of point and click combined with coding on my daily job. There I go with my #AwesomeAdmin super powers to find out what's going on...


And I spent a good couple of hours double checking that I wasn't going mad... Honestly, I started thinking I found the glitch in Salesforce that nobody had ever found before!! hahaha

Then I called for help, and my colleague Tom Blockley shared his fresh pair of eyes to confirm I wasn't going crazy, and suggesting to search by the label name, instead of the API name.

Show me with a few screenshots!

And that was the key!! I hadn't thought for a single second that searching by the API name wasn't a feature of the Object Manager search...

I thought this wasn't a big deal, since I was working with a custom object that was very specific to that org, but then I found a few examples where this also happens with standard objects.

Let's see a few examples with the D&B Company object: this is the label of the object, but its API name is DandBCompany.


If we are developing and we know the API name, it would make sense to use the term 'dandb' as the Quick Find search input. Well, this is what we get when we do that:


Note that no results are returned...

Now, this is what you get when your search term is 'D&B', which is part of the Object Label:


The same thing happens with the field names, when you search by substrings of the API name, no results are returned if the Field Label doesn't contain that substring...

Another example of field search in the same object, D&B Company:


If we are programmatically manipulating this field on this object and we know its API name is SalesTurnoverGrowthRate, but we don't know some of its details, for example, its length, then it makes sense to go to the Object Manager and look for that field to check the information we are after. This is what we get if we search by 'Turnover':


Note that no results are returned... That substring is part of the API name, but is not part of the Label, and therefore it doesn't show in the result list.

However, if you search by 'revenue', which is a substring of the Label, but not contained in the API name, the result is as follows:


Also note that the search is not case sensitive, as the search term used is 'revenue', all lower case, and the Label contains the substring 'Revenue', with a capital R.

Success Idea

There's already a Success Idea for this: this link. I've upvoted it as I think this is an important feature that Lightning Experience is missing, not only to search by API name, but also by Description... So if you also think this is an important feature, please follow the link and upvote for this idea.

Looking for a field that you know the name of is great to get information about its properties, but when you don't have much information about it, it becomes quite difficult if you can only search by the field label...


Wednesday 17 October 2018

Dreamforce 18 Recap! Educational, inspirational and fun!

Hi everyone!! I'm back with some notes about my Dreamforce '18 experience!!

We always plan our event attendance for the year at Desynit so we all have a chance to attend a couple of them. We are aware of how important this is to keep up with all things Salesforce, so we always plan them well in advance. I'd like to thank Desynit for giving me the opportunity to go to San Francisco and live this great experience of Dreamforce again.

The beginning

It all begun with a plane selfie, Kerry Townsend asked everyone to take a selfie with their Community Event T-shirt, so I joined her with my own selfie just as I got on the plane on my way to #SanFran! Please note that Community Events are now Community Conferences, this is one of my DF18 takeaways, the Trailblazer Community team stressed this every time they could, and because we're responsible students, we took note and are getting used to the new naming conventions ;)

This is when it really started feeling like Dreamforce!

Getting to San Francisco a couple of days ahead of the biggest IT conference in the world is always good. You need time to get over the jet lag and adjust your body to the new time zone.

Being a DF speaker

This is the second year I've been lucky enough to have been chosen to be a DF speaker and share my experience with a broad audience. I talked to my friend Laura Díaz to submit a talk that we could both give and we made a really good Title and Abstract.

We knew that Mulesoft had recently joined the Salesforce family by acquisition, and we both had experience with Salesforce integrations and Data Integration, so we thought this was a great moment to show everyone what you can do with the API-led connectivity that Mulesoft offers, both for on-premise and cloud-based environments.

We prepared a couple of demo's to show live, as we wanted to show the power and flexibility of the platform, and we had just 20 minutes to do it! So we kept it simple in slides and focused on demo-ing as much as we could.

We had a good attendance, taking into account that this was an early morning session the day after Dreamfest... People really understood the point of our talk and we had a few questions after we finished. The session feedback was also quite good, so we were happy with our performance.

Check out the recording of our session for a quick demo of what you can do with Mulesoft:



We had a really good session owner, Ernie Maldonado, that guided us through the whole process of building our slides, providing feedback after our dry-runs and helping us with everything. It was also great meeting him in person once in San Francisco.
I have to say that Salesforce has really improved the coaching this year, with a big focus on providing good and timely feedback and making it all as transparent as possible.

Networking with partners, clients and friends

We live in a connected world and it's great to be able to work globally with a team spread all over the world, that's what we do and it's really easy when you work in the Cloud. But it's also great to get to meet people in person, mainly when it's for the first time!

Being in San Francisco, I took the opportunity to visit one of our clients at Desynit. They were just around the corner from the Dreamforce National Park, so it was really handy to pop in for a catch up. We took the opportunity to go through an introduction of the broader team, enjoy the views from their offices and also discuss the progress and plans for the project we're working on at the moment.

It was also very nice to talk to the Validity guys at their booth (They are the former DemandTools people). We have worked with them in the past, and it's good to discuss our experience with them and to know their vision for the future.

The Skuid guys had a really nice and lovely space just opposite Moscone West, the Skuid Lagoon, with comfy areas to relax and have nice private conversations. It was also very good to catch up with them and take a break from the hectic Dreamforce National Park for a few minutes and get an energy top up!

Bumping into people you know from other years and also people you only know from Twitter is great! You feel like you're home being so far away! Hanging out with former colleagues, Spanish friends, British friends, French friends, the Latinoforce community, locals to SF and many more places... it feels like a UN summit, and that is great! I love the international community and sharing with everyone.

It was also the first time I had the chance to visit the Salesforce Tower, which is now the highest building in San Francisco. Very impressive!


Having some fun and meeting new people

But Dreamforce is not only about learning, networking and getting inspired, it's also about having fun!

Being an #Admineloper, as I consider myself both a developer and an admin, it's with great pride that I'm sharing this entry in the Awesome Admin Moments from Dreamforce '18 blog post, take a look at the runner ups of the #DF18 #AwesomeAdmin Lip Sync battle!

It was great sharing this experience with my friend Laura Díaz, who is a natural star herself! But it was also great to connect with a new Trailblazer for me, Zarina Varley. It was great to meet her and share very interesting ideas for future gatherings!! Good luck with the organisation of True North Conference next year in Canada!! Please get in touch if you need anything ;)

And the lovely Trailhead pictures are really good fun!! I still keep looking at this mesmerising GIF every now and then...



Wednesday 1 August 2018

New Trailhead Maintenance Modules!!

One of our last meetups with the Sevilla Salesforce Developer Group was planned so we could start checking the new Trailhead Maintenance exams. We were quite excited about this new approach to maintenance exams and check its flexibility.

That was back in early May 2018 and we had been really early birds, as the maintenance exams weren't ready as modules in Trailhead back then... I've been waiting for this quite a while now, and I've been able to try it for my Platform App Builder and my Platform Developer I certifications.

I have to say that the merge process between the Kryterion account and the Trailhead one is very intuitive and slick! Well done Trailhead team! No fuss, just email validation and merge is done!

So it's all ready now to go for it!

This is the beautiful celebration message you get when you pass your Platform Developer I Certification Maintenance module.

It's a really well structured module, supposed to take 15 minutes to complete, with explanations about some of the new features in Summer '18, like the following:
- new Lightning Styles for Visualforce pages
- new Lightning URL formats
- the UITheme methods to find out the environment in which the user is accessing Salesforce
- the new methods to retrieve the Record Type infos


No, I found more problems with the Platform App Builder Certification Maintenance modules...
I have to say that I find it really helpful that you have to actually do a flow to pass it, as it makes sure you do get to use the new features, so that's a really good way of learning and making sure we all understand the changes.
Maybe my problems are related to the fact that I'm more developer oriented than App Builder oriented, but I think other issues I found were related to the requirements in the challenge being quite open to interpretation...

However, it's really good that Trailhead is asking us to create the flow. It's been a very long time since I created or played with my last Flow... The estimated time to complete this is 30 minutes, and I have to say it took me way longer, as I was getting an error message that wasn't very helpful...


My flow was working, and I tested it before running the check, but I was getting this error message again and again; the reason why I was getting this message was that I was using a Text variable to hold the message String, and I solved this by hard-coding it to the Display message in my Screen element. This was the most annoying thing, as the message returned by the checking utility wasn't very helpful...

My recommendations when you do your maintenance:
- strictly follow the naming conventions indicated in the requirements list
- do not over-engineer your solution, just do what you're asked
- do not create lots of variables, you can use hard-coded values within your message elements

And finally, if you get error messages, be creative and find multiple ways of doing the same thing! I think that's a really good way of training your brain!


Friday 29 June 2018

dreamOlé '18 - What a wonderful world!!

I've had this in mind for some time now, it's now 2 months after our second dreamOlé and I haven't found the right time to put together a few words about my experience as a dreamOlé organiser this year in Barcelona. Fortunately, my project load is enough to keep me busy and I'm struggling a bit to get some time for my blog... But even if this event was some time ago, I didn't want to miss the opportunity to share my experience.

As you can imagine, these community events require a lot of effort and coordination. We've had some wonderful months of weekly morning calls amongst the dreamOlé team; checking every single detail so that everything went smoothly on the event day.

After last year, when we had power cuts and some WIFI problems, nothing could go wrong this year...

What a surprise it was for us to discover that, after all that effort, there was a pilot strike planned for the weekend of dreamOIé in Barcelona!! OMG!! Really!! What could we do? That was out of our control... But we warned everyone to double check their flights. One of our sponsors couldn't make it in the end, and I myself was affected with a really long delay... But I finally got there on time for the speakers' welcome!

It goes without saying that we had the most amazing venue that we could ever have. Look at these views!!

That was a really good start to our event, and it was only the kick off to what would be a great day in Barcelona, with almost 250 attendees.
It was amazing to find out about the local Salesforce community, and how well they embraced the concept of our community events, bringing all their enthusiasm to our event and making it a wonderful day.


This post is mainly a thank you post to everyone that made it possible.

Thanks very much to our sponsors, because none of this would have been possible without your support and enthusiasm.

Many thanks to our great selection of speakers, with amazing content that made our event very appealing to all the attendees. You can check all our sessions here.



Special mention to Holly Firestone, who was our opening keynote speaker, and told us all about the Salesforce community and the #Ohana spirit that wraps everything we do. The only thing she asked for was to have "tapas" alongside her talk, and by the looks of her surprise face I think we delivered!! ;)




Thanks very much to Christie Fidura and the Trailblazer Community for bringing great content to our event. We need to make a bigger effort our end to make this more visible, and it's a great honour to have your support.


Second special mention to Joshua Hoskins, this digital nomad that flies more than a pilot... hahaha and my amazing #DemoJam co-host, the real star of the show, what would have I done without you!!?? Thanks very much for bringing your Charisma, Uniqueness, Nerve and Talent to our lives!






The next special mention goes to Zayne Turner, for bringing inspiration to the room as part of our closing keynote; telling us about what drives innovation and having lots of fun playing with code!! High five to all of those Developers out there!!




And last, but not least!! Thanks very much to each and everyone of my co-organisers for making this adventure so special and for becoming part of my #Ohana! Inés García, Alba Rivas, Pablo García, Laura DíazAgustina García, Carlos Campillo and Carolina Ruiz. You are all an amazing bunch of people, and I can't wait to start the arrangements for next year!! Check out the multiple skins of our logo!! It's lovely!!



I couldn't resist to add this final picture, which shows one of our strong points, our #AfterParties are becoming a ritual, and this year we ended up going to the beach amongst other activities.

Stay tuned for announcements, as we are still in the process of deciding the new location for dreamOlé '19, but we'll let you all know once it's chosen.

THANKS!!



Wednesday 21 February 2018

London's Calling 2018 - My Highlights


First time at London's Calling! First time!

We all love first times (well, not always...), and this one has been a great first time for me. I just came back from #LDNsCall18, and I'd like to leave my impressions after such an inspiring event.

London's Calling came at the perfect time for me this year. After having been involved in quite an absorbing project over the past few months, I really needed the inspiration and update boost I had as an attendee to this event.

It all started with London giving us a really nice day. It was so nice and sunny! That could only mean that we'd be having an amazing day, and that's exactly what happened.

Desynit sent a good representation to the event. Some of us veterans and some others were newbies, including a few developers and admins. There were even a few former members of the team giving talks or just as attendees. So this was all very promising and a good guarantee that this event would be very enjoyable.

So the event started, and I had already planned my sessions. I had a delayed flight, so I took the opportunity to builde my schedule:

Become a Salesforce Security Superman!, by my amazing dreamOlé colleague Alba Rivas. I learned a lot about good and bad practices in all aspects of the Force.com platform when it comes to security. A very comprehensive list of ideas to make it all more secure

- Search other systems right from Salesforce – the easy way, by Martin Humpolec. This was a very interesting talk about federated search; with practical examples showing the journey to make it all work. This is something I will be giving a go when I find a gap, as it was really interesting

- Lightning Data Service: Forget about Apex in your Lightning Components developments, by Fabien Tallion. This was a good run through the new way of accessing Salesforce data being introduced at the moment. Again, something I need to catch up with sooner rather than later to be ahead of the game

- How connecting a Robot to Salesforce will make it the perfect Sales Assistant, by Filipe Freitas. A very nice talk on the integration of robots with Salesforce. This is probably still a bit far for me to try, but still a very interesting talk to find out what others are doing with this!

- After this was the break for the demoJam, run by amazing Jodi Wagner and Francis Pindar. A good number of apps were shown. It's amazing what people can do within Salesforce! And just after the demoJam, the lunch break, which was a great time to get to know some newcomers like Esteve Graells and his partner. Very nice chats around some lunch, exchange of first impressions; it's always good to meet great people

- Male Allies in Tech – Why we need you and how to be one, by Angela Manoney and Keir Bowden. This was a very inspirational talk about the role of men in gender equality. We all have to get involved!

- Confessions of a Visualforce Dinosaur, by my good friend Christopher Lewis. It was great to see his points on the journey from Visualforce to Lightning Components, and how Visualforce is still a technology we need to keep up with

- If You Can Write a Formula Field You Can Use a Command Line, by Salesforce evangelist Peter Chittum. Peter always gives really good talks, and this was no difference! Really good to encourage everyone to not be scared of the Command Line. Again, lots of things I need to start using myself on a daily basis

- No Connection? No Problem!, by Keir Bowden. Some good guidelines on how to optimise your offline time. Even being Cloud technology, Salesforce has something to offer offline

- Closing Keynote – If I can do it, so can you, by Dr Sue Black. Keynote time came and Dr Sue Black's experiences inspired the whole audience. It's always a good time to NOT GIVE UP and fight for what you believe in. Well done!

After Party Time!

The after party time was a good time to get to talk to more people. It was great to catch up with one of my current clients; this was their first community event, but I think they are now getting the "Saleforce bug" and I'm sure I'll be catching up with them in future events...

It was also great to spend some real-life time with my dreamOlé colleagues Inés García and Alba Rivas; after so many online meetings, it's always good to be able to have some real contact with them! We made some good connections for our next dreamOlé event in Barcelona 2018. And we also had some fun in the photo booth!

And this is also one of my favourite times at Salesforce events, because you also get to know all the "Twitter Celebs". I finally met Zachary Jeans and exchanged some interesting words with him. I also met Kristi Guzman and Stephan Garcia. I also bumped into Fabrice Cathala for the second time in a couple of events, and we only got to shake hands, but I know he'll be coming to dreamOlé this year, so I hope we can finally catch up there! Then, in the after-after party time, I also got the chance to talk to Skip Sauls, although at that point, Salesforce wasn't the main subject anymore... but that's also very interesting, there's still life behind Salesforce!

Finally, I would like to mention the organising team and the hard work they put together to bring a successful event to the Salesforce community in Europe. Well done every single one of you! Kerry Townsend, Jodi Wagner, Amanda Beard-Neilson, Francis Pindar, Simon Goodyear and Todd Halfpenny. 

So this is the first time I go to London's Calling, but this was the third edition of the event. I've been lucky to attend Dreamforce 3 times so far, a couple of Essentials events, as well as many local user and developer groups, like the one I run in Seville, or the one run by my colleagues in Bristol. On top of that, I'm one of the organisers of dreamOlé, the community-led event in Spain; so I'm building up quite a substantial amount of stickers and t-shirts that I'm a big fan of.

But most importantly, through these events I've met incredible people that are now my friends! And I can see this happening even more as I keep attending new events, so that's why I'm loving it! I love a world without boundaries, and these events that bring people together are a good way of getting rid of boundaries!


Tuesday 20 December 2016

5 #Lightning Tips for Visualforce Devs!

Most of us Salesforce Developers have started our development in Salesforce Classic. Now that the Lightning Experience is out there, we're starting to migrate our skillset from Visualforce to Lightning.

If you're in the process of starting your journey from Visualforce to Lightning, please keep reading, as I've got 5 tips for you! I hope you find them useful.

#1 - JavaScript Understanding

When I was more involved in Java projects I used to build apps with the DOJO framework. This is a JavaScript toolkit that provides multiple elements and UI components to help with Web App development.
When I moved to Lightning, I found this skillset very useful. I kept finding similarities between the Lightning and the DOJO framework.
So my #1 recommendation when it comes to starting with #Lightning is to have some JavaScript understanding. Any of the other popular frameworks (jQuery, ...) can do to help you understand the underlying JavaScript architecture.

#2 - Embedded #Lightning Components

The Lightning Experience provides a beautiful environment, and it's a very user-friendly one. But those who have been working on Salesforce Classic for a while (as is my case) may find it difficult to adjust to the new approach; and changing the look and feel of the platform, as well as the underlying technology, all at once, may be a bit disconcerting.
That's why I'd recommend starting by embedding your first #Lightning Components inside a Visualforce page that you can hook anywhere in Salesforce Classic.


The image above is an example of a Visualforce page that embeds the NewContactDataInput Lightning component. Note the use of the  < apex:includeLightning />  tag. Also be aware that not all the Lightning events are supported in Classic, but it's a good start to create something in #Lightning within your comfort zone of Salesforce Classic and Visualforce pages. 

#3 - Read the #Lightning Documentation

A good start point to understand the new Lightning Framework is the Official Documentation, where you can find the principles of the new technology, based on the open source Aura Framework.
I also find very useful the style documentation available in the SLDS (Salesforce Lightning Design System), where you find examples of the CSS classes used in the #Lightning Experience, and you can learn how to use them for your own custom components.

#4 - Explore your Developer Tools

One of my favourite tools is the MavensMate IDE. I use it together with Sublime Text 3 and it's really easy to use. The Lightning Component Bundles are made of a number of files; I find it quite difficult to navigate through the different elements from the Salesforce Developer Console.


Luckily, the IDE groups the files in the Bundle in the same folder, making it very easy to switch from the component to the controller, as shown in the image on top of these lines.

#5 - Test is a must!

When you work with Lightning Components, you find yourself in the wonderful world of a great UI experience; this is great because you "see your work" making progress!
However, sometimes this can distruct you from your Unit Tests, which will become a nightmare at deployment phase...

Trust me, I've found myself spending a whole day adding little bits and pieces to make my component look stunning, because the SLDS is so beautiful and easy to customise that your creativity gets boosted, but you can't forget about your component's controller; your controller is still an Apex class, and it needs to be Unit Tested to make it to Production!

And that's all for now. I hope you find this post useful.
Happy coding!