Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores, consultores, administradores y arquitectos de Salesforce para toda Iberoamérica.
El enlace a la publicación original, lo encontrarás al final de este artículo.
…
Una forma familiar y productiva de explorar la forma de sus datos
Para muchos de nosotros, la semántica SQL y la exploración de datos van de la mano. Tanto si tiene experiencia en trabajar directamente con bases de datos como si ha desarrollado experiencia utilizando SOQL, el lenguaje de consulta propio de Salesforce, la capacidad de escribir una consulta y obtener datos de ella es inmensamente valiosa. Por eso nos complace presentar una nueva y sencilla forma de explorar los datos de sus objetos de Salesforce: la función SOQL FIELDS()
La función FIELDS() permite a los autores de sentencias SOQL designar una agrupación predefinida de columnas que se devolverán automáticamente en el conjunto de registros resultante. FIELDS() proporciona una forma de aprovechar las construcciones existentes de la plataforma que desvincula la gestión de datos de la lógica empresarial en las integraciones y ayuda a reducir el esfuerzo que supone administrar el modelo de objetos de una org.
Ahora, cualquiera que escriba una consulta puede emplear simplemente una cláusula «SELECT FIELDS(ALL)» para consultar todos los campos, estándar o personalizados, de un objeto. Al igual que «SELECT *» proporciona al lenguaje SQL una forma sencilla de recuperar datos de todas las columnas de una tabla, la función FIELDS() de SOQL ofrece a cualquiera, ya sea un desarrollador, un administrador o un usuario final curioso, una forma escalable y segura de explorar todos los campos de un objeto.
Consulta más datos con menos código
Antes, consultar datos con una lista de campos en un objeto podía ser un proceso algo complicado. Tenías que escribir una consulta muy detallada si necesitabas un gran número de campos en tu resultado, y si no conocías todos los campos de un objeto, tenías que entender primero la forma de ese objeto y escribir tu consulta después. Con SOQL FIELDS(), ahora tienes un camino sencillo para sumergirte en tus datos para extraer información valiosa y explorar el contenido de los datos de un objeto.
Como ejemplo, digamos que usted trabaja en una empresa que produce vehículos eléctricos, y necesita extraer datos de un objeto personalizado «Vehicles__c» que un compañero de equipo ha construido en Salesforce. Antes de SOQL FIELDS(), podría haber tenido que preguntar a ese compañero de equipo por la forma de ese objeto, explorar sus campos en el Gestor de objetos antes de escribir su consulta, o realizar una llamada a describe(). Y si querías obtener datos de casi todos los campos de ese objeto, tendrías que escribir una consulta SOQL bastante larga para que funcionara. Ahora, hay un camino más fácil. Con sólo una llamada a la API simplemente construida como:
sfdx force:data:soql:query -q "SELECT FIELDS(ALL) FROM Vehicle__c LIMIT 5" -u DevHub
puedes consultar todos los campos del objeto personalizado «Vehículo». No necesitas molestar a un compañero de equipo o desplazarte por el Gestor de objetos – la función SOQL FIELDS() te permite entrar directamente. Y si quiere ser más preciso, como mezclar la Función FIELDS() en una consulta sobre un objeto estándar, también tiene esa flexibilidad:
SELECT Nombre, Id, FIELDS(CUSTOM) FROM Cuenta LIMIT 25
Con esta consulta, puedes sacar todos los campos personalizados del objeto Cuenta junto a algunos campos estándar como Nombre o Id. Asimismo, podrías emplear:
<código>SELECCIONAR SUSCRIPCIÓN__c, CAMPOS(ESTÁNDAR) DE LA CUENTA</código>
Para coger fácilmente los datos de un campo personalizado «Suscripción» en el objeto Cuenta, junto con todos los campos estándar que hay también. En cualquier caso, está escribiendo menos código para obtener más claridad en torno a sus datos.
Como puede ver, FIELDS() es una función conveniente que puede simplificar los casos de uso de exploración de datos. La función también puede acelerar las integraciones de plataformas promoviendo el acoplamiento suelto entre el código que escriben los desarrolladores y los casos de uso a mano, al tiempo que mejora la capacidad de mantenimiento del software. Por ejemplo, la representación de datos para un modelo de objetos dinámico y en constante cambio puede dar lugar a iteraciones continuas de las consultas subyacentes o a viajes adicionales al servidor para realizar una llamada de descripción que garantice que no se deja ningún campo. La función FIELDS() es consciente de las agrupaciones de columnas limitadas y no limitadas para ayudar a salvaguardar el rendimiento. Un despliegue bien diseñado de FIELDS() optimizará los recursos necesarios para recuperar los datos con los implicados en el procesamiento y el trabajo con los resultados con el fin de soportar mejor el caso de uso dado.
Conseguir que las consultas SOQL sean sencillas, escalables y seguras
La función FIELDS() es la última mejora del lenguaje SOQL, y un fantástico complemento a otros cambios recientes que puede haber pasado por alto, todos los cuales hacen que el acceso a los datos de Salesforce sea más fácil y potente que nunca. En primer lugar, hemos actualizado recientemente los límites de caracteres de SOQL de 25K caracteres a 100K caracteres, lo que permite a los autores de consultas ser más completos con sus operaciones de consulta. Con los nuevos límites de caracteres y FIELDS(), continuamos reforzando nuestra práctica de reducir la fricción al operar con datos en la plataforma Salesforce, al tiempo que le permitimos hacer más cosas con menos código, llamadas o caracteres, de lo que hablamos el año pasado en nuestra sesión de la API de TDX20.
También hemos introducido recientemente el SOQL Query Builder, un nuevo plug-in de VS Code ahora en Beta que facilita la escritura y ejecución de consultas directamente desde VS Code. Para los desarrolladores, esto significa menos cambio de herramientas y contextos en su trabajo, y para muchos administradores o usuarios empresariales, indica una barrera de entrada más baja para trabajar intuitivamente con sus datos de Salesforce. Como el SOQL Query Builder está en fase beta, sólo estamos empezando a rascar la superficie de las formas más fáciles de trabajar con sus datos, pero agradecemos sus comentarios y le animamos a prestar atención a algunas cosas interesantes que están sucediendo en este espacio.
Por último, pero no menos importante, la función FIELDS() es extensible y segura. Aunque su naturaleza es similar a la de «SELECT *» mencionada anteriormente, observará los estándares de seguridad de Salesforce, como la aplicación de la seguridad a nivel de campo dentro de sus operaciones de API de consulta, que garantizan que los usuarios sólo vean resultados que respeten sus privilegios de acceso a los datos. También estamos diseñando FIELDS() como una operación de consulta que se ampliará para admitir nuevos casos de uso en el futuro, por lo que si la perspectiva de formas más intuitivas de aprovechar las agrupaciones predefinidas (o incluso los conjuntos) de campos en la plataforma le entusiasma, entonces querrá estar atento a este espacio y seguir recibiendo comentarios
La función SOQL FIELDS() está generalmente disponible a partir de la versión Spring ’21. Para obtener información de uso específica y consideraciones de rendimiento, consulte el tema FIELDS() dentro de la Guía del desarrollador de SOQL.
Sobre el autor
Kris Harrison es directora de gestión de productos para API, SOQL y servicios externos en Salesforce.
Complete el curso Learn MOAR Spring ’21 trailmix for Admins or Developers antes del 31 de marzo de 2021 para obtener una insignia especial de la comunidad y participar para tener la oportunidad de ganar 1 de los 5 vales de certificación Trailhead de 200 USD. Consulte las reglas oficiales a continuación.
Comparte lo que te gusta del lanzamiento de primavera ’21 con el hashtag #LearnMOAR. Además, no olvide inscribirse en Release Readiness Live que tendrá lugar el 29 de enero de 2020.
…
Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2021/01/new-soql-fields-function-is-ga.html