• Accueil / Salesforce / Stratégies d’intégration Salesforce…
, Stratégies d&rsquo;intégration Salesforce DX | Andy dans le cloud<span class="wtr-time-wrap after-title"><span class="wtr-time-number">7</span> minutes de lecture</span>

Stratégies d’intégration Salesforce DX | Andy dans le cloud7 minutes de lecture


, Stratégies d&rsquo;intégration Salesforce DX | Andy dans le cloud<span class="wtr-time-wrap after-title"><span class="wtr-time-number">7</span> minutes de lecture</span>Ce blog couvrira trois façons dont vous pouvez interagir par programmation avec Salesforce DX. DX fournit un certain nombre d’utilitaires et de commandes qui vous font gagner du temps, parfois si vous souhaitez soit les combiner, soit choisir d’écrire les vôtres qui correspondent mieux à votre façon de travailler. Heureusement, DX est très ouvert et, en fait, va au-delà de la simple interaction avec la CLI.

Si vous êtes familier avec DX, vous serez probablement déjà en train d’écrire ou d’avoir utilisé scripts shell autour de la CLI, ces scripts sont du code et les commandes CLI et leurs sorties (surtout en mode JSON) est l’API dans ce cas. Le but de ce blog est de mettre davantage en évidence cette approche ainsi que d’autres options de programmation via API REST ou Node.js.

En gros, DX est composé de couches, des services côté client à ceux du backend. Chacune de ces couches est en fait pris en charge et disponible pour vous en tant que développeur à consommer également. Le diagramme présenté ici montre ces couches et les sections suivantes mettent en évidence quelques exemples et d’autres cas d’utilisation pour chacun.

CLI DX

Programmation via scripts shell est très courant et il existe une énorme richesse de contenu et d’aide sur Internet, quelle que soit votre plate-forme. Vous pouvez effectuer des opérations de condition, utiliser des variables et même effectuer des boucles. Le seul inconvénient est qu’ils sont spécifiques à la plate-forme. Donc, si la prise en charge des utilisateurs sur plusieurs plates-formes est importante pour vous et que vous avez des compétences dans d’autres langages plus neutres de la plate-forme, vous pouvez envisager d’automatiser la CLI de cette manière.

Quelle que soit la façon dont vous invoquez la CLI, l’analyse du texte lisible par l’homme à partir des commandes CLI n’est pas une bonne expérience et conduit à la fragilité (car elle peut et doit être autorisée à changer entre les versions). Donc toutes les commandes Salesforce DX prennent en charge –Json paramètre. Tout d’abord, considérons la sortie par défaut de la commande suivante.

sfdx force:org:display
=== Org Description
KEY              VALUE
───────────────  ──────────────────────────────────────────────────────────────────────
Access Token     00DR00.....O1012
Alias            demo
Client Id        SalesforceDevelopmentExperience
Created By       admin@sf-fx.org
Created Date     2019-02-09T23:38:10.000+0000
Dev Hub Id       admin@sf-fx.org
Edition          Developer
Expiration Date  2019-02-16
Id               00DR000000093TsMAI
Instance Url     https://customization-java-9422-dev-ed....salesforce.com/
Org Name         afawcett Company
Status           Active
Username         test....a@example.com

Maintenant, comparons la sortie de cette commande avec le –Json paramètre.

sfdx force:org:display --json
{"status":0,"result":{"username":"test...a@example.com","devHubId":"admin@sf-fx.org","id":"00DR000000093TsMAI","createdBy":"admin@sf-fx.org","createdDate":"2019-02-09T23:38:10.000+0000","expirationDate":"2019-02-16","status":"Active","edition":"Developer","orgName":"afawcett Company","accessToken":"00DR000...yijdqPlO1012","instanceUrl":"https://customization-java-9422-dev-ed.mobile02.blitz.salesforce.com/","clientId":"SalesforceDevelopmentExperience","alias":"demo"}}}

, Stratégies d&rsquo;intégration Salesforce DX | Andy dans le cloud<span class="wtr-time-wrap after-title"><span class="wtr-time-number">7</span> minutes de lecture</span>Si vous utilisez un langage de programmation prenant en charge l’interprétation de JSON, vous pouvez maintenant commencer à analyser la réponse pour obtenir les informations dont vous avez besoin. Cependant, si vous utilisez des scripts shell, vous avez besoin d’une petite assistance pour l’extraction. Heureusement, il existe un utilitaire open source génial appelé jq à la rescousse. Tout simplement tuyauterie la sortie JSON via la commande jq vous permet d’avoir un meilleur aperçu des choses…

sfdx force:org:display --json | jq
{
  "status": 0,
  "result": {
    "username": "test-hm83yjxhunoa@example.com",
    "devHubId": "admin@sf-fx.org",
    "id": "00DR000000093TsMAI",
    "createdBy": "admin@sf-fx.org",
    "createdDate": "2019-02-09T23:38:10.000+0000",
    "expirationDate": "2019-02-16",
    "status": "Active",
    "edition": "Developer",
    "orgName": "afawcett Company",
    "accessToken": "00DR000....O1012",
    "instanceUrl": "https://customization-java-9422-dev-ed.....salesforce.com/",
    "clientId": "SalesforceDevelopmentExperience",
    "alias": "demo"
  }
}

Vous pouvez alors être un peu plus précis en ce qui concerne les informations que vous souhaitez.

sfdx force:org:display --json | jq .result.id -r
00DR000000093TsMAI

Vous pouvez combiner cela dans un script shell pour définir les variables comme suit.

ORG_INFO=$(sfdx force:org:display --json)
ORG_ID=$(echo $ORG_INFO | jq .result.id -r)
ORG_DOMAIN=$(echo $ORG_INFO | jq .result.instanceUrl -r)
ORG_SESSION=$(echo $ORG_INFO | jq .result.accessToken -r)

Toutes les commandes DX prennent en charge la sortie JSON, y compris les commandes de requête…

sfdx force:data:soql:query -q "select Name from Account" --json | jq .result.records[0].Name -r
GenePoint

le Exemple de script pour l’installation de packages avec des dépendances présente un excellent exemple d’utilisation de la sortie JSON des commandes de requête pour découvrir automatiquement les dépendances de package. Cette approche peut être adaptée cependant à n’importe quel objet, elle montre également une autre approche utile de combinaison de Python dans un script Shell.

Bibliothèque DX Core et plugins DX

C’est un La bibliothèque Node.js contient les fonctionnalités DX principales tel que authentification, gestion de l’organisation, gestion de projet et le possibilité d’appeler les API REST contre scratch orgs vis JSForce. Cette bibliothèque est effectivement utilisée le plus souvent lorsque vous créez un plugin DX, cependant, il peut être utilisé seul. Si vous disposez d’un outil basé sur Node.js ou d’une bibliothèque CLI existante dans laquelle vous souhaitez intégrer DX.

le le dossier d’exemples contient ici de bons exemples. Cet exemple montre comment utiliser la bibliothèque pour accéder aux informations d’alias et fournir un moyen pour l’utilisateur de modifier les noms d’alias.

, Stratégies d&rsquo;intégration Salesforce DX | Andy dans le cloud<span class="wtr-time-wrap after-title"><span class="wtr-time-number">7</span> minutes de lecture</span>

  // Enter a new alias
  const { newAlias } = await inquirer.prompt([
    { name: 'newAlias', message: 'Enter a new alias (empty to remove):' }
  ]);

  if (alias !== 'N/A') {
    // Remove the old one
    aliases.unset(alias);
    console.log(`Unset alias ${chalk.red(alias)}`);
  }

  if (newAlias) {
    aliases.set(newAlias, username);
    console.log(
      `Set alias ${chalk.green(newAlias)} to username ${chalk.green(username)}`
    );
  }

Objets API d’outillage

Enfin, il existe une multitude de Objets API d’outillage qui prennent en charge les fonctionnalités ci-dessus et quelques fonctionnalités supplémentaires supplémentaires. Ceux-ci sont entièrement documenté et accessible via l’API Salesforce Tooling à utiliser dans vos propres plugins ou applications capables de faire des appels d’API REST. Gardez à l’esprit que vous pouvez faire plus que simplement interroger ces objets, certains aussi représenter des processus, ce qui signifie que lorsque vous les insérez, ils font des choses! Voici un bref résumé des objets les plus intéressants.

  • PackageUploadRequest, MetadataPackage, MetadataPackageVersion représentent des objets que vous pouvez utiliser en tant que développeur pour automatiser le téléchargement de packages de première génération.
  • Paquet2, Package2Version, Package2VersionCreateRequest et Package2VersionCreateRequestError représentent des objets que vous pouvez utiliser en tant que développeur pour automatiser le téléchargement de packages de deuxième génération.
  • PackageInstallRequest AbonnéPackage SubscriberPackageVersion et Package2Member (deuxième génération uniquement) représentent des objets qui vous permettent d’automatiser l’installation d’un package et vous permettent également de découvrir le contenu des packages installés au sein d’une organisation.
  • Processus Sandbox et SandboxInfo représentent des objets qui vous permettent d’automatiser la création et l’actualisation des sandbox, ainsi que la recherche d’objets existants. Pour plus d’informations, consultez le résumé en bas de ce rubrique d’aide.
  • SourceMembre représente les modifications que vous effectuez lors de l’utilisation du menu Configuration dans une organisation Scratch. Il est utilisé par les commandes push et pull pour suivre les modifications. La documentation prétend que vous pouvez créer et mettre à jour des enregistrements dans cet objet, cependant, je vous recommande de ne l’utiliser qu’à des fins d’information. Par exemple, vous pouvez écrire votre propre outil d’interrogation pour piloter la génération de code en fonction des modifications d’objets personnalisés.

NOTE IMPORTANTE: Assurez-vous de prendre en compte les commandes CLI existantes pour répondre à vos besoins. Comme vous l’avez lu ci-dessus, il est facile d’automatiser ces commandes et elles gèrent une grande partie de la complexité de l’interaction directe avec ces objets. Cela est particulièrement vrai pour les objets d’emballage.

Sommaire

Les options ci-dessus représentent un riche ensemble de capacités pour intégrer et étendre DX. Gardez à l’esprit que plus vous allez en profondeur, plus vous obtenez de flexibilité, mais vous prenez également plus de complexité. Alors choisissez judicieusement et / ou utilisez un mélange d’approches. Enfin, il convient de mentionner l’avenir de SFDX CLI et Oclif. Salesforce est en train de mettre à jour les composants internes de la DX CLI pour utiliser cette bibliothèque et une fois terminé, il ouvrira de nouvelles possibilités intéressantes comme les hooks CLI qui vous permettront d’étendre les commandes existantes.



Source de l’article traduit automatiquement en Français

Besoin d'aide ?
Voulez-vous utiliser Pardot à sa capacité maximale et avoir
+ DE LEADS QUALIFIÉS

Notre analyse de votre Pardot offerte dès aujourd'hui
Merci, vous pouvez compléter notre questionnaire
Nous allons revenir vers vous rapidement !

Fermer