Realmente agradecería que alguien me guíe para verificar si un campo en particular está incluido en la llamada de actualización dentro de un disparador de actualización anterior/posterior. Muchas gracias.Disparadores de Salesforce Apex: cómo comprobar si el campo está incluido en el desencadenador de actualización.
11
A
Respuesta
13
Todos los campos están siempre presentes en el desencadenador independientemente de si están sucios o no, para determinar si un campo específico ha sido modificado, debe recuperar una versión anterior de la fila usando oldMap
que es Map<ID, sObject>
y comparar el valores en viejo y nuevo. Por ejemplo
trigger CaseOnParticularFieldUpdate on Case (before update) {
for (Case c: Trigger.new) {
Case oldCase = Trigger.oldMap.get(c.ID);
if (c.Field != oldCase.Field) {
// field was updated, do some magic here
}
}
}
1
El disparador incluirá todos los campos de ese objeto para el que se invoca. Puede verificar el valor anterior (antiguo) y el valor actual (nuevo) de cualquier campo en ese objeto y puede compararlo y puede realizar la operación en consecuencia.
Espero que te ayude.
Cuestiones relacionadas
- 1. Salesforce Apex Trigger "isAPI" Variable de contexto
- 2. cómo comprobar si el campo de archivo está vacío?
- 3. objetivo comprobar si el campo de texto está vacío
- 4. Creación de aplicaciones de estilo OLAP con SalesForce/Apex
- 5. ¿Cómo detecto el entorno en Salesforce?
- 6. Nodejs cómo detectar si el módulo está incluido
- 7. Cómo determinar si algo cambió en el desencadenador de actualización en t-sql
- 8. Comprobando el campo Fecha en blanco en Salesforce
- 9. ¿Cómo comprobar si un script está incluido a través de dofile() o ejecutar directamente en Lua?
- 10. Compruebe si jQuery está incluido en el encabezado (Joomla)
- 11. ¿Admite Salesforce Apex la herencia de métodos estáticos?
- 12. Comprobar si el cronómetro está funcionando
- 13. ¿Cómo comprobar los permisos CRUD del usuario para un objeto en Salesforce?
- 14. Comprobar si el subproceso está en el contexto Gui
- 15. ¿Cómo comprobar si un hash está "completamente" incluido en otro hash?
- 16. Auto incluye el archivo javascript si no está incluido
- 17. Cómo comprobar si el seguimiento de cambios está habilitado
- 18. Comprobar si el proceso se está ejecutando
- 19. ¿Cómo comprobar si el socket está cerrado en Boost.Asio?
- 20. ¿Cómo comprobar si el objeto JSON está vacío en PHP?
- 21. Cómo comprobar si el compilador JIT está desactivado en Java
- 22. Cómo comprobar si el valor está en la lista
- 23. ¿Cómo comprobar si el objeto JSON está vacío en Java?
- 24. Disparadores SQL: ¿cómo obtengo el valor actualizado?
- 25. Incluir jQuery, si no está incluido ya
- 26. Eliminar línea si el campo está duplicado
- 27. ¿Cómo comprobar si UITextFields está vacío?
- 28. Crear campo de autoincrement con desencadenador y secuencia en Postgres
- 29. La actualización no funciona en SalesForce API
- 30. Comprobar si el campo XML de SQL Server 2005 está vacía
gracias Soy consciente de cómo comprobar si se modifican los datos de campo. mi pregunta, sin embargo, está relacionada con este escenario. Lista aclist = [seleccione id, nombre, correo electrónico__c de la cuenta]; for (Cuenta a: aclist) { \t a.email__c = a.name+'@gmail.com '; } aclist de actualización; ahora lo que sucedería cuando se ejecuta este disparador: gatillo en cuenta (antes de la actualización) { \t para (una cuenta de: trigger.new) \t { \t \t si (a.accountNumber == null) \t \t { \t \t \t a.accountnumber = 'NA'; \t \t} \t}} serán los campos ACCOUNTNUMBER para las cuentas que son se cambiará actualización? –
Sí. Como dije, trigger incluye TODOS los campos sObject. No es como la extensión visualforce/apex que solo precarga los campos referenciados en VF. – mmix