Crear la visualización del mapa de la cuenta y combinar todos los elementos
Objetivos de aprendizaje
- Describir los comandos de Salesforce CLI que se usan para sincronizar su proyecto con las organizaciones borrador.
- Describir el comando de Salesforce CLI para crear un conjunto de permisos.
- Comprender cómo se crea una aplicación mediante el uso de componentes de Aura.
¿Qué estamos creando?
En este paso, crearemos los componentes finales de nuestra aplicación de geolocalización, lo cual reúne todas las funciones. Crearemos un componente de Aura que visualiza las direcciones de la cuenta como marcadores en un mapa y crearemos una ficha personalizada para poder navegar hacia nuestra aplicación. También usaremos un conjunto de permisos para otorgar a los usuarios acceso a nuestra aplicación.
Crear el componente de Aura de mapa de la cuenta
Este componente usa el componente <lightning:map>
para mostrar cuentas en un mapa.
- Cree el componente AccountMap en la carpeta
aura
.sf lightning generate component --name AccountMap --output-dir force-app/main/default/aura
- Abra
force-app/main/default/aura/AccountMap/AccountMap.cmp
y reemplace su contenido por el siguiente código. A continuación, guarde el archivo.<aura:component> <aura:handler event="c:AccountsLoaded" action="{!c.onAccountsLoaded}"/> <aura:attribute name="mapMarkers" type="Map[]"/> <lightning:card title="Account Map" iconName="action:map"> <lightning:map mapMarkers="{!v.mapMarkers}"/> </lightning:card> </aura:component>
Este componente escucha el evento AccountsLoaded y muestra los datos del evento como marcadores de mapa.
- Abra
force-app/main/default/aura/AccountMap/AccountMapController.js
y reemplace su contenido por el siguiente código. A continuación, guarde el archivo.({ onAccountsLoaded: function( component, event, helper ) { var mapMarkers = []; var accounts = event.getParam( 'accounts' ); for ( var i = 0; i < accounts.length; i++ ) { var account = accounts[i]; var marker = { 'location': { 'Street': account.BillingStreet, 'City': account.BillingCity, 'PostalCode': account.BillingPostalCode }, 'title': account.Name, 'description': ( 'Phone: ' + account.Phone + 'Website: ' + account.Website ), 'icon': 'standard:location' }; mapMarkers.push( marker ); } component.set( 'v.mapMarkers', mapMarkers ); } })
La funciónonAccountsLoaded
del controlador del lado del cliente transforma los datos del evento en el formato esperado por el componente<lightning:map>
.
- Implemente su código nuevo en la organización borrador.
sf project deploy start
Crear el componente de Aura de localizador de la cuenta
Este es nuestro componente principal, y lo usamos para mostrar nuestra aplicación a los usuarios finales en las páginas Lightning, Salesforce para dispositivos móviles y fichas personalizadas. Además, ¡es el último componente que creará para este proyecto!
- Cree el componente AccountLocator en la carpeta
aura
.sf lightning generate component --name AccountLocator --output-dir force-app/main/default/aura
- Abra
force-app/main/default/aura/AccountLocator/AccountLocator.cmp
y reemplace su contenido por el siguiente código. A continuación, guarde el archivo.<aura:component implements="force:appHostable,flexipage:availableForAllPageTypes"> <lightning:layout horizontalAlign="space" multipleRows="true"> <lightning:layoutItem size="12" mediumDeviceSize="12" padding="around-small"> <c:AccountSearch/> </lightning:layoutItem> <lightning:layoutItem size="12" mediumDeviceSize="6" padding="around-small"> <c:AccountList/> </lightning:layoutItem> <lightning:layoutItem size="12" mediumDeviceSize="6" padding="around-small"> <c:AccountMap/> </lightning:layoutItem> </lightning:layout> </aura:component>
Este componente está compuesto por los demás componentes que creó a lo largo de este proyecto. Dos funciones poderosas del marco de trabajo de componentes Lightning son la encapsulación y la reutilización de componentes. La composición de componentes específicos en un componente mayor permite crear componentes y aplicaciones más interesantes.
- Implemente su código nuevo en la organización borrador.
sf project deploy start
Crear la ficha personalizada de localizador de la cuenta
Una manera sencilla de mostrar los componentes de Aura tanto en Lightning Experience para computadoras como en Salesforce para dispositivos móviles es mediante una ficha personalizada. Después de completar este paso, podrá navegar hacia esta ficha personalizada para acceder a su aplicación.
- Abra su organización borrador.
sf org open
- En Setup (Configuración), ingrese
Tabs
(Fichas) en el cuadro Quick Find (Búsqueda rápida) y, a continuación, haga clic en Tabs (Fichas). - En la sección Lightning Component Tabs (Fichas de componentes Lightning), haga clic en New (Nueva) e ingrese los detalles:
- Lightning Component (Componente Lightning): c:AccountLocator
- Tab Label (Etiqueta de ficha):
Account Locator
- Tab Name (Nombre de ficha):
Account_Locator
- Tab Style (Estilo de ficha): haga clic en el ícono de lupa y seleccione Map (Mapa) como ícono para la ficha.
- Description (Descripción):
Custom tab for Account Locator
(Ficha personalizada para el localizador de la cuenta).
- Haga clic en Next (Siguiente).
- Para Apply one tab visibility to all profiles (Aplicar una visibilidad de ficha a todos los perfiles), seleccione Tab Hidden (Ficha oculta).
- Haga clic en Save (Guardar).
Crear el conjunto de permisos de geolocalización
Para controlar quién tiene acceso a su aplicación de geolocalización, cree un conjunto de permisos y otórguele visibilidad a la ficha Account Locator (Localizador de la cuenta).
- En Setup (Configuración), ingrese
Permission Sets
(Conjuntos de permisos) en el cuadro Quick Find (Búsqueda rápida) y, a continuación, haga clic en Permission sets (Conjuntos de permisos). - Haga clic en New (Nuevo) e ingrese los detalles:
- Etiqueta:
Geolocation
(Geolocalización) - Nombre de API:
Geolocation
(Geolocalización) - Descripción:
Grants access to the Account Geolocation app
(Otorga acceso a la aplicación Geolocalización de la cuenta)
- Etiqueta:
- Haga clic en Save (Guardar).
- En Apps (Aplicaciones), haga clic en Object Settings (Configuración de objetos).
- Haga clic en Account Locator (Localizador de la cuenta).
- Haga clic en Edit (Modificar).
- En Tab Settings (Configuración de fichas), seleccione Available (Disponible) y Visible y, a continuación, haga clic en Save (Guardar).
A continuación, asígnese el conjunto de permisos a usted mismo. En un paso posterior veremos cómo automatizar la asignación de conjuntos de permisos mediante el uso de Salesforce CLI.
- En Setup (Configuración), ingrese
Users
(Usuarios) en el cuadro Quick Find (Búsqueda rápida) y, a continuación, haga clic en Users (Usuarios). - Haga clic en el usuario cuyo nombre completo es
User, User
(Usuario, Usuario) en la tabla. - Haga clic en Permission Set Assignments (Asignaciones de conjuntos de permisos).
- En la sección Permission Set Assignments (Asignaciones de conjuntos de permisos), haga clic en Edit Assignments (Modificar asignaciones).
- Agregue el conjunto de permisos
Geolocation
(Geolocalización) al cuadro Enabled Permission Sets (Conjuntos de permisos habilitados). - Haga clic en Save (Guardar).
En caso de que se lo esté preguntando, User User (Usuario Usuario) es el nombre completo predeterminado que se le da al administrador del sistema en una organización borrador. Puede cambiarlo en la configuración si desea que tenga un nombre más emocionante.
La magia de los metadatos: recuperar los cambios en su proyecto
Hasta ahora, en este módulo trabajó con su proyecto local y extrajo metadatos de su organización borrador. En este paso, realizó algunas modificaciones directamente en esa organización borrador. Ahora es cuando se produce la magia. Con un único comando puede recuperar todos los metadatos que modificó en la organización borrador para su proyecto local.
Sin embargo, antes de hacerlo, queremos que configure nuestro archivo .forceignore
para ignorar la sincronización de algunos metadatos. Cuando creó la ficha Account Locator (Localizador de la cuenta) y asignó su visibilidad a todos los perfiles, la herramienta de seguimiento de cambios automáticos de la organización borrador notó que los perfiles se habían modificado. Naturalmente, la próxima vez que extraiga metadatos de la organización borrador para sincronizarlos con su proyecto local, la CLI querrá desplegar los metadatos de perfil. Dado que los perfiles no son pertinentes a su aplicación de geolocalización y no son algo para hacer un seguimiento en su repositorio de control de orígenes para este proyecto, necesitamos decirle a Salesforce CLI que ignore los cambios en el perfil.
En el directorio raíz de su proyecto de geolocalización, abra el archivo .forceignore
y agregue **/profiles
como una nueva línea en el archivo. A continuación, guarde el archivo. Su archivo .forceignore
debería tener un aspecto similar a lo siguiente:
# List files or directories below to ignore them when running force:source:push, force:source:pull, and force:source:status # More information: https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_exclude_source.htm # package.xml # LWC configuration files **/jsconfig.json **/.eslintrc.json # LWC Jest **/__tests__/** # Profiles **/profiles
Ahora está listo para recuperar metadatos. En la ventana de comandos, recupere los cambios que realizó en la organización borrador con su proyecto local.
sf project retrieve start
El resultado del comando project retrieve start
se ve así:
Retrieving v58.0 metadata from test-t7e5za@example.com using the v58.0 SOAP API Preparing retrieve request... Succeeded Retrieved Source ================================================================================================================ | State Name Type Path | ─────── ─────────────── ───────────── ──────────────────────────────────────────────────────────────────────── | Created Account_Locator CustomTab force-app/main/default/tabs/Account_Locator.tab-meta.xml | Created Geolocation PermissionSet force-app/main/default/permissionsets/Geolocation.permissionset-meta.xml
Note que no se recuperaron los cambios del perfil porque son ignorados en .forceignore
.
Validar la aplicación
Si bien puede usar tranquilamente la misma organización borrador que utilizó durante el desarrollo para realizar las pruebas, le recomendamos que siempre comience con una organización borrador nueva, ya que garantiza que externalizó de manera adecuada toda la fuente de la organización.
- Cree una organización borrador nueva.
sf org create scratch --set-default --definition-file config/project-scratch-def.json --alias GeoTestOrg
- Implemente sus metadatos y origen local en la organización borrador.
sf project deploy start --target-org GeoTestOrg
- Asigne el conjunto de permisos.
sf org assign permset --name Geolocation --target-org GeoTestOrg
- Cargue los datos de muestra en la organización. Estos son los datos que exportó de una organización borrador diferente en una unidad anterior.
sf data import tree --files data/Account.json --target-org GeoTestOrg
- Abra su organización.
sf org open --target-org GeoTestOrg
- Pruebe la ficha Account Locator (Localizador de la cuenta) y verifique que funcione como se espera. Desde el Iniciador de aplicación, busque y seleccione Account Locator (Localizador de la cuenta).

¡Felicitaciones! Creó y probó correctamente una aplicación nueva con organizaciones borrador y Salesforce CLI. ¡No olvide agregar todo a su repositorio de control de orígenes!