Wednesday, January 17, 2018

[Salesforce / Translation Workbench] Import/Export translations betwen ORGs with different metadata configuration

This guest post is written by one of the most powerful coworkers I've been working with in the last years.

His name is Tommaso Bolis and I call him the Robo-Bolis because I believe he's a smart and super productive top coder, and sometimes make me fear he's not human!

Jokes aside, it's months I'm asking him to write as a guest blogger for my blog and finally he decided to put some of his knowledge inside this humble blog.

Tommaso Bolis is a Solution Architect and Salesforce Senior Developer at WebResults, a Salesforce platinum italian partner. His main interests span from backend development to DB administration, to Javascript frontend development and, ofcourse, Salesforce.

If you are the kind of guys belonging to the TL;DR party, here is an amazing GitHub repository with all the code to solve the challenge in the post's title.


Background: Multi region and content management


During one of my last projects I had to introduce on one of our customer’s site/community the multi region (EMEA, APAC, ...) content management and the multi language support.

This last requirement was particularly challenging (we are talking about 8 different languages including Japanese, Korean and Arabic...), but I don’t want to bother you with what have been done to accomplish the goal, I just want to tell you about one problem I have been facing trying to move translations among our different orgs.

If you have already played with translation workbench you know for sure how trying to export/import translations can be tricky.


The challenge: ORGs with different metadata configuration


The point is that if two orgs differ for some reason in terms of translatable metadata than the export/import process can fail and a manual adjustment of the exported data can be necessary in order to import the data inside the destination org without errors.

For example, if you have a custom label on the source org that has not been deployed on the destination org, when you try to export translations from the source org the resulting files will contain translation for this custom label and trying to import these files will result in errors.


Solution: Python app to rest easy


In order to solve this annoying problem I developed a Python script that takes files exported from the source org and process it removing all references to metadata that does not exist on the destination org.

In this way it is possible to import files without errors!

The idea is to use files exported from both orgs source and destination and simply remove everything is on source files but not on destination files.

This operation is enough to obtain a set of translation files that can be imported without errors.

Jump to this GitHub repository, fork it and follow the README.md file to run the magic!

Maybe around the web something similar already exist, but I can’t say no when I’ve to work on a good handcrafted script.

Monday, January 8, 2018

[AppExchange series] 10 best things you can do offline with Salesforce data (and Resco Mobile app)


Happy new year to everyone!


First post of 2018 celebrates the AppExchange: the call for guest AppExchange posts is getting a lot of answers and amazing ISVs want to share their app.

In this guest post I want to present you the Resco Mobile App, an amazing solution for Salesforce offline management, fully customizable with no coding skills, that leverages the power of Salesforce when the Salesforce app is not enough!

I'll leave the word to our guest blogger Barbora Piatrov√°, Content Strategist at Resco.net.

Barbora Piatrov√° takes her passion for digital marketing & mobile CRM everywhere she goes. Currently, she’s involved in creating & mastering content strategy at resco.net – one of the leading companies in the world for Mobile CRM. She is now actively also discovering and participating in new thriving communities for Salesforce enthusiasts.





Offline matters. Especially nowadays.


Even in Europe, where Internet connectivity is generally perceived as very good, there are areas and countries with poor 3G and 4G support. There is a pocketful of places with poor or no connectivity possible. What about the garages, planes, rural/uninhabited areas, or elevators?

Offline is now available for Salesforce users in the field, indeed. Including sales professionals and field service technicians. The question is, how much offline can we actually get? Is access to the last 5 recently viewed objects what a field technician truly need? The same guy whose mission is to complete all the planned tasks, inspections or sales visits needs permanent offline access to all Salesforce data. It doesn’t end here though. A motivated sales and field service rep wishes to fulfill the mission irrespective of internet connectivity. Continuous work is necessary even in areas where such limited offline would not help.


Consider true offline. Follow the leaders.


Resco is among the leaders in providing world-class offline mobile solutions for various back-end solutions, including Salesforce.

You might have noticed that offline capability is currently being added to mobile apps by most CRM vendors such as Salesforce, Microsoft, and others. In our opinion, offline is not a capability, which can be easily added to an online CRM app. Offline doesn’t only mean to add a local database support, providing the CRM data when the app is disconnected.

Offline means that ALL the features and functionalities of the mobile CRM app are available also when the app is disconnected – with no limitations. Thus, the logic of every feature must be developed and implemented to the mobile app independently from the server. Otherwise, a feature will simply not work when the app is disconnected. But a mobile CRM app is usually the main business tool of every mobile sales or service professional. So, if it doesn’t provide 100% of functionality anywhere and anytime, it can cause immediate damages for a company’s business.”

Radomir Vozar, CEO at Resco

The primary focal point of Resco Mobile CRM is its offline capability. It has been implemented since the very beginning of its development. A complete, robust mobile solution, ready to serve its users whenever and wherever they happen to be. A completely different story in comparison to online CRM apps with offline capabilities.

In every release, we launch approximately 40 new features and improvements to our mobile app, including offline features. 18 years of development and hard work brought over 700 mobile features to life! And so, believe me, it was no easy feat, but we did come up with a list of 10 most used & useful features that prove that (in this case) both quantity and quality matter.


How to work with Resco Mobile App in an offline mode?


The same as if you’ve never left the room with wi-fi, switched off your mobile internet data or lost connection!

What exactly do we get in Resco with full offline support?

  1. Business logic (not just data)

    Offline-first approach means, you can perform complex business processes and constraints allowing you to not only view – but create or edit business logic of the solution that works offline.

  2. Maps

    System admins can define which maps will be stored in the local memory, so users can use the map view even without wi-fi or cellular connection to the Internet.

  3. Document management (viewing and editing)

    Offline-capable solution knows no limitations. When working with documents (pdf, HTML, MS Office, MS Excel, HTML, SharePoint, Dropbox) offline, you can simply set up the filters that dictate which files should be downloaded to the offline database in your phone or tablet.

  4. Knowledge base articles

    You get to not only access, but to play around with the articles about products, parts, and more. Filter articles of any format (pdf, HTML, video, audio, image…), copy them, add to favorites, associate with case or edit its details.

  5. Reports

    Yes, that’s right! You can generate pdf reports on spot limitlessly. Generate and work with them even further. Want to store a report? Send it or print? It’s all up to you.

  6. Offline HTML

    Who wouldn’t want to create their own business logic to the app for Salesforce? You can expand the app with tailor-made forms to add product presentations or to replace the standard user interface – all with offline HTML. Create stunning pres¬entations, get the scoop on your prospects by quickly looking at their online presence. Iframes allow you to show any HTML content in the application.

  7. Lead conversion

    Did you know you can qualify/disqualify leads or convert them to a closed deal even offline? Yes, automated processes truly simplify the lives of sales guys on-the-go. Finally, you can nurture your leads properly.

  8. Multimedia

    Show product presentation or attach pictures to your notes or any Salesforce record at any time! You can upload, edit, and delete multimedia including images, audio & video files (JPEG, PNG, AVI, etc.) and other formats.

  9. Quotes

    Can’t create a quote while disconnected? That’s no longer a challenge. You can freely create a quote with respect to an actual corporate product catalog and its pricing policy.

  10. Faster performance

    App performance is not to be underestimated in the enterprise space. With offline this robust, you don’t ever have to worry about waiting for network transactions to take place. Database reads and writes are stored locally, so the tasks are being completed instantly.

    And there is plenty more you can do! Endless offline capabilities include task management, notes and business information editing, offline managements of all objects (standard, custom), product/parts management, offline calendar, favorites, and so much more.


*Note that:
In offline mode, the database is stored locally on the de¬vice (for offline capability and faster performance of Resco Mobile CRM) is encrypted by default. The data encryption is based on an application key. The appli¬cation key is randomly generated when the database is created and protected by the user’s password. The key is stored in an encrypted form in device’s file system and decrypted when needed.

Curious to see real offline mobile solution for sales and field service scenarios in action? Simply, drop Resco a line at [email protected] or request a demo at the website!