Checkpoint del Módulo 11
La entrega: abrir la «caja cerrada» que llamaba al ERP y rehacerla bien. Petición con su formato, código de estado comprobado, respuesta leída con moldes, y marcar como enviadas solo las renovaciones que el ERP aceptó.
✓ En esta sub-lección
- 01Montar una petición POST con cuerpo JSON y su cabecera.
- 02Leer una respuesta con listas y objetos anidados.
- 03Actuar registro a registro según lo que respondió el otro sistema.
La nutria: ¿Te acuerdas? · Repaso de la lección 6
¿Qué impide que un reintento se convierta en un bucle infinito?
Durante tres módulos, el código que enviaba las renovaciones al ERP fue una caja cerrada. Ábrela: envía sin decir en qué formato, no mira el código de estado, no lee la respuesta y marca todo como enviado. Y el ERP lleva meses contestando con algo que nadie leía: qué renovaciones aceptó y cuáles rechazó, con su motivo.
| Pieza | Qué hace en la entrega | Tarea |
|---|---|---|
| HttpRequest + Http | POST con el cuerpo y la cabecera Content-Type. | 1 |
| getStatusCode() | Si no es 200, excepción: no se lee ni se marca nada. | 1 |
| JSON y moldes | La lista accepted y la lista de objetos rejected. | 2 |
| Named Credential | callout:ERP: ni dirección ni clave en el código. | 3 |
| Callout antes que DML | Primero la respuesta, después el update. | 6 |
- ERP-100
- ERP-200
- ERP-300
Paso 1 de 4
Tres renovaciones pendientes de enviar. Pulsa Reproducir.
Un molde con una lista dentro
// {"accepted":["ERP-100"],"rejected":[{"erpCode":"ERP-200","reason":"Cliente bloqueado"}]}
public class Rejection {
public String erpCode;
public String reason;
}
public class PushResult {
public List<String> accepted; // una lista de textos
public List<Rejection> rejected; // una lista de objetos, cada uno con su molde
}La nutria: ¿Y por qué no un Flow? Aquí está la frontera
Lo que viene: el Módulo 12
En la tarea 4 escribiste with sharing sin saber del todo qué hacía. El último módulo va de eso: Apex puede ejecutarse con más poder que el usuario que lo dispara, y asegurarte de que no enseña ni cambia lo que ese usuario no debería tocar es responsabilidad tuya. Es el Módulo 12, y con él se desbloquea el Desafío 2.