Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Las listas contienen una colección ordenada de objetos. Las listas en Apex son
equivalentes a conjuntos y ambos elementos se pueden usar de forma
intercambiable.
Copy
Copy
En general, es más fácil crear una lista que un conjunto, ya que las listas no
requieren que determine por anticipado cuántos elementos necesita asignar.
moreColors.add('orange');
moreColors.add('purple');
Llamar a un método estático
Dado que el método sendMail() de nuestra clase no tiene acceso a las variables de
miembro de clase, no es necesario que sea un método de instancia. Vamos a cambiarlo a un
método estático mediante la adición de la palabra clave static a su declaración. Es más
fácil llamar a los métodos estáticos que a los métodos de instancia, ya que no necesitan ser
llamados en una instancia de la clase, sino que se llama directamente en el nombre de la
clase.
Copy
Copy
En el siguiente ejemplo se crea una variable de sObject del tipo cuenta y se asigna
a una cuenta nueva con el nombre Acme.
insert acct;
Copy
Declaraciones DML
Están disponibles las siguientes declaraciones DML.
insert
update
upsert
delete
undelete
merge
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.
insert acct;
ID acctID = acct.Id;
// DEBUG|ID = 001D000000JmKkeIAF
Alteración de registros
Si tiene una lista con una combinación de registros nuevos y existentes, puede
procesar inserciones y actualizaciones para todos los registros de la lista mediante
la declaración upsert . La alteración permite evitar la creación de registros
duplicados y ahorrar tiempo, ya que no necesita determinar qué registro existe
primero.
Sintaxis de upsert
Copy
En este ejemplo se muestra cómo eliminar todos los contactos con el apellido
Smith. Si realiza las acciones del ejemplo en el caso de DML masivo, su
organización ya debería tener dos contactos con el apellido Smith. Ejecute este
miniprograma en la consola de desarrollador mediante Apex anónimo y, a
continuación, verifique que ya no hay contactos con el apellido Smith.
delete contactsDel;
En este ejemplo se produce una excepción del tipo DmlException porque se intenta
insertar una cuenta sin el campo Nombre obligatorio. La excepción se captura en
un bloque de captura.
try {
insert acct;
} catch (DmlException e) {
e.getMessage());
}
Database.insert()
Database.update()
Database.upsert()
Database.delete()
Database.undelete()
Database.merge()
Database.insert(recordList, false);
Copy
Database.insert(recordList);
Copy
Y:
Database.insert(recordList, true);
Copy
// Query for the contact, which has been associated with an account.
FROM Contact
LIMIT 1];
queriedContact.Phone = '(415)555-1213';
queriedContact.Account.Industry = 'Technology';
update queriedContact;
update queriedContact.Account;
delete queriedAccounts;
Copy
Recursos
Copy
Copy
1. SELECT Name,Phone :en esta parte se incluyen los campos que desea
recuperar. Los campos se especifican después de la palabra clave SELECT
en una lista delimitada por comas. O bien, puede especificar un solo
campo, en cuyo caso no es necesario el uso de comas (por
ejemplo, SELECT Phone ).
2. FROM Account : en esta parte se especifica el objeto estándar o
personalizado que desea recuperar. En este ejemplo, es Account. En el
caso de un objeto personalizado llamado Invoice_Statement, es
Invoice_Statement__c.
Este es otro ejemplo con una condición más compleja. Esta consulta devuelve
todas las cuentas SFDC Computing o todas las cuentas con más de 25 empleados
cuya ciudad de facturación es Los Angeles.
Para invertir el orden, use la palabra clave DESC para aplicar el orden
descendente:
ORDER BY Name
LIMIT 10
Copy
ORDER BY Name
LIMIT 10];
System.debug(accts);
SELECT Name, (SELECT LastName FROM Contacts) FROM Account WHERE Name =
'SFDC Computing'
Copy
El bucle for de SOQL itera sobre todos los registros sObject devueltos por una
consulta SOQL. La sintaxis de un bucle for de SOQL es:
for (variable : [soql_query]) {
code_block
Copy
O bien:
code_block
Copy
Tanto variable como variable_list deben ser del mismo tipo que los sObjects
devueltos por soql_query .
Es preferible usar el formato de lista de sObjects del bucle for de SOQL, ya que el bucle for
se ejecuta una vez para cada lote de 200 sObjects. Esto le permite trabajar con lotes de
registros y realizar operaciones DML por lotes, lo que permite evitar alcanzar los límites
regulados.
// The sObject list format executes the for loop once per returned batch
// of records
Integer i=0;
Integer j=0;
for (Account[] tmp : [SELECT Id FROM Account WHERE Name LIKE 'for loop
_']) {
j = tmp.size();
i++;
}
// named 'yyy'
Sintaxis de desencadenadores
La sintaxis de una definición de desencadenador es distinta de la sintaxis de una
definición de clase. La definición de un desencadenador empieza por la palabra
clave trigger . A continuación, le siguen el nombre del desencadenador, el objeto
de Salesforce con el que está asociado el desencadenador y las condiciones en
las que este se activa. Un desencadenador tiene la siguiente sintaxis:
code_block
Copy
Para ejecutar un desencadenador antes o después de operaciones de inserción,
actualización, eliminación y recuperación, especifique varios eventos de
desencadenador en una lista separada por comas. Los eventos que se pueden
especificar son:
before insert
before update
before delete
after insert
after update
after delete
after undelete
visualforce
An Example Visualforce Page
<apex:form >
<apex:pageBlockSection columns="1">
<apex:inputField value="{!Contact.FirstName}"/>
<apex:inputField value="{!Contact.LastName}"/>
<apex:inputField value="{!Contact.Email}"/>
<apex:inputField value="{!Contact.Birthdate}"/>
</apex:pageBlockSection>
<apex:pageBlockButtons >
</apex:pageBlockButtons>
</apex:pageBlock>
</apex:form>
</apex:page>