Declaraciones DML
Están disponibles las siguientes declaraciones DML.
- insert
- update
- upsert
- delete
- undelete
- merge
Cada declaración DML acepta un único sObject o una lista (o conjunto) de sObjects. La realización de operaciones en una lista de sObjects es un método más eficiente para procesar los registros.
Todas estas declaraciones, a excepción de un par, son operaciones de base de datos conocidas. Las declaraciones upsert y merge son específicas de Salesforce y pueden ser de gran utilidad.
La operación DML upsert crea registros y actualiza los registros de sObject en una sola declaración mediante un campo especificado para determinar la presencia de objetos existentes o el campo de Id. si no se ha especificado ningún campo.
La declaración merge combina hasta tres registros del mismo tipo de sObject en uno de los registros mediante la eliminación de los demás y la reorganización jerárquica de todos los registros relacionados.
Asignación automática de campos de Id. a registros nuevos
Al insertar registros, el sistema asigna un Id. a cada registro. Además de garantizar la persistencia del valor de Id. en la base de datos, el valor de Id. se completa automáticamente en la variable de sObject usada como argumento en la llamada a DML.
En este ejemplo se muestra cómo obtener el Id. en el sObject correspondiente a la cuenta insertada.
// Create the account sObject
Account acct = new Account(Name='Acme', Phone='(415)555-1212', NumberOfEmployees=100);
// Insert the account by using DML
insert acct;
// Get the new ID on the inserted sObject argument
ID acctID = acct.Id;
// Display this ID in the debug log
System.debug('ID = ' + acctID);
// Debug log result (the ID will be different in your case)
// DEBUG|ID = 001D000000JmKkeIAF
DML masivo
Puede realizar operaciones DML en un solo sObject o bien de forma masiva en una lista de sObjects. La realización de operaciones DML masivas es el método recomendado, ya que contribuye a evitar que se alcancen los límites regulados, como el límite de DML de 150 declaraciones por cada transacción de Apex. Este límite se establece para garantizar el acceso equilibrado a los recursos compartidos de la plataforma de múltiples arrendatarios Force.com. La realización de una operación DML en una lista de sObjects se corresponde con una sola declaración DML para todos los sObjects de la lista a diferencia de una sola declaración para cada sObject.
En este ejemplo se insertan contactos de forma masiva mediante la inserción de una lista de contactos en una sola llamada. A continuación, estos contactos también se actualizan de forma masiva.
Comentarios
Publicar un comentario