Salesforce Winter ’18 Top Features For Platform

Salesforce Winter ’18 Top Features For Platform

Salesforce presents 54th release this year; we feel enchanted to try-out our hands upon incredible new features from winter ’18 version. Subsequently, playing with the latest version directly on the platform brings out our favorite top 6 highlights from the winter ’18 release. Let’s check them out here!!

Salesforce Service Salesforce DX: Salesforce DX is a whole new and innovative way to regulate and flourish Salesforce applications. Whether you’re an individual developer or functioning as part of an organization, Salesforce DX contributes an integrated end-to-end lifecycle design for high-performance agile development, and above all, Salesforce creates it the approachable and flexible for you to develop with coexisting tools.

Salesforce DX is a compilation of products and services that transport source drive development. Now you can get gain from modern collaboration technologies such as:

  • Get to version control everything across your team
  • Your code
  • Your org configuration
  • Metadata

It provides more excellent ability to test out features with determination. Also, Salesforce DX CLI’s is a powerful command-line interface that facilitates development and builds automation while working with your Salesforce org and much more.

Salesforce IoT Explorer: Salesforce IOT Explorer is inherent to the core Salesforce platform; you can launch precisely from the setup. Salesforce is accessing device data in real time and monitoring the energy output of a connected product. The orchestrations interface allows you to see various states with associated declarative rules that automatically generates a service case when IOT Explorer detects a fault. Here the case details are directly set up within service console that has been notifying by reading the device data. A service technician can now escalate and route that case accordingly based on the device data. With Salesforce IOT Explorer the user experience and processing engine are all built into the core Salesforce platform and is fully integrated across all your business processes. All this benefits you to connect with customers across any connected device and revolutionize the way you service to sell and market.

Einstein Analytics New Story Recommendations and Visualizations: The latest Einstein analytics enhancement included exciting new features for Einstein discovery drive, smarter insights and impressed with new story visualizations. Salesforce has taken care of all the work while it recommends improvement to your data. It will automatically detect any duplicates and outliers so that you can create the best version of your analytical report. With the addition of story timelines, you can tap back and forth between your story and what’s going to change over time is the ability to discover these consistent patterns in your data without the use of any data scientist, it allows your team to work smarter and faster.

Einstein Analytics SDK with Encryption at Rest: In winter 18, there’s an opening up the foundation of our analytics platform to everyone with the Einstein analytics SDK. Whether your app is built in lightning visualforce or even outside of Salesforce, you can now have your apps interact with any analytics dashboard.  Salesforce has now introduced both the analytics web SDK which allows you to quickly connect with custom applications as well as the analytics effects SDK where you can put up queries of your analytics data from any apex class encryption at rest. It might built-in natively, you’ll never have to worry about the security and protection of your analytics data.

Lightening Experience Enhancements: In the winter release, you’ll undoubtedly notice a drastically changed Lightning experience. These enhancements are results of incredible research feedback from Salesforce community and a strong desire to see customers succeed.

First comes first, This feature has an all-new option which is Scanning information.  You’ll soon notice the more compelling contrast between the content and the background. Salesforce has improvised legibility with enhanced font sizes and with explicit hierarchies between the textbox, headers, body content, and buttons. You will also observe more compact design with increased content density and less white space on the page. Now you can view more data in the same area and spend less time scrolling, but that’s not all. We’ve infused the lightning experience with some Salesforce fun. Trailhead branding built right in; these new enhancements help make every user attain the most out of their lightning experience and be more productively efficient.

New Lightning Components: It is the moment of joy to share that; Salesforce has added even more based lightning components for Salesforce developer community. Based lightning components are the building blocks that make up the modern lightning experience, Lightning apps, and lightning communities user interfaces.

New and Changed Lightning Components are as follows:

  • Added information about new components, lightning:outputField and lightning:recordViewForm, and changes to lightning:datatable and lightning:verticalNavigation
  • New and Changed Lightning Components
  • Added information about changes to lightning:button and lightning:buttonStateful.
  • New and Changed Lightning Interfaces
  • Added support for the force:hasRecordId interface for Lightning components used in the Utility Bar.

Hope this has helped you with the all new winter 18 release, for more information you can check us out at www.cloudanalogy.com

Challenges Of Undertaking Salesforce Integration

Challenges Of Undertaking Salesforce Integration

A modern organization tends to utilize various sets of application to enhance its operational efficiency. For example, Salesforce for Sales, Workday for HR & Finance, Service Now for Operations, Atlassian for Engineering and so on. Most of these applications serve different functions. Some of them are not programmed to work with one another yet they have many things in common, i.e working out similar business complications and issues. When we integrate related yet separate applications within an organization it helps the business to increase their operational consistency, efficiency, and quality. CRM systems incline to serve a consolidated location for all the data related to the customer, so, it makes more sense for a company to enable the connection with such platforms.

Salesforce with a market share of around 22% in the CRM domain and customers ranging from startups to Fortune 500, has a well-deserved reputation in the market. Salesforce offers a range of features like multi-channel marketing, customer segregation, support service, collaboration and forecasting, reporting, workflow etc. Salesforce APIs are smooth and allows integration but then there are still some areas which need to look after.

According to an article published in First Post, a survey of 200 active Salesforce users and professionals disclosed their top issues like future planning and usage patterns with the implementation of Salesforce. Around 54 percent of the Salesforce user pointed out that data source integration with the application is the most critical issue.

With solution ranging from Biztalk to Informatica, Integration technology has existed for many years but cloud computing has changed the scenario and brought upon an entirely new set of challenges. In the initial years of integration technology, it was categorized around terminologies like Enterprise Application Integration, Enterprise Information Integration  Extraction, Transformation, and Loading. For simpler usage custom coding was also an option.

In the hybrid environment that spans on-premise and cloud-based data centers, the integration scenario has changed and have become more complex in several ways. To start with, the computing infrastructure for the foreseeable future will now be spread across the following locations:

The Salesforce integration issues erupt from the necessity to share data between Salesforce and various platforms.

The main integration challenges are:

1. Extensive coding and application installation required

In certain integration scenarios, extensive coding is required and multiple appliances need to be installed to ensure successful integration. These solutions require the management to update the software and similar infrastructure. With frequent platform update, it becomes important that regular distribution of these updates for all instances should be ensured at the same time.

2. Control

Undertaking integration development, management and monitoring in the cloud for centralized control is a complex task. Developing a runtime the engine that can be deployed either in the cloud or on-prem for installation and integration execution that can be a cumbersome task especially if we are looking at sharing of data among disparate applications. This is also dependant on a corporation’s security and latency considerations.

3.  Flexibility

At complex environments where several SaaS and on-premise application needs to be to integrated, which includes a combination of legacy at a  house hosted applications to cloud-based applications. In case there is a requirement to move data from on-premises application to cloud-based applications at migration scenario. It is important that any integration effort should support any combine premise and cloud application integration. This should be possible even across core information systems, subsidiaries, regions, and partners.

Possible Solutions

There are two main ways which can help to deal with the above or other Salesforce integration issues. It can be either building on your own solution which is customized or to use an existing tool for the job.

Evaluating the main pros of building one’s software for integration is being presented with extensive customization options along with enormous flexibility. It will allow satisfying all the needs of a business and CRM integration. However, it involves lofty investment and considerable time to process and develop such a tool. Thus, it becomes an unreasonable option for businesses. The second way is to use existing services which is easy to afford and at the same time faster to deploy. By having a single access to one of these services, it allows integration with multiple systems at the same time. There is practically no requirement to write individual integration modules for different CRM platform nor there is a requirement to hire developers.

Can Force.com (From Salesforce.com) Be Considered A PaaS

Can Force.com (From Salesforce.com) Be Considered A PaaS

INTRODUCTION TO CLOUD COMPUTING AND FORCE.COM

“Cloud Computing” has dramatically changed how business applications are built and run. Deploying another application is presented as fast as opening your Internet program. Platform as a Service — or PaaS — is today an established model for running applications without the challenge of maintaining the hardware and software infrastructure at your company. An advantage of PaaS solutions is their ability to upgrade themselves to latest without manual intervention.

PaaS services are deployed in the cloud and accessed by clients essentially via their web program. Software designers, web engineers, and organizations can make all profit by PaaS: Software designers can take advantage of a PaaS solution to assemble an application which they are planning to offer over the web or software to sell out of the box. Web designers can utilize individual PaaS situations at each stage of the procedure to create, test and host their sites. Organizations can build up their internal software, mainly to develop unmistakable ring-fenced advancement and testing conditions. Platform as a service (PaaS) is a distributed computing model in which an outsider supplier conveys hardware and software instruments – usually those required for application improvement – to clients over the web. A PaaS supplier has the hardware and software all alone infrastructure.

PaaS liberates clients from having to install in-house hardware and software to create or run another application. The original aim of PaaS was to improve the code-composing process for designers, with the infrastructure and operations handled by the PaaS supplier. Initially, all PaaS platforms were in the public cloud. Over a period because many companies did not want to have everything, in public cloud, private and hybrid PaaS platforms built.

Force.com Platform enables corporations to build and deploy apps in the cloud, faster than much on-premise application platform, hybrid platforms, and many cloud platforms that are not as evolved.

PaaS gives a situation to engineers and companies to create, have and convey applications, saving designers from the complexities of the infrastructure side (setting up, arranging and managing components, for example, servers and databases). PaaS can accelerate the application development by ensuring that developers and other stakeholders can concentrate on the application itself without having to address issues around managing runtime, middleware, operating framework, virtualization, servers, storage, and networking.

 What makes Force.com PaaS?

 

Just like Salesforce.com is an out of the box solution with their products around, Sales Cloud, Service Cloud and Marketing Cloud. An organization could go out and buy the Sales Cloud today and start logging leads, opportunities, running reports, etc.In contrast, by buying some Force.com licenses, you would not have an out of the box solution, no access to leads, accounts or opportunities. You would have to build Apps, Tabs, Custom Objects, Workflow Rules yourself all to design the kind of system that you want to use.

Force.com as PaaS

Force.com has some significant difference from other PaaS providers as it underpins a programming interface and is specifically intended for creating multi-tenant cloud-based applications. It has a unique programming model based on the Java-like Apex programming language. It also has a native UI and UI programming language. Applications built on Force.com platform can be expansions of CRM capabilities gave by Salesforce CRM, or they can be work process-based business applications, for example, approval work processes. The platform also provides integration APIs to CRM integration or outsider services.

In Force.com a developer can merely declare data objects are utilizing visual configuration tools and compose trigger handlers in the Apex programming language. Support for multi-tenancy, including tenant data isolation and configuration, is given out of the case with no specific programming required. One of the practical, abnormal state aspects of this sort of platform.

However, the tradeoff is that the programming model is one of a kind and does not translate to traditional enterprise architecture. Additionally, with a specific end goal to help multi-tenancy, the platform has runtime cut-off points in place which limit the amount of data, some transactions, and transaction latency.

The Force.com platform offers other features, including security and integration with external APIs

Force.com accelerates development velocity for cloud-based applications that tap into the center Salesforce.com application and facilitate seamless deployment. Many ISVs are reluctant to adopt Force.com because of its being proprietary and does not have the maturity or market acceptance as compared to more mainstream development platforms, for example, Microsoft .NET or Java/J2EE. Also, as the Force.com does not offer extreme cloud portability some programmers are are hesitant in leveraging this platform

Salesforce.com is proceeding with its PaaS push. For example, the company acquired Heroku—a Ruby-based PaaS that backings a global improvement group and pushes many social and versatile cloud applications. The company also presented database.com—a language-autonomous facilitated database apparently on the path to contend with Microsoft SQL Azure. How these forms strategically complement Force.com and will be accepted by the market has yet to be completely caught on.

A right PaaS platform drives innovation, enabling corporations to deploy applications faster. An exact PaaS application is open, lets IT collaboration helps in multi-cloud deployment.

Despite Force.com’s focus on productivity, the platform still needs to address factors like development support for a range of application from simple to the most complex, visual development of application logic and source control out of the box.

5 Mistakes A Salesforce Developer Can Commit Or Should Avoid

5 Mistakes A Salesforce Developer Can Commit Or Should Avoid

This Salesforce Blog is a developer’s experience in the Journey of Force.com development and customization. The problems faced by a day to day developer and the mistakes committed by them can sometimes be interesting and useful to a wide range of developers and administrators.

So let’s start the epic!!

Do Not Hardcode:

Once upon a time I was developing on a VF page and provided a link to a report(Our Standard Salesforce Reports in Visualforce Page:

So I hardcoded the URL for report as link in my VF page. The URL was working fine in sandbox and I was happy. Once I was done with development I migrated my changes to Production environment, Finally when I tested the application on the website I was unable to see the report on clicking the link.

But I got to know later that I cannot modify the apex class in production environment and I needed to fix it ASAP so it was all a big mess!

After scrutinizing the snag , I found that I had hardcoded the URL for my report and since the environment has changed  URL had stopped working.

So I finally  figured it out  using concept of dynamic URLs and used some code snippet like below:

“URL.getSalesforceBaseUrl().toExternalForm()+’/’+reportId”

Final Verdict: > DO NOT HARDCODE!!!

Avoid SOQL Errors:

While Developing have you encountered errors such as  “System.LimitException: Too many SOQL queries: 101” ?

This error System.LimitException : Too many SOQL queries: 101 is due to the fact, you are hitting on governor limit.

Our esteemed  Governor limits  says that you can run total 100 SOQL queries in a context and you are hitting the limit.

After a thorough study on the same I found that all the triggers fired will be counted in a single context or call. We need to ensure that total number of SOQL fired should be less than 100.

In order to pass this,  Many times i changed my  code in such a way that SOQL fired must be less than 100.

Sometimes I have also preferred if (only  we need to change the context)  using  @future annotation when I was required to run  the code asynchronously.

I made sure always  that the SOQL query I use should not be inside the for loop.

There are certain best practices which you would have to follow to avoid this error (to avoid hitting governor limit).

https://wiki.developerforce.com/page/Best_Practice:_Avoid_SOQL_Queries_Inside_FOR_Loops

http://salesforcedeveloperblog.blogspot.com/2011/05/best-practices-of-triggers.htmhttp://www.salesforce.com/us/developer/docs/apexcode/Content/apex_triggers_bestpract.htm

http://wiki.developerforce.com/page/Apex_Code_Best_Practices

https://www.salesforce.com/us/developer/docs/apexcode/Content/apex_gov_limits.htm

 Always follow the above practices to make sure you stay smiling at your workplace..

The challenging part is that one cannot increase the governor limit and can only follow best practices.

Streamline Multiple Triggers on same Object

 So here Is one more tricky situation:

Once I was working on a requirement (in short)  on the esteemed object Case to assign the account manager automatically. So I wrote a trigger which was  “Before Insert”.

I found that sometimes the account manager assigned was as expected and sometimes NOT!!

I was Bewildered !!

Like Always I started digging out checking debug logs, manual testing etc etc.

Finally Debug log was a ‘Maseeha’ telling me that I do have two more triggers with “Before Insert “ due to which system was unable to recognize the order of execution. Probably those codes were drafted by some other developers( of course my current and previous colleagues). I sat with them and finally came up with a single trigger with the same event on the object.

So in practice, Avoid multiple triggers with the same event on an object because it may discommode you at times.

Bulkify Your Code

So in the initial days of my Salesforce Development career, I faced something very terrible and good learning of course for me.

Let’s start with giving you some glimpse on my  poorly written code that only handles one record :


trigger BeforeInsert_Account on Account (before insert){

//This only handles the first record in the Trigger.new collection but if more than 1 Account initiated this trigger, those             additional records will not be processed

Account objAccount= Trigger.new[0];

List<Contact> contacts = [SELECT ID,salutation,firstName,lastName,email FROM Contact WHERE
 accountId = :acct.Id];

//and something something

} 

I tested the trigger and it worked fine and I was done by my job and then suddenly one day trigger hit the governor limits.

Like always I was bewildered. Got to know that one of my sweet colleague has written a batch apex to insert the Accounts and this was the whole sole reason.

Since I couldn’t ask my sweet colleague to undo the batch class, I need to do something.

After digging,I found that if a batch of records invokes my Apex code, all of those records need to be processed as a bulk, which hits governor limits.

And the issue was  that only one Account record was handled because the code explicitly accesses only the first record in the Trigger.new collection by using the syntax Trigger.new[0]. Instead, the trigger should properly handle the entire collection of Accounts in the Trigger.new collection.

Here is a sample of how I handled all incoming records from batch:

trigger BeforeInsert_Account on Account (before insert){

//This only handles the first record in the Trigger.new collection but if more than 1 Account initiated this trigger, those additional records will not be processed

Account objAccount= Trigger.new[0];

List<Contact> contacts = [select ID, salutation,firstName,lastName,email FROM Contact 
WHERE accountId = :acct.Id];
//and something something……
}

Notice how this revised version of the code iterates across the entire Trigger.new collection with a for loop. Now if this trigger is invoked with a single Account or up to 200 Accounts, all records will be properly processed.

So always put down strategy to write bulkified code.Make it as practice, though it will be not easy but good for long terms!!

Follow General Design Guidelines for Application Performance

As per my experience in designing Visualforce you may develop a very rich UI with nice pop-ups and images but when the users start using it ,it becomes nettlesome for them to click or navigate to buttons.

I have written these general guidelines to avoid performance impacts:

  • Always design pages around specific tasks, with a sensible workflow and navigation between tasks.The DOTS should be connected everywhere.
  • Never  overload pages with functionality and data. Visualforce pages with unbounded data or a large number of components, rows and  fields have poor ability and performance, and they risk hitting governor limits for view state, heap size, record limits, and total page size.
  • Always try to push back on requests to include non-essential functionality.
  • Must Build prototypes to validate concerns.

 References:

https://developer.salesforce.com/blogs/developer-relations/2015/01/apex-best-practices-15-apex-commandments.html

Salesforce Sandboxes – Key Player in Managing & Deploying Customization

Salesforce Sandboxes – Key Player in Managing & Deploying Customization

What is a Sandbox?

A Sandbox to a developer/administrator is like a playground for a child, it allows the developer/administrators to customize, play and configure the application development environment without affecting the actual production release versions. Sandboxes in Salesforce are used for app development, code management, version control, testing, and training without compromising the actual data and applications in your Salesforce production organization.

Types Of Sandboxes:

  Developer Sandbox Developer Pro Sandbox Partial Copy Sandbox Full Sandbox
What is their Usage? For coding and testing in an isolated environment For coding and testing in an isolated environment For  Testing environments and quality assurance task For testing environments and for performance and  load testing and staging
What do they include of  Production Environment? A copy of production organization’s configuration (metadata). A copy of production organization’s configuration (metadata). They have a larger storage limit than Developer sandboxes. A copy of production organization’s configuration (metadata), and a subset of production data as defined by a sandbox template. Replica of the production organization.
Licenses with which you can create Sandboxes  ·  Full Sandbox ·  PartialCopy Sandbox ·  Developer Pro Sandbox ·  Developer Sandbox · Full Sandbox · PartialCopy Sandbox · Developer Pro Sandbox · Full Sandbox · PartialCopy Sandbox · Full Sandbox

Sandboxes In SDLC Process

In a Salesforce app development life cycle, comes various phases of code development, unit testing, UAT etc. A simple example is: 

   In a case when different teams work on multiple areas simultaneously which finally have to be merged into a single organization, that is a single Production environment, with time the process becomes rather complex. It overcomes this a staging platform is created to repressively test the performance without affecting the production version. An example for the same is shown below: 

Managing Sandboxes For Release Management Process

Though there is no thumb rule or out of the box process defined on which organizations are dependent on handling their release management system. But still there are some points on sandboxes to be considered for running the process:

  • Make a practice to refresh the sandboxes after every release so that we make sure to leverage the new features and make sure that our environment is compatible with the new changes.
  • Also, it’s recommended to have a strategy to align the org releases with Salesforce releases, in order to reduce the efforts for refreshing sandboxes.
  • A Post Refresh Run List should be prepared and followed every time sandboxes are refreshed after a new release. Few things which should be included are:
    • Data Masking Needs
    • User Profile Modifications
    • Test Data Loads
    • Deployment Plan
    • Turn Off Scheduled Jobs
    • Manage Outbound Email.

Hope this would help you in getting an overview of what Salesforce sandboxes are.

Pin It on Pinterest