Comment récupérer des données de Salesforce depuis un système externe ?

Salesforce est le leader mondial des solutions CRM et l’une des entreprise les plus réputés dans l’industrie du cloud. Évidemment toute équipe commerciale rêve de travailler avec cet outil puissant. Néanmoins, les entreprise utilisent aussi d’autres applications tel que des ERP,SGBD … De ce fait, la présence de plusieurs solutions déconnectées au sein d’une même entreprise peut s’avérer critique (contre productif). Il est donc primordial que ces solutions puissent échanger des données entre elles.

Outbound Messaging :

Créer un message XML (de 1 à 100 messages) et effectuer un appel de publication à un point de terminaison, ceux-ci vont être configurés sur un objet spécifique, vous le définissez sur l’objet, vous créez un workflow, vous leur envoyez un message et vous incluez le champ concerné dans ce message.

Avantages :

  • Si votre point de terminaison (endpoint) est en panne ou que les données ne sont pas affichées, la messagerie sortante (outbound message) réessayera automatiquement de les renvoyer.
  • il n’y a pas de code à écrire sur Salesforce.

Inconvénients :

  • Il n’a pas d’ordre garanti, le message sera mis dans la file d’attente mais il pourrait livrer un autre message en premier à cause d’une éventuelle nouvelle tentative d’envoi.
  • Il n’y a pas de chronologie garantie, tout ce qu’on sait c’est que cela se produira dans le futur.
  • Ce n’est pas une bonne solution avec de gros volumes de données, vous pouvez faire jusqu’à 100 messages, donc si vous effectuez une modification importante sur les données, par exemple si vous envoyez 1000 modification seulement 100 vont être effectuées.
  • Vous n’obtenez pas non plus de données liées, il ne s’agit que de données sur un seul objet.
  • Il n’y a pas de vraie sécurité forte avec la messagerie sortante, vous pouvez utiliser SSL avec la messagerie sortante, il y a quelques mises en garde sur les fournisseurs SSL pris en charge par la plateforme Salesforce. Pour la plupart, vous pouvez utiliser SSL, en revanche, vous ne pouvez pas utiliser des mots de passe, vous ne pouvez pas utiliser oAuth, vous ne pouvez pas avoir d’authentification.

Voir plus sur : https://trailhead.salesforce.com/fr/content/learn/modules/service_message/service-message-learn

Apex callouts:

Un appel Apex vous permet d’intégrer étroitement votre Apex à un service externe en passant un appel à un service Web externe ou en envoyant une requête HTTP à partir du code Apex, puis en recevant la réponse. Apex fournit une intégration avec des services Web qui utilisent SOAP et WSDL, ou des services HTTP (services RESTful).

Avantages :

  • Il est très flexible dans ses types de données car c’est du apex, vous pouvez extraire toutes les données que vous voulez notamment des objets liés (related object), vous construisez votre structure de données et vous faites cet appel au point de terminaison.
  • Vous avez beaucoup plus d’options de sécurité par rapport a l’outbound message.

Inconvénients :

  • Pas de renvoi automatique, les messages qui échouent vont disparaître et il s’agit d’un échec très difficile à consigner car il se produit dans un appel futur.
  • Il y a aussi des limites de gouverneur.

Voir plus : https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_callouts.htm

Salesforce connect :

Salesforce Connect offre une intégration transparente des données au-delà des limites du système en permettant à vos utilisateurs d’afficher, de rechercher et de modifier les données stockées en dehors de votre organisation Salesforce. Par exemple, vous avez peut-être des données stockées sur site dans un progiciel de gestion intégré (ERP). Au lieu de copier les données dans votre organisation, vous pouvez utiliser des objets externes pour accéder aux données en temps réel via des appels de service Web.

Avantages :

  • L’accès se fait en temps réel.
  • C’est un coût de développement très faible, du moins du côté de Salesforce, vous vous y connectez, elle se connecte à votre point de terminaison et il n’y a rien d’autre à faire.

Inconvénients :

  • Un peu cher, vous payez par point de terminaison que vous utilisez.

Voir plus : https://trailhead.salesforce.com/fr/content/learn/projects/quickstart-lightning-connect

Heroku connect :

Heroku connect s’exécute dans l’infrastructure heroku et vous permet de synchroniser les données de salesforce vers une base de données postgres et inversement.

Avantages :

  • Le plus grand avantage de heroku connect est la synchronisation bidirectionnel des données.

Inconvénients :

  • C’est une solution payante dont le prix est assez onéreux. Si vous l’utilisez, vous payez non seulement pour Heroku connect mais également pour la base de données mais cela dépend de votre utilisation de Heroku cela peut vous arranger.

Voir plus : https://trailhead.salesforce.com/fr/content/learn/projects/quickstart-heroku-connect

Streaming API :

Le streaming vous permettra d’envoyer des données de Salesforce vers un point de terminaison, ces données seront consommées en temps réel.

Avantage :

  • L’avantage majeur du Streaming API est que la consommation de données se passe en temps réel.
  • Fiabilité et durabilité des données : les messages sont dans une file d’attente de Streaming donc si le système qui consomme les données tombe en panne, nous avons la possibilité de récupérer l’ID du message depuis lequel le système s’est arrêté et ainsi relancer l’opération depuis ce message. De plus, il est possible de récupérer les événements passés des dernières 24 heures.

Inconvénients :

  • C’est très coûteux en termes d’effort à fournir du côté consommateur puisqu’il doit gérer les messages qu’il reçoit ,mais il doit aussi gérer leur durabilité et fiabilité.
  • Une des contraintes principales c’est que l’on peut facilement atteindre les limites du gouverneur.

Voir plus : https://developer.salesforce.com/docs/atlas.en-us.api_streaming.meta/api_streaming/intro_stream.htm

Change data capture :

La Capture des données de modification est un produit de diffusion en continu sur la plate-forme Lightning qui vous permet d’intégrer efficacement vos données Salesforce à des systèmes externes. La Capture des données de modification vous indique en temps réel les modifications des enregistrements Salesforce et synchronise les enregistrements correspondants dans une banque de données externe. La Capture des données de modification publie des événements au sujet des modifications effectuées dans les enregistrements Salesforce correspondant à des opérations de création, de mise à jour, de suppression et de restauration.

Avantages :

  • Les avantages de la capture de données de modification sont similaires à ceux du Streaming API(temps réel ,fiabilité, durabilité) cependant la capture de données de modification possède des limites de gouverneur plus souple.

Inconvénients :

  • Beaucoup de développement côté consommateur.
  • Pas de données liées (no related object).

Voir plus : https://trailhead.salesforce.com/fr/content/learn/modules/change-data-capture

API(REST/SOAP) :

REST :

L’API REST est un service Web simple et puissant basé sur les principes de REST. Il expose toutes sortes de fonctionnalités Salesforce via des ressources REST et des méthodes HTTP.

SOAP :

L’API SOAP est un service Web robuste et puissant basé sur le protocole standard du secteur qui porte le même nom. Il utilise un fichier WSDL (Web Services Description Language) afin de définir rigoureusement les paramètres d’accès aux données via l’API. L’API SOAP prend uniquement en charge XML.

Avantages :

  • Avec Apex, on peut faire pratiquement tout ce que l’on veut , on peut exécuter plusieurs requêtes SOQL de complexité variée.
  • Possibilité d’utiliser Bulk API qui nous permet de travailler avec une large quantité de données.

Inconvénients :

  • Le nombre d’appel API dépend du nombre de licence dans l’organisation.

Voir plus : https://trailhead.salesforce.com/fr/content/learn/modules/api_basics

Quelle solution choisir ?

La réponse est simple, cela dépend de votre utilisation et de ce que vous voulez faire avec les données.

Samy DILEM

Consultant Salesforce - Altius services

Réussir son projet ERP

Implémenter ou changer un système ERP est un projet numérique d’une importance critique pour les entreprises. À travers ce billet de blog, vous découvrirez les points clés que vous devez intégrer dans vos spécifications ERP, ainsi que les meilleures pratiques et les erreurs à éviter.

Read more >>

Comment créer une extension spécifique métier sur Sage FRP1000 ?

Votre progiciel Sage FRP1000 vous permet de concevoir vous-même des écrans correspondant à vos besoins et peuvent ensuite être affectés à certains utilisateurs via la console d’administration.

Read more >>

Utiliser un IDP pour se connecter à Salesforce (Part 1 - Getting Started)

Read more >>

Intégration de Slack avec Salesforce, comment procéder ?

Pour optimiser la collaboration entre les membres de l’équipe et gérer plus efficacement votre processus de vente, vous pouvez utiliser simultanément Salesforce et la plateforme de messagerie Slack. Cette intégration prend en charge Sales Cloud et Service Cloud dans les expériences Lightning et Classic, elle est disponible pour toutes les éditions.

Read more >>

Comment créer un explorateur de fichiers sur Salesforce à partir des composants lightning LWC & Aura ?

J’ai reçu il y a quelques temps, une demande d’un client qui se plaignait de l’absence de visibilité globale sur les dossiers dans Salesforce et il n’avait pas complètement tort.

Read more >>

Comment protéger un logiciel en Algérie ?

De prime abord, les brevets d’invention semblent constituer, pour les pays en voie de développement, un facteur de développement puissant. Cependant, pour bien saisir les enjeux de cette problématique, il importe d’apporter des réponses à certaines questions essentielles.

Read more >>

Contact

Les informations que vous nous fournissez, seront totalement confidentielles et utilisées uniquement pour vous contacter.

Merci ! Votre demande a été reçue !
Oops! Something went wrong while submitting the form.