sebastianclaros / teatime

App de Ventas desarrollada para practicar Salesforce.
2 stars 4 forks source link
salesforce shopping-cart

Proyecto para practicar Salesforce en el equipo de Teco

Este proyecto tiene como objetivo poner en practica conocimiento que vamos aprendiendo sobre como desarrollar en Salesforce

Modo de Trabajo

Vamos a usar el concepto de Source Drive Development.

Basicamente lo que decimos es que nuestro "source of truth", fuente de verdad del codigo, estara en Github.

Cada uno que quiera desarrollar algo debera hacer un clone del repo, crear una scracth org, es decir una instancia efimera de desarrollo, donde podra probar y testear, y cuando este listo hara el pull request de la funcionalidad nueva.

Crear una DevHub

Primero de todo les pedimos que cada uno tenga su DevHub, si aun no tienen uno pueden:

  1. Crear una cuenta developer que no expira nunca. Formulario Si necesitan una guia paso a paso

  2. Crear una cuenta Omni Studio Trial que expira a los 180 dias.Formulario

Una vez que tengan hagan un login en el browser y configuren:

  1. Setear que la password no expire.
  2. Poner la Org como DevHub

Instalar Salesforce CLI

Saleforce CLI es la herramienta de linea de comando que nos permite subir codigo a nuestra scracth, y bajar de la misma distinto metadatos que son creados dentro de la UI de SF.

Bajar el CLI

Cualquier cosa consultar la guia de instalacion

Conenctarse al DevHub

Ahora que tienen el cli y el devhub, tenemos que autenticarnos a fin de el cli puedan conectarse al devhun y crear scratch orgs.

Con el siguiente comando nos autenticamos y a su vez lo seteamos a este devhub como default (-d). Si no lo ponemos default, ya sea porque tenemos otros DevHubs, al crear una scratch tendriamos que decirle desde que devhub la tiene que crear.

sf org login web -d -a myhuborg

si no funciona el login web, esto puede pasar en algunos windows, pueden usar el flujo de device

sf org login device -d -a myhuborg

Hacer el clone del repo

Antes de bajar el Repo localmente fijense que tengan git en su compu. Sino pueden instalar Github Desktop o bien usar por linea de comandos instalando Git

En su directorio de trabajo hagan un clone del repo

git clone https://github.com/sebastianclaros/teatime.git

cd teatime

Crear una scratch org

En la carpeta scripts/automation hay una serie de scripts que automatizan las tareas antes de empezar a desarrollar un requerimiento. Ver mas sobre scripts de automatizacion

Sino pueden hacerlo paso a paso manualmente. Vayan al directorio de teatime, y ahi con la linea de comandos va a ser crear la scracth desde nuestro DevHub

sf org create scratch --set-default --definition-file=config/project-scratch-def.json --duration-days=7 --alias=prueba

Ahora subimos el codigo

sf project deploy start

Asignamos Permisos

sf org assign permset --name=adminCatalogo

Subimos datos

sf data tree import --plan=data/plan.json

Abrimos la organizacion de desarrollo en el browser

sf open org

sino lo abre (pasa en algunos windows) se puede ejecutar asi, copian la url y la pegan en el browser

sf open org -r

Si hay error al abrir la org, hay que hacer login con user y pass. Para eso, resetear password de la scratch org con el comando

 sf org generate password --target-org <username-or-alias>

Instalar Visual Studio

Como herramienta de desarrollo usaremos VS Code.

Si no lo tienen instalado sigan trailhead o busquen en confluence la guia Visual Studio Code

Les dejo algunas extensiones utiles:

  1. Salesforce Extension Pack
  2. Salesforce Extension Pack Expanded
  3. Salesforce CLI Integration
  4. Replay Debugger
  5. Apex PMD

Ahora desde la carpeta de teatime abran el VSCode

code

Manejo de Proyecto

Desarrollar

Antes de desarrollar una story tenemos que preparar el entorno. Lo primero es bajar lo que esta en la branch remota y crear una nueva branch desde ahi para hacer el codigo nuevo. Despues tenemos que crear una scracth org con el codigo, los datos y la asignacion de permisos, a fin de poder desarrollar y testear nuestro requerimiento

Para simplificar creamos un script que hace todo esto !

./scripts/scratch/create.sh <referencia>

Si el desarrollo del requerimiento termino entonces se puede correr

./scripts/scratch/close.sh 

Documentacion

Usamos la libreria de Docusaurus, y agregamos una carpeta en scripts/docs para automatizar o sincronizar con la metadata.

Para correr la documentacion localmente:

yarn doc:start

Para ver la documentacion online