A lo largo de esta entrada vamos a poder responder a las preguntas:
De esta manera estaremos en posición de entender y saber usar esta potente herramienta.
PAC CLI es la herramienta que nos brinda Microsoft para gestionar el desarrollo dentro de Power Platform a través de una línea de comandos. Nos permite gestionar la autenticación, ciclo de vida del entorno y trabajar con los componentes de Dataverse como Soluciones o componentes de código personalizado.
En nuestro día a día como desarrolladores siempre estamos buscando la forma de hacer más fáciles las cosas, o buscar formas para realizar nuestro trabajo de una manera óptima. Con esta herramienta que nos brinda Microsoft podemos conseguirlo. Al tratarse de una línea de comandos, podemos construir Scripts que nos faciliten el día a día o incluso podemos utilizarla en alguna canalización de nuestra entrega continua (CI/CD). En resumen, permite tener un entorno de desarrollo más desacoplado de los portales de gestión y más en la línea de otras tecnologías.
Para poder utilizar PAC CLI, Microsoft nos aporta dos caminos distintos. Por un lado, tenemos la instalación vía extensión de Visual Studio Code (Sólo nos permite ejecutar PAC CLI dentro del propio Visual Studio Code) o podemos instalar la línea de comandos como tal en nuestro equipo.
Esta extensión funciona en Windows 10, Windows 11, Linux, and MacOS.
Dentro de Visual Studio Code nos dirigimos a la sección de Extensiones (Ctrl+Shift+X). Dentro de esta sección buscamos lo siguiente: “Power Platform Tools”. Seleccionamos la extensión y hacemos clic en instalar.
Una vez que la extensión ya está instalada, tendremos que reiniciar Visual Studio Code.
Finalmente, ya tendremos a nuestra disposición en la ventana de terminal nuestro PAC CLI.
Importante: PAC CLI sólo funcionará dentro de Visual Studio Code.
La instalación en nuestro equipo independiente sólo está disponible para Windows 10 y Windows 11.
Para descargar esta línea de comandos accederemos al siguiente enlace proporcionado por Microsoft.
Descarga Microsoft Power Platform CLI
Este enlace nos descargará un instalador tipo msi que nos guiará durante la instalación. Una vez instalado e incorporado a la variable de entorno PATH podremos usar la línea de comandos desde CMD o PowerShell.
Ahora ya estamos listos para poder empezar a utilizar nuestra herramienta para un flujo de trabajo de desarrollo.
En esta sección vamos a reproducir un flujo de trabajo básico de desarrollo con Power Platform.
Podemos encontrar más comandos y más detalle en la documentación oficial de Microsoft sobre:
Este es el flujo que vamos a seguir:
Para poder utilizar esta línea de comandos, es necesario indicar un entorno de Dataverse con el que vayamos a interactuar. Para ello podemos usar el siguiente comando:
pac auth create -n {{nombre-perfil}} -u {{url-dynamics}}
Con estos parámetros nos saldrá una pantalla de login que nos pedirá el usuario, credenciales y doble factor para terminar de configurar el perfil.
Una vez realizado esto podemos confirmar que se ha creado el perfil utilizando el comando:
pac auth list
Como podemos ver, se marca con un * la conexión que hay activa en ese momento. Ahora que tenemos una conexión con nuestro entorno podemos continuar con nuestro flujo de trabajo.
Lo siguiente que necesitamos es exportar una solución de nuestro entorno que contenga lo que queremos cambiar, actualizar, modificar, etc.
Para este ejemplo hemos preparado una solución llamada IfGeekSLN que contiene un recurso web llamado webresource.js.
Para descargar la solución, ejecutaremos el comando:
pac solution export -p {{directorio-local}} -n {{nombre-solución-exportar}}
Una vez terminado el comando, podemos comprobar como en el directorio `{{directorio-local}}` se encuentra el zip de nuestra solución.
Ahora ya tenemos la solución en el directorio elegido por nosotros, pero es un .zip, vamos a desempaquetarla usando PAC CLI para que tengamos una estructura con la que poder trabajar.
Para realizar esta acción vamos a utilizar el comando como sigue:
pac solution unpack -z {{ruta-fichero-zip}} - f {{directorio-local-desempaquetado}}
Con estos comandos tendremos una versión extraída de la solución que encontraremos en `{{directorio--local-desempaquetado}}`. Ahora podemos abrir este directorio con un editor de texto para ver el contenido y modificarlo.
Una vez hayamos terminado de modificar el contenido de la solución, es una buena práctica indicar en un cambio de versión la magnitud de los cambios efectuados. En este caso vamos a indicar un cambio de build y de revisión.
pac solution version -bv {{valor-build}}
pac solution version -rv {{valor-revision}}
Ahora nuestra solución tendrá como versión 2.45 y está lista para ser empaquetada de nuevo.
Ahora que nuestra solución está modificada y que hemos aumentado la versión de esta, estamos preparados para empaquetar la solución y dejarla lista para desplegarla en cualquier momento. Para realizar esta acción vamos a ejecutar el siguiente comando:
pac solution pack -z {{ruta-fichero-zip}} -f {{directorio-local- desempaquetado}}
Con este comando se cogerán los datos que se encuentran en `{{directorio-local-desempaquetado}}` y se creará un fichero de solución en `{{ruta-fichero-zip}}`.
Este fichero estará listo para ser importado de nuevo en nuestro entorno.
Ya estamos a punto de culminar nuestro flujo de desarrollo con la importación de nuestros cambios en el entorno. Para realizar esta tarea usaremos el siguiente comando.
pac solution import -p {{directorio-local-empaquetado}}
Este comando tiene varios modificadores:
Una característica interesante es la capacidad para hacer un check de la solución y detectar posibles malas prácticas o recibir consejos por parte de Microsoft en las personalizaciones de nuestra solución.
Para ello podemos usar el comando:
Pac solution check -p {{directorio-local-empaquetado}}
Esto nos devuelve un fichero .zip con el resultado de nuestro análisis. Solo tenemos que desempaquetarlo y abrir el fichero .sarif que hay dentro (podemos encontrar la definición del schema aquí). Los errores están en formato JSON.
Este fichero se puede visualizar de forma dinámica desde Visual Studio Code con la extensión Sarif Viewer.
En la parte de la derecha vemos como se ha interpretado el JSON de manera que podemos ver los avisos agrupados y segmentados por ficheros.
¡Y hasta aquí el tostón de hoy! Espero que os haya servido de ayuda y que os haya hecho aprender algo nuevo.