Inicio rápido de IA

Este recorrido te lleva de una carpeta vacía a un portal en funcionamiento donde los clientes inician sesión y trabajan con sus propios casos de soporte — preguntando a un agente de codificación de IA en lugar de escribirlo a mano. Cada paso te da un prompt para pegar, qué hará el agente con él y qué comprobar antes de continuar. El ejemplo utiliza la tabla de casos (incident) que viene con el Servicio de Atención al Cliente de Dynamics 365; con una tabla propia, cada prompt funciona igual.

Antes de empezar

  • El SDK .NET 10, y Node.js si eliges la plantilla React.
  • Un entorno Dataverse en el que eres Administrador de Sistemas. Utiliza un entorno de desarrollo o sandbox para esta guía.
  • Permiso para crear registros de aplicaciones en el tenant Entra de ese entorno.
  • Una dirección para el correo electrónico del portal — confirmaciones de registro y restablecimiento de contraseña — con un buzón compartido para él en Exchange Online, que no necesita licencia. Aprobar la dirección requiere un Administrador Global de Office 365 o un Administrador de Exchange.
  • Un agente de codificación de IA que soporta MCP. Los comandos a continuación son para Claude Code; la página del servidor MCP tiene la configuración para Visual Studio, VS Code y Cursor.

Cómo funciona esto

Dos cosas permiten que un agente haga esto bien en lugar de ser solo plausible: el servidor MCP de Power Portals Pro, que lee tu entorno Dataverse real y realiza los cambios de configuración que necesita un portal, y las instrucciones que cada proyecto generado envía para los agentes.

1. Instalar el servidor MCP

Instálalo una vez por máquina, en el ámbito de usuario, para que esté disponible en todas las carpetas — incluida la vacía en la que vas a crear el proyecto:

dnxviene con el SDK .NET 10. Reinicia tu agente si ya estaba en marcha, luego comprueba que el servidor está ahí preguntando algo que solo él pueda responder, como "usar get_component_api para listar los parámetros de MainGrid".

2. Crea una carpeta e inicia sesión

Crea la carpeta en la que estará tu portal y inicia sesión desde dentro de ella — una vez en tu entorno Dataverse y otra en Azure, que es a través de donde se crean los registros de aplicaciones en el paso 4:

Ambos inicios de sesión pertenecen a esta carpeta, no a la máquina. Escriben .ppp/mcp.json aquí, nombrando el entorno y el tenant, y mantienen tus tokens en tu perfil de usuario, para que un proyecto en otra carpeta pueda apuntar a otro cliente al mismo tiempo. Ambos usan un código de dispositivo, así que puedes terminarlos en tu teléfono. Si tu cuenta ve varias suscripciones a Azure, no necesitas elegir una todavía; eso solo importa una vez que despliegues. Luego inicia tu agente en esta carpeta.

3. Crear el proyecto

Dile al agente qué estás construyendo — qué stack, React o Blazor, y quién iniciará sesión:

El agente instala las plantillas del proyecto si faltan, pregunta sobre cualquier cosa que no pueda saber de tu solicitud y ejecuta dotnet new. Cada cliente se convierte en un contacto en Dataverse, y lo que pueden ver se decide por los registros de seguridad en los archivos del Program.csproyecto . Ese es el modelo de seguridad por defecto de la plantilla, y el que utiliza el resto de esta guía. Cualquiera de las dos pilas funciona; cada prompt posterior es igual.

Nota

Reinicia tu agente en la misma carpeta una vez que el proyecto exista. El proyecto trae su propio .mcp.json, que fija el servidor MCP a la versión que coincide con sus paquetes, junto con sus habilidades y AGENTS.md — y la mayoría de los agentes solo las leen cuando empiezan. Aprueba el servidor MCP del proyecto si tu agente lo pide.

4. Conéctalo a Dataverse

Un nuevo proyecto no comenzará hasta que pueda llegar a Dataverse. Pide al agente que lo configure:

El agente sigue la habilidad del set-up-portal proyecto, empezando por check_setup ver qué falta. Espera aprobar cada una de estas cosas:

La configuración de conexión aparece en los secretos de usuario del proyecto a medida que se completa cada paso. El agente termina ejecutándose check_setup de nuevo; una vez limpio, ejecuta el proyecto — F5, o dotnet run en el proyecto servidor — y verás la página principal y las páginas de muestra de la plantilla.

5. Decidir qué deben ver los clientes

Describe el resultado que quieres en términos empresariales y deja que el agente encuentre la tabla. Preguntar antes de que se escriba algo merece la pena: el agente lee tu entorno, así que sugiere lo que realmente hay ahí, incluyendo tus propias tablas y columnas personalizadas.

Espera que busque la tabla con list_tables y describe_table, lea sus vistas con list_views, y vuelva con la tabla de casos (incident), la consulta que vincula un caso con su cliente (customerid), y las columnas que mostrar y editar. Ajusta esa lista ahora: decide qué publica el portal.

6. Asegura la mesa

Un portal no muestra nada que no se le haya dicho que muestre: hasta que se registre una tabla, sus páginas devolven 403 o una cuadrícula vacía. Pide al agente que abra la tabla — solo en la medida en que pretendas:

El agente trabaja a través de la habilidad del secure-a-table proyecto, confirmando para quién es el acceso, qué filas, qué operaciones y qué columnas. No te saltes ninguna: cada respuesta cambia lo que se publica.

Luego escribe el registro en el archivo del proyecto Program.csdel servidor. Para este ejemplo, espera algo como:

RowsOwnedByContact("customerid") limita cada consulta a los propios casos del contacto iniciado sesión y lo convierte en el cliente de un caso que crea. Las columnas son opt-in: cualquier cosa que no esté nombrada Reading se retiene, y solo se pueden cambiar las columnas Writing . WritingOnCreate Cubre la prioridad — establecida cuando se registra el caso, y a partir de entonces solo lectura. La seguridad cubre todas las opciones.

El propio papel del usuario de la aplicación

El registro decide lo que puede hacer cada cliente, pero el portal sigue comunicándose con Dataverse como su usuario de la aplicación, y ese usuario necesita privilegios en la mesa en sí. Ellos van en el rol de seguridad tuyo desde el paso 4, nunca en el rol Power Portals Pro. El agente:

  1. Encuentra tu rol en el usuario de la aplicación con get_application_user — y si el paso 4 no creó uno, lo crea con create_security_role y lo asigna con assign_application_user_role.
  2. Le otorga lo que el registro necesita con add_table_privileges_to_role: Leer, Crear, Escribir y Añadir en incident, y Añadir a contacten , porque cada caso nuevo está vinculado a un contacto. Luego ejecuta check_setup, que compara las tablas que usan tus páginas con las tablas que registra tu código.

¿Por qué un papel propio?

El rol Power Portals Pro viene incluido en una solución gestionada. Dataverse te permitiría añadir privilegios, pero la siguiente actualización de esa solución puede devolverla a la forma en que se envió, llevándose tus subvenciones — así que el servidor MCP se niega a añadir privilegios a cualquier rol gestionado. Un rol propio también muestra a quien revise el entorno después exactamente a qué puede llegar el portal.

7. Añadir las páginas

Con la tabla asegurada, pide ambas páginas de una sola vez: la lista en el menú y la página en la que se abre un caso:

El agente sigue la habilidad del add-table-pages proyecto. Añade las rutas, una página de lista con una MainGrid, la entrada del menú y una RecordContext página que también se abre vacía para registrar un nuevo caso. Lee identificadores de vistas reales con list_views en lugar de escribir marcadores de posición, y mantiene cada columna dentro de lo que el registro permite leer a los clientes — las vistas estándar de Dynamics incluyen columnas solo para agentes, así que espera que ofrezca vistas propias. Si pides una columna que el registro omita, debería detenerse y preguntar en lugar de ampliar el acceso discretamente. Los registros relacionados pueden ir en la página del caso como subrejillas; nómbralos y asegurará esa tabla también.

8. Pruébalo como dos clientes

El agente no puede iniciar sesión como cliente, así que esta parte es tuya. También es la prueba que más importa: el objetivo del registro es lo que un cliente no puede ver.

  1. Ejecuta el portal y registra a un cliente. El correo de confirmación llega una vez que el buzón de la cola de correo ha pasado Probar y Habilitar en el paso 4.
  2. Abrir casos, registrar un nuevo caso y luego volver a abrirlo desde la cuadrícula. Cambiar su título y guardar.
  3. Cerrar sesión, registrar a un segundo cliente y abrir Casos. La cuadrícula debería estar vacía: el caso del primer cliente es solo suyo. Pegar la dirección de ese caso en esta sesión tampoco debería mostrarla.

Si alguno de los clientes ve algo que no debería, no lo ajustes a mano. Dile al agente lo que viste y lo que esperabas, y deja que siga funcionando secure-a-table .

Si algo no parece bien

¿A dónde ir ahora