Las clases y los desencadenadores de Apex no se pueden eliminar de una organización producción con un simple click, a diferencia de las organizaciones de sandbox. Entonces, ¿Cómo se eliminan las clases y los triggers de Apex de una organización de producción?
Tenemos varios métodos:
- Mediante workbench
- Con ayuda de SFDX, o a la CLI de Salesforce
- Con la herramienta de migración de lightning (ANT)
En este artículo os vamos a explicar como hacerlo con workbench y con SFDX dada su “simplicidad”
Pasos a seguir en todos los casos:
- Crear una carpeta «destructiveChanges», aqui guardaremos todo los archivos necesarios para nuestro cometido.
- Luego, en un editor de texto copia y pega el texto a continuación y guardalo como un archivo nombrado «package.xml».
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<version>49.0</version>
</Package>
El número de versión debe ser el más actual.
3. Luego crea un nuevo archivo y copia a continuación:
<?xml version = "1.0" encoding = "utf-8"?> <Package xmlns = "http://soap.sforce.com/2006/04/metadata"> <types> <members><Nombre de las clases a eliminar></members> <name>ApexClass</name> </types> <types> <members><Nombre del trigger/s a eliminar></members> <name>ApexTrigger</name> </types> <version>49.0</version> </Package>
Crea tantos <members> como clases o triggers tengas que eliminar.
- Guarda este archivo como «destructiveChanges.xml»
- Ahora debería haber dos archivos en la carpeta. Abre la carpeta y selecciona los dos archivos XML, haz clic derecho y selecciona «Enviar a → Carpeta comprimida» y crea un archivo llamado package.zip.
- Ahora ya está todo preparado para implementar el archivo «destructiveChanges.xml» en Salesforce.
Método 1 – Workbench
- Abre la url https://workbench.developerforce.com/ e inicia sesión con las credenciales de producción.
- Selecciona Migración → Implementar.
- Haz clic en «Examinar» y selecciona el archivo package.zip.
- Marcamos ‘Revertir en caso de error’, ‘Paquete individual’ y selecciona Nivel de prueba con ‘RunLocalTests’.
- Finalmente, selecciona «Siguiente», los resultados de éxito o error se mostrarán en Workbench después de que se complete el proceso de implementación.
Método 2 – SFDX
Ejecuta el siguiente en el terminal, en el directorio que hay por encima de destructiveChanges.
- Si vas a ejecutar un test en concreto:
sfdx force:mdapi:deploy -d /destructiveChanges -l RunSpecifiedTests -r <testclass> -u <production_org> -w -1 -c
- Si deseas ejecutar todos los test para ver que no has roto nada:
sfdx force:mdapi:deploy -d /destructiveChanges -l RunLocalTests -u <production_org> -w -1 -c
El parámetro -c es para realizar la validación antes de hacer el deploy, si todo ha ido bien lo podéis eliminar del comando y volverlo a lanzar.
Y esto es todo, ¡espero que os haya servido de utilidad!