<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Abdelhakim Mouttaqui</title>
    <description>The latest articles on DEV Community by Abdelhakim Mouttaqui (@abdelhakim).</description>
    <link>https://dev.to/abdelhakim</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F284613%2F7eac2b9c-2f42-4a44-b431-883e00ac27bc.jpg</url>
      <title>DEV Community: Abdelhakim Mouttaqui</title>
      <link>https://dev.to/abdelhakim</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abdelhakim"/>
    <language>en</language>
    <item>
      <title>Salesforce spring'21 Release - ISV Features</title>
      <dc:creator>Abdelhakim Mouttaqui</dc:creator>
      <pubDate>Wed, 13 Jan 2021 08:49:45 +0000</pubDate>
      <link>https://dev.to/abdelhakim/salesforce-spring-21-release-isv-features-2cj7</link>
      <guid>https://dev.to/abdelhakim/salesforce-spring-21-release-isv-features-2cj7</guid>
      <description>&lt;p&gt;In the spring'21 release, salesforce is providing some new features for their ISV partners, let's check some of them 😃&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 Target a Specific Release
&lt;/h2&gt;

&lt;p&gt;While creating a new package version you can specify &lt;code&gt;preview&lt;/code&gt; or &lt;code&gt;previous&lt;/code&gt;, which means you can test upcoming features, run regression tests, and support customers regardless of which release their org is on.&lt;/p&gt;

&lt;p&gt;To create a package version based on the previous Salesforce release version, create a scratch definition file that contains:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
   &lt;/span&gt;&lt;span class="nl"&gt;"release"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"previous"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, specify the definition file when you create your package version.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;sfdx force:package:version:create &lt;span class="nt"&gt;-f&lt;/span&gt; config/project-scratch-def.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📌 Remove Metadata Components (Pilot)
&lt;/h2&gt;

&lt;p&gt;In Spring'21 salesforce is piloting the functionality that will allow you to remove metadata components from the Second-Generation Managed package. This gives you the ISV partner the possibility to delete the metadata that is not needed anymore and creates confusion for the end-user.&lt;/p&gt;

&lt;p&gt;This change applies to second-generation managed packages.&lt;/p&gt;

&lt;p&gt;To join the pilot, log a case at &lt;a href="https://partners.salesforce.com/partnerSupport"&gt;https://partners.salesforce.com/partnerSupport&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 Monitor Packaging Operations with New API Fields
&lt;/h2&gt;

&lt;p&gt;Three new fields in SOAP and Tooling API objects allow you to monitor and troubleshoot issues with push upgrades and package creation.&lt;br&gt;
The &lt;code&gt;PackagePushRequest&lt;/code&gt; and the &lt;code&gt;PackagePushJob&lt;/code&gt; objects in SOAP API have new fields that indicate the start time, end time, and how long the push upgrade took to complete. The &lt;code&gt;Package2Version&lt;/code&gt; object in Tooling API has a new field that indicates how long it took to create a package version. &lt;/p&gt;

&lt;p&gt;You can also use &lt;code&gt;--verbose&lt;/code&gt; on &lt;code&gt;package:version:list&lt;/code&gt; or &lt;code&gt;package:version:report&lt;/code&gt; to view &lt;code&gt;BuildDurationInSeconds&lt;/code&gt; for a package version.&lt;/p&gt;
&lt;h2&gt;
  
  
  📌 Specify Unpackaged Metadata
&lt;/h2&gt;

&lt;p&gt;It's possible to have metadata in your project which you can use to test the app functionality without having them included in the package.&lt;/p&gt;

&lt;p&gt;You need to add the test metadata in a different folder and specify the path to the unpackaged metadata in your &lt;code&gt;sfdx-project.json&lt;/code&gt; file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"packageDirectories"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"path"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"force-app"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"package"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"TV_unl"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"versionName"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ver 0.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"versionNumber"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"0.1.0.NEXT"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"default"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"unpackagedMetadata"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"path"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"my-unpackaged-directory"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"path"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"my-unpackaged-directory"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"default"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📌 AppExchange App Analytics
&lt;/h2&gt;

&lt;p&gt;Curious about how your subscribers interact with your solution? AppExchange App Analytics package usage logs and package usage summaries can help you getting and monitoring the data.&lt;/p&gt;

&lt;p&gt;You can download 20 GB of AppExchange App Analytics data within a 24-hour period.&lt;/p&gt;

&lt;p&gt;In order to get access to AppExchange App Analytics, you will have to log a case in the Salesforce Partner Community.&lt;/p&gt;

&lt;p&gt;Package usage summaries provide high-level metrics by calendar month. Discover how many users access your package and which operations they perform.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.salesforce.com/docs/atlas.en-us.230.0.packagingGuide.meta/packagingGuide/app_analytics_intro.htm"&gt;https://developer.salesforce.com/docs/atlas.en-us.230.0.packagingGuide.meta/packagingGuide/app_analytics_intro.htm&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;I hope this helps, You can find me on Twitter @abdel_force.&lt;/p&gt;

</description>
      <category>salesforce</category>
      <category>isvpartner</category>
    </item>
    <item>
      <title>Salesforce spring'21 Release - Dev Features</title>
      <dc:creator>Abdelhakim Mouttaqui</dc:creator>
      <pubDate>Tue, 12 Jan 2021 12:54:06 +0000</pubDate>
      <link>https://dev.to/abdelhakim/salesforce-sprint-21-release-dev-features-5fl1</link>
      <guid>https://dev.to/abdelhakim/salesforce-sprint-21-release-dev-features-5fl1</guid>
      <description>&lt;p&gt;Salesforce's new release is fast approaching, some of you have already had a chance to experience the new features.&lt;/p&gt;

&lt;p&gt;Let's take a few minutes to take a look at the good part of the release. &lt;/p&gt;

&lt;h2&gt;
  
  
  📌 Being able to select all fields using SOQL
&lt;/h2&gt;

&lt;p&gt;In previous versions of SOQL, retrieving fields meant specifying all the names of all the fields you wanted to retrieve.&lt;/p&gt;

&lt;p&gt;Well, Not Anymore 🎉🎉&lt;/p&gt;

&lt;p&gt;📣 Now you are able to include pre-defined groupings of fields within a query statement using the new FIELDS() function.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;FIELDS&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;ALL&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;Account&lt;/span&gt; &lt;span class="k"&gt;LIMIT&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;FIELDS&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CUSTOM&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;Account&lt;/span&gt; &lt;span class="k"&gt;LIMIT&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;FIELDS&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;STANDARD&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;Account&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also mix FIELDS() with other field names in the field list. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;FIELDS&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CUSTOM&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;Account&lt;/span&gt; &lt;span class="k"&gt;LIMIT&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;someCustomField__c&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;FIELDS&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;STANDARD&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;Account&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Xc3KpljK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/p8aee6rsjq75b2tqxnq5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Xc3KpljK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/p8aee6rsjq75b2tqxnq5.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;However, if you already know which fields you want to retrieve, you will get better performance by specifying them explicitly rather than using &lt;code&gt;FIELDS()&lt;/code&gt; and retrieving more fields than you need.&lt;/p&gt;

&lt;p&gt;As some of you know already, SOQL automatically pages the results if a SELECT statement returns a large amount of data that is expensive to retrieve. This can occur, for example, if the object contains many fields or contains &lt;code&gt;CLOB&lt;/code&gt; or &lt;code&gt;BLOB&lt;/code&gt; fields. It can also occur if FIELDS() returns a large amount of data.&lt;/p&gt;

&lt;p&gt;And the last thing that you should know about this feature is that you should limit the result rows to be less than or equal to 200 records.&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 Access Custom Metadata Type Records Using Static Methods
&lt;/h2&gt;

&lt;p&gt;Use the Apex &lt;code&gt;getAll()&lt;/code&gt;, &lt;code&gt;getInstance(recordId)&lt;/code&gt;, &lt;code&gt;getInstance(qualifiedApiName)&lt;/code&gt;, and &lt;code&gt;getInstance(developerName)&lt;/code&gt; methods to retrieve information from custom metadata type records faster.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;List&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Games__mdt&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;mcs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Games__mdt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getall&lt;/span&gt;&lt;span class="o"&gt;().&lt;/span&gt;&lt;span class="na"&gt;values&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
&lt;span class="kt"&gt;boolean&lt;/span&gt; &lt;span class="n"&gt;textField&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mcs&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;].&lt;/span&gt;&lt;span class="na"&gt;GameType__c&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="no"&gt;PC&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
   &lt;span class="n"&gt;textField&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="n"&gt;system&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;assertEquals&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;textField&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📌 Flag Invocable Apex Methods That Make Callouts
&lt;/h2&gt;

&lt;p&gt;I always used a future method to make a callout inside an invocable method, today I am so excited to share with you this feature.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nd"&gt;@InvocableMethod&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;callout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;label&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"My Action Label"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📌 Customize Markers and Control Map Behavior
&lt;/h2&gt;

&lt;p&gt;You customize your map the way you want and make it look as designed, by defining the markers and controlling the behavior in the lightning-map Base Component.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZoCJ2iAO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/nlr0qrqanyikzi6rvuge.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZoCJ2iAO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/nlr0qrqanyikzi6rvuge.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;template&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;lightning-map&lt;/span&gt;
       &lt;span class="na"&gt;map-markers=&lt;/span&gt;&lt;span class="s"&gt;{mapMarkers}&lt;/span&gt;
       &lt;span class="na"&gt;options=&lt;/span&gt;&lt;span class="s"&gt;{mapOptions}&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;gt;&amp;lt;/lightning-map&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/template&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In mapOptions, set the disableDefaultUI property, which disables zooming and removes the Map or Satellite buttons. To disable panning the map, set the draggable property.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;LightningElement&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;lwc&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nx"&gt;LightningExampleMapCustomMarker&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nx"&gt;LightningElement&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nx"&gt;mapOptions&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                   &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;disableDefaultUI&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="c1"&gt;// when true disables Map|Satellite, +|- zoom buttons&lt;/span&gt;
                   &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;draggable&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// when false prevents panning by dragging on the map&lt;/span&gt;
   &lt;span class="p"&gt;};&lt;/span&gt;
   &lt;span class="nx"&gt;mapMarkers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt;
         &lt;span class="na"&gt;location&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                      &lt;span class="na"&gt;City&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;San Francisco&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                      &lt;span class="na"&gt;Country&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;USA&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                      &lt;span class="na"&gt;PostalCode&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;94105&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                      &lt;span class="na"&gt;State&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;CA&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                      &lt;span class="na"&gt;Street&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;425 Mission St&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                   &lt;span class="p"&gt;},&lt;/span&gt;
          &lt;span class="na"&gt;mapIcon&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                      &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;M 125,5 155,90 245,90 175,145 200,230 125,180 50,230 75,145 5,90 95,90 z&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                      &lt;span class="na"&gt;fillColor&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#CF3476&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                      &lt;span class="na"&gt;fillOpacity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                      &lt;span class="na"&gt;strokeWeight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                      &lt;span class="na"&gt;scale&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
   &lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📌 Aura Components in the ui Namespace Are Being Deprecated
&lt;/h2&gt;

&lt;p&gt;📣 Salesforce will not support the ui Namespace starting from May 1, 2021. Be sure you plan a migration as soon as possible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;some examples:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;ui:actionMenuItem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt; lightning:menuItem 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📌 Create a Lightning Web Component Action (Pilot)
&lt;/h2&gt;

&lt;p&gt;Creating quick action required us to use the Aura component for it, today Salesforce made it possible by using LWC, however, be aware that this is still a Pilot and you can not use it in production yet. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--35rqYYlE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mmeb8f5gewe42fy8mv6b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--35rqYYlE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mmeb8f5gewe42fy8mv6b.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🚨🚨🚨 Advance Notice of Upcoming Retirement of Platform API Legacy Versions 🚨🚨🚨
&lt;/h2&gt;

&lt;p&gt;With the Summer ’21 release, legacy versions of the Salesforce Platform API will be retired and will no longer be supported by Salesforce&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SOAP API&lt;/strong&gt;&lt;br&gt;
7.0, 8.0, 9.0, 10.0, 11.0, 11.1, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;REST API&lt;/strong&gt;&lt;br&gt;
20.0&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bulk API&lt;/strong&gt;&lt;br&gt;
16.0, 17.0, 18.0, 19.0, 20.0&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wciPJOWb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/slyuo349k7apkdf72gsx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wciPJOWb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/slyuo349k7apkdf72gsx.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn more
&lt;/h2&gt;

&lt;p&gt;I highlighted the features in this blog that i think will have a big impact on the way we are developing today, if you want to see more features, please follow this &lt;a href="https://help.salesforce.com/articleView?id=release-notes.salesforce_release_notes.htm&amp;amp;type=5&amp;amp;release=230"&gt;link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope this helps, You can find me on Twitter &lt;a href="https://twitter.com/abdel_force"&gt;@abdel_force&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>salesforce</category>
      <category>crm</category>
      <category>salescloud</category>
      <category>servicecloud</category>
    </item>
  </channel>
</rss>
