Metadata API et déployer avec Workbench

Metadata API et déployer avec Workbench

Metadata API et déploiement de Metadata via Workbench

Dans l’article précédent, nous avons abordé comment déployer des metadata via Change Set.

Pour rappel, par métadonnées (metadata), on entend par exemple une classe Apex, une page Visual Force, une règle de validation (validation rule), une présentation de page (Page Layout), un composant Lightning …

Nous allons discuter ici de la Metadata API et du déploiement de métadonnées via le Workbench. Nous allons notamment expliquer comment supprimer des metadata avec Workbench.

Package XML et Metadata API

Le transfert de ces métadonnées s’appuie sur la Metadata API exposée par Salesforce. Le Metadata API Developer Guide liste les différentes metadata disponibles :
https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_types_list.htm

Metadata API Developer Guide
Metadata API Developer Guide

L’appel à cette API se base sur un fichier package.xml. Il contient les metadata que l’on souhaite extraire ou déployer. Voici à quoi ressemble un exemple de fichier concernant 3 classes Apex :

Package XML Classes Apex
Package XML

Le type de métadonnée se trouve dans les balises <name>. Ici, il s’agit de classes Apex.
Les balises <members> contiennent quant à elle la metadata elle-même que l’on souhaite transférer. Généralement, cela correspond à l’API Name de cette metadata.

Mais parfois, il faut préfixer avec le nom de l’objet. Dans le cas des règles de workflow, cela peut se compliquer. Au lieu de l’API Name, il faut indiquer le nom. Celui-ci peut inclure des espaces ou des caractères spéciaux comme des parenthèses ouvrante (%5B) ou fermante (%5D).

Voici quelques cas courants :

Extraire et importer des metadata avec Workbench

Outre le Change Set, un autre outil permet également de déployer des metadata sans la moindre installation. Il s’agit du workbench qui s’appuie sur la Metadata API . Il est accessible via l’URL suivante : https://workbench.developerforce.com/login.php

Une fois connecté, il faut se rendre dans le menu Migration et choisir parmi Deploy ou Retrieve.

Workbench Menu Deploy Retrieve

Nous allons d’abord vouloir extraire les metadata de l’environnement source via un Retrieve :

Workbench Recherche Package XML

Après avoir sélectionné le package XML (constitué comme évoqué un peu plus haut), cliquer sur Next puis sur Retrieve :

Workbench Bouton Retrieve

Si tout se passe bien, il ne reste plus qu’à télécharger le fichier .ZIP généré :

Workbench Download ZIP

Le fichier .ZIP contient le package XML ainsi que des dossiers par type de metadata :

Workbench Contenu ZIP

Après avoir extrait les métadonnées de l’environnement source, il faut se connecter à l’environnement cible en utilisant Workbench mais avec l’option Migration | Deploy. Recherchez ensuite le fichier .zip que l’on vient de récupérer :

Workbench Recherche ZIP

N.B. : penser à cocher la case Single Package afin que Workbench puisse détecter le fichier package.xml à la racine du ZIP. Il le recherche dans un sous-dossier sinon et ne le trouve pas.

Après avoir cliqué sur Next puis Deploy, les metadata sont importées dans l’environnement cible.

Supprimer des metadata avec Workbench

En dehors du fait qu’il soit moins intégré que les change set (nécessité de se connecter à une autre URL), le workbench effectue les mêmes tâches que le change set. Il va même au-delà puisqu’il est capable de supprimer de la métadonnée.

Pour ce faire, il faut créer un fichier .zip constitué de 2 fichiers à la racine de ce ZIP :

Workbench Destructive Package
Destructive Package

Le fichier destructiveChanges.xml possède un contenu qui correspond au fichier package.xml que l’on utilise pour extraire/importer. C’est donc dans ce fichier que l’on précise les metadata à supprimer.

Il faut par ailleurs la présence d’un fichier package.xml ne contenant rien :

Workbench Empty Package
Package vide

La suppression via le Workbench consiste à effectuer un deploy avec ce fichier .ZIP :

Workbench Destructive Settings

Voilà, nous venons de supprimer les métadonnées ciblées !

Dans l’article précédent, nous avons parlé du déploiement via Change Set. Nous venons d’abordé la Metadata API ainsi que le déploiement via Workbench.
Le prochain article qui conclura cette thématique se consacrera au déploiement via Ant Migration Tool et quelques mots sur son successeur SFDX.