Skip to main content
Join the Agentforce Hackathon on Nov. 18-19 to compete for a $20,000 Grand Prize. Sign up now. Terms apply.

Ejecutar consultas SOQL y SOSL

Objetivos de aprendizaje

Después de completar esta unidad, podrá:
  • Ejecutar una consulta SOQL mediante Query Editor o en el código Apex.
  • Ejecutar una búsqueda SOSL mediante Query Editor o en el código Apex.
Nota

Nota

¿Su idioma de aprendizaje es español? Comience el reto en un Trailhead Playground en español y utilice las traducciones proporcionadas entre paréntesis para navegar. Copie y pegue solo los valores en inglés, ya que las validaciones del reto se basan en los datos en inglés. Si no aprueba el reto en su organización en español, le recomendamos que (1) cambie la configuración regional a Estados Unidos, (2) cambie el idioma a inglés, siga las instrucciones descritas aquí y, a continuación, (3) vuelva a hacer clic en el botón Check Challenge (Comprobar el reto).

Consulte la insignia Trailhead en su idioma para obtener más información sobre cómo aprovechar la experiencia de Trailhead en otros idiomas.

¿Qué es una consulta SOQL?

SOQL es el lenguaje de consulta de objetos de Salesforce. Puede usar SOQL para leer la información almacenada en la base de datos de su organización. SOQL es similar desde el punto de vista sintáctico a SQL (lenguaje de consulta estructurada).

Puede escribir y ejecutar una consulta SOQL en el código Apex o en la ficha Query Editor de Developer Console.

Ejecutar una consulta SOQL

Antes de empezar a escribir y ejecutar consultas, necesita tener algunos datos en su organización de Salesforce para poder hacer búsquedas. Vamos a agregar los detalles de contacto de tres ingenieros de control enviados por el mando de control de misiones para maniobrar la nave espacial con el fin de esquivar el asteroide 2014 QO441.
  1. Seleccione Debug (Depurar) | Open Execute Anonymous Window (Abrir ventana de ejecución anónima).
  2. Copie, pegue y ejecute el siguiente código. Con este código se agregan los detalles de contacto de los tres ingenieros de control al objeto Contacto de la base de datos.
    // Add first contact and related details
    Contact contact1 = new Contact(
       Firstname='Quentin',
       Lastname='Foam',
       Phone='(415)555-1212',
       Department= 'Specialty Crisis Management',
       Title='Control Engineer - Specialty - Solar Arrays',
       Email='qfoam@trailhead.com');
    insert contact1;
    // Add second contact and related details
    Contact contact2 = new Contact(
       Firstname='Vega',
       Lastname='North',
       Phone='(416)556-1312',
       Department= 'Specialty Crisis Management',
       Title='Control Engineer - Specialty - Propulsion',
       Email='vnorth@trailhead.com');
    insert contact2;
    // Add third contact and related details
    Contact contact3 = new Contact(
       Firstname='Palma',
       Lastname='Sunrise',
       Phone='(554)623-1212',
       Department= 'Specialty Crisis Management',
       Title='Control Engineer - Specialty - Radiators',
       Email='psunrise@trailhead.com');
    insert contact3;
    Ahora, podemos usar Query Editor para escribir y ejecutar una consulta SOQL con el fin de buscar a estos ingenieros de control. Las consultas SOQL permiten buscar datos en objetos específicos. Puede agregar una condición opcional en la cláusula WHERE para limitar la búsqueda.
  3. Introduzca la siguiente consulta en la ficha Query Editor.
    SELECT Name, Phone, Email, Title FROM Contact
                                     WHERE (Department = 'Specialty Crisis Management')
  4. Haga clic en Execute (Ejecutar).

Los resultados muestran los detalles de los contactos que trabajan en el departamento especializado en el control de crisis.

Resultados de la consulta SOQL

Puede usar otra consulta SOQL para buscar contactos de otros departamentos o para ver si alguien más ha creado registros para otros ingenieros de control. Para volver a ejecutar una consulta, haga clic en Refresh Grid (Actualizar tabla) en el panel Query Results (Resultados de consulta).

Una consulta SOQL que se ejecuta mediante el código Apex se llama consulta SOQL en línea. Veamos cómo puede usar Developer Console para buscar contactos del departamento especializado en el control de crisis mediante una consulta SOQL en línea.

Esta vez, vamos a intentar ordenar los resultados alfabéticamente por nombre.
  1. Seleccione Debug (Depurar) | Open Execute Anonymous Window (Abrir ventana de ejecución anónima).
  2. Introduzca el siguiente código.
    Contact[] theseContacts = [SELECT Name, Phone, Email, Description FROM Contact
                               WHERE (Department='Specialty Crisis Management')
                               ORDER BY Name];
    // Log a count of how many contacts were found
    System.debug(theseContacts.size() + ' contact(s) returned.');
    // Log all values in the array of contacts
    System.debug(theseContacts);
  3. Una vez ejecutado el código, abra el registro.
  4. Para ver solamente los mensajes USER_DEBUG, seleccione Debug Only (Solo depurar). Los resultados muestran el número de cuentas devueltas y los detalles de contacto por orden alfabético.

Para profundizar en las consultas SOQL, consulte el módulo Fundamentos y base de datos de Apex.

SOSL es el lenguaje de búsqueda de objetos de Salesforce, el cual permite realizar búsquedas de texto en los registros. A diferencia de SOQL, SOSL permite consultar múltiples tipos de objetos al mismo tiempo. Además, en el caso de SOSL, es posible usar una palabra coincidente para establecer la coincidencia con campos, mientras que SOQL requiere la frase exacta.

Cuando ejecuta una búsqueda SOSL de registros de contacto con la palabra “Crisis”, se busca en todos los campos de contacto y se devuelve cualquier registro que contenga esta palabra. Sin embargo, si intenta hacer lo mismo en una consulta SOQL, debe especificar los campos y la palabra o frase completas que se deben buscar. También tiene la posibilidad de usar LIKE o comodines para limitar las búsquedas SOQL o SOSL.

  1. En la ficha Query Editor, introduzca la siguiente consulta SOSL. Observe que en la consulta solo se incluye el nombre parcial del departamento especializado en el control de crisis.
    FIND {Crisis} IN ALL FIELDS RETURNING Contact(FirstName, LastName, Phone, Email, Title)
  2. Ejecute la consulta y observe los resultados en el panel Search Results (Resultados de búsqueda). Resultados de la consulta SOQL
Al igual que en el caso de las consultas SOQL, puede ejecutar búsquedas SOSL en el código Apex.
  1. Seleccione Debug (Depurar) | Open Execute Anonymous Window (Abrir ventana de ejecución anónima).
  2. Ejecute el siguiente código.
    List<List<sObject>> searchList = [FIND 'Crisis' IN ALL FIELDS 
                                      RETURNING Contact(FirstName, LastName,
                                      Phone, Email, Description)];
    Contact[] searchContacts = (Contact[])searchList[0];
    System.debug('Found the following contacts:');
    for (Contact c : searchContacts) {
       System.debug(c.LastName + ', ' + c.FirstName);
    }
  3. Abra el registro y seleccione la opción Debug Only (Solo depurar).

En Execution Log (Registro de ejecución) se incluyen los nombres de los ingenieros de control.

Para obtener más información sobre cómo funcionan las búsquedas SOSL, consulte el módulo Fundamentos y base de datos de Apex.

Mientras estaba realizando pruebas con SOQL y SOSL, los ingenieros de control cuyos registros ha buscado han logrado desviar la nave espacial de la trayectoria del asteroide. A fin de cuentas, puede que estar al mando de una nave espacial no sea tan difícil. ¡Solo necesita una buena consola y aprender a delegar!

Ahora que ha conseguido evitar la colisión con el asteroide 2014 QO441, decide aterrizar en la estación espacial de Neptuno para disfrutar de un merecido descanso. Con los conocimientos adquiridos sobre las distintas funciones y opciones de Developer Console, puede guiar su organización en muchas misiones con éxito.

Comparta sus comentarios sobre Trailhead en la Ayuda de Salesforce.

Nos encantaría conocer su experiencia con Trailhead. Ahora puede acceder al nuevo formulario de comentarios cuando quiera desde el sitio de la Ayuda de Salesforce.

Más información Continuar para compartir comentarios