Distingue persona, operación e intento
Una persona puede enviar dos solicitudes legítimas. Dos personas pueden compartir el correo de administración. Usa un identificador para el contacto, otro para la solicitud y otro para cada intento técnico. Deducir que todo correo repetido es una solicitud duplicada puede hacerte perder trabajo real.
Ejemplo ficticio: contacto C-08 envía solicitudes S-100 y S-101. S-100 se entrega dos veces porque el origen repite el aviso. Deben quedar dos solicitudes, aunque haya tres entregas. El segundo intento de S-100 conserva el resultado del primero; S-101 se trata como operación distinta.
Elige una clave que puedas conservar en todo el recorrido
Aprovecha el identificador estable del evento o documento del origen. Si no existe, define una clave con campos cuya combinación represente esa operación y documenta sus límites. Un hash del archivo detecta una copia idéntica, pero una nueva exportación del mismo pedido puede tener otro hash.
No uses el nombre o el importe como única prueba. Tampoco elimines ceros o cambies mayúsculas en referencias sin conocer sus reglas. Los casos dudosos se marcan para revisión y se conservan por separado hasta contrastarlos con el origen.
| Situación | Qué comprobar | Respuesta propuesta |
|---|---|---|
| Misma clave y mismos datos | Resultado ya guardado | Devolver o mostrar el resultado anterior. |
| Misma clave y datos distintos | Versión o corrección legítima | Detener y revisar; no sobrescribir en silencio. |
| Clave nueva con correo conocido | Solicitud diferente | Vincular al contacto sin descartar la solicitud. |
| Sin clave fiable | Referencia de origen recuperable | Revisión humana antes de una acción irreversible. |
Protege también la escritura simultánea
Buscar si existe y luego crear no basta cuando dos ejecuciones hacen lo mismo a la vez. En una implementación propia, la exclusividad debe apoyarse en una restricción única o una operación atómica del registro que coordina el trabajo. Si el destino ofrece una clave de idempotencia, revisa su alcance y cuánto tiempo la conserva.
Registra estados como recibido, en curso, completado y pendiente de conciliación. Tras un corte incierto, consulta el destino con la referencia guardada. Si no permite buscarla, detén el reintento automático y deja una tarea de revisión. Repetir sin saber qué ocurrió es especialmente delicado en mensajes, documentos y pagos.
Ensaya cinco situaciones antes de activar
Envía una operación normal y comprueba su destino. Repite el mismo evento; entrega dos copias a la vez; corta la respuesta después de escribir; y vuelve a enviar la misma referencia con un dato cambiado. Guarda el número de registros final y el historial de cada intento.
El criterio del ejemplo es una sola alta para cada solicitud y ninguna corrección aplicada sin la regla acordada. Si la plataforma no permite provocar un corte de forma controlada, prueba esa rama con un simulador y deja constancia del límite. El generador de planes de pruebas de MENOS incluye estos casos para que puedas adaptarlos.
Fuentes y documentación
Las recomendaciones de esta guía son de MENOS. Estos documentos permiten comprobar las funciones de las herramientas que se mencionan.