Está en la página 1de 2928

Contents

Introducción
¿Qué es PowerApps?
Registrarse para obtener una versión de evaluación de 30 días
Suscribirse al plan de la comunidad
Novedades
Buscar y ejecutar aplicaciones
En un explorador
En un teléfono (lienzo)
En un teléfono (controlado por modelos)
En una página de SharePoint Online (lienzo)
En Microsoft Teams (lienzo)
Desde AppSource
Usar aplicaciones controladas por modelos
Información general
Interfaz unificada
Navegación y conceptos básicos
Información general
Ver su perfil
Búsqueda del administrador o encargado de soporte técnico
Establecimiento de la opción personal
Usar el lector de pantalla
Métodos abreviados de teclado
Trabajar con registros
Creación de un registro
Agregar actividades a la escala de tiempo
Preguntas más frecuentes acerca de actividades
Uso del campo de búsqueda en un registro
Vista de una tarjeta de perfil
Asignar o compartir registros
Compartir registros con Access Team
Agregar un rol de conexión
Desactivar cuentas o contactos
Realizar un seguimiento del progreso con gráficos y paneles
Agregar paneles de Power BI
Colaboración con SharePoint
Buscar registros
Comparación de las opciones de búsqueda
Buscar registros
Usar la búsqueda avanzada
Importar y exportar datos
Importar datos
Exportar datos a Excel Online
Exportar datos a Excel
Exportar a una hoja de cálculo dinámica
Exportar a una hoja de cálculo estática
Exportar a una tabla dinámica de Excel
Combinación de registros duplicados
Informes
Trabajo con los informes
Creación de los informes mediante el Asistente para informes
Adición de un informe existente
Edición del filtro predeterminado de un informe
Solución de problemas con los informes
Automatizar procesos
Trabajar con procesos de negocio
Usar flujos
Usar Dynamics 365 App for Outlook
Crear aplicaciones
Información general
Inicio de sesión en PowerApps
Aplicaciones de lienzo
¿Qué son las aplicaciones de lienzo?
¿Qué son las aplicaciones de lienzo?
Requisitos del sistema, límites y configuración
Métodos abreviados de teclado
Explorar las aplicaciones de ejemplo
Creación de una aplicación de lienzo a partir de una muestra
Aplicación de informe de gastos
Aplicación de servicio de asistencia
Aplicación Meeting Capture
Crear su primera aplicación
1 - Crear una aplicación a partir de datos
Desde Common Data Service
Desde SharePoint
Desde Excel
Desde Azure SQL Database
2 - Crear personalizaciones básicas
1 - Galerías
2 - Formularios
3 - Tarjetas
3 - Crear una aplicación personalmente
Desde Common Data Service
Desde Excel
Crear una aplicación a partir de una plantilla
Diseñar y crear una aplicación
Conectarse a datos
Lista de conexiones
Conectores populares
Common Data Service
Almacenamiento en la nube
Dynamics 365
Dynamics AX
Excel
Microsoft Translator
Office 365 Outlook
Usuarios de Office 365
Oracle Database
Power BI
SharePoint
SQL Server
Twitter
Agregar una conexión
Administrar conexiones
Preparación de datos de Excel
Delegación
Administrar puertas de enlace
Puertas de enlace
Orígenes de datos
Tablas y registros
Referencias de los registros
Diseñar la interfaz
Adición y configuración de controles
Adición y configuración de pantallas
Agregar una pantalla
Agregar una pantalla en desplazamiento
Configurar las pantallas de Office 365
Información general de la pantalla de calendario
Referencia de la pantalla de calendario
Información general de la pantalla de correo electrónico
Referencia de la pantalla de correo electrónico
Información general de la pantalla de reuniones
Referencia de la pantalla de reuniones
Información general de la pantalla de contactos
Referencia de la pantalla de contactos
Mostrar una tabla de elementos
Agregar una galería
Adición de galerías de alto variable
Agregar y configurar un formulario
Agregar un formulario
Información de los formularios
Información de la disposición de los formularios
Información de las tarjetas
Agregar una lista
Adición de un cuadro de lista, una lista desplegable o botones de selección
Creación de listas desplegables dependientes
Agregar un gráfico
Agregar elementos multimedia
Agregar datos de Power BI
Trabajo con la galería
Referencia de control
Lista de controles y propiedades
Agregar imagen
Datos adjuntos
Audio
Escáner de código de barras
Botón
Cámara
Tarjeta
Casilla
Gráfico de columnas
Columna
Cuadro combinado
Contenedor (experimental)
Tabla de datos
Selector de fecha
Mostrar formulario
Desplegable
Formulario de edición
Exportar
Galería
Texto HTML
Icono
Imagen
Importar
Gráfico de líneas
Cuadro de lista
Micrófono
Visor de PDF (experimental)
Entrada manuscrita
Gráfico circular
Icono de Power BI
Radio
Clasificación
Editor de texto enriquecido
Pantalla
Forma
Control deslizante
Etiquetas
Entrada de texto
Temporizador
Alternancia
Vídeo
Escáner de código de barras web (experimental)
Propiedades comunes
Accesibilidad
Color y borde
Núcleo
Imagen
Tamaño y ubicación
Text
Configurar la funcionalidad de una aplicación
Introducción a las fórmulas
Variables
Información sobre las fórmulas de comportamiento
Mostrar fechas y horas
Crear una colección
Mostrar el usuario actual
Conectar listas mediante búsquedas
Agregar un flujo
Creación de una regla en aplicaciones de lienzo
Referencia sobre fórmulas
Información general
Abs
Acceleration
Acos
Acot
AddColumns
And
App
Asin
AsType
Atan
Atan2
Average
Back
Blank
Calendar
Char
Choices
Clear
ClearCollect
Clock
Coalesce
Collect
Color
ColorFade
ColorValue
Compass
Concat
Concatenate
Concurrent
Connection
Count
Cos
Cot
CountA
CountIf
CountRows
Tipos de datos
DataSourceInfo
Date
DateAdd
DateDiff
DateTimeValue
DateValue
Day
Defaults
Degrees
Disable
Distinct
Download
DropColumns
EditForm
Enable
EndsWith
Errors
EncodeUrl
Exit
Exp
Filtro
Find
First
FirstN
ForAll
GroupBy
GUID
HashTags
Hour
If
IfError
IsBlank
IsEmpty
IsMatch
IsNumeric
IsToday
IsType
JSON
Language
Last
LastN
Launch
Left
Len
Ln
LoadData
Location
LookUp
Lower
Match
MatchAll
Max
Mid
Min
Minute
Mod
Month
Navigate
NewForm
Not
Notify
Now
Operators
Or
Param
Patch
Pi
PlainText
Power
Proper
Radians
Rand
Refresh
Relate
Remove
RemoveIf
RenameColumns
Replace
Reset
ResetForm
Revert
RGBA
Right
Round
RoundDown
RoundUp
SaveData
Search
Second
Select
Set
SetFocus
ShowColumns
Shuffle
Sin
Sort
SortByColumns
Split
Sqrt
StartsWith
StdevP
Substitute
SubmitForm
Sum
Switch
Table
Tan
Text
Time
TimeValue
TimeZoneOffset
Today
Trim
TrimEnds
Ungroup
Unrelate
Update
UpdateContext
UpdateIf
Upper
User
Validate
Value
VarP
ViewForm
Weekday
Con
Year
Crear una aplicación en una solución
Creación de una aplicación con datos relacionales
Instalación de los datos
Información general sobre las aplicaciones de lienzo
1. Creación de la galería de órdenes
2. Creación del formulario de resumen
3. Creación de la galería de detalles
Crear una aplicación global
Hacer que una aplicación sea accesible
Crear una aplicación accesible
Buscar problemas de accesibilidad
Usar el color para la accesibilidad
Mostrar u ocultar el contenido de las tecnologías de asistencia
Anunciar cambios dinámicos con las regiones activas
Características experimentales y de versión preliminar
Guardar y publicar una aplicación
Dependencias de una aplicación y uso compartido
Compartir una aplicación
Compartir datos de Excel
Compartir los recursos de la aplicación
Insertar una aplicación en Power BI
Insertar una aplicación en Teams
Administrar una aplicación
Editar una aplicación
Eliminar una aplicación
Restaurar una versión anterior
Cambiar el nombre y el icono de la aplicación
Administración de pantallas
Cambiar el tamaño y la orientación de la pantalla
Creación de un diseño dinámico
Personalizar un formulario de lista de SharePoint
Realización de cambios básicos
Comprensión de la integración de formularios de SharePoint
Integrar con otras tecnologías
SharePoint Online
Información general
Configurar listas de SharePoint Online
Generar una aplicación
Crear un flujo para aprobaciones
Crear una aplicación desde cero
Crear un informe de Power BI
Publicar el informe de Power BI
Insertar un informe de Power BI
Crear un flujo para alertas
Recorrer el escenario finalizado
Cognitive Services
Transformación de Formularios de InfoPath a PowerApps
Para desarrolladores
Aplicaciones de lienzo para desarrolladores empresariales, asociados y fabricantes
de software independientes
Compilación y certificación de conectores personalizados
Integrar con sitios web y otras tecnologías
Desarrollar aplicaciones que puedan ejecutarse sin conexión
Permitir que los clientes prueben las versiones de las aplicaciones
Crear un componente
Información general
Fórmulas de comportamiento
Incrustación de aplicaciones de lienzo en otras aplicaciones
Aplicaciones controladas por modelos
¿Qué son las aplicaciones basadas en modelos?
Explorar las aplicaciones de ejemplo
Crear su primera aplicación
Diseñar y crear una aplicación
Información de componentes de aplicación controlados por modelos
Definir datos para una aplicación
Propiedades de campo común
Información general de propiedades de campo especial
Traducir texto localizable
Diseñar la interfaz
Usar el diseñador de aplicaciones para crear una aplicación
Crear una aplicación
Crear un mapa del sitio para una aplicación
Agregar o editar componentes de una aplicación
Adición de la entidad de equipo como una opción de búsqueda
Trabajar con fórmulas
Usar el nuevo diseñador de formularios
Crear o editar formularios
Adición, desplazamiento o eliminación de campos
Agregar, mover o eliminar componentes
Adición, desplazamiento o eliminación de secciones
Adición, desplazamiento o eliminación de pestañas
Configuración de las propiedades de encabezado
Agregar y configurar el componente de subcuadrícula
Agregar y configurar el componente de vista rápida
Configurar componente de búsqueda
Uso de la vista de árbol
Tipo de formularios
Crear o editar un formulario principal
Crear o editar formularios de creación rápida
Crear un formulario de vista rápida
Creación de un formulario de tarjeta
Información general del editor de formularios
Información general de las propiedades de formulario
Información general de las propiedades de cuadrícula secundaria
Información general de las propiedades de pestaña
Consideraciones de diseño para formularios principales
Cómo aparecen los formularios principales
Controlar el acceso a los formularios
Agregar un campo a un formulario
Mostrar u ocultar elementos de un formulario
Cambiar la navegación en un formulario
Agregar navegación de formularios para entidades relacionadas
Guías de procedimientos: Formularios
Cómo usar el formulario principal y sus componentes
Cómo abrir el editor de formularios
Cómo agregar iFrames a formularios
Cómo optimizar el rendimiento de un formulario
Cómo trabajar con secciones de un formulario
Cómo configurar mapas de Bing en un formulario
Cómo asignar el orden de un formulario
Cómo configurar controladores de eventos en un formulario
Cómo deshabilitar el guardado automático en un formulario
Cómo agregar una pestaña para los documentos de SharePoint
Inserción de una aplicación de lienzo en un formulario controlado por modelos
Adición de una aplicación de lienzo insertada
Edición de una aplicación de lienzo insertada
Personalización del tamaño y la orientación de la pantalla
Acciones predefinidas en el formulario de host
Control ModelDrivenFormIntegration
Compartir una aplicación de lienzo insertada
Instrucciones para aplicaciones de lienzo insertadas
Migración de lienzos insertados a partir de la versión preliminar pública
Inserción de un informe de Power BI en un formulario
Trabajar con vistas
Crear o editar una vista
Acceder a una definición de vista
Crear y editar vistas
Elegir y configurar columnas en vistas
Guías de procedimientos: Vistas
Cómo hacer que las cuadrículas sean editables
Cómo ordenar los registros en una vista
Cómo editar los criterios de filtros y el criterio de ordenación
Cómo configurar propiedades administradas para vistas
Cómo especificar una vista predeterminada
Cómo eliminar o desactivar una vista
Aplicar lógica de negocios en una aplicación
Crear una regla de negocios para un formulario
Aplicar visualizaciones de datos en una aplicación
Crear un gráfico del sistema
Crear o editar paneles
Configurar paneles de experiencia interactivos
Establecer las propiedades de un gráfico o una lista
Usar los controles del sistema para visualizaciones de datos
Configurar el control de notas
Propiedades de control de vista rápida
Controles adicionales para Dynamics 365 para teléfonos y tabletas
Información general del control de temporizador
Usar controles personalizados para visualizaciones de datos
Uso de plantillas de Excel y Word
Utilizar temas para aplicar la marca de organización
Creación de recursos de ayuda guiados para su aplicación
Adición de informes a una aplicación
Consideraciones sobre los informes
Espacio aislado de RDL
Uso de Power BI
Personalización de paquetes de contenido de Power BI
Validar y publicar una aplicación
Compartir una aplicación
Administrar una aplicación
Administrar propiedades de una aplicación
Especificar propiedades de aplicaciones de interfaz unificada
Eliminar una aplicación
Personalización y creación de aplicaciones avanzadas
Privilegios para la personalización
Crear o editar recursos web
Propiedades de recursos web
Cambiar iconos de una entidad personalizada
Distribuir una aplicación con soluciones
Habilitación de recursos de ayuda personalizables
Creación de ayuda interactiva
Transición a una interfaz unificada
Introducción rápida a transiciones
Introducción rápida al uso de un entorno existente para la transición
Cuaderno de estrategias de interfaz unificada
Enfoque de una transición de interfaz unificada
Lista de comprobación: Transición a la interfaz unificada
Preguntas más frecuentes: Transición a la interfaz unificada
Accesibilidad en el diseñador de aplicaciones de PowerApps
Personalizar Dynamics 365 App for Outlook
Para desarrolladores
Portals
¿Qué son los portales de PowerApps?
Diseño y compilación de un portal
Plantillas de portal
Creación de un portal de inicio
Creación de un portal con un entorno de Dynamics 365
Aprovisionamiento de un portal mediante el complemento de portal anterior
Anatomía del estudio de los portales de PowerApps
Exploradores web compatibles con el diseñador de portales
Creación y administración de páginas web
Creación de una página
Uso de plantillas
Edición de CSS
Administración de portales existentes
Administración avanzada del portal
Información general
Detalles del portal
Descarga de la clave pública del portal
Visualización de los registros de errores del portal
Restablecimiento de un portal
Cambio de la dirección URL base de un portal
Activación del modo de mantenimiento
Adición de un nombre de dominio personalizado
Importación de la traducción de los metadatos
Integración con Power BI
Configuración de la integración con Power BI
Agregar un informe o panel de Power BI a una página web en el portal
Ejecución del comprobador del portal
Renovación de la clave de autenticación del portal
Configuración de la restricción de direcciones IP
Actualización al dominio de portales de PowerApps
Borrar la memoria caché del lado servidor
Migración de la configuración del portal
Acerca del ciclo de vida del portal
Actualización de un portal
Configuración avanzada del portal
Información general
Configuración del sitio
Autenticación del portal
Configuración de la autenticación del portal
Establecimiento de la identidad de autenticación
Configuración del proveedor de Azure AD B2C para portales
Configuración de los valores del proveedor de OAuth2
Configuración de los valores del proveedor de OpenID
Configuración de los valores del proveedor de WS-Federation
Configuración de los valores del proveedor de SAML 2.0
Migración de los proveedores de identidades a Azure AD B2C
Search
Acerca de la búsqueda
Mejora de la búsqueda mediante la búsqueda por facetas
Búsqueda en datos adjuntos de archivos
Habilitación de la compatibilidad con varios idiomas
Creación y administración de sitios web
Administración de vínculos web
Creación y administración de plantillas de página
Administración de fragmentos de contenido
Creación de un URI de redireccionamiento
Uso de accesos directos para colocar nodos secundarios
Comportamiento y formato del campo de fecha y hora
Visualización de registros de correo electrónico en la escala de tiempo del portal
Clasificación de una página web
Activación del almacenamiento en caché para la salida del encabezado y pie de
página en un portal
Adición de un gráfico en una página web del portal
Trabajo con formularios de entidad
Trabajo con listas de entidades
Administración de sitios web
Creación y administración de enlaces de sitios web
Trabajo con formularios web
Definición de propiedades de formularios web
Pasos de formularios web
Definición de los pasos de formularios web
Definición de un formulario de carga y de un tipo de paso de pestaña de carga
Adición de un tipo de paso de redireccionamiento
Adición de un tipo de paso condicional
Adición de JavaScript personalizado
Configuración de metadatos de formularios web
Configuración de una subcuadrícula de formularios web
Adición de geolocalización
Implementación del RGPD en los portales
Personalización avanzada del portal
Trabajar con plantillas de Liquid
Información general
Almacenar contenido mediante plantillas web
Descripción de los operadores de Liquid
Tipos de Liquid disponibles
Operadores condicionales de Liquid disponibles
Objetos de Liquid disponibles
Etiquetas de Liquid disponibles
Etiquetas de Liquid disponibles
Etiquetas de flujo de control
Etiquetas de iteración
Etiquetas variables
Etiquetas de plantilla
Etiquetas de entidad de PowerApps Common Data Service
Filtros de Liquid disponibles
Crear plantillas avanzadas
Crear una plantilla de página personalizada
Usar la navegación híbrida para representar la jerarquía de páginas
Representar la lista de entidades de una página
Representar una fuente RSS mediante una plantilla de página personalizada
Representar un encabezado de sitio y una barra de navegación principal
Flujo de concesión implícita de OAuth 2.0
Administración de páginas web
Administración de usuarios y seguridad en el portal
Configuración de contactos
Invitación a contactos
Creación de roles web
Administración de permisos de entidad
Control de acceso a páginas web
Creación de permisos de acceso a sitios web
Almacenamiento de documentos en portales
Configuración de notas
Almacenamiento de Azure
Habilitación del almacenamiento de Azure
Adición del recurso web de Azure Storage a una forma
Administración de documentos de SharePoint
Problemas conocidos
Preguntas más frecuentes sobre los portales de PowerApps
Common Data Service
¿Qué es Common Data Service?
Trabajar con entidades
Información general sobre las entidades
Crear una entidad
Crear una entidad personalizada que tiene componentes
Entidades y metadatos
Tipos de entidades
Crear y editar entidades
Editar una entidad
Crear y editar entidades virtuales
Proveedor de datos de entidad virtual OData v4
Definir claves alternativas mediante el portal de PowerApps
Definir claves alternativas mediante el Explorador de soluciones
Guías de procedimientos: Entidad
Cómo crear entidades mediante el portal de PowerApps
Cómo crear entidades mediante el Explorador de soluciones
Cómo importar o exportar datos
Cómo abrir datos de entidades en Excel
Cómo definir claves alternativas
Cómo definir transiciones de razón para el estado
Cómo eliminar una entidad personalizada
Cómo mostrar iconos personalizados
Cómo editar mensajes de entidad del sistema
Cómo configurar una entidad para las clasificaciones y comentarios
Proveedor de datos de la API de SQL de Azure Cosmos DB
Cómo trabajar con entidades virtuales
Trabajar con relaciones de entidades
Información general de relaciones de entidades
Información general de creación de relaciones de entidades de uno a varios
Información general de creación de relaciones de entidades de varios a varios
Crear una relación de entidades
Crear relaciones de entidades de uno a varios
Crear relaciones de entidades de uno a varios mediante el Explorador de soluciones
Crear relaciones de entidades de uno a varios mediante el portal de PowerApps
Establecer propiedades administradas para relaciones de entidades
Visualizar datos jerárquicos
Definir datos relacionados jerárquicamente y realizar consultas en ellos
Configurar roles de conexión
Guías de procedimientos: Relaciones
Cómo crear relaciones de varios a varios mediante el portal de PowerApps
Cómo crear relaciones de varios a varios mediante el Explorador de soluciones de
PowerApps
Cómo establecer propiedades administradas para relaciones
Cómo visualizar datos relacionados jerárquicamente y realizar consultas en ellos
Cómo definir datos relacionados jerárquicamente y realizar consultas en ellos
Cómo configurar roles de conexión
Trabajar con campos
Tipos de campos
Información general de conjuntos de opciones globales
Campo de autonumeración
Establecimiento de las propiedades administradas de campos
Comportamiento y formato del campo Fecha y hora
Guías de procedimientos: Campos
Cómo crear campos
Cómo administrar campos
Cómo crear campos mediante el portal de PowerApps
Cómo crear campos mediante el Explorador de soluciones de PowerApps
Cómo crear un conjunto de opciones mediante el portal de PowerApps
Cómo crear un conjunto de opciones global mediante el Explorador de soluciones
Cómo definir campos calculados
Cómo definir campos consolidados
Cómo asignar campos de entidades
Cómo eliminar campos
Aplicar la lógica de negocios
Crear una regla de negocios para una entidad
Trabajar con soluciones
Usar soluciones
Usar la solución predeterminada de Common Data Service
Importar, actualizar y exportar soluciones
Navegación a una solución específica
Crear una solución
Uso de variables de entorno
Visualización de las capas de la solución
Visualización del historial de la solución
Usar el comprobador de la solución
Problemas y soluciones habituales: comprobador de la solución
Usar soluciones segmentadas
Cambiar el prefijo del editor de soluciones
Establecer propiedades administradas en metadatos
Publicar cambios
Procedimientos recomendados
Trabajo con flujos de datos
Creación y uso de flujos de datos
Agregar datos a una entidad con Power Query
Conexión a Azure Data Lake para el almacenamiento de flujos de datos
Uso de una puerta de enlace de datos local
Requisitos de licencia para entidades
Entidades complejas y licencias
Entidades restringidas que requieren licencias de Dynamics 365
Integración de SharePoint, OneNote y OneDrive
Crear un informe de Power BI
Traducir texto de campos y entidades personalizado
Importar texto de campos y entidades traducido a una aplicación
Seguridad de Common Data Service
Información general sobre los límites de API
Para desarrolladores
Generador de IA
Uso del generador de IA en PowerApps
Aprender de otros
Seminarios web
Blog
Foros
Solución de problemas
Sugerencias de rendimiento de las aplicaciones de lienzo
Sugerencias de rendimiento de las aplicaciones de lienzo
Problemas y resoluciones habituales
Obtener un id. de aplicación o de sesión
Solución de problemas de inicio de PowerApps
Solucionar problemas de Power Query
Soporte técnico
¿Qué es PowerApps?
15/11/2019 • 5 minutes to read • Edit Online

PowerApps es un conjunto de aplicaciones, servicios, conectores y plataforma de datos que proporciona un


entorno de desarrollo rápido de aplicaciones para crear aplicaciones personalizadas para necesidades
empresariales. Con PowerApps, puede crear rápidamente aplicaciones empresariales personalizadas que se
conectan a los datos empresariales almacenados ya sea en la plataforma de datos subyacente (Common Data
Service) o en varios orígenes de datos en línea y locales (SharePoint, Excel, Office 365, Dynamics 365, SQL Server,
etc.).
Las aplicaciones compiladas mediante PowerApps proporcionan funciones enriquecidas de flujo de trabajo y lógica
de negocios para transformar los procesos de negocio manuales en procesos automatizados y digitales. Además,
las aplicaciones compiladas mediante PowerApps tienen un diseño dinámico y se pueden ejecutar sin problemas
en el explorador o en dispositivos móviles (teléfono o tableta). PowerApps "democratiza" la experiencia de
compilación de aplicaciones de negocios personalizadas ya que permite a los usuarios crear aplicaciones
empresariales personalizadas y con múltiples características sin escribir código.
PowerApps también proporciona una plataforma extensible que permite a los desarrolladores profesionales
interactuar mediante programación con datos y metadatos, aplicar lógica de negocios, crear conectores
personalizados y realizar la integración con datos externos.
Para obtener más información, consulte el canal de PowerApps en YouTube.

PowerApps para creadores de aplicaciones


Con PowerApps, puede crear tres tipos de aplicaciones: lienzo, controlado por modelosy portal. Más
información: información general sobre la creación de aplicaciones en PowerApps.
Para crear una aplicación, empiece por make.powerapps.com.
PowerApps Studio es el diseñador de aplicaciones que se usa para compilar aplicaciones de lienzo. El
diseñador de aplicaciones hace que la creación de aplicaciones se parezca más a la creación de un conjunto
de diapositivas en Microsoft PowerPoint. Más información: generación de una aplicación a partir de datos
El diseñador de aplicaciones para las aplicaciones basadas en modelos permite definir el mapa del sitio y
agregar componentes para crear una aplicación basada en modelos. Más información: diseño de
aplicaciones controladas por modelos mediante el diseñador de aplicaciones

PowerApps para usuarios de la aplicación


Puede ejecutar aplicaciones que haya creado, o que otra persona haya creado y compartido con usted, en un
explorador o en dispositivos móviles (un teléfono o una tableta). Más información: Buscar y ejecutar aplicaciones

PowerApps para administradores


Los administradores de PowerApps pueden usar:
El Centro de administración de PowerApps (admin.powerapps.com) para crear y administrar entornos,
usuarios, roles y directivas de prevención de pérdida de datos.
Centro de administración de plataforma de energía (admin.powerplatform.Microsoft.com) para
administrar entornos, obtener recomendaciones de autoayuda en tiempo real y soporte técnico para
PowerApps y Power Automatic, y ver análisis de Common Data Service.
Más información: Administración de PowerApps

PowerApps para desarrolladores


Los desarrolladores son creadores de aplicaciones que pueden escribir código para ampliar la personalización y
creación de aplicaciones de negocio. Los desarrolladores pueden usar código para crear datos y metadatos, aplicar
la lógica del lado servidor mediante funciones de Azure, complementos y extensiones de flujo de trabajo, aplicar la
lógica del lado cliente con JavaScript, realizar integración con datos externos mediante webhooks y entidades
virtuales, crear conectores personalizados e insertar aplicaciones en las experiencias de sitios web para crear
soluciones integradas. Más información: PowerApps para desarrolladores

PowerApps y Dynamics 365


Las aplicaciones de Dynamics 365, como Dynamics 365 sales, Dynamics 365 Customer Service, Dynamics 365
marketing usan también la plataforma de datos subyacente (Common Data Service) que usa PowerApps para
almacenar y proteger los datos. Esto permite crear aplicaciones mediante PowerApps y Common Data Service
directamente a partir de los datos elementales de su empresa que ya se usan en Dynamics 365 sin necesidad de
efectuar la integración. Más información: Dynamics 365 y Common Data Service

Probar PowerApps de forma gratuita


Puede probar PowerApps de forma gratuita si se registra para una prueba de 30 días o un plan de la comunidad.
Registro para obtener una licencia gratuita para
probar PowerApps
07/01/2019 • 12 minutes to read • Edit Online

Para crear una aplicación en PowerApps, necesitará uno de los distintos tipos de licencias que proporcionan
diferentes niveles de funcionalidad. Ya tiene una licencia para PowerApps si la organización ha comprado
cualquiera de las versiones de Office 365 o Dynamics 365 para usted, o bien si ha comprado licencias del
Plan 1 o Plan 2 de PowerApps para usted.

NOTE
Si es un administrador, vea Compra de PowerApps para la organización o PowerApps in your organization Q&A
(Preguntas y respuestas sobre PowerApps en la organización).

Puede averiguar qué licencias incluye PowerApps y lo que ofrecen. Si todavía no está seguro de si ya tiene
una licencia, abra el sitio de PowerApps y, después, haga clic en Iniciar sesión.

Si no tiene una licencia o si quiere más funcionalidad de la que ofrece la licencia actual, puede registrarse
para una evaluación gratuita del Plan 2 de PowerApps. Esta licencia ofrece toda la funcionalidad de
PowerApps pero expira después de 30 días.

Actualizar una licencia existente


Puede iniciar una evaluación gratuita de 30 días del Plan 2 de PowerApps si inicia sesión en PowerApps con
una licencia existente y después prueba una de estas características:
Crear y administrar una instancia de Common Data Service.
Modelar sus datos con Common Data Service.
Crear y administrar entornos desde el Centro de administración de PowerApps.
Administrar una puerta de enlace de datos local en PowerApps.
Si prueba alguna de estas características sin una licencia del Plan 2 de PowerApps, se le pedirá que inicie la
evaluación gratuita de 30 días. Simplemente haga clic en Iniciar mi prueba y, después, acepte los términos
de uso en el cuadro de diálogo que aparece.

Obtener una licencia desde cero


Si no tiene una licencia para PowerApps, puede registrarse para una evaluación gratuita de 30 días del Plan
2 de PowerApps desde el sitio de PowerApps.
Si usa un explorador en un teléfono, pulse en el icono de menú en la esquina superior derecha y
pulse en Regístrese gratis.
Si usa un explorador en otro tipo de dispositivo, haga clic en Regístrese gratis en la esquina
superior derecha.
Cerca de la parte central de la pantalla, haga clic en Precios y después en Iniciar evaluación gratuita.

En el cuadro de diálogo que aparece, escriba o pegue la dirección de correo electrónico profesional o
educativa, y pulse o haga clic en Enviar.

IMPORTANT
No se admiten direcciones de servicios de correo electrónico de consumidor, proveedores de telecomunicaciones,
gubernamentales y militares, lo que incluye:
outlook.com, hotmail.com, gmail.com, etc.
.gov y .mil
Si intenta suscribirse con una dirección de correo electrónico personal, recibirá un mensaje que indica que debe usar
una dirección profesional o educativa.

Si PowerApps reconoce su organización, puede iniciar sesión con sus credenciales para esa organización (y
omitir el resto de estas instrucciones).

En caso contrario, se le pedirá que compruebe su correo electrónico.

En el mensaje de correo electrónico, haga clic en el vínculo para comprobar su dirección de correo
electrónico y (si se le solicita) proporcionar más información.
Cuando aparezca este cuadro de diálogo, haga clic en Iniciar y, después, empiece a usar PowerApps.

NOTE
Si quiere más tiempo para evaluar PowerApps, puede solicitar la ampliación del período de evaluación gratuita por
otros 30 días.

Preguntas más frecuentes


¿Qué características Premium incluye la licencia de evaluación?
Acceso a Common Data Service, que es una plataforma de datos empresarial segura creada en
PowerApps. Common Data Service cuenta con cientos de entidades empresariales estándar, por lo
que todas las aplicaciones pueden compartir la misma definición de "cliente", "producto", "cliente
potencial", etc.
Acceso a conexiones Premium, como Salesforce, DB2, Zendesk y Common Data Service. Con
muchos planes de Office 365 y Dynamics 365, puede conectarse a orígenes de datos, como Office
365, Dynamics 365, Dropbox y Twitter. Con la licencia de evaluación, también se puede conectar a
datos a través de estos conectores Premium y muchos más:

En la lista completa de conectores, los conectores Premium se muestran con una notificación:

Acceso al centro de administración de PowerApps, en el que puede administrar sus entornos,


bases de datos, permisos de usuario y directivas de datos. Más información
Crear aplicaciones en modo controlado por modelos en el que se agregan componentes a una
aplicación y se permite a PowerApps crear su diseño y otros elementos de interfaz.
Para obtener más información sobre la capacidad y funcionalidad adicionales de la licencia de evaluación,
vea la página de precios.
¿Qué dirección de correo electrónico puedo usar?
Puede usar una dirección profesional o educativa para registrarse para obtener una licencia de evaluación.
Si usa otro tipo de dirección, es posible que experimente uno de los síntomas de esta tabla.

SÍNTOMA/MENSAJE DE ERROR CAUSA Y SOLUCIÓN

Direcciones de correo electrónico personales (por PowerApps no admite las direcciones de correo electrónico
ejemplo, nancy@gmail.com) proporcionadas por proveedores de telecomunicaciones o
servicios de correo electrónico de consumidor.
Recibe un mensaje similar al siguiente durante la
suscripción: Para completar la suscripción, inténtelo de nuevo con una
dirección de correo electrónico asignada por su trabajo o
You entered a personal email address: Please institución educativa.
enter your work email address so we can securely
store your company's data.

O bien

That looks like a personal email address. Enter


your work address so we can connect you with
others in your company. And don’t worry. We won’t
share your address with anyone.

Direcciones de correo electrónico .gov o .mil PowerApps no admite direcciones .gov o .mil en este
momento.
Recibe un mensaje similar al siguiente durante la
suscripción:

PowerApps unavailable: PowerApps is not available


for users with .gov or .mil email addresses at
this time. Use another work email address or
check back later.

O bien

We can't finish signing you up. It looks like


Microsoft PowerApps isn't currently available for
your work or school.
SÍNTOMA/MENSAJE DE ERROR CAUSA Y SOLUCIÓN

La dirección de correo electrónico no es un Su organización inicia sesión en Office 365 y otros


identificador de Office 365 servicios de Microsoft con otros identificadores que no
son direcciones de correo electrónico. Por ejemplo, su
Recibe un mensaje similar al siguiente durante la dirección de correo electrónico puede ser
suscripción: Nancy.Smith@contoso.com pero su identificador es
nancys@contoso.com.
We can't find you at contoso.com. Do you use a
different ID at work or school? Try signing in Para completar la suscripción, use el identificador que su
with that, and if it doesn't work, contact your
IT department. organización le haya asignado para iniciar sesión en Office
365 u otros servicios Microsoft. Si no sabe cuál es,
póngase en contacto con el administrador de TI.

¿Qué sucede si expira mi evaluación?


Transcurridos 30 días, se le pedirá que solicite una extensión de la evaluación o que compre un plan. Puede
encontrar información sobre todos los planes en la página de precios.
Si tiene acceso a PowerApps mediante Office 365, Dynamics 365 o el Plan 1 de PowerApps, todavía
puede usar PowerApps, pero es posible que pierda el acceso a Common Data Service, los conectores
Premium, el Centro de administración de PowerApps y otras características del Plan 2 de
PowerApps. Por ejemplo, esta pantalla puede aparecer si intenta crear una conexión Premium:

Si el acceso a PowerApps se realiza únicamente a través de la evaluación (para la que se ha


registrado en el sitio de PowerApps o en la página de precios), puede solicitar una ampliación de 30
días de la licencia de evaluación para conservar el acceso a PowerApps.
¿Cuándo expirará mi licencia de evaluación?
Para determinar cuándo va a expirar la licencia de evaluación, haga clic en el icono de engranaje cerca de la
esquina superior derecha del sitio de PowerApps y, después, seleccione Planes.

¿Qué les sucede a mis datos si expira mi licencia de evaluación?


Si todavía tiene acceso a PowerApps, puede seguir usándolo. Todos los datos que se encuentren en
Common Data Service seguirán allí y cualquier aplicación o flujo que haya usado Common Data Service
como origen de datos continuará ejecutándose. Pero no podrá usar esa aplicación o flujo, y se le pedirá que
solicite una ampliación de 30 días de la evaluación o que compre un plan si intenta modificar un esquema o
entidades en Common Data Service.
¿Qué debo hacer después?
Puede conservar el acceso a PowerApps y a sus características siguiendo uno de estos pasos:
Ampliar la licencia de evaluación durante 30 días cuando se le solicite.
Repasar los planes disponibles en la página de precios, de PowerApps y después comprar uno.

¿Tiene más preguntas?


Pruebe la comunidad de PowerApps.
Plan de la comunidad de PowerApps: un entorno de
desarrollo gratuito para uso individual
07/01/2019 • 12 minutes to read • Edit Online

Si desea desarrollar habilidades y obtener información sobre PowerApps, Microsoft Flow y Common Data
Service, el Plan de la comunidad de PowerApps es el plan adecuado para usted. El Plan de la comunidad de
PowerApps le ofrece un entorno de desarrollo gratuito para uso individual en el que puede:
Aprender a crear aplicaciones empresariales y flujos de trabajo con la funcionalidad completa de PowerApps y
Microsoft Flow.
Conectar a cualquier origen de datos mediante alguno de nuestros más de cien conectores listos para su uso o
creando sus propios conectores personalizados.
Explorar cómo utilizar Common Data Service para crear aplicaciones de negocio con el modelo de datos
común y el SDK.
Exportar las soluciones creadas en su entorno individual y mostrarlas en AppSource para que los clientes
puedan usar una versión de prueba.

¿Quién puede registrarse en el Plan de la comunidad de PowerApps?


Cualquiera con una cuenta profesional o educativa puede registrarse en el Plan de la comunidad de PowerApps.
Pero se recomienda especialmente este plan si:
Desea desarrollar habilidades y obtener información sobre PowerApps, Microsoft Flow y Common Data
Service.
Está interesado en crear aplicaciones empresariales y flujos de trabajo, y distribuirlos en AppSource.

¿Dónde puedo registrarme en el Plan de la comunidad de PowerApps?


Regístrese en el sitio web del Plan de la comunidad de PowerApps. Si es ya es usuario de PowerApps con Office
365 o 365 Dynamics, también puede crear un entorno para uso individual.
Después de registrarse en el plan de la comunidad, será redirigido al sitio de PowerApps y se desplegará su
entorno individual. El entorno tendrá su nombre, por ejemplo, "Entorno de John Doe". Si ya hay un entorno con
ese nombre, el entorno individual se llamará "Entorno de John Doe (1)". La siguiente imagen muestra cómo
aparece el entorno.

Obtener el Plan de la Comunidad con Visual Studio Dev Essentials


Si ya es usuario de Visual Studio Dev Essentials, PowerApps está incluido en sus ventajas. Vaya a Mis ventajas y
haga clic o pulse el icono de PowerApps para registrarse en el Plan de la comunidad de PowerApps.
¿Qué características se incluyen en el Plan de la Comunidad de
PowerApps?
Con el entorno individual, tendrá las siguientes funcionalidades:

FUNCIONALIDADES ENTORNO PARA USO INDIVIDUAL

Características principales

Crear y ejecutar aplicaciones Sí. Puede crear un número ilimitado de aplicaciones

Compartir aplicaciones* No

Usar Common Data Service Sí**

Modelar los datos mediante Common Data Service Sí**

Administración de entornos y directivas de usuario de nivel Sí


empresarial

Conectividad

Conectarse a Office 365, Dynamics 365 y otros conectores Sí

Conectar con servicios basados en la nube como Azure SQL, Sí


Dropbox, Twitter y muchos otros

Utilizar conectores premium como Salesforce, DB2 y muchos Sí


otros

Tener acceso a datos locales mediante una puerta de enlace Sí


local

Crear conectores personalizados para conectarse a sus Sí. Puede crear un número ilimitado de conectores
propios sistemas personalizados

Common Data Service

Crear y ejecutar aplicaciones usando Common Data Service Sí**

Modelar los datos en Common Data Service Sí**


FUNCIONALIDADES ENTORNO PARA USO INDIVIDUAL

Crear una base de datos de Common Data Service Sí**

Administración

Agregar colaboradores como creadores de entornos y No


administradores

Agregar colaboradores a los roles de base de datos No

Admite directivas de datos establecidas por el administrador Sí


de Office 365

Establecer directivas de datos para el entorno individual Sí

*No puede compartir aplicaciones, flujos, conexiones, etc. con otros usuarios del inquilino. Tampoco puede
agregar a otro usuario como administrador o creador del entorno, ni a los roles de la base de datos del centro de
administración.
**La creación de una base de datos con Common Data Service no está disponible actualmente en un entorno
individual, y estará disponible de nuevo próximamente. Si creó una base de datos en un momento anterior, podrá
seguir usándola sin ningún problema.

¿Cuáles son los límites de capacidad para el entorno individual?


CAPACIDAD

Ejecuciones de flujo/mes 750

Tamaño de base de datos 200 MB

File Storage 2 GB

No se puede aplicar complementos a las cantidades que se incluyen. Si se alcanzan los límites de capacidad, se
recomienda adquirir PowerApps Plan 2. Puede obtener información en la página de precios de PowerApps.

NOTE
La capacidad del entorno individual, tanto si se utiliza como si no, no contribuye a la cuota total de su empresa.

Publicación en AppSource
¿Tiene una aplicación que le gustaría compartir con los clientes? Ahora se admiten soluciones de versión de
prueba de PowerApps en AppSource.com como un medio de compartir aplicaciones y flujos con los clientes, y
generar clientes potenciales para su empresa. Para más información, consulte Proporcionar a los clientes una
versión de prueba de las aplicaciones en AppSource.

Preguntas más frecuentes


P: ¿ ¿Qué debo hacer si se alcanzan los límites de capacidad del entorno?
R: Hay una capacidad limitada porque este entorno se ha diseñado para su uso individual, no para un equipo o
uso en producción. La capacidad proporcionada es:

CAPACIDAD

Ejecuciones de flujo/mes 750

Tamaño de base de datos 200 MB

File Storage 2 GB

Si alcanza uno o varios límites de capacidad, se recomienda la adquisición de un plan que admita su uso en
producción. Obtenga información sobre los planes y sus límites en la página de precios de PowerApps.
P: ¿Puedo transferir las aplicaciones, flujos y otros recursos que se crean en el entorno individual a otro entorno?
R: Sí, podrá exportar los recursos de este entorno a otros entornos. Para más información, consulte Migración de
aplicaciones entre entornos e inquilinos.
P: ¿Mi suscripción al Plan de la Comunidad de PowerApps nunca expira?
R: Puede usar su suscripción al Plan de la Comunidad de PowerApps perpetuamente de manera gratuita. Si está
utilizando activamente un entorno individual, no perderá el acceso a ninguno de los recursos o funcionalidades del
mismo. Sin embargo, quizás experimente un retraso al acceder a la base de datos de Common Data Service por
primera vez tras un largo período de inactividad. Este retraso no afecta a los datos o las entidades almacenadas en
Common Data Service.
P: ¿Puedo obtener o crear varios entornos individuales?
R: No, solo puede tener un entorno individual que PowerApps crea para usted al registrarse para obtener el Plan
de la Comunidad.
P: ¿Cuál es la diferencia entre Evaluación gratuita del Plan 2 de PowerApps y el Plan de la Comunidad de
PowerApps? ¿A cuál debería suscribirme?
R: Tanto PowerApps Plan 2 Trial como el Plan de la Comunidad de PowerApps son gratuitos, pero se han creado
con propósitos diferentes:
Evaluación gratuita del Plan 2 de PowerApps proporciona el Plan 2 de PowerApps durante 30 días. Está
pensado para probar PowerApps, Common Data Service y Microsoft Flow. Una vez que expire el período de
prueba, puede adquirir un plan. Si ya está utilizando PowerApps con Office 365 o Dynamics 365, este el plan
adecuado para probar las funcionalidades premium de PowerApps, que están disponibles con PowerApps Plan 2.
El Plan de la Comunidad de PowerApps proporciona acceso a las funcionalidades premium de PowerApps,
Common Data Service y Microsoft Flow para uso individual. Este plan está pensado principalmente para fines de
aprendizaje o para crear soluciones empresariales para distribuir como versión de prueba de AppSource. Este plan
está perpetuamente disponible, pero solo para aprendizaje y desarrollo de habilidades con PowerApps, Common
Data Services y Microsoft Flow.
P: ¿Puedo registrarme con mi cuenta personal?
R: No, solo se puede registrar con su cuenta profesional o educativa. Actualmente no se admite el registro con una
cuenta personal.
P: ¿Puedo eliminar mi entorno individual?
R: No puede eliminar este entorno usted mismo. El administrador del inquilino tiene permisos para eliminar el
entorno.
Novedades de PowerApps
08/11/2019 • 2 minutes to read • Edit Online

En este tema se proporcionan recursos donde puede obtener información sobre las nuevas características que se
han publicado recientemente, las características nuevas que se publicarán en los próximos meses y las limitaciones
conocidas.

Publicaciones semanales
Para obtener información sobre características nuevas, correcciones y mejoras publicadas en las últimas semanas,
vea Released versions for Microsoft PowerApps (Versiones publicadas de Microsoft PowerApps).
Para obtener más detalles sobre cómo buscar información en las notas de la versión semanales, lea esta entrada de
blog.

NOTE
Las versiones se implementan durante varios días. Es posible que las funcionalidades nuevas o actualizadas no se muestren
inmediatamente.

Plan de versión
Para información sobre las características nuevas que se van a publicar en los próximos meses y que puede usar
para el planeamiento, consulte:
Notas de la versión de abril de 2019
Plan de versión 2 de 2019

Limitaciones conocidas
Para más información sobre las limitaciones conocidas, consulte Problemas y resoluciones habituales.
¿Cómo se buscan y ejecutan las aplicaciones?
01/10/2019 • 3 minutes to read • Edit Online

No es necesario que realice las tareas manualmente. Con PowerApps, puede crear y usar una aplicación de lienzo
o basada en modelos para realizar el trabajo rápidamente. Una vez que haya creado una aplicación, podrá
compartirla con la organización.
Las aplicaciones de lienzo proporcionan un gran control sobre la experiencia del usuario de la aplicación. Un
creador de aplicaciones puede usar plantillas para crear una aplicación de lienzo o configurar la aplicación como
quiera. Una aplicación de lienzo es, como su nombre indica, un lienzo en blanco para crear una aplicación que
satisfaga las necesidades de los usuarios de una organización.
Como las aplicaciones de lienzo pueden usarse prácticamente para cualquier fin, no hay mucha documentación de
ayuda sobre cómo usar una aplicación una vez creada. Si necesita ayuda con el uso de una aplicación de lienzo,
póngase en contacto con el creador de la aplicación o con el administrador de PowerApps.
Las aplicaciones controladas por modelos usan la Interfaz unificada que proporciona un diseño dinámico y
accesible. Puede ejecutar la aplicación en un explorador web o en dispositivos móviles conocidos. La aplicación
tiene varios componentes, entre los cuales se incluyen los paneles, los formularios, las vistas, los gráficos y los
procesos empresariales, que contribuyen a facilitar el uso de la aplicación.
En esta sección se proporciona información acerca de cómo buscar y ejecutar aplicaciones de lienzo y controladas
por modelos desde diversos lugares. También se proporciona información sobre cómo navegar y trabajar en una
aplicación basada en modelos: Uso de aplicaciones controladas por modelos.

¿Qué se requiere para ejecutar aplicaciones?


Asegúrese de que está usando una plataforma de dispositivo y un explorador compatibles.
Para ejecutar aplicaciones de lienzo, descargue e instale PowerApps desde el App Store o Google Play.
Para ejecutar aplicaciones controladas por modelos, realice lo siguiente:
Si usa un teléfono, descargue e instale Dynamics 365 para teléfonos desde el App Store o Google Play.
Si usa una tableta, descargue Dynamics 365 para tabletas desde el App Store, Google Play o
Microsoft Store.
Ejecución de una aplicación en un explorador web
23/08/2019 • 4 minutes to read • Edit Online

Cuando crea una aplicación o alguien comparte una aplicación con usted, puede ejecutar la aplicación en
Windows, iOS, Android o en un explorador web. En este tema aprenderá a ejecutar una aplicación de lienzo o
controlada por modelos en un explorador web desde la página principal de Dynamics 365.
Para seguir este inicio rápido, necesita:
Una licencia de PowerApps. Esta está disponible con un plan de PowerApps, como la versión de prueba del
Plan 2 de PowerApps, o cualquiera de los planes de Microsoft Office 365 o Dynamics 365 que incluyen
PowerApps.
Acceso a una aplicación que haya compilado o que otra persona haya compilado y compartido con usted.
Acceso a un explorador web y un sistema operativo compatibles.
Para las aplicaciones de Canvas, consulte: Requisitos del sistema, límites y valores de configuración
Para aplicaciones controladas por modelos, consulte: Exploradores Web y dispositivos móviles
compatibles

Inicio de sesión en Dynamics 365


Inicie sesión en Dynamics 365 en https://home.dynamics.com.

Buscar una aplicación en la página principal


En la página principal se pueden mostrar varios tipos de aplicaciones empresariales, pero se puede buscar una
aplicación específica si se escribe al menos una parte de su nombre en el cuadro de búsqueda. También se puede
filtrar la lista para mostrar solo las aplicaciones creadas por un origen específico, como PowerApps. Para ello,
seleccione filtrar y, a continuación, seleccione el origen.
Si ha instalado la aplicación recientemente, es posible que no aparezca inmediatamente en la lista de aplicaciones.
Seleccione sincronizar para mostrar todas las aplicaciones. Este proceso puede tardar hasta un minuto.

Ejecutar una aplicación desde una dirección URL


Se puede guardar la dirección URL de una aplicación como un marcador en el explorador y ejecutarla
seleccionando el marcador, o bien se puede enviar una dirección URL como un vínculo por correo electrónico. Si
otro usuario creó una aplicación y la compartió con usted en un correo electrónico, puede ejecutar la aplicación
seleccionando el vínculo en el correo electrónico. Al ejecutar una aplicación desde una dirección URL, es posible
que se le solicite que inicie sesión con las credenciales de Azure Active Directory.
Conectarse a datos
Si una aplicación requiere una conexión a un origen de datos o permiso para usar las funcionalidades del
dispositivo (como la cámara o los servicios de ubicación), debe dar su consentimiento antes de usar la aplicación.
Habitualmente, solo se le solicitará la primera vez.

Cerrar una aplicación


Para cerrar una aplicación, cierre la sesión en la página de inicio de 365 Dynamics o abra otra aplicación.

Pasos siguientes
En este tema ha aprendido a ejecutar una aplicación de lienzo o controlada por modelos en un explorador web.
Para obtener información sobre cómo:
ejecutar una aplicación de lienzo en un dispositivo móvil, consulte ejecutar una aplicación de lienzo en un
dispositivo móvil
ejecutar una aplicación controlada por modelos en un dispositivo móvil, consulte ejecutar una aplicación
controlada por modelos en un dispositivo móvil
usar una aplicación controlada por modelos, consulte uso de aplicaciones controladas por modelos
Ejecución de una aplicación de lienzo en un
dispositivo móvil
08/11/2019 • 6 minutes to read • Edit Online

Cuando crea una aplicación o alguien comparte una aplicación con usted, puede ejecutar la aplicación en
Windows, iOS, Android o en un explorador web. En este tema aprenderá a ejecutar una aplicación de lienzo en un
dispositivo móvil. Las aplicaciones que se ejecutan en un dispositivo móvil pueden aprovechar las
funcionalidades del dispositivo, como los servicios de ubicación y la cámara.
Para seguir este procedimiento, si no está registrado en PowerApps, regístrese gratuitamente antes de empezar y,
después, descargue PowerApps desde App Store o Google Play en dispositivos iPhone, iPad o Android que
ejecuten un sistema operativo compatible. Además, asegúrese de que tiene acceso a una aplicación de lienzo que
ha creado o que otra persona ha creado y compartido con usted.

Abrir PowerApps e iniciar sesión


Abra PowerApps en el dispositivo móvil e inicie sesión con sus credenciales de Azure Active Directory.

Si tiene la aplicación Microsoft Authenticator instalada en el dispositivo móvil, simplemente escriba el nombre de
usuario cuando se le solicite y, después, apruebe la notificación enviada al dispositivo.

Buscar la aplicación
Para que sea más fácil encontrar la aplicación, abra el menú PowerApps y, después, seleccione un filtro.
Los siguientes filtros están disponibles:
Todas las aplicaciones: todas las aplicaciones a las que tiene acceso, incluidas las aplicaciones que creó y
las que otros compartieron con usted.
Mis aplicaciones: las aplicaciones que ha ejecutado al menos una vez.
Aplicaciones de ejemplo: aplicaciones de ejemplo de Microsoft que muestran escenarios de aplicaciones
reales con datos ficticios para ayudar a explorar las posibilidades de diseño.
Favoritos: muestra las aplicaciones que se han marcado haciendo clic en los puntos suspensivos (...) en el
icono de la aplicación y, después, en Favoritos. Para quitar una aplicación de esta lista, pulse los puntos
suspensivos (...) en el icono de la aplicación y, después, pulse Quitar de Favoritos.

Después de filtrar las aplicaciones, puede ordenar la lista filtrada por la fecha de la última vez que se abrieron o
modificaron, o bien alfabéticamente por nombre. Estas preferencias se conservan cuando cierra y vuelve a abrir
PowerApps.

Si conoce el nombre de la aplicación que quiere ejecutar, pulse el icono de búsqueda en la parte superior de
Powerapps y, después, escriba parte del nombre en el cuadro de búsqueda.

Si filtró las aplicaciones, se buscará en la lista filtrada.

Ejecutar una aplicación


Para ejecutar una aplicación de lienzo en un dispositivo móvil, pulse el icono de la aplicación. Si otro usuario creó
la aplicación de lienzo y la compartió con usted en un correo electrónico, puede ejecutar la aplicación, si pulsa el
vínculo del correo electrónico.
Si es la primera vez que usa PowerApps, en una pantalla se muestra el gesto de deslizar rápidamente para cerrar
la aplicación.

Dar consentimiento
Si una aplicación requiere una conexión a un origen de datos o permiso para usar las funcionalidades del
dispositivo (como la cámara o los servicios de ubicación), debe dar su consentimiento antes de usar la aplicación.
Habitualmente, solo se le solicitará la primera vez.

Anclar una aplicación a la pantalla de inicio


Puede anclar una aplicación a la pantalla de inicio del dispositivo para un acceso rápido. Pulse los puntos
suspensivos (...) del icono de la aplicación, pulse Anclar a página principal y, luego, siga las instrucciones que
aparecen.
Cerrar una aplicación
Para cerrar una aplicación, use el dedo para deslizarlo desde el borde izquierdo de la aplicación a la derecha. En
los dispositivos Android, también puede presionar el botón Atrás y luego confirmar que quiere cerrar la
aplicación.

Pasos siguientes
En este tema ha aprendido a ejecutar una aplicación de lienzo en un dispositivo móvil. También puede ejecutar
aplicaciones controladas por modelos en un dispositivo móvil.
Ejecución de una aplicación controlada por modelos en un dispositivo móvil
Ejecutar una aplicación controlada por modelos en
un dispositivo móvil
08/11/2019 • 2 minutes to read • Edit Online

Después de crear la aplicación y de compartirla con usted, puede ejecutarla en una serie de dispositivos móviles
conocidos, como Windows, iOS, Android o en un explorador web. En este tema aprenderá a ejecutar una
aplicación controlada por modelos en un dispositivo móvil.
Para seguir este procedimiento, si no está registrado en PowerApps, regístrese gratuitamente antes de empezar.
Asegúrese también de que tiene acceso a una aplicación que haya creado o que otra persona haya creado y
compartido con usted.

Ejecución de la aplicación controlada por modelos


Las aplicaciones controladas por modelos no se ejecutan en la aplicación móvil de PowerApps, sino que se
ejecutan en un dispositivo móvil con la aplicación móvil de Dynamics 365 o en el explorador web del teléfono.
Uso de la aplicación móvil
Instale la aplicación Dynamics 365 para teléfonos o Dynamics 365 para tabletas en la tienda de aplicaciones de su
dispositivo. Más información: Instalar Dynamics 365 para teléfonos y tabletas

Ejecución de la aplicación en el explorador del teléfono


Vaya a la página principal de Dynamics 365 o escriba la dirección URL de la aplicación directamente en el
explorador web de su teléfono y siga las instrucciones en pantalla para cargar la aplicación. Más información:
Ejecución de una aplicación en un explorador web
Pasos siguientes
En este tema ha aprendido a ejecutar una aplicación controlada por modelos en un dispositivo móvil. Para
obtener información acerca de:
mediante una aplicación controlada por modelos, consulte uso de aplicaciones controladas por modelos .
ejecutar una aplicación de lienzo en un dispositivo móvil, consulte ejecutar una aplicación de lienzo en un
dispositivo móvil
Ejecutar una aplicación de lienzo desde una página
de SharePoint
26/07/2019 • 2 minutes to read • Edit Online

Puede agregar una aplicación de lienzo de PowerApps a una página de SharePoint Online mediante el elemento
web de PowerApps. Después los usuarios podrán ejecutar la aplicación desde la página de SharePoint Online. Más
información: Office Usar el elemento Web de PowerApps
Adición de una aplicación a Microsoft Teams
08/11/2019 • 3 minutes to read • Edit Online

Microsoft Teams es una plataforma de colaboración basada en chat creada sobre tecnologías de Office 365. Se
puede personalizar la experiencia de Teams mediante la adición de aplicaciones de lienzo de PowerApps a los
canales de Teams. En este tema aprenderá a agregar la aplicación de ejemplo Presentación de productos a un canal
de Teams y abrirla luego desde ese canal.

Si no está registrado para PowerApps, regístrese gratuitamente antes de empezar.

Requisitos previos
Para seguir este procedimiento, necesita una suscripción a Office 365 y un canal en Teams.

Inicio de sesión en PowerApps


Inicie sesión en PowerApps en https://make.powerapps.com.

Incorporación de una aplicación


1. En Microsoft Teams, seleccione un equipo y un canal bajo ese equipo. En este ejemplo, es el canal General
del equipo Desarrollo empresarial.
2. Haga clic en + para agregar una pestaña.

3. En el cuadro de diálogo Add a tab (Agregar una pestaña), haga clic en PowerApps.

4. Seleccione Aplicaciones de ejemplo > Presentación de productos > Guardar.


La aplicación ya está disponible para su uso en el canal.

NOTE
Debe compartir sus propias aplicaciones antes de agregarlas a Teams (las aplicaciones de ejemplo se comparten de forma
predeterminada).
Abrir una aplicación
1. En Microsoft Teams, seleccione el equipo y el canal que contiene la aplicación.

2. Haga clic en la pestaña Presentación de productos.

La aplicación se abre en el canal.

Problemas conocidos
En la aplicación de escritorio de Microsoft Teams:
Las aplicaciones tienen que cargar contenido, como imágenes y archivos .pdf a través de una conexión segura
(https).
No todos los sensores, como Aceleración, Brújula, y Ubicación, son compatibles.
Se admiten únicamente estos formatos de audio: AAC, H264, OGG Vorbis y WAV.
Limpiar los recursos
Para quitar la aplicación del canal, haga clic en la pestaña Presentación de productos > Quitar.

Pasos siguientes
En este tema ha agregado la aplicación de ejemplo Presentación de productos a un canal de Teams y luego la ha
abierto en ese canal. Para obtener más información sobre PowerApps, continúe con los tutoriales de PowerApps.
Tutoriales de PowerApps
Detectar aplicaciones a través de AppSource
08/11/2019 • 2 minutes to read • Edit Online

Las aplicaciones que se crean y publican con PowerApps se detectan y utilizan en Dynamics 365 en la Web.
Muestra todas las aplicaciones: las que haya decidido usar específicamente (es decir, al iniciarlas desde un correo
electrónico compartido o abrirlas desde AppSource) o las que un administrador haya aprovisionado para su uso.
Esto incluye todas las aplicaciones de PowerApps, así como las de Dynamics 365 de Microsoft. Puede buscar
aplicaciones, filtrar por entorno y anclar las aplicaciones que use con más frecuencia a la parte superior de la
página.

Buscar aplicaciones a través de la galería de AppSource de la


organización
Ahora, Microsoft AppSource está insertada en la página principal de Dynamics 365 y en el panel de navegación
común. Incluye una galería privada de las aplicaciones que tiene disponibles dentro de su empresa. Seleccione
Obtener más aplicaciones en la página principal o el panel de tareas, y vaya a la pestaña Mi organización para
ver las aplicaciones que tiene disponibles.
Aquí aparecerán las aplicaciones creadas con PowerApps y compartidas con un grupo de seguridad o toda la
empresa con el permiso Usuario, en lugar de ocupar espacio en la página principal de forma predeterminada.
Cuando reciba una aplicación de AppSource, aparecerá en la página principal y podrá acceder a ella con facilidad a
lo largo de la experiencia.
Uso de aplicaciones controladas por modelos en
PowerApps
15/11/2019 • 2 minutes to read • Edit Online

Una aplicación controlada por modelos tiene varios componentes, como paneles, formularios, vistas, gráficos y
procesos empresariales, que juntos ayudan a facilitar el uso de la aplicación. En esta sección se proporciona
información sobre cómo navegar en una aplicación controlada por modelos, trabajar con registros, importar y
exportar datos, y automatizar procesos con Power Automatic.

IMPORTANT
Dado que las aplicaciones de canvas proporcionan mucho control sobre la experiencia del usuario y, en esencia, pueden ser
cualquier cosa, no hay mucha documentación de ayuda sobre cómo usar una aplicación de lienzo. Si necesita ayuda con el
uso de una aplicación de lienzo, póngase en contacto con el creador de la aplicación o con el administrador de PowerApps.

Temas relacionados
Experiencia de usuario mejorada con la interfaz unificada
Navegación básica en una aplicación controlada por modelos
Vea también
Búsqueda y ejecución de aplicaciones
¿Qué es una aplicación controlada por modelos?
¿Qué es una aplicación de lienzo?
Experiencia de usuario mejorada con la interfaz
unificada para aplicaciones controladas por modelos
08/11/2019 • 5 minutes to read • Edit Online

La interfaz unificada para aplicaciones controladas por modelos proporciona una experiencia de usuario coherente
y accesible en todos los dispositivos, ya sea en un equipo de escritorio, portátil, tableta o teléfono. Las aplicaciones
se escalan mediante el reflujo de los componentes en la pantalla. El diseño con capacidad de respuesta se adapta a
su entorno en función del tamaño de la pantalla, por lo que se puede mostrar más información en el espacio
disponible.

Para obtener información general sobre la interfaz unificada en las aplicaciones controladas por modelos, vea este
vídeo: Introducción a la interfaz unificada

NOTE
El cliente web heredado quedará en desuso y los clientes deben pasar a la interfaz unificada antes del 1 de octubre de 2020.
Para obtener más información, consulte blog: presentación de la escala de tiempo para pasar a la interfaz unificada. Para
obtener más información sobre cómo realizar la transición, consulte Inicio rápido de la transición.

Explora
Las opciones de menú permiten navegar rápidamente por las diferentes aplicaciones del sistema. Proporcionan
acceso rápido a los registros vistos recientemente y a los favoritos anclados.
1. El mapa del sitio se expande y se mantiene de forma predeterminada.
2. El área en la que se encuentra actualmente se resalta para indicar dónde se encuentra en la aplicación.
3. Las secciones Recientes y Anclados se muestran en la parte superior para su comodidad.
4. Utilice el selector de área para cambiar de aplicación.
5. Los iconos tienen colores únicos en la barra de comandos para poder distinguir los comandos.
Para obtener más información, vea navegación básica en una aplicación controlada por modelos.

Paneles y gráficos
Puede tener acceso a todos los paneles del sistema y del usuario desde las aplicaciones de interfaz unificadas. Los
paneles interactivos ahora están disponibles para todos los tipos de registros con capacidades de panel interactivo
más enriquecidas. Para obtener más información, vea realizar un seguimiento del progreso con paneles y gráficos.

Control de escala de tiempo


La vista de escala de tiempo le ayuda a colaborar con su equipo mediante el seguimiento de la comunicación de
los clientes en un registro en una sola página en una vista fácil de leer. Puede ver todo, desde publicaciones y
datos adjuntos de voz, hasta correos electrónicos y notas. Proporciona una forma rápida de ver todo el
subproceso de comunicación. Para obtener más información, vea Agregar una cita, correo electrónico, llamada de
teléfono, notas o actividad de tarea a la escala de tiempo.

Proceso empresarial
El mecanismo de acoplamiento ha mejorado el flujo de procesos empresariales. Puede acoplar la fase de proceso
empresarial en la pantalla para ayudarle a centrarse en la tarea a mano en el flujo del proceso empresarial. Esto es
especialmente útil cuando la fase del proceso tiene pasos complejos para completar. Para obtener más
información, vea trabajar con procesos empresariales.

Consejos
La experiencia de accesibilidad mejorada le permite usar lectores de pantalla para traducir información en pantalla
en sonido audible e imprimir en un lector de Braille para que más personas puedan usar la aplicación. Para
obtener más información, vea usar un lector de pantalla.

Creación de una aplicación de interfaz unificada


Si tiene requisitos para crear su propia experiencia en una interfaz unificada, puede crear una aplicación
controlada por modelos mediante el diseñador de aplicaciones. Vea información general sobre la creación de
aplicaciones controladas por modelos.
Comunidad de interfaz unificada
Vaya al sitio de la comunidad de interfaz unificada para obtener ayuda con la planeación y ejecución de una
transición fluida a la interfaz unificada y póngase en contacto con expertos y compañeros en blogs, seminarios
web, vídeos, eventos, etc.
Navegación básica en una aplicación controlada por
modelos
08/11/2019 • 6 minutes to read • Edit Online

Use la barra de navegación para acceder a su área de trabajo, crear un registro, buscar elementos o realizar otras
tareas en una aplicación controlada por modelos.

1. El mapa del sitio se expande y se conserva de forma predeterminada.


2. La subárea en la que se encuentra se resalta para indicarle su ubicación dentro de la aplicación.
3. Las secciones Recientes y Anclados se muestran en la parte superior para su comodidad.
4. Utilice el selector de área para cambiar de aplicación.
5. Los iconos tienen colores únicos en la barra de comandos para poder distinguir los comandos.

Vuelta a los registros, elementos o vistas recientes


Es probable que suela trabajar con los mismos registros. Por ejemplo, puede que normalmente acceda a un
mismo contacto o a una misma cuenta, o bien que trabaje constantemente con las mismas listas (o vistas) de
datos. Puede volver rápidamente a los registros o a las vistas que haya usado recientemente desde el mapa del
sitio. También puede anclar los registros y las vistas para que sean fáciles de encontrar.
1. En el sitio del mapa, seleccione Recientes.
2. En Recientes, elija a qué registro, elemento o vista quiere volver.

Anclaje de registros, elementos o vistas


1. En el sitio del mapa, seleccione Recientes para expandir la lista de elementos a los que ha accedido
recientemente.
2. Seleccione el icono de anclaje junto a un elemento de la lista Recientes para agregarlo a la lista Anclados.
Desanclaje de registros, elementos o vistas
1. En el mapa del sitio, seleccione Anclados para expandir la lista de elementos anclados.
2. Seleccione el icono para desanclar junto a un elemento para quitarlo de la lista.

Navegación por el conjunto de registros


Navegue por varios registros con vistas y consultas predefinidas. La navegación centrada en los registros mejora
la productividad, ya que los usuarios pueden ir directamente de un registro de la lista a otro y volver atrás
fácilmente sin perder la lista de trabajo.
Panel de referencias
El panel de referencias es una excelente manera de trabajar sin salir de la pantalla en la que esté. Puede buscar
otros elementos relacionados, como casos u oportunidades para una cuenta, dentro del contexto del registro que
está viendo sin tener que navegar a otra pantalla.

Para obtener más información sobre el panel de referencias, vea este vídeo:

Notificaciones
Hay tres tipos de notificaciones que se muestran en un formulario: informativo, ADVERTENCIA y error. Las
notificaciones siempre están disponibles en la parte superior del formulario, justo encima del encabezado.
Al seleccionar la notificación de error, se le llevará al campo del formulario en el que se produjo el error.
Si solo hay una notificación, verá una única línea.

Si hay más de una notificación, verá el número de notificaciones. Seleccione el botón de contenido adicional para
ver cada mensaje.

Cuadrículas
Las cuadrículas de la interfaz unificada se han mejorado para aumentar la cantidad de datos que pueden verse en
la pantalla. Las cuadrículas también tienen opciones de filtrado mejoradas que incluyen recordar el último filtro y
ordenar el orden.
Cuando el área de cuadrículas recupere datos, verá un indicador de carga que le permite saber que el sistema está
trabajando en la recuperación de datos.
La Página principal de la cuadrícula recuerda el filtro, la ordenación y el estado de la página al navegar hacia
delante y hacia atrás. Esto incluye la búsqueda rápida, el filtrado de columnas, el número de página, etc. La
navegación fuera de la página se abre con el estado inicial.
La barra de saltos usa el primer campo ordenado. Si no se ha realizado ningún cambio de ordenación, la barra de
saltos utiliza el campo principal.

Puede filtrar el campo tipo de actividad y seleccionar varios tipos de filtrado. Además, se pueden filtrar los
campos de entidad relacionados como el propietario, el estado y el motivo.
Al seleccionar el icono de jerarquía, se desplazará al formulario de jerarquía.

También puede abrir el campo principal y los campos de búsqueda en una nueva pestaña o ventana.
26/07/2019 • 2 minutes to read • Edit Online

Visualización del perfil de usuario


Su perfil de usuario muestra información útil sobre usted a toda la organización; por ejemplo, su información de
contacto, su organización y su rol de seguridad. Según el rol de seguridad, es posible que pueda realizar cambios
en el perfil de usuario.
1. En la esquina superior derecha de la pantalla, seleccione configuración personalización del botón. >
2. Desplácese hacia abajo hasta la parte inferior del cuadro de diálogo establecer opciones personales y, a
continuación, elija ver la información de usuario.
3. Seleccione las diferentes áreas, como Resumen, detalleso Administración , para ver los detalles del perfil.
Busque el administrador o el personal de soporte
técnico
04/11/2019 • 2 minutes to read • Edit Online

En ocasiones, es posible que se ejecuten varios problemas que requieran consulta al administrador. Si no sabe
quién es el administrador, puede usar la búsqueda avanzada para buscar el administrador.
1. Abra la aplicación.
2. En la barra de comandos, seleccione el botón búsqueda avanzada .
3. En la página Búsqueda avanzada, en la lista Buscar , seleccione usuarios.
4. Seleccione seleccionary, a continuación, seleccione roles de seguridad en la lista.
5. En campos, seleccione nombres.
6. Escriba Administrador del sistema en el cuadro que indica escribir texto. En este punto, la pantalla debe
ser similar a la siguiente:

7. Elija el botón resultados en la cinta de opciones.


Debería ver una lista de uno o más administradores del sistema.
Establecer las opciones personales
04/11/2019 • 11 minutes to read • Edit Online

Cambie la configuración de pantalla de una aplicación para que se adapte a sus preferencias. Por ejemplo, puede
elegir la página que desea ver en cuanto inicie sesión en la aplicación. También puede personalizar muchas otras
opciones, como el idioma, la moneda y la zona horaria.

Para establecer las opciones personales


1. Seleccione el botón de opciones del botón configuración en la esquina superior derecha de la pantalla.
2. Seleccione configuración de personalización.
3. Rellene la información según sea necesario.
4. Cuando haya terminado, seleccione Aceptar.

Opciones de la pestaña General


OPCIONES DESCRIPCIÓN

Seleccione la Página principal y la configuración de los


paneles de introducción

Panel predeterminado Seleccione el panel principal predeterminado (página) que


desea ver al iniciar sesión. De forma predeterminada, está
seleccionada la opción predeterminado según el rol de
usuario , que muestra el panel predeterminado en función de
la aplicación que esté usando.

Pestaña predeterminada Seleccione la pestaña predeterminada que desea ver para el


panel predeterminado seleccionado. Por ejemplo, seleccione la
pestaña cuentas del panel servicio .

Establecer el número de registros que se muestran por


página en cualquier lista de registros

Registros por página Seleccione el número máximo de registros que desea ver en
una lista de una página. Puede establecer un valor entre 25 y
250.

Seleccionar el modo predeterminado en la búsqueda


avanzada

Modo de búsqueda avanzada De forma predeterminada, cada vez que se abre el cuadro de
diálogo modo de búsqueda avanzada , se ocultan los
detalles de la consulta. Para ver los detalles de la consulta cada
vez, seleccione detallado.

Establecer la zona horaria en la que se encuentre

Zona horaria Seleccione la zona horaria que desea mostrar para la región.
OPCIONES DESCRIPCIÓN

Seleccionar una moneda predeterminada

Divisa Elija el valor predeterminado de moneda que se usará en las


transacciones financieras. Seleccione el botón de búsqueda
para buscar una moneda.

Compatibilidad con la configuración de alto contraste

Habilitar contraste alto Active esta casilla para habilitar los niveles de contraste alto en
la pantalla de la aplicación. Sugerencia: Establezca esta opción
si usa una configuración de contraste alto en el explorador o
en el sistema operativo.

Establecer el código de país o región predeterminado

Habilitar el prefijo de código de país o región Active esta casilla para habilitar el código de llamada
predeterminado para su región.

Prefijo de código de país o región Escriba el valor del código de llamada de su región en el
cuadro de texto. Por ejemplo, escriba + 1 en el Estados
Unidos.

Ver la información de usuario Seleccione este vínculo para ver los detalles. Estos detalles se
muestran a toda la organización e incluyen la información de
contacto y el rol de seguridad. Para obtener más información,
vea su perfil de usuario.

Opciones de la pestaña sincronización


OPCIONES DESCRIPCIÓN

Sincronizar elementos de Dynamics 365 con Outlook o


Exchange

complementa Elija los registros que se van a sincronizar entre Dynamics 365
y Dynamics 365 para Outlook o Exchange (mediante la
sincronización del lado servidor).

campos sincronizados Vea los campos que se sincronizan entre Dynamics 365 y
Dynamics 365 para Outlook, de modo que pueda ver de
dónde proceden los datos.

Administrar los filtros sin conexión y dejar la


información sin conexión en Dynamics 365 para Outlook

filtros sin conexión Elija un subconjunto de datos de Dynamics 365 con los que
desea trabajar cuando se desconecta con Dynamics 365 para
Outlook.

Opciones de la pestaña actividades


OPCIONES DESCRIPCIÓN

Vista predeterminada

Calendario predeterminado Seleccione la vista predeterminada del calendario.

Hora de inicio Seleccione las horas de trabajo predeterminadas.

Opciones de la pestaña formatos


OPCIONES DESCRIPCIÓN

Formatos actuales

Personalizar Elija esta opción para agregar una nueva región y formatos.

Vista previa del formato Muestra la región actual y sus formatos de número, moneda,
horay fecha.

Opciones de la pestaña plantillas de correo electrónico


OPCIONES DESCRIPCIÓN

Crear y modificar plantillas de correo electrónico


personales

Nuevo Cree una plantilla de correo electrónico con valores


personalizados (como una fecha o una firma), para que no
tenga que escribir la misma información, repetidamente,
cuando envíe un correo electrónico.

En la barra de comandos, seleccione nuevo y escriba los


valores de la plantilla.

Opciones de la pestaña firmas de correo electrónico


OPCIONES DESCRIPCIÓN

Crear y modificar firmas de correo electrónico


personales

Nuevo Cree una firma de correo electrónico para ahorrar tiempo y ser
coherente en las respuestas. El propietario de una firma de
correo electrónico puede ser un usuario o un equipo.

En la barra de comandos, seleccione nuevo y escriba los


valores de la firma.

Opciones de la pestaña correo electrónico


OPCIONES DESCRIPCIÓN

Seleccione si otros usuarios pueden enviar mensajes de


correo electrónico

Permitir a otros usuarios enviar correo electrónico en su Seleccione esta opción para permitir que otros usuarios de
nombre. Dynamics 365 envíen correo electrónico en su nombre.
PRECAUCIÓN: Si selecciona esta opción, otros usuarios
pueden enviar correo electrónico en su nombre con o sin su
consentimiento. El nombre de correo electrónico aparecerá
como remitente.

Selección de los mensajes de correo electrónico de los


que se realiza un seguimiento en Dynamics 365

Dar Seleccione los mensajes de correo electrónico que desea que


realicen un seguimiento automático en Dynamics 365.

Opciones:

-Todos los mensajes de correo electrónico


-Mensajes de correo electrónico en respuesta a Dynamics 365
correo electrónico
-Mensajes de correo electrónico de clientes potenciales,
contactos y cuentas de Dynamics 365
-Mensajes de correo electrónico de registros de Dynamics 365
que están habilitados para correo electrónico

Configurar reglas de seguimiento de carpetas Configure carpetas para que realicen un seguimiento
automático del correo electrónico entrante.

Creación automática de registros en Dynamics 365

A Seleccione esta opción para permitir que Dynamics 365 cree


clientes potenciales o contactos automáticamente a partir de
la información de los mensajes de correo electrónico de
seguimiento.

Mostrar correos electrónicos como conversación en la escala Seleccione esta lista para mostrar los mensajes de correo
de tiempo electrónico en un subproceso de conversación, la forma en
que muchas aplicaciones de correo electrónico funcionan al ver
los mensajes de correo electrónico en una conversación.

Ver el buzón de correo Seleccione este vínculo para ver los detalles del buzón.

Opciones de la pestaña privacidad


NOTE
Esta pestaña no está disponible si el administrador del sistema ha seleccionado la preferencia de privacidad para toda la
organización en la configuración del sistema. Hable con el administrador.

OPCIONES DESCRIPCIÓN

Seleccione la preferencia de notificación de errores


OPCIONES DESCRIPCIÓN

Opciones: Especifique lo que desea que Dynamics 365 realice cuando se


produzca un error. En función de su selección, Microsoft se
-Pedir permiso para enviar un informe de errores a Microsoft. comparte con los informes de errores y los utiliza para mejorar
-Enviar informe a Microsoft automáticamente sin pedir el producto.
permiso.
-No enviar nunca un informe de errores a Microsoft acerca de Se recomienda enviar los informes de errores a Microsoft para
Dynamics 365. que Microsoft pueda usar la información de las mejoras del
producto.

Opciones de la pestaña idiomas


OPCIONES DESCRIPCIÓN

Seleccione el idioma que prefiera para ver Dynamics 365


en

Idioma base Muestra el idioma base. El idioma base se establece durante el


proceso de instalación de Dynamics 365. No se puede editar
esta opción.

Idioma de la interfaz de usuario Seleccione el idioma que desea ver para las etiquetas y los
cuadros de diálogo en la interfaz de usuario de Dynamics 365.

Idioma de la ayuda Seleccione el idioma de la ayuda. Para agregar otro idioma


distinto del idioma base, el administrador debe instalar los
paquetes de idioma necesarios y habilitarlos. Hable con el
administrador.
Usar el lector de pantalla
08/11/2019 • 11 minutes to read • Edit Online

Los lectores de pantalla hacen que las aplicaciones controladas por modelos estén accesibles para personas con
poca o ninguna visión o que necesiten soporte adicional para un escenario temporal, como la fatiga ocular. Se
admiten lectores de pantalla de uso frecuente como narrador, JAWS y NVDA.
Más información sobre cómo trabajar con el narrador de Microsoft
Más información sobre cómo trabajar con JAWS
Más información sobre cómo trabajar con NVDA

Tareas básicas con un lector de pantalla


Abrir una aplicación
1. En la barra de navegación, use la tecla Tab para desplazarse al control desplegable de la aplicación y presione
entrar para abrir el mapa del sitio.
2. Presione la tecla Tab hasta que escuche el nombre de la aplicación que desea abrir (por ejemplo, "ventas").
Presione entrar para abrir la aplicación.
Usar el modo de exploración en narrador
Puede usar el modo de exploración para navegar rápidamente por las aplicaciones con las teclas de dirección y los
métodos abreviados de teclado comunes. Saltar rápidamente a los encabezados, los vínculos, los puntos de
referencia, los campos de formulario, los controles y las tablas en este modo. Active y desactive el modo de
exploración presionando Bloq Mayús + barra espaciadora. Más información: uso del modo de recorrido
Buscar el modo de la aplicación
Barra de navegación
Al abrir una aplicación, se muestra una barra vertical con iconos de subárea a la izquierda. Puede usar la tecla Tab
para desplazarse por estos iconos hasta que escuche el nombre del área que desee, como "cuentas", o bien puede
usar el control mapa del sitio. Por ejemplo, presione la tecla Tab hasta que escuche "cuentas" y, a continuación,
presione entrar para abrir la vista cuentas.
Cuadrículas
Los lectores de pantalla navegan por las cuadrículas de forma más confiable y coherente, y anuncian los
encabezados de fila y de columna, así como la posición dentro de la cuadrícula. La primera vez que se abre una
cuadrícula, la tabulación predeterminada es el selector de vistas.
Siempre que escriba una celda dentro de la cuadrícula desde fuera de la cuadrícula, el narrador anunciará el
nombre de la tabla, los recuentos de filas y columnas y la posición del cursor en la tabla.
Si el cursor se encuentra dentro del encabezado de la tabla, desplácese rápidamente entre los encabezados
mediante la tecla Tab o MAYÚS + TAB. El narrador anunciará el nombre de cada encabezado a medida que
escriba la celda de encabezado. También se anuncia el tipo de celda (por ejemplo, "encabezado de columna"), la
ubicación de la columna (por ejemplo, "columna 1 de 6") y si la columna está ordenada o seleccionada. Si presiona
entrar en un encabezado de tabla, la tabla se ordenará por esa columna. Narrador anuncia el criterio de
ordenación y puede presionar entrar de nuevo para cambiar el orden.
Al salir de la última columna de la tabla, el cursor se desplaza a la segunda fila de la cuadrícula y, desde este punto,
debe utilizar las teclas de dirección arriba y abajo para desplazarse por las celdas que no son de encabezado. Si en
su lugar vuelve a presionar la tecla Tab , el cursor se moverá al siguiente elemento interactivo, normalmente la
lista de filtros de tabla. Al moverse entre las celdas que no son de encabezado, el narrador anuncia el nombre de la
columna, la ubicación de la columna y el texto dentro de la celda.
Formularios
Hay varios modos de navegación disponibles para navegar por un formulario mediante narrador, donde los
modos más comunes son puntos de referencia, encabezados y campos de formulario. Para cambiar el modo de
navegación, presione Bloq Mayús + Flecha arriba. Mantenga presionada la tecla Bloq Mayús mientras presiona
la tecla flecha arriba para desplazarse por los modos hasta oír el modo que desea usar. A continuación, use Bloq
Mayús + las teclas de flecha izquierda y derecha para desplazarse por los distintos elementos. Por ejemplo, si
desea ir al campo apellido en la sección información de contacto de un contacto, haga lo siguiente:
1. Mantenga presionada la tecla Bloq Mayús y presione la tecla flecha arriba hasta que escuche "puntos de
referencia".
2. Mantenga presionada la tecla Bloq Mayús y presione la tecla de flecha derecha hasta que escuche
"información de contacto".
3. Para cambiar el modo, presione y mantenga presionada la tecla Bloq Mayús y presione la tecla flecha arriba
hasta que escuche "campos de formulario".
4. Navegue hasta el campo Last Name mediante Bloq Mayús + las teclas de dirección izquierda y derecha hasta
que escuche "Last Name". El narrador también anuncia el tipo de control, el valor, el estado y las instrucciones
especiales para el campo.
También puede usar la tecla TAB para desplazarse rápidamente a los elementos interactivos del formulario.
Algunos campos de formulario tienen un icono que realizará la acción predeterminada al presionar Ctrl + entrar.
Por ejemplo, un campo de formulario de correo electrónico podría tener un icono de sobre que abra un editor de
correo electrónico.
Paneles y gráficos
Puede navegar por los gráficos del panel mediante la tecla TAB y Bloq Mayús + teclas de dirección. Presione la
tecla Tab para ir rápidamente a los elementos interactivos y use Bloq Mayús + una tecla de dirección para navegar
por los elementos no interactivos, como los encabezados, los puntos de referencia y los elementos.

NOTE
Debe tener instalada la actualización más reciente de Windows 10 para tener todas las características de accesibilidad
disponibles para los gráficos.

Flujos de paneles interactivos


Puede usar las teclas Tab o MAYÚS + TAB para desplazarse entre las secuencias del panel interactivo, como las
que se encuentran en el panel cuentas, o simplemente cambiar el modo de navegación hasta que escuche
"encabezados" y, a continuación, use la tecla Tab para desplazarse rápidamente entre secuencias del panel.
Para navegar por cada elemento de una secuencia del panel, utilice las teclas de dirección arriba y abajo. Narrador
leerá el tipo de control y el título del control.
Flujos de procesos empresariales
Puede navegar por un flujo de proceso de negocio, como el que se encuentra en la parte superior del formulario
de cliente potencial, presionando la tecla Tab para avanzar y MAYÚS + TAB para desplazarse hacia atrás entre las
entidades. Use la tecla entrar en el desplazamiento a la izquierda o Desplácese a los botones de la derecha
para mostrar entidades adicionales en el flujo del proceso. El narrador lee el tipo de entidad, la fase, el estado, el
título, el número de elemento de los elementos totales y si está seleccionado actualmente.
Cuadros de diálogo
Cuando se abre un cuadro de diálogo, narrador anuncia el título. En los cuadros de diálogo con campos de
entrada, el botón cerrar tiene el foco predeterminado, lo que le permite cerrar el cuadro de diálogo presionando
entrar. En los cuadros de diálogo que requieren una acción del usuario, el foco está en el botón acción principal,
como eliminar o Aceptar.
Puede navegar por los controles mediante la tecla Tab . El cursor recorrerá en bucle cada elemento del cuadro de
diálogo y podrá presionar ESC para cerrarlo.
Usar métodos abreviados de teclado en PowerApps
08/11/2019 • 16 minutes to read • Edit Online

Los métodos abreviados de teclado proporcionan una forma alternativa de realizar tareas comunes en lugar de
usar el mouse o pulsar con el dedo. Ayudan en la navegación sin problemas de la interfaz. Los siguientes métodos
abreviados de teclado se aplican a todas las aplicaciones.

NOTE
Los métodos abreviados de teclado que se describen aquí hacen referencia a la Estados Unidos distribución del teclado. Es
posible que las teclas de otras distribuciones del teclado no se correspondan exactamente con las teclas de un teclado
estadounidense.

Métodos abreviados de formulario


TASK INTERFAZ UNIFICADA

Completar el comando para la opción activa o el botón ENTRAR

Cancelar un comando o cerrar una lista o un cuadro de Esc


diálogo seleccionado

Guardar Ctrl + S

Guardar y cerrar N/A

Cancelar ediciones y cerrar (cerrar) Esc

Eliminar el registro (cuando los formularios están en modo de N/A


edición)

Guardar y abrir un nuevo formulario (guardar y nuevo) N/A


(cuando los formularios están en modo de edición)

Abrir el menú de búsqueda con los elementos usados más Flecha abajo
recientemente en orden alfabético

Abrir una lista desplegable de búsqueda ENTRAR

Cerrar una lista desplegable de búsqueda Esc

Abrir un registro encontrado en la búsqueda con formularios ENTRAR


en modo de edición

Agregar un artículo a un correo electrónico N/A

Aplicar una plantilla de correo electrónico (al editar un mensaje N/A


de correo electrónico)
Métodos abreviados de navegación de formularios
TASK INTERFAZ UNIFICADA

Moverse a la opción siguiente, grupo de opciones o campo Pestaña

Moverse a la opción anterior, grupo de opciones o campo Mayús + Tab

Desplazarse entre las opciones de una lista abierta o entre las Teclas de dirección
opciones de un grupo de opciones

Ir a la barra de comandos N/A

Ir a la sección de punto de referencia de una página Ctrl +[

Cuadrículas editables (vistas)


Si el administrador ha habilitado cuadrículas modificables (vistas), puede editar los datos directamente en una
cuadrícula (vista). En la tabla siguiente se enumeran los métodos abreviados de teclado:

TASK INTERFAZ UNIFICADA

Cuando el foco está en un encabezado de columna, ordenar Tecla entrar


por columna

Cuando el foco está en un encabezado de columna, abrir el Barra espaciadora


cuadro de diálogo de filtro

Cuando el foco esté en las celdas, desplácese al siguiente Tecla de flecha derecha (→)
campo.

Cuando el foco esté en las celdas, desplácese al campo Tecla de flecha izquierda (←)
anterior

Cuando el foco está en el encabezado de columna, desplazarse Pestaña


al siguiente encabezado de columna

Cuando el foco está en el encabezado de columna, desplazarse Mayús + Tab


al encabezado de columna anterior

Moverse a la celda anterior Tecla de flecha arriba (↑)

Moverse a la celda siguiente Tecla flecha abajo (↓) o entrar, cuando la celda no está en
modo de edición

Ir al modo de edición para los campos de texto, número y Escriba el valor directamente para sobrescribir el valor
simple cuando el foco está en un campo existente o la barra espaciadora para seguir modificando el
valor existente o F2 para seleccionar el valor existente.

Ir al modo de edición para los campos de fecha y hora Escriba el valor directamente o F4 o Alt + ↓ para mostrar el
selector de fecha y hora.

Ir al modo de edición para los campos desplegables Barra espaciadora para abrir la lista
(búsqueda, conjunto de opciones)
TASK INTERFAZ UNIFICADA

Ir al modo de edición para dos campos de opciones Barra espaciadora para cambiar entre las dos opciones o F4 o
Alt + ↓ para abrir la lista

Desplazarse entre las entradas de una lista desplegable abierta Teclas de dirección de arriba/abajo (↑/↓)

Seleccionar una opción en una lista desplegable abierta ENTRAR

Cerrar una lista desplegable abierta Esc

Cancelar las modificaciones Esc

Vaya a y abra el registro de búsqueda. Entrar cuando el foco está activado (→)

Pasar a la página siguiente (si existe) Tecla AV pág

Moverse a la página anterior (si existe) Tecla re pág

Desplazarse al encabezado de columna cuando el foco está en Mayús + Tab


la cuadrícula

Desplazarse al botón Guardar cuando el foco está en el Pestaña


encabezado de columna (si hay datos no guardados)

Desplazarse al botón actualizar cuando el foco está en el Pestaña


encabezado de columna

Accesos directos a paneles interactivos


Los paneles interactivos habilitan nuevas funcionalidades, como filtrado, ordenación y acciones rápidas.

TASK INTERFAZ UNIFICADA

Activar un elemento de panel (simular clic con el botón Entrar o barra espaciadora
primario)

Moverse al siguiente elemento Pestaña

Moverse al elemento anterior Mayús + Tab

Moverse al siguiente elemento dentro de un elemento Tecla de dirección abajo (↓)


Dashboard

Moverse al elemento anterior dentro de un elemento de panel Tecla de dirección arriba (↑)

Cerrar un menú Salida

Active una casilla o un botón de radio Barra espaciadora

Modificar el filtro de intervalo de fechas Ctrl + Alt + D

Mostrar el panel de filtro visual CTRL + ALT + V


TASK INTERFAZ UNIFICADA

Moverse a la barra de comandos global Ctrl + Alt + A

Métodos abreviados de filtro globales


TASK INTERFAZ UNIFICADA

Abrir un menú Tecla de dirección de entrar o barra espaciadora (↓)

Activar un botón Entrar o barra espaciadora

Moverse al siguiente elemento Pestaña

Moverse al elemento anterior Mayús + Tab

Abrir un control de vista de árbol Tecla de dirección derecha (→)

Cerrar un control de vista de árbol Tecla de dirección izquierda (←)

Moverse al siguiente nodo de vista de árbol Tecla de dirección arriba (↑)

Moverse al nodo de vista de árbol anterior Tecla de dirección abajo (↓)

Moverse al primer nodo de vista de árbol Inicio

Moverse al último nodo de vista de árbol Extremo

Realizar la acción predeterminada para el nodo de vista de ENTRAR


árbol

Quitar un filtro Elimínelos

Métodos abreviados de control de flujo de panel


TASK INTERFAZ UNIFICADA

Moverse al primer comando en la barra de comandos de la Ctrl + Alt + Q


secuencia de panel activa

Moverse al siguiente elemento Pestaña

Moverse al elemento anterior Mayús + Tab

Activar un botón Entrar o barra espaciadora

Activar el botón ordenar por campo y abrir el control Tecla de dirección de entrar o barra espaciadora (↓)
flotante

Moverse al siguiente elemento Tecla de dirección abajo (↓)

Moverse al elemento anterior Tecla de dirección arriba (↑)


TASK INTERFAZ UNIFICADA

Moverse al primer elemento Inicio

Moverse al último elemento Extremo

Pasar a la siguiente secuencia Ctrl + F6

Moverse a la secuencia anterior Ctrl + Mayús + F6

Cerrar un menú Salida

Cambiar el estado de una casilla Barra espaciadora

Controles comunes
Métodos abreviados de gráficos
TASK INTERFAZ UNIFICADA

Moverse al primer elemento de un gráfico Pestaña

Moverse al siguiente punto de datos Tecla de dirección derecha (→) o flecha abajo (↓)

Moverse al punto de datos anterior Tecla de dirección izquierda (←) o tecla de dirección arriba (↑)

Moverse al primer punto de datos Inicio

Moverse al último punto de datos Extremo

Moverse al botón Ver más en un gráfico de etiquetas Pestaña

Retroceder desde el botón Ver más hasta las etiquetas de un Mayús + Tab
gráfico de etiquetas

Filtrar el panel cuando el foco se encuentra en un punto de Entrar o barra espaciadora


datos en un panel interactivo

Métodos abreviados de control de fecha y hora


TASK INTERFAZ UNIFICADA

Abrir el control flotante de selector de fecha Tecla de dirección de entrar o barra espaciadora (↓)

Activar la opción y cerrar el control flotante Entrar o barra espaciadora

Moverse al siguiente elemento Tecla de dirección abajo (↓)

Moverse al elemento anterior Tecla de dirección arriba (↑)

Moverse al primer elemento Inicio

Moverse al último elemento Extremo


TASK INTERFAZ UNIFICADA

Cerrar el control flotante de selector de fecha Salida

Moverse al siguiente elemento Pestaña

Moverse al elemento anterior Mayús + Tab

Seleccionar el calendario Entrar o barra espaciadora

Activar un botón Entrar o barra espaciadora

Métodos abreviados de resultados de búsqueda


TASK INTERFAZ UNIFICADA

Ir al siguiente resultado de la búsqueda Tecla de dirección arriba (↑)

Moverse al resultado de búsqueda anterior Tecla de dirección abajo (↓)

Moverse a la lista de vistas disponibles Tecla de dirección derecha (→)

Moverse de la lista de vistas disponibles a los resultados de la Tecla de dirección izquierda (←)
búsqueda

Desplazarse por los botones Pestaña

Desplazarse por los submenús


Si usa un lector de pantalla, siga estos pasos para tener acceso a cualquiera de los submenús que se muestran al
mantener el mouse sobre un vínculo de navegación.
1. Navegue entre las opciones de menú mediante la navegación de vínculo estándar.
2. Active el vínculo seleccionando entrar o la clave de espacio como lo haría normalmente. Se mostrará una lista
de submenús.
3. Para obtener acceso a estas opciones de submenú, use la tecla de método abreviado de la tecnología de
asistencia (AT) para desplazarse al botón siguiente. Por ejemplo, si usa el lector de pantalla NVDA, usaría la tecla
de método abreviado "b" (NVDA + b). Para desplazarse por todas las opciones, seleccione la clave varias veces.

IMPORTANT
Varias áreas de la interfaz de usuario (UI) tienen integrada la función de contracción automática para los menús. Esto incluye
la barra de navegación y la navegación de formularios. Ambos se expanden cuando se seleccionan, pero después de 30
segundos de inactividad, se contraen los elementos.

Desplazarse por las fases de un proceso


Si está en un registro (por ejemplo, un cliente potencial), en esta sección se muestran los métodos abreviados de
teclado para desplazarse por las distintas fases del proceso de ventas para calificar al cliente potencial y cómo hacer
selecciones en esas fases. Por ejemplo, si desea desplazarse fácilmente desde la fase de calificación hasta la fase de
cierre, Pruebe estas acciones de teclado:
Después de seleccionar una fase, seleccione la flecha abajo (↓) para llegar a los campos.
Si una fase está contraída, seleccione entrar para expandirla.

NOTE
El nombre del proceso es un icono situado en la parte inferior de la página, no en la parte superior.

Métodos abreviados de teclado en Windows: Si usa el sistema operativo Windows, seleccione el vínculo
siguiente y elija el número de versión en la lista desplegable. Puede ver todos los métodos abreviados que
se aplican a un entorno de Windows. Vea métodos abreviados de teclado de Windows.
Métodos abreviados de teclado en Mac: Si usa un sistema operativo Mac, seleccione el siguiente vínculo
para ver todos los métodos abreviados que se aplican a un entorno Mac. Vea métodos abreviados de
teclado de Mac.
Creación de un registro
04/11/2019 • 3 minutes to read • Edit Online

Cree un nuevo registro mediante la opción + en la barra de comandos.


El comando Crear un registro o Creación rápida facilita y agiliza el proceso para agregar casi cualquier tipo de
información al sistema. El comando está en la barra de navegación, por lo que estará disponible siempre que
necesite agregar información al sistema. También puede guardar un registro y crear uno nuevo directamente desde
el formulario creación rápida .

NOTE
La opción creación rápida solo está disponible para los registros habilitados por el administrador.

1. En la barra de navegación, seleccione el de signo más y, a continuación, seleccione el elemento que


desee.

2. Rellene los campos y seleccione Guardar y cerrar. O bien, para guardar y crear otro registro, seleccione la
flecha hacia abajo y, a continuación, seleccione guardar & crear nuevo.
NOTE
Un de asterisco obligatorio situado junto al campo en la pantalla significa que el campo es obligatorio. Si selecciona
Guardar y cerrar antes de especificar los campos obligatorios, se mostrará un mensaje de error, mientras que si ha
agregado la información y selecciona Cancelar, se mostrará una advertencia.
Un botón de de signo más situado junto al campo en la pantalla significa que su organización recomienda que rellene el
campo.

Crear un nuevo registro con el botón nuevo


1. En el panel de navegación izquierdo, seleccione un tipo de registro. Por ejemplo, seleccione contactos para
crear un nuevo registro de contacto.
2. En la barra de comandos, seleccione + nuevo.

3. Rellene los detalles adecuados para nuevo contacto y, a continuación, seleccione Guardar y cerrar.
NOTE
Si tiene cambios sin guardar e intenta ir a otro registro o formulario, aparecerá un cuadro de diálogo cambios no
guardados . Si selecciona Guardar y continuar, se intentará guardar la información y abrir la página a la que desea
ir. Si decide guardar y continuar y hay un error en un campo, el cuadro de diálogo se cerrará y permanecerá en la
página para corregir el error antes de salir.
Agregue una actividad de cita, correo electrónico,
llamada telefónica, nota o tarea a la escala de
tiempo.
08/11/2019 • 10 minutes to read • Edit Online

Agregue Actividades al muro de la Escala de tiempo para realizar un seguimiento de todas las comunicaciones
con un cliente o un contacto. Por ejemplo, puede tomar notas, agregar publicaciones, agregar una tarea, enviar un
correo electrónico, agregar detalles de llamada telefónica o fijar citas. El sistema automáticamente agrega una
marca de tiempo a cada actividad y muestra quién la creó. Usted y otras personas de su equipo pueden
desplazarse por las actividades para ver el historial mientras trabajan con un cliente.
Las actividades que agregue desde un registro aparecen en el muro de la escala de tiempo del registro.
Si está configurado el campo Referente a de una actividad, la actividad aparece en el registro con el que
está asociada.
También puede elegir el panel de filtro para filtrar las actividades por tipo de registro y fecha.
Cuando se crea una nueva actividad, obtendrá una notificación sobre lo que se perdió en el muro de la
escala de tiempo.
Se mostrará un mensaje de correo electrónico con una imagen adjunta insertada con el cuerpo del correo
electrónico.
Adición de una actividad desde la barra de navegación
La forma más rápida de agregar una actividad es usar el acceso directo en la barra de navegación y, a
continuación, vincularla a un registro. Por ejemplo, puede crear una actividad de llamada telefónica y, luego,
vincularla a un contacto en el sistema mediante el campo Referente a.

1. En la barra de navegación, seleccione el de signo más y, a continuación, seleccione actividades.

2. Elija el tipo de actividad que desea agregar.


3. Rellene la información necesaria. Use el campo Referente a para asociar la actividad a un registro.
4. Cuando termine,seleccione Guardar.

Adición de una llamada telefónica


1. Abra el registro al que desea agregar la actividad. Por ejemplo, un registro de contacto.
2. En el muro de la escala de tiempo, seleccione signo más > Llamada de teléfono.

3. Rellene el Asunto de la llamada.


En el área Notas, escriba un resumen de la conversación con el cliente.
El campo Llamar a se rellena automáticamente con el registro al que agregó la actividad de llamada
telefónica. Puede seleccionar un registro diferente si es necesario.
4. De forma predeterminada, la dirección se establece en Saliente. Puede cambiarla a Entrante
seleccionando Saliente.
5. Cuando haya terminado de rellenar el formulario, seleccione Guardar para guardar la actividad.

Adición de una tarea


1. Abra el registro al que desea agregar la actividad. Por ejemplo, un registro de contacto.
2. En el muro de la escala de tiempo, seleccione signo más > Tarea.
3. El campo Propietario se establece en el usuario actual de forma predeterminada. Si desea volver a asignar
la tarea, seleccione el icono de búsqueda y, a continuación, seleccione otro usuario o equipo.
4. Cuando haya terminado de rellenar el formulario, seleccione Guardar para guardar la actividad.

Adición de correo electrónico


Para agregar una actividad de correo electrónico a un registro, primero debe guardar el registro al que está
agregando la actividad.
1. Abra el registro al que desea agregar la actividad. Por ejemplo, un registro de contacto.
2. En el muro de la escala de tiempo, seleccione signo más > Correo electrónico.
3. Rellene el asunto del correo electrónico y use el espacio proporcionado para escribir el correo electrónico.
4. Para agregar datos adjuntos al correo electrónico, guárdelo. A continuación, en la sección Datos adjuntos,
seleccione + para agregar datos adjuntos.
5. Para usar una plantilla para el cuerpo del correo electrónico, en la barra de comandos, haga clic en Insertar
plantilla y, a continuación, seleccione la plantilla.
6. Cuando haya terminado de rellenar el formulario, seleccione Enviar.

NOTE
Para enumerar los correos electrónicos en una vista de conversación, vaya a configuración > configuración de
personalización > pestaña correo electrónico y, a continuación, seleccione Mostrar correo electrónico como
conversación en escala de tiempo. Para obtener más información sobre la configuración personal, consulte set
personal Options. Una vez habilitada, puede abrir cualquier formulario que tenga una escala de tiempo y los correos
electrónicos se agruparán en subprocesos de conversación con el correo electrónico más reciente en la parte superior.
Adición de una cita
Para agregar una actividad de cita a un registro, primero debe guardar el registro al que está agregando la
actividad.

NOTE
No se admiten citas recurrentes en la aplicación Dynamics 365 para Outlook, Dynamics 365 para teléfonos y, al ejecutar el
cliente web de aplicaciones controladas por modelos en el explorador Web del teléfono móvil.

1. Abra el registro al que desea agregar la actividad. Por ejemplo, un registro de contacto.
2. En el muro de la escala de tiempo, seleccione signo más > Cita.
3. Use la información sobre herramientas para completar la información requerida.
4. Cuando haya terminado de rellenar el formulario, seleccione Guardar para guardar la cita.

Agregar notas
También puede agregar notas fácilmente en el área de actividades.
1. Abra el registro al que desea agregar la actividad. Por ejemplo, un registro de contacto.
2. En el muro de la escala de tiempo, empiece a escribir sus notas. Use Agregar un archivo adjunto para
agregar datos adjuntos a la nota.
3. Cuando haya terminado de rellenar el formulario, seleccione Agregar nota para guardar la nota.

NOTE
También puede agregar una nota con el signo más en la sección superior del muro de la escala de tiempo.
Una vez que se haya agregado la nota, puede eliminarla o editarla.

Adición de una publicación


1. Abra el registro al que desea agregar la publicación. Por ejemplo, un registro de contacto.
2. En el muro de la escala de tiempo, seleccione signo más > Publicación.
3. Escriba su publicación en el campo de texto
4. Cuando haya terminado de rellenar el formulario, seleccione Agregar para guardar la publicación.

Una vez que guarde la publicación, aparecerá en la parte superior del muro de la escala de tiempo.

Actualización de la escala de tiempo


Puede actualizar el muro de la escala de tiempo para ver la información más actualizada.
En el muro de la escala de tiempo , seleccione el y, a continuación, seleccione Actualizar escala de
tiempo.
Uso del panel de filtros
Filtre rápidamente las actividades, notas o publicaciones del muro de la escala de tiempo por tipo de registro o
tipo de actividad y fecha con el panel de filtro. Puede seleccionar varios filtros y opciones de filtro al mismo
tiempo. Puede filtrar y ver la fecha de vencimiento de la actividad, la fecha de modificación o el estado de la
actividad.
En el plano de la escala de tiempo , seleccione Abrir el icono de embudo del Panel de filtros .

Administración de actividades
Administre actividades directamente desde el muro de la escala de tiempo, incluida la asignación de una actividad
a otra persona, la eliminación o el cierre de una actividad, la adición de una actividad a una cola, la apertura un
registro asociado o la edición de notas y publicaciones.
Preguntas frecuentes sobre las actividades y la pared
de escala de tiempo
26/07/2019 • 3 minutes to read • Edit Online

¿Es necesario un título al agregar una nueva nota?


No. Al agregar una nota a una actividad, el campo de título se marca como campo obligatorio, aunque no lo es. Se
trata de un problema conocido en el cliente web heredado.

En una cita, cuando elijo la opción Guardar como borrador, no se


muestra que la cita se haya guardado como tal.
Cuando se guarda una cita como borrador en el cliente web heredado, el título no muestra [BORRADOR] para
indicar que la cita se ha guardado como tal.

¿Puedo agregar actividades a registros de solo lectura?


Sí. Puede agregar actividades a entidades que son de solo lectura, como notas, llamadas telefónicas, tareas, etc.

¿Se admiten etiquetas HTML en Notas?


No. Al crear una actividad de nota para cualquier registro o entidad, no se admiten etiquetas HTML. Por ejemplo, si
agrega <TAG> </TAG> a un campo de nota, se mostrará como. <TAG_XXX="XX"> </TAG>

¿Cómo puedo mejorar el rendimiento en la pared de escala de tiempo?


El rendimiento de la pared de escala de tiempo se puede mejorar mediante la optimización de la cantidad de datos
que devuelve un registro de entidad específico.
1. Configure los formularios de entidad para mostrar solo las actividades que están en uso. Esto se puede hacer en
el nivel de formulario para mostrar únicamente las actividades útiles. Por ejemplo, si no usa tareas para los
casos, puede configurar la pared de escala de tiempo en el formulario de casos para no mostrar las tareas.
2. Reduzca el número de registros predeterminados que se muestran en la pared de escala de tiempo. De forma
predeterminada, está establecido para devolver 10; un número más alto puede provocar problemas de
rendimiento. Se recomienda no superar el valor predeterminado.

No se admite la pared de actividad en la vista previa de impresión.


Cuando se selecciona la opción Vista previa de impresión de Dynamics 365, la pared de escala de tiempo no
se mostrará en la lista de elementos disponibles. Verá Notas, pero no se mostrarán las tareas ni los mensajes de
correo electrónico.
Uso del campo de búsqueda en un registro
27/11/2019 • 7 minutes to read • Edit Online

La búsqueda le ayuda a elegir registros de una entidad relacionada. Cuando se selecciona una entidad relacionada
y se especifican los criterios de búsqueda, como un nombre o una dirección de correo electrónico, la búsqueda
comienza automáticamente a resolver el texto parcial y muestra los registros coincidentes. Si no se muestra ningún
registro después de escribir el texto completo de los criterios de búsqueda, se muestra un mensaje que especifica
que no hay registros.
Por ejemplo, puede buscar el nombre Adrian Dumitrascu. Cuando escribe ad, los posibles registros coincidentes
se rellenan y se muestran automáticamente.

NOTE
Un administrador puede definir los criterios que utiliza la búsqueda para resolver el texto de búsqueda parcial.

Además, puede crear un nuevo registro seleccionando el botón nuevo . Debe tener los permisos necesarios para
ver el botón nuevo y crear un registro. Al seleccionar el campo de búsqueda, los cinco registros usados más
recientemente se muestran junto con cinco registros favoritos. Los registros que se muestran dependen del
historial de vistas y de los favoritos que haya anclado.
Por ejemplo, si solo tiene tres registros en el historial, la búsqueda mostrará los tres, junto con siete de sus
registros favoritos. Si no ha anclado ningún favorito, solo se mostrarán los registros que se hayan visto más
recientemente.

Tipos de búsquedas
Las búsquedas se clasifican en lo siguiente:
Búsqueda simple: Seleccione un único registro en un campo de una sola entidad.
Campos de tipo PartyList: Se usa para seleccionar varios registros de varias entidades en una búsqueda.
Use los campos de tipo PartyList para seleccionar varios registros. Esto le permite agregar cada registro
realizando una nueva búsqueda, varias veces. Cada vez que seleccione un registro, podrá realizar una nueva
búsqueda de otro registro.
Campos de tipo con respecto: Se usa para seleccionar un solo registro de varias entidades en una
búsqueda.
Buscar en un campo de búsqueda
Para buscar una búsqueda, seleccione el cuadro de texto y escriba los criterios de búsqueda. Si los registros
recientes están habilitados para su búsqueda, se mostrarán los registros recientes cuando seleccione el cuadro de
texto.

NOTE
El resultado de búsqueda predeterminado para búsqueda de búsqueda es, comienza por. Esto significa que los resultados
incluyen registros que comienzan con una palabra específica. Por ejemplo, si desea buscar Alpine Ski House, escriba Alp en
el cuadro de búsqueda; Si escribe Ski, el registro no se mostrará en el resultado de la búsqueda.
Para una búsqueda con caracteres comodín, use asteriscos: por ejemplo, escriba * ski o * Ski.

Examinar en un campo de búsqueda


Para examinar una búsqueda, seleccione el icono de búsqueda (lupa). En el menú desplegable se mostrará una lista
completa de elementos.
Imágenes de tipo de registro usados más recientemente
La lista de registros usados más recientemente muestra una imagen para ayudar a distinguir entre los tipos de
registro.

NOTE
Los registros recientes no se filtran por término de búsqueda o vista seleccionada.

Lista de selección de tipo de registro


Cuando los resultados abarcan varios tipos de registros, puede ver cuántos tipos de registros hay y seleccionarlos
en la lista.
Crear un nuevo registro si no encuentra un registro existente
Si no encuentra un registro, seleccione nuevo en el área de búsqueda para crear un nuevo registro.
Reemplazar un registro existente de un campo de búsqueda
Puede reemplazar un registro existente mientras usa búsquedas simples y con relación a tipos. Buscar un registro.
A continuación, seleccione el registro y reemplácelo por un nuevo registro.
Cambiar una vista en un campo de búsqueda
La selección de cambiar vista permite determinar:
Cómo desea ver los registros, como los contactos seguidos, la vista de búsqueda de contactoso los
contactos activos.
Lo que desea ver en los registros, como el nombre, el correo electrónico o el número de teléfono. Por
ejemplo, si desea ver solo los contactos que sigue, seleccione cambiar vista > contactos seguidos. Solo se
mostrarán los contactos que esté siguiendo, como se muestra aquí.

IMPORTANT
La opción cambiar vista no estará visible si el administrador no ha configurado la opción para que aparezca en las vistas.

Elegir entre varios registros


Cuando lookup tiene más registros en un campo de los que caben en el área de visualización disponible, el área de
visualización se contrae, es decir, los registros que se ajustan al área de presentación se muestran junto al número
de registros que no se muestran. Para ver todos los registros, seleccione el número. En las imágenes siguientes se
muestra la diferencia entre los campos contraídos y no contraídos.
Contraído

No contraído:
Ver la tarjeta de Perfil de un contacto o usuario
08/11/2019 • 4 minutes to read • Edit Online

Use la tarjeta de perfil para obtener información rápida sobre un contacto o un usuario. Al seleccionar un campo de
contacto o de usuario en las aplicaciones controladas por modelos en Dynamics 365, como Dynamics 365 sales y
Dynamics 365 Customer Service, puede encontrar información relacionada con ellos en su tarjeta de perfil. Para
obtener más información acerca de las tarjetas de perfil, consulte tarjetas de perfil en Office 365.

NOTE
La tarjeta de perfil está disponible para la entidad contacto y usuario . Para obtener más información, consulte Habilitar
la tarjeta de perfil (para administradores).
La tarjeta de Perfil de Common Data Service no se muestra si la autenticación multifactor está activada para el servicio de
Office Delve en Azure Active Directory.

Ver el perfil de un contacto


1. Vaya a Actividades.
2. Seleccione una actividad existente o cree una nueva.
3. Mantenga el mouse sobre el campo llamada a cuando tenga un registro de contacto.
Puede ver los detalles del contacto insertado, que incluye la imagen del contacto, el nombre, el título y la cuenta.
4. Para ver más detalles, seleccione Mostrar más para expandir el perfil del contacto.
Ver el perfil de un usuario
1. Vaya a cuentas.
2. Seleccione un registro de cuenta.
3. Mantenga el mouse sobre el campo propietario cuando tenga un registro de usuario. Puede ver los detalles
del usuario en línea.
4. Para ver más detalles, como los mensajes de correo electrónico y los archivos compartidos con el usuario,
seleccione Mostrar más para expandir el perfil del contacto.

+
¿Dónde puedo ver las tarjetas de perfil en Dynamics 365?
Las tarjetas de perfil pueden verse en registros de contactos y usuarios. Solo se pueden ver cuando se encuentran
en una búsqueda.
¿De dónde procede la información que se muestra en la tarjeta de perfil?
La información que se muestra en la tarjeta de Perfil de contacto se captura de Common Data Service (y no de
Microsoft Exchange). Esto significa que los detalles de contacto provienen de Dynamics 365.
La información que se muestra en la tarjeta de Perfil de usuario se captura de Office 365 (Azure Active Directory).
Para obtener más información, vea tarjetas de perfil en Office 365 (sección de administración).
¿Cómo puedo personalizar los campos que se muestran en la tarjeta de perfil?
Actualmente, la lista de campos que se muestra en la tarjeta de perfil no está abierta para la personalización.
¿Por qué está deshabilitada la opción iniciar chat en la tarjeta de perfil (atenuada)?
Las opciones iniciar chat y Enviar correo electrónico de la tarjeta de perfil abrirán las aplicaciones de correo
electrónico y mensajes instantáneos predeterminadas. La opción iniciar chat está habilitada si la persona a la que
está intentando ponerse en contacto en el mismo entorno de Azure Active Directory que usted o es un contacto
federado.
Asignar o compartir registros
26/07/2019 • 3 minutes to read • Edit Online

Si desea que otra persona de su organización controle un registro de cliente, puede asignar el registro a esa
persona. También puede asignar un registro a un equipo o a usted mismo.
Use la opción compartir si desea mantener la propiedad del registro pero deje que otra persona trabaje con él.
1. En el panel de navegación izquierdo, seleccione un tipo de registro. Por ejemplo, contactos.
2. En la lista de registros, seleccione el registro que desea reasignar.
3. En la barra de comandos, seleccione asignar.

NOTE
Si desea mantener la propiedad del registro pero dejar que otra persona trabaje con él, seleccione compartir. A
continuación, use la información sobre herramientas para guiarle a través de la opción de uso compartido .

4. En el cuadro de diálogo asignar, en el área asignar a , elija mí o usuario o equipo.

Si selecciona usuario o equipo, en el cuadro buscar registros , escriba el nombre del usuario o equipo. Si
necesita crear un nuevo registro, seleccione + nuevo.
5. Cuando haya terminado, seleccione asignar.

Usar búsqueda avanzada para reasignar registros


Use la búsqueda avanzada para buscar registros y reasignarlos a otra persona. Para obtener más información
sobre la búsqueda avanzada, vea crear, editar o guardar una búsqueda avanzada.
1. En la barra de comandos, seleccione búsqueda avanzada.

2. En la lista de registros, seleccione los registros que desea reasignar y, a continuación, seleccione la opción
asignar.

Reasignar todos los registros (para administradores)


Un administrador puede reasignar todos los registros de un usuario desde el área de configuración de
administrador.
1. Vaya a Configuración > Seguridad.
2. Seleccione usuarios y seleccione un nombre de usuario para abrir el perfil del usuario.
3. En la barra de comandos, seleccione REASIGNAR registros.

4. En el cuadro de diálogo reasignar registros , elija cómo desea reasignar todos los registros y, después,
seleccione Aceptar.

NOTE
La opción reasignar registros reasignará todos los registros independientemente de su estado. Los registros inactivos y
activos se reasignarán al otro usuario o equipo.
Compartir registros con Access Team
26/07/2019 • 2 minutes to read • Edit Online

La característica de equipos de acceso concede acceso a registros mediante el uso compartido de registros. Los
miembros del equipo de acceso tienen privilegios definidos por sus roles de seguridad individuales y por los roles
de los equipos de los que son miembros.

NOTE
Para compartir registros mediante el equipo de acceso, el administrador deberá configurar una plantilla del equipo de acceso.
Para obtener más información, consulte Acerca de las plantillas de equipo.

1. Para conceder a un usuario permiso para acceder a un registro, seleccione el tipo de registro en el mapa del
sitio. Por ejemplo, Cuentas.
2. En la lista de registros, abra el registro al que desea proporcionar acceso a otro usuario.

3. En la sección de los miembros del equipo de acceso, seleccione Más comandos ( … ) > Agregar usuario.

4. En el cuadro de búsqueda, escriba el nombre de usuario para buscarlo y, a continuación, seleccione Agregar.

Eliminación de un usuario de los equipos de acceso


Es tan fácil quitar el acceso de un usuario a un registro como agregarlo al equipo.
1. Abra el registro del que desea quitar al usuario.
2. En la subcuadrícula de los miembros del equipo de acceso, seleccione Quitar usuario.
Agregar un rol de conexión para vincular registros
entre sí
19/10/2019 • 4 minutes to read • Edit Online

Las conexiones le permiten asociar fácilmente usuarios, contactos, ofertas, pedidos de ventas y muchos otros
registros de entidad entre sí. A los registros de la asociación se les pueden asignar roles concretos que ayuden a
definir el propósito de la relación.
Es una forma rápida de crear varias conexiones y roles para un registro determinado. Por ejemplo, un contacto
puede tener muchas relaciones con otros contactos, cuentas o contratos. En cada relación, un contacto puede
desempeñar un rol diferente.
Los roles de conexión se asocian directamente a una conexión. Para usar un rol de conexión, primero debe agregar
una conexión al registro.
Para poder agregar roles de conexión, debe habilitarlo el administrador. Para obtener más información, vea
configurar roles de conexión.
1. Para agregar o administrar conexiones, seleccione el registro que desea administrar como una oportunidad.
2. Seleccione la pestaña relacionado y, a continuación, seleccione conexión. Se abrirá la cuadrícula de
conexión con la lista de conexiones del registro.

3. Seleccione conectar y, luego, elija otro o yo.


4. En el campo nombre , escriba o busque el nombre del registro para la conexión.
5. En el campo como este rol , seleccione el icono de búsqueda y, a continuación, elija nuevo rol de
conexión. O bien, use la búsqueda para buscar un rol existente que desee asociar a la conexión y, a
continuación, seleccione Guardar.
![Elegir nuevo rol de conexión],(media/connection3.png "elegir nuevo rol de conexión")

NOTE
Si ha especificado la información antes de crear un nuevo rol de conexión, se mostrará un cuadro de diálogo de
advertencia en el que se le preguntará si desea cancelar y seguir trabajando en la conexión o continuar y salir del
registro actual en el que está trabajando.

6. Para crear un nuevo rol de conexión, en la pantalla nuevo rol de conexión escriba un nombre y, a
continuación, elija una categoría de rol de conexión.
7. Cuando haya terminado, seleccione guardar & cerrar.

Administrar roles de conexión


Para administrar un rol de conexión, seleccione el rol de conexión de una entidad de conexión. Se abrirá el registro
de entidad del rol de conexión. Puede editar el nombre, seleccionar una categoría de rol de conexión y agregar una
descripción.
![Editar]rol de conexión rol de(media/connection7.png "Editconnection")
También puede administrar los tipos de rol de conexión que desea asociar al rol de conexión.
1. Abra el rol de conexión y, a continuación, seleccione administrar tipo de registro en el comando.
![Editar]rol de conexión rol de(media/connection5.png "Editconnection")
2. Se abrirá una lista de tipos de roles de conexión que puede Agregar o quitar para este rol de conexión.
![Administrar tipo]de registro administrar tipo de(media/connection6.png "registro")
Desactivar o activar una cuenta o un contacto
19/10/2019 • 2 minutes to read • Edit Online

En una aplicación controlada por modelos, puede desactivar una cuenta o un contacto en lugar de eliminarla. Esto
garantiza la integridad de la pista de auditoría asociada a ese registro.
Una cuenta o contacto desactivado se vuelve inactivo, lo que significa que no se puede editar ni usar para
establecer nuevas relaciones con otros registros. Sin embargo, todas las relaciones creadas con el elemento
desactivado seguirán estando disponibles.
Si más adelante necesita reactivar una cuenta desactivada, es fácil hacerlo.

Desactivar una cuenta o un contacto


1. En el menú de la izquierda, vaya a cuentas o contactos.
2. Seleccione la cuenta o el contacto activo que desea desactivar, en la barra de comandos seleccione
desactivary, a continuación, confirme la desactivación.

Activar una cuenta o un contacto


1. En el menú de la izquierda, vaya a cuentas o contactos.
2. Vaya a la lista de vistas del sistema .
3. Seleccione cuentas inactivas o contactos inactivos.
4. Seleccione las cuentas o los contactos inactivos que desea activar.
5. Seleccione Activary, a continuación, confirme la activación.
Realizar un seguimiento del progreso con gráficos y
paneles
19/10/2019 • 4 minutes to read • Edit Online

Los paneles toman una colección de datos de la aplicación y proporcionan información para mostrar indicadores
clave de rendimiento (KPI) y otros datos importantes en gráficos y gráficos interactivos fáciles de leer. Los paneles
están disponibles para todos los tipos de registros.

del panel
Para ver un diseño de panel diferente, seleccione la flecha hacia abajo situada junto al nombre del panel y, a
continuación, seleccione el diseño que desee.
Para elegir un panel predeterminado, abra el panel que desee y, a continuación, seleccione establecer
como predeterminado en la parte superior de la pantalla.
![Agregar o cambiar]el panel(media/add_dashboard.png "Agregar o cambiar") el panel

Crear un nuevo panel


1. Para crear un nuevo panel, seleccione crear un panel de Dynamics 365.

2. Elija un diseño de panel y seleccione crear.


3. Escriba un nombre para el panel.
4. Agregue lo que desee a cada área del panel. Por ejemplo, vamos a agregar un gráfico.
![Agregar un]gráfico(media/add_chart.png "Agregar un gráfico")
5. Seleccione el tipo de registro para el gráfico.
6. Seleccione una vista en la que se mostrarán los datos del gráfico.
7. Elija el gráfico y, a continuación, seleccione Agregar.
8. Siga agregando componentes al panel y, cuando haya terminado, seleccione Guardar.
El panel que ha creado aparecerá en el menú desplegable de los paneles disponibles.

Usar gráficos
Los gráficos proporcionan una vista rápida de cómo se realiza el seguimiento de los objetivos. También son
interactivas, por lo que puede hacer clic o pulsar en un área de un gráfico para obtener más información.
Mantenga el mouse sobre el gráfico para ver una información sobre herramientas que proporciona
información rápida sobre esa área del gráfico.
Haga clic en el área de un gráfico para ver una vista de cuadrícula con más detalles sobre los datos del
gráfico.
Para expandir un gráfico, haga clic en el botón expandir gráfico expandir![vista]del gráfico expandir
vista(media/expandviewbutton.png "del gráfico.")
Para ver los registros del gráfico o actualizar el gráfico, seleccione comandos y, a continuación, elija
una acción: Actualizar o Ver registros.
![Vista de gráficos en]la(media/ViewOfCharts.png "vista de powerapps de gráficos en powerapps")
Cambiar la vista del gráfico
Al cambiar la vista de gráfico, se muestra un desglose diferente de los datos, como oportunidades abiertas en un
período de tiempo concreto. Puede cambiar una vista de gráfico seleccionando el selector de vistas en la página de
cuadrícula.
Por ejemplo, seleccione "todas las oportunidades" y, a continuación, seleccione una vista diferente, y se
actualizarán tanto el gráfico como la cuadrícula.
Problemas conocidos
En el diseñador de gráficos, no se admite la adición de un order by en determinados campos calculados y se
producirá un error. Los campos calculados que lo hacen es usar otros campos calculados, un campo de entidad
relacionado o un campo local en la entidad.
Agregar o editar Power BI visualizaciones en el panel
19/10/2019 • 8 minutes to read • Edit Online

Cree informes completos e interactivos y visualizaciones en tiempo real con Power BI paneles e iconos que
agregue a los paneles personales.

NOTE
Para agregar Power BI visualizaciones a los paneles personales de la aplicación controlada por modelos, debe:
Habilite las visualizaciones de Power BI para su organización en configuración > Administración > configuración del
sistema > pestañainformes > permitir la incrustación de visualizaciones Power BI.
Tener una cuenta de Power BI y tener acceso al menos a un panel de Power BI.
Evite agregar Power BI visualizaciones a los paneles del sistema; no se admite.

Creación de un panel de Power BI personal


Siga estos pasos para agregar un panel de Power BI a la aplicación controlada por modelos. Si se está conectando
al servicio de Power BI, necesita una cuenta y ha seleccionado la instancia de Common Data Service como un
origen de datos. Para obtener más información sobre el registro y la conexión de orígenes de datos, vea Microsoft
Power BI.
1. Abra la aplicación y vaya a paneles.
2. Seleccione nuevo y, a continuación, seleccione Power BI panel.

3. En el cuadro de diálogo propiedades del panel de Power BI , seleccione el área de trabajo y, a


continuación, seleccione el panel de Power BI que quiere insertar en el panel. Seleccione Habilitar para
dispositivos móviles si desea que el panel esté disponible para Dynamics 365 para tabletas y Dynamics
365 para teléfonos.
4. Seleccione Guardar para guardar el panel.

Insertar iconos Power BI en el panel personal


Siga estos pasos para agregar uno o varios iconos de Power BI a su panel personal. Si se está conectando al
servicio de Power BI, necesita una cuenta y ha seleccionado la instancia de Common Data Service como un origen
de datos. Para obtener más información sobre el registro y la conexión de orígenes de datos, vea Microsoft Power
BI.
1. Abra la aplicación y vaya a paneles.
2. Seleccione un panel personal existente o seleccione nuevo para crear uno.
3. En el panel, seleccione un área en la que desee que aparezca el icono y, a continuación, seleccione Power BI
icono en la barra de herramientas.

4. En el cuadro de diálogo Power BI icono , seleccione el área de trabajo y, a continuación, seleccione el icono
de Power BI que desea mostrar en el panel. Seleccione Habilitar para dispositivos móviles si desea que
el icono esté disponible para Dynamics 365 para tabletas y Dynamics 365 para teléfonos.
Seleccione otra área del panel y repita este paso para agregar otro Power BI icono u otro componente, como
un gráfico o una lista, al panel.
5. Seleccione Guardar para guardar el panel.
Cosas que puede hacer con Power BI iconos insertados en los paneles personales
Para mostrar las características disponibles con una visualización de Power BI, mantenga el mouse sobre la parte
superior derecha de la visualización para mostrar las siguientes funcionalidades.
1. Seleccione el botón actualizar botón para actualizar los datos del informe subyacente del icono.

2. Seleccione el botón abrir en Power BI para abrir el panel de Power BI que contiene la visualización en
una nueva pestaña del explorador.

3. Seleccione el para expandir la visualización y aumentar el área de visualización de la visualización, como


el icono canalización de ventas que se muestra aquí.

Compartir un panel personal que contiene visualizaciones Power BI


Para compartir el panel personal que contiene Power BI visualizaciones, debe configurar el uso compartido en
Common Data Service y Power BI, y el usuario o grupo debe tener las mismas credenciales y el nivel de acceso
adecuado en ambos servicios. Para compartir su panel personal en la aplicación, vaya a, paneles. En la lista de
paneles, seleccione el panel personal que desee y, a continuación, seleccione compartir panel. Para obtener más
información sobre cómo compartir un panel en Power BI, consulte Power BI: compartir un panel con compañeros
y otros usuarios.

Aviso de privacidad
Al habilitar la inserción de mosaicos y paneles de Power BI, cuando un usuario inserta un mosaico o un panel de
Power BI, ese símbolo de autorización de Azure Active Directory del cliente para Common Data Service se usa con
el fin de autenticarse en el servicio de Power BI con una concesión implícita, que proporciona una experiencia de
"inicio de sesión único" perfecta para el usuario final.
Los administradores pueden deshabilitar la inserción de mosaicos y paneles de Power BIen cualquier momento
para dejar de usar el símbolo de autorización de Dynamics 365 con el fin de autenticarse en el servicio de Power
BI. Los mosaicos o los paneles existentes detendrán la representación para el usuario final.
En la siguiente sección se describe el componente o servicio de Azure involucrado en la inserción de mosaicos de
Power BI.
Nota: Para obtener más información acerca de otras ofertas de servicios de Azure, consulta el Centro de confianza
de Microsoft Azure.
Azure Active Directory
Este servicio proporciona el símbolo de autenticación intercambiado con el servicio de Power BI para la
autenticación de la API y la interfaz de usuario.
Comparar las opciones de búsqueda y búsqueda en
Common Data Service
04/10/2019 • 4 minutes to read • Edit Online

Hay cuatro maneras de buscar datos en Common Data Service:


Búsqueda por relevancia
Búsqueda rápida de texto completo (de una o varias entidades)
Búsqueda rápida (de una o varias entidades)
Búsqueda avanzada

NOTE
La búsqueda rápida en varias entidades también se denomina búsqueda por categorías.

En la tabla siguiente se proporciona una breve comparación de las cuatro opciones disponibles.

BÚSQUEDA DE BÚSQUEDA RÁPIDA DE


FUNCTIONAL RELEVANCIA TEX TO COMPLETO BÚSQUEDA RÁPIDA BÚSQUEDA AVANZADA

¿Habilitado de forma No. Un administrador No. Un administrador Sí Sí


predeterminada? debe habilitarlo debe habilitarlo
manualmente. manualmente.

Ámbito de búsqueda No está disponible en Disponible en una Disponible en una Disponible en una
de una sola entidad una cuadrícula de cuadrícula de cuadrícula de cuadrícula de
entidades. Puede entidades. entidades. entidades.
filtrar los resultados
de la búsqueda por
una entidad en la
página de resultados.

Ámbito de búsqueda No hay ningún límite Busca hasta 10 Busca hasta 10 Búsqueda de varias
de varias entidades máximo en el número entidades, agrupadas entidades, agrupadas entidades no
de entidades que se por una entidad. por una entidad. disponible.
pueden buscar. Nota:
Aunque no hay
ningún límite máximo
en el número de
entidades que se
pueden buscar, el
filtro de tipo de
registro solo muestra
datos de 10
entidades.
BÚSQUEDA DE BÚSQUEDA RÁPIDA DE
FUNCTIONAL RELEVANCIA TEX TO COMPLETO BÚSQUEDA RÁPIDA BÚSQUEDA AVANZADA

Comportamiento de Busca coincidencias Busca coincidencias Busca coincidencias Generador de


búsqueda con cualquier palabra en todas las palabras como en una consulta consultas en el que
del término de del término de SQL con cláusulas puede definir criterios
búsqueda en búsqueda en un "like". Tiene que usar de búsqueda para el
cualquier campo de la campo de una los caracteres tipo de registro
entidad. entidad. sin embargo, comodín en el seleccionado. También
las palabras se término de búsqueda se puede usar para
pueden comparar en para buscar dentro de preparar los datos
cualquier orden del una cadena. Todas las para la exportación a
campo. coincidencias deben Office Excel, de modo
coincidir exactamente que pueda analizar,
con el término de resumir o agregar
búsqueda. datos, o crear tablas
dinámicas para ver los
datos desde distintas
perspectivas.

Campos de búsqueda Campos de texto Todos los campos de Todos los campos de Todos los campos de
como una sola línea búsqueda. búsqueda. búsqueda.
de texto, varias líneas
de texto, búsquedas y
conjuntos de
opciones. No admite
la búsqueda en
campos de tipos de
datos numéricos o de
fecha.

Resultados de la Devuelve los En el caso de una sola En el caso de una sola Devuelve los
búsqueda resultados de la entidad, devuelve los entidad, devuelve los resultados de la
búsqueda en orden resultados de la resultados de la búsqueda del tipo de
de relevancia, en una búsqueda en una búsqueda en una registro seleccionado
sola lista. cuadrícula de cuadrícula de con las columnas
entidades. En el caso entidades. En el caso especificadas, en el
de varias entidades, de varias entidades, criterio de ordenación
devuelve los devuelve los que ha configurado.
resultados de la resultados de la
búsqueda agrupados búsqueda agrupados
por categorías, como por categorías, como
cuentas, contactos o cuentas, contactos o
clientes potenciales. clientes potenciales.

Caracteres comodín Carácter comodín Se admite el carácter Se admite el carácter No compatible.


(*) final admitido para la comodín inicial. comodín inicial.
finalización de Carácter comodín Carácter comodín final
palabras. final agregado de agregado de forma
forma predeterminada.
predeterminada.
Búsqueda de registros en una aplicación
27/11/2019 • 20 minutes to read • Edit Online

Puede buscar registros en varias entidades mediante la búsqueda por relevancia o la búsqueda por categorías en
Common Data Service.
La búsqueda de relevancia ofrece resultados rápidos y completos en varias entidades, en una sola lista,
ordenadas por relevancia. Utiliza un servicio de búsqueda dedicado externo a Common Data Service (con
tecnología Azure) para mejorar el rendimiento de la búsqueda.
La búsqueda por categorías devuelve los resultados de la búsqueda agrupados por tipos de entidad, como
cuentas, contactos o clientes potenciales.
Normalmente, la búsqueda por categorías es la opción de búsqueda predeterminada. Sin embargo, si la
organización habilita la búsqueda de relevancia, se convierte en la experiencia de búsqueda predeterminada.

Búsqueda rápida (búsqueda en categorías de varias entidades o de


búsqueda rápida específica de la entidad)
Para buscar registros de un solo tipo, puede usar la vista búsqueda rápida de la cuadrícula de la entidad.
Con la búsqueda por categorías (también denominada búsqueda rápida de varias entidades), puede buscar los
registros que comienzan por una palabra específica o usar un carácter comodín.
Comienza por: los resultados incluyen registros que comienzan con una palabra específica. Por ejemplo, si
desea buscar "Alpine Ski House", escriba Alp en el cuadro de búsqueda; Si escribe Ski, el registro no se
mostrará.
Carácter comodín: por ejemplo, * ski o * Ski*.

NOTE
El uso de un carácter comodín al principio de la consulta de búsqueda de búsqueda rápida (de una o varias entidades)
puede dar lugar a un rendimiento más lento.

Búsqueda de relevancia
La búsqueda de relevancia está disponible además de otras búsquedas Common Data Service en las que ya está
familiarizado. Puede seguir usando la búsqueda rápida de una sola entidad en la cuadrícula de entidades o la
búsqueda rápida de varias entidades (denominada búsqueda por categorías, si tiene habilitada la búsqueda de
relevancia). Para obtener resultados más detallados y más rápidos, se recomienda usar la búsqueda de relevancia.
La búsqueda de relevancia ofrece las siguientes mejoras y ventajas:
Mejora el rendimiento con indexación externa y Azure tecnología de búsqueda.
Busca coincidencias con cualquier palabra del término de búsqueda en cualquier campo de la entidad. Las
coincidencias pueden incluir palabras con inflexión como Stream, streamingo streaming.
Devuelve los resultados de todas las entidades que se pueden buscar en una única lista ordenada por
relevancia, en función de factores como el número de palabras coincidentes o su proximidad entre sí en el
texto.
Resalta las coincidencias en la lista de resultados.
Encontrará los resultados de la búsqueda de texto en un documento que está almacenado en Common Data
Service, incluido texto en notas, datos adjuntos de correo electrónico o citas. Los siguientes formatos de
archivo son compatibles con la búsqueda: PDF, Microsoft Office documentos, HTML, XML, ZIP, EML, texto
sin formato y JSON.
Puede buscar los registros que se comparten con usted y los registros que posee.

NOTE
No se admiten los modelos de seguridad jerárquica. Incluso si ve una fila en Common Data Service porque tiene
acceso a ella a través de la seguridad jerárquica, no verá el resultado en la búsqueda de relevancia.

También puede buscar conjuntos de opciones y búsquedas. Por ejemplo, supongamos que desea buscar una
cuenta de tienda que tenga farmacéuticos en el nombre. Al buscar una venta al por menor, verá el
resultado porque hay una coincidencia con el campo del sector, que es un conjunto de opciones de
búsqueda.
Dado que los resultados pueden incluir una combinación de entidades, puede restringir los resultados de la
búsqueda a una entidad específica seleccionando una entidad en la lista desplegable filtrar con . Al filtrar
por un tipo de registro específico, puede incluir actividades y notas relacionadas con el registro seleccionado
en los resultados de la búsqueda. Para ello, active la casilla buscar actividades y notas para los registros
seleccionados a la derecha de la lista desplegable filtrar con . La casilla se activa después de seleccionar
un registro en la lista desplegable filtrar con . se desactiva si no seleccionó una entidad en la lista filtrar
con . Las actividades y las notas se devuelven como resultados de nivel superior.

NOTE
La búsqueda de relevancia está deshabilitada de forma predeterminada. El administrador debe habilitarla para la
organización. Después de habilitar la búsqueda de relevancia, es posible que tenga que esperar hasta una hora o
más, en función del tamaño de la organización, antes de empezar a ver los resultados de la búsqueda de relevancia
para las aplicaciones. Los cambios más pequeños en los datos indizados pueden tardar hasta 15 minutos en
aparecer en el sistema.
La habilitación de la búsqueda de relevancia permite a todos los usuarios de la organización utilizarla.
La búsqueda de relevancia está basada en texto y solo puede buscar en campos de tipo una línea de texto, varias
líneas de texto, conjuntos de opciones o búsquedas. No admite la búsqueda en campos de tipos de datos
numéricos o de fecha.

Aunque la búsqueda de relevancia encuentra coincidencias con cualquier palabra del término de búsqueda en
cualquier campo de una entidad, en la búsqueda rápida—incluso con la búsqueda de texto completo habilitada—
todas las palabras del término de búsqueda se deben encontrar en un campo.
En la búsqueda de relevancia, cuanto mejor sea la coincidencia, más alta aparecerá en los resultados. Una
coincidencia tiene una mayor relevancia si se encuentran más palabras del término de búsqueda en estrecha
proximidad entre sí. Cuanto menor sea la cantidad de texto donde se encuentren las palabras de búsqueda, mayor
será la relevancia. Por ejemplo, si encuentra las palabras de búsqueda en el nombre y la dirección de la empresa,
podría ser una mejor coincidencia que las mismas palabras que se encuentran en un artículo grande, separadas
entre sí. Dado que los resultados se devuelven en una sola lista, puede ver una combinación de registros
mostrados uno después de otro, como cuentas, oportunidades, clientes potenciales, etc. Se resaltan las palabras
coincidentes de la lista.
Use la sintaxis en el término de búsqueda para obtener los resultados que desee. Por ejemplo, escriba Car Silver
2-Door para incluir coincidencias de cualquier palabra en el término de búsqueda en los resultados de la
búsqueda. Escriba Car + Silver +2-Door para buscar solo coincidencias que incluyan las tres palabras. Escriba
Car|Silver|2-Door para obtener resultados que contengan coches o Silver o de 2 puertas, o las tres palabras.
Más información sobre la sintaxis que puede usar en las consultas de búsqueda: Sintaxis de consulta simple en
Azure Search

NOTE
Verá los resaltados de aciertos cuando el término de búsqueda coincide con un término de la aplicación. Los resaltados de
aciertos aparecen como texto en negrita y en cursiva en los resultados de la búsqueda. A menudo se devuelven como parte
del valor completo en un campo, ya que solo se resaltan los términos coincidentes.

Cambiar entre la búsqueda por relevancia y por categorías


Si su organización ha activado ambas opciones de búsqueda (relevancia y búsqueda por categorías), puede
cambiar entre las dos.
1. Para cambiar entre los tipos de búsqueda, en la barra de navegación, seleccione el botón Buscar .
2. A la izquierda, seleccione el menú desplegable para cambiar entre la búsqueda por relevancia o la
búsqueda por categorías.

Establecer una experiencia predeterminada


Si su organización ha activado ambas opciones de búsqueda, puede seleccionar una experiencia de búsqueda
predeterminada en su configuración personal.
1. En la esquina superior derecha de la página, seleccione configuración y, a continuación, seleccione
configuración de personalización.

2. En la pestaña General , en la sección seleccionar la experiencia de búsqueda predeterminada , para la


experiencia de búsqueda predeterminada, seleccione su experiencia predeterminada.
Iniciar una búsqueda
1. En la barra de navegación superior, seleccione el botón Buscar .
2. Escriba las palabras de búsqueda en el cuadro de búsqueda y, a continuación, seleccione el botón Buscar .

Filtrar los resultados de la búsqueda por categorías


Para filtrar los resultados por un tipo de registro, en la pantalla de búsqueda, elija un tipo de registro en el
cuadro desplegable filtrar con: .
Para buscar en todos los tipos de registro, elija ninguno en el cuadro desplegable filtrar con: .

Filtrar registros con aspectos (funciona con la búsqueda de relevancia)


Con Common Data Service, ahora puede refinar los resultados de la búsqueda mediante el uso de aspectos y
filtros. Las caras están disponibles en el panel izquierdo. Inmediatamente después de realizar una búsqueda, están
disponibles las siguientes caras globales para cuatro campos comunes:
Tipo de registro
Owner
Creado el
Modificado el
Aspectos del tipo de registro
Para restringir los resultados de la búsqueda a una entidad específica, seleccione la entidad en la sección tipo de
registro .
Al filtrar por un tipo de registro específico, puede incluir actividades y notas relacionadas con el registro
seleccionado en los resultados de la búsqueda. Para ello, active la casilla notas relacionadas & actividades . Las
actividades y las notas aparecerán en los resultados de nivel superior.

Los resultados de la búsqueda que se encuentran en datos adjuntos de correo electrónico o entidades de cita se
muestran en los resultados de búsqueda bajo su registro primario, ya sea correo electrónico o cita.
Al refinar por tipo de registro, el ámbito de la faceta cambia a la entidad seleccionada y se muestran hasta cuatro
facetas que son específicas de la entidad. Por ejemplo, si selecciona la entidad cuenta, verá la faceta contacto
principal además de las facetas globales.
En el cuadro de diálogo establecer opciones personales , también puede elegir otras caras de las que el
administrador del sistema o el cliente han puesto a su disposición. La configuración de usuario invalida la
configuración predeterminada. Más información: configurar las caras y los filtros de la búsqueda
Aspectos basados en texto
Todas las búsquedas, los conjuntos de opciones y los tipos de registro son aspectos basados en texto. Por ejemplo,
el propietario de la faceta basada en texto se compone de una lista de valores de campo y sus recuentos
correspondientes.

Los filtros de estas caras se ordenan en orden descendente por recuento. De forma predeterminada, se muestran
los cuatro valores principales de faceta. Cuando haya más de cuatro valores de faceta, verá un vínculo Mostrar
más que puede seleccionar para expandir la lista y ver hasta 15 valores de faceta superior. Seleccione cada valor
para filtrar los resultados de la búsqueda y mostrar solo los registros en los que el campo tenga el valor
seleccionado. Por ejemplo, si selecciona Kim Alberti, los resultados de la búsqueda mostrarán todos los registros
en los que el propietario es Kim Alberti. Al seleccionar un valor de faceta búsqueda o conjunto de opciones, los
resultados de la búsqueda se filtran para incluir solo los registros con el valor especificado.
Aspectos de fecha y hora
Al igual que otras caras, puede usar las caras de fecha y hora para filtrar y ver los resultados de la búsqueda para
un momento concreto. Para seleccionar un intervalo de valores, arrastre el control deslizante o seleccione una de
las columnas verticales.
Configurar las caras y los filtros de la búsqueda
Las caras y los filtros permiten profundizar y explorar los resultados de la búsqueda actual sin tener que refinar el
término de búsqueda repetidamente. Configure las caras y los filtros que desee en el cuadro de diálogo establecer
opciones personales .

NOTE
El personalizador del sistema puede establecer la experiencia predeterminada para todas las entidades, pero puede configurar
sus propias caras y filtros.

Para configurar las caras para sí mismo


1. En la esquina superior derecha de la página, seleccione configuración y, a continuación, seleccione
configuración de personalización.

2. En la pestaña General , en la sección seleccionar la experiencia de búsqueda predeterminada , en el


campo aspectos y filtros , seleccione configurar.
3. En el cuadro de diálogo configurar aspectos y filtros , especifique las caras que le gustaría ver para una
entidad. El administrador del sistema o el personalizador pueden establecer una experiencia predeterminada
para todas las entidades, pero aquí puede establecer las suyas propias.
En la lista desplegable seleccionar entidad , seleccione una entidad para la que desee configurar las
caras. Esta lista desplegable contiene solo las entidades que están habilitadas para la búsqueda de
relevancia.
En la entidad seleccionada, seleccione hasta cuatro campos de faceta. De forma predeterminada, los
cuatro primeros campos con facetas de la vista búsqueda rápida de la entidad seleccionada se
seleccionan en la lista. En cualquier momento, solo puede tener cuatro campos seleccionados como
aspectos.
Puede actualizar varias entidades al mismo tiempo. Al seleccionar Aceptar, se guardan los cambios
de todas las entidades que ha configurado. Para revertir al comportamiento predeterminado de una
entidad que configuró anteriormente, seleccione predeterminado.

NOTE
Si un Personalizador del sistema elimina un campo o hace que ya no se puede buscar y ha guardado una faceta
para ese campo, ya no aparecerá como una faceta.
Solo verá los campos que existen en la solución predeterminada y que están configurados como que el
personalizador del sistema puede buscar.
Crear, editar o guardar una búsqueda avanzada
26/07/2019 • 2 minutes to read • Edit Online

Busque los registros que desee en la aplicación mediante la opción búsqueda avanzada. También puede usar la
búsqueda avanzada para preparar los datos para la exportación a Office Excel, de modo que pueda analizar,
resumir o agregar datos, o crear tablas dinámicas para ver los datos de diferentes perspectivas.
1. En la barra de comandos, haga clic en el botón búsqueda avanzada .
2. Especifique lo que se va a buscar.
a. En la lista Buscar , seleccione un tipo de registro.
b. Haga clic en seleccionar para definir criterios de búsqueda: campo (por ejemplo, nombre de cuenta
o ciudad), el operador relacional de consulta (parte de una expresión como "es igual a" o "contiene"
que define cómo se debe comparar un atributo especificado con un valor). valores que se van a
buscar (por ejemplo, "Seattle" o "correo electrónico").
Puede seleccionar los campos del tipo de registro actual o de los registros relacionados. Por ejemplo,
una cuenta podría tener muchos registros de contactos relacionados.
En la parte inferior de la lista de selección , la sección relacionada muestra los tipos de registro
relacionados. Por ejemplo, la mayoría de los tipos de registros tienen un tipo de registro de notas
relacionado. Para seleccionar los campos de un tipo de registro relacionado, seleccione campo y
aparece un nuevo vínculo seleccionar .
3. Especifique las columnas que se van a incluir en los resultados de la búsqueda.
a. Seleccione Editar columnasy, a continuación, seleccione Agregar columnas.
b. Seleccione el tipo de registro que incluye las columnas que desea agregar.
c. Seleccione las columnas que desea agregar y, a continuación, seleccione Aceptar.
4. Especifique el criterio de ordenación.
a. Seleccione Editar columnas.
b. Seleccione configurar ordenación.
c. Especifique la columna por la que desea ordenar, especifique el criterio de ordenación y, a
continuación, haga clic en Aceptar.
d. Seleccione Aceptar.
5. Seleccione resultados.
Importar datos
26/07/2019 • 5 minutes to read • Edit Online

Si sus datos están almacenados en una hoja de cálculo, en el teléfono o en un programa de correo electrónico, en
este artículo sabrá cómo importar los datos en su aplicación. Por ejemplo, importar su lista de contactos de clientes
desde una hoja de cálculo de Excel en la aplicación para poder realizar un seguimiento de toda la información de
los clientes en un mismo lugar.

Paso 1: Prepárese el archivo de importación


En primer lugar, exporte los datos a un archivo de Excel. Se admiten estos formatos de archivo:
Libro de Excel (.xlsx)
Valores separados por comas (.csv)
El tamaño máximo de archivo permitido para archivos .zip es de 32 MB. Para el resto de los formatos de archivo, el
tamaño máximo de archivo permitido es de 8 MB.
Exportación de datos desde un programa de correo electrónico
1. Exporte los datos a un archivo de valores separados por comas (.csv).
Para ver los pasos específicos sobre cómo exportar los contactos de su programa de correo electrónico, abra
la Ayuda del programa y busque "exportar". Busque temas que incluyan "exportación de contactos",
"exportación de la libreta de direcciones" o "Asistente para exportación" en el título.
2. Guarde el archivo en una ubicación donde pueda encontrarlo más fácilmente.
Exportación de datos desde una hoja de cálculo
1. Abra la hoja de cálculo.
2. Si es necesario, edite el nombre de cualquier columna de la hoja de cálculo para que coincida con el nombre
correspondiente que se muestra a continuación.

WARNING
Si la hoja de cálculo no incluye todos los nombres de columna enumerados, es correcto. Sin embargo, si hay un
nombre de columna, debe coincidir exactamente con el nombre correspondiente en la lista; si no, la importación no
funcionará. Los espacios son obligatorios. Tenga en cuenta que la palabra "Email" no contiene un guión.

NOMBRE DE COLUMNA EN LA HOJA DE CÁLCULO (LA ORTOGRAFÍA DEBE COINCIDIR EXACTAMENTE)

Nombre

Segundo nombre

Apellidos

Teléfono del trabajo

Teléfono móvil
NOMBRE DE COLUMNA EN LA HOJA DE CÁLCULO (LA ORTOGRAFÍA DEBE COINCIDIR EXACTAMENTE)

Puesto

Calle del trabajo

Ciudad de trabajo

Estado o provincia del trabajo

Código postal del trabajo

País o región del trabajo

Dirección de correo electrónico

3. Guarde el archivo.
Exportación de datos desde el teléfono
Utilice un cable USB o una aplicación para exportar datos, como los contactos, desde el teléfono a su equipo.
Para buscar los pasos específicos sobre cómo exportar los contactos de su marca de teléfono, busque "exportar
contactos de mi teléfono" en su motor de búsqueda favorito (como Bing).
Para buscar una aplicación, busque en la tienda en línea del teléfono.

Paso 2: Importe el archivo.


1. En la barra de comandos, seleccione Importar desde Excel o Importar desde archivo CSV.

2. Vaya a la carpeta donde guardó el archivo que contiene la exportación de los contactos. Seleccione el
archivo, elija Abrir y, a continuación, seleccione Siguiente.

TIP
Solo puede importar un archivo a la vez. Para importar más archivos, vuelva a ejecutar al asistente más tarde.

3. Revise el nombre de archivo y compruebe que los delimitadores de campos y datos son correctos mediante
la opción Revisar asignación. Si todo parece correcto, seleccione Finalizar importación.

Paso 3: Compruebe que la importación es correcta


Cuando finalice el asistente, compruebe los datos (por ejemplo, la lista de contactos) para asegurarse de que se han
importado correctamente.
1. En el menú principal, vaya a Contactos.
2. Desplácese por la lista de contactos. Compruebe que aparece cada persona y verifique que el contenido de
los campos es preciso.

Importación de caracteres de doble byte


Si va a importar datos que incluyen caracteres de doble byte de idiomas de Asia oriental, asegúrese de que el
archivo está codificado como UTF -8 BOM. La codificación UTF -8 estándar podría no ser suficiente.
1. Abra el archivo CSV utilizando Visual Studio Code.
2. En la barra inferior, haga clic en la etiqueta UTF-8 (se abre una ventana emergente).
3. Seleccione Guardar con codificación.
Ahora puede seleccionar la codificación UTF -8 BOM para ese archivo.
Exportar los datos a Excel online
26/07/2019 • 3 minutes to read • Edit Online

Puede realizar rápidamente un análisis ad hoc de los datos que se encuentra en la aplicación mediante la
exportación de los datos de la aplicación a Excel online.
Cuando realice cambios en los datos en Excel online, puede guardar la información actualizada en la aplicación.
Recuerde mantener el formato existente de las celdas de Excel para evitar problemas durante la importación.
Cualquier información que se agregue a la hoja de cálculo, como gráficos, gráficos o colores, no se guardará.

Requisitos previos
Esta característica requiere que tenga una suscripción a Office 365 o una suscripción a un servicio en línea
como SharePoint Online o Exchange Online.
Necesita una cuenta de Microsoft.

Abrir datos de la aplicación en Excel online


La opción para abrir datos en Excel online no está disponible en todos los tipos de registro. Si no ve la opción, no
está disponible para ese registro.

NOTE
Los datos actualizados en una aplicación no se reflejarán inmediatamente en Excel online si la misma vista se abrió en los
últimos dos minutos en Excel online. Después de ese período de tiempo, los datos actualizados deben mostrarse en Excel
online.

Para abrir una lista de registros en una aplicación, en la barra de comandos Seleccione el menú exportar a Excel
y, a continuación, seleccione abrir en Excel online.

Guardar los datos e importarlos de nuevo a la aplicación


1. Cuando haya terminado de realizar los cambios, seleccione Guardar.
NOTE
Los datos para el análisis ad hoc con Excel online se almacenan de forma temporal. Cualquier adición, como
gráficos, cálculos y columnas, no se guardará en la aplicación desde el análisis ad hoc en Excel online.
Es posible que se produzca un error en la importación de archivos si realiza muchos cambios. Si tiene que
realizar muchos cambios en los datos y volver a importarlos en la aplicación, se recomienda que exporte la
hoja de cálculo en Excel en su lugar.
Por diseño, no se puede guardar un archivo > como en Excel online. Si lo hace, obtendrá un mensaje de
error no se puede guardar el libro .

2. En el cuadro de diálogo datos enviados para importar , seleccione cerrar.


Exportar datos a Excel
26/07/2019 • 5 minutes to read • Edit Online

¿Necesita analizar los datos y convertirlos en elementos procesables que le ayuden a impulsar más ventas? Ahora
puede hacerlo al exportar los datos a Excel o Excel online. Además, el análisis de grandes conjuntos de datos no es
un problema, ya que puede exportar hasta 100.000 filas de datos.
Puede optar por exportar las hojas de cálculo estáticas o las hojas de cálculo dinámicas, que puede volver a
importar en la aplicación. Si necesita funciones más avanzadas, puede exportar una tabla dinámica dinámica, lo
que facilita la organización y el Resumen de los datos.
Puede exportar datos a un archivo de Excel estándar que puede usar en cualquier dispositivo, como el teléfono, la
tableta o el equipo de escritorio. Los datos se exportan en el mismo formato que se ve en la aplicación. El texto
seguirá siendo texto, los números permanecerán en números y las fechas permanecerán en las fechas. Sin
embargo, cuando se exportan datos de la aplicación a Excel, algunos formatos de celda pueden cambiar. En la tabla
siguiente se resume cómo verá los datos en las aplicaciones y cómo cambia el formato de celda al exportar los
datos a Excel.

Formato de celda cuando los datos se exportan desde aplicaciones


controladas por modelos
FORMATO DE DATOS EN LAS APLICACIONES CONTROLADAS POR
MODELOS FORMATO DE CELDA EN EXCEL

Texto, símbolo de marca de graduación, teléfono, conjunto de Muestra como texto y conjunto de opciones se convierte en
opciones y búsqueda una lista desplegable

Correo electrónico, URL Muestra como general

Number Muestra como número sin separador de grupos

Currency Muestra como número y no incluye el signo de dólar ($)

Solo fecha, fecha y hora Solo se muestra como fecha

Campos calculados y acumulados Editable en Excel, pero no se puede importar de nuevo en


PowerApps

Campos protegidos Editable en Excel, pero no se puede importar de nuevo en


PowerApps

Vea qué tipo de exportación funciona mejor para usted


TAREA MÁS INFORMACIÓN

Realice un análisis ad hoc o What if sin modificar los datos de Exportar a Excel online
la aplicación. O bien, realizar una edición en masa rápida en
varios registros.
TAREA MÁS INFORMACIÓN

Obtenga una instantánea de los datos en los datos y la hora Exportar a una hoja de cálculo estática de Excel
actuales, o bien si desea compartirlo con otros usuarios.

Obtenga la información más actualizada y podrá actualizarla Exportar a una hoja de cálculo dinámica de Excel
en Excel y coincidir con lo que ve en la aplicación en cualquier
momento.

Ver datos de la aplicación en una tabla dinámica. Exportar a una tabla dinámica de Excel

Cuando se exportan datos en Excel (formato. xlsx) y, después, se agregan o modifican columnas, no se pueden
volver a importar los datos en Dynamics 365. Esto no se admite para el formato de archivo. xlsx.
Si utiliza Excel 2010, es posible que reciba este mensaje de error al exportar datos desde el área cuentas:
The file is corrupt and cannot be opened.

El mensaje de error se produce debido a un valor de configuración de en Excel. Para solucionar el problema, haga
lo siguiente:
1. Abra Excel 2010.
2. Vaya a archivo > Opciones.
3. Vaya a laconfiguración del centro de confianzadel centro > de confianza.
4. Seleccione vista protegida y, a continuación, desactive las casillas de las dos primeras opciones.
5. Seleccione Aceptar y, a continuación, cierre el cuadro de diálogo Opciones .
Exportar a una hoja de cálculo dinámica de Excel
26/07/2019 • 6 minutes to read • Edit Online

Exporte los datos de la aplicación a una hoja de cálculo de Office Excel para que los usuarios puedan tener la
información más reciente. Imagine que el CEO de su empresa obtiene la información crítica que necesitan sin
tener que navegar en una aplicación, sino simplemente abrir el vínculo de Excel en el escritorio. Puede exportar
hasta 100.000 registros a la vez.

Exportar datos a una hoja de cálculo dinámica de Excel


No puede exportar datos a una hoja de cálculo dinámica de Excel para todos los tipos de registro. Si no ve la
opción, no está disponible para ese registro.
1. Abra una lista de registros de la aplicación y seleccione la flecha situada a la derecha de exportar a Excel.
2. Seleccione hoja de cálculo dinámica.
3. En el cuadro de diálogo seleccionar columnas para Excel dinámico , seleccione la configuración de la
columna y, a continuación, seleccione exportar.
4. Seleccione Guardar y, a continuación, guarde el archivo. xlsx. Anote la ubicación en la que guardó el archivo.

NOTE
Si va a editar el archivo de datos más adelante, se recomienda que guarde el archivo antes de abrirlo. De lo contrario,
podría obtener este mensaje de error: Excel no puede abrir o guardar más documentos porque no hay
suficiente memoria disponible o espacio en disco.
Para solucionar el problema:
1. Abra Excel y vaya a archivo > Opciones > centro de confianza configuración centro configuración > vista
protegida.
2. En vista protegida, desactive los tres elementos.
3. Seleccione Aceptar > Aceptar.
Todavía se recomienda encarecidamente guardar y abrir el archivo de datos en lugar de deshabilitar la vista protegida,
lo que podría poner el equipo en riesgo.

5. Abra Excel y, a continuación, abra el archivo. xlsx que guardó en el paso anterior.
6. Si ve la advertencia de seguridad se han deshabilitado las conexiones de datos externos, seleccione
Habilitar contenido.
7. Para actualizar los datos del archivo, en la pestaña datos , seleccione actualizar desde PowerApps.

NOTE
Si tiene un número de teléfono que empieza por + o – (por ejemplo, + 1-123-456-7890), al actualizar la hoja de
cálculo dinámica, el campo número de teléfono no mostrará el número correctamente.
Para evitar el problema, use un espacio o paréntesis () , de la siguiente forma: + 1 123-456-7890 o + 1 (123)-456-
7890.
Recomendaciones
Puede enviar por correo electrónico un archivo de Excel dinámico o almacenarlo como un archivo
compartido si los destinatarios están en el mismo dominio que usted. Cuando los destinatarios abren el
archivo dinámico, verán los datos que tienen permiso para verlos en la aplicación, por lo que los datos que
ven pueden ser diferentes de lo que ve.
Algunas vistas del sistema, como las cuentas: Ninguna actividad de la campaña en los últimos 3 meses, solo
se puede exportar a una hoja de cálculo de Excel estática.
En PowerApps, los valores de moneda se exportan a Excel como números. Para dar formato a los datos
como moneda después de completar la exportación, vea el tema de ayuda de Excel titulado "Mostrar
números como moneda".
Los valores de fecha y hora que se ven en la aplicación solo se muestran como fecha al exportar el archivo a
Excel, pero la celda realmente muestra la fecha y la hora.
Si va a realizar cambios y vuelve a importar el archivo de datos en la aplicación, recuerde que los campos
seguros, calculados y compuestos (como el nombre completo) son de solo lectura y no se pueden importar
en la aplicación. Podrá editar estos campos en Excel, pero al importar los datos de nuevo en la aplicación,
estos campos no se actualizarán. Si desea actualizar estos campos, como el nombre de un contacto, se
recomienda que use esa vista para exportar los datos, actualizarlos en Excel y volver a importarlos en la
aplicación para ver si hay cambios.
Exportar a una hoja de cálculo estática de Excel
26/07/2019 • 6 minutes to read • Edit Online

Si quiere presentar información sobre los datos de la aplicación a una persona que no tiene acceso a la aplicación,
o tiene datos que no cambian con frecuencia, considere la posibilidad de exportar los datos de la aplicación a una
hoja de cálculo estática de Office Excel.
Puede exportar hasta 100.000 registros a la vez. De forma predeterminada, una aplicación controlada por modelos
muestra hasta 50 registros por página. Elija las flechas de la Página en la parte inferior de la lista para ver las
páginas adicionales.

Exportar datos a una hoja de cálculo estática de Excel


Es posible que tenga la opción de exportar datos a una hoja de cálculo estática de Excel en todos los tipos de
registro. Sin embargo, en algunos casos, el formato puede ser heredado o puede que los datos no se filtren por lo
que se ve en la aplicación.
1. Abra una lista de registros de la aplicación, seleccione la flecha situada a la derecha de exportar a Excely, a
continuación, elija hoja de cálculo estática (solo página) .
2. De forma predeterminada, una hoja de cálculo exportada incluye los campos que se muestran en la lista,
con el mismo orden de campo, ordenación y ancho de campo. Para realizar cambios en las columnas de una
vista de búsqueda avanzada, elija Editar columnas.
3. Elija Guardar y, a continuación, guarde el archivo. xlsx. Anote la ubicación en la que guardó el archivo.

NOTE
Si va a editar el archivo de datos más adelante, se recomienda que guarde el archivo antes de abrirlo. De lo contrario,
podría obtener este mensaje de error: Excel no puede abrir o guardar más documentos porque no hay
suficiente memoria disponible o espacio en disco.
Para solucionar el problema, haga lo siguiente:
1. Abra Excel y vaya a archivo > Opciones > Centro > de confianzaconfiguración centro configuración > vista
protegida.
2. En vista protegida, desactive los tres elementos.
3. Seleccione Aceptar > Aceptar.
Todavía se recomienda encarecidamente guardar y abrir el archivo de datos en lugar de deshabilitar la vista protegida,
lo que podría poner el equipo en riesgo.

4. Abra Excel y, a continuación, abra el archivo. xlsx que guardó en el paso anterior.
De forma predeterminada, una hoja de cálculo exportada incluye los campos que se muestran en la lista,
con el mismo orden de campo, ordenación y ancho de campo.

Recomendaciones
Puede enviar por correo electrónico una hoja de cálculo de exportación estática a cualquier persona o
almacenarla en un archivo compartido. Cualquier persona que abra el archivo verá todos los datos en el
archivo.
No se pueden cambiar las columnas de una vista del sistema, como todas las cuentas activas. Debe
personalizar la vista, que requiere el rol de seguridad Administrador del sistema o Personalizador del
sistema, o bien usar búsqueda avanzada para crear su propia vista basada en la vista actual.
En las aplicaciones controladas por modelos, los valores de moneda se exportan a Excel como números.
Después ha completado la exportación, vea el tema de ayuda de Excel "Mostrar números como moneda"
para dar formato de moneda a los datos.
Los valores de fecha y hora que se ven en la aplicación solo se muestran como fecha al exportar el archivo a
Excel, pero la celda realmente muestra la fecha y la hora.
Si va a realizar cambios y vuelve a importar el archivo de datos en la aplicación, recuerde que los campos
seguros, calculados y compuestos (como el nombre completo) son de solo lectura y no se pueden importar
en la aplicación. Podrá editar estos campos en Excel, pero al importar los datos de nuevo en la aplicación,
estos campos no se actualizarán. Si desea actualizar estos campos, como el nombre de un contacto, se
recomienda que use esa vista para exportar los datos, actualizarlos en Excel y volver a importarlos en la
aplicación para ver si hay cambios.
Exportar a una tabla dinámica de Excel
26/07/2019 • 5 minutes to read • Edit Online

Puede exportar los datos de la aplicación a una tabla dinámica de Office Excel para ver los patrones y las
tendencias de los datos. Una tabla dinámica de Excel es una excelente manera de resumir, analizar, explorar y
presentar los datos de la aplicación. Puede exportar hasta 100.000 registros a la vez.

Exportar datos a una tabla dinámica de Excel


La opción para exportar datos a una tabla dinámica de Excel no está disponible en todos los tipos de registro. Si no
ve la opción, no está disponible para ese registro.
1. Abra una lista de registros de la aplicación, seleccione la flecha situada a la derecha de exportar a Excely, a
continuación, seleccione tabla dinámicadinámica.
2. En el cuadro de diálogo seleccionar columnas para Excel dinámico , seleccione la configuración de la
columna y, a continuación, seleccione exportar.
De forma predeterminada, la lista de campos de tabla dinámica solo incluye los campos que se
muestran en la lista seleccionar columnas para Excel dinámicas .
3. Seleccione Guardar y, a continuación, guarde el archivo. xlsx. Anote la ubicación en la que guardó el archivo.

NOTE
Si va a editar el archivo de datos más adelante, se recomienda que guarde el archivo antes de abrirlo. De lo contrario,
podría obtener este mensaje de error: Excel no puede abrir o guardar más documentos porque no hay
suficiente memoria disponible o espacio en disco.
Para solucionar el problema:
1. Abra Excel y vaya a File > Options > Trust Center.
2. Seleccione configuración del centro de confianza y, a continuación, vista protegida.
3. En vista protegida, desactive las casillas de los tres elementos.
4. Seleccione Aceptar > Aceptar.
Todavía se recomienda encarecidamente guardar y abrir el archivo de datos en lugar de deshabilitar la vista protegida,
lo que podría poner el equipo en riesgo.

4. Abra Excel y, a continuación, abra el archivo. xlsx que guardó en el paso anterior.
5. Si ve la advertencia de seguridad se han deshabilitado las conexiones de datos externos, seleccione
Habilitar contenido.
6. Para actualizar los datos del archivo, en la pestaña datos , seleccione actualizar desde PowerApps.
7. Arrastre los campos de la lista de campos de la tabla dinámica a la tabla dinámica. Para obtener más
información, vea la ayuda de Excel.

Recomendaciones
En PowerApps, los valores de moneda se exportan a Excel como números. Después de completar la
exportación, vea el tema de ayuda de Excel "Mostrar números como moneda" para dar formato de moneda
a los datos.
Los valores de fecha y hora que se ven en la aplicación solo se muestran como fecha al exportar el archivo a
Excel, pero la celda realmente muestra la fecha y la hora.
Si va a realizar cambios y vuelve a importar el archivo de datos en la aplicación, recuerde que los campos
seguros, calculados y compuestos (como el nombre completo) son de solo lectura y no se pueden importar
en la aplicación. Podrá editar estos campos en Excel, pero al importar los datos de nuevo en la aplicación,
estos campos no se actualizarán. Si desea actualizar estos campos, como el nombre de un contacto, se
recomienda que use esa vista para exportar los datos, actualizarlos en Excel y volver a importarlos en la
aplicación para los cambios.
Combinación de registros duplicados
08/11/2019 • 3 minutes to read • Edit Online

Los registros duplicados pueden trasentrarse en los datos cuando usted u otros usuarios escriben datos
manualmente o importan datos de forma masiva. Common Data Service le ayuda a solucionar posibles duplicados
proporcionando la detección de duplicados para registros activos como cuentas y contactos. Al combinar un
registro, también se combinarán los registros relacionados o secundarios. El administrador también puede
configurar reglas de detección de duplicados para otras situaciones.
Por ejemplo, supongamos que escribe un registro de contacto, Jim Glynn, junto con un número de teléfono móvil.
La regla de detección de duplicados detecta que ya tiene un registro similar y muestra este cuadro de diálogo.

No está seguro de si se trata de un nuevo registro (uno que tiene el mismo nombre que un contacto existente) o un
duplicado, por lo que selecciona omitir y guardar.
A continuación, vaya a la lista todos los contactos y vea que ahora tiene dos registros con el mismo nombre.
Después de revisar los registros, determinará que son duplicados que deben combinarse.

Common Data Service incluye reglas de detección de duplicados para cuentas y contactos. Estas reglas se activan
automáticamente, por lo que no tiene que hacer nada para configurar la detección de duplicados para estos tipos
de registro.

NOTE
Si está disponible en el sistema, también puede comprobar si hay duplicados de otros tipos de registros, además de contactos
y cuentas. Consulte con el administrador del sistema. Busque el administrador o el personal de soporte técnico

Combinación de registros duplicados


1. Seleccione los registros duplicados y, a continuación, seleccione combinar.

2. En el cuadro de diálogo combinar registros , seleccione el registro maestro (el que desea conservar) y, a
continuación, seleccione los campos del nuevo registro que desee fusionar mediante combinación en el
registro maestro. Los datos de estos campos pueden invalidar los datos existentes en el registro maestro.
Seleccione Aceptar.

NOTE
Existen algunas situaciones en las que se pueden encontrar duplicados:
Cuando se crea o se actualiza un registro.
Cuando use Dynamics 365 para Outlook y pase de sin conexión a en línea.
Al importar datos mediante el Asistente para la importación de datos.
No se detectan duplicados al combinar registros, guardar una actividad como completada o cambiar el estado de un
registro, como la activación o reactivación de un registro.
Trabajo con los informes
26/07/2019 • 3 minutes to read • Edit Online

Los informes le ayudan a supervisar su progreso hacia sus objetivos de negocio ayudando a ver cómo lo está
haciendo. También puede realizar un seguimiento de las tendencias, lo que le ofrece una ventaja sobre sus
competidores.
Para obtener más información sobre la organización y creación de informes, vea: Personalizar y organizar
informes.

Ejecutar un informe
1. En el panel de navegación izquierdo, seleccione el área informes.
2. Elija el informe que desea > Ejecutar Informe.

NOTE
En el cuadro de diálogo visor de informes , puede dejar los criterios de búsqueda tal cual o cambiarlos según sea
necesario.

Compartir un informe con otros usuarios o equipos


1. En el panel de navegación izquierdo, seleccione el área informes.
2. En la lista de informes, seleccione el informe que desea compartir.
3. En la barra de comandos, seleccione compartir.
4. En el cuadro de diálogo compartir Informe , seleccione Agregar usuario o equipo.
5. En el cuadro de diálogo buscar registros , busque los usuarios o el registro del equipo con el que desea
compartir el informe y active la casilla que hay al lado del registro.

6. Elija seleccionar para agregar el registro de usuario o de equipo al cuadro registros seleccionados y,
después, seleccione Agregar.
7. En el cuadro de diálogo compartir Informe , seleccione el tipo de acceso de recurso compartido que
desee. Los permisos disponibles son: Lectura, escritura, eliminación, anexión, asignación o uso compartido.
Esto agregará el registro de usuario o de equipo al cuadro registros seleccionados .

Compartir un informe con su organización (para administradores)


Si el informe sería útil para todos los usuarios, haga que esté disponible para la organización.
1. En el panel de navegación izquierdo, seleccione el área informes.
2. En la lista de informes, seleccione el informe que desea compartir.
3. En la barra de comandos, seleccione seleccionar Editar.
4. En el menú acciones , seleccione poner el informe a disposición de la organización.

Descargar un informe
1. En el panel de navegación izquierdo, seleccione el área informes.
2. En la lista de informes, seleccione el informe que desea compartir.
3. En la barra de comandos, seleccione seleccionar Editar.
4. En el menú acciones , seleccione Descargar Informe.
El archivo RDL contiene el fetchXML en el que se basa el informe.
5. Abra el informe una vez completada la descarga.
Vea también
Crear un informe mediante el Asistente para informes
Agregar un informe existente
Editar filtro de informe
Solucionar problemas de datos que no se muestran en un informe
Creación de los informes mediante el Asistente para
informes
30/07/2019 • 3 minutes to read • Edit Online

Use el Asistente para informes para crear informes con gráficos y tablas que le permitan analizar fácilmente los
datos.
Todos los informes que se crean mediante el Asistente para informes son informes basados en Fetch. Tenga en
cuenta que todos los informes generados con el Asistente para informes se imprimen en modo horizontal.

Crear un nuevo informe


1. En el panel de navegación izquierdo, seleccione el área informes.
2. En la barra de comandos, seleccione nuevo.

3. Un Informe: aparecerá la pantalla nuevo informe. En tipo de informe , deje la selección predeterminada
en, Informe del Asistente para informes y seleccione el botón Asistente para informes .
4. En la siguiente pantalla, deje las selecciones predeterminadas y, a continuación, seleccione siguiente.

5. En la pantalla propiedades del informe , escriba un nombre para el informe y, a continuación, elija el
registro que desea incluir en el informe y, a continuación, seleccione siguiente.
6. En la pantalla seleccionar los registros que se van a incluir en el informe , elija los filtros para
determinar qué registros se incluyen en el informe. Por ejemplo, si solo desea ver los resultados de los
registros modificados en los últimos 60 días, puede establecer ese filtro en esta pantalla. Si no desea filtrar
los datos, seleccione Borrar.

7. En la pantalla diseñar campos , elija el diseño del informe. Seleccione haga clic aquí para agregar una
agrupación y elija cómo desea agrupar los datos.
8. Seleccione el tipo de registro y la columna de los datos que desea que se agrupen en el informe. Cuando
haya terminado de realizar las selecciones, haga clic en Aceptar.

de
agrupación
9. Seleccione haga clic aquí para agregar una columna a las columnas de datos relacionadas con el tipo
de registro que eligió en el paso anterior.
de agrupación
10. En la pantalla Agregar columna , elija los datos que desea que aparezcan para la columna y, a
continuación, seleccione Aceptar.

11. Repita el paso anterior para las columnas adicionales que desee agregar. Cuando haya terminado, en la
pantalla diseñar campos , seleccione siguiente.
12. En la pantalla formato de informe , elija cómo desea dar formato a un informe y, a continuación,
seleccione siguiente.

13. Revise el resumen del informe y seleccione siguiente y, a continuación, seleccione Finalizar. Ahora puede
ver este informe en la lista de informes del sistema.
Vea también
Trabajar con informes
Agregar un informe existente
Editar filtro de informe
Solucionar problemas de datos que no se muestran en un informe
Agregar un informe desde fuera de PowerApps
19/10/2019 • 3 minutes to read • Edit Online

Si ha creado un informe personalizado fuera del sistema, puede agregarlo fácilmente a PowerApps.
Para obtener información sobre cómo crear un informe personalizado, consulte la Guía de informes y análisis.
1. En el panel de navegación izquierdo, seleccione el área informes.
2. En la barra de comandos, seleccione nuevo.
Agregar un archivo creado en otra aplicación
a. En la sección origen , en el cuadro tipo de informe , seleccione archivo existente.

existente
b. En el cuadro Ubicación del archivo , escriba la ruta de acceso y el nombre del archivo que desea
agregar, o elija examinar para buscar el archivo.
Puede cargar muchos otros tipos de archivo, como un archivo de Excel, pero para que se ejecute
como un informe SQL Server Reporting Services informe o un asistente para informes creado, el
archivo debe ser un. Archivo RDL. Para obtener más información, vea entorno de escritura de
informes mediante SQL Server Data Tools.
O bien
Agregar un vínculo a una página web
a. En la sección origen , en el cuadro tipo de informe , seleccione vincular a página web.
b. En el cuadro dirección URL de la página web , escriba la dirección URL de la Página Web.
3. Especifique las propiedades del informe.
a. En la sección de detalles , especifique un nombre descriptivo y una descripción para el informe.
b. El cuadro de texto Informe primario muestra el informe primario del informe actual, si existe.
c. Categorías. Elija el botón de botón de puntos(media/ellipsis-button.png "suspensivos") del !
[botón]de puntos suspensivos para este campo y, a continuación, especifique las categorías que
desea incluir en este informe.
d. Tipos de registro relacionados. Para que el informe aparezca en la lista de informes en una página
para tipos de registros específicos, elija el botón de puntos suspensivos del botón de
puntos(media/ellipsis-button.png "suspensivos") de los ![puntos suspensivos] para este campo y, a
continuación, seleccione tipos de registro.
e. Mostrar en. Para especificar dónde deben estar visibles los informes, elija el botón
de(media/ellipsis-button.png "puntos suspensivos") de los puntos suspensivos del ![botón]
seleccionar o cambiar los valores de este campo y, a continuación, seleccione una o varias de las
opciones.
Si no se selecciona ningún valor, el informe no será visible para los usuarios finales.
4. Elija Guardar o Guardar y cerrar.
Vea también
Trabajar con informes
Crear un informe mediante el Asistente para informes
Editar filtro de informe
Solucionar problemas de datos que no se muestran en un informe
Edición del filtro predeterminado de un informe
26/07/2019 • 4 minutes to read • Edit Online

Cuando un informe es un informe de SQL Server Reporting Services, está habilitado para la prefiltrado y tiene un
filtro predeterminado, puede cambiar el filtro predeterminado para mostrar los datos que espera ver en el
informe. Este filtro se utiliza cada vez que un usuario ejecuta el informe.
1. En el panel de navegación izquierdo, seleccione el área informes.
2. Elija un informe y, en la barra commbar, seleccione Editar filtro predeterminado.

3. Modifique los criterios de filtro.


Los criterios se agrupan por tipos de registros que se pueden usar en el filtro, como cuentas o contactos.
Para editar una fila existente
a. Seleccione el operador relacional consulta y seleccione un operador o seleccione el valor subrayado
y escriba un nuevo valor.
b. Seleccione el operador relacional consulta y seleccione un operador.
Para agregar una fila de criterios:
a. Seleccione seleccionary especifique el campo por el que desea filtrar.
b. Seleccione el operador relacional consulta y seleccione un operador.
c. Seleccione escribir valory escriba un valor por el que filtrar. En el caso de algunos valores, puede
seleccionar el botón de puntos suspensivos de botón de de botón de un campo para abrir el
cuadro de diálogo seleccionar valores y seleccionar el valor que desee.
Para agrupar criterios
Debe seleccionar dos o más filas para el mismo tipo de registro. Sin embargo, no se pueden agrupar las
filas con valores de campo de diferentes tipos de registros, como los tipos de registro de cuentas y de
contactos .
a. Para cada fila que desee agrupar, en el modo detallado, seleccione el botón de menú opciones para
esa fila y, a continuación, elija seleccionar fila.
b. En la barra de herramientas del filtro, seleccione Grupo , o grupo o.
c. Para quitar una fila de un grupo, seleccione el botón de menú opciones de esa fila y, a
continuación, seleccione eliminar.
d. Para seleccionar un grupo, seleccione el botón de menú opciones para ese grupo y, a continuación,
seleccione Seleccionar grupo.
e. Para agregar una cláusula de criterios a un grupo, seleccione el botón de menú opciones para ese
grupo, seleccione Agregar cláusulay, a continuación, seleccione el campo, el operador relacional de
consulta y el valor.
f. Para anular la selección de un grupo que se ha seleccionado previamente, seleccione el botón de
menú opciones para ese grupo y, a continuación, seleccione anular la selección del grupo.
g. Para desagrupar un grupo, seleccione el botón de menú opciones para ese grupo y, a continuación,
seleccione Desagrupar.
h. Para cambiar un grupo y un grupo a un grupo o grupo, o un grupo o grupo a un grupo y grupo,
seleccione el botón de menú opciones para ese grupo y, a continuación, seleccione cambiar a o o
cambiar a y.

TIP
Para borrar todos los criterios y volver a empezar, en la barra de herramientas del filtro, seleccione Borrary, a
continuación, seleccione confirmar.
Para eliminar una fila, seleccione el botón de menú opciones de esa fila y, a continuación, seleccione eliminar.

4. Cuando haya terminado, seleccione Guardar filtro predeterminado.


Vea también
Trabajar con informes
Crear un informe mediante el Asistente para informes
Agregar un informe existente
Solucionar problemas de datos que no se muestran en un informe
Solucionar problemas de datos que no se muestran
en un informe
26/07/2019 • 3 minutes to read • Edit Online

Hay varias razones posibles por las que los datos que espera que aparezcan en un informe no aparecen:
Permisos de seguridadinsuficientes. Si no tiene permiso en Common Data Service para ver un registro,
no aparecerá en el informe.
No se especifican los datos. La persona que escribe los datos puede haber dejado campos vacíos.
Los datos no coinciden con los criterios del informe. Muchos informes incluyen un filtro
predeterminado que muestra solo los registros activos, o bien puede haber seleccionado criterios que no
tienen ningún registro coincidente. Intente cambiar el filtro del informe. Para obtener más información, vea
editar el filtro predeterminado de un informe .
Es posible que esté viendo una copia almacenada en caché del informe. De forma predeterminada,
los datos de Common Data Service informes se extraen de la base de datos cada vez que se ejecuta un
informe. Sin embargo, es posible que el administrador del sistema haya cambiado un informe para que se
ejecute desde la memoria caché. Si los datos que ha escrito recientemente no se incluyen en el informe, es
posible que tenga una versión anterior del informe de la memoria caché. Para actualizar el informe, en la
barra de herramientas de informe, seleccione el botón Actualizar .
Es posible que no tenga permiso para leer registros en un subinforme. Si no tiene permiso para leer
los tipos de registro que se incluyen en un subinforme, recibirá un mensaje de error que indica que no se
pudo mostrar el subinforme.
La configuración de privacidad de Microsoft Internet Explorer puede bloquear las cookies
necesarias. En el caso de los informes de gráficos, si en lugar de ver el gráfico, verá una letra roja X, es
posible que la configuración de privacidad esté bloqueando una cookie necesaria para el control de gráfico.
Para corregir este problema, en el explorador, habilite las cookies para el servidor que ejecuta Reporting
Services.
Vea también
Trabajar con informes
Crear un informe mediante el Asistente para informes
Agregar un informe existente
Editar filtro de informe
Trabajar con procesos de negocio
26/07/2019 • 2 minutes to read • Edit Online

Los flujos de procesos empresariales proporcionan una guía para que los usuarios trabajen de forma eficiente.
Estos le ayudan a indicar datos de forma coherente y a seguir los mismos pasos cada vez que trabaje con un
registro.
Para el ejemplo, a medida que trabaja en un nuevo registro de cliente, el flujo de proceso empresarial le ayuda a
ver los pasos que debe seguir para crear un registro y completar la información necesaria según el proceso
empresarial de su organización.
La barra de procesos se puede acoplar a la parte derecha de la pantalla para poder consultarla fácilmente mientras
trabaja con un registro de cliente.

Para obtener más información sobre cómo crear y administrar flujos de proceso de negocio, vea Introducción a los
flujos de proceso de negocio.

¿Qué ocurre si el proceso de negocio tiene un aspecto distinto al de


los ejemplos?
El sistema tiene dos procesos de negocio para tareas comunes. Pero la mayoría de las organizaciones personalizan
estos procesos para que coincidan con su método de trabajo. También puede haber agregado procesos al sistema
que ya se hayan personalizado para su sector o sus objetivos empresariales. En otras palabras, es posible que lo
que vea aquí no coincida exactamente con las barras de procesos que vea en su sistema. En cualquier caso, las
barras de procesos funcionan de la misma forma para todos los usuarios. Indique datos en los campos y después
mueva al cliente a la siguiente fase.
Usar Power Automatic para automatizar procesos
15/11/2019 • 2 minutes to read • Edit Online

Power Automatic permite crear procesos automatizados entre sus aplicaciones y servicios favoritos. Desde dentro
de la aplicación, puede ejecutar un flujo en uno o más registros.
Además, puede abrir Power Automate desde su aplicación para ver, editar o crear nuevos flujos. Más información:
Introducción a Power Automatic

Administración de los flujos


Conecte con Power Automatic de la aplicación para administrar los flujos.

NOTE
Para administrar y ejecutar Power Automatic desde la aplicación, debe habilitar la opción de automatización de energía en la
configuración del sistema de la organización. Más información: flujos de la organización

1. En la barra de comandos, seleccione Flow.

2. Aparecen las opciones siguientes:


Seleccione crear un flujo para abrir una nueva pestaña del explorador y dirigirle al sitio de Power
Automate. En la página Power Automate, seleccione continuar para usar una plantilla existente o X
para cerrar, elegir o crear otra diferente.
Seleccione ver los flujos para abrir una nueva pestaña del explorador y dirigirle al sitio de Power
Automate en el que se muestran los flujos del entorno de flujo.
Seleccione Inicio de sesión en Flow para conectarse con Power Automatic y mostrar los flujos
disponibles para su ejecución. Esto solo aparece si no ha iniciado sesión actualmente en Power
Automatic.
Para obtener información sobre la creación de un flujo, consulte Introducción a Power Automatic .
Usar Dynamics 365 App for Outlook
26/07/2019 • 2 minutes to read • Edit Online

Use la aplicación Dynamics 365 para Outlook para administrar los datos de Dynamics 365 con Outlook en el
escritorio, la web o el teléfono. Cuando se instala la aplicación Dynamics 365 para Outlook, en función de la
versión de la aplicación que haya instalado, verá un Common Data Service panel o ventana junto a un mensaje de
correo electrónico de Outlook seleccionado, o bien al redactar un mensaje de correo electrónico o al configurar una
reunión o Agenda.

¿Qué ofrece la aplicación Dynamics 365 para Outlook?


Con la aplicación Dynamics 365 para Outlook, puede:
Vea información sobre Common Data Service contactos y cuentas mientras está trabajando en Outlook.
Puede ver esta información en el contexto de un mensaje de correo electrónico, una reunión o una cita. Por
ejemplo, vea los números de teléfono, el nombre de la empresa, las actividades de última y siguiente y los
registros recientes.
Vincule mensajes de correo electrónico, reuniones y citas a un registro con un solo clic. Por ejemplo, vincule
un mensaje de correo electrónico a una cuenta o contacto específicos. La aplicación Dynamics 365 para
Outlook también admite entidades personalizadas.
Abra los registros directamente para buscar o especificar información más detallada.
Agregue una llamada de teléfono, tarea o actividad de cita.
Cree un nuevo registro para cualquier entidad (tipo de registro).
Realice un seguimiento de los contactos de Outlook en Common Data Service.
Para obtener información sobre el uso de la aplicación Dynamics 365 para Outlook, consulte la Guía de usuario de
la aplicación dynamics 365 para Outlook.
Vea también
Personalización de la aplicación Dynamics 365 para Outlook
Información general sobre la creación de aplicaciones
en PowerApps
07/10/2019 • 5 minutes to read • Edit Online

PowerApps es una plataforma de desarrollo de gran productividad para aplicaciones de negocio y tiene cuatro
componentes principales:
Las aplicaciones de lienzo comienzan con la experiencia del usuario, diseñando una interfaz muy personalizada
con la potencia de un lienzo en blanco y conectándola a uno de los 200 orígenes de datos para elegir. Se
pueden compilar aplicaciones de lienzo para aplicaciones web, móviles y de tableta.
Las aplicaciones controladas por modelos empiezan con el modelo de datos y se compilan a partir de la forma
de los datos y procesos de negocio fundamentales en Common Data Service para crear formularios, vistas y
otros componentes. Las aplicaciones controladas por modelos generan automáticamente una interfaz de
usuario excelente con capacidad de respuesta en todos los dispositivos.
Los portales comienzan a crear sitios web orientados hacia el exterior que permiten a los usuarios ajenos a la
organización iniciar sesión con una amplia variedad de identidades, crear y ver datos en Common Data Service,
o incluso examinar contenido de forma anónima.
Common Data Service es la plataforma de datos que viene con PowerApps y que permite almacenar y modelar
los datos de negocio. Es la plataforma en la que se compilan las aplicaciones de Dynamics 365; si es un cliente
de Dynamics, los datos ya están en Common Data Service.
Intentar la creación de la primera aplicación es fácil. Tenemos un plan de evaluación de 30 días y un plan de la
comunidad gratuito; obtenga más información sobre cuál es mejor para usted y empiece a trabajar.

Aplicaciones de lienzo
Las aplicaciones de lienzo proporcionan la flexibilidad de organizar la experiencia del usuario y la interfaz de la
forma que se quiera. Permita que el sentido creativo y empresarial le guíe a obtener el aspecto que quiere para las
aplicaciones.
Se puede empezar a compilar la aplicación desde las herramientas de Microsoft donde se encuentren los datos,
por ejemplo:
Desde una lista de SharePoint
Desde un panel de Power BI
Crear una aplicación de lienzo es fácil; con PowerApps, se puede buscar o crear la aplicación de varias maneras:
Desde datos
Desde un ejemplo
Desde un origen de Common Data Service
Desde un lienzo en blanco
A través de AppSource

Aplicaciones controladas por modelos


Cuando se crea una aplicación controlada por modelos, se puede usar toda la potencia de Common Data Service
para configurar rápidamente los formularios, las reglas de negocio y los flujos de proceso. Una aplicación
controlada por modelos se crea desde el sitio de PowerApps.
La introducción a las aplicaciones controladas por modelos es sencilla y se puede empezar con estos temas:
Crear una aplicación
Crear y diseñar formularios
Comprender las vistas
Crear o editar un gráfico del sistema
Crear o editar paneles
Agregar seguridad
Agregar lógica de negocio

Common Data Service


Common Data Service permite almacenar y administrar los datos de forma segura en un conjunto de entidades
estándar y personalizadas, y agregar datos a esas entidades cuando sea necesario.
Empezar a usar Common Data Service es fácil. Por ejemplo, se puede empezar con estos elementos:
Crear una entidad personalizada
Administrar campos
Crear conjuntos de opciones personalizados
Crear una regla de negocio

Artefactos de lienzo y controlados por modelos


A pesar de la combinación de las experiencias de aplicaciones de lienzo y controladas por modelos, estos
artefactos serán importantes tanto para aplicaciones de lienzo como para aquellas controladas por modelos.

ARTEFACTO TIPO DE APLICACIÓN

Entidad > Vistas Controlado por modelos

Entidad > Formularios Controlado por modelos

Entidad > Paneles Controlado por modelos

Conexiones Lienzo

Puertas de enlace Lienzo

Conectores personalizados Lienzo

Aplicaciones > Importar Lienzo

Después de compilar la aplicación, se puede compartir con los miembros del equipo.
Inicio de sesión en PowerApps por primera vez
09/11/2019 • 7 minutes to read

Cuando inicie sesión en PowerApps, el sitio ofrece diversas opciones para que cree sus propias aplicaciones, abra
las aplicaciones que usted u otros usuarios hayan creado y realice tareas relacionadas. Estas tareas van desde las
más sencillas, como la identificación de la licencia o licencias que le proporcionan acceso, hasta funcionalidades
más avanzadas, como la creación de conexiones personalizadas para orígenes de datos específicos.
Puede seleccionar opciones en tres áreas generales:
El encabezado de la parte superior de la página

La barra de navegación del borde izquierdo de la página

Los iconos grandes que aparecen en el centro de la página

Para obtener mejores resultados, asegúrese de que la página principal se establece en el entorno adecuado.

Selección de un entorno
Tanto si va a crear una aplicación, un flujo, una conexión de datos o una entidad en Common Data Service, gran
parte de lo que se hace en PowerApps se encuentra en un entorno específico. Los entornos crean límites entre
distintos tipos de trabajo; por ejemplo, una organización podría tener entornos independientes para distintos
departamentos. Muchas organizaciones usan entornos para separar aplicaciones que aún están en desarrollo de
las que están listas para su uso generalizado. Puede que tenga acceso a varios entornos o solo a uno y, si cuenta
con los permisos adecuados, tal vez pueda crear sus propios entornos.
Para comprobar en qué entorno se encuentra, busque el selector de entornos junto al margen derecho del
encabezado.

Si crea una aplicación en un entorno, no podrá verla desde otro entorno. Además, las personas que quieran
ejecutar la aplicación habrán de tener acceso al entorno en el que se creó.

IMPORTANT
Asegúrese de que se encuentra en el entorno adecuado antes crear una aplicación, un flujo o un componente similar. No
resulta fácil mover componentes de un entorno a otro.

Para más información, consulte Environments overview (Información general de los entornos).

Elección de un tipo de aplicación


En PowerApps, puede crear y ejecutar estos tipos de aplicaciones:
Aplicaciones de lienzo: admiten el diseño de interfaz de usuario personalizada y la conexión a datos desde
diversos orígenes.
Las aplicaciones controladas por modelos tienen una interfaz de usuario estándar y se conectan a los datos
solo en Common Data Service. Sin embargo, resulta más fácil crear otros elementos, tales como vistas, paneles
y diferentes tipos de lógica de negocios.
Si elige un entorno que tiene una base de datos Common Data Service, puede compilar aplicaciones de lienzo o
controladas por modelos desde la misma página principal .

Reproducción o edición de una aplicación


Si ha creado una aplicación, o bien otra persona ha creado una y la ha compartido con usted, la puede reproducir o
editar en las páginas Inicio o Aplicaciones.
En la página Aplicaciones, puede filtrar la lista de aplicaciones por criterios tales como si se ha abierto
recientemente.

También puede buscar una aplicación escribiendo uno o más caracteres en la barra de búsqueda que aparece cerca
de la esquina superior derecha. Cuando encuentre la aplicación que quiera, seleccione el icono de banner para
iniciar o modificar la aplicación.

Crear una aplicación


En la página principal se ofrecen varias formas de crear aplicaciones:
Generación automática de una aplicación de lienzo a partir de un conjunto de datos
Personalización de un ejemplo precompilado de una aplicación de lienzo
Compilación de una aplicación de lienzo a partir de una pantalla en blanco
Creación de su propia aplicación controlada por modelos
Personalización de un ejemplo precompilado de una aplicación controlada por modelos

Más información
Hay dos formas de encontrar más información sobre las aplicaciones de lienzo o las aplicaciones controladas por
modelos:
En la barra de navegación izquierda, seleccione Más información.
En el encabezado, seleccione el icono de signo de interrogación.

Ambas opciones muestran vínculos a este conjunto de documentación, la comunidad de PowerApps (donde puede
compartir información con usuarios de otras organizaciones) y el blog de PowerApps (donde se anuncian las
características más recientes).

Otras tareas frecuentes


Al seleccionar las opciones en el encabezado y la barra de navegación izquierda, puede hacer más que crear y abrir
las aplicaciones.
Del encabezado
Seleccione la flecha hacia abajo para descargar clientes para dispositivos móviles y de otro tipo en los que
puede ejecutar las aplicaciones.
Para más información, vea Find and run apps (Búsqueda y ejecución de aplicaciones).
Seleccione el icono de engranaje para realizar tareas tales como conectarse a orígenes de datos, identificar la
licencia o licencias de PowerApps y abrir la página donde puede realizar tareas administrativas.
Para más información, vea estos temas:
Introducción a los conectores para aplicaciones de lienzo
Compilación y certificación de conectores personalizados para aplicaciones de lienzo
Administración de una puerta de enlace de datos local
Administración de PowerApps
Introducción a las licencias
Información general sobre la compilación de una aplicación controlada por modelos
En la barra de navegación izquierda
Extienda la funcionalidad de las aplicaciones mediante la realización de estas tareas:
Administrar entidades, conjuntos de opciones e integración de datos en Common Data Service.
Configure la lógica de negocios en Power Automatic.
Cree, empaquete y mantenga soluciones.
¿Qué son las aplicaciones de lienzo en PowerApps?
05/11/2019 • 5 minutes to read

Diseñe y compile una aplicación empresarial desde un lienzo en Microsoft PowerApps sin escribir código en un
lenguaje de programación tradicional como C#. Diseñe la aplicación arrastrando y colocando elementos en un
lienzo, como si diseñara una diapositiva de PowerPoint. Cree expresiones de estilo de Excel para especificar la
lógica y trabajar con datos. Cree aplicaciones que integren datos empresariales de una gran variedad de orígenes
de Microsoft y terceros. Comparta la aplicación para que los usuarios puedan ejecutarla en un explorador o en un
dispositivo móvil, e insértela para que la puedan ejecutar en SharePoint, Power BI o Teams.
Si no necesita un diseño personalizado y los datos están en Common Data Service, puede generar
automáticamente una aplicación controlada por modelos a partir de los datos y procesos empresariales. Este tipo
de aplicación puede modelar formularios, vistas y otros componentes, y la interfaz de usuario predeterminada se
ajusta de manera automática a teléfonos, equipos portátiles y otros dispositivos. Para obtener más información
sobre este tipo de aplicación, vea Información general sobre la compilación de una aplicación controlada por
modelos.

Compilar una aplicación


Para empezar, genere automáticamente una aplicación a partir de uno de estos orígenes, entre otros:
una aplicación de ejemplo
una plantilla
Common Data Service
SharePoint
Excel
Inicie sesión en PowerApps y seleccione Iniciar a partir de datos o una aplicación de ejemplo, como Service
Desk o Budget Tracker.

Después de generar una aplicación de forma automática, personalice su apariencia y comportamiento


predeterminados en función de los flujos de trabajo de los usuarios. Por ejemplo, cambie los tipos de datos que
aparecen, cómo se ordenan o incluso si los usuarios especifican un número escribiéndolo o ajustando un control
deslizante. Agregue y personalice pantallas, galerías, formularios y otros controles.
Una vez que haya generado una aplicación o dos automáticamente y obtenido alguna experiencia con la
personalización, cree una aplicación desde cero basándose en Common Data Service, Excelu otro origen de datos.
Al trabajar desde cero, el diseño, el flujo y los controles de la aplicación serán más flexible y podrá incorporar una
mayor variedad de orígenes de datos.

Compartir y ejecutar una aplicación


Cuando termine la aplicación y la guarde en la nube, compártala con otros usuarios de la organización.
Especifique qué usuarios o grupos pueden ejecutar la aplicación y si pueden personalizarla y compartirla con
otros usuarios de la organización.
Ejecute sus propias aplicaciones (así como las que compartan con usted) en Windows, un explorador web o un
dispositivo iOS o Android.

Más información
Explorar los temas de referencia, conceptuales y paso a paso en el panel de navegación de la izquierda.
Consulte los seminarios web a los que puede acceder a petición, ya que pueden ayudarle a sacar provecho de
las características y funciones de PowerApps.
Revise los estándares de codificación para maximizar el rendimiento de la aplicación y mantener las
aplicaciones más fáciles de mantener.

Compartir la experiencia
Leer y publicar en la comunidad de PowerApps, donde todos los usuarios de PowerApps pueden publicar una
pregunta y otros usuarios responderla. Antes de publicar una pregunta, busque en la comunidad para ver si ya
se ha respondido.
Envíe una idea sobre cómo podemos mejorar PowerApps en PowerApps Ideas (Ideas para PowerApps).
Cree una incidencia de soporte técnico para obtener asistencia técnica. Si es un administrador de PowerApps
de la organización, también puede abrir una incidencia de soporte técnico en el Centro de administración de
PowerApps.

Pasos siguientes
Registro para obtener una licencia gratuita.
Inicio de sesión en PowerApps.
Abrir una aplicación de ejemplo.
Requisitos del sistema, límites y valores de
configuración para aplicaciones de lienzo
27/11/2019 • 9 minutes to read

Este tema contiene los requisitos de plataforma de dispositivo y explorador web, así como los límites y los valores
de configuración para PowerApps.

Plataformas compatibles para ejecutar aplicaciones de lienzo con la


aplicación PowerApps
VERSIÓN MÍNIMA REQUERIDA SE RECOMIENDA

iOS 12 o posterior iOS 12 o posterior

Android 7 o posterior Android 7 o posterior

Windows 8.1 o posterior (solo para PC) Windows 10 Fall Creators Update con al menos 8 GB de RAM

NOTE
Actualmente no se admiten nuevas características en la plataforma de Windows para la aplicación de PowerApps. En esta
plataforma no están disponibles características como la opción de Common Data Service mejorada y el acceso de invitado.
Se recomienda usar un reproductor Web en Windows para aprovechar todo el conjunto de funcionalidades. Las
actualizaciones de la plataforma de aplicaciones de PowerApps para Windows se anunciarán en el futuro.

Exploradores admitidos para ejecutar aplicaciones de lienzo


EXPLORADOR SISTEMA OPERATIVO

Google Chrome (versión más reciente) Windows 7 SP1, 8.1 y 10


(se recomienda) Android 5 o posterior
iOS 8 o posterior
MacOS

Microsoft Edge (versión más reciente) Windows 10


(se recomienda)

Microsoft Internet Explorer 11 (con la función Vista de Windows 7 SP1, 8.1 y 10


compatibilidad desactivada)

Mozilla Firefox (versión más reciente) Windows 7 SP1, 8.1 y 10


Android 5 o posterior
iOS 8 o posterior
MacOS

Apple Safari (versión más reciente) iOS 8 o posterior


MacOS
Exploradores admitidos para PowerApps Studio
EXPLORADOR SISTEMA OPERATIVO

Google Chrome (versión más reciente) Windows 7 SP1, 8.1 y 10


(se recomienda) MacOS

Microsoft Edge (versión más reciente) Windows 10


(se recomienda)

Microsoft Internet Explorer 11 (con la función Vista de Windows 7 SP1, 8.1 y 10


compatibilidad desactivada)

Límites de solicitudes
Estos límites se aplican a todas y cada una de las solicitudes de salida:

NOMBRE LÍMITE

Tiempo de espera 180 segundos

Número de reintentos 4

NOTE
El valor de reintento puede variar. Para ciertas condiciones de error, no es necesario volver a intentarlo.

Direcciones IP
Las solicitudes de PowerApps usan direcciones IP que dependen de la región del entorno en que se encuentra la
aplicación. No publicamos los nombres de dominio completos disponibles para los escenarios de PowerApps.
Las llamadas realizadas desde una API conectada a través de una aplicación (por ejemplo, la API de SQL o la API
de SharePoint) proceden de la dirección IP que se especificará más adelante en este mismo tema.
Estas direcciones se deben usar si, por ejemplo, se deben incluir en la lista de direcciones IP permitidas de una
instancia de Azure SQL Database.

IMPORTANT
Si tiene configuraciones existentes, actualícelas tan pronto como sea posible antes del 30 de septiembre de 2018 para que
incluyan y coincidan con las direcciones IP de esta lista para las regiones donde existen las aplicaciones de PowerApps.

REGIÓN IP DE SALIDA

Asia 13.75.36.64 - 13.75.36.79, 13.67.8.240 - 13.67.8.255,


52.175.23.169, 52.187.68.19

Australia 13.70.72.192 - 13.70.72.207, 13.72.243.10, 13.77.50.240 -


13.77.50.255, 13.70.136.174
REGIÓN IP DE SALIDA

Brasil 191.233.203.192 - 191.233.203.207, 104.214.19.48 -


104.214.19.63, 13.65.86.57, 104.41.59.51

Canadá 13.71.170.208 - 13.71.170.223, 13.71.170.224 -


13.71.170.239, 52.237.24.126, 40.69.106.240 -
40.69.106.255, 52.242.35.152

Europa 13.69.227.208 - 13.69.227.223, 52.178.150.68, 13.69.64.208


- 13.69.64.223, 52.174.88.118, 137.117.161.181

India 104.211.81.192 - 104.211.81.207, 52.172.211.12,


40.78.194.240 - 40.78.194.255, 13.71.125.22,
104.211.146.224 - 104.211.146.239, 104.211.189.218

Japón 13.78.108.0 - 13.78.108.15, 13.71.153.19, 40.74.100.224 -


40.74.100.239, 104.215.61.248

Sudamérica 191.233.203.192 - 191.233.203.207, 104.214.19.48 -


104.214.19.63, 13.65.86.57, 104.41.59.51

Reino Unido 51.140.148.0 - 51.140.148.15, 51.140.80.51, 51.140.211.0 -


51.140.211.15, 51.141.47.105

Estados Unidos 13.89.171.80 - 13.89.171.95, 52.173.245.164, 40.71.11.80 -


40.71.11.95, 40.71.249.205, 40.70.146.208 - 40.70.146.223,
52.232.188.154, 52.162.107.160 - 52.162.107.175,
52.162.242.161, 40.112.243.160 - 40.112.243.175,
104.42.122.49

Estados Unidos (acceso anticipado) 13.71.195.32 - 13.71.195.47, 52.161.102.22, 13.66.140.128 -


13.66.140.143, 52.183.78.157

Servicios requeridos
Esta lista identifica todos los servicios con los que PowerApps Studio se comunica y sus usos. La red no debe
bloquear estos servicios.

DOMINIOS PROTOCOLOS USA

management.azure.com https RP

msmanaged-na.azure-apim.net https Runtime de conectores/API

login.microsoft.com https ADAL


login.windows.net
login.microsoftonline.com
secure.aadcdn.microsoftonline-p.com

graph.microsoft.com https Azure Graph: para obtener información


graph.windows.net de usuario (por ejemplo, la foto de
perfil)

gallery.azure.com https Aplicaciones de ejemplo y plantilla


DOMINIOS PROTOCOLOS USA

*. azure-apim.net https Hubs de API: subdominios diferentes


para cada configuración regional

*. powerapps.com https create.powerapps.com,


make.powerapps.com,
content.powerapps.com y
make.powerapps.com

*. azureedge.net https create.powerapps.com,


make.powerapps.com,
content.powerapps.com y
make.powerapps.com

*. blob.core.windows.net https Blob Storage

*. flow.microsoft.com https create.powerapps.com,


make.powerapps.com,
content.powerapps.com y
make.powerapps.com

*. dynamics.com https Common Data Service

vortex.data.microsoft.com https Telemetría

host https PowerApps Mobile

NOTE
Si usa una VPN, se debe configurar para excluir localhost de la tunelización para PowerApps Mobile.

Límites de tamaño
Puede encontrar información sobre los límites de tamaño en el texto, los hipervínculos, las imágenes y los
elementos multimedia en los tipos de datos.

Plan de PowerApps por aplicación


PowerApps por plan de aplicación permite a los usuarios individuales ejecutar 2 aplicaciones en un solo portal
para un escenario empresarial específico en función de las capacidades completas de PowerApps. Este plan
proporciona a los usuarios una forma sencilla de empezar a trabajar con la plataforma antes de la adopción de
una escala más amplia.
Después de que un administrador asigna el plan de PowerApps por aplicación a un entorno, se asigna a los
usuarios sin licencia cuando una aplicación de ese entorno se comparte con ellos. Puede ver cómo un
administrador asigna aquílos planes de cada aplicación.
Siga estos pasos para desactivar la asignación de planes por aplicación para los usuarios cuando se comparte una
aplicación con ellos:
Elija la aplicación.
Seleccione configuración.
Cambie la opción de alternancia asignación automática por aplicación en la asignaciónde pasadas.
El comando de alternancia asignación automática por aplicación se muestra en la configuración de todas las
aplicaciones.

NOTE
La deshabilitación del plan por aplicación está actualmente disponible solo para las aplicaciones de canvas. Las aplicaciones
controladas por modelos y los portales tendrán esta capacidad en el futuro.
La capacidad de controlar la asignación por plan de aplicación para una aplicación solo está disponible para las aplicaciones
que se encuentran en un entorno que tiene planes por aplicación asignados en el centro de administración de la plataforma
de energía.

Configuración de la aplicación

Asignación de paso
Métodos abreviados de teclado para aplicaciones de
Canvas
07/10/2019 • 4 minutes to read

NOTE
Los métodos abreviados pueden variar en función de la distribución del teclado.

Filesystem
CONTEX TUAL ACTUAR

Ctrl + O (o Alt + F) Abra un archivo.

Ctrl + Mayús + S (o Alt + P) Guarde la aplicación con un nombre diferente.

Ctrl + S Guarde la aplicación con el mismo nombre o por primera vez.

F12 Descargue el archivo de aplicación (. msapp).

Alt + F Abra el menú archivo .

Cable
CONTEX TUAL ACTUAR

ENTRAR Ejecutar el comando seleccionado.

Tabulador Desplazarse entre los comandos de la pestaña seleccionada y,


a continuación, a la pestaña siguiente.

Ctrl + F6 Navegue hasta el punto de referencia siguiente.

Ctrl + Mayús + F6 Navegue hasta el punto de referencia anterior.

Alt + I Seleccione la pestaña Insertar .

Modifica
CONTEX TUAL ACTUAR

Ctrl + A Seleccionar todo.

Ctrl + X Límite.

Ctrl + C Copiar.
CONTEX TUAL ACTUAR

Ctrl + V Copiar.

Ctrl + Z Comando Deshacer.

Ctrl + Y Comando Redo.

Ctrl + M Agregar una pantalla.

Ctrl + = o Ctrl + Mayús + = Acercar.

Ctrl +-o Ctrl + Mayús +- Alejar.

Ctrl + 0 Ajustar el lienzo a la página.

Mayús + entrar Dividir una línea en una fórmula.

Vista previa
CONTEX TUAL ACTUAR

CTRL+F5 Abra el modo de vista previa.

Esc Cerrar el modo de vista previa, un cuadro de diálogo o un


panel flotante.

Lienzo
CONTEX TUAL ACTUAR

Tabulador Seleccione el control siguiente.

Ctrl + clic o Mayús + clic Seleccionar varios objetos a la vez.

Flecha derecha Desplazar el control seleccionado a la derecha.

Flecha izquierda Desplazar el control seleccionado a la izquierda.

Flecha arriba Desplazar hacia arriba el control seleccionado.

Flecha abajo Desplazar el control seleccionado hacia abajo.

Vista de árbol
NOTE
Estos métodos abreviados requieren que el panel de vista de árbol tenga el foco.
CONTEX TUAL ACTUAR

C2 Cambiar el nombre de un control.

Esc Cancelar cambiar el nombre de un control.

Ctrl + G Agrupar/desagrupar controles.

Ctrl +] Traer un control hacia delante.

Ctrl + [ Enviar un control hacia atrás.

Ctrl + Mayús +] Traer al frente.

Ctrl + Mayús + [ Enviar al fondo.

Cambiar el tamaño
CONTEX TUAL ACTUAR

Mayús + Flecha izquierda Reducir ancho.

Ctrl + Mayús + Flecha izquierda Reducir ligeramente el ancho.

Mayús + Flecha abajo Reducir el alto.

Ctrl + Mayús + Flecha abajo Reduce ligeramente el alto.

Mayús + Flecha derecha Aumentar ancho.

Ctrl + Mayús + Flecha derecha Aumentar ligeramente el ancho.

Mayús + Flecha arriba Aumentar el alto.

Ctrl + Mayús + Flecha arriba Aumentar ligeramente el alto.

Formato de texto
CONTEX TUAL ACTUAR

CTRL + B Desplazarse por los niveles de negrita.

Ctrl + I Activar o desactivar cursiva.

Ctrl + U Agrega o quita el subrayado.

Distinta
CONTEX TUAL ACTUAR

TECLA Abra la documentación de.

Mayús + F10 Abra un menú contextual en, por ejemplo, la vista de árbol.

Alt o Ctrl + Mayús Oculte los elementos de diseño para que pueda interactuar
con los controles como si la aplicación estuviera en ejecución.
Creación de una aplicación de lienzo a partir de un
ejemplo en PowerApps
05/11/2019 • 4 minutes to read

En este tutorial, creará una aplicación de lienzo a partir de un ejemplo para poder explorar las posibilidades de
diseño y detectar los conceptos que se pueden aplicar a medida que desarrolla aplicaciones de lienzo propias.
En cada ejemplo se presenta un escenario real pero se usan datos ficticios. Para almacenar estos datos, necesitará
una cuenta de almacenamiento en la nube, como Dropbox, Google Drive o OneDrive.
Si no tiene una licencia para PowerApps, puede registrarse gratuitamente.

Abrir una aplicación de ejemplo


1. Inicie sesión en PowerApps.
2. En la lista de aplicaciones de ejemplo, mantenga el puntero sobre una aplicación de ejemplo (como
Programa de estimación de costos) con el mouse.

3. Pulse o haga clic en el icono del teléfono para crear una versión de la aplicación para dispositivos móviles
(o deje seleccionado el icono de la tableta) y, después, pulse o haga clic en Crear esta aplicación.
4. En PowerApps Studio, pulse o haga clic en Make my own app (Crear mi propia aplicación) en el banner
situado cerca de la parte superior central de la pantalla.
5. Especifique la cuenta de almacenamiento en la nube donde quiere almacenar los datos ficticios para esta
aplicación y, después, proporcione las credenciales para esa cuenta.
6. Para abrir el modo de vista previa, presione F5 (o haga clic o pulse en el icono de reproducción situado
cerca de la esquina superior derecha).

En cada ejemplo se representa un escenario diferente con una variedad de pantallas y otros controles. Si
abrió el ejemplo Programa de estimación de costos, puede usar la aplicación predeterminada para realizar
estas tareas:
Crear una cita para estimar el costo de la instalación de un producto para suelos en una sala de un
tamaño determinado.
Capture detalles como la dirección y los metros cuadrados, y calcule el precio en función de los
descuentos y los tipos impositivos.
Filtre una lista de citas para que se muestren solo aquellas para las que se han creado las estimaciones,
o aquellas para las que no se han creado, o todas las citas.
7. Cuando termine de explorar la aplicación, para cerrar el modo de vista previa, presione Esc (o pulse o haga
clic en el icono Cerrar situado cerca de la esquina superior derecha, debajo de la barra de título de
PowerApps).

Guardar la aplicación
1. Cerca de la esquina superior izquierda, pulse o haga clic en la pestaña Archivo.
2. En la página Configuración de la aplicación, revise la configuración predeterminada.

3. Cerca del borde izquierdo, haga clic o pulse en Guardar.

Pasos siguientes
En este tutorial, ha creado su propia aplicación en función de un ejemplo en el que se usan datos ficticios
almacenados en la cuenta en la nube. Para obtener más información sobre cómo crear una aplicación, también
puede generar automáticamente una aplicación basada en datos de otros orígenes como Common Data Service,
SharePoint o Excel.
Generar una aplicación
Instalar y configurar el ejemplo de informe de gastos
en aplicaciones de lienzo en PowerApps
05/11/2019 • 19 minutes to read

Instrucciones paso a paso para instalar y configurar el ejemplo de informe de gastos. También puede obtener una
vista previa de la aplicación de ejemplo aquí.
Tiempo estimado para completar estos pasos: 10-15 minutos

TIP
Vea este vídeo para una demostración sobre cómo usar la aplicación de ejemplo de informe de gastos.

Realice un seguimiento de los informes de gastos desde el envío hasta la aprobación. Los elementos de línea de
recuento como gastos individuales se acumulan y envían para su aprobación cuando están listos. Esta aplicación
requiere un mínimo de configuración para personalizarla.

TIP
Vea este vídeo para aprender a usar el ejemplo de informe de gastos.

Requisitos previos
Inicie sesión en PowerApps.

Creación de la lista Gastos


En esta lista se almacenan los informes de gastos.
1. Abra un explorador web y vaya a https://admin.microsoft.com.
2. Inicie sesión con una cuenta que tenga permiso para crear listas.
3. Desplácese a la colección de sitios donde quiera alojar la lista de gastos.
4. Haga clic en el icono de engranaje situado en la parte superior derecha de la página web.
5. Haga clic en Agregar una aplicación.
6. En el cuadro de texto Buscar una aplicación, escriba Personalizado.
7. Haga clic en el icono de búsqueda.
8. Haga clic en la aplicación Lista personalizada.
9. En el cuadro de texto Nombre, escriba Gastos.

IMPORTANT
Si elige otro nombre para la lista, anótelo, ya que tendrá que sustituirlo en todos los casos por Gastos durante el
proceso de instalación y configuración.

10. Haga clic en Crear.


Crear una columna Cost Center
1. Haga clic en la lista Gastos.
2. Haga clic en el icono de engranaje situado en la parte superior derecha de la página web.
3. Haga clic en Configuración de la lista.
4. Haga clic en Crear columna.
5. En el cuadro de texto Nombre de columna, escriba Cost Center.
6. En la lista de botones de radio El tipo de información de esta columna es, seleccione Elección.
7. En el cuadro de texto Escriba cada opción en una línea distinta, especifique los valores siguientes, cada uno
en una línea diferente:
Microsoft
Contoso
8. En el cuadro de texto Valor predeterminado, escriba Microsoft.
9. Haga clic en Aceptar.
Crear una columna de comentarios
1. Haga clic en Crear columna.
2. En el cuadro de texto Nombre de columna, escriba Comentarios.
3. En la lista de botones de radio El tipo de información de esta columna es, seleccione Varias líneas de
texto.
4. Haga clic en Aceptar.
Crear una columna de estado
1. Haga clic en la lista Gastos.
2. Haga clic en el icono de engranaje situado en la parte superior derecha de la página web.
3. Haga clic en Configuración de la lista.
4. Haga clic en Crear columna.
5. En el cuadro de texto Nombre de columna, escriba Estado.
6. En la lista de botones de radio El tipo de información de esta columna es, seleccione Elección.
7. En el cuadro de texto Escriba cada opción en una línea distinta, especifique los valores siguientes, cada uno
en una línea diferente:
Ábra
Pendiente
Approved
8. En el cuadro de texto Valor predeterminado, escriba Abierto.
9. Haga clic en Aceptar.
Crear una columna ApproverName
1. Haga clic en Crear columna.
2. En el cuadro de texto Nombre de columna, escriba ApproverName.
3. En la lista de botones de radio El tipo de información de esta columna es, seleccione Persona o grupo.
4. En la lista de botones de radio Esta columna debe contener información, seleccione Sí.
5. Haga clic en Aceptar.
Crear una columna DateSubmitted
1. Haga clic en Crear columna.
2. En el cuadro de texto Nombre de columna, escriba DateSubmitted.
3. En la lista de botones de radio El tipo de información de esta columna es, seleccione Fecha y hora.
4. En la lista de botones de radio Esta columna debe contener información, seleccione Sí.
5. Haga clic en Aceptar.
Crear una columna StartDate
1. Haga clic en Crear columna.
2. En el cuadro de texto Nombre de columna, escriba StartDate.
3. En la lista de botones de radio El tipo de información de esta columna es, seleccione Fecha y hora.
4. En la lista de botones de radio Esta columna debe contener información, seleccione Sí.
5. Haga clic en Aceptar.
Crear una columna EndDate
1. Haga clic en Crear columna.
2. En el cuadro de texto Nombre de columna, escriba EndDate.
3. En la lista de botones de radio El tipo de información de esta columna es, seleccione Fecha y hora.
4. En la lista de botones de radio Esta columna debe contener información, seleccione Sí.
5. Haga clic en Aceptar.

Creación de la lista LineItems


En esta lista se almacenan los elementos de línea asociados a cada informe de gastos.
1. Desplácese a la misma colección de sitios en la que ha creado la lista Gastos.
2. Haga clic en el icono de engranaje situado en la parte superior derecha de la página web.
3. Haga clic en Agregar una aplicación.
4. En el cuadro de texto Buscar una aplicación, escriba Personalizado.
5. Haga clic en el icono de búsqueda.
6. Haga clic en la aplicación Lista personalizada.
7. En el cuadro de texto Nombre, escriba LineItems.
IMPORTANT
Si elige otro nombre para la lista, anótelo, ya que tendrá que sustituirlo en todos los casos por LineItems durante el
proceso de instalación y configuración.

8. Haga clic en Crear.


Crear una columna de categoría
1. Haga clic en la lista LineItems.
2. Haga clic en el icono de engranaje situado en la parte superior derecha de la página web.
3. Haga clic en Configuración de la lista.
4. Haga clic en Crear columna.
5. En el cuadro de texto Nombre de columna, escriba Categoría.
6. En la lista de botones de radio El tipo de información de esta columna es, seleccione Elección.
7. En el cuadro de texto Escriba cada opción en una línea distinta, especifique los valores siguientes, cada uno
en una línea diferente:
Comida y bebida
Transporte
Necesidades del negocio
8. En el cuadro de texto Valor predeterminado, escriba Comida y bebida.
9. Haga clic en Aceptar.
Crear una columna de costo
1. Haga clic en Crear columna.
2. En el cuadro de texto Nombre de columna, escriba Costo.
3. En la lista de botones de radio El tipo de información de esta columna es, seleccione Número (1, 10, 100) .
4. En la lista de botones de radio Esta columna debe contener información, seleccione Sí.
5. Haga clic en Aceptar.
Crear una columna de fecha
1. Haga clic en Crear columna.
2. En el cuadro de texto Nombre de columna, escriba Fecha.
3. En la lista de botones de radio El tipo de información de esta columna es, seleccione Fecha y hora.
4. En la lista de botones de radio Esta columna debe contener información, seleccione Sí.
5. Haga clic en Aceptar.
Crear una columna de descripción
1. Haga clic en Crear columna.
2. En el cuadro de texto Nombre de columna, escriba Descripción.
3. En la lista de botones de radio El tipo de información de esta columna es, seleccione Varias líneas de
texto.
4. En la lista de botones de radio Esta columna debe contener información, seleccione Sí.
5. En la lista de botones de radio Especificar el tipo de texto que se permite, seleccione Texto sin formato.
6. Haga clic en Aceptar.
Crear una columna ReportID
1. Haga clic en Crear columna.
2. En el cuadro de texto Nombre de columna, escriba ReportID.
3. En la lista de botones de radio El tipo de información de esta columna es, seleccione Búsqueda
(información ya disponible en este sitio) .
4. En la lista de botones de radio Esta columna debe contener información, seleccione Sí.
5. En la lista desplegable Obtener información de, seleccione la lista Gastos que ha creado.
6. En la lista desplegable En esta columna, seleccione Id.
7. Haga clic en Aceptar.
Editar columna de título
1. Haga clic en el vínculo de la columna Título.
2. En la lista de botones de radio Esta columna debe contener información, seleccione No.
3. Haga clic en Aceptar.

Descargar la aplicación Informe de gastos


1. En un explorador web, desplácese hasta el siguiente vínculo:
https://pappsfeprodwestuscontent.blob.core.windows.net/sampleapps/myexpenses/docs/MyExpenses(SP_L
ist).zip.
2. Descargue el paquete de ejemplo Informe de gastos de PowerApps y guárdelo en su equipo.

Crear conexiones
1. En un explorador Web, vaya a make.powerapps.com.
2. Inicie sesión con las mismas credenciales que utilizó para suscribirse.
3. En el menú de la izquierda, seleccione Conexiones.
Creación de una conexión de aprobaciones
1. Haga clic en + Nueva conexión.
2. En el cuadro de búsqueda Buscar, escriba Aprobaciones.
3. Seleccione Aprobaciones en la lista.
4. Haga clic en Crear.
Creación de una conexión de Office 365 Outlook
1. Haga clic en + Nueva conexión.
2. En el cuadro de búsqueda Buscar, escriba Office 365 Outlook.
3. Seleccione Office 365 Outlook en la lista.
4. Haga clic en Crear.
5. En la ventana emergente, seleccione la cuenta con la que inició sesión.
Creación una conexión de SharePoint
1. Haga clic en + Nueva conexión.
2. En el cuadro de texto Buscar, escriba SharePoint.
3. Seleccione SharePoint en la lista.
4. Haga clic en Crear.
5. En la ventana emergente, seleccione la cuenta con la que inició sesión.

Importación de la aplicación
1. En un explorador web, vaya a https://make.powerapps.com.
2. Inicie sesión con las mismas credenciales que utilizó para suscribirse.
3. En la barra de navegación izquierda, seleccione Aplicaciones e Importar paquete (versión preliminar) .
4. Seleccione Cargar y, después, el paquete que ha descargado anteriormente.
5. Para los tipos de recurso Aplicación y Flujo, establezca IMPORTAR CONFIGURACIÓN en Crear como
nueva.
6. Para las conexiones SharePoint y Outlook, establezca IMPORTAR CONFIGURACIÓN en Seleccionar
durante la importación.

7. Seleccione el icono rojo correspondiente a la conexión de SharePoint.


8. En la lista de conexiones, seleccione el elemento que tenga su nombre de usuario.

9. Seleccione Guardar.
10. Seleccione el icono rojo correspondiente a la conexión de aprobación.
11. En la lista de conexiones, seleccione el elemento que tenga su nombre de usuario.

12. Seleccione Guardar.


13. Seleccione el icono rojo correspondiente a la conexión de Office 365 Outlook.
14. En la lista de conexiones, seleccione el elemento que tenga su nombre de usuario.

15. Seleccione Guardar.

TIP
Cuando haya terminado, tendrá un aspecto similar al siguiente:
16. Seleccione Importar y espere hasta que finalice el proceso.

Configurar la aplicación para usar las listas de SharePoint


1. En el explorador web, seleccione Aplicaciones.
2. Seleccione el botón de puntos suspensivos (...) situado junto a la aplicación de informe de gastos.
3. Seleccione Editar en la Web > Permitir.
Eliminar conexiones
1. En la pestaña Vista, seleccione Orígenes de datos.
2. En el panel Datos, seleccione los puntos suspensivos (...) al lado de Gastos y seleccione Quitar.
3. Repita el paso anterior para quitar el origen de datos LineItems.
Lista de gastos
1. En la pestaña Vista, seleccione Orígenes de datos.
2. En el panel Datos, seleccione Agregar origen de datos > Nueva conexión > SharePoint > Crear.
3. En la lista Sitios recientes, seleccione el sitio de SharePoint en el que creó la lista Gastos.

TIP
Si el sitio no aparece en la lista, escriba o pegue la dirección URL al sitio de SharePoint en el cuadro de texto y
seleccione Ir.

4. En el cuadro Búsqueda de la parte superior de la lista, escriba o pegue Gastos.


5. Active la casilla de junto a Gastos y seleccione Conectar.
Lista de LineItems
1. En la pestaña Vista, seleccione Orígenes de datos.
2. En el panel Datos, seleccione SharePoint.
3. En la lista Sitios recientes, seleccione el sitio de SharePoint en el que creó la lista LineItems.

TIP
Si el sitio no aparece en la lista, escriba o pegue la dirección URL al sitio de SharePoint en el cuadro de texto y
seleccione Ir.

4. En el cuadro Búsqueda de la parte superior de la lista, escriba o pegue LineItems.


5. Active la casilla de junto a LineItems y seleccione Conectar.
6. Seleccione Archivo > Guardar > Publicar > Publicar esta versión.

Modificación del flujo


1. En la barra de navegación izquierda, seleccione Flujos.
2. Si es necesario, proporcione las mismas credenciales que usó para suscribirse.
3. Cerca de la parte superior de la pantalla, seleccione Mis flujos.
4. Junto al flujo ApproveExpense, seleccione el icono de lápiz.

5. Expanda la acción Obtener elementos.


6. Modifique los campos Dirección del sitio y Nombre de lista para que coincidan con la lista Gastos que
ha creado en SharePoint.

TIP
No es necesario que se escriban manualmente, se pueden seleccionar en las listas desplegables.

7. Expanda la Condición.
8. Expanda la sección En caso positivo.
9. Expanda la acción Cambiar estado de elemento a Aprobado.
10. Modifique los campos Dirección del sitio y Nombre de lista para que coincidan con la lista Gastos que
ha creado en SharePoint.
TIP
No es necesario que se escriban manualmente, se pueden seleccionar en las listas desplegables.

11. Expanda la sección En caso negativo.


12. Expanda la acción Cambiar estado de elemento a Abierto.
13. Modifique los campos Dirección del sitio y Nombre de lista para que coincidan con la lista Gastos que
ha creado en SharePoint.

TIP
No es necesario que se escriban manualmente, se pueden seleccionar en las listas desplegables.

14. Seleccione Actualizar flujo.

Reproducir la aplicación
1. En el explorador web, seleccione Aplicaciones.
2. Seleccione los puntos suspensivos (...) situados junto a la aplicación de informe de gastos y seleccione Abrir.

Pasos siguientes
Personalizar un formulario de lista de SharePoint
Agregar y configurar un control
Editar y administrar permisos para una lista de SharePoint o una biblioteca
Instalar y configurar el ejemplo de servicio de
asistencia de PowerApps
05/11/2019 • 14 minutes to read

Instrucciones paso a paso para instalar y configurar en PowerApps el ejemplo de servicio de asistencia en
aplicaciones de lienzo.
Tiempo estimado para completar estos pasos: 10-15 minutos

TIP
En este vídeo puede ver una demostración de este proceso.

Información general sobre el ejemplo


El Departamento de soporte técnico proporciona una experiencia fácil de utilizar para conectar a los usuarios
finales con profesionales de soporte técnico. Encuentre rápidamente respuestas a sus preguntas más importantes,
realice un seguimiento del progreso de los vales abiertos y revise los detalles de las solicitudes anteriores. Esta
aplicación requiere un mínimo de configuración para personalizarla.

TIP
Vea este vídeo para aprender a usar el ejemplo de Help Desk de PowerApps.

Requisitos previos
Inicie sesión en PowerApps.
Debe tener una licencia de SharePoint Online válida y permiso para crear listas.
Crear la lista de SharePoint de Help Desk
Esta lista almacena los vales del servicio Help Desk.
1. Abra un explorador web y vaya a https://admin.microsoft.com.
2. Inicie sesión con una cuenta que tenga permiso para crear listas de SharePoint.
3. Desplácese a la colección de sitios en la que quiera alojar la lista de Help Desk.
4. Haga clic en el icono de engranaje situado en la parte superior derecha de la página web.
5. Haga clic en Agregar una aplicación.
6. En el cuadro de texto Buscar una aplicación, escriba Personalizado.
7. Haga clic en el icono de búsqueda.
8. Haga clic en la aplicación Lista personalizada.
9. En el cuadro de texto Nombre, escriba HelpDesk.

IMPORTANT
Si elige otro nombre para la lista, asegúrese de anotarlo ya que tendrá que sustituirlo en todos los casos por
HelpDesk durante el proceso de instalación y configuración.

10. Haga clic en Crear.


Crear una columna de descripción
1. Seleccione los puntos suspensivos junto a la lista de HelpDesk y haga clic en Configuración.
2. Haga clic en Crear columna.
3. En el cuadro de texto Nombre de columna, escriba Descripción.
4. En la lista de botones de radio El tipo de información de esta columna es, seleccione Varias líneas de
texto.
5. En la lista de botones de radio Esta columna debe contener información, seleccione Sí.
6. En la lista de botones de radio Especificar el tipo de texto que se permite, seleccione Texto sin formato.
7. Haga clic en Aceptar.
Crear una columna de categoría
1. Haga clic en Crear columna.
2. En el cuadro de texto Nombre de columna, escriba Categoría.
3. En la lista de botones de radio El tipo de información de esta columna es, seleccione Elección.
4. En el cuadro de texto Escriba cada opción en una línea distinta, especifique los valores siguientes, cada uno
en una línea diferente:
Problema con equipo portátil/PC
Problema con software de equipo portátil/PC
5. En la lista de botones de radio Aplicar valores únicos, seleccione No.
6. En la lista de botones de radio Mostrar opciones con, seleccione Menú desplegable.
7. En el cuadro de texto Valor predeterminado, escriba Problema con equipo portátil/PC.
8. Haga clic en Aceptar.
Crear una columna PercentComplete
1. Haga clic en Crear columna.
2. En el cuadro de texto Nombre de columna, escriba PercentComplete.
3. En la lista de botones de radio El tipo de información de esta columna es, seleccione Número (1, 10, 100) .
4. En la lista de botones de radio Esta columna debe contener información, seleccione No.
5. Haga clic en Aceptar.
Crear una columna de prioridad
1. Haga clic en Crear columna.
2. En el cuadro de texto Nombre de columna, escriba Prioridad.
3. En la lista de botones de radio El tipo de información de esta columna es, seleccione Elección.
4. En el cuadro de texto Escriba cada opción en una línea distinta, especifique los valores siguientes, cada uno
en una línea diferente:
ALTA
MEDIO
BAJA
5. En la lista de botones de radio Aplicar valores únicos, seleccione No.
6. En la lista de botones de radio Mostrar opciones con, seleccione Menú desplegable.
7. En el cuadro de texto Valor predeterminado, escriba BAJA.
8. Haga clic en Aceptar.
Crear una columna de estado de la tarea
1. Haga clic en Crear columna.
2. En el cuadro de texto Nombre de columna, escriba Estado de la tarea.
3. En la lista de botones de radio El tipo de información de esta columna es, seleccione Elección.
4. En el cuadro de texto Escriba cada opción en una línea distinta, especifique los valores siguientes, cada uno
en una línea diferente:
SIN INICIAR
EN CURSO
COMPLETADA
APLAZADA
ESPERANDO CSR
5. En la lista de botones de radio Aplicar valores únicos, seleccione No.
6. En la lista de botones de radio Mostrar opciones con, seleccione Menú desplegable.
7. En el cuadro de texto Valor predeterminado, escriba SIN INICIAR.
8. Haga clic en Aceptar.
Crear una columna Asignado a
1. Haga clic en Crear columna.
2. En el cuadro de texto Nombre de columna, escriba Asignado a.
3. En la lista de botones de radio El tipo de información de esta columna es, seleccione Persona o grupo.
4. En la lista de botones de radio Esta columna debe contener información, seleccione No.
5. En la lista de botones de radio Permitir varios valores, seleccione NO.
6. Haga clic en Aceptar.
Editar la columna "Título"
1. Haga clic en el vínculo de la columna Título.
2. En la lista de botones de radio Esta columna debe contener información, seleccione No.
3. Haga clic en Aceptar.

Descarga de la aplicación
1. Descargue el paquete PowerApps y guárdelo en su equipo.

Crear conexiones
1. En un explorador Web, vaya a make.powerapps.com.
2. Inicie sesión con las mismas credenciales que utilizó para suscribirse.
3. En el menú de la izquierda, seleccione Datos y luego Conexiones.
Crear una conexión de Outlook de Office 365
1. Haga clic en + Nueva conexión.
2. En el cuadro de búsqueda Buscar, escriba Office 365 Outlook.
3. Seleccione Office 365 Outlook en la lista.
4. Haga clic en Crear.
5. En la ventana emergente, seleccione la cuenta con la que inició sesión.
Crear una conexión de SharePoint
1. Haga clic en + Nueva conexión.
2. En el cuadro de texto Buscar, escriba SharePoint.
3. Seleccione SharePoint en la lista.
4. Haga clic en Crear.
5. En la ventana emergente, seleccione la cuenta con la que inició sesión.
Crear una conexión a Usuarios de Office 365
1. Haga clic en + Nueva conexión.
2. En el cuadro de búsqueda Buscar, escriba Usuarios de Office 365.
3. Seleccione Usuarios de Office 365 en la lista.
4. Haga clic en Crear.
5. En la ventana emergente, seleccione la cuenta con la que inició sesión.

Importación de la aplicación
1. En un explorador web, vaya a https://make.powerapps.com.
2. Inicie sesión con las mismas credenciales que utilizó para suscribirse.
3. En el menú de la izquierda, seleccione Aplicaciones.
4. Haga clic en Importar paquete (versión preliminar) .

5. Haga clic en el botón Cargar y seleccione el paquete de PowerApps que descargó en pasos anteriores.
6. Para los tipos de recurso Aplicación y Flujo, establezca IMPORTAR CONFIGURACIÓN en Crear como
nueva.
7. Para las conexiones SharePoint y Outlook, establezca IMPORTAR CONFIGURACIÓN en Seleccionar
durante la importación.
8. Haga clic en el icono rojo correspondiente a la conexión de SharePoint.
9. En la lista de conexiones, haga clic en el elemento que tenga su nombre de usuario.

10. Haga clic en Guardar.


11. Haga clic en el icono rojo correspondiente a la conexión de Office 365 Outlook.
12. En la lista de conexiones, haga clic en el elemento que tenga su nombre de usuario.
13. Haga clic en Guardar.

TIP
Cuando haya terminado, tendrá un aspecto similar al siguiente.

14. Haga clic en Importar y espere hasta que finalice el proceso.

Configuración de la aplicación para usar la lista de SharePoint


1. En Pasos siguientes, haga clic en Abrir aplicación.
2. Haga clic en Permitir cuando se le solicite permiso.
Eliminar conexiones
1. En la pestaña Vista, seleccione Orígenes de datos.
2. En el panel datos , seleccione los puntos suspensivos (...) junto a Departamento de soporte técnicoy, a
continuación, seleccione quitar.
Lista de Help Desk
1. En la pestaña Vista, seleccione Orígenes de datos.
2. En el panel Datos, seleccione Agregar origen de datos > Nueva conexión > SharePoint > Crear.
3. En la lista Sitios recientes, seleccione el sitio de SharePoint en el que creó la lista de HelpDesk.

TIP
Si el sitio no aparece en la lista, escriba o pegue la dirección URL al sitio de SharePoint en el cuadro de texto y
seleccione Ir.

4. En el cuadro de búsqueda de la parte superior de la lista, escriba o pegue el Departamento de soporte


técnico.
5. Active la casilla junto a Departamento de soporte técnicoy, a continuación, seleccione conectar.
Actualizar la lista de administradores
1. Seleccione LoginScreen.
2. Seleccione OnStart en la lista desplegable.
3. Expanda la ventana de fórmulas y busque la colección AdminList.
4. Reemplace user@microsoft.com por los administradores de Help Desk.
TIP
Si tiene más de un administrador, use una coma para delimitar la lista de administradores. Ejemplo:
"admin1@microsoft.com","admin2@microsoft.com". Para asegurarse de que las direcciones de AdminList coinciden
con el formato que PowerApps espera, seleccione Ver > Variables > Global > MyProfile y consulte la columna "Mail"
para ver el formato de correo electrónico esperado.

5. Seleccione Archivo > Guardar > Publicar > Publicar esta versión.

Modificación del flujo


1. En el menú de la izquierda, seleccione Flujos.
2. Si es necesario, inicie sesión con las mismas credenciales que utilizó para suscribirse.
3. Seleccione Mis flujos en el menú superior.
4. Junto al flujo HelpDeskFlow , haga clic en el icono de lápiz.

5. Expanda la acción Obtener elementos.


6. Modifique los campos Dirección del sitio y Nombre de lista para que coincidan con la lista de SharePoint
de Help Desk que ha creado.

TIP
No es necesario que se escriban manualmente, se pueden elegir en las listas desplegables.

7. Expanda Cambiar.
8. Expanda la caja SIN INICIAR.
9. Expanda la acción Caso no iniciado.
10. Cambie el campo Para de modo que coincida con la dirección de correo electrónico del administrador de
Help Desk.
11. Haga clic en Actualizar flujo.

Reproducir la aplicación
1. En el explorador web, haga clic en Aplicaciones.
2. Haga clic en los puntos suspensivos (...) junto a la aplicación del Departamento de soporte técnico.
3. Haga clic en Abrir.

TIP
Vea este vídeo para aprender a usar el ejemplo de Help Desk de PowerApps.

Pasos siguientes
Personalizar un formulario de lista de SharePoint
Agregar y configurar un control
Editar y administrar permisos para una lista de SharePoint o una biblioteca
Configuración y más información sobre la plantilla de
ejemplo Meeting Capture en PowerApps
30/10/2019 • 2 minutes to read

Información general
En PowerApps, la plantilla de ejemplo Meeting Capture es una herramienta todo en uno para capturar información
de las reuniones a medida que se producen. Si ejecuta la aplicación, puede ver los detalles de la reunión, capturar
notas, tomar fotografías de pizarras, dibujar diagramas y asignar tareas. También puede exportar todos estos
elementos, enviarlos a todos los asistentes y programar reuniones de seguimiento rápida y fácilmente.

¿Dónde se puede ejecutar la aplicación?


Puede ejecutar esta aplicación de ejemplo en el explorador, en una tableta o en otro dispositivo que tenga un factor
de forma similar.

¿Cómo se puede abrir la plantilla y ejecutar la aplicación?


Obtenga una vista previa de Meeting Capture o vea estos vídeos para obtener más información:
Cómo abrir la plantilla.
Cómo ejecutar la aplicación de principio a fin.

¿Cómo compilar la aplicación yo mismo?


Meeting Capture incluye muchas funciones de uso frecuente en PowerApps. Con estos vídeos, puede explorar esta
funcionalidad y obtener información sobre cómo implementarla para que pueda implementar la misma
funcionalidad y los mismos patrones en sus propias aplicaciones.
Exportar contenido de PowerApps a OneNote.
Buscar horas de reunión disponibles para los asistentes.
Meeting Capture se conecta a estos servicios de Office 365.
Usuarios de Office 365
Office 365 Outlook
Planner
OneNote (empresas)
Conversión de contenido
Esperamos que disfrute explorando Meeting Capture y deseamos saber cómo la amplía en su organización.

Pasos siguientes
Referencia sobre fórmulas
Referencia sobre controles
Generar una aplicación de lienzo desde Common
Data Service en PowerApps
05/11/2019 • 4 minutes to read

En PowerApps, genere automáticamente una aplicación de lienzo basada en una lista de cuentas de ejemplo en
Common Data Service. En esta aplicación, puede examinar todas las cuentas, mostrar detalles de una sola
cuenta y crear, actualizar o eliminar una cuenta.
Si no está registrado para PowerApps, regístrese gratuitamente antes de empezar.

Requisitos previos
Para seguir esta guía de inicio rápido, debe tener asignado el rol de seguridad creador de entorno y debe
cambiar a un entorno en el que se haya creado una base de datos de Common Data Service, contenga datos y
permita actualizaciones. Si no existe ningún entorno de este tipo y tiene privilegios administrativos, puede
crear un entorno que cumpla este requisito.

Generar una aplicación


1. Inicie sesión en PowerApps y, si es necesario, cambie los entornos como se especificó anteriormente en
este mismo tema.
2. En Cree su propia aplicación, mantenga el puntero sobre Iniciar a partir de datos y seleccione
Crear esta aplicación.

3. En el icono Common Data Service, seleccione Diseño de teléfono.


4. En Elegir una tabla, seleccione Cuentas y, después, seleccione Conectar.
5. Si aparece el cuadro de diálogo de bienvenida a PowerApps Studio, seleccione Skip (Omitir).
La aplicación se abre en la pantalla de exploración, en la que se muestra una lista de las cuentas en un control
denominado galería. Cerca de la parte superior de la pantalla, una barra de título muestra los iconos para
actualizar los datos en la galería, ordenarlos alfabéticamente y agregar datos a la galería. Bajo la barra de título,
un cuadro de búsqueda proporciona la opción de filtrar los datos en la galería según el texto que se escriba o
pegue.
De forma predeterminada, la galería muestra una dirección de correo electrónico, una ciudad y un nombre de
cuenta. Como verá en los siguientes pasos, puede personalizar la galería para cambiar la forma en que se
muestran los datos e incluso mostrar otros tipos de datos.

Guardar la aplicación
Probablemente le interesará realizar más cambios antes de usar esta aplicación o compartirla con otros
usuarios. Como procedimiento recomendado, guarde el trabajo realizado hasta el momento antes de continuar.
1. Cerca de la esquina superior izquierda, seleccione la pestaña Archivo.
2. En la página Configuración de la aplicación, establezca el nombre de la aplicación en AppGen,
cambie el color de fondo a rojo profundo y el icono a una marca de verificación.

3. Cerca del borde izquierdo, seleccione Guardar y, a continuación, en la esquina inferior izquierda,
seleccione Guardar.
Pasos siguientes
En esta guía de inicio rápido, ha creado una aplicación para administrar datos de ejemplo sobre cuentas en
Common Data Service. En el paso siguiente, personalizará la galería y otros elementos de la pantalla de
exploración predeterminada para que se ajuste mejor a sus necesidades.
Personalización de una galería
Generación de una aplicación de lienzo en
PowerApps a partir de una lista de SharePoint
05/11/2019 • 6 minutes to read

En este tema utilizará PowerApps para generar automáticamente una aplicación de lienzo basada en elementos
de una lista de SharePoint. Puede generar la aplicación en PowerApps o SharePoint Online. En PowerApps, puede
generar la aplicación a partir de una lista en un sitio de SharePoint local si se conecta al sitio a través de una
puerta de enlace de datos.
La aplicación que se genere contendrá tres pantallas:
En la pantalla de exploración, puede desplazarse por todos los elementos de la lista.
En la pantalla de detalles, puede mostrar toda la información sobre un solo elemento de la lista.
En la pantalla de edición, puede crear un elemento o actualizar información sobre un elemento existente.
Puede aplicar los conceptos y las técnicas de este tema a cualquier lista de SharePoint. Para seguir exactamente
los pasos:
1. En un sitio de SharePoint Online, cree una lista llamada SimpleApp.
2. En la columna de nombre Título, cree entradas para Vainilla, Chocolate y Fresa.
Los principios para generar una aplicación no cambiarán aunque cree una lista mucho más compleja con muchas
columnas de diversos tipos tales como texto, fechas, números y moneda.

IMPORTANT
PowerApps no admite todos los tipos de datos de SharePoint. Para más información, consulte Problemas conocidos.

Generación de una aplicación en PowerApps


1. Inicie sesión en PowerApps.
2. En Cree su propia aplicación, mantenga el puntero sobre Iniciar a partir de datos y seleccione Crear
esta aplicación.
3. En el icono de SharePoint, seleccione Diseño de teléfono.

4. Con la opción Conectar directamente seleccionada, haga clic en Crear.

5. En Conectar a un sitio de SharePoint, escriba o pegue la dirección URL para el sitio de SharePoint
Online y, después, haga clic en Ir.
Incluya solo la dirección URL del sitio (no el nombre de la lista), como en este ejemplo:
https://microsoft.sharepoint.com/teams/Contoso

6. En Elegir una lista, seleccione SimpleApp y, después, haga clic en Conectar.


Después de unos minutos, la aplicación se abre en la pantalla de exploración, en la que se muestran los
elementos creados en la lista. Si la lista tiene datos en más columnas además de Título, la aplicación
mostrará esos datos. Cerca de la parte superior de la pantalla, en una barra de título se muestran iconos
para actualizar la lista, ordenarla y crear un elemento en la lista. Bajo la barra de título, un cuadro de
búsqueda proporciona la opción de filtrar la lista según el texto que se escriba o pegue.
Probablemente le interesará realizar más cambios antes de usar esta aplicación o compartirla con otros
usuarios. Como procedimiento recomendado, guarde el trabajo realizado hasta el momento antes de
continuar presionando Ctrl-S. Asigne un nombre a la aplicación y, después, haga clic en Guardar.

Generación de una aplicación en SharePoint Online


Si crea una aplicación de una lista personalizada desde la barra de comandos de SharePoint Online, la aplicación
aparece como una vista de esa lista. También se puede ejecutar la aplicación en un dispositivo iOS o Android,
además de un explorador web.
1. En SharePoint Online, abra una lista personalizada, seleccione PowerApps en la barra de comandos y
luego elija Crear una aplicación.

2. En el panel que aparece, escriba un nombre para la aplicación y seleccione Crear.

Aparece una nueva pestaña en el explorador web que muestra la aplicación generada automáticamente
basada en la lista de SharePoint. La aplicación aparece en PowerApps Studio, donde se puede personalizar.
3. (opcional) Actualice la pestaña del explorador para su lista de SharePoint (seleccionándola y presionando,
por ejemplo, F5), y luego siga estos pasos para ejecutar o administrar la aplicación:
Para ejecutar la aplicación (en una pestaña independiente del explorador), seleccione Abrir.
Para permitir que otros usuarios de la organización ejecuten la aplicación, seleccione Hacer pública
esta vista.
Para permitir que otros usuarios editen la aplicación, compártala con permisos Puede editar.
Para quitar la vista de SharePoint, seleccione Quitar esta vista.
Para quitar la aplicación de PowerApps, elimine la aplicación.

NOTE
Las aplicaciones creadas desde la lista de SharePoint no se muestran actualmente en PowerApps Mobile.

Pasos siguientes
En este tema ha creado una aplicación para administrar datos en una lista de SharePoint. El siguiente paso es
generar una aplicación a partir de una lista más compleja y, después, personalizar la aplicación (empezando por la
pantalla de exploración) para que se ajuste mejor a las necesidades.
Personalizar una pantalla de exploración predeterminada
Generar una aplicación desde Excel en PowerApps
05/11/2019 • 4 minutes to read

En este tema, generará automáticamente su primera aplicación de lienzo en PowerApps con los datos de una
tabla de Excel. Podrá seleccionar un archivo de Excel, generar una aplicación y, después, ejecutar la aplicación
que genere. En todas las aplicaciones generadas se incluyen pantallas para examinar los registros, mostrar
detalles de los registros y crear o actualizar registros. Mediante la generación de una aplicación, se puede
obtener rápidamente una aplicación en funcionamiento con datos de Excel y, después, se puede personalizar
para ajustarla mejor a las necesidades.
El archivo de Excel debe estar en una cuenta de almacenamiento en la nube, como OneDrive, Google Drive o
Dropbox. En este tema se usa OneDrive para la Empresa.
Si no tiene una licencia para PowerApps, puede registrarse gratuitamente.

Requisitos previos
Para seguir este tema con exactitud, descargue el archivo Flooring Estimates en Excel y guárdelo en la cuenta
de almacenamiento en la nube.

IMPORTANT
Puede usar su propio archivo de Excel, pero los datos deberán tener formato de tabla. Para obtener más información, vea
Dar formato a una tabla.

Generar la aplicación
1. Inicie sesión en PowerApps.
2. En Cree su propia aplicación, mantenga el puntero sobre Iniciar a partir de datos y seleccione Crear
esta aplicación.
3. En Comenzar con los datos, pulse o haga clic en Diseño de teléfono en el icono de la cuenta de
almacenamiento en la nube.

4. Si se le solicita, pulse o haga clic en Conectar y proporcione las credenciales para esa cuenta.
5. En Choose an Excel file (Elegir un archivo de Excel), vaya a FlooringEstimates.xlsx y haga clic o
pulse en él.
6. En Elegir una tabla, haga clic o pulse en FlooringEstimates y, a continuación, haga clic o pulse
Conectar.

Ejecutar la aplicación
1. Para abrir la vista previa, presione F5 (o haga clic o pulse en el icono de reproducción situado cerca de la
esquina superior derecha).

2. Alterne el criterio de ordenación pulsando o haciendo clic en el icono Ordenar cerca de la esquina
superior derecha.
3. Para filtrar la lista, escriba o pegue uno o varios caracteres en el cuadro de búsqueda.
Por ejemplo, escriba o pegue miel para mostrar el único registro para el que aparece esa cadena en el
nombre, la categoría o la información general del producto.

4. Agregar un registro:
a. Seleccione el icono de signo más.

b. Agregue los datos que desee y, a continuación, seleccione el icono de marca de verificación para
guardar los cambios.

5. Editar un registro:
a. Seleccione la flecha del registro que desea editar.

b. Seleccione el icono de lápiz.

c. Actualice uno o varios campos y, a continuación, seleccione el icono de marca de verificación para
guardar los cambios.
Como alternativa, seleccione el icono Cancelar para descartar los cambios.
6. Eliminar un registro:
a. Seleccione la flecha siguiente para el registro que desea eliminar.

b. Seleccione el icono de la papelera.

Pasos siguientes
Personalice la pantalla de exploración predeterminada para que se ajuste mejor a sus necesidades. Por ejemplo,
puede ordenar y filtrar la lista por nombre de producto, no por categoría o por introducción.
Personalizar una pantalla de exploración predeterminada.
Vista previa: cree una aplicación de lienzo desde
Azure SQL Database
05/11/2019 • 9 minutes to read

[Este tema es documentación preliminar y está sujeto a cambios.]


En este tema, usará los datos de la Azure SQL Database para crear una aplicación con PowerApps en minutos.
Tendrá una aplicación totalmente funcional con los datos que puede personalizar para ajustarse a sus necesidades
empresariales y compartir en cualquier dispositivo.

IMPORTANT
Se trata de una característica de vista previa.
Una característica de vista previa puede tener una disponibilidad limitada y una funcionalidad restringida. Una
característica de vista previa está disponible antes de una versión oficial para que los clientes puedan obtener acceso
temprano y proporcionar comentarios.

Requisitos previos
El explorador debe tener habilitados los elementos emergentes.
Necesita una suscripción de Azure.
Si no tiene una suscripción a Azure, cree una cuenta gratuita.
Necesita acceso a un SQL Database existente.
Si no tiene un SQL Database existente, cree una nueva base de datos.
Debe permitir que las direcciones IP de la región de PowerApps o los servicios de Azure tengan acceso a SQL
Database en la configuración del firewall.
La tabla SQL Database debe tener al menos una columna con el tipo de datos texto.
Necesita una licencia de PowerApps válida o regístrese para obtener una licencia de prueba de 30 días.

Crear una aplicación


1. Inicie sesión en el portal de Azure.
2. Navegue hasta el SQL Database.
3. Seleccione PowerApps.
NOTE
Si no tiene una licencia de PowerApps, verá una barra de información azul con un vínculo para iniciar una prueba.
Cuando seleccione iniciar una versión de prueba, se le dirigirá a una nueva pestaña en la que se suscribirá para
obtener una licencia. Una vez completado, vuelva al Azure Portal y actualice la hoja para continuar.

4. Escriba un nombre para la aplicación como "inspección del sitio", "recaudador" o "seguimiento de
presupuesto".
5. Escriba una contraseña de autenticación de SQL y, si es necesario, cambie el nombre de usuario.
6. Seleccione una tabla de la lista desplegable que desea usar para crear la aplicación.
7. Seleccione Crear.
El PowerApps Studio se abre en una nueva pestaña. Si el elemento emergente está bloqueado, actualice el
explorador para permitir elementos emergentes e inténtelo de nuevo. Una vez creada, tendrá una aplicación
de tres páginas con datos del SQL Database.

Acceder a la aplicación
Para acceder a la aplicación creada de nuevo, vaya a make.powerapps.com.

Entorno y región de la aplicación


La aplicación que se crea con este método usa el entorno predeterminado para el inquilino e implementa en la
región de este entorno. Puede encontrar la región de una aplicación implementada o el entorno predeterminado de
su inquilino desde el centro de administración. Para revisar todas las aplicaciones de un entorno específico, vaya a
make.powerapps.com, seleccione el entorno en la cinta de opciones y, a continuación, seleccione aplicaciones a la
izquierda.

Acceso de la aplicación a SQL Database


Puede configurar PowerApps para conectarse a SQL Database mediante direcciones IP o como un servicio de
Azure.
Acceso a la aplicación mediante la dirección IP
Requisitos del sistema de powerapps enumera las direcciones IP que usa PowerApps en función de la región de la
aplicación.
Puede utilizar un procedimiento almacenado de Transact-SQL o el Azure Portal para configurar este acceso:
Procedimiento almacenado sp_set_firewall_rule para reglas de firewall de SQL Database o SQL Server
Azure portal para las reglas de firewall de SQL Server
Acceso a la aplicación como un servicio de Azure
PowerApps puede conectarse al SQL Database permitir el acceso al control de servicios de Azure mediante el
Azure portal. Para configurar este acceso, inicie sesión en el Azure portal y navegue en el portal hasta SQL Server.
Seleccione firewalls y redes virtuales y establezca el control permitir que los servicios y recursos de Azure
tengan acceso a este servidor en activado. Seleccione Guardar para enviar los cambios.

IMPORTANT
Si deja el control establecido en activado, el servidor de Azure SQL Database acepta la comunicación desde cualquier subred
dentro del límite de Azure, que se origina en una de las direcciones IP que se reconocen como las que se encuentran dentro
de los intervalos definidos para los centros de datos de Azure. Si se mantiene el control establecido en ON, podría ser un
acceso excesivo desde un punto de vista de seguridad.

Límite
El nombre de la aplicación solo puede incluir letras, números, guiones, paréntesis o caracteres de subrayado.
PowerApps requiere la autenticación de SQL para conectarse a SQL Database.
Puede seleccionar solo una tabla mientras crea una aplicación de lienzo desde el Azure Portal. Personalice la
aplicación después de crear la aplicación si desea agregar más tablas y otros orígenes de datos agregando más
conexiones de datos.
PowerApps no puede conectarse a SQL Database mediante puntos de conexión de servicio de red virtual. Para
obtener más información, consulte permitir el acceso a través de puntos de conexión de servicio de red virtual.

Otras consideraciones
El acceso de la aplicación a SQL Database se comparte implícitamente con todos los usuarios con los que se
comparte esta aplicación . Asegúrese de que las credenciales de autenticación de SQL tienen el acceso
adecuado para leer y escribir datos.
Por ejemplo, puede crear una aplicación independiente que se conecte al mismo SQL Database con distintas
credenciales de autenticación de SQL para separar el acceso de lectura y escritura.
Revise los límites de limitación, las funciones y operaciones que se deben delegar, los problemas conocidos y las
limitaciones del conector de SQL Database que usa esta característica para las consideraciones de rendimiento.
Cree una aplicación a partir de make.powerapps.com cuando necesite crear una aplicación para un entorno no
predeterminado y una región distinta para el inquilino con datos de SQL Database.

Pasos siguientes
En esta guía de inicio rápido, ha creado una aplicación con datos de su SQL Database mediante el Azure Portal.
Como paso siguiente, personalice la aplicación con controles, imágenes y lógica para satisfacer mejor sus
necesidades empresariales.
Diseño de la interfaz de la aplicación Canvas en PowerApps

Vea también
Compartir una aplicación de lienzo en PowerApps
Incorporación de una conexión de datos a una aplicación de lienzo en PowerApps
Microsoft Learn: personalización de una aplicación de lienzo en PowerApps
Tutorial: Personalización de una galería en
PowerApps
05/11/2019 • 8 minutes to read

En este tutorial, podrá personalizar una lista de registros, denominada galería, y realizar otros cambios en una
aplicación que se generó automáticamente en Microsoft PowerApps. Los usuarios pueden administrar datos de
la aplicación incluso si no realiza estos cambios, pero la aplicación será más fácil de usar si se personaliza de
acuerdo con las necesidades de su organización.
Por ejemplo, la galería para este tutorial coincide con este gráfico de forma predeterminada. La dirección de
correo electrónico destaca más que otros tipos de datos, y los usuarios pueden ordenar y filtrar la galería en
base a texto en dicha dirección:

Sin embargo, los usuarios podrían estar más interesados en el nombre de cuenta más que en la dirección de
correo electrónico, por lo que deberá volver a configurar la galería para que resalte, ordene y filtre en función de
los datos clave de su organización. Además, podrá cambiar el título de la pantalla predeterminada para
diferenciarlo de las otras pantallas en la aplicación.

También agregará una barra de desplazamiento para que los usuarios que no tienen pantallas táctiles o ruedas
de mouse puedan examinar toda la galería.
Cambio del diseño de la galería
Cambio del tipo de datos que aparecen en la galería
Cambio de las columnas que los usuarios pueden utilizar para ordenar y buscar los datos
Cambio del título de pantalla
Mostrar una barra de desplazamiento
Este tutorial comienza con una aplicación que se generó a partir de un origen de datos específico. Pero se
aplican los mismos conceptos a cualquier aplicación que se genere en PowerApps, sea desde una lista de
SharePoint, una tabla de Excel o cualquier otro origen de datos.
Si no está registrado para PowerApps, regístrese gratuitamente antes de empezar.

Requisitos previos
Genere una aplicación a partir de la entidad accounts de Common Data Service.

Abrir la aplicación generada


1. Inicie sesión en PowerApps y después, seleccione Aplicaciones cerca del borde izquierdo.
2. Busque la aplicación que ha generado, seleccione su icono de puntos suspensivos ( ... ) y, a continuación,
seleccione Editar.

3. Si aparece el cuadro de diálogo de bienvenida a PowerApps Studio, seleccione Skip (Omitir).

Cambiar el diseño
1. En el panel de navegación izquierdo, seleccione BrowseGallery1.
Cuando se haya seleccionado la galería, aparecerá un cuadro de selección con indicadores alrededor.
2. En la pestaña propiedades del panel derecho, abra la lista de opciones en diseñoy, a continuación,
seleccione la opción que muestra solo un título.

3. Junto a campos, seleccione Editary, a continuación, seleccione la flecha hacia abajo del cuadro título.
El nombre de este control finalizará en un valor numérico, como Título1, pero el número puede diferir
en función de otras acciones que haya realizado.
4. En la lista de opciones, seleccione nombre de cuentay, a continuación, cierre el panel datos .
La galería muestra el nombre de cada cuenta.
Cambiar el orden y buscar en columnas
1. Seleccione la galería como se describe en la sección anterior.

2. Cerca de la esquina superior izquierda, confirme que la lista de propiedades muestra Elementos.

El valor de esta propiedad aparece en la barra de fórmulas. Establezca esta propiedad para especificar no
solo el origen de datos de la galería, sino también las columnas mediante las cuales los usuarios pueden
ordenar y buscar los datos.
3. Copie esta fórmula y, a continuación, péguela en la barra de fórmulas.
SortByColumns(Search(Accounts; TextSearchBox1.Text; "name"); "name"; If(SortDescending1; Descending;
Ascending))

Con esta fórmula, se asegura de que:


Si un usuario escribe uno o varios caracteres en la barra de búsqueda, la galería muestra sólo los
nombres de cuenta que contengan el texto escrito por el usuario.
Si un usuario selecciona el icono de orden, la galería se ordena alfabéticamente por nombre de cuenta
en orden ascendente o descendente, según la cantidad de veces que el usuario seleccione el icono.
Para obtener más información sobre estas y otras funciones, vea la referencia de fórmulas.
Prueba de ordenación y búsqueda
1. Abra el modo de vista previa presionando F5 (o seleccionado el botón de reproducción cerca de la
esquina superior derecha).

2. Cerca de la esquina superior derecha de la pantalla de exploración, seleccione el icono de ordenación una
o varias veces para cambiar el orden alfabético de ordenación entre ascendente y descendente.

3. En el cuadro de búsqueda, escriba k para mostrar solo los nombres que contengan la letra que ha escrito.

4. Quite todo el texto de la barra de búsqueda y cierre el modo de vista previa; para ello, presione Esc (o
seleccione el icono de cerrar cerca de la esquina superior derecha).

Cambio del título de pantalla


1. Seleccione el título de la pantalla haciendo clic o pulsando en él.

2. Asegúrese de que la lista de propiedades muestra Texto y luego, en la barra de fórmulas, reemplace
Cuentas por Examinar (manteniendo las comillas dobles).

La pantalla refleja el cambio.


Mostrar una barra de desplazamiento
Si es posible que los usuarios no tengan pantallas táctiles ni ruedas del mouse, configure la galería para que
muestre una barra de desplazamiento cuando el usuario mantenga el puntero sobre ella. De este modo, los
usuarios pueden mostrar todas las cuentas incluso si no se pueden mostrar a la vez en la pantalla.
1. Seleccione la galería como se describe en el primer procedimiento.

2. Establezca la propiedad Mostrar ScrollBar de la galería en true.

Pasos siguientes
En este tutorial, ha personalizado la galería y realizado otros cambios en la pantalla predeterminada para
examinar registros en una aplicación generada. También puede personalizar las pantallas predeterminadas para
mostrar detalles y crear o actualizar cuentas. Como la pantalla de exploración contiene una galería, las otras dos
pantallas en la aplicación contienen formularios. Se pueden cambiar, por ejemplo, qué tipos de datos de los
formularios se muestran y en qué orden.
Personalizar formularios
Personalizar un formulario de aplicación de lienzo en
PowerApps
05/11/2019 • 5 minutes to read

En una aplicación de lienzo, personalice un control Mostrar formulario y un control Editar formulario para que
muestren los datos más importantes y en el orden más intuitivo para ayudar a los usuarios a comprender y
actualizar los datos fácilmente.
Cada formulario consta de una o más tarjetas, cada una de las cuales muestra datos de una columna determinada
del origen de datos. Siga los pasos descritos en este tema para especificar qué tarjetas aparecen en un formulario
y subir o bajar las tarjetas dentro de un formulario.
Si no está familiarizado con Canvas-PPS, consulte ¿Qué son las aplicaciones de lienzo?.

Requisitos previos
Generar una aplicación desde Common Data Service y, después, personalizar la galería en esa aplicación.

Mostrar y ocultar las tarjetas


1. Inicie sesión en PowerAppsy, a continuación, abra la aplicación que ha generado y personalizado.
2. En la barra de navegación izquierda, escriba o pegue D en la barra de búsqueda para filtrar la lista de
elementos y, a continuación, seleccione DetailForm1.

3. En la pestaña Propiedades del panel del lateral derecho, seleccione Editar campos para abrir el panel
Campos.

4. Oculte un campo, como la Descripción, manteniendo el puntero sobre él, seleccionando los puntos
suspensivos (...) que aparece y, a continuación, seleccionando quitar.
5. Para mostrar un campo, seleccione Agregar campo, escriba o pegue las primeras letras del nombre del
campo en el cuadro de búsqueda, active la casilla del campo y, a continuación, seleccione Agregar.

Reordenar las tarjetas


1. En el panel campos , arrastre el campo nombre de cuenta hasta la parte superior de la lista de campos.
Las tarjetas de DetailForm1 reflejan el cambio.

2. opta Reordene las otras tarjetas a esta secuencia:


Nombre de cuenta
Número de empleados
Ingresos anuales
Teléfono principal
Dirección 1: Calle 1
Dirección 1: calle 2
Dirección 1: Ciudad
Dirección 1: Código postal
3. En la barra de navegación izquierda, escriba o pegue Ed en la barra de búsqueda y, a continuación,
seleccione EditForm1 para seleccionarlo.
4. Repita los pasos descritos en el procedimiento anterior y en este para que los campos de EditForm1
coincidan con los de DetailForm1.

Ejecutar la aplicación
1. En la barra de navegación izquierda, escriba o pegue br en la barra de búsqueda y, a continuación,
seleccione BrowseScreen1 para seleccionarlo.
2. Para abrir el modo de vista previa, presione F5 (o seleccione el icono de vista previa situado cerca de la
esquina superior derecha).

3. En la esquina superior derecha, seleccione el icono de signo más para agregar un registro en EditScreen1.

4. Agregue los datos que desee y, a continuación, seleccione el icono de marca de verificación en la esquina
superior derecha para guardar los cambios y volver a BrowseScreen1.

de registro
5. Seleccione la flecha del elemento que acaba de crear para mostrar los detalles de ese elemento en
DetailScreen1.

6. En la esquina superior derecha, seleccione el icono de edición para actualizar el registro en EditScreen1.

de registro
7. Cambie la información de uno o varios campos y, a continuación, active la marca de verificación situada en
la esquina superior derecha para guardar los cambios y volver a DetailScreen1.

8. Cerca de la esquina superior derecha, seleccione el icono de la papelera para eliminar el registro que acaba
de actualizar y volver a BrowseScreen1.

9. Cierre el modo de vista previa presionando ESC (o seleccionando el icono cerrar situado cerca de la
esquina superior izquierda).

Pasos siguientes
Guardar y publicar la aplicación.
Personalizar una tarjeta en la aplicación.
Personalización de una tarjeta en una aplicación de
lienzo
23/11/2019 • 2 minutes to read

Realice una personalización básica (sin desbloquear una tarjeta), por ejemplo, cambiando su control. Realizar una
personalización avanzada mediante el desbloqueo de la tarjeta y, por ejemplo, agregar un control que no está
disponible para esa tarjeta de forma predeterminada.
Para obtener información general, consulte Introducción a las tarjetas de datos.

Requisitos previos
Aprenda a agregar y configurar controles.
Puede revisar este tema solo para ver los conceptos generales, o bien puede seguirlo paso a paso si
primero completa los procedimientos de estos temas:
1. Generar una aplicación.
2. Personalizar su galería.
3. Personalizar sus formularios.

Personalizar una tarjeta bloqueada


En este procedimiento, reemplazará un control de entrada de texto con un control [Slider] (Controls/control-
Slider. MD sin desbloquear la tarjeta.
1. En la aplicación que ha generado y personalizado, seleccione EditForm1 en la barra de navegación
izquierda y, a continuación, seleccione Editar campos en la pestaña propiedades del panel derecho.
2. En la lista de campos, seleccione la flecha hacia abajo para número de empleadosy, a continuación, abra
la lista en tipo de control.

3. Seleccione Editar control deslizante.


La pantalla refleja el cambio.
Desbloquear y personalizar una tarjeta
En este procedimiento, desbloqueará una tarjeta y actualizará la propiedad Max del control deslizante que acaba
de agregar.
1. En EditForm1, seleccione el control deslizante en la tarjeta número de empleados .

2. En la pestaña Opciones avanzadas del panel derecho, seleccione el icono de candado para desbloquear la
tarjeta.

3. Establezca la propiedad Max del control deslizante en 10.000.


El control deslizante muestra un valor más preciso.

Pasos siguientes
Ahora que tiene un conocimiento básico de cómo generar una aplicación y personalizar una galería, un formulario
y una tarjeta, puede generar su propia aplicación desde cero.
Creación de una aplicación de lienzo desde cero
con Common Data Service
05/11/2019 • 8 minutes to read

Compile una aplicación de lienzo para administrar datos almacenados en Common Data Service mediante
entidades estándar (que están integradas), entidades personalizadas (creadas por la organización) o ambas.
Al compilar una aplicación desde Common Data Service, no es necesario crear una conexión desde
PowerApps, como ocurre con orígenes de datos como SharePoint, Dynamics 365 o Salesforce. Solo deberá
especificar las entidades que quiere mostrar o administrar en la aplicación.

Requisitos previos
Antes de crear una aplicación desde cero, familiarícese con los conceptos básicos de PowerApps mediante
la generación de una aplicación y, después, personalice la galería, formularios y tarjetas de esa aplicación.
Cambie a un entorno en el que se haya creado una base de datos con datos de ejemplo. Si tiene una
licencia apropiada, puede crear un entorno para satisfacer esta necesidad.
Para crear una aplicación, debe estar asignado al rol de seguridad Creador de entorno.

Abra una aplicación en blanco


1. Inicie sesión en PowerApps.
2. En Cree su propia aplicación, seleccione Aplicación de lienzo en blanco.

3. Especifique el nombre de la aplicación, seleccione Teléfono y, luego, Crear.


Puede crear una aplicación desde cero para tabletas, pero este tema muestra la creación de una
aplicación para teléfonos.

Especificar una entidad


1. En el centro de la pantalla, seleccione Conectarse a datos.
2. En el panel Datos, seleccione Common Data Service, seleccione la casilla Cuentas y, después,
Conectar.
3. Cierre el panel Datos seleccionando el icono Cerrar en la esquina superior derecha.
Agregar una pantalla de lista
1. En la pestaña Inicio, seleccione la flecha hacia abajo junto a Nueva pantalla y, después, Formulario.

2. En la barra de navegación izquierda, seleccione BrowseGallery1 y establezca el valor de la propiedad


Items en esta fórmula:
SortByColumns(Search(Accounts; TextSearchBox1.Text; "name"); "name"; If(SortDescending1;
SortOrder.Descending; SortOrder.Ascending))

Esta fórmula especifica que:


La galería debe mostrar datos de la entidad Accounts.
Los datos se deben organizar en orden ascendente hasta que un usuario seleccione el botón de
ordenación para alternar el criterio.
Si un usuario escribe o pega uno o más caracteres en la barra de búsqueda (TextSearchBox1),
en la lista solo se mostrarán las cuentas en las que el campo nombre contiene los caracteres
que el usuario ha especificado.
Puede usar estas y otras muchas funciones para especificar el aspecto y el comportamiento de
la aplicación.

3. Establezca el diseño de la galería para que solo se muestre el nombre de cada cuenta y configure la
barra de título para mostrar la palabra Examinar, como se describe en Personalizar una galería.
4. En la barra de navegación izquierda, pase el mouse sobre Screen1, seleccione el botón de puntos
suspensivos (...) y seleccione Eliminar.
5. En la barra de navegación izquierda, pase el mouse sobre Screen2, seleccione el botón de puntos
suspensivos (...) y seleccione Cambiar nombre.
6. Escribe o pegue BrowseScreen y, después, cambie el nombre de la galería en esa pantalla por
BrowseGallery.

Agregar una pantalla de formulario


1. Repita el primer paso del procedimiento anterior, pero agregue una pantalla de Formulario en lugar
de una pantalla de Lista.
2. Establezca la propiedad DataSource del formulario en Accounts y su propiedad Item en
BrowseGallery.Selected, tal y como se muestra en la pestaña Opciones avanzadas del panel de la
derecha.

3. En la pestaña propiedades del panel derecho, seleccione Editar campos para abrir el panel campos .
4. Seleccione Agregar campo y seleccione las casillas para estos campos:
Nombre de cuenta
Dirección 1: calle 1
Dirección 1: City
Dirección 1: código postal
Número de empleados
Ingresos anuales

NOTE
Fuera de este escenario, puede crear un campo personalizado seleccionando nuevo campo, proporcionando la
información necesaria y, a continuación, seleccionando listo. Más información: crear un campo.

5. Seleccione Agregar.
6. Establezca la propiedad Text de la barra de título para que muestre Crear/Editar.
La pantalla refleja los cambios.

7. Cambie el nombre de esta pantalla a FormScreen.

Configurar iconos
1. En BrowseScreen, establezca la propiedad OnSelect del icono circular de la parte superior de la
pantalla en esta fórmula:
Refresh(Accounts)

2. Establezca la propiedad OnSelect del icono "más" en esta fórmula:


NewForm(EditForm1);; Navigate(FormScreen; ScreenTransition.None)

3. Establezca la propiedad OnSelect de la primera flecha que apunta a la derecha en esta fórmula:
EditForm(EditForm1);; Navigate(FormScreen; ScreenTransition.None)

4. En FormScreen, establezca la propiedad OnSelect del icono Cancelar en esta fórmula:


ResetForm(EditForm1);;Navigate(BrowseScreen; ScreenTransition.None)

5. Establezca la propiedad OnSelect del icono de marca de verificación en esta fórmula:


SubmitForm(EditForm1);; Navigate(BrowseScreen; ScreenTransition.None)

6. En la pestaña Insertar, seleccione Iconos y, a continuación, el icono Papelera.


7. Establezca la propiedad Color del icono Papelera en White y su propiedad OnSelect en esta
fórmula:
Remove(Accounts; BrowseGallery.Selected);; Navigate(BrowseScreen; ScreenTransition.None)

Probar la aplicación
1. En la barra de navegación izquierda, seleccione BrowseScreen y abra el modo de vista previa
presionando F5 (o seleccionando el icono de reproducción situado en la esquina superior derecha).

2. Alterne la lista entre los criterios de ordenación ascendente y descendente y fíltrela por uno o más
caracteres en el nombre de cuenta.
3. Agregue una cuenta, modifíquela, empiece a actualizarla pero cancele los cambios y, después, elimine
la cuenta.

Pasos siguientes
Vincule esta aplicación a una solución para poder, por ejemplo, implementarla en un entorno distinto o
publicarla en AppSource.
Abra una o varias aplicaciones de ejemplo y explore los distintos tipos de aplicaciones que se pueden crear.
Creación de una aplicación de lienzo desde cero a
partir de datos de Excel
05/11/2019 • 15 minutes to read

Cree su propia aplicación de lienzo desde cero a partir de datos de Excel, en formato de tabla, y agregue luego
datos de otros orígenes si quiere. Si sigue este tutorial, creará una aplicación que contiene dos pantallas. En
una pantalla, los usuarios pueden navegar a través de un conjunto de registros. En la otra pantalla, los
usuarios pueden crear un registro, actualizar uno o varios campos de un registro o eliminar todo un registro.
Este enfoque requiere más tiempo que la creación de una aplicación automáticamente, pero los creadores que
tengan más experiencia pueden usarlo para crear aplicaciones mejor adaptadas a sus necesidades.

Requisitos previos
Para seguir exactamente los pasos de este tutorial, primero cree un archivo de Excel con estos datos de
ejemplo.
1. Copie estos datos y péguelos en un archivo de Excel.

STARTDAY STARTTIME VOLUNTEER COPIAR

Sábado 10 a.m. a mediodía Vasquez Kumashiro

Sábado mediodía a 2 p.m. Ice Singhal

Sábado 2 p.m. - 4 p.m. Myk Mueller

Domingo 10 a.m. a mediodía Li Adams

Domingo mediodía a 2 p.m. Singh Morgan

Domingo 2 p.m. - 4 p.m. Batye Nguyen

2. Dé a los datos un formato de tabla, llamada Programa, para que PowerApps pueda analizar la
información.
Para obtener más información, vea Dar formato a una tabla en Excel.
3. Guarde el archivo con el nombre eventsignup. xlsx, ciérrelo y, a continuación, cárguelo en una cuenta
de almacenamiento en la nube, como OneDrive.

IMPORTANT
Para conocer los conceptos generales, puede utilizar su propio archivo de Excel y seguir este tutorial. No obstante, los
datos del archivo de Excel deben tener formato de tabla. Para obtener más información, vea Dar formato a una tabla en
Excel.

Abra una aplicación en blanco


1. Inicie sesión en PowerApps.
2. En Cree su propia aplicación, seleccione Aplicación de lienzo en blanco.

3. Especifique el nombre de la aplicación, seleccione Teléfono y, luego, Crear.


Puede diseñar una aplicación desde cero para teléfonos o para otros dispositivos (por ejemplo,
tabletas). Este tema se centra en el diseño de una aplicación para teléfonos.

PowerApps Studio crea una aplicación en blanco para teléfonos.


4. Si aparece el cuadro de diálogo de bienvenida a PowerApps Studio, seleccione Omitir.

Conectarse a datos
1. En el centro de la pantalla, seleccione Conectarse a datos.
2. En el panel Datos, seleccione la conexión de su cuenta de almacenamiento en la nube, si aparece. De lo
contrario, siga estos pasos para agregar una conexión:
a. Seleccione Nueva conexión, seleccione el icono de la cuenta de almacenamiento en la nube y, a
continuación, seleccione Crear.
b. Si se le solicita, proporcione las credenciales para esa cuenta.
3. En Elegir un archivo de Excel, escriba o pegue las primeras letras de eventsignup para filtrar la lista
y, a continuación, seleccione el archivo que ha cargado.
4. En Elegir una tabla, active la casilla de Programa y, a continuación, seleccione Conectar.
5. Cierre el panel Datos mediante el icono de cierre (X) que encontrará en la esquina superior derecha.

Creación de la pantalla de vista


1. En la pestaña Inicio, seleccione la flecha abajo junto a Nueva pantalla para abrir una lista de tipos de
pantalla y, luego, seleccione Lista.
Se agrega una pantalla con varios controles predeterminados, como un cuadro de búsqueda y un
control de Galería . La galería cubre toda la pantalla en el cuadro de búsqueda.
2. En la parte superior de la pantalla nueva, seleccione el control Etiqueta y reemplace [Título] por Ver
registros.
3. En la barra de navegación izquierda, seleccione BrowseGallery1.
Se muestra un cuadro de selección con indicadores alrededor de la galería.

4. En la pestaña Propiedades del panel del lateral derecho, seleccione la flecha abajo del menú Diseño.

5. Seleccione Título, subtítulo y cuerpo.


6. En la barra de fórmulas, reemplace CustomGallerySample por Programa y ambas instancias de
SampleText por Volunteer.
7. En el borde derecho de la barra de fórmulas, seleccione la flecha abajo y, luego, Aplicar formato al
texto.
La fórmula coincide con la de este ejemplo:

SortByColumns(
Search(
Schedule;
TextSearchBox1.Text;
"Volunteer"
);
"Volunteer";
If(
SortDescending1;
SortOrder.Descending;
SortOrder.Ascending
)
)
8. En la pestaña Propiedades del panel del lateral derecho, seleccione Editar, junto a la etiqueta
Campos.
9. En el cuadro Title2 , seleccione voluntarios, en el cuadro Subtitle2 , seleccione StartDayy, en el
cuadro cuerpo1 , seleccione startTime.
10. Cierre el panel Datos mediante el icono de cierre (X) que encontrará en la esquina superior derecha.
Los usuarios pueden ordenar y filtrar la galería por nombre de voluntario tomando como base las funciones
SortByColumns y Search en esa fórmula.
Si un usuario escribe al menos una letra en el cuadro de búsqueda, la galería mostrará únicamente
aquellos registros en los que el campo Volunteer contenga el texto escrito por el usuario.
Si el usuario selecciona el botón de ordenación (entre el de actualización y el "más" de la barra de títulos),
la galería mostrará los registros en orden ascendente o descendente, dependiendo de cuántas veces
seleccione el botón el usuario, tomando como referencia el campo Volunteer.
Para obtener más información sobre estas y otras funciones, vea la referencia de fórmulas.

Creación de la pantalla de cambio


1. En la pestaña Inicio, seleccione la flecha abajo junto a Nueva pantalla y, luego, seleccione
Formulario.
2. En la barra de navegación izquierda, seleccione EditForm1.
3. En la pestaña Propiedades del panel del lateral derecho, seleccione la flecha abajo junto a Origen de
datos y, luego, Programa en la lista que aparece.
4. Junto al origen de datos que acaba de especificar, seleccione Editar campos.
5. En el panel Campos, seleccione Agregar campo, marque la casilla de cada campo y, luego, seleccione
Agregar.
6. Seleccione la flecha junto al nombre de cada campo para contraerlo y, luego, arrastre el campo
Volunteer para que aparezca al principio de la lista de campos.

7. Cierre el panel Campos mediante el icono de cierre (X) que encontrará en la esquina superior derecha.
8. Para establecer la propiedad Elemento del formulario, escriba o pegue la expresión en la barra de
fórmulas:
BrowseGallery1.Selected
9. En la parte superior de la pantalla, seleccione el control Label y luego reemplace [Title] (Título) por
Change records (Cambiar registros).

Eliminación y cambio de nombre de pantallas


1. En la barra de navegación izquierda, seleccione el botón de puntos suspensivos (...) para Screen1y, a
continuación, seleccione Eliminar.

2. Seleccione los puntos suspensivos (...) para Screen2, seleccione Cambiar nombre y, a continuación,
escriba o pegue ViewScreen.
3. Seleccione los puntos suspensivos (...) para Screen3, seleccione Cambiar nombre y, a continuación,
escriba o pegue ChangeScreen.

Configuración de iconos en la pantalla de vista


1. Cerca de la parte superior de ViewScreen, seleccione el icono de flecha circular.

2. Establezca la propiedad OnSelect para ese icono en esta fórmula:


Refresh(Schedule)

Cuando el usuario seleccione este icono, los datos de Programa se actualizarán desde el archivo de
Excel.
Para obtener más información sobre estas y otras funciones, vea la referencia de fórmulas.
3. En la esquina superior derecha de ViewScreen, seleccione el icono del signo más.
4. Establezca la propiedad OnSelect para ese icono en esta fórmula:
NewForm(EditForm1);;Navigate(ChangeScreen;ScreenTransition.None)

Cuando el usuario selecciona este icono, aparece la pantalla ChangeScreen con los campos vacíos, de
forma que el usuario puede crear un registro más fácilmente.
5. Seleccione la flecha que apunta a la derecha para el primer registro de la galería.

6. Establezca la propiedad OnSelect de la flecha en esta fórmula:


EditForm(EditForm1);; Navigate(ChangeScreen; ScreenTransition.None)

Cuando el usuario selecciona este icono, ChangeScreen aparece con cada campo que muestra los
datos para el registro seleccionado, por lo que el usuario puede editar o eliminar el registro más
fácilmente.

Configuración de iconos en la pantalla de cambio


1. En ChangeScreen, seleccione el icono "X" en la esquina superior izquierda.

2. Establezca la propiedad OnSelect para ese icono en esta fórmula:


ResetForm(EditForm1);;Navigate(ViewScreen; ScreenTransition.None)

Cuando el usuario selecciona este icono, los cambios realizados en esta pantalla por el usuario se
descartan y se abre la pantalla de vista.
3. En la esquina superior derecha, seleccione el icono de marca de verificación.

4. Establezca la propiedad OnSelect de la marca de verificación en esta fórmula:


SubmitForm(EditForm1);; Navigate(ViewScreen; ScreenTransition.None)

Cuando el usuario selecciona este icono, los cambios realizados en esta pantalla por el usuario se
guardan y se abre la pantalla de vista.
5. En la pestaña Insertar, seleccione Iconos y, a continuación, el icono Papelera.
6. Establezca la propiedad Color del nuevo icono en Blanco y mueva el nuevo icono para que aparezca
junto al icono de la marca de verificación.
7. Establezca la propiedad Visible para el icono de papelera en esta fórmula:
EditForm1.Mode = FormMode.Edit

Este icono solo aparecerá si el formulario está en el modo Editar, no en el modo Nuevo.
8. Establezca la propiedad OnSelect para el icono de papelera en esta fórmula:
Remove(Schedule; BrowseGallery1.Selected);; Navigate(ViewScreen; ScreenTransition.None)

Cuando el usuario selecciona este icono, el registro seleccionado se elimina del origen de datos y se
abre la pantalla de vista.

Probar la aplicación
1. Seleccione ViewScreen y abra el modo de vista previa presionando F5 o mediante el icono de Vista
previa cerca de la esquina superior derecha.

2. Escriba o pegue una o varias letras en el cuadro de búsqueda para filtrar la lista en función del nombre
del voluntario.
3. Seleccione el icono de ordenación una o varias veces para mostrar los datos en orden ascendente o
descendente, según el nombre del voluntario.
4. Agregue un registro.
5. Actualice el registro que ha agregado y, a continuación, guarde los cambios.
6. Actualice el registro que ha agregado y, a continuación, cancele los cambios.
7. Elimine el registro que ha agregado.
8. Cierre el modo de vista previa presionando Esc (o seleccionando el icono de cerrar de la esquina
superior derecha).

Pasos siguientes
Presione Ctrl-S para guardar la aplicación en la nube para que se pueda ejecutar desde otros dispositivos.
Comparta la aplicación para que otras personas puedan ejecutarla.
Obtenga más información sobre funciones como Revisión, que puede usar para administrar los datos sin
necesidad de crear un formulario estándar.
Vincule esta aplicación a una solución para poder, por ejemplo, implementarla en un entorno distinto o
publicarla en AppSource.
Crear una aplicación a partir de una plantilla en
PowerApps
05/11/2019 • 4 minutes to read

Cree automáticamente una aplicación de lienzo a partir de una plantilla para un escenario concreto, como el
seguimiento de presupuestos y la programación de vacaciones, y luego ejecute la aplicación para reconocer su
comportamiento predeterminado.
Para crear una aplicación a partir de una plantilla, se necesita una cuenta de almacenamiento en la nube (por
ejemplo, DropBox, OneDrive o Google Drive) para almacenar los datos de ejemplo de la plantilla.
Si no tiene una licencia para PowerApps, puede registrarse gratuitamente.

Crear una aplicación


1. Inicie sesión en PowerApps.
2. En Cree su propia aplicación, mantenga el puntero sobre Iniciar a partir de datos y pulse la opción
Crear esta aplicación o haga clic en ella.

3. En el icono Plantillas de aplicación, pulse o haga clic en Diseño de teléfono o Diseño de tableta.

4. En la lista de plantillas, haga clic o pulse en una plantilla y, a continuación, haga clic o pulse en Usar (cerca
de la esquina inferior derecha).

Los datos de ejemplo se copian en su cuenta de almacenamiento en la nube, se crea la aplicación y


aparece la página principal.

Ejecutar la aplicación
Una aplicación creada a partir de una plantilla se abre en el área de trabajo predeterminada en la que pasará la
mayor parte del tiempo personalizándola. Antes de realizar cualquier cambio en la aplicación, explore cómo
funciona la aplicación en el modo Vista previa.
1. Presione F5 (o haga clic o pulse en la flecha derecha situada en la esquina superior derecha) para abrir la
aplicación en modo de vista previa.

La aplicación se rellena con datos de ejemplo para demostrar su funcionalidad. Por ejemplo, la aplicación
Cost Estimator contiene datos para crear citas y estimar el costo de la instalación de un producto
específico para suelos en una sala de un tamaño determinado.
2. Explore el comportamiento predeterminado de la aplicación mediante la creación, actualización y
eliminación de datos de ejemplo y, después, compruebe que los datos de la cuenta de almacenamiento en
la nube reflejan los cambios.
Por ejemplo, concierte una cita y cree una estimación del costo en la aplicación Cost Estimator.
3. Presione Esc para volver al área de trabajo predeterminada (o pulse o haga clic en el icono X situado cerca
de la esquina superior derecha).

Pasos siguientes
1. Presione Ctrl-S, proporcione un nombre a su aplicación y, a continuación, haga clic o pulse Guardar para
guardar la aplicación en la nube.
2. Comparta su aplicación con otras personas de su organización.
IMPORTANT
Antes de compartir una aplicación, asegúrese de que las personas con quienes la comparta tengan acceso a los datos. Por
ejemplo, quiere compartir una hoja de Excel u otro archivo en una cuenta de almacenamiento en la nube.
Introducción a los conectores para aplicaciones de
lienzo de PowerApps
21/11/2019 • 8 minutes to read

Los datos están el núcleo de la mayoría de las aplicaciones, entre las que se incluyen las que se compilan en
PowerApps. Los datos se almacenan en un origen de datos y para enviarlos a una aplicación se crea una
conexión. La conexión utiliza un conector concreto para comunicarse con el origen de datos. PowerApps tiene
conectores para muchos de los servicios y orígenes de datos locales más usados, como SharePoint, SQL
Server, Office 365, Salesforce y Twitter. Para empezar a agregar datos a una aplicación de lienzo, vea Adición
de una conexión de datos en PowerApps.
Un conector puede proporcionar tablas de datos o acciones. Algunos conectores solo ofrecen tablas,
algunos solo ofrecen acciones y otros ofrecen ambas. Además, el conector puede ser un conector estándar o
personalizado.

Tablas
Si el conector ofrece tablas, agregue el origen de datos y luego seleccione la tabla en el origen de datos que
quiere administrar. PowerApps recupera los datos de la tabla en la aplicación y actualiza automáticamente los
datos en el origen de datos. Por ejemplo, puede agregar un origen de datos que contenga una tabla
denominada Lecciones y luego establecer la propiedad Items de un control, como una galería o un
formulario, en este valor en la barra de fórmulas:

Puede especificar los datos que recupera la aplicación personalizando la propiedad elementos del control
que muestra los datos. Retomando el ejemplo anterior, puede ordenar o filtrar los datos de la tabla
Lecciones utilizando ese nombre como argumento para las funciones Search y SortByColumn. En este
gráfico, la fórmula en la que se establece la propiedad Items especifica que los datos se ordenan y filtran
según el texto de TextSearchBox1.

Para obtener más información sobre cómo personalizar la fórmula con tablas, vea estos temas:
Información acerca de los orígenes de datos en PowerApps
Creación de una aplicación a partir de datos de Excel
Crear una aplicación desde cero
Información sobre tablas y registros de PowerApps

NOTE
Para conectarse a datos en un libro de Excel, este ha de estar hospedado en un servicio de almacenamiento en la nube
como OneDrive. Para más información, consulte Conexiones de almacenamiento en la nube.

Operaciones
Si el conector facilita acciones, tiene que seleccionar el origen de datos del mismo modo que antes. En lugar
de seleccionar una tabla como siguiente paso, conecte manualmente un control a una acción editando la
propiedad Items del control que va a mostrar los datos. La fórmula en la que se establece la propiedad
Items especifica la acción que recupera los datos. Por ejemplo, la aplicación no recuperará los datos si se
conecta a Yammer y luego establece la propiedad Items en el nombre del origen de datos. Para rellenar un
control con datos, especifique una acción como GetMessagesInGroup(5033622).messages.

Si tiene que controlar actualizaciones de datos personalizadas con conectores de acción, cree una fórmula
que incluya la función Patch. En la fórmula, identifique la acción y los campos que quiere enlazar a la acción.
Para obtener más información sobre cómo personalizar la fórmula para las actualizaciones personalizadas,
vea estos temas:
Patch
Collect
Update

NOTE
PowerApps no funciona con el esquema dinámico. La frase esquema dinámico hace referencia a la posibilidad de
que la misma acción pueda devolver una tabla diferente con columnas diferentes. Entre otras, las condiciones que
pueden hacer que las columnas de las tablas difieran son los parámetros de entrada de la acción, el usuario o el rol que
ejecuta la acción y el grupo en el que está trabajando el usuario. Por ejemplo, SQL Server procedimientos almacenados
pueden devolver diferentes columnas si se ejecutan con diferentes entradas. En el caso de las acciones con esquema
dinámico, la documentación del conector muestra que las salidas de esta operación son dinámicas. como valor
devuelto. Por el contrario, Power automatizate funciona con el esquema dinámico y podría proporcionar una solución
alternativa para su escenario.

Conectores populares
La tabla siguiente contiene vínculos a más información sobre nuestros conectores más utilizados. Para ver
una lista completa de conectores, consulte el apartado Todos los conectores.

Common Data \ ** de
Service almacenamiento
en la nube

Dynamics 365 Dynamics AX

Excel Microsoft
Translator

Office 365 Outlook Usuarios de Office


365

Oracle Power BI
SharePoint SQL Server

Twitter

* * Se aplica a Azure BLOB, Box, Dropbox, Google Drive, OneDrive y OneDrive para la empresa

Conectores estándar y personalizados


PowerApps ofrece conectores estándar para muchos orígenes de datos de uso común, como los indicados
anteriormente. Si PowerApps tiene un conector estándar para el tipo de origen de datos que quiere utilizar,
ha de usar dicho conector. Si tiene que conectarse a otros tipos de orígenes de datos, como un servicio que
haya creado, vea Conectores personalizados en PowerApps.

Todos los conectores estándar


Vea la referencia de conectores de Microsoft para obtener una lista de todos los conectores estándar. Los
conectores Premium requieren el plan 1 o el plan 2 de PowerApps. Para más información, consulte los planes
de PowerApps.
Puede formular preguntas sobre un conector específico en los foros de PowerApps, así como sugerir que se
agreguen conectores o se realicen otras mejoras en PowerApps Ideas (Ideas para PowerApps).
Conectarse a Common Data Service
09/11/2019 • 2 minutes to read

Puede almacenar de forma segura los datos empresariales en Common Data Service y compilar aplicaciones
enriquecidas en PowerApps para que los usuarios puedan administrar los datos. También puede integrar los datos
en soluciones que incluyen Power Automatic, Power BI y datos de Dynamics 365.
De forma predeterminada, el conector de Common Data Service se conecta a los datos del entorno actual de la
aplicación. Si la aplicación se mueve a otro entorno, el conector se conecta a los datos en el nuevo entorno. Este
comportamiento funciona bien para una aplicación que usa un solo entorno o una aplicación que sigue un proceso
ALM para pasar del desarrollo a la prueba a producción.
Al agregar un origen de datos con el conector de Common Data Service, puede cambiar el entorno y, a
continuación, seleccionar una o más entidades. De forma predeterminada, la aplicación se conecta a los datos del
entorno actual y la interfaz de usuario muestra (actual) en la lista de entidades.

Si selecciona cambiar, puede especificar un entorno diferente para extraer datos de él en lugar de o además del
entorno actual.

El nombre del entorno seleccionado aparece en el cuadro de búsqueda.


El conector de Common Data Service es más robusto que el conector de Dynamics 365 y el enfoque de la paridad
de características.
Más información: ¿Qué es Common Data Service?
Conectar al almacenamiento en la nube desde
PowerApps
05/11/2019 • 6 minutes to read

PowerApps ofrece varias conexiones de almacenamiento en la nube. Con cualquiera de estas conexiones, puede
almacenar un archivo de Excel y usar la información almacenada en él en toda la aplicación. Estas conexiones
incluyen las siguientes:

ONEDRIVE
AZURE BLOB BOX DROPBOX GOOGLE DRIVE ONEDRIVE PARA LA EMPRESA

Requisitos previos
Tener acceso a PowerApps
Agregar la conexión
Crear una aplicación con una plantilla, utilizando datos, o partiendo de cero
Un archivo de Excel con datos con formato de tabla:
1. Abra el archivo de Excel y seleccione cualquier celda de los datos que desea utilizar.
2. En la pestaña Insertar, seleccione Tabla.
3. En el cuadro de diálogo Guardar como tabla, active la casilla La tabla tiene encabezados y
seleccione Aceptar.
4. Guarde los cambios.

Conexión al almacenamiento en la nube


1. En powerapps.com, expanda Administrar y seleccione Conexiones:

2. Seleccione Nueva conexión y seleccione la conexión de almacenamiento en la nube. Por ejemplo,


seleccione OneDrive.
3. Se le solicitará el nombre de usuario y la contraseña de la cuenta de almacenamiento en la nube.
Escríbalos y seleccione Iniciar sesión:
Cuando haya iniciado sesión, esta conexión estará lista para usarse en las aplicaciones.
4. En la aplicación, pulse o haga clic en Orígenes de datos en la pestaña Vista de la cinta de opciones. En
el panel derecho, pulse o haga clic en Agregar un origen de datos, pulse o haga clic en la conexión de
almacenamiento en la nube y, luego, elija la tabla de Excel.
5. Seleccione Conectar.
La tabla aparece como un origen de datos:
NOTE
Recuerde que los datos de Excel deben tener formato de tabla.

Usar los datos de Excel en la aplicación


1. En la pestaña Insertar, seleccione Galería y seleccione un control de la galería Con texto.
2. Establezca la propiedad Elementos de la galería en la tabla de Excel. Por ejemplo, si la tabla de Excel se
denomina Tabla1, vuelva a establecerla en Tabla1:

La galería se actualiza automáticamente con la información de la tabla de Excel.


3. En la galería, seleccione el segundo o tercer control Etiqueta. De manera predeterminada, se ve que la
propiedad Texto de la segunda y tercera etiqueta se establece automáticamente en ThisItem.something .
Estas etiquetas se pueden establecer en cualquier columna de la tabla.
En el ejemplo siguiente, la segunda etiqueta se establece en ThisItem.Name y la tercera en
ThisItem.Notes :
Salida de ejemplo:

NOTE
El primer cuadro es en realidad un control de imagen. Si no tiene ninguna imagen en la tabla de Excel, puede eliminar el
control de imagen y agregar una etiqueta en su lugar. Agregar y configurar controles es un buen recurso.

Comprender las tablas y los registros ofrece más detalles y algunos ejemplos.

Uso compartido de la aplicación


Puede compartir la aplicación, los recursos como, por ejemplo, los conectores, y los datos con otras personas de
la organización.
Si desea compartir una carpeta de Dropbox, la carpeta compartida debe asociarse a la cuenta de Dropbox del
usuario.
Hay ciertas limitaciones con los conectores relacionados con archivos de Excel.

Limitaciones conocidas
Si aparece un mensaje de tipo de datos no admitido o no tiene el formato de tabla cuando intenta utilizar
una conexión de Excel en la aplicación, dé formato a los datos como tabla.
Si los datos de Excel incluyen una columna calculada, no podrá utilizarlo para crear la aplicación y no podrá
agregar datos a una aplicación existente.
Uso compartido de tablas de Excel
Para compartir datos en un archivo de Excel:
En OneDrive para la Empresa, comparta el archivo en sí.
En OneDrive, comparta la carpeta que contiene el archivo y especifique las rutas de acceso al archivo, no las
direcciones URL, para todos los soportes físicos.
En Dropbox o Google Drive, comparta el archivo o la carpeta.

Vínculos útiles
Consulte todas las conexiones disponibles.
Aprenda a agregar conexiones y orígenes de datos a sus aplicaciones.
Comprenda las tablas y los registros con orígenes de datos tabulares.
Algunos recursos de la galería adicionales incluyen la posibilidad de mostrar una lista de elementos y de
mostrar texto e imágenes de una galería.
Conexión a Dynamics 365 desde PowerApps
12/11/2019 • 7 minutes to read

PowerApps le permite generar, personalizar, compartir y ejecutar rápidamente aplicaciones móviles con poco o
ningún código. Mediante el conector de Dynamics 365, puede crear útiles aplicaciones móviles para compartir con
su organización en tan solo unos minutos.
Si sigue los pasos descritos en este tema, creará una aplicación en la que los usuarios podrán examinar, agregar,
eliminar y realizar actualizaciones en los contactos de Dynamics 365. Los usuarios pueden ejecutar la aplicación en
un explorador o en un dispositivo móvil, como un teléfono.

Requisito previo
Para seguir este tutorial, necesita una cuenta de Microsoft Office 365 que incluye una suscripción a Dynamics 365.

Crear una conexión


1. Inicie sesión en PowerApps.
2. En el panel de navegación izquierdo, haga clic en Conexiones.

3. Cerca de la esquina superior derecha, haga clic en Nueva conexión.

4. En la lista de conexiones, haga clic en Dynamics 365.

5. En el cuadro de diálogo, haga clic en Crear.

6. En el cuadro de diálogo Iniciar sesión en la cuenta, indique sus credenciales para el inquilino Dynamics
365 (en línea).
Se crea una conexión.

Generar una aplicación automáticamente


1. Inicie sesión en PowerAppsy, después, haga clic en Nueva aplicación cerca de la esquina inferior izquierda.

2. En Comenzar con los datos, haga clic en Diseño de teléfono en el icono Dynamics 365.

3. En Conexiones, seleccione la conexión que desee y, después, elija un conjunto de datos, que se
corresponde a la instancia de Dynamics 365 que va a administrar en la aplicación.
4. En Elegir una tabla, haga clic en Contactos y, después, haga clic en Conectar.
5. En la barra de navegación izquierda, haga clic o pulse en uno de los iconos de la esquina superior derecha
para cambiar a la vista en miniatura.

PowerApps genera una aplicación de tres pantallas basada en los registros de contactos.
ExaminarPantalla1. Esta pantalla aparece de forma predeterminada cuando los usuarios abren la aplicación.
En la barra de navegación izquierda, se muestra una vista en miniatura de esta pantalla sobre las otras dos
pantallas.
PantallaDetalles1. Esta pantalla aparece cuando los usuarios hacen clic en un elemento de
ExaminarPantalla1. En la barra de navegación izquierda, se muestra una vista en miniatura de
PantallaDetalles1 sobre las otras dos pantallas.
EditarPantalla1. Esta pantalla aparece cuando los usuarios hacen clic en el icono de edición de un elemento en
PantallaDetalles1. En la barra de navegación izquierda, se muestra una vista en miniatura de EditarPantalla1
sobre las otras dos pantallas.
Puede ejecutar la aplicación en su estado inicial, pero podemos hacerla más útil si perfeccionamos la información
en cada pantalla.

Personalizar ExaminarPantalla1
En este procedimiento, va a configurar ExaminarPantalla1 para mostrar los nombres y apellidos de cada
contacto. Los datos se ordenarán alfabéticamente por apellido e incluyen imágenes en una cuadrícula de dos
columnas.
1. En ExaminarPantalla1, seleccione la galería haciendo clic en cualquier registro, excepto en el primero.
2. En el panel de la derecha, pulse o haga clic en la pestaña Datos.
3. En la lista de diseños, pulse o haga clic en el diseño que muestra imágenes y texto en una cuadrícula de dos
columnas.
Puede que necesite desplazarse hacia abajo para mostrar esta opción.

4. Copie esta fórmula y, después, con la galería aún seleccionada, pegue la fórmula en la barra de fórmulas (a
la derecha del botón fx):
SortByColumns(Search(Filter(Contacts;statuscode=1); TextSearchBox1.Text; "lastname"); "lastname";
If(SortDescending1; Descending; Ascending))

5. En el panel derecho, establezca la lista desplegable superior en firstname y la lista desplegable central en
lastname.

6. (opcional) En el menú Archivo, haga clic en Guardar como, escriba un nombre para la aplicación y haga
clic en Guardar.
De forma predeterminada, la aplicación se guardará en la nube. Haga clic en Este equipo para guardar la
aplicación localmente.

Personalizar PantallaDetalles1 y EditarPantalla1


1. En la barra de navegación izquierda, haga clic en la miniatura central para seleccionar PantallaDetalles1.
2. En PantallaDetalles1, haga clic en cualquier lugar debajo de la barra de título para mostrar las opciones de
personalización del panel derecho.

3. En el panel derecho, haga clic en el icono de ojo de cada campo para mostrarlo.

4. Haga clic en cualquier lugar bajo la barra de título para seleccionar Formulario1.
5. En el panel derecho, haga clic en el icono de ojo para cada uno de estos campos, por lo que la pantalla
mostrará una imagen (si la tabla contiene una) y otros cuatro campos para cada contacto:
entityimage
firstname
lastname
mobilephone
emailaddress1
El panel derecho debe ser similar a este gráfico:

6. Seleccione EditarPantalla1 haciendo clic en la miniatura inferior de la barra de navegación izquierda.


7. Repita los pasos de este procedimiento para personalizar EditarPantalla1 del mismo modo que en
PantallaDetalles1.
8. (opcional) Guarde la aplicación.

Pasos siguientes
Pruebe la aplicación en modo de vista previa haciendo clic en ExaminarPantalla1 en la barra de navegación
izquierda y, después, presione F5 o haga clic cerca de la esquina superior derecha.
Comparta la aplicación.
Agregue un segundo origen de datos.
Conexión de Microsoft PowerApps a Dynamics AX
07/10/2019 • 2 minutes to read

Utilice esta conexión para crear fácilmente aplicaciones que leen, actualizan y eliminan datos desde estas versiones
de Dynamics AX:
• Dynamics AX actualización 1 + artículo de KB de revisión
• Dynamics AX actualización 2 y versiones posteriores
Para más información sobre cómo crear una aplicación, consulte Generar una aplicación automáticamente o Crear
una aplicación desde cero. Estos temas se escribieron para Excel, pero los mismos principios se aplican a Dynamics
AX.
Para más información acerca de cómo agregar datos de Dynamics AX a una aplicación existente, consulte Agregar
una conexión de datos.
Consulte la lista de conexiones disponibles y obtenga información acerca de cómo administrar conexiones en
PowerApps.
Pasos siguientes
Más información sobre cómo mostrar datos a partir de un origen de datos.
Más información sobre cómo ver detalles y crear o actualizar registros.
Conexión a Excel desde PowerApps
07/10/2019 • 2 minutes to read

Excel es una variante de una conexión. Para mostrar los datos de Excel en la aplicación:
1. Dé formato a los datos de Excel como una tabla.
2. Almacene el archivo de Excel en una cuenta de almacenamiento en la nube, como Box, Dropbox, Google Drive,
OneDrive o OneDrive para la Empresa.
3. Conéctese a la cuenta de almacenamiento en la nube y, después, agregue la tabla de Excel como origen de
datos.
4. Para mostrar esta información en la aplicación, genere una aplicación automáticamente o agregue y configure,
por ejemplo, un control Galería.

NOTE
Cuando se conecta a la tabla de Excel desde PowerApps, se crea una columna denominada _PowerAppsId_ con un
identificador único para cada fila de la tabla de Excel.

La introducción a la conexión de almacenamiento en la nube muestra cómo agregar la conexión, agregar una tabla
de Excel como origen de datos y usar los datos de Excel en la aplicación.
Para más información sobre cómo conectarse a otros tipos de datos, consulte la lista de conexiones para
PowerApps.
Limitaciones conocidas
Para más información sobre cómo compartir datos de Excel en su organización, repase estas limitaciones.
Conexión a Microsoft Translator desde PowerApps
08/10/2019 • 7 minutes to read

Agregue el conector de Microsoft Translator para que muestre el texto traducido en un control Etiqueta de la
aplicación. Por ejemplo, puede crear un cuadro de texto de entrada que solicite al usuario que escriba algún texto
para traducir. En otra etiqueta, puede mostrar el texto traducido.
En este tema se muestra cómo utilizar la conexión de Microsoft Translator, cómo usar la conexión de Microsoft
Translator en una aplicación y cómo enumerar las funciones disponibles.

NOTE
Este conector se limita a 150 llamadas por usuario y día.

Requisitos previos
Tener acceso a PowerApps
Agregar la conexión
Crear una aplicación con una plantilla, utilizando datos, o partiendo de cero

Conexión a Microsoft Translator


1. Abra PowerApps, seleccione Nuevo y cree una aplicación vacía. Elija el diseño de teléfono o tableta. El
diseño de tableta le ofrece más área de trabajo:

2. En el panel derecho, pulse o haga clic en la pestaña Datos y, después, en Agregar origen de datos.
3. Seleccione Nueva conexión y, después, Microsoft Translator:
4. Seleccione Conectar. La conexión aparecerá bajo Orígenes de datos:
Utilice la conexión de Microsoft Translator en su aplicación
Traducir texto
1. En el menú Insert (Insertar), seleccione Text (Texto) y luego seleccione Text input (Entrada de texto).
Cambie el nombre del control de entrada de texto a Origen:

2. Agregar una lista desplegable (menú Insertar > Controles), cambie su nombre a TargetLang y muévalo
debajo de Origen.
3. Establezca la propiedad Elementos de TargetLang a la fórmula siguiente:
MicrosoftTranslator.Languages()

4. Agregue una etiqueta, muévalo debajo de TargetLang y establezca su propiedad Texto en la fórmula
siguiente:
MicrosoftTranslator.Translate(Source.Text; TargetLang.Selected.Value)

5. Escriba algún texto en Origen y seleccione un idioma en TargetLang. La etiqueta muestra el texto que
escribió en el idioma elegido:
Pronunciar texto traducido
Si no lo ha hecho ya, siga los pasos descritos en la sección anterior para traducir el texto. Los pasos siguientes
utilizan los mismos controles.
1. Establezca la propiedad Elementos de la lista desplegable TargetLang en la fórmula siguiente:
MicrosoftTranslator.SpeechLanguages()

2. Cambie el nombre de la segunda etiqueta (no del cuadro Origen) a Destino.


3. Agregue un control Audio (menú Insertar > Multimedia) y establezca la propiedad Multimedia en la
fórmula siguiente:
MicrosoftTranslator.TextToSpeech(Target.Text; TargetLang.Selected.Value)

4. Presione F5 o seleccione el botón Vista previa ( ). Escriba algún texto en Origen, seleccione un idioma
en TargetLang y seleccione el botón Reproducir en el control de audio.
La aplicación reproduce una versión de audio del texto que ha escrito en el idioma elegido.
5. Presione Esc para volver al área de trabajo predeterminada.
Detectar el idioma de origen
Los pasos siguientes utilizan la misma entrada de texto Origen y los controles de texto Destino. Puede crear
nuevos controles si lo prefiere, solo tiene que actualizar los nombres en la fórmula.
1. Seleccione el control de texto Destino y establezca la propiedad Texto en la fórmula siguiente:
MicrosoftTranslator.Detect(Source.Text).Name

2. Escriba algún texto en Origen.


La etiqueta se muestra el idioma del texto que ha escrito. Por ejemplo, la etiqueta muestra Francés si
escribe bonjour o Italiano si escribe ciao.

Visualización de las funciones disponibles


Esta conexión incluye las siguientes funciones:

NOMBRE DE LA FUNCIÓN DESCRIPCIÓN

Idiomas Recupera todos los idiomas que admite Microsoft Translator.

Traducir Traduce el texto a un idioma especificado mediante Microsoft


Translator.

Detectar Detecta el idioma de origen del texto proporcionado.

SpeechLanguages Recupera los idiomas disponibles para síntesis de voz.

TextToSpeech Convierte un texto proporcionado en voz como una secuencia


de audio en formato de onda.
Lenguajes
Obtener idiomas: Recupera todos los idiomas que admite Microsoft Translator.
Propiedades de entrada
Ninguna
Propiedades de salida

NOMBRE DE LA PROPIEDAD TIPO DE DATOS REQUERIDO DESCRIPCIÓN

Código string No

Nombre string No

Traducir
Traducir texto: Traduce el texto a un idioma especificado mediante Microsoft Translator.
Propiedades de entrada

NOMBRE TIPO DE DATOS REQUERIDO DESCRIPCIÓN

query string yes Texto que se traducirá

languageTo string yes Código del idioma de


destino (ejemplo: 'fr')

languageFrom string no Idioma de origen (si no se


proporciona, Microsoft
Translator intentará
detectarlo automáticamente)
(ejemplo: en)

category string no Categoría de traducción


(predeterminado: 'general')

Propiedades de salida
Ninguna
Detectar
Detectar idioma: Detecta el idioma de origen del texto proporcionado.
Propiedades de entrada

NOMBRE TIPO DE DATOS REQUERIDO DESCRIPCIÓN

query string yes Texto cuyo idioma se


identificará

Propiedades de salida

NOMBRE DE LA PROPIEDAD TIPO DE DATOS REQUERIDO DESCRIPCIÓN

Código string No

Nombre string No

SpeechLanguages
Obtener idiomas de voz: Recupera los idiomas disponibles para síntesis de voz.
Propiedades de entrada
Ninguna
Propiedades de salida

NOMBRE DE LA PROPIEDAD TIPO DE DATOS REQUERIDO DESCRIPCIÓN

Código string No

Nombre string No

TextToSpeech
Texto a voz: Convierte un texto proporcionado en voz como una secuencia de audio en formato de onda.
Propiedades de entrada

NOMBRE TIPO DE DATOS REQUERIDO DESCRIPCIÓN

query string yes Texto que se convertirá

language string yes Código de idioma para


generar voz (ejemplo: 'en-
us')

Propiedades de salida
Ninguna

Vínculos útiles
Consulte todas las conexiones disponibles.
Aprenda a agregar conexiones a sus aplicaciones.
Conexión a Office 365 Outlook desde PowerApps
08/10/2019 • 7 minutes to read

Si se conecta a Office 365 Outlook, puede mostrar, enviar, eliminar y responder a mensajes de correo electrónico,
además de otras tareas.
Puede agregar controles para realizar estas funciones en la aplicación. Por ejemplo, puede agregar controles de
entrada de texto para solicitar el destinatario, asunto y cuerpo del correo electrónico, y agregar un control de
botón para enviar el correo.
En este tema se muestra cómo agregar Office 365 Outlook como una conexión, agregar Office 365 Outlook
como origen de datos a su aplicación y cómo utilizar estos datos en distintos controles.

IMPORTANT
En el momento de redacción este documento, la operación del calendario no admite eventos recurrentes.

Requisitos previos
Tener acceso a PowerApps
Agregar la conexión
Crear una aplicación con una plantilla, utilizando datos, o partiendo de cero

Conexión a Office 365 Outlook


1. Agregue una conexión de datos y seleccione Office 365 Outlook:

2. Seleccione Connect (Conectar) y, si se pide que inicie sesión, escriba su cuenta profesional.
La conexión con Office 365 Outlook se ha creado y agregado a la aplicación. Ahora, está lista para utilizarse.
Presentación de mensajes
1. En el menú Insertar, seleccione Galería y seleccione un control de la galería con texto.
2. Establezca su propiedad Elementos en la fórmula siguiente:
Office365.GetEmails({fetchOnlyUnread:false})

Después de cambiar la configuración, cambie diseño a título, subtítulo y cuerpo.


El control de galería se rellena automáticamente con algunos de los correos electrónicos.
3. En la galería, establezca la propiedad Texto de la primera etiqueta en ThisItem.From . Establezca la
segunda etiqueta en ThisItem.Subject . Establezca la tercera etiqueta en ThisItem.BodyPreview . También
puede cambiar el tamaño de las etiquetas.
El control de galería se rellena automáticamente con algunas de las nuevas propiedades.
4. Esta función tiene varios parámetros opcionales disponibles. Establezca la propiedad Elementos de la
galería en una de las fórmulas siguientes:
Office365.GetEmails({fetchOnlyUnread:false})
Office365.GetEmails({fetchOnlyUnread:false; top:2})
Office365.GetEmails({folderPath:"Sent Items"; fetchOnlyUnread:false; top:2})
Office365.GetEmails({folderPath:"Sent Items"; fetchOnlyUnread:false; top:2; searchQuery:"powerapps"})
Office365.GetEmails({folderPath:"Deleted Items"; fetchOnlyUnread:false; top:2; skip:3})

Envío de un mensaje
1. En el menú Insert (Insertar), seleccione Text (Texto) y luego seleccione Text input (Entrada de texto).
2. Repita el paso anterior dos veces más, con lo que tendrá tres casillas y organícelas en una columna:

3. Cambie el nombre de los controles a:


entradaPara
entradaAsunto
entradaCuerpo
4. En la pestaña Insertar, seleccione Controles y, a continuación, seleccione Botón. Establezca su propiedad
AlSeleccionar en la fórmula siguiente:
Office365.SendEmail(inputTo.Text; inputSubject.Text; inputBody.Text)

5. Mueva el botón para que aparezca en todos los demás controles y establezca su propiedad Texto en
"Enviar correo electrónico" .

6. Presione F5 o seleccione el botón Vista previa ( ). Escriba una dirección de correo electrónico válida en
entradaPara y escriba el nombre que desee en los otros dos controles Entrada de texto.
7. Seleccione Enviar correo electrónico para enviar el mensaje. Presione Esc para volver al área de trabajo
predeterminada.

Envío de un mensaje con datos adjuntos


Por ejemplo, puede crear una aplicación en la que el usuario haga fotos con la cámara del dispositivo y, luego, las
envíe como datos adjuntos. Los usuarios también pueden adjuntar muchos otros tipos de archivos a una
aplicación de correo electrónico.
Para agregar datos adjuntos a un mensaje, siga los pasos descritos en la sección anterior, pero agregue un
parámetro para especificar que hay datos adjuntos (al establecer la propiedad AlSeleccionar del botón). Este
parámetro se estructura como una tabla en la que se especifican hasta tres propiedades para los datos adjuntos:
Nombre
ContentBytes
@odata.type

NOTE
La propiedad @odata.type se puede especificar para un solo archivo adjunto y se puede establecer en una cadena vacía.

En este ejemplo, se enviará una foto como file1.jpg:


Office365.SendEmail(inputTo.Text; inputSubject.Text; inputBody.Text; {Attachments:Table({Name:"file1.jpg";
ContentBytes:Camera1.Photo; '@odata.type':""})})

En este ejemplo, se enviará un archivo de audio junto con la foto:


Office365.SendEmail(inputTo.Text; inputSubject.Text; inputBody.Text; {Attachments:Table({Name:"file1.jpg";
ContentBytes:Camera1.Photo; '@odata.type':""}; {Name:"AudioFile"; ContentBytes:microphone1.audio })})

Eliminación de un mensaje
1. En el menú Insertar, seleccione Galería y seleccione un control de la galería con texto.
2. Establezca su propiedad Elementos en la fórmula siguiente:
Office365.GetEmails({fetchOnlyUnread:false})

El control de galería se rellena automáticamente con algunos de los correos electrónicos.


3. En la galería, establezca la propiedad Texto de la primera etiqueta en ThisItem.Id . Establezca la segunda
etiqueta en ThisItem.Subject . Establezca la tercera etiqueta en ThisItem.Body .
4. Seleccione la primera etiqueta de la galería y cambie su nombre a IdCorreoElectrónico:

5. Seleccione la tercera etiqueta de la galería y agregue un botón (menú Insertar). Establezca la propiedad
AlSeleccionar del botón en la fórmula siguiente:
Office365.DeleteEmail(EmailID.Text)
6. Presione F5 o seleccione el botón Vista previa ( ). Seleccione uno de los correos electrónicos de la
galería y haga clic en el botón.

NOTE
Así se elimina el correo electrónico seleccionado de la Bandeja de entrada. Por lo tanto, tenga cuidado al elegirlos.

7. Presione Esc para volver al área de trabajo predeterminada.

Marca de un mensaje como leído


En esta sección se usan los mismos controles que en Eliminar un mensaje.
1. Establezca la propiedad AlSeleccionar del botón en la fórmula siguiente:
Office365.MarkAsRead(EmailID.Text)

2. Presione F5 o seleccione el botón Vista previa ( ). Seleccione uno de los mensajes de correo
electrónico no leídos y haga clic en el botón.
3. Presione Esc para volver al área de trabajo predeterminada.

Vínculos útiles
Para obtener una lista de todas las funciones y sus parámetros, consulte la referencia de Office 365 Outlook.
Consulte todas las conexiones disponibles.
Más información sobre cómo administrar las conexiones.
Conectarse a la conexión de los usuarios de Office
365 desde PowerApps
07/10/2019 • 14 minutes to read

Usuarios de Office 365 le permite acceder a los perfiles de usuario de su organización mediante su cuenta de
Office 365. Puede realizar diversas acciones, como obtener su perfil, el perfil de un usuario o el administrador y
los subordinados directos de un usuario.
Puede mostrar esta información en una etiqueta en la aplicación. Puede mostrar una función, varias funciones o
incluso combinar funciones diferentes. Por ejemplo, puede crear una expresión que combine el nombre de
usuario y el número de teléfono y luego mostrar esta información en la aplicación.
En este tema se muestra cómo agregar Usuarios de Office 365 como una conexión y como un origen de datos a
su aplicación y cómo utilizar datos de tabla en un control de la galería.

Requisitos previos
Tener acceso a PowerApps
Agregar la conexión
Crear una aplicación con una plantilla, utilizando datos, o partiendo de cero

Agregar una conexión


1. Agregue una conexión de datos y seleccione Usuarios de Office 365:

2. Seleccione Connect (Conectar) y, si se pide que inicie sesión, escriba su cuenta profesional.
La conexión de Usuarios de Office 365 se ha creado y agregado a la aplicación. Ahora, está lista para utilizarse.
Uso de la conexión en la aplicación
Mostrar información sobre el usuario actual
1. En el menú Insertar, seleccione Etiqueta.
2. En la barra de funciones, establezca su propiedad Text en cualquiera de las siguientes fórmulas:
Office365Users.MyProfile().City
Office365Users.MyProfile().CompanyName
Office365Users.MyProfile().Country
Office365Users.MyProfile().Department
Office365Users.MyProfile().DisplayName
Office365Users.MyProfile().GivenName
Office365Users.MyProfile().Id
Office365Users.MyProfile().JobTitle
Office365Users.MyProfile().Mail
Office365Users.MyProfile().MailNickname
Office365Users.MyProfile().mobilePhone
Office365Users.MyProfile().OfficeLocation
Office365Users.MyProfile().PostalCode
Office365Users.MyProfile().Surname
Office365Users.MyProfile().TelephoneNumber
Office365Users.MyProfile().UserPrincipalName
Office365Users.MyProfile().AccountEnabled
Office365Users.MyProfile().BusinessPhones

La etiqueta muestra la información que ha especificado sobre el usuario actual.


Mostrar información sobre otro usuario
1. En el menú Insert (Insertar), seleccione Text (Texto) y luego seleccione Text input (Entrada de texto).
Cambie su nombre por InfoAbout:

2. En InfoAbout, escriba o pegue una dirección de correo electrónico de un usuario de su organización. Por
ejemplo, escriba yourName@yourCompany.com.
3. Agregue una etiqueta (menú Insertar) y establezca su propiedad Texto en alguna de las siguientes
fórmulas:
Para mostrar información sobre otro usuario:
Office365Users.UserProfile(InfoAbout.Text).City
Office365Users.UserProfile(InfoAbout.Text).CompanyName
Office365Users.UserProfile(InfoAbout.Text).Country
Office365Users.UserProfile(InfoAbout.Text).Department
Office365Users.UserProfile(InfoAbout.Text).DisplayName
Office365Users.UserProfile(InfoAbout.Text).GivenName
Office365Users.UserProfile(InfoAbout.Text).Id
Office365Users.UserProfile(InfoAbout.Text).JobTitle
Office365Users.UserProfile(InfoAbout.Text).Mail
Office365Users.UserProfile(InfoAbout.Text).MailNickname
Office365Users.UserProfile(InfoAbout.Text).mobilePhone
Office365Users.UserProfile(InfoAbout.Text).OfficeLocation
Office365Users.UserProfile(InfoAbout.Text).PostalCode
Office365Users.UserProfile(InfoAbout.Text).Surname
Office365Users.UserProfile(InfoAbout.Text).TelephoneNumber
Office365Users.UserProfile(InfoAbout.Text).UserPrincipalName
Office365Users.UserProfile(InfoAbout.Text).AccountEnabled
Office365Users.UserProfile(InfoAbout.Text).BusinessPhones

Para mostrar información sobre el administrador de otro usuario:


Office365Users.Manager(InfoAbout.Text).City
Office365Users.Manager(InfoAbout.Text).CompanyName
Office365Users.Manager(InfoAbout.Text).Country
Office365Users.Manager(InfoAbout.Text).Department
Office365Users.Manager(InfoAbout.Text).DisplayName
Office365Users.Manager(InfoAbout.Text).GivenName
Office365Users.Manager(InfoAbout.Text).Id
Office365Users.Manager(InfoAbout.Text).JobTitle
Office365Users.Manager(InfoAbout.Text).Mail
Office365Users.Manager(InfoAbout.Text).MailNickname
Office365Users.Manager(InfoAbout.Text).mobilePhone
Office365Users.Manager(InfoAbout.Text).OfficeLocation
Office365Users.Manager(InfoAbout.Text).PostalCode
Office365Users.Manager(InfoAbout.Text).Surname
Office365Users.Manager(InfoAbout.Text).TelephoneNumber
Office365Users.Manager(InfoAbout.Text).UserPrincipalName
Office365Users.Manager(InfoAbout.Text).AccountEnabled
Office365Users.Manager(InfoAbout.Text).BusinessPhones

La etiqueta muestra la información que ha escrito sobre el usuario especificado o sobre el administrador de ese
usuario.

NOTE
Si va a desarrollar una aplicación basada en una entidad en Common Data Service, puede especificar un usuario basado en
el id. en lugar de la dirección de correo electrónico.

Por ejemplo, puede crear una aplicación automáticamente, agregar una pantalla que contenga un control
Etiqueta y establecer la propiedad Texto del control en esta fórmula:
Office365Users.UserProfile(BrowseGallery1.Selected.CreatedByUser).DisplayName
Si crea un contacto y lo selecciona en la pantalla de exploración de la aplicación, el control Etiqueta mostrará su
nombre para mostrar.
Mostrar los subordinados directos de otro usuario
1. Agregue un control Entrada de texto (menú Insert [Insertar] > Text [Texto]) y cambie su nombre por
InfoAbout.
2. En InfoAbout, escriba la dirección de correo electrónico de un usuario de su organización. Por ejemplo,
escriba yourManagersName@yourCompany.com.
3. Agregue una galería With text (Con texto) (menú Insert [Insertar] > Gallery [Galería]) y establezca su
propiedad Items en la siguiente fórmula:
Office365Users.DirectReports(InfoAbout.Text)

La galería muestra información sobre los subordinados directos del usuario especificado.
Con la galería seleccionada, el panel derecho muestra opciones para esa galería.
4. En la segunda lista, seleccione JobTitle. En la tercera lista, seleccione DisplayName. La galería se
actualiza para mostrar estos valores.

NOTE
El primer cuadro es en realidad un control de imagen. Si no tiene ninguna imagen, puede eliminar el control de imagen y
agregar una etiqueta en su lugar. Agregar y configurar controles es un buen recurso.

Búsqueda de usuarios
1. Agregue un control Entrada de texto (menú Insert [Insertar] > Text [Texto]) y cambie su nombre por
SearchTerm. Escriba un nombre para buscar. Por ejemplo, escriba su nombre.
2. Agregue una galería With text (Con texto) (menú Insert [Insertar] > Gallery [Galería]) y establezca su
propiedad Items en la siguiente fórmula:
Office365Users.SearchUser({searchTerm: SearchTerm.Text})

La galería muestra los usuarios cuyo nombre contiene el texto de búsqueda que ha escrito.
Con la galería seleccionada, el panel derecho muestra opciones para esa galería.
3. En la segunda lista, seleccione Mail. En la tercera lista, seleccione DisplayName.
La segunda y tercera etiqueta de la galería se actualizan.

Visualización de las funciones disponibles


Esta conexión incluye las siguientes funciones:

NOMBRE DE LA FUNCIÓN DESCRIPCIÓN

DirectReports Devuelve los subordinados directos del usuario especificado.

Manager Recupera el perfil de usuario para el administrador del


usuario especificado.

MyProfile Recupera el perfil del usuario actual.

SearchUser Recupera los resultados de búsqueda de los perfiles de


usuario.

UserProfile Recupera un perfil de usuario específico.

MyProfile
Obtener mi perfil: Recupera el perfil del usuario actual.
Propiedades de entrada
Ninguna
Propiedades de salida

NOMBRE DE LA PROPIEDAD TIPO DESCRIPCIÓN

Ciudad string Ciudad del usuario.

Compañía string Empresa del usuario.

Pais string País del usuario.

Departamento string Departamento de usuarios.

DisplayName string Nombre para mostrar del usuario.

GivenName string Nombre dado del usuario.

Identificador string Identificador de usuario.

JobTitle string Puesto del usuario.

Correo string Id. de correo electrónico del usuario.

MailNickname string Alias del usuario.

mobilePhone string Teléfono móvil del usuario.

OfficeLocation string Ubicación de la oficina del usuario.

CódPostal string Código postal del usuario.

Apellido string Apellido del usuario.

TelephoneNumber string Número de teléfono del usuario.

UserPrincipalName string Nombre principal de usuario.

AccountEnabled boolean Marca de cuenta habilitada.

BusinessPhones string Números de teléfono de la empresa del


usuario.

UserProfile
Obtener Perfil de usuario: Recupera un perfil de usuario específico.
Propiedades de entrada

NOMBRE TIPO DE DATOS REQUERIDO DESCRIPCIÓN

Identificador string yes Nombre principal de usuario


o identificador de correo
electrónico.

Propiedades de salida
NOMBRE DE LA PROPIEDAD TIPO DESCRIPCIÓN

Ciudad string Ciudad del usuario.

Compañía string Empresa del usuario.

Pais string País del usuario.

Departamento string Departamento de usuarios.

DisplayName string Nombre para mostrar del usuario.

GivenName string Nombre dado del usuario.

Identificador string Identificador de usuario.

JobTitle string Puesto del usuario.

Correo string Id. de correo electrónico del usuario.

MailNickname string Alias del usuario.

Apellido string Apellido del usuario.

TelephoneNumber string Número de teléfono del usuario.

UserPrincipalName string Nombre principal de usuario.

AccountEnabled boolean Marca de cuenta habilitada.

BusinessPhones string Números de teléfono de la empresa del


usuario.

Manager
Obtener administrador: Recupera el perfil de usuario para el administrador del usuario especificado.
Propiedades de entrada

NOMBRE TIPO DE DATOS REQUERIDO DESCRIPCIÓN

Identificador string yes Nombre principal de usuario


o identificador de correo
electrónico.

Propiedades de salida

NOMBRE DE LA PROPIEDAD TIPO DESCRIPCIÓN

Ciudad string Ciudad del usuario.

Compañía string Empresa del usuario.

Pais string País del usuario.


NOMBRE DE LA PROPIEDAD TIPO DESCRIPCIÓN

Departamento string Departamento de usuarios.

DisplayName string Nombre para mostrar del usuario.

GivenName string Nombre dado del usuario.

Identificador string Identificador de usuario.

JobTitle string Puesto del usuario.

Correo string Id. de correo electrónico del usuario.

MailNickname string Alias del usuario.

mobilePhone string Teléfono móvil del usuario.

OfficeLocation string Ubicación de la oficina del usuario.

CódPostal string Código postal del usuario.

Apellido string Apellido del usuario.

TelephoneNumber string Número de teléfono del usuario.

UserPrincipalName string Nombre principal de usuario.

AccountEnabled boolean Marca de cuenta habilitada.

BusinessPhones string Números de teléfono de la empresa del


usuario.

DirectReports
Obtener informes directos: Obtener informes directos.
Propiedades de entrada

NOMBRE TIPO DE DATOS REQUERIDO DESCRIPCIÓN

Identificador string yes Nombre principal de usuario


o identificador de correo
electrónico.

Propiedades de salida

NOMBRE DE LA PROPIEDAD TIPO DESCRIPCIÓN

Ciudad string Ciudad del usuario.

Compañía string Empresa del usuario.

Pais string País del usuario.


NOMBRE DE LA PROPIEDAD TIPO DESCRIPCIÓN

Departamento string Departamento de usuarios.

DisplayName string Nombre para mostrar del usuario.

GivenName string Nombre dado del usuario.

Identificador string Identificador de usuario.

JobTitle string Puesto del usuario.

Correo string Id. de correo electrónico del usuario.

MailNickname string Alias del usuario.

mobilePhone string Teléfono móvil del usuario.

OfficeLocation string Ubicación de la oficina del usuario.

CódPostal string Código postal del usuario.

Apellido string Apellido del usuario.

TelephoneNumber string Número de teléfono del usuario.

UserPrincipalName string Nombre principal de usuario.

AccountEnabled boolean Marca de cuenta habilitada.

BusinessPhones string Números de teléfono de la empresa del


usuario.

SearchUser
Buscar usuarios: Recupera los resultados de búsqueda de los perfiles de usuario.
Propiedades de entrada

NOMBRE TIPO DE DATOS REQUERIDO DESCRIPCIÓN

searchTerm string no Cadena de búsqueda. Se


aplica a: nombre para
mostrar, nombre dado,
apellidos, correo,
sobrenombre de correo y
nombre principal del
usuario.

Propiedades de salida

NOMBRE DE LA PROPIEDAD TIPO DESCRIPCIÓN

Ciudad string Ciudad del usuario.

Compañía string Empresa del usuario.


NOMBRE DE LA PROPIEDAD TIPO DESCRIPCIÓN

Pais string País del usuario.

Departamento string Departamento de usuarios.

DisplayName string Nombre para mostrar del usuario.

GivenName string Nombre dado del usuario.

Identificador string Identificador de usuario.

JobTitle string Puesto del usuario.

Correo string Id. de correo electrónico del usuario.

MailNickname string Alias del usuario.

mobilePhone string Teléfono móvil del usuario.

OfficeLocation string Ubicación de la oficina del usuario.

CódPostal string Código postal del usuario.

Apellido string Apellido del usuario.

TelephoneNumber string Número de teléfono del usuario.

UserPrincipalName string Nombre principal de usuario.

AccountEnabled boolean Marca de cuenta habilitada.

BusinessPhones string Números de teléfono de la empresa del


usuario.

Vínculos útiles
Consulte todas las conexiones disponibles.
Aprenda a agregar conexiones a sus aplicaciones.
Conectarse a una instancia de Oracle Database
desde PowerApps
09/11/2019 • 6 minutes to read

Enumere tablas y cree, lea, actualice y elimine filas de una tabla en una instancia de Oracle Database después de
crear una conexión y compilar una aplicación en PowerApps. La conexión de Oracle Database admite la delegación
completa del filtrado, ordenación y otras funciones, pero no los desencadenadores ni los procedimientos
almacenados.

Requisitos previos
Oracle 9 y versiones posteriores
Software cliente de Oracle 8.1.7 y versiones posteriores
Instalación de una puerta de enlace de datos local
Instalación del SDK de cliente de Oracle
Instalar una puerta de enlace de datos local
Para instalar una puerta de enlace, siga los pasos de este tutorial.
Una puerta de enlace de datos local actúa como un puente, proporcionando una transferencia de datos rápida y
segura entre los datos locales (datos que no están en la nube) y los servicios Power BI, Power Automatic, Logic
Apps y PowerApps. Puede usar la misma puerta de enlace con varios servicios y orígenes de datos. Para más
información, consulte Puertas de enlace.
Instalar el cliente de Oracle
En el mismo equipo que la puerta de enlace de datos local, instale 64-bit ODAC 12c Release 4 (12.1.0.2.4) for
Windows x64. De lo contrario, aparecerá un error si intenta crear o usar la conexión, como se describe en la lista de
problemas conocidos.

Crear una aplicación desde una tabla de una instancia de Oracle


Database
1. En PowerApps Studio, pulse o haga clic en Nuevo en el menú Archivo (cerca del borde izquierdo).

2. En Comenzar con los datos, haga clic o pulse la flecha.


Aparece una lista de conexiones que ya tiene.
3. Pulse o haga clic en Nueva conexión.
4. En la lista de conexiones, haga clic o pulse en Oracle Database.

5. Especifique el nombre de un servidor de Oracle, un nombre de usuario y una contraseña.


Especifique un servidor en este formato si se requiere un SID:
NombreServidor/SID

6. Pulse o haga clic en la puerta de enlace que desea usar o instale una.
Si la puerta de enlace no aparece después de instalarla, haga clic en Actualizar lista de puertas de enlace.

7. Pulse o haga clic en Crear para crear la conexión.


8. Haga clic o pulse en el conjunto de datos predeterminado.

9. En la lista de tablas, haga clic o pulse en la tabla que desea utilizar.

10. Haga clic en Conectar para crear la aplicación.

PowerApps crea una aplicación que tiene tres pantallas y muestra los datos de la tabla que ha seleccionado:
BrowseScreen1, que enumera todas las entradas de la tabla.
DetailScreen1, que proporciona más información acerca de una sola entrada.
EditScreen1, en la que los usuarios pueden actualizar o crear una entrada.
Pasos siguientes
Para guardar la aplicación que acaba de generar, presione Ctrl-S.
Para personalizar la pantalla BrowseScreen1 (que aparece de forma predeterminada), consulte Personalizar un
diseño.
Para personalizar DetailsScreen1 o EditScreen1, consulte Personalizar un formulario.

Problemas conocidos, sugerencias y solución de problemas


1. No se puede acceder a la puerta de enlace.
Este error aparece si la puerta de enlace de datos local no se puede conectar a la nube. Para comprobar el
estado de la puerta de enlace, inicie sesión en powerapps.microsoft.com, haga clic o pulse en Puertas de
enlacey, a continuación, haga clic o pulse en la puerta de enlace que desea utilizar.
Asegúrese de que la puerta de enlace se está ejecutando y puede conectarse a Internet. Evite la instalación
de la puerta de enlace en un equipo que pueda estar apagado o suspendido. Intente también reiniciar el
servicio de puerta de enlace de datos local (PBIEgwService).
2. System.Data.OracleClient requiere la versión 8.1.7 o posterior del software cliente de Oracle.
Este error aparece si el SDK de cliente de Oracle no está instalado en el mismo equipo que la puerta de
enlace de datos local. Para resolver este problema, instale el proveedor oficial.
3. La tabla '[Tablename]' no define ninguna columna de clave.
Este error aparece si se está conectando a una tabla que no tiene una clave principal que necesita la
conexión de Oracle Database.
4. En el momento de escribir este artículo, no se admiten los procedimientos almacenados, las tablas con
claves compuestas ni los tipos de objeto anidados en tablas.
Conectar al Power BI desde PowerApps
05/11/2019 • 5 minutes to read

Power BI es un conjunto de herramientas de análisis de negocios destinado a analizar datos y compartir


información. Supervise su negocio y obtenga respuestas rápidamente con paneles muy completos disponibles en
todos los dispositivos. En su aplicación, puede comprobar el estado de las alertas de datos que ha configurado en
el servicio Power BI. Para más información sobre las alertas de datos en Power BI, vaya a la página de
documentación.
En este tema se muestra cómo utilizar la conexión de Power BI en una aplicación y se enumeran las funciones
disponibles.

Requisitos previos
Registrarse
Agregar la conexión de Power BI
Crear una aplicación a partir de una plantilla, de datos o desde el principio

Uso de la conexión de Power BI en la aplicación


Enumerar las alertas que ha configurado en el servicio Power BI
1. En el menú Insert (Insertar), seleccione Gallery (Galería) y agregue algunas de las galerías de texto.
2. Para mostrar las alertas del usuario actual, establezca la propiedad Items de la galería en la siguiente
fórmula:
PowerBI.GetAlerts()

La galería se actualizará con la lista de alertas. Para cada alerta, recibirá su nombre, número identificador e id. del
espacio de trabajo del grupo en el que se configuró la alerta. Necesitará el id. de la alerta para obtener más
información sobre ella.
Visualización del estado de una alerta
Para ver el estado de la alerta, llame a la función CheckAlertStatus con el id. de alerta obtenido en el paso anterior.
El identificador de la alerta se puede pasar como una cadena literal (por ejemplo, "1234") o como una referencia a
una sección de la galería que se rellena mediante la llamada GetAlerts () (por ejemplo, Gallery1. Selected. alertId)
Para continuar, agregue una etiqueta y establezca su propiedad Texto en una de estas fórmulas:
PowerBI.CheckAlertStatus( /* alert ID that you received from GetAlert */ ).alertTitle
PowerBI.CheckAlertStatus( /* alert ID that you received from GetAlert */ ).currentTileValue
PowerBI.CheckAlertStatus( /* alert ID that you received from GetAlert */ ).alertThreshold
PowerBI.CheckAlertStatus( /* alert ID that you received from GetAlert */ ).isAlertTriggered

La etiqueta se actualizará con el estado actual de la alerta.


Visualización de las funciones disponibles
Esta conexión incluye las siguientes funciones:

NOMBRE DE LA FUNCIÓN DESCRIPCIÓN

GetAlerts Muestra las alertas que ha configurado en el servicio Power


BI.

CheckAlertStatus Comprueba el estado de una alerta determinada.

GetAlerts
Muestra las alertas que ha configurado en el servicio Power BI.
Propiedades de entrada
Ninguna
Propiedades de salida

NOMBRE DE LA PROPIEDAD TIPO DE DATOS REQUERIDO DESCRIPCIÓN

value array No Una matriz de las alertas de


datos que ha configurado en
el servicio Power BI. Cada
elemento de la matriz
incluirá:
alertTitle: el título de
la alerta.
alertId: el id. de la
alerta.
groupId: el id. del
grupo en el que se
creó la alerta.

CheckAlertStatus
Comprueba el estado de una alerta.

NOTE
Las solicitudes que se realicen a este punto de conexión se limitarán por alerta si se llama con demasiada frecuencia.

Propiedades de entrada

NOMBRE DE LA PROPIEDAD TIPO DE DATOS REQUERIDO DESCRIPCIÓN

alertId integer Sí El id. de la alerta que


devuelve GetAlerts.

Propiedades de salida

NOMBRE DE LA PROPIEDAD TIPO DE DATOS REQUERIDO DESCRIPCIÓN

tileValue number No El valor del icono cuando se


desencadenó la alerta.
NOMBRE DE LA PROPIEDAD TIPO DE DATOS REQUERIDO DESCRIPCIÓN

tileUrl string No Dirección URL del icono con


la alerta.

alertTitle string No Nombre de la alerta.

isAlertTriggered boolean No Si la alerta se desencadenó


ahora.

alertThreshold number No El umbral en el que se


desencadenó la alarma.

Vínculos útiles
Consulte todas las conexiones disponibles.
Aprenda a agregar conexiones a sus aplicaciones.
Conectarse a SharePoint desde una aplicación de
lienzo
05/11/2019 • 13 minutes to read

Conéctese a un sitio de SharePoint para generar una aplicación automáticamente a partir de una lista
personalizada o cree una conexión antes de agregar datos a una aplicación existente o de crear una aplicación
desde cero.
Dependiendo de dónde residan los datos, puede realizar uno de estos métodos o ambos:
Mostrar datos de una lista personalizada en un sitio de SharePoint Online o en un sitio local.
Mostrar imágenes y reproducir archivos de vídeo o audio en una biblioteca (solo SharePoint Online).

Generar una aplicación


Si desea administrar los datos en una lista personalizada, PowerApps puede generar una aplicación de tres
pantallas automáticamente. Los usuarios pueden examinar la lista en la primera pantalla, mostrar los detalles de
un elemento en la segunda pantalla y crear o actualizar elementos en la tercera pantalla.

NOTE
Si la lista de SharePoint contiene una columna de elección, búsqueda, o persona o grupo , vea Mostrar datos en una
galería más adelante en este tema.

Crear una conexión


1. Inicie sesión en PowerApps, seleccione datos > conexiones en la barra de navegación izquierda y, a
continuación, seleccione nueva conexión cerca de la esquina superior izquierda.
2. En el cuadro de búsqueda situado cerca de la esquina superior derecha, escriba o pegue SharePointy, a
continuación, seleccione SharePoint.

3. Realice cualquiera de estos conjuntos de pasos:


Para conectarse a SharePoint Online, seleccione conectar directamente (Cloud Services) ,
seleccione creary, a continuación, proporcione las credenciales (si se le solicita).

Se crea la conexión y puede agregar datos a una aplicación existente o crear una aplicación desde
cero.
Para conectarse a un sitio local, seleccione conectar con la puerta de enlace de datos local.
Especifique Windows como tipo de autenticación y, después, especifique sus credenciales. (Si las
credenciales incluyen un nombre de dominio, especifíquelo como dominio\alias).

En elegir una puerta de enlace, seleccione la puerta de enlace que desea usar y, después,
seleccione crear.

NOTE
Si no tiene una puerta de enlace de datos local instalada, Instale unay, después, seleccione el icono para
actualizar la lista de puertas de enlace.

Se crea la conexión y puede agregar datos a una aplicación existente o crear una aplicación desde
cero.

Agregar datos a una aplicación existente


1. En PowerApps Studio, abra la aplicación que quiere actualizar, seleccione la pestaña vista y, a continuación,
seleccione orígenes de datos.

2. En el panel datos , seleccione Agregar origen de datos > SharePoint.


3. En conectar a un sitio de SharePoint, seleccione una entrada en la lista sitios recientes (o escriba o
pegue la dirección URL del sitio que desea usar) y, a continuación, seleccione conectar.
de sitio
4. En elegir una lista, active la casilla de los documentos o una o más listas que desee usar y, a
continuación, seleccione conectar:

No todos los tipos de listas aparecen de forma predeterminada. PowerApps admite listas personalizadas,
no listas basadas en plantillas. Si el nombre de la lista que desea usar no aparece, desplácese hasta la parte
inferior y, a continuación, escriba el nombre de la lista en el cuadro que contiene el nombre de la tabla
personalizada.

El origen o los orígenes de datos se agregan a la aplicación.

Cree su propia aplicación desde cero


Aplique los conceptos de creación de una aplicación desde cero a SharePoint en lugar de Excel.

Mostrar columnas de lista en una galería


Si la lista personalizada contiene cualquiera de estos tipos de columnas, muestre los datos en un control Galería
mediante la barra de fórmulas para establecer la propiedad texto de uno o varios controles etiqueta de la
Galería:
Para una columna de elección o de búsqueda , especifique ThisItem. ColumnName . Valor para mostrar
los datos de esa columna.
Por ejemplo, especifique ThisItem.Location.Value si tiene una columna Opción denominada Ubicación
y especifique ThisItem.PostalCode.Value si tiene una columna Búsqueda denominada CódigoPostal.
Para una columna de persona o grupo , especifique ThisItem. ColumnName . DisplayName para
mostrar el nombre para mostrar del usuario o el grupo.
Por ejemplo, especifique ThisItem.Manager.DisplayName para mostrar los nombres de una columna
Persona o grupo denominada Administrador.
También puede mostrar información distinta acerca de los usuarios, como direcciones de correo electrónico
o puestos de trabajo. Para mostrar una lista completa de opciones, especifique ThisItem. ColumnName .
(incluido el punto final).

NOTE
En el caso de una columna CreatedBy , especifique ThisItem. Author. DisplayName para mostrar los nombres
para mostrar de los usuarios que han creado elementos en la lista. Para una columna ModifiedBy, especifique
ThisItem.Editor.DisplayName para mostrar los nombres de los usuarios que han modificado elementos en la lista.

Para una columna de metadatos administrados , especifique ThisItem. ColumnName . Etiqueta para
mostrar los datos de esa columna.
Por ejemplo, especifique ThisItem.Languages.Label si tiene una columna Metadatos administrados
denominada Idiomas.

Mostrar datos de una biblioteca


Si tiene varias imágenes en una biblioteca de SharePoint, puede Agregar un control de lista desplegable a la
aplicación para que los usuarios puedan especificar la imagen que se va a mostrar. También puede aplicar los
mismos principios a otros controles, como los controles de la Galería y otros tipos de datos, como los vídeos.
1. Si aún no lo ha hecho, cree una conexióny, a continuación, agregue los datos a una aplicación existente.
2. Agregue un control lista desplegable y asígnele el nombre ImageList.
3. Establezca la propiedad Items de ImageList en Documents.
4. En la pestaña propiedades del panel derecho, abra la lista de valores y, a continuación, seleccione
nombre.
Los nombres de archivo de las imágenes de la biblioteca aparecen en ImageList.

5. Agregue un control imagen y establezca su propiedad imagen en esta expresión:


ImageList.Selected.'Link to item'

6. Presione F5 y, a continuación, seleccione un valor diferente en ImageList.


Aparece la imagen que ha especificado.
Puede descargar una aplicación de ejemplo que muestra un enfoque más complejo para mostrar los datos de una
biblioteca de SharePoint.
1. Después de descargar la aplicación, Abra PowerApps Studio, seleccione abrir en la barra de navegación
izquierda y, a continuación, seleccione examinar.
2. En el cuadro de diálogo abrir , busque y abra el archivo que ha descargado y, a continuación, agregue una
biblioteca de SharePoint como origen de datos siguiendo los dos primeros procedimientos de este tema.

NOTE
De forma predeterminada, esta aplicación muestra las advertencias de delegación, pero puede omitirlas si la biblioteca
contiene menos de 500 elementos.

En esta aplicación de una pantalla, la lista de la esquina inferior izquierda muestra todos los archivos de la
biblioteca.
Puede buscar un archivo escribiendo o pegando uno o más caracteres en el cuadro de búsqueda cerca de la
parte superior.
Si la biblioteca contiene carpetas, puede filtrar la lista de archivos; para ello, seleccione un icono de filtro en la
lista de carpetas situada justo debajo de la barra de título.
Cuando encuentre el archivo que desea, selecciónelo para mostrarlo en el control de vídeo, imageno audio a lo
largo del lado derecho.

Problemas conocidos
Coge
PowerApps puede leer nombres de columna que contienen espacios, pero los espacios se sustituyen por el código
de escape hexadecimal "_x0020_" . Por ejemplo, el "Nombre de columna" en SharePoint aparecerá como
"Nombre_x0020_de_columna" en PowerApps cuando se muestre en el diseño de datos o se use en una
fórmula.
No se admiten todos los tipos de columnas y no todos los tipos de columnas admiten todos los tipos de tarjetas.

TIPO DE COLUMNA SOPORTE TÉCNICO TAR JETAS PREDETERMINADAS

Una línea de texto Sí Ver texto

Varias líneas de texto Sí Ver texto

Opción Sí Ver búsqueda


Editar consulta
Ver la selección múltiple
Editar selección múltiple

Número Sí Ver porcentaje


Ver clasificación
Ver texto

Divisa Sí Ver porcentaje


Ver clasificación
Ver texto

Fecha y hora Sí Ver texto

Búsqueda Sí Ver búsqueda


Editar consulta
Ver la selección múltiple
Editar selección múltiple

Booleano (Sí/No) Sí Ver texto


Alternar vista

Persona o grupo Sí Ver búsqueda


Editar consulta
Ver la selección múltiple
Editar selección múltiple

Hipervínculo Sí Ver URL


Ver texto

Imagen Sí (solo lectura) Ver imagen


Ver texto

Datos adjuntos Sí (solo lectura) Ver los datos adjuntos

Calculado Sí (solo lectura)

Resultado de la tarea No

Datos externos No

Metadatos administrados Sí (solo lectura)


TIPO DE COLUMNA SOPORTE TÉCNICO TAR JETAS PREDETERMINADAS

Clasificación No

Libre
No se pueden cargar archivos desde PowerApps a una biblioteca.
No se pueden mostrar archivos PDF de una biblioteca en un control de PDF Viewer.
PowerApps Mobile no es compatible con la función de descarga .
Si los usuarios van a ejecutar la aplicación en PowerApps Mobile o en la aplicación de Windows 10, use la
función Launch para mostrar el contenido de la biblioteca en una galería.

Pasos siguientes
Más información sobre cómo mostrar datos a partir de un origen de datos.
Más información sobre cómo ver detalles y crear o actualizar registros.
Consulte otros tipos de orígenes de datos a los que se puede conectar.
Conexión a SQL Server desde PowerApps
05/11/2019 • 10 minutes to read

Conéctese a SQL Server, bien en Azure o en una base de datos local, para poder mostrar la información del
servidor en PowerApps.

Requisitos previos
Regístrese en PowerApps y, luego, inicie sesión con las mismas credenciales que usó para registrase.
Recopile la siguiente información para una base de datos que contenga al menos una tabla con una clave
principal:
el nombre de la base de datos
el nombre del servidor donde se aloja la base de datos
un nombre de usuario válido y una contraseña para conectarse a la base de datos
el tipo de autenticación necesaria para conectarse a la base de datos
Si no tiene esta información, solicítela al administrador de la base de datos que desea usar.
Para una base de datos local, identifique una puerta de enlace de datos que se haya compartido con usted
(o cree una).

NOTE
Las puertas de enlace y las conexiones locales solo se pueden crear y usar en el entorno predeterminado del usuario.

Generar una aplicación automáticamente


1. En PowerApps Studio, pulse o haga clic en Nuevo en el menú Archivo (en el borde izquierdo).

2. En Comenzar con los datos, pulse o haga clic en la flecha derecha al final de la fila de conectores.
3. Si ya tiene una conexión a la base de datos que desea usar, pulse o haga clic en ella y, después, vaya al paso
7 de este procedimiento.
4. Pulse o haga clic en Nueva conexión y, después, pulse o haga clic en SQL Server.
5. Realice uno de estos pasos:
Especifique Conectar directamente (servicios en la nube) y, después, escriba o pegue el nombre
del servidor, el nombre de la base de datos, el nombre de usuario y la contraseña de la base de datos
que desea usar.

Especifique Conectar mediante una puerta de enlace de datos local, escriba o pegue el nombre
del servidor, el nombre de la base de datos, el nombre de usuario y la contraseña de la base de datos
que desea usar, y especifique el tipo de autenticación y la puerta de enlace.
NOTE
Si no tiene una puerta de enlace, instálelay, después, haga clic o pulse Actualizar lista de puertas de
enlace.

6. Pulse o haga clic en Conectar.


7. Pulse o haga clic en una opción en Elegir un conjunto de datos, pulse o haga clic en una opción en
Elegir una tabla y, después, pulse o haga clic en Conectar.
PowerApps crea una aplicación que muestra los datos en tres pantallas. La heurística sugiere el tipo de
datos que se van a mostrar, pero tendrá que personalizar la interfaz de usuario para adecuarla a sus
necesidades.
8. Personalice la aplicación mediante el uso de técnicas que son similares a las que se describe en Create an
app from Excel (Creación de una aplicación de Excel), a partir de cambiar el diseño de la aplicación.

Crear una aplicación desde cero


1. Inicie sesión en powerapps.com con la misma cuenta que usó para suscribirse a PowerApps.
2. En la barra de navegación izquierda, pulse o haga clic en Conexiones:
3. Cerca de la esquina superior derecha, pulse o haga clic en Nueva conexión y, después, pulse o haga clic
en SQL Server.
4. Realice uno de estos pasos:
Especifique Conectar directamente (servicios en la nube) y, después, escriba o pegue el nombre
del servidor, el nombre de la base de datos, el nombre de usuario y la contraseña de la base de datos
que desea usar.

Especifique Conectar mediante una puerta de enlace de datos local, escriba o pegue el nombre
del servidor, el nombre de la base de datos, el nombre de usuario y la contraseña de la base de datos
que desea usar, y especifique el tipo de autenticación y la puerta de enlace.

NOTE
Si no tiene una puerta de enlace, instálelay, después, haga clic o pulse el icono del reloj para actualizar la lista.

5. Pulse o haga clic en Crear para crear la conexión.


6. Cree una aplicación mediante técnicas que son similares a las que describen en Crear una aplicación desde
cero.
Actualizar una aplicación existente
1. En PowerApps Studio, abra la aplicación que desea actualizar.
2. Pulse o haga clic en Orígenes de datos en la pestaña Vista de la cinta de opciones.
3. En el panel de la derecha, pulse o haga clic en Agregar origen de datos.

4. Pulse o haga clic en Nueva conexión, pulse o haga clic en SQL Server y, finalmente, pulse o haga clic en
Conectar.
5. Realice uno de estos pasos:
Especifique Conectar directamente (servicios en la nube) y, después, escriba o pegue el nombre
del servidor, el nombre de la base de datos, el nombre de usuario y la contraseña de la base de datos
que desea usar.

Especifique Conectar mediante una puerta de enlace de datos local, escriba o pegue el nombre
del servidor, el nombre de la base de datos, el nombre de usuario y la contraseña de la base de datos
que desea usar, y especifique el tipo de autenticación y la puerta de enlace.
NOTE
Si no tiene una puerta de enlace, instálelay, después, haga clic o pulse el icono circular para actualizar la lista.

6. Pulse o haga clic en Conectar.


7. En Elegir un conjunto de datos, pulse o haga clic en opción.
8. En Elegir una tabla, seleccione una o varias casillas y, después, pulse o haga clic en Conectar.

Pasos siguientes
Más información sobre cómo mostrar datos a partir de un origen de datos.
Más información sobre cómo ver detalles y crear o actualizar registros.
Consulte otros tipos de orígenes de datos a los que se puede conectar.
Comprenda las tablas y los registros con orígenes de datos tabulares.
Conectar al Twitter desde PowerApps
12/11/2019 • 19 minutes to read

Twitter le permite enviar tweets y obtener tweets, cronologías, amigos y seguidores desde su cuenta de Twitter.
Puede mostrar esta información en una etiqueta en la aplicación. Por ejemplo, puede agregar un cuadro de texto
de entrada, pedir al usuario que escriba en algún tweet y, después, agregar un botón que "publique" el tweet.
Puede usar métodos similares para obtener o buscar un tweet y mostrar el texto de un control en un control de
galería o etiqueta en la aplicación.
En este tema se muestra cómo utilizar la conexión de Twitter, cómo usar la conexión de Twitter en una aplicación y
cómo enumerar las funciones disponibles.

Requisitos previos
Tener acceso a PowerApps
Agregar la conexión
Crear una aplicación con una plantilla, utilizando datos, o partiendo de cero

Conexión a Twitter
1. Abra PowerApps, seleccione Nuevo y cree una aplicación vacía. Elija el diseño de teléfono o tableta. El
diseño de tableta le ofrece más área de trabajo:

2. En el panel derecho, pulse o haga clic en la pestaña Datos y, después, en Agregar origen de datos.
3. Seleccione Conexión nueva y, después, Twitter:
4. Seleccione Conectar, escriba sus credenciales de inicio de sesión de Twitter y seleccione Autorizar
aplicación.
5. Seleccione Agregar origen de datos. La conexión aparecerá bajo Orígenes de datos:

La conexión de Twitter se ha creado y se ha agregado a la aplicación. Ahora, está lista para utilizarse.

Usar la conexión de Twitter en la aplicación


Mostrar una cronología
1. En el menú Insertar, seleccione Galería y agregue cualquiera de las galerías con texto.
2. Vamos a mostrar algunas cronologías:
Para mostrar la cronología del usuario actual, establezca la propiedad Elementos de la galería en las
fórmulas siguientes:
Twitter.HomeTimeline().TweetText
Twitter.HomeTimeline({maxResults:3}).TweetText

Para mostrar la cronología de otro usuario, establezca la propiedad Elementos de la galería en las
fórmulas siguientes:
Twitter.UserTimeline( *TwitterHandle* ).TweetText

Introduzca un identificador de Twitter con dobles comillas o un valor equivalente. Por ejemplo,
escriba "satyanadella" o "powerapps" directamente en la expresión de la fórmula.
Agregue un control de entrada de texto denominado Tweep y establezca su propiedad
predeterminada en Tweep.Text . En el cuadro de texto Tweep, escriba un identificador de Twitter
como satyanadella (sin las comillas y sin el símbolo @).
En el control de galería, establezca la propiedad Elementos en la fórmula siguiente:
Twitter.UserTimeline(Tweep.Text; {maxResults:5}).TweetText

El control de galería muestra automáticamente los tweets del identificador de Twitter que ha escrito.

TIP
Algunas de estas fórmulas utilizan el argumento maxResults para mostrar el número x de tweets más
recientes en una escala de tiempo.

3. Establezca la propiedad Elementos de la galería en Twitter.HomeTimeline() .


Con la galería seleccionada, el panel derecho muestra opciones para esa galería.
4. Seleccione TweetText en la primera lista, seleccione TweetedBy en la segunda lista y seleccione
CreatedAt en la tercera lista.
La galería ahora muestra los valores de las propiedades que haya elegido.
Mostrar seguidores
1. Con una galería Con texto, vamos a mostrar algunos seguidores:
Para mostrar los seguidores del usuario actual, establezca la propiedad Elementos de la galería en la
siguiente fórmula:
Twitter.MyFollowers()
Twitter.MyFollowers({maxResults:3})

Para mostrar los seguidores de otro usuario, establezca la propiedad Elementos de la galería en la
siguiente fórmula:
Twitter.Followers( *TwitterHandle* )

Introduzca un identificador de Twitter con dobles comillas o un valor equivalente. Por ejemplo,
escriba "satyanadella" o "powerapps" directamente en la expresión de la fórmula.
Agregue un control de entrada de texto denominado Tweep y establezca su propiedad
predeterminada en Tweep.Text . En el cuadro de texto Tweep, escriba un identificador de Twitter
como satyanadella (sin las comillas y sin el símbolo @).
En el control de galería, establezca la propiedad Elementos en la fórmula siguiente:
Twitter.Followers(Tweep.Text; {maxResults:5})
El control de galería muestra automáticamente quién está siguiendo el identificador de Twitter que
ha escrito.

TIP
Algunas de estas fórmulas utilizan el argumento maxResults para mostrar el número x de tweets más
recientes en una escala de tiempo.

2. Establezca la propiedad Elementos de la galería en Twitter.MyFollowers() .


Con la galería seleccionada, el panel derecho muestra opciones para esa galería.
3. Seleccione NombreUsuario en la segunda lista y NombreCompleto en la tercera.
La galería ahora muestra los valores de las propiedades que haya elegido.
Mostrar usuarios seguidos
1. Con una galería Con texto, vamos a mostrar algunos usuarios seguidos:
Para mostrar los usuarios a los que está siguiendo el usuario actual, establezca la propiedad
Elementos de la galería en la siguiente fórmula:
Twitter.MyFollowing()
Twitter.MyFollowing({maxResults:3})

Para mostrar los usuarios que siguen a otro usuario, establezca la propiedad Items de la galería en la
siguiente fórmula:
Twitter.Following( *TwitterHandle* )

Introduzca un identificador de Twitter con dobles comillas o un valor equivalente. Por ejemplo,
escriba "satyanadella" o "powerapps" directamente en la expresión de la fórmula.
Agregue un control de entrada de texto denominado Tweep y establezca su propiedad
predeterminada en Tweep.Text . En el cuadro de texto Tweep, escriba un identificador de Twitter
como satyanadella (sin las comillas y sin el símbolo @).
En el control de galería, establezca la propiedad Elementos en la fórmula siguiente:
Twitter.Following(Tweep.Text; {maxResults:5})

El control de galería muestra automáticamente los otros identificadores que está siguiendo.
Con la galería seleccionada, el panel derecho muestra opciones para esa galería.
2. Seleccione Descripción en la lista Cuerpo1, NombreUsuario en la lista Título1 y NombreCompleto en
la lista Subtítulo1.
La galería ahora muestra los valores de las propiedades que haya elegido.
Mostrar información sobre un usuario
Agregue una etiqueta y luego establezca su propiedad Texto en una de estas fórmulas:
twitter.User( *TwitterHandle* ).Description
twitter.User( *TwitterHandle* ).FullName
twitter.User( *TwitterHandle* ).Location
twitter.User( *TwitterHandle* ).UserName
twitter.User( *TwitterHandle* ).FollowersCount
twitter.User( *TwitterHandle* ).FriendsCount
twitter.User( *TwitterHandle* ).Id
twitter.User( *TwitterHandle* ).StatusesCount

Introduzca un identificador de Twitter con dobles comillas o un valor equivalente. Por ejemplo, escriba
"satyanadella" o "powerapps" directamente en la expresión de la fórmula.

O bien, puede utilizar un control de texto de entrada para escribir un identificador de Twitter, tal y como se dispone
a lo largo de este tema.
Buscar tweets
1. Agregue una galería Con texto y establezca su propiedad Elementos en la siguiente fórmula:
Twitter.SearchTweet( *SearchTerm* ).TweetText

Escriba un término de búsqueda entre comillas dobles o haciendo referencia a un valor equivalente. Por
ejemplo, escriba "PowerApps" o "microsoft" directamente en la fórmula.
O bien, puede utilizar un control Entrada de texto para escribir un término de búsqueda, tal y como se
dispone a lo largo de este tema.

TIP
Muestre los cinco primeros resultados mediante maxResults:

Twitter.SearchTweet(SearchTerm.Text; {maxResults:5}).TweetText

2. Establezca la propiedad Elementos de la galería en Twitter.SearchTweet(SearchTerm.Text; {maxResults:5}) .


Con la galería seleccionada, el panel derecho muestra opciones para esa galería.
3. Seleccione TweetText en la primera lista, TweetedBy en la segunda lista y CreatedAt en la tercera lista.
La galería ahora muestra los valores de las propiedades que haya elegido.
Enviar un tweet
1. Agregue un control de entrada de texto y cambie su nombre a MyTweet.
2. Agregue un botón y establezca su propiedad AlSeleccionar en esta fórmula:
Twitter.Tweet({tweetText: MyTweet.Text})

3. Presione F5 o seleccione el botón Vista previa ( ). Escriba algún texto en MyTweet y seleccione el botón
para enviar en un tweet el texto que ha escrito.
4. Presione Esc para volver al área de trabajo predeterminada.

Visualización de las funciones disponibles


Esta conexión incluye las siguientes funciones:

NOMBRE DE LA FUNCIÓN DESCRIPCIÓN

UserTimeline Recupera una colección de los tweets más recientes enviados


por el usuario especificado.

HomeTimeline Recupera los tweets y retweets más recientes enviados por mí


y mis seguidores.
NOMBRE DE LA FUNCIÓN DESCRIPCIÓN

SearchTweet Recupera una colección de tweets pertinentes que coinciden


con una consulta especificada.

Seguidores Recupera los usuarios que siguen al usuario especificado.

MyFollowers Recupera los usuarios que me siguen.

Siguiendo Recupera los usuarios a los que está siguiendo el usuario


especificado.

Siguiendo Recupera los usuarios a los que estoy siguiendo.

Usuario Recupera los detalles sobre el usuario especificado (ejemplo:


nombre de usuario, descripción, número de seguidores, etc.).

Tweet El tweet

OnNewTweet Desencadena un flujo de trabajo cuando se envía un nuevo


tweet que coincide con la consulta de búsqueda.

UserTimeline
Obtener cronología del usuario: recupera una colección de los tweets más recientes enviados por el usuario
especificado.
Propiedades de entrada

NOMBRE TIPO DE DATOS REQUERIDO DESCRIPCIÓN

NombreUsuario string yes Identificador de Twitter

maxResults integer no Número máximo de tweets


que se van a recuperar, por
ejemplo, {maxResults:5}

Propiedades de salida

NOMBRE DE LA PROPIEDAD TIPO DE DATOS REQUERIDO DESCRIPCIÓN

TweetText string Sí

TweetId string No

CreatedAt string No

RetweetCount integer Sí

TweetedBy string Sí

MediaUrls array No

HomeTimeline
Obtener la cronología de inicio: recupera los tweets y retweets más recientes enviados por mí y mis seguidores.
Propiedades de entrada

NOMBRE TIPO DE DATOS REQUERIDO DESCRIPCIÓN

maxResults integer no Número máximo de tweets


que se van a recuperar, por
ejemplo, {maxResults:5}

Propiedades de salida

NOMBRE DE LA PROPIEDAD TIPO DE DATOS REQUERIDO DESCRIPCIÓN

TweetText string Sí

TweetId string No

CreatedAt string No

RetweetCount integer Sí

TweetedBy string Sí

MediaUrls array No

SearchTweet
Buscar tweet: recupera una colección de tweets pertinentes que coinciden con una consulta especificada.
Propiedades de entrada

NOMBRE TIPO DE DATOS REQUERIDO DESCRIPCIÓN

searchQuery string yes Texto de consulta (se puede


usar cualquiera de los
operadores de consulta
admitidos por Twitter:
https://www.twitter.com/sear
ch) )

maxResults integer no Número máximo de tweets


que se van a recuperar, por
ejemplo, {maxResults:5}

Propiedades de salida

NOMBRE DE LA PROPIEDAD TIPO DE DATOS REQUERIDO DESCRIPCIÓN

TweetText string Sí

TweetId string No

CreatedAt string No

RetweetCount integer Sí

TweetedBy string Sí
NOMBRE DE LA PROPIEDAD TIPO DE DATOS REQUERIDO DESCRIPCIÓN

MediaUrls array No

Seguidores
Obtener seguidores: recupera los usuarios que siguen al usuario especificado.
Propiedades de entrada

NOMBRE TIPO DE DATOS REQUERIDO DESCRIPCIÓN

NombreUsuario string yes Identificador de Twitter del


usuario

maxResults integer no Número máximo de usuarios


que se van a recuperar, por
ejemplo, {maxResults:5}

Propiedades de salida

NOMBRE DE LA PROPIEDAD TIPO DE DATOS REQUERIDO DESCRIPCIÓN

FullName string Sí

Location string Sí

Identificador integer No

NombreUsuario string Sí

FollowersCount integer No

Descripción string Sí

StatusesCount integer No

FriendsCount integer No

MyFollowers
Obtener mis seguidores: recupera los usuarios que me siguen.
Propiedades de entrada

NOMBRE TIPO DE DATOS REQUERIDO DESCRIPCIÓN

maxResults integer no Número máximo de usuarios


que se van a recuperar, por
ejemplo, {maxResults:5}

Propiedades de salida

NOMBRE DE LA PROPIEDAD TIPO DE DATOS REQUERIDO DESCRIPCIÓN

FullName string Sí

Location string Sí
NOMBRE DE LA PROPIEDAD TIPO DE DATOS REQUERIDO DESCRIPCIÓN

Identificador integer No

NombreUsuario string Sí

FollowersCount integer No

Descripción string Sí

StatusesCount integer No

FriendsCount integer No

Siguiendo
Obtener seguimiento: recupera los usuarios a los que está siguiendo el usuario especificado.
Propiedades de entrada

NOMBRE TIPO DE DATOS REQUERIDO DESCRIPCIÓN

NombreUsuario string yes Identificador de Twitter del


usuario

maxResults integer no Número máximo de usuarios


que se van a recuperar, por
ejemplo, {maxResults:5}

Propiedades de salida

NOMBRE DE LA PROPIEDAD TIPO DE DATOS REQUERIDO DESCRIPCIÓN

FullName string Sí

Location string Sí

Identificador integer No

NombreUsuario string Sí

FollowersCount integer No

Descripción string Sí

StatusesCount integer No

FriendsCount integer No

Siguiendo
Obtener mi seguimiento: recupera los usuarios a los que estoy siguiendo.
Propiedades de entrada
NOMBRE TIPO DE DATOS REQUERIDO DESCRIPCIÓN

maxResults integer no Número máximo de usuarios


que se van a recuperar, por
ejemplo, {maxResults:5}

Propiedades de salida

NOMBRE DE LA PROPIEDAD TIPO DE DATOS REQUERIDO DESCRIPCIÓN

FullName string Sí

Location string Sí

Identificador integer No

NombreUsuario string Sí

FollowersCount integer No

Descripción string Sí

StatusesCount integer No

FriendsCount integer No

Usuario
Obtener usuario: recupera los detalles sobre el usuario especificado (ejemplo: nombre de usuario, descripción,
número de seguidores, etc.).
Propiedades de entrada

NOMBRE TIPO DE DATOS REQUERIDO DESCRIPCIÓN

NombreUsuario string yes Identificador de Twitter del


usuario

Propiedades de salida

NOMBRE DE LA PROPIEDAD TIPO DE DATOS REQUERIDO DESCRIPCIÓN

FullName string Sí

Location string Sí

Identificador integer No

NombreUsuario string Sí

FollowersCount integer No

Descripción string Sí

StatusesCount integer No
NOMBRE DE LA PROPIEDAD TIPO DE DATOS REQUERIDO DESCRIPCIÓN

FriendsCount integer No

El tweet
Enviar un nuevo tweet: Tweet
Propiedades de entrada

NOMBRE TIPO DE DATOS REQUERIDO DESCRIPCIÓN

tweetText string no Texto que se va a enviar, por


ejemplo, {tweetText: "hola"}

cuerpo string no Elementos multimedia que


se van a publicar

Propiedades de salida

NOMBRE DE LA PROPIEDAD TIPO DE DATOS REQUERIDO DESCRIPCIÓN

TweetId string Sí

OnNewTweet
Cuando aparece un nuevo tweet: desencadena un flujo de trabajo cuando se envía un nuevo tweet que coincide
con la consulta de búsqueda.
Propiedades de entrada

NOMBRE TIPO DE DATOS REQUERIDO DESCRIPCIÓN

searchQuery string yes Texto de consulta (se puede


usar cualquiera de los
operadores de consulta
admitidos por Twitter:
https://www.twitter.com/sear
ch) )

Propiedades de salida

NOMBRE DE LA PROPIEDAD TIPO DE DATOS REQUERIDO DESCRIPCIÓN

value array No

Vínculos útiles
Consulte todas las conexiones disponibles.
Aprenda a agregar conexiones a sus aplicaciones.
Agregar una conexión de datos a una aplicación
de lienzo en PowerApps
05/11/2019 • 5 minutes to read

En PowerApps, agregue una conexión de datos a una aplicación de lienzo existente o a una que se cree desde
cero. La aplicación puede conectarse a SharePoint, Common Data Service, Salesforce, OneDrive o muchos
otros orígenes de datos.
Tras este artículo, el próximo paso será mostrar y administrar la información del origen de datos de la
aplicación, como en estos ejemplos:
Conéctese a OneDrive y administre datos en un libro de Excel en su aplicación.
Conéctese a Twilio y envíe un mensaje SMS desde la aplicación.
Conéctese a Common Data Service y actualice una entidad desde la aplicación.
Conéctese a SQL Server y actualice una tabla desde la aplicación.

Requisitos previos
Regístrese en PowerApps y, luego, inicie sesión con las mismas credenciales que usó para registrase.

Abra una aplicación en blanco


1. En la pestaña Inicio , seleccione aplicación de lienzo en blanco.
2. Especifique un nombre para la aplicación y, a continuación, seleccione crear.
3. Si aparece el cuadro de diálogo de bienvenida a PowerApps Studio, seleccione Skip (Omitir).

Agregar origen de datos


1. En el panel central, seleccione conectarse a los datos para abrir el panel datos .
Si se tratara de una aplicación existente y la pantalla ya contenía un control, seleccione ver > orígenes
de datos para abrir el mismo panel.
2. Seleccione Agregar origen de datos.
3. Si la lista de conexiones incluye la que desea, selecciónela para agregarla a la aplicación. De lo
contrario, vaya al paso siguiente.
4. Seleccione nueva conexión para mostrar una lista de conexiones.

5. En la barra de búsqueda, escriba o pegue las primeras letras de la conexión que desee y, a
continuación, seleccione la conexión cuando aparezca.

6. Seleccione Crear para crear la conexión y agregarla a la aplicación.


Algunos conectores, como Office 365 Outlook, no requieren ningún paso adicional y puede mostrar
datos procedentes de ellos inmediatamente. Otros conectores le pedirán que proporcione las
credenciales, especifique un conjunto determinado de datos o que realice otros pasos. Por ejemplo,
SharePoint y SQL Server requieren información adicional antes de poder utilizarlas. Con Common
Data Service, puede cambiar el entorno antes de seleccionar una entidad.

Identificar o cambiar un origen de datos


Si va a actualizar una aplicación, es posible que necesite identificar o cambiar el origen de datos que aparece
en una galería, un formulario u otro control. Por ejemplo, es posible que necesite identificar un origen de
datos a medida que actualice una aplicación creada por otra persona o que haya creado hace mucho tiempo.
1. Seleccione el control, como una galería, para el que desea identificar o cambiar el origen de datos.
El nombre del origen de datos aparece en la pestaña Propiedades del panel derecho.

2. Para mostrar más información acerca del origen de datos o para cambiarlo, seleccione la flecha hacia
abajo situada junto a su nombre.
Aparece más información sobre el origen de datos actual y puede seleccionar o crear otro origen.

Pasos siguientes
Para mostrar y actualizar datos en un origen como Excel, SharePoint, Common Data Service o SQL
Server, agregue una galeríay agregue un formulario.
Para datos de otros orígenes, utilice funciones específicas de conectores como los de Office 365 Outlook,
Twitter y Microsoft Translator.
Administración de conexiones de aplicaciones de
lienzo en PowerApps
05/11/2019 • 5 minutes to read

En powerapps.com, cree una conexión con uno o varios orígenes de datos, elimine una conexión o actualice
las credenciales.
La conexión de datos de la aplicación de lienzo puede establecerse con SharePoint, SQL Server, Office 365,
OneDrive para la Empresa, Salesforce, Excel y muchos otros orígenes de datos.
Lo siguiente que haremos en este artículo es mostrar y administrar la información del origen de datos de la
aplicación, como en estos ejemplos:
Conéctese a OneDrive para la Empresa y administre los datos de un libro de Excel en la aplicación.
Actualice una lista en un sitio de SharePoint.
Conéctese a SQL Server y actualice una tabla desde la aplicación.
Envíe correo electrónico en Office 365.
Envíe un tweet.
Conéctese a Twilio y envíe un mensaje SMS desde la aplicación.

Requisitos previos
1. Inicie sesión en PowerApps.
2. Inicie sesión en powerapps.com con las mismas credenciales que utilizó para suscribirse.

Información general sobre las conexiones de datos


La mayoría de las aplicaciones de PowerApps utilizan información externa (lo que se denomina orígenes
de datos) que está guardada en servicios en la nube. Uno de los ejemplos más frecuentes son tablas que
pertenecen a archivos de Excel guardados en OneDrive para la Empresa. Las aplicaciones pueden acceder
a estos orígenes de datos a través de las conexiones.
El tipo más común de origen de datos son las tablas, que pueden usarse tanto para recuperar como para
guardar información. Puede utilizar las conexiones con los orígenes de datos para leer y escribir
información en libros de Microsoft Excel, listas de SharePoint, tablas SQL y muchos otros formatos, que
pueden guardarse en servicios en la nube, como OneDrive para la Empresa, DropBox, SQL Server, etc.
Hay otros tipos de orígenes de datos que no son tablas, como correo electrónico, calendarios, Twitter y
notificaciones.
Con los controles Galería , Formulario de presentación y Formulario de edición , resulta muy fácil
crear una aplicación que lea y escriba datos en un origen de datos. Para empezar, lea el artículo Understand
data forms (Introducción a los formularios de datos).
Además de crear y administrar conexiones en powerapps.com, también puede crearlas realizando estas
tareas:
Generar automáticamente un aplicación de datos, como una lista de SharePoint personalizada.
Actualizar una aplicación existente o crear una desde cero como se describe en Agregar una conexión.
Abrir una aplicación que otro usuario ha creado y compartido con usted.
NOTE
Si desea usar PowerApps Studio en su lugar, abra el menú Archivo y haga clic o pulse Conexiones, y se abre
powerapps.com, donde puede crear y administrar las conexiones de allí.

Creación de una nueva conexión


1. Si aún no lo ha hecho, inicie sesión en powerapps.com.
2. En la barra de navegación izquierda, pulse o haga clic en Conexiones.

3. En la esquina superior derecha, pulse o haga clic en Nueva conexión.

4. Pulse o haga clic en un conector de la lista que aparece y siga las instrucciones.

5. Pulse o haga clic en el botón Crear.


6. Siga las instrucciones. Algunos conectores le solicitarán que escriba las credenciales, que especifique
un conjunto de datos o que realice otros pasos. Esto no ocurre con otros conectores, como
Microsoft Translator.
Por ejemplo, estos conectores requieren información adicional antes de usarlos.
SharePoint
SQL Server
Aparecerá el nuevo conector en Conexiones y podrá agregarlo a una aplicación.

Actualizar o eliminar una conexión


En la lista de conexiones, pulse o haga clic en la conexión que desea actualizar o eliminar y en el botón de
puntos suspensivos (tres puntos) que encontrará a la derecha de la conexión.

Para actualizar las credenciales de una conexión, pulse o haga clic en el icono con forma de llave y
especifique las credenciales de dicha conexión.
Para eliminar la conexión, pulse o haga clic en el icono de papelera.
Pulse o haga clic en el icono de información para ver los detalles de la conexión.
Dar formato a una tabla en Excel y sugerencias de
nomenclatura
07/10/2019 • 2 minutes to read

En PowerApps, solo puede crear una aplicación de lienzo basada en datos de Excel si tienen formato de tabla. En
este artículo se muestra cómo dar formato a una tabla en Excel y se ofrecen algunas sugerencias de asignación de
nombres de columnas de Excel.

Cómo dar formato a una tabla de Excel


Para convertir los datos en una tabla, seleccione Dar formato como tabla en la pestaña Inicio de Excel.

También puede crear una tabla seleccionando Tabla en la pestaña Insertar.

Para que le resulte fácil encontrar la tabla, vaya a Diseño en Herramientas de tabla y cambie el nombre de la
tabla. Resulta práctico asignarle a la tabla un nombre descriptivo, sobre todo si un mismo archivo de Excel
contiene varias tablas.

Sugerencias de nomenclatura en Excel


Si una columna de la tabla contiene imágenes, incluya "imagen" en el nombre de esa columna. Esta palabra clave
enlazará esa columna a un control de imagen en una galería.

Pasos siguientes
Generar una aplicación desde Excel en PowerApps según una tabla especificada. La aplicación tendrá tres
pantallas de forma predeterminada: una para examinar registros, para mostrar detalles acerca de un registro y
crear o actualizar un registro.
Crear una aplicación desde el principio mediante la tabla a la que ha aplicado formato de Excel. Puede crear y
personalizar manualmente la aplicación para mostrar, examinar o modificar los datos de la tabla.
Descripción de la delegación en una aplicación
de lienzo
08/10/2019 • 19 minutes to read

PowerApps incluye un eficaz conjunto de funciones para filtrar, ordenar y dar forma a tablas de datos en
una aplicación de lienzo: Filtre , ordene y AddColumns funciones para nombrar solo algunas. Con estas
funciones puede proporcionar a los usuarios acceso a la información que necesitan. Para quienes
conozcan bien las bases de datos, el uso de estas funciones es como escribir una consulta de base de
datos.
La clave para compilar aplicaciones eficientes es minimizar la cantidad de datos que debe contener el
dispositivo. Quizás necesite solo unos pocos registros de un mar de millones o que un único valor
agregado pueda representar miles de registros. O quizás solo se pueda recuperar el primer conjunto de
registros, y el resto se trae cuando el usuario indica que desea más. De esta forma se puede reducir
drásticamente la potencia de procesamiento, la memoria y el ancho de banda de red que necesita la
aplicación, lo que conlleva menores tiempos de respuesta para los usuarios, incluso en teléfonos
conectados a través de una red móvil.
La delegación es el lugar en el que la expresividad de las fórmulas de PowerApps cubre la necesidad de
minimizar la cantidad de datos que se mueven a través de la red. En resumen, PowerApps delega el
procesamiento de los datos al origen de los mismos, en lugar de moverlos a la aplicación para que los
procese localmente.
Esto se complica, y el motivo por el que existe este artículo, porque no todo lo que se puede expresar en
una fórmula de PowerApps puede delegarse a todos los orígenes de datos. El lenguaje de PowerApps
imita el lenguaje de fórmulas de Excel, que se está diseñado con acceso completo e instantáneo a un libro
completo en la memoria, con una amplia variedad de funciones numéricas y de manipulación de texto.
Como consecuencia, el lenguaje de PowerApps es mucho complejo de lo que la mayoría de orígenes de
datos pueden admitir, incluidos motores de base de datos eficaces como SQL Server.
El trabajo con grandes conjuntos de datos requiere que se usen orígenes de datos y fórmulas
que se puedan delegar. Es la única manera de que la aplicación funcione correctamente y de tener la
certeza de que los usuarios pueden acceder a toda la información que necesitan. Preste atención a las
advertencias de delegación que identifiquen lugares donde esta no es posible. Si trabaja con conjuntos de
datos pequeños (menos de 500 registros), puede usar cualquier origen de datos y cualquier fórmula, ya
que la aplicación puede procesar datos en local si la fórmula no se puede delegar.

NOTE
Anteriormente las advertencias de delegación se marcaban en PowerApps como sugerencias de "punto azul", pero
desde entonces las sugerencias de delegación se han reclasificado como advertencias. Si los datos del origen de
datos superan los 500 registros y no se puede delegar una función, quizás PowerApps no pueda recuperar todos
los datos y la aplicación pueda tener resultados incorrectos. Las advertencias de delegación permiten administrar la
aplicación para que tenga resultados correctos.

Orígenes de datos delegables


Solo se admite la delegación para determinados orígenes de datos tabulares. Si un origen de datos admite
la delegación, en la documentación del conector se describe dicha compatibilidad. Por ejemplo, estos
orígenes de datos tabulares son los más populares y admiten la delegación:
Common Data Service
SharePoint
SQL Server
Los libros de Excel importados (mediante Agregar datos estáticos a su origen de datos de la aplicación),
las colecciones y las tablas almacenadas en variables de contexto no requieren delegación. Todos estos
datos ya están en la memoria y se puede aplicar el lenguaje de PowerApps completo.

Funciones que se pueden delegar


El siguiente paso es usar solo aquellas fórmulas que se puedan delegar. Aquí se incluyen los elementos de
las fórmulas que se pueden delegar. Sin embargo, todos los orígenes de datos son diferentes, y no todos
ellos admiten todos estos elementos. Compruebe si hay advertencias de delegación en la fórmula en
cuestión.
Estas listas cambiarán con el tiempo, ya que en el futuro habrá más funciones y operadores que admitan
la delegación.
Funciones de filtro
Filtrar , Buscar y Búsqueda se pueden delegar.
Las funciones Filter y LookUp se pueden usar con columnas de la tabla para seleccionar los registros
apropiados:
And (incluyendo && ), Or (incluyendo || ), Not (incluyendo ! )
In (En)
= , <> , >= , <= , > , <
+,-
TrimEnds (RecortarExtr)
EsBlanco
StartsWith , EndsWith
Valores constantes que son iguales en todos los registros, como las propiedades del control y las
variables globales y de contexto.
También se pueden usar partes de la fórmula que se evalúen en un valor constante para todos los
registros. Por ejemplo, left (Language (), 2) , Date (2019, 3, 31) y hoy () no dependen de ninguna
columna del registro y, por tanto, devuelven el mismo valor para todos los registros. Estos valores se
pueden enviar al origen de datos como una constante y no bloquearán la delegación.
La lista anterior no incluye estos elementos importantes:
If (Si)
* , / , Mod
Concatenar (incluyendo & )
ExactIn (ExactoEn)
Funciones de manipulación de cadenas: Lower , Upper , left , Mid , Len ,...
Simultáneamente Ubicación , aceleración , brújula ,...
Volátiles Rand ,...
Colecciones
Funciones de ordenación
Ordenar y SortByColumns (OrdenarPorColumnas) se pueden delegar.
En Ordenar, la fórmula solo puede ser el nombre de una columna individual y no puede incluir otros
operadores o funciones.
Funciones de agregado
Suma , Promedio , Min y Max pueden delegarse. En este momento, solo un número limitado de
orígenes de datos admite esta delegación. Para obtener más detalles, vea la lista de delegación.
Las funciones de recuento como CountRows , CountA y Count no se pueden delegar.
Otras funciones de agregado, como StdevP y VarP , no se pueden delegar.
Funciones de modelado de tabla
AddColumns , DropColumns , cambiarnombrecolumnas y mostrarcolumnas admiten parcialmente
la delegación. Las fórmulas de sus argumentos se pueden delegar. Sin embargo, el resultado de estas
funciones está sujeto al límite de registros que no son de delegación.
Como en este ejemplo, los responsables suelen usar AddColumns y Buscar para combinar información
de una tabla en otra, lo que se conoce comúnmente como una combinación en el lenguaje de la base de
datos:

AddColumns( Products;
"Supplier Name";
LookUp( Suppliers; Suppliers.ID = Product.SupplierID ).Name
)

Aunque los productos y proveedores pueden ser orígenes de datos delegables y lookup es una función
delegables, la salida de la función AddColumns no es delegables. El resultado de la fórmula completa se
limita a la primera parte del origen de datos Products . Dado que la función LookUp y su origen de datos
se pueden delegar, se puede encontrar una coincidencia con Suppliers en cualquier lugar del origen de
datos, aunque sea grande.
Si utiliza AddColumns de esta manera, la búsqueda debe realizar llamadas independientes en el origen
de datos para cada uno de esos primeros registros de productos, lo que provoca una gran cantidad de
chatter de red. Si los proveedores son lo suficientemente pequeños y no cambian a menudo, puede
llamar a la función Collect en OnStart para almacenar en caché el origen de datos en la aplicación
cuando se inicia. Como alternativa, puede reestructurar la aplicación para que extraiga los registros
relacionados solo cuando el usuario los solicite.

Funciones no delegables
Las demás funciones no admiten la delegación, incluidas estas importantes funciones:
Primero , FirstN , Último , LastN
Choices
Concat
Recopilar , ClearCollect
CountIf , RemoveIf , UpdateIf
GroupBy , Desagrupar

Límites no delegables
Las fórmulas que no se pueden delegar se procesan localmente. Esto permite usar todo el espectro del
lenguaje de fórmulas de PowerApps. Pero esto tiene un precio: primero deben pasarse todos los datos al
dispositivo, lo que podría implicar la recuperación de una gran cantidad de datos a través de la red. Esta
operación puede tardar un tiempo, lo que daría la impresión de que la aplicación se ejecuta con lentitud, o
incluso que está bloqueada.
Para evitarlo, PowerApps impone un límite en la cantidad de datos que se pueden procesar localmente:
500 registros de forma predeterminada. Elegimos este número para que tuviera acceso completo a los
conjuntos de datos pequeños y pudiera pueda refinar su uso de conjuntos de datos grandes viendo los
resultados parciales.
Obviamente, si se usa este recurso, es preciso tener cuidado, ya que puede confundir a los usuarios. Por
ejemplo, imagine una función Filter con una fórmula de selección que no se puede delegar en lugar de un
origen de datos que contiene un millón de registros. Dado que el filtrado se realiza localmente, solo se
examinan los primeros 500 registros. Si el registro deseado es el 501, o el 500 001, Filter no lo tiene en
cuenta o no lo devuelve.
Las funciones de agregado también pueden provocar confusión. Tome Average en lugar de una columna
de ese mismo origen de datos de un millón de registros. Average aún no se puede delegar, así que solo se
obtiene el promedio de los primeros 500 registros. Si no tiene cuidado, algún usuario de la aplicación
podría malinterpretar una respuesta parcial como una respuesta completa.

Cambio del límite


500 es el número predeterminado de registros, pero se puede cambiar este número para toda una
aplicación:
1. En la pestaña Archivo, seleccione Configuración de aplicación.
2. En Configuración avanzada, cambie el valor de límite de filas de datos para consultas que no
sean delegables de 1 a 2000.
En algunos casos, sabrá que 2000 (o 1000 o 1500) satisfará las necesidades del escenario. Puede
aumentar esta cifra con precaución para que se ajuste a su escenario. A medida que aumenta esta cifra, el
rendimiento de la aplicación puede verse afectado, sobre todo en las tablas anchas que contienen muchas
columnas. Aun así, la mejor respuesta es delegar lo máximo posible.
Para asegurarse de que la aplicación se pueda escalar a grandes conjuntos de datos, reduzca este valor a 1.
Todo lo que no se puede delegar devuelve un único registro, que debería ser fácil de detectar al probar la
aplicación. De esta manera se pueden evitar sorpresas al intentar llevar una aplicación de prueba de
concepto a producción.

Advertencias de delegación
Para que sea más fácil saber qué se delega y qué no, PowerApps proporciona una advertencia (triángulo
amarillo) cuando se crea una fórmula que contiene algo que no se puede delegar.
Las advertencias de delegación solo aparecen en las fórmulas que operan en orígenes de datos
delegables. Si no ve una advertencia y cree que la fórmula no se delega correctamente, compruebe el tipo
de origen de datos en la lista anterior de orígenes de datos que se pueden delegar de este tema.

Ejemplos
En este ejemplo se genera automáticamente una aplicación de tres pantallas basada en una tabla de SQL
Server denominada [dbo].[Fruit] . Para obtener información sobre cómo generar la aplicación, puede
aplicar principios similares en el tema sobre Common Data Service a SQL Server.
La propiedad Items de la galería está establecida en una fórmula que contiene las funciones
SortByColumns y Search, que se pueden delegar.
En el cuadro de búsqueda, escriba "Apple" .
Una fila de puntos aparece momentáneamente junto a la parte superior de la pantalla mientras la
aplicación se comunica con SQL Server para procesar la solicitud de búsqueda. Aparecen todos los
registros que cumplen los criterios de búsqueda, aunque el origen de datos contenga millones de
registros.
Los resultados de búsqueda incluyen "Apples" , "Crab apples" y "Pineapple" , porque la función
Search busca por todas las partes de un columna de texto. Si solo quiere buscar los registros que
contienen el término de búsqueda al principio del nombre de la fruta, puede usar otra función delegable,
Filter, con un término de búsqueda más complicado. (Por motivos de simplicidad, quite la llamada a
SortByColumns).

Los nuevos resultados incluyen "Apples" , pero no "Crab apples" ni "Pineapple" . Pero aparece un
triángulo amarillo junto a la galería (y en la miniatura de pantalla si la barra de navegación izquierda
muestra miniaturas) y una línea ondulada azul debajo de una parte de la fórmula. Cada uno de estos
elementos indica una advertencia. Si mantiene el puntero sobre el triángulo amarillo junto a la galería,
aparece este mensaje:

SQL Server es un origen de datos delegable y Filter es una función delegable, pero Mid y Len no se
pueden delegar a cualquier origen de datos.
Pero ha funcionado, ¿no? Bueno, más o menos. Por eso es una advertencia y no un subrayado ondulado
rojo.
Si la tabla contiene menos de 500 registros, la fórmula ha funcionado perfectamente. Todos los
registros se han pasado al dispositivo y Filter se ha aplicado localmente.
Si la tabla contiene más de 500 registros, la fórmula no devuelve los registros desde el 501, aun
cuando cumplan los criterios.
Administración de una puerta de enlace de datos
local en PowerApps
05/11/2019 • 5 minutes to read

Instale una puerta de enlace de datos local para transferir datos de manera rápida y segura entre una aplicación
de lienzo integrada en PowerApps y un origen de datos que no esté en la nube, como una base de datos local de
SQL Server o un sitio de SharePoint local. Vea todas las puertas de enlace para las que tiene permisos
administrativos y administre los permisos y las conexiones para estas puertas de enlace.
Con una puerta de enlace, puede conectarse a datos locales a través de estas conexiones:
SharePoint
SQL Server
Oracle
Informix
Filesystem
DB2

Requisitos previos
El nombre de usuario y la contraseña que usó para registrarse en PowerApps.
Los permisos administrativos de una puerta de enlace. De forma predeterminada, tiene estos permisos para
cada puerta de enlace que instala, y un administrador de otra puerta de enlace puede concederle estos
permisos para esa puerta de enlace.
Una licencia que permite el acceso a los datos locales mediante una puerta de enlace local. Para más
información, consulte la sección "Conectividad" de la página de precios.
Las puertas de enlace y las conexiones locales solo se pueden crear y usar en el entorno predeterminado del
usuario.

Instalar una puerta de enlace


Para instalar una puerta de enlace, siga los pasos descritos en instalación de una puerta de enlace de datos local.
Instale la puerta de enlace en modo estándar porque la puerta de enlace de datos local (modo personal) solo
está disponible para Power BI.

Ver y administrar los permisos de la puerta de enlace


1. En la barra de navegación izquierda de powerapps.com, pulse o haga clic en Puertas de enlace y, luego,
pulse o haga clic en una puerta de enlace.
2. Agregue un usuario a una puerta de enlace haciendo clic o pulsando en Usuarios, especificando un
usuario o grupo y, finalmente, especificando un nivel de permiso:
Puede usar: usuarios que pueden crear conexiones en la puerta de enlace para las aplicaciones y los
flujos, pero no pueden compartir la puerta de enlace. Use este permiso para los usuarios que ejecutan
aplicaciones pero no las comparten.
Puede usar + compartir: usuarios que pueden crear una conexión en la puerta de enlace para las
aplicaciones y los flujos, y compartir automáticamente la puerta de enlace cuando se comparte una
aplicación. Use este permiso con usuarios que tienen que compartir aplicaciones con otros usuarios o
con la organización.
Administración: administradores que tienen control total sobre la puerta de enlace, lo que incluye
agregar usuarios, establecer permisos, crear conexiones a todos los orígenes de datos disponibles y
eliminar la puerta de enlace.
Para los niveles de permiso Puede usar y Puede usar y compartir, seleccione los orígenes de datos a los que
puede conectarse el usuario mediante la puerta de enlace.

Ver y administrar las conexiones de puerta de enlace


1. En la barra de navegación izquierda de powerapps.com, pulse o haga clic en Puertas de enlace y, luego,
pulse o haga clic en una puerta de enlace.
2. Pulse o haga clic en Conexiones y luego pulse o haga clic en una conexión para ver sus detalles, editar la
configuración o eliminarla.
3. Para compartir una conexión, haga clic o pulse en Compartir y, a continuación, agregue o quite usuarios.

NOTE
Solo puede compartir algunos tipos de conexiones, como SQL Server. Para más información, consulte Share app
resources (Uso compartido de recursos de la aplicación).

Para más información sobre cómo administrar una conexión, consulte Administración de conexiones.

Solución de problemas y configuración avanzada


Para más información sobre la solución de problemas con las puertas de enlace, consulte solución de problemas
de la puerta de enlace de datos local. Para obtener más información acerca de la configuración, consulte uso de
la aplicación de puerta de enlace de datos local.

Pasos siguientes
Instale la puerta de enlace de datos local.
Cree una aplicación que se conecte a un origen de datos local, como SQL Server o SharePoint.
Comparta una aplicación que permita conectarse a un origen de datos local.
¿Qué es una puerta de enlace de datos local?
09/11/2019 • 3 minutes to read

La puerta de enlace de datos local actúa como un puente para proporcionar una transferencia de datos rápida y
segura entre los datos locales (datos que no están en la nube) y varios servicios en la nube de Microsoft. Estos
servicios en la nube incluyen Power BI, PowerApps, Power Automatic, Azure Analysis Services y Azure Logic
Apps. Mediante el uso de una puerta de enlace, las organizaciones pueden mantener bases de datos y otros
orígenes de datos en sus redes locales, pero usar los datos locales de forma segura en los servicios en la nube.

Cómo funciona la puerta de enlace

Para obtener más información sobre cómo funciona la puerta de enlace, consulte arquitectura de puerta de
enlace de datos local.

Tipos de puertas de enlace


Hay dos tipos diferentes de puertas de enlace, cada una para un escenario diferente:
La puerta de enlace de datos local permite que varios usuarios se conecten a varios orígenes de datos
locales. Puede utilizar una puerta de enlace de datos local con todos los servicios admitidos, con una sola
instalación de puerta de enlace. Esta puerta de enlace es idónea para escenarios complejos con varias
personas que tienen acceso a varios orígenes de datos.
La puerta de enlace de datos local (modo personal) permite a un usuario conectarse a orígenes y no
se puede compartir con otros usuarios. Una puerta de enlace de datos local (modo personal) solo se
puede usar con Power BI. Esta puerta de enlace es idónea para escenarios en los que es la única persona
que crea informes y no es necesario compartir ningún origen de datos con otros usuarios.
Uso de una puerta de enlace
Hay cuatro pasos principales para utilizar una puerta de enlace.
1. Descargar e instalar la puerta de enlace en un equipo local.
2. Configurar la puerta de enlace según el firewall y otros requisitos de red.
3. Agregar administradores de puerta de enlace que también pueden administrar y administrar otros requisitos
de red.
4. Solucione los problemas de la puerta de enlace en caso de errores.

Pasos siguientes
Instalación de la puerta de enlace de datos local
Comprender los orígenes de datos para
aplicaciones de lienzo en PowerApps
07/10/2019 • 23 minutes to read

En PowerApps, la mayoría de las aplicaciones de lienzo utilizan información externa


almacenada en servicios en la nube denominados Orígenes de datos. Uno de los ejemplos
más frecuentes son tablas que pertenecen a archivos de Excel guardados en OneDrive para la
Empresa. Las aplicaciones acceder a estos orígenes de datos a través de las conexiones.
En este artículo se describen los diferentes tipos de orígenes de datos y cómo trabajar con
orígenes de datos de tabla.
Resulta muy fácil crear una aplicación que realice operaciones básicas de lectura y escritura en
un origen de datos. Pero a veces desea más control sobre cómo fluyen los datos dentro y fuera
de la aplicación. Este artículo se describe cómo proporcionan más control las funciones Patch ,
DataSourceInfo , Validate y Errores .

Tipos de orígenes de datos


Los orígenes de datos pueden estar conectados a un servicio en la nube, o bien pueden ser
locales a una aplicación.
Orígenes de datos conectados
Los orígenes de datos más frecuentes son las tablas, que se pueden usar tanto para recuperar
como para guardar información. Puede utilizar las conexiones con los orígenes de datos para
leer y escribir información en libros de Microsoft Excel, listas de SharePoint, tablas SQL y
muchos otros formatos, que pueden guardarse en servicios en la nube tales como OneDrive
para la Empresa, DropBox y SQL Server.
Los orígenes de datos distintos de las tablas incluyen el correo electrónico, los calendarios,
Twitter y las notificaciones, pero en este artículo no se habla de otros tipos de orígenes de
datos.
Orígenes de datos locales
Con los controles Galería , Formulario de presentación y Formulario de edición , resulta
muy fácil crear una aplicación que lea y escriba datos en un origen de datos. Para empezar, lea el
artículo Understand data forms (Introducción a los formularios de datos).
Cuando se solicita a PowerApps que cree una aplicación a partir de los datos, se utilizan estos
controles. En segundo plano, la aplicación utiliza una tabla interna para almacenar y manipular
los datos procedentes del origen de datos.
Un tipo especial de origen de datos es la colección, que está en la propia aplicación y no tiene el
respaldo de una conexión a un servicio en la nube, por lo que la información no se puede
compartir entre los distintos dispositivos de un mismo usuario ni entre usuarios. Las
colecciones se pueden cargar y guardar localmente.
Tipos de tablas
Las tablas internas de una aplicación de PowerApps son valores fijos, como un número o una
cadena son un valor. Las tablas internas no se almacenan en ningún lugar, solo existen en la
memoria de la aplicación. La estructura y los datos de una tabla no se pueden modificar
directamente. En su lugar, lo que puede hacer es crear una nueva tabla a través de una fórmula:
dicha fórmula se usa para hacer una copia modificada de la tabla original.
Las tablas externas se almacenan en un origen de datos para su posterior recuperación y uso
compartido. PowerApps proporciona "conexiones" para leer y escribir los datos almacenados. En
una conexión se puede acceder a varias tablas de información. Seleccione las tablas que desea
utilizar en la aplicación y cada uno de ellas pasará a ser un origen de datos independiente.
Para más información, consulte Trabajar con tablas, donde se proporcionan más detalles acerca
de las tablas internas, pero también se explican las tablas externas que residen en un servicio en
la nube.

Trabajo con tablas


Los orígenes de datos en tabla se pueden usar del mismo modo que se usa una tabla interna de
PowerApps. Al igual que una tabla interna, cada origen de datos tiene registros, columnasy
propiedades que se pueden usar en las fórmulas. Asimismo:
El origen de datos tiene la mismos nombres de columna y tipos de datos que la tabla
subyacente de la conexión.

NOTE
En los orígenes de datos de SharePoint y Excel que contengan nombres de columna con
espacios, PowerApps los sustituirá por "_x0020_" . Por ejemplo, "Nombre de columna" en
SharePoint o Excel aparecerá como "Nombre_x0020_de_columna" en PowerApps cuando se
muestre en el diseño de datos o se use en una fórmula.

El origen de datos se carga desde el servicio automáticamente cuando se carga la


aplicación. Con la función Actualizar se puede forzar la actualización de los datos.
Cuando los usuarios ejecutan una aplicación, pueden crear, modificar y eliminar
registros, y aplicar esos cambios posteriormente a la tabla subyacente del servicio.
Los registros se pueden crear con las funciones Patch y Recopilar .
Los registros se pueden modificar con las funciones Patch , Actualizar y UpdateIf .
Los registros se pueden quitar con las funciones Quitar y RemoveIf .
Los errores que se producen al trabajar con un origen de datos están disponibles a
través de la función Errores .
Las funciones DataSourceInfo , Defaults y Validate proporcionan información acerca
del origen de datos que se puede usar para optimizar la experiencia del usuario.
Creación de orígenes de datos
PowerApps no se puede usar para crear un origen de datos conectado ni para modificar su
estructura; el origen de datos ya debe existir en algún servicio. Por ejemplo, para crear una tabla
en un libro de Excel almacenado en OneDrive, primero es preciso usar Excel Online en
OneDrive para crear un libro. Después, se crea una conexión a él desde la aplicación.
Sin embargo, los orígenes de datos de la colección se pueden crear y modificar dentro de una
aplicación, pero son temporales.
Visualización de uno o varios registros
El diagrama anterior muestra el flujo de información cuando una aplicación la lee de un origen
de datos:
La información se almacena y comparte a través de un servicio de almacenamiento (en este
caso, una lista de SharePoint de un sitio de Office 365).
Una conexión hace que esta información esté disponible para la aplicación. La conexión se
encarga de autenticación del usuario que va a acceder a la información.
Cuando se inicia la aplicación, o cuando se pulsa la función A , la información se extrae de la
conexión y llega a un origen de datos de la aplicación para su uso local.
Las fórmulas se usan para leer la información y exponerla en controles que el usuario pueda
ver. Puede mostrar los registros de un origen de datos mediante una galería en una pantalla
y conectar la propiedad Items al origen de datos: Gallery. Items = DataSource. Para
conectar los controles dentro de la galería a la galería, use la propiedad Default de los
controles.
El origen de datos también es una tabla. Por consiguiente, puede usar Filter , Sort ,
AddColumns y otras funciones para refinar y aumentar el origen de datos antes de usar su
totalidad. También puede usar Buscar , First , Last y otras funciones para trabajar con los
registros individuales.
Modificación de un registro
En la sección anterior, vio cómo leer un origen de datos. Tenga en cuenta que las flechas del
diagrama anterior son unidireccionales. Los cambios en un origen de datos no se recuperan a
través de la mismas fórmulas con las que se recuperaron los datos. En su lugar, se utilizan
fórmulas nuevas. A menudo no se utiliza la misma pantalla para editar un registro que para
explorar los registros, sobre todo en los dispositivos móviles.
Tenga en cuenta que, para modificar un registro existente de un origen de datos, debe provenir
originalmente del origen de datos. El registro puede haber viajado a través de una galería, una
variable de contexto y cualquier número de fórmulas, pero su origen debe de poder rastrearse
hasta el origen de datos. Esto es importante porque hay información adicional que acompaña al
registro que lo identifica de forma única, lo que garantiza que el registro que se modifica es el
correcto.

El diagrama anterior muestra el flujo de información para actualizar un origen de datos:


Un control Formulario de edición proporciona un contenedor para las tarjetas de entrada,
que se componen de controles de entrada de usuario, como un control de entrada de texto o
un control deslizante. Las propiedades DataSource y Elemento se utilizan para identificar
el registro que se va a editar.
Cada tarjeta de entrada tiene una propiedad Default , que normalmente se establece en el
campo del registro EsteElemento del formulario. Luego, los controles de la tarjeta de
entrada tomarán sus valores de entrada de Default . Normalmente este comportamiento no
es preciso modificarlo.
Cada tarjeta de entrada expone una propiedad Actualizar . Dicha propiedad asigna la
entrada del usuario a un campo específico del registro reescribir en el origen de datos.
Normalmente este comportamiento no es preciso modificarlo.
Un botón o un control de imagen de la pantalla permite al usuario guardar los cambios en el
registro. La fórmula AlSeleccionar del control llama a la función SubmitForm para realizar
este trabajo. SubmitForm lee todas las propiedades Actualizar de las tarjetas y lo utiliza
para reescribir en el origen de datos.
A veces surgirán problemas. Una conexión de red puede estar inactiva o el servicio realiza
una comprobación de validación sin que lo sepa la aplicación. Las propiedades Error y
ErrorKind del control del formulario hacen que esta información está disponible, por lo que
se puede mostrar al usuario.
Para lograr un mayor control sobre el proceso, también se pueden usar las funciones Patch y
Errores . El control Formulario de edición expone una propiedad Actualizaciones para que
pueda leer los valores de los campos del formulario. Esta propiedad también se puede utilizar
para llamar a un conector personalizado en una conexión, omitiendo completamente las
funciones Patch y SubmitForm.
Validación
Antes de realizar cualquier cambio en un registro, la aplicación debe hacer todo lo posible por
asegurarse de que el cambio será aceptable. Hay dos motivos para ello:
Comentarios inmediatos para el usuario. El mejor momento para corregir un problema es
cuando ocurre, cuando está fresco en la mente del usuario. Cada vez que se toca o se pulsa
una tecla, puede texto en rojo que identifica un problema.
Menor tráfico de red y menor latencia de los usuarios. La detección de un mayor número de
problemas en la aplicación implica que habrá menos conversaciones a través de la red para
detectar y solucionar problemas. Cada conversación lleva su tiempo y el que usuario debe
esperar.
PowerApps ofrece dos herramientas para la validación:
El origen de datos puede proporcionar información sobre lo que es valido, y lo que no lo es.
Por ejemplo, los números pueden tener valores mínimo y máximo, y puede que se requieran
una o varias entradas. Para acceder a esta información, puede usar la función
DataSourceInfo .
La función Validate función usa esta misma información para comprobar el valor de una
sola columna o de todo un registro.
Control de errores
Ya ha validado el registro. Ha llegado el momento de actualizar el registro con Patch .
Sin embargo, aún puede haber un problema. La red no está activa, se produce un error en la
validación en el servicio o el usuario no tiene los permisos adecuados, por nombrar algunos de
los posibles errores con que puede toparse la aplicación. Es preciso que responda correctamente
en situaciones de error, es decir, que proporcione al usuario no solo información, sino también
una forma de salir de dichas situaciones.
Si los errores se producen en un origen de datos, la aplicación registra automáticamente la
información del error y la pone a disposición del usuario a través de la función Errores . Los
errores están asociados a los registros que tenían los problemas. Si el problema puede
corregirlo el usuario, como por ejemplo, un problema de validación, puede volver a enviar el
registro y los errores desaparecerán.
Si se produce un error cuando un registro se crea con Patch o Recopilar , no hay registro con
los que se puedan asociar los errores. En este caso, la función Patch devolverá un espacio en
blanco que puede utilizarse como argumento de registro en Errores . Los errores de creación
se eliminan con la siguiente operación.
La función Errores devuelve una tabla de información del error. Dicha información puede incluir
información de una columna, en caso de que el error se pueda atribuir a una columna concreta.
Utilice mensajes de error de nivel de columna en los controles de etiqueta que estén cerca del
lugar ne que se encuentra la columna en la pantalla de edición. Utilice mensajes de error de
nivel de registro donde el valor de Columna en la tabla de errores esté en blanco, en una
ubicación próxima al botón Guardar de todo el registro.
Uso de orígenes de datos grandes
Cuando se crean informes de orígenes de datos de gran tamaño (quizás millones de registros),
se desea minimizar el tráfico de red. Supongamos que desea mostrar todos los clientes cuyo
StatusCode sea "Platinum" en New York City. Y supongamos también que la tabla de clientes
contiene millones de registros.
Lógicamente, no desea incorporar todos esos millones de clientes a la aplicación para elegir los
que desee. Lo que realmente desea es que la elección se realice dentro del servicio en la nube
en que está almacenada la tabla y enviar a través de la red solo los registros seleccionados.
Aunque no todas, muchas de las funciones que puede usar para elegir los registros se pueden
delegar, lo que significa que se ejecutan en el servicio en la nube. Para aprender a hacerlo, lea la
información existente acerca de la delegación.

Colecciones
Las colecciones son un tipo especial de origen de datos. Se encuentran en la propia aplicación y
no tienen el respaldo de una conexión a un servicio en la nube, por lo que la información no se
puede compartir entre los distintos dispositivos de un mismo usuario ni entre usuarios.
Funcionan como cualquier otro origen de datos, con algunas excepciones:
Las colecciones se pueden crear dinámicamente con la función Recopilar . No es preciso
establecerse con antelación, como debe hacerse con orígenes de datos basados en conexión.
Las columnas de una colección pueden modificarse en cualquier momento mediante la
función Recopilar .
Las recopilaciones permiten duplicar registros. En una colección puede haber más de una
copia del mismo registro. Las funciones como Quitar operarán en la primera coincidencia
que encuentran, salvo que se haya usado el argumento Todos.
Puede usar las funciones SaveData y LoadData para guardar y volver a cargar una copia
de la colección. La información se almacena en una ubicación privada a la que no pueden
acceder otros usuarios, aplicaciones o dispositivos.
Puede usar los controles Export e Import para guardar y volver a cargar una copia de la
colección en un archivo con el que el usuario puede interactuar.
Para más información acerca de cómo trabajar con una colección como origen de datos,
consulte Create and update a collection in your app (Creación y actualización de una colección
en una aplicación).
Las colecciones se usan normalmente para almacenar el estado global de la aplicación. Para
conocer las opciones disponibles para administrar el estado, consulte Trabajar con variables.
Comprender las tablas y los
registros de aplicaciones de lienzo
en PowerApps
08/10/2019 • 34 minutes to read

En PowerApps, puede crear una aplicación de lienzo que tenga acceso a


información en Microsoft Excel, SharePoint, SQL Server y otros orígenes
diferentes que almacenan datos en registros y tablas. Para trabajar de forma
más eficaz con este tipo de datos, revise los conceptos que subyacen a estas
estructuras.
Un registro contiene una o varias categorías de información sobre una
persona, un lugar o una cosa. Por ejemplo, un registro puede contener el
nombre, la dirección de correo electrónico y el número de teléfono de un
solo cliente. Otras herramientas hacen referencia a un registro como una
"fila" o un "elemento".
Una tabla contiene uno o varios registros que incluyen las mismas
categorías de información. Por ejemplo, una tabla puede contener los
nombres, las direcciones de correo electrónico y los números de teléfono
de 50 clientes.
En la aplicación, usará fórmulas para crear, actualizar y manipular registros y
tablas. Probablemente podrá leer y escribir datos en un origen de datos
externo, que es una tabla extendida. Además, puede crear una o varias tablas
internas, que se denominan colecciones.
Puede crear una variedad de fórmulas que usan el nombre de una tabla como
argumento, al igual que las fórmulas de Excel consideran una o varias
referencias de celda como argumentos. Algunas fórmulas de PowerApps
devuelven una tabla que refleja el resto de los argumentos que se
especifiquen. Por ejemplo, podría crear una fórmula:
para actualizar un registro en una tabla mediante la especificación de esa
tabla como uno de varios argumentos para la función Revisión ,
para agregar, quitar y cambiar el nombre de las columnas de una tabla
mediante la especificación de esa tabla como un argumento para la
función AgregarColumnas , EliminarColumnas o
CambiarNombreColumnas . Ninguna de esas funciones modifica la
tabla original. En su lugar, la función devuelve otra tabla basada en el resto
de los argumentos que se especifiquen.

Elementos de una tabla


Registros
Cada registro contiene al menos una categoría de información sobre una
persona, un lugar o una cosa. El ejemplo anterior muestra un registro para
cada producto (Chocolate, Pan y Agua) y una columna para cada categoría
de información (Precio, Cantidad disponible y Cantidad en pedido).
En una fórmula, puede hacer referencia a un registro por sí mismo, fuera del
contexto de una tabla, mediante el uso de llaves. Por ejemplo, este registro
{nombre: "Fresas"; precio: 7;99} no está asociado a una tabla. Tenga en
cuenta que los nombres de los campos, como Nombre y Precio en ese
ejemplo, no están dentro de comillas dobles.
Campos
Un campo es un elemento individual de información de un registro. Puede
visualizar este tipo de campo como un valor de una columna para un registro
concreto.
Igual que con un control, puede hacer referencia a un campo de un registro
mediante . , que es el operador en el registro. Por ejemplo,
Primero(Productos).Nombre devuelve el campo Nombre para el primer
registro de la tabla Productos.
Un campo puede contener otro registro o tabla, como muestra el ejemplo de
la función AgruparPor . Puede anidar tantos niveles de registros y tablas
como desee.
Columnas
Una columna hace referencia al mismo campo de uno o varios registros de
una tabla. En el ejemplo anterior, cada producto tiene un campo de precio, y el
precio está en la misma columna para todos los productos. La tabla anterior
tiene cuatro columnas, que se muestran horizontalmente en la parte superior:
Nombre
Precio
Cantidad disponible
Cantidad en pedido
El nombre de la columna refleja los campos de dicha columna.
Todos los valores de una columna son del mismo tipo de datos. En el ejemplo
anterior, la columna "Cantidad disponible" siempre contiene un número y no
puede contener una cadena, como "12 unidades", para un registro. El valor de
cualquier campo también puede aparecer en blanco.
Es posible que en otras herramientas haya hecho referencia a las columnas
con el término "campos".
NOTE
En los orígenes de datos de SharePoint y Excel que contengan nombres de
columna con espacios, PowerApps los sustituirá por "_x0020_" . Por ejemplo,
"Nombre de columna" en SharePoint o Excel aparecerá como
"Nombre_x0020_de_columna" en PowerApps cuando se muestre en el diseño
de datos o se use en una fórmula.

Tabla
Una tabla consta de uno o varios registros, cada uno con varios campos que
tienen nombres coherentes entre los registros.
Cualquier tabla almacenada en un origen de datos o en un colección tiene un
nombre, que se usa para hacer referencia a la tabla y para pasarlo a funciones
que consideran las tablas como argumentos. Las tablas también pueden
resultar de una función o de una fórmula.
Como en el ejemplo siguiente, puede expresar una tabla en una fórmula
mediante la utilización de la función Tabla con un conjunto de registros, que
se expresa entre llaves:
Table( { Value: "Strawberry" }; { Value: "Vanilla" } )

También puede definir una tabla de una sola columna entre corchetes. Una
manera equivalente de escribir lo anterior:
[ "Strawberry"; "Vanilla" ]

Fórmulas de tabla
En Excel y PowerApps, las fórmulas se usan para manipular números y
cadenas de texto de formas similares:
En Excel, escriba un valor, como 42, en la celda A1 y después escriba una
fórmula, como A1+2, en otra celda para mostrar el valor de 44.
En PowerApps, establezca la propiedad Valor predeterminado de
Slider1 en 42, y defina la propiedad Texto de una etiqueta en
Slider1.Value + 2 para mostrar el valor de 44.
En ambos casos, el valor calculado cambia automáticamente si modifica los
valores de los argumentos (por ejemplo, el número de la celda A1 o el valor
de Slider1).
Del mismo modo, puede usar fórmulas para acceder a datos de tablas y
registros y manipularlos. Puede usar nombres de tablas como argumentos en
algunas fórmulas, como Min(Catálogo; Precio) , para mostrar el valor
mínimo en la columna Precio de la tabla Catálogo. Otras fórmulas
proporcionan tablas completas como valores devueltos, como
CambiarNombreColumnas(Catálogo; "Precio"; "Coste") , que devuelve
todos los registros de la tabla Catálogo, pero cambia el nombre de la
columna Precio a Coste.
Al igual que con los números, las fórmulas relacionadas con tablas y registros
se recalculan automáticamente a medida que el registro o la tabla
subyacentes cambian. Si el coste de un producto de la tabla Catálogo está
muy por debajo del mínimo anterior, el valor devuelto de la fórmula Min
cambiará automáticamente para establecer la coincidencia.
Se van a analizar algunos ejemplos sencillos.
1. Cree una aplicación en blanco para un teléfono y agregue un control
Galería vertical que contenga otros controles.
De forma predeterminada, la pantalla muestra texto de marcador de
posición de una tabla denominada CustomGallerySample. La
propiedad Items del control Galería de la pantalla se establece
automáticamente en esa tabla.

NOTE
Algunos controles se han reorganizado y ampliado con fines meramente
ilustrativos.

2. En lugar de establecer la propiedad Elementos con el nombre de la


tabla, defina una fórmula que incluya el nombre de la tabla como un
argumento, como en este ejemplo:
Sort(CustomGallerySample; SampleHeading; Descending)

Esta fórmula incorpora la función Ordenar , que considera el nombre


de una tabla como su primer argumento y el nombre de una columna
de dicha tabla como su segundo argumento. La función también
admite un tercer argumento opcional, que estipula que desea ordenar
los datos en orden descendente.
3. Defina la propiedad Elementos con una fórmula que considere la
fórmula del paso anterior como un argumento y devuelve una tabla,
como en este ejemplo:
FirstN(Sort(CustomGallerySample; SampleHeading; Descending); 2)

En esta fórmula, use la función FirstN para mostrar un número


concreto de registros de una tabla. Se usa la función Ordenar como el
primer argumento de FirstN y un número (en este caso, 2) como el
segundo argumento, que especifica la cantidad de registros que se van
a mostrar.
Toda la fórmula devuelve una tabla que contiene los dos primeros
registros de la tabla CustomGallerySample, ordenados por la
columna SampleHeading en orden descendente.

Funciones de tabla y propiedades de control


Considere la función Lower . Si la Página principal contiene la cadena de
texto "Hello, World" , la fórmula Lower (Welcome) devuelve "Hello,
World" . En cualquier caso, esta función no cambia el valor de esa variable.
Lower es una función pura en la que solo procesa la entrada y genera
resultados. Eso es todo; no tiene efectos secundarios. Todas las funciones de
Excel y la mayoría de las funciones de PowerApps son funciones puras, que
permiten que el libro o la aplicación se vuelvan a calcular automáticamente.
PowerApps ofrece un conjunto de funciones que operan en tablas de la
misma manera. Estas funciones toman las tablas como entrada y filtran,
ordenan, transforman, reducen y resumen todas las tablas de datos. De
hecho, las funciones inferiores y muchas otras que normalmente toman un
único valor también pueden tomar una tabla de una sola columna como
entrada.
Ordenar , Filtrar : ordena y filtra registros.
FirstN , LastN : devuelve los primeros o últimos registros N de la tabla.
Abs , Raíz , Redondear , Redondear.Mas , Redondear.Menos :
operaciones aritméticas de cada registro de una tabla con sola columna,
que resulta en una tabla de resultados con una sola columna.
Izquierda , Medio , Derecha , Reemplazar , Sustituir , Espacios ,
Minusc , Mayusc , NomPropio : manipulaciones de cadena en cada
registro de una tabla con una sola columna, que resultan en una tabla de
cadenas de una sola columna.
Largo : para una columna de cadenas, devuelve una tabla de una sola
columna que contiene la longitud de cada cadena.
Concatenar : concatena varias columnas de cadenas, que resultan en una
tabla de cadenas de una sola columna.
AgregarColumnas , EliminarColumnas , CambiarNombreColumnas ,
MostrarColumnas : manipulación de columnas de la tabla, que resulta en
una tabla nueva con columnas distintas.
Distinto : elimina registros duplicados.
Aleatorio : ordena los registros de forma aleatoria.
HashTags : busca hashtags en una cadena.
Errores : proporciona información de errores cuando se trabaja con un
origen de datos.
Muchas de estas funciones toman una tabla de una sola columna como
entrada. Si toda una tabla solo tiene una columna, puede especificarla por su
nombre. Si una tabla tiene varias columnas, puede especificar una de esas
columnas mediante la sintaxis de TABLE. Column . Por ejemplo,
Products.Name devuelve la tabla de una sola columna con solo los valores
de nombre de la tabla Products .
Puede cambiar completamente la forma de una tabla con las funciones
AddColumns , cambiarnombrecolumnas , mostrarcolumnas o
DropColumns . De nuevo, estas funciones solo cambian su salida, no su
origen.
Las propiedades de los controles también pueden ser tablas:
Elementos : se aplica a galerías, cuadros de lista y cuadros combinados.
Esta propiedad define la tabla que muestra la galería o la lista.
SelectedItems : se aplica a los cuadros de lista y cuadros combinados.
Esta propiedad define la tabla de elementos que el usuario ha
seleccionado si SelectMultiple está habilitado.

Fórmulas de comportamiento
Otras funciones están diseñadas específicamente para modificar datos y
tienen efectos secundarios. Dado que estas funciones no son puras, debe
crearlas con cuidado y no pueden participar en el recálculo automático de los
valores de la aplicación. Estas funciones solo se pueden usar dentro de
fórmulas de comportamiento.
Collect , Clear , ClearCollect crea colecciones, las borra y les agrega
datos.
Patch : modifica uno o varios campos de un registro.
Actualizar , ActualizarSi : actualiza registros que reúnen uno o varios
criterios especificados.
Eliminar , EliminarSi : elimina registros que reúnen uno o varios criterios
especificados.

Fórmulas de registro
También puede generar una fórmula que calcula los datos de un registro
individual, considera un registro individual como un argumento y
proporciona un registro individual como un valor devuelto. Al volver al
ejemplo anterior de la galería, se usa la propiedad Galería1.Seleccionada
para mostrar información de cualquier registro que el usuario selecciona en la
galería.
1. Agregue un botóny establezca su propiedad alseleccionar en esta
fórmula:
Recopilar( RegistroSeleccionado; Galería1.Seleccionada )
2. Mientras mantiene presionada la tecla Alt, seleccione el botón.
3. En el menú Archivo, seleccione Colecciones.

Esta fórmula devuelve un registro que incluye no solo los datos del registro
que está seleccionado actualmente en la galería, sino también cada control de
dicha galería. Por ejemplo, el registro contiene una columna SampleText que
coincide con la columna SampleText de la tabla original y una columna
Subtitle1 que representa la etiqueta que muestra los datos de esa columna.
Seleccione el icono de tabla de la columna Subtitle1 para profundizar en
esos datos.

NOTE
La columna Subtitle1 podría llamarse Subtitle2 o similar si se han agregado
elementos distintos a los que se especifican en este tema.

Ahora que tiene el registro seleccionado, puede extraer campos individuales


de él con el operador . .
1. Agregue un control Etiqueta y luego muévalo a la galería y el botón.
2. Establezca la propiedad Text de la etiqueta en esta expresión:
"Selected: " & Gallery1.Selected.SampleHeading

Ha usado la propiedad Selected, que es un registro, y ha extraído la


propiedad SampleHeading de ella.
También puede usar un registro como un contenedor de uso general para los
valores con nombre relacionados.
Si crea una fórmula a partir de las funciones ActualizarContexto y
Navegar , use un registro para recopilar las variables de contexto que
desea actualizar.
Use la propiedad Actualizaciones en un control Editar formulario para
recopilar los cambios que el usuario ha realizado en un formulario.
Use la función Revisión para actualizar un origen de datos, pero también
para combinar registros.
En estos casos, el registro nunca formaba parte de una tabla.

Funciones de registro y propiedades de control


Funciones que devuelven registros:
FirstN , LastN : devuelve el o los primeros o últimos registros de la tabla.
Búsqueda : devuelve el primer registro de una tabla que coincide con uno
o varios criterios.
Revisión : actualiza un origen de datos o combina registros.
Predeterminado : devuelve los valores predeterminados para un origen
de datos.
Propiedades que devuelven registros:
Seleccionado: se aplica a galerías y cuadros de lista. Devuelve el registro
seleccionado actualmente.
Actualizaciones: se aplica a las galerías. Reúne todos los cambios que
realiza un usuario en un formulario de entrada de datos.
Actualizar : se aplica a los controles de entrada, como controles
deslizantes y controles de entrada de texto. Configura las propiedades
individuales para que se recopilen en la galería.

Ámbito del informe


Algunas funciones se aplican mediante la evaluación de una fórmula en todos
los registros de una tabla de forma individual. El resultado de la fórmula se
utiliza de varias maneras:
AgregarColumnas: la fórmula proporciona el valor del campo agregado.
Media, Max, Min, Sum, DesvesTP, VarP: la fórmula proporciona el valor
que se va a agregar.
Filtrar, Búsqueda: la fórmula determina si el registro debe incluirse en la
salida.
Concatenar: la fórmula determina las cadenas que se deben concatenar.
Distinto: la fórmula devuelve un valor, que se usa para identificar
registros duplicados.
Forall : la fórmula puede devolver cualquier valor, potencialmente con
efectos secundarios.
Ordenar: la fórmula ofrece el valor en función del cual ordenar los
registros.
With -formula puede devolver cualquier valor, potencialmente con efectos
secundarios.
Dentro de estas fórmulas, puede hacer referencia a los campos del registro
que se va a procesar. Cada una de estas funciones crea un "ámbito de
registro" en el que se evalúa la fórmula, donde los campos del registro están
disponibles como identificadores de primer nivel. También puede hacer
referencia a propiedades de control y a otros valores en toda la aplicación.
Por ejemplo, considere una tabla de Productos:

Para crear esta tabla de ejemplo en la aplicación, inserte un botón, establezca


su propiedad alseleccionar en esta fórmula y, a continuación, seleccione el
botón (haga clic en él mientras mantiene presionada la tecla Alt en
PowerApps Studio):

Set( Products;
Table(
{ Product: "Widget"; 'Quantity Requested': 6; 'Quantity
Available': 3 };
{ Product: "Gadget"; 'Quantity Requested': 10; 'Quantity
Available': 20 };
{ Product: "Gizmo"; 'Quantity Requested': 4; 'Quantity
Available': 11 };
{ Product: "Apparatus"; 'Quantity Requested': 7; 'Quantity
Available': 6 }
)
)
Para determinar si alguno de estos productos tenía más solicitado que el que
está disponible:
Filter( Products; 'Quantity Requested' > 'Quantity Available' )

El primer argumento para Filtrar es la tabla de registros en los que operar, y


el segundo argumento es una fórmula. Filtrar crea un ámbito de registro para
evaluar esta fórmula en la que están disponibles los campos de cada registro;
en este caso, Producto, Cantidad en pedido y Cantidad disponible. El
resultado de la comparación determina si cada registro debe incluirse en el
resultado de la función:

Según este ejemplo, podemos calcular qué cantidad de cada producto


solicitar:

AddColumns(
Filter( Products; 'Quantity Requested' > 'Quantity Available' );
"Quantity To Order"; 'Quantity Requested' - 'Quantity Available'
)

A continuación, se va a agregar una columna calculada al resultado.


AgregarColumnas tiene su propio ámbito de registro que se utiliza para
calcular la diferencia entre lo que se ha solicitado y lo que está disponible.

Por último, podemos reducir la tabla de resultados a solo las columnas que
queremos:

ShowColumns(
AddColumns(
Filter( Products; 'Quantity Requested' > 'Quantity Available' );
"Quantity To Order"; 'Quantity Requested' - 'Quantity Available'
);
"Product";
"Quantity To Order"
)

Tenga en cuenta que en la fórmula anterior, se han usado comillas dobles (")
en algunos casos y comillas simples (') en otros. Las comillas simples son
necesarias cuando se hace referencia al valor de un objeto, como un campo o
una tabla, donde el nombre del objeto contiene un espacio. Las comillas
dobles se usan cuando no se hace referencia al valor de un objeto, sino que se
habla de él, sobre todo en situaciones en que el objeto todavía no existe,
como en el caso de AgregarColumnas.
Anulación de ambigüedades
Los nombres de campo agregados con el ámbito de registro anulan los
mismos nombres de los restantes lugares de la aplicación. Cuando esto
sucede, para acceder a los valores desde fuera del ámbito de registro hay que
utilizar el operador @ de anulación de ambigüedades:
Para acceder a valores de ámbitos de registro anidados, use el operador @
con el nombre de la tabla en la que opera mediante este modelo:
Table [@ FieldName ]
Para acceder a valores globales, como orígenes de datos, colecciones y
variables de contexto, use el modelo [@ ObjectName ] (sin designación de
tabla).
Si la tabla en la que se opera es una expresión, como Filter( Table , ... ) , no se
puede usar el operador de desambiguación. Solo el ámbito de registro más
interno puede acceder a los campos de esta expresión de tabla, pero sin usar
el operador de anulación de ambigüedades.
Por ejemplo, imagine que tiene una colección X:

Puede crear esta colección con BorrarColección( X; [1; 2] ) .


Y otra colección Y:

Puede crear esta colección con BorrarColección( Y; ["A"; "B"] ) .


Además, defina una variable de contexto denominada Value con esta
fórmula: UpdateContext ({valor: "!"})
Se va a agrupar todo. En este contexto, la fórmula siguiente:

Ungroup(
ForAll( X;
ForAll( Y;
Y[@Value] & Text( X[@Value] ) & [@Value]
)
);
"Value"
)

genera esta tabla:


¿Qué sucede aquí? La función ParaTodo más externa define un ámbito de
registro para X, que permite acceder al campo Valor de cada registro a
medida que se procesa. Puede acceder a él con tan solo usar la palabra Valor
o X[@Value] .
La función ParaTodo más interna define otro ámbito de registro para Y.
Puesto que esta tabla también tiene un campo Valor definido, el uso de Valor
aquí hace referencia al campo del registro de Y y ya no hace referencia al de
X. Aquí, para acceder al campo Valor de X, es necesario usar la versión más
larga con el operador de anulación de ambigüedades.
Puesto que Y es el ámbito de registro más interno, el acceso a los campos de
esta tabla no precisa de la anulación de desambigüedades, lo que permite
usar esta fórmula con el mismo resultado:

Ungroup(
ForAll( X;
ForAll( Y;
Value & Text( X[@Value] ) & [@Value]
)
);
"Value"
)

Todos los ámbitos de registro ParaTodo invalidan el ámbito global. La


variable de contexto de valor que definimos no está disponible por el nombre
sin el operador de desambiguación. Para tener acceso a este valor, use
[@Value] .
Ungroup reduce el resultado porque las funciones de forall anidadas dan
como resultado una tabla de resultados anidada.

Tablas de una sola columna


Para operar en una sola columna de una tabla, use la función
mostrarcolumnas como en este ejemplo:

ShowColumns( Products; "Product" )

Esta fórmula genera esta tabla de una sola columna:

Para una alternativa más corta, especifique TABLE. Column, que extrae la
tabla de una sola columna de la columna solo de la tabla. Por ejemplo, esta
fórmula produce exactamente el mismo resultado que el uso de
mostrarcolumnas.

Products.Product
Registros en línea
Exprese registros con el uso de llaves que contienen valores de campo con
nombre. Por ejemplo, puede expresar el primer registro en la tabla al inicio de
este tema mediante la utilización de la fórmula:
{ Name: "Chocolate"; Price: 3,95; 'Quantity on Hand': 12; 'Quantity on
Order': 10 }

También puede insertar fórmulas dentro de otras, como se muestra en este


ejemplo:
{ Name: First(Products).Name; Price: First(Products).Price * 1,095 }

Puede anidar registros mediante llaves de anidación, como se muestra en


este ejemplo:
{ 'Quantity': { 'OnHand': ThisItem.QuantOnHand; 'OnOrder':
ThisItem.QuantOnOrder } }

Encierre cada nombre de columna que contiene un carácter especial, como un


espacio o dos puntos, entre comillas simples. Para usar una comilla simple
dentro de un nombre de columna, duplíquela.
Tenga en cuenta que el valor de la columna Precio no incluye ningún símbolo
de moneda, como un signo de dólar. Dicho formato se aplicará cuando se
muestre el valor.

Tablas insertadas
Puede crear una tabla mediante la utilización de la función Tabla y un
conjunto de registros. Puede expresar la tabla al inicio de este tema mediante
la utilización de la fórmula:

Table(
{ Name: "Chocolate"; Price: 3,95; 'Quantity on Hand': 12; 'Quantity on
Order': 10 };
{ Name: "Bread"; Price: 4,95; 'Quantity on Hand': 34; 'Quantity on
Order': 0 };
{ Name: "Water"; Price: 4,95; 'Quantity on Hand': 10; 'Quantity on
Order': 0 }
)

También puede anidar tablas:

Table(
{ Name: "Chocolate";
'Quantity History': Table( { Quarter: "Q1"; OnHand: 10; OnOrder: 10
};
{ Quarter: "Q2"; OnHand: 18; OnOrder: 0 }
)
}
)

Tablas de valores insertados


Puede crear tablas de una sola columna mediante la definición de valores
entre corchetes. La tabla resultante tiene una sola columna, denominada
Valor.
Por ejemplo, [ 1; 2; 3; 4 ] es equivalente a
Table( { Value: 1 }; { Value: 2 }; { Value: 3 }; { Value: 4 } ) y devuelve
esta tabla:
Descripción de las referencias de registros y las
búsquedas polimórficas en las aplicaciones de
Canvas
05/11/2019 • 37 minutes to read

Al escribir un documento de investigación en School, es probable que haya proporcionado una lista de las
referencias al final. No incluyó una copia del material de fondo real que usó, sino un vínculo Web, un título de
libro y un autor u otra información para que alguien pueda realizar un seguimiento del origen original. Ha
mezclado distintos tipos de orígenes en una sola lista, artículos de periódicos junto a grabaciones de audio, cada
uno con sus propios detalles específicos para una cita adecuada. Por ejemplo, los artículos de Wikipedia suelen
incluir una larga lista de referencias.
En las aplicaciones de lienzo, a menudo se trabaja con copias de registros descargados de orígenes de datos. Use
las funciones de búsqueda y filtrado y la propiedad seleccionada del control Galería para identificar el registro
específico que desea. Todos los registros de Filter o selected serán del mismo tipo de entidad, por lo que puede
usar campos con un simple. Notación de campo . Estas copias suelen incluir información de referencia, por lo que
puede usar la función patch para actualizar el origen original.
Las aplicaciones de lienzo también admiten referencias de registros. De forma muy parecida a una referencia en
papel de investigación, una referencia de registro hace referencia a un registro sin incluir una copia completa del
mismo. Una referencia de este tipo puede hacer referencia a un registro de cualquier entidad. Además de las
referencias de papel de investigación, puede mezclar registros de diferentes entidades en una sola columna.
Muchas operaciones en las referencias de registro son idénticas a trabajar con registros. Puede comparar
referencias de registro entre sí y con registros completos. Puede establecer el valor de una referencia de registro
con la función patch tal como lo haría con una búsqueda con un registro completo.
Hay una diferencia de uso importante: no puede acceder directamente a los campos de una referencia de registro
sin tener que establecer primero la entidad a la que hace referencia. Esto se debe a que las aplicaciones de lienzo
requieren que se conozcan todos los tipos al escribir fórmulas. Dado que no conoce el tipo de una referencia de
registro hasta que se ejecuta la aplicación, no puede usar la sencilla. Notación de campo directamente. Primero
debe determinar dinámicamente el tipo de entidad con la función IsType y, a continuación, usar. Notación de
campo en el resultado de la función astype .
El tipo de entidad hace referencia al esquema de cada registro de una entidad. Cada entidad tiene un conjunto
único de campos con nombres y tipos de datos diferentes. Cada registro de la entidad hereda esa estructura; dos
registros tienen el mismo tipo de entidad si proceden de la misma entidad.

Búsquedas polimórficas
Common Data Service admite relaciones entre los registros. Cada registro de la entidad cuentas tiene un campo
principal de búsqueda de contactos en un registro de la entidad contactos . La búsqueda solo puede hacer
referencia a un registro de contactos y no puede hacer referencia a un registro en, por ejemplo, la entidad
equipos . Este último detalle es importante porque siempre sabe qué campos estarán disponibles para la
búsqueda.
Common Data Service también admite búsquedas polimórficas, que pueden hacer referencia a un registro de
cualquier entidad de un conjunto. Por ejemplo, el campo propietario puede hacer referencia a un registro de la
entidad usuarios o de la entidad equipos . El mismo campo de búsqueda en distintos registros podría hacer
referencia a los registros de entidades diferentes. En este caso, no siempre sabe qué campos estarán disponibles.
Las referencias de los registros de Canvas se diseñaron para trabajar con búsquedas polimórficas en Common
Data Service. También puede utilizar las referencias de registros fuera de este contexto, que es la diferencia entre
los dos conceptos.
En la siguiente sección, comenzará a explorar estos conceptos trabajando con la búsqueda de propietario .

Mostrar los campos de un propietario de registro


Cada entidad de Common Data Service incluye un campo de propietario . Este campo no se puede quitar, no se
puede agregar otro, y siempre requiere un valor.
Para mostrar ese campo en la entidad cuenta :
1. Abra este sitio de PowerApps.
2. En la barra de navegación izquierda, seleccione datos > entidades.
3. En la lista de entidades, seleccione cuenta.
4. En la esquina superior derecha, abra la lista de filtros (que está establecida en predeterminada de forma
predeterminada) y, a continuación, seleccione todo.
5. Desplácese hacia abajo hasta que aparezca el campo propietario .

Este campo de búsqueda puede hacer referencia a un registro de la entidad equipos o de la entidad usuarios .
No todos los registros de estas entidades tienen permiso para ser propietarios; Compruebe los roles admitidos
si surge un problema.
En este gráfico se muestra una sencilla Galería de cuentas, donde la entidad cuentas se ha agregado a la
aplicación como un origen de datos:
IMPORTANT
En este tema, los gráficos muestran algunos nombres y otros valores que no forman parte de los datos de ejemplo que se
suministran con Common Data Service. Los pasos demuestran con precisión cómo configurar controles para un resultado
determinado, pero su experiencia variará en función de los datos de su organización.

Para mostrar el propietario de cada cuenta en la galería, es posible que se sienta tentado a usar la fórmula
ThisItem.Owner.Name. Sin embargo, el campo Nombre de la entidad equipo es nombre del equipoy el
campo Nombre de la entidad usuario es nombre completo. La aplicación no puede conocer el tipo de
búsqueda con el que está trabajando hasta que ejecute la aplicación y puede variar entre los registros de la
entidad cuentas .
Necesita una fórmula que se pueda adaptar a esta varianza. También debe agregar los orígenes de datos para los
tipos de entidad que el propietario podría ser (en este caso, usuarios y equipos). Agregue estos tres orígenes
de datos a la aplicación:

Con estos orígenes de datos en su lugar, use esta fórmula para mostrar el nombre de un usuario o un equipo:

If( IsType( ThisItem.Owner; [@Teams] );


"Team: " & AsType( ThisItem.Owner; [@Teams] ).'Team Name';
"User: " & AsType( ThisItem.Owner; [@Users] ).'Full Name' )
En esta fórmula, la función IsType prueba el campo propietario con la entidad Teams . Si es de ese tipo de
entidad, la función astype lo convierte en un registro de equipo . En este momento, puede tener acceso a todos
los campos de la entidad Teams , incluido el nombre del equipo, mediante el . Notación de campo. Si IsType
determina que el propietario no es un registro de la entidad Teams , ese campo debe ser un registro de la
entidad users porque el campo Owner es obligatorio (no puede estar en blanco).
Utiliza el operador de desambiguación global para [@Teams] y [@Users] para asegurarse de que está usando el
tipo de entidad global. En este caso, no es necesario, pero es un buen hábito formar. Las relaciones uno a varios a
menudo entran en conflicto en el ámbito de registro de la galería y esta práctica evita esa confusión.
Para usar cualquier campo de una referencia de registro, primero debe usar la función astype para convertirlo en
un tipo de entidad concreto. No se puede acceder a los campos directamente desde el campo propietario porque
el sistema no sabe qué tipo de entidad desea usar.
La función astype devuelve un error si el campo Owner no coincide con el tipo de entidad que se solicita, por lo
que puede usar la función de tipo de mensaje para simplificar esta fórmula. En primer lugar, active la
característica experimental Administración de errores de nivel de fórmula:

A continuación, reemplace la fórmula anterior por esta:

IfError(
"Team: " & AsType( ThisItem.Owner; [@Teams] ).'Team Name';
"User: " & AsType( ThisItem.Owner; [@Users] ).'Full Name' )

Filtrar según un propietario


Enhorabuena: ha terminado el aspecto más difícil de trabajar con una referencia de registro. Otros casos de uso
son más sencillos porque no tienen acceso a los campos del registro. Como caso en el punto, tome el filtrado, que
explorará en esta sección.
Agregue un control de cuadro combinado sobre la galería y establezca estas propiedades del nuevo control:
Elementos: Users
SelectMultiple: false

Para filtrar la galería por un usuario específico seleccionado en este cuadro combinado, establezca la propiedad
elementos de la galería en esta fórmula:

Filter( Accounts; Owner = ComboBox1.Selected )


IMPORTANT
Las instrucciones de este tema son precisas si sigue los pasos exactamente. Sin embargo, se produce un error en cualquier
fórmula que haga referencia a un control por su nombre si el control tiene un nombre diferente. Si elimina y agrega un
control del mismo tipo, cambia el número al final del nombre del control. Para cualquier fórmula que muestre un error,
confirme que contiene los nombres correctos de todos los controles.

No es necesario usar IsType o astype porque está comparando las referencias de registros con otras referencias
de registros o con registros completos. La aplicación conoce el tipo de entidad de ComboBox1. seleccionado
porque se deriva de la entidad usuarios . Las cuentas para las que el propietario es un equipo no coinciden con el
criterio de filtro.
Puede obtener un poco más elegante si admite el filtrado por parte de un usuario o un equipo.
1. Para colocar espacio cerca de la parte superior de la pantalla, cambie el tamaño de la galería y mueva el
cuadro combinado, inserte un control radio sobre la galería y, a continuación, establezca estas propiedades
para el nuevo control:
Elementos: [ "All"; "Users"; "Teams" ]
Diseño: Layout.Horizontal
2. En el caso del control de cuadro combinado , establezca esta propiedad (si el cuadro combinado
desaparece, seleccione usuarios en el control de radio):
Visible: Radio1.Selected.Value = "Users"
3. Copie y pegue el control de cuadro combinado , mueva la copia directamente sobre la original y, a
continuación, establezca estas propiedades para la copia:
Elementos: Teams
Visible: Radio1.Selected.Value = "Teams"
La aplicación solo mostrará un cuadro combinado cada vez, en función del estado del control de radio.
Como están directamente encima de otras, parecerá que son el mismo control que cambia su contenido.
4. Por último, establezca la propiedad elementos del control Galería en esta fórmula:

Filter( Accounts;
Radio1.Selected.Value = "All"
Or (Radio1.Selected.Value = "Users" And Owner = ComboBox1.Selected)
Or (Radio1.Selected.Value = "Teams" And Owner = ComboBox1_1.Selected)
)
Con estos cambios, puede mostrar todos los registros o filtrarlos en función de un usuario o un equipo:

La fórmula es totalmente delegables. La parte que compara los valores del botón de radio es una constante en
todos los registros y se evalúa antes de que se envíe el resto del filtro a Common Data Service.
Si desea filtrar según el tipo del propietario, puede usar la función IsType , pero todavía no se delegables.
Actualizar el propietario mediante el uso de patch
Puede actualizar el campo propietario de la misma manera que cualquier otra búsqueda. Para establecer el
propietario de la cuenta seleccionada actualmente en el primer equipo:

Patch( Accounts; Gallery1.Selected; { Owner: First( Teams ) } )

Este enfoque no difiere de una búsqueda normal porque la aplicación conoce el tipo de primero (equipos) . Si
desea el primer usuario en su lugar, reemplace esa parte con el primero (usuarios) . La función patch sabe que
el campo Owner se puede establecer en cualquiera de estos dos tipos de entidad.
Para agregar esta funcionalidad a la aplicación:
1. En el panel de vista de árbol , seleccione el control de radio y los dos controles de cuadro combinado al
mismo tiempo.
2. En el menú de puntos suspensivos, seleccione copiar estos elementos.
3. En el mismo menú, seleccione pegar.

4. Mueva los controles copiados a la derecha de la galería.


5. Seleccione el control de radio copiado y, a continuación, cambie estas propiedades:
Elementos: [ "Users"; "Teams" ]
Valor predeterminado: If( IsType( Gallery1.Selected.Owner; Users ); "Users"; "Teams" )

6. En el control radio , seleccione usuarios para que el control de cuadro combinado que muestra los
usuarios esté visible.
7. Seleccione el control de cuadro combinado visible y, a continuación, establezca la propiedad
DefaultSelectedItems en esta fórmula:

If( IsType( Gallery1.Selected.Owner; Users );


AsType( Gallery1.Selected.Owner; Users );
Blank()
)
8. En el control radio , seleccione equipos para que el control de cuadro combinado que muestra los
equipos sea visible.
9. Seleccione el control de radio para quitar la selección del control de cuadro combinado ahora invisible
para los usuarios.
10. Seleccione el control de cuadro combinado visible para equipos y, a continuación, establezca su
propiedad DefaultSelectedItems en esta fórmula:

If( IsType( Gallery1.Selected.Owner; Teams );


AsType( Gallery1.Selected.Owner; Teams );
Blank()
)

11. Inserte un control de botón , muévalo debajo del control de cuadro combinado y, a continuación,
establezca la propiedad Text del botón en "Patch Owner" .
12. Establezca la propiedad alseleccionar del botón en esta fórmula:

Patch( Accounts; Gallery1.Selected;


{ Owner: If( Radio1_1.Selected.Value = "Users";
ComboBox1_2.Selected;
ComboBox1_3.Selected ) } )

Los controles de radio y de cuadro combinado copiados muestran el propietario de la cuenta seleccionada
actualmente en la galería. Con los mismos controles, puede establecer el propietario de la cuenta en cualquier
equipo o usuario seleccionando el botón:

Mostrar el propietario mediante un formulario


Puede mostrar un campo propietario dentro de un formulario agregando una tarjeta personalizada. En el que se
redactó este documento, no se puede cambiar el valor del campo con un control de formulario.
1. Inserte un control Editar formulario y, a continuación, cambie su tamaño y muévalo a la esquina inferior
derecha.
2. En la pestaña propiedades situada cerca del lado derecho de la pantalla, abra la lista origen de datos y, a
continuación, seleccione cuentas.

3. Establezca la propiedad Item del formulario en Gallery1.Selected .

4. En la pestaña propiedades situada cerca del lado derecho de la pantalla, seleccione Editar campos.
5. En el panel campos , seleccione los puntos suspensivos y, a continuación, seleccione Agregar una tarjeta
personalizada.
La nueva tarjeta aparece en la parte inferior del control de formulario.
6. Cambie el tamaño de la tarjeta según sea necesario para mostrar todo el texto.

7. Inserte un control etiqueta en la tarjeta personalizada y, a continuación, establezca la propiedad texto de


la etiqueta en la fórmula que usó en la Galería:

If( IsType( ThisItem.Owner; Teams );


"Team: " & AsType( ThisItem.Owner; Teams ).'Team Name';
"User: " & AsType( ThisItem.Owner; Users ).'Full Name' )
Para cada selección de la galería, aparecen en el formulario más campos de la cuenta, incluido el propietario del
registro. Si cambia el propietario con el botón patch , el control de formulario también muestra ese cambio.

Mostrar los campos de un cliente


En Common Data Service, el campo de búsqueda de clientes es otra búsqueda polimórfica que es muy similar al
propietario.
Owner está limitado a uno por entidad, pero las entidades pueden incluir cero, uno o más campos de búsqueda
de clientes . La entidad sistema de contactos incluye el campo Nombre de la compañía , que es un campo de
búsqueda de clientes .

Puede agregar más campos de búsqueda de clientes a una entidad seleccionando el tipo de datos Customer
para un campo nuevo.
Los campos de búsqueda de clientes pueden hacer referencia a un registro de la entidad accounts o de la
entidad Contacts . Usará las funciones IsType y astype con estas entidades, por lo que ahora es un buen
momento para agregarlas como orígenes de datos (puede dejar los equipos y los usuarios en su lugar).

El tratamiento de los campos cliente y propietario es tan similar que puede copiar literalmente la aplicación
(archivo > Guardar comoy, a continuación, especificar un nombre diferente) y realizar estos reemplazos
sencillos:

LOCATION EJEMPLO OWNER EJEMPLO DE CLIENTE

Todas Propietario ' Nombre del cliente '

Todas Pueden Contabilidad

Todas Asocia Sus

Propiedad Items de la galería Contabilidad Sus

Propiedad Items del formulario Contabilidad Sus


LOCATION EJEMPLO OWNER EJEMPLO DE CLIENTE

Primer argumento de patch Contabilidad Sus


en la propiedad alseleccionar del
botón

Propiedad filtrar elementos de radio [ "todos"; "usuarios"; "equipos" ] [ "todas"; "cuentas"; "contactos" ]

Propiedad elementos de radio de ["Usuarios"; "equipos"] ["Accounts"; "Contacts"]


revisión

Propiedad visible del cuadro "Usuarios" y "equipos" "Cuentas" y "contactos"


combinado

Por ejemplo, la nueva galería debe tener esta propiedad Items :

Filter( Contacts;
Radio1.Selected.Value = "All"
Or (Radio1.Selected.Value = "Accounts" And 'Company Name' = ComboBox1.Selected)
Or (Radio1.Selected.Value = "Contacts" And 'Company Name' = ComboBox1_1.Selected)
)

Dos diferencias importantes entre Customer y Owner requieren una actualización de las fórmulas dentro de la
galería y el formulario:
1. Las relaciones uno a varios entre cuentas y contactos tienen prioridad cuando se hace referencia a estos
tipos de entidad por nombre. En lugar de cuentas, use [cuentas de @] ; en lugar de contactos, use
[@contactos] . Mediante el operador de desambiguación global, asegúrese de que hace referencia al tipo
de entidad en IsType y astype. Este problema solo existe en el contexto de registro de la galería y los
controles de formulario.
2. El campo propietario debe tener un valor, pero los campos de cliente pueden estar en blanco. Para
mostrar el resultado correcto sin un nombre de tipo, pruebe este caso con la función esblanco y muestre
una cadena de texto vacía en su lugar.
Ambos de estos cambios están en la misma fórmula, que aparece en la tarjeta personalizada en el formulario, así
como en la propiedad texto del control etiqueta de la Galería:
If( IsBlank( ThisItem.'Company Name' ); "";
IsType( ThisItem.'Company Name'; [@Accounts] );
"Account: " & AsType( ThisItem.'Company Name'; [@Accounts] ).'Account Name';
"Contact: " & AsType( ThisItem.'Company Name'; [@Contacts] ).'Full Name'
)

Con estos cambios, puede ver y cambiar el campo nombre de la compañía en la entidad contactos .

Comprender con respecto a los campos de búsqueda


El campo de búsqueda referente a se diferencia de los que ya ha trabajado en este tema. Empezará aplicando los
patrones descritos anteriormente en este tema y, a continuación, aprenderá otros trucos.
Puede empezar simplemente con la entidad faxes . Esta entidad tiene una polimórfico relacionada con el campo
de búsqueda, que puede hacer referencia a cuentas, contactosy otras entidades. Puede usar la aplicación para
clientes y modificarla para faxes.
LOCATION EJEMPLO DE CLIENTE EJEMPLO DE FAXES

Todas ' Nombre del cliente ' Sobre

Propiedad Items de la galería Sus Faxes

Propiedad Items del formulario Sus Faxes

Primer argumento de patch Sus Faxes


en la propiedad alseleccionar del
botón

De nuevo, tendrá que agregar un origen de datos: esta vez para faxes. En la pestaña Ver , seleccione orígenes de
datos:

Una diferencia importante con respecto a es que no se limita a las cuentas y los contactos. De hecho, la lista de
entidades es extensible con entidades personalizadas. La mayoría de la aplicación puede acomodar este punto sin
modificaciones, pero debe actualizar la fórmula de la etiqueta en la galería y el formulario:

If( IsBlank( ThisItem.Regarding ); "";


IsType( ThisItem.Regarding; [@Accounts] );
"Account: " & AsType( ThisItem.Regarding; [@Accounts] ).'Account Name';
IsType( ThisItem.Regarding; [@Contacts] );
"Contacts: " & AsType( ThisItem.Regarding; [@Contacts] ).'Full Name';
""
)
Después de realizar estos cambios, trabajará con la búsqueda relacionada tal como hizo con el propietario y las
búsquedas del cliente .

Descripción de las relaciones


En lo que respecta difiere del propietario y del cliente porque el primero implica una relación de varios a uno.
Por definición, una relación de uno a varios inversa le permite escribir primero (cuentas). Faxes.
Vamos a realizar una copia de seguridad y examinar las definiciones de entidad. En Common Data Service, las
entidades como faxes, tareas, correos electrónicos, notas, llamadas telefónicas, cartasy chats se designan
como actividades. También puede crear sus propias entidades de actividad personalizadas. Al ver o crear una
entidad de actividad, su configuración aparece en más configuraciones.
Otras entidades pueden estar relacionadas con una entidad de actividad si están habilitadas como una tarea de
actividad en la configuración de la entidad. Las cuentas, los contactosy muchas otras entidades estándar se
deben designar (de nuevo, en más configuraciones).

Todas las entidades de actividad y las entidades de tarea-tarea tienen una relación implícita. Si cambia el filtro a
todo en la parte superior de la pantalla, selecciona la entidad faxes y, a continuación, selecciona la pestaña
relaciones , se mostrarán todas las entidades que pueden ser un destino de una búsqueda relacionada .

Si muestra las relaciones de la entidad cuentas , aparecen todas las entidades que pueden ser un origen de un
campo de búsqueda referente a.
¿Qué significa todo?

Al escribir fórmulas, debe tener en cuenta que la lista de entidades de actividad no es fija y puede crear la suya
propia. La fórmula debe administrar correctamente una entidad de actividad que no se esperaba.
Las actividades y tareas de actividad tienen una relación de uno a varios. Puede solicitar fácilmente todos los
faxes relacionados con una cuenta.
Para explorar este concepto en la aplicación:
1. Agregue otra pantalla.

2. Inserte un control de galería, cambie su tamaño y, a continuación, muévalo a la parte izquierda de la


pantalla.
3. En la pestaña propiedades situada cerca del lado derecho de la pantalla, establezca los elementos de la
galería en cuentas.

4. Establezca el diseño de la galería en títuloy, a continuación, establezca el campo título en nombre de


cuenta.

5. Agregue una segunda galería, cambie su tamaño y, a continuación, muévala al lado derecho de la pantalla.
6. Establezca la propiedad elementos de la nueva galería en Gallery2.Selected.Faxes .
Este paso devuelve la lista filtrada de faxes para una cuenta determinada.
7. Establezca el diseño de la galería en título y subtítuloy, a continuación, establezca el campo título para
mostrar el campo asunto (que puede estar en minúsculas).

A medida que selecciona un elemento en la lista de cuentas, la lista de faxes solo muestra faxes para esa cuenta.
Entidad de actividad
Como se describe en la sección anterior, puede mostrar todos los faxes de una cuenta. Sin embargo, también
puede mostrar todas las actividades de una cuenta, incluidos los faxes, mensajes de correo electrónico, llamadas
telefónicas y otras interacciones.
En el segundo escenario, se usa la entidad de actividad . Puede mostrar esta entidad activando todo en la
esquina superior derecha para quitar el filtro de la lista de entidades.

La entidad de actividad es especial. Siempre que se agrega un registro a la entidad faxes , el sistema también
crea un registro en la entidad actividad con los campos que son comunes a todas las entidades de actividad. De
esos campos, el asunto es uno de los más interesantes.
Puede mostrar todas las actividades cambiando solo una línea en el ejemplo anterior. Reemplace
Gallery2.Selected.Faxes por Gallery2.Selected.Activities .

Los registros provienen de la entidad de actividad , pero puede usar la función IsType para identificar el tipo de
actividad que son. De nuevo, antes de utilizar IsType con un tipo de entidad, debe agregar el origen de datos.
Con esta fórmula, puede mostrar el tipo de registro en un control etiqueta dentro de la Galería:

If( IsType( ThisItem; [@Faxes] ); "Fax";


IsType( ThisItem; [@'Phone Calls'] ); "Phone Call";
IsType( ThisItem; [@'Email Messages'] ); "Email Message";
IsType( ThisItem; [@Chats] ); "Chat";
"Unknown"
)
También puede usar astype para tener acceso a los campos del tipo específico. Por ejemplo, esta fórmula
determina el tipo de cada actividad y, en el caso de las llamadas telefónicas, muestra el número de teléfono y la
dirección de llamada de la entidad números de teléfono :

If( IsType( ThisItem; [@Faxes] ); "Fax";


IsType( ThisItem; [@'Phone Calls'] );
"Phone Call: " &
AsType( ThisItem; [@'Phone Calls'] ).'Phone Number' &
" (" & AsType( ThisItem; [@'Phone Calls'] ).Direction & ")";
IsType( ThisItem; [@'Email Messages'] ); "Email Message";
IsType( ThisItem; [@Chats] ); "Chat";
"Unknown"
)
Como resultado, la aplicación muestra una lista completa de las actividades. El campo asunto aparece para todos
los tipos de actividades, tanto si la fórmula los tiene en cuenta como si no. En el caso de los tipos de actividades
que conoce, puede mostrar sus nombres de tipo e información específica del tipo de cada actividad.

Entidad de notas
Hasta ahora, todos los ejemplos relacionados se basaban en actividades, pero la entidad notas representa otro
caso.
Al crear una entidad, puede habilitar los datos adjuntos.

Si activa la casilla para habilitar los datos adjuntos, creará una relación relacionada con la entidad notas , como
se muestra en este gráfico para la entidad cuentas :
Aparte de esta diferencia, se usa la búsqueda relacionada de la misma manera en que se usan las actividades.
Las entidades que están habilitadas para los datos adjuntos tienen una relación de uno a varios con las notas,
como en este ejemplo:
First( Accounts ).Notes

NOTE
En el que se redactó este documento, la búsqueda relacionada no está disponible para la entidad notas . No se puede leer
ni filtrar según el campo referente a y no se puede establecer el campo mediante patch.
Sin embargo, la relación inverso de notas de uno a varios está disponible, por lo que puede filtrar una lista de notas para un
registro habilitado para los datos adjuntos. También puede usar la función Relate para agregar una nota a la tabla de notas
de un registro, pero primero se debe crear la nota, como en este ejemplo:
Relate( ThisItem.Notes; Patch( Notes; Defaults( Notes ); { Title: "A new note" } ) )

Entidades de actividad
En el que se redactó este documento, las aplicaciones de lienzo no admiten las entidades de actividad.
Agregar y configurar un control de aplicación
de lienzo en PowerApps
05/11/2019 • 10 minutes to read

Agregue diversos elementos de interfaz de usuario a su aplicación de lienzo y configure aspectos de


su apariencia y comportamiento directamente desde la barra de herramientas, en la pestaña
Propiedades, o en la barra de fórmulas. Estos elementos de interfaz de usuario se denominan
controles y los aspectos que configura se denominan propiedades.

Requisitos previos
1. Si aún no tiene una licencia de PowerApps, Regístresey, a continuación, inicie sesión.
2. En crear su propia aplicación, mantenga el mouse sobre la aplicación Canvas en
blancoy, a continuación, seleccione crear esta aplicación.
3. Si se le pide que realice el paseo introductorio, seleccione siguiente para familiarizarse con
las áreas clave de la interfaz de PowerApps (o seleccione omitir).
Siempre puede realizar el paseo más adelante seleccionando el icono de signo de
interrogación situado cerca de la esquina superior derecha de la pantalla y, a continuación,
seleccionando realizar el paseo introductorio.

Agregar y seleccionar un control


En la pestaña Insertar , realice cualquiera de estos pasos:
Seleccione etiqueta o botón para agregar uno de esos tipos de controles.
Seleccione una categoría de controles y, a continuación, seleccione el tipo de control que desea
agregar.
Por ejemplo, seleccione nueva pantallay, a continuación, seleccione en blanco para agregar una
pantalla en blanco a la aplicación. (Las pantallas son un tipo de control que puede contener otros
tipos de controles).

La nueva pantalla se denomina Screen2 y aparece en el panel de navegación izquierdo. Este panel
muestra una lista jerárquica de los controles de la aplicación para que pueda encontrar y seleccionar
cada control fácilmente.
Para demostrar cómo funciona esta lista, seleccione etiqueta en la pestaña Insertar . El nuevo
control aparece en Screen2 en la lista jerárquica.

En la pantalla, un cuadro con seis controladores rodea la etiqueta de forma predeterminada. Ese tipo
de cuadro rodea el control que está seleccionado. Si selecciona la pantalla haciendo clic o pulsando
en ella (pero fuera de la etiqueta), el cuadro desaparece de la etiqueta. Para volver a seleccionar la
etiqueta, puede hacer clic o pulsar en ella, o puede hacer clic o pulsar en su nombre en la lista
jerárquica de controles.

IMPORTANT
Siempre debe seleccionar un control antes de poder configurarlo.

Cambiar el nombre de un control


En la lista jerárquica de controles, mantenga el mouse sobre el control cuyo nombre desea cambiar,
seleccione el botón de puntos suspensivos que aparece y, a continuación, seleccione cambiar
nombre. Después, puede escribir un nombre único y memorable para facilitar la compilación de la
aplicación.

Eliminar un control
En la lista jerárquica de controles, mantenga el mouse sobre el control que desea eliminar, seleccione
el botón de puntos suspensivos que aparece y, a continuación, seleccione eliminar. Para eliminar un
control que no es una pantalla, también puede seleccionar el control en el lienzo y, a continuación,
presionar la tecla Supr.
Cambiar el orden de las pantallas
En la lista jerárquica de controles, mantenga el mouse sobre una pantalla que desea mover hacia
arriba o hacia abajo, seleccione el botón de puntos suspensivos que aparece y, a continuación,
seleccione subir o bajar.

NOTE
Cuando se abre la aplicación, la pantalla situada en la parte superior de la lista jerárquica de controles suele
aparecer en primer lugar. Pero puede especificar una pantalla diferente si establece la propiedad OnStart en
una fórmula que incluya la función Navigate .

Movimiento y cambio de tamaño de un control


Para mover un control, selecciónelo, mantenga el mouse sobre el centro para que aparezca la flecha
de cuatro puntas y, a continuación, arrastre el control a una ubicación diferente.

Para cambiar el tamaño de un control, selecciónelo, mantenga el mouse sobre cualquier controlador
en el cuadro de selección para que aparezca la flecha de dos puntas y, a continuación, arrastre el
controlador.

NOTE
Como se describe más adelante en este tema, también puede moverse y cambiar el tamaño de un control
modificando cualquier combinación de sus propiedades X , y , height y width en la barra de fórmulas.

Cambiar el texto de una etiqueta o un botón


Seleccione una etiqueta o un botón, haga doble clic en el texto que aparece en el control y, a
continuación, escriba el texto que desee.

NOTE
Como se describe más adelante en este tema, también puede cambiar este texto modificando su propiedad
texto en la barra de fórmulas.

Configuración de un control desde la barra de herramientas


Al configurar un control desde la barra de herramientas, puede especificar una mayor variedad de
opciones que si lo hace directamente.
Por ejemplo, puede seleccionar una etiqueta, seleccionar la pestaña Inicio y, a continuación, cambiar
la fuente del texto en la etiqueta.

Configuración de un control mediante la pestaña Propiedades


Mediante el uso de la pestaña propiedades , puede especificar una mayor variedad de opciones
que puede configurar un control desde la barra de herramientas.
Por ejemplo, puede seleccionar un control y, a continuación, mostrar u ocultarlo cambiando su
propiedad visible .

Configuración de un control en la barra de fórmulas


En lugar de configurar un control directamente, desde la barra de herramientas o en la pestaña
propiedades , puede configurar un control seleccionando una propiedad en la lista de propiedades
y, a continuación, especificando un valor en la barra de fórmulas. Con este enfoque, puede buscar
una propiedad por orden alfabético y especificar otros tipos de valores.
Por ejemplo, puede seleccionar una etiqueta y, a continuación, configurarla de estas maneras:
Para moverla, seleccione X o Y en la lista de propiedades y, a continuación, especifique un
número diferente en la barra de fórmulas.

Cambie el tamaño seleccionando alto o ancho en la lista de propiedades y, a continuación,


especificando un número diferente en la barra de fórmulas.

Cambie su texto seleccionando texto en la lista de propiedades y, a continuación,


especificando cualquier combinación de una cadena literal, una expresión o una fórmula en la
barra de fórmulas.
Una cadena literal está entre comillas y aparece exactamente como se escribe. "Hello,
World" es una cadena literal.

Una expresión no incluye una función y a menudo se basa en una propiedad de otro
control. Screen1. Height es una expresión que muestra el alto de Screen1.

Una fórmula incluye una o más funciones. La función Now devuelve la fecha y hora
actuales de la zona horaria local y la función de texto da formato a valores como
fechas, horas y monedas.

Las fórmulas suelen ser mucho más complejas que este ejemplo para que puedan
actualizar los datos, ordenarlos, filtrarlos y realizar otras operaciones. Para obtener
más información, vea la referencia de fórmulas.

Pasos siguientes
Busque procedimientos paso a paso para configurar controles comunes como pantallas, listas,
galerías, formulariosy gráficos.
Busque información de referencia sobre cada tipo de control en la referencia de control.
Agregar una pantalla a una aplicación de lienzo y
navegar por diferentes pantallas
07/05/2019 • 2 minutes to read

Cree una aplicación con varias pantallas e incorpore mecanismos que permitan a los usuarios desplazarse por
ellas.

Agregar una pantalla y cambiarle el nombre


1. En el inicio ficha, seleccione nueva pantallay, a continuación, seleccione el tipo de pantalla que desea
agregar.

2. En el panel derecho, seleccione el nombre de la pantalla (justo encima el propiedades pestaña) y, a


continuación, escriba origen.

3. Agregue otra pantalla y asígnele el nombre Target.

Cambiar el orden de las pantallas


En la barra de navegación izquierda, mantenga el mouse sobre una pantalla que desea mover hacia arriba o
hacia abajo, seleccione el botón de puntos suspensivos que aparece y, a continuación, seleccione Subir o Bajar.
NOTE
Cuando se abre la aplicación, la pantalla en la parte superior de la lista jerárquica de los controles normalmente aparece en
primer lugar. Pero puede especificar una pantalla diferente estableciendo el OnStart propiedad en una fórmula que incluya
el Navigate función.

Agregar la funcionalidad de navegación


1. Con el origen pantalla seleccionado, abra el insertar ficha, seleccione iconosy, a continuación, seleccione
flecha siguiente.

2. (Opcional) Mueva la flecha hasta que aparezca en la esquina inferior derecha de la pantalla.
3. Con la flecha aún seleccionada, seleccione el acción pestaña y, a continuación, seleccione Navigate.
La propiedad AlSeleccionar de la flecha se establece automáticamente en la función Navegar.

Cuando un usuario selecciona la flecha, la destino pantalla desaparece.


4. En la pantalla Target, agregue el icono Flecha atrás y establezca la propiedad AlSeleccionar en esta
fórmula:
Navigate(Source; ScreenTransition.Fade)

5. Mientras mantiene presionada la tecla Alt, alternar entre pantallas seleccionando la flecha en cada
pantalla.
Más información
Referencia de control de pantalla
Agregar una pantalla de desplazamiento a una
aplicación de lienzo en PowerApps
25/10/2019 • 3 minutes to read

En una aplicación de lienzo, cree una pantalla por la que puedan desplazarse los usuarios para ver diferentes
elementos. Por ejemplo, cree una aplicación de teléfono que muestre datos en varios gráficos, que los usuarios
podrán ver al desplazarse.
Cuando se agregan varios controles en una sección, estos mantienen su posición relativa en dicha sección tanto si
se trata de una aplicación para el teléfono como de una aplicación para la tableta. Tenga en cuenta que el tamaño y
la orientación de la pantalla pueden determinar la organización de las secciones.

Requisitos previos
1. Suscríbase a PowerApps.
2. Inicie sesión en con las mismas credenciales que usó para registrarse.
3. En Crear su propia aplicación, pase el puntero por la ventana Aplicación de lienzo desde cero, seleccione
el icono de teléfono y, a continuación, seleccione Crear esta aplicación.
4. Aprenda a agregar y configurar controles.

Crear una pantalla de desplazamiento


1. En la pestaña Inicio, pulse o haga clic en Nueva pantalla:

2. En la pestaña Inicio, pulse o haga clic en Diseños y en la opción que permite agregar un lienzo de
desplazamiento infinito:

Se agrega el lienzo:
Agregar elementos
Ahora, vamos a agregar algunos controles al lienzo para ver cómo funciona la pantalla de desplazamiento.
1. En el lienzo que acaba de agregar, pulse o haga clic en Agregar un elemento desde la pestaña Insertar.

2. En la pestaña Insertar, pulse o haga clic en Gráficos y, a continuación, en Gráfico de columnas.


El gráfico de columnas aparece en la primera tarjeta de la pantalla:

3. En la pestaña Insertar, pulse o haga clic en Texto y en Entrada manuscrita:

4. Mueva el control de entrada manuscrita hasta situarlo bajo el gráfico y cambie su tamaño para que ocupe la
parte inferior de la tarjeta:
Agregar una sección
Ahora, vamos a agregar una nueva tarjeta con otro control.
1. En la parte inferior de la pantalla, pulse o haga clic en Agregar sección:

Se agrega una nueva tarjeta a la pantalla:

2. Con la tarjeta seleccionada, vaya a la pestaña Insertar y pulse o haga clic en Gráficos y en Gráfico de
líneas.
El nuevo gráfico es demasiado grande y no puede aparecer en la pantalla con los demás controles:

3. Para abrir el modo de vista previa, presione F5 (o haga clic o pulse en el icono de reproducción situado cerca
de la esquina superior derecha).
4. Desplácese hacia abajo para ver el nuevo gráfico de líneas.
Información general de la plantilla de pantalla
calendario para aplicaciones de Canvas
05/11/2019 • 19 minutes to read

En una aplicación de lienzo, agregue una pantalla de calendario que muestre los eventos próximos a los usuarios
de sus cuentas de Office 365 Outlook. Los usuarios pueden seleccionar una fecha de un calendario y desplazarse
por una lista de eventos de ese día. Puede cambiar los detalles que aparecen en la lista, agregar una segunda
pantalla que muestre más detalles sobre cada evento, mostrar una lista de asistentes para cada evento y hacer
otras personalizaciones.
También puede agregar otras pantallas basadas en plantillas que muestren datos diferentes de Office 365, como
el correo electrónico, las personas de una organización y la disponibilidad de personas que los usuarios quieran
invitar a una reunión.
Esta información general le enseña:
Cómo usar la pantalla calendario predeterminada.
Cómo modificarlo.
Cómo integrarlo en una aplicación.
Para profundizar más en la funcionalidad predeterminada de esta pantalla, consulte la referencia de la pantalla
calendario.

Requisito previo
Está familiarizado con cómo agregar y configurar pantallas y otros controles a medida que crea una aplicación en
PowerApps.

Funcionalidad predeterminada
Para agregar una pantalla de calendario desde la plantilla:
1. Inicie sesión en PowerApps y, después, cree una aplicación o abra una aplicación existente en PowerApps
Studio.
En este tema se muestra una aplicación de teléfono, pero los mismos conceptos se aplican a una aplicación
de Tablet PC.
2. En la pestaña Inicio de la cinta de opciones, seleccione nueva pantalla > calendario.
De forma predeterminada, la pantalla tiene un aspecto similar al siguiente:

3. Para Mostrar datos, seleccione una opción en la lista desplegable situada cerca de la parte superior de la
pantalla.

Algunas notas útiles:


La fecha de hoy está seleccionada de forma predeterminada y puede volver a ella fácilmente seleccionando el
icono de calendario en la esquina superior derecha.
Si selecciona una fecha diferente, un círculo lo rodea y un rectángulo de color claro (azul si se aplica el tema
predeterminado) rodea a la fecha de hoy.
Si se programa al menos un evento para una fecha determinada, aparecerá un pequeño círculo coloreado
debajo de esa fecha en el calendario.
Si selecciona una fecha para la que se programan uno o más eventos, los eventos aparecen en una lista bajo el
calendario.

Modificar la pantalla
Puede modificar la funcionalidad predeterminada de esta pantalla de varias maneras comunes:
Especifique el calendario.
Mostrar detalles diferentes sobre un evento.
Ocultar eventosde no bloqueo.
Si desea modificar la pantalla con más detalle, use la referencia de la pantalla calendario como guía.
Especificar el calendario
Si ya sabe qué calendario deben ver los usuarios, puede simplificar la pantalla especificando ese calendario antes
de publicar la aplicación. Este cambio elimina la necesidad de la lista desplegable de calendarios, por lo que puede
quitarlo.
1. Establezca la propiedad OnStart de la pantalla predeterminada de la aplicación en esta fórmula:
Set( _userDomain; Right( User().Email; Len( User().Email ) - Find( "@"; User().Email ) ) );;
Set( _dateSelected; Today() );;
Set( _firstDayOfMonth; DateAdd( Today(); 1 - Day( Today() ); Days ) );;
Set( _firstDayInView;
DateAdd( _firstDayOfMonth; -( Weekday( _firstDayOfMonth) - 2 + 1 ); Days )
);;
Set( _lastDayOfMonth; DateAdd( DateAdd( _firstDayOfMonth; 1; Months ); -1; Days ) );;
Set( _calendarVisible; false );;
Set( _myCalendar;
LookUp( Office365.CalendarGetTables().value; DisplayName = "{YourCalendarNameHere}" )
);;
Set( _minDate;
DateAdd( _firstDayOfMonth; -( Weekday(_firstDayOfMonth) - 2 + 1 ); Days )
);;
Set( _maxDate;
DateAdd(
DateAdd( _firstDayOfMonth; -( Weekday(_firstDayOfMonth) - 2 + 1 ); Days );
40;
Days
)
);;
ClearCollect( MyCalendarEvents;
Office365.GetEventsCalendarViewV2( _myCalendar.Name;
Text( _minDate; UTC );
Text( _maxDate; UTC )
).value
);;
Set( _calendarVisible; true )

NOTE
Esta fórmula se edita ligeramente desde el valor predeterminado de la propiedad alseleccionar de la lista
desplegable para seleccionar un calendario. Para obtener más información sobre ese control, vea su sección en la
referencia de la pantalla calendario.

2. Reemplace {YourCalendarNameHere} , incluidas las llaves, por el nombre del calendario que desea mostrar
(por ejemplo, calendario).

IMPORTANT
En los pasos siguientes se supone que ha agregado solo una pantalla de calendario a la aplicación. Si ha agregado
más de uno, los nombres de control (por ejemplo, iconCalendar1) terminarán con un número diferente y tendrá
que ajustar las fórmulas según corresponda.

3. Establezca la propiedad Y del control iconCalendar1 en esta expresión:


RectQuickActionBar1.Height + 20

4. Establezca la propiedad Y del control LblMonthSelected1 en esta expresión:


iconCalendar1.Y + iconCalendar1.Height + 20

5. Establezca la propiedad Text del control LblNoEvents1 en este valor:


"No events scheduled"

6. Establezca la propiedad visible de LblNoEvents1 en esta fórmula:


CountRows(CalendarEventsGallery1.AllItems) = 0 && _calendarVisible
7. Elimine estos controles:
dropdownCalendarSelection1
LblEmptyState1
iconEmptyState1
8. Si la pantalla de calendario no es la predeterminada, agregue un botón que navegue desde la pantalla
predeterminada hasta la pantalla de calendario para que pueda probar la aplicación.
Por ejemplo, agregue un botón en Screen1 que navegue a Screen2 si agregó una pantalla de calendario a
una aplicación que creó desde cero.
9. Guarde la aplicación y, a continuación, probarla en un explorador o en un dispositivo móvil.
Mostrar detalles diferentes sobre un evento
De forma predeterminada, la galería de en el calendario, denominada CalendarEventsGallery, muestra la hora
de inicio, la duración, el asunto y la ubicación de cada evento. Puede configurar la galería para mostrar cualquier
campo (como el organizador) que admita el conector de Office 365 .
1. En CalendarEventsGallery, establezca la propiedad texto de una etiqueta nueva o existente en ThisItem
seguido de un punto.
IntelliSense muestra los campos que puede seleccionar.
2. Seleccione el campo que desee.
La etiqueta muestra el tipo de información que ha especificado.
Ocultar eventos de no bloqueo
En muchas oficinas, los miembros del equipo envían convocatorias de reunión para que se notifiquen entre sí
cuando se encuentren fuera de la oficina. Para evitar el bloqueo de las programaciones de todo el mundo, la
persona que envía la solicitud establece su disponibilidad en gratis. Puede ocultar estos eventos desde el
calendario y la Galería actualizando un par de propiedades.
1. Establezca la propiedad Items de CalendarEventsGallery en esta fórmula:

SortByColumns(
Filter(
MyCalendarEvents;
Text( Start; DateTimeFormat.ShortDate ) =
Text( _dateSelected; DateTimeFormat.ShortDate );
ShowAs <> "Free"
);
"Start"
)

En esta fórmula, la función Filter oculta no solo los eventos que están programados para una fecha distinta
de la seleccionada, sino también los eventos para los que la disponibilidad está establecida en Free.
2. En el calendario, establezca la propiedad visible del control de círculo en esta fórmula:

CountRows(
Filter(
MyCalendarEvents;
DateValue( Text(Start) ) = DateAdd( _firstDayInView; ThisItem.Value; Days );
ShowAs <> "Free"
)
) > 0 && !Subcircle1.Visible && Title2.Visible
Esta fórmula contiene los mismos filtros que la fórmula anterior. Por lo tanto, el círculo del indicador de
eventos aparece en una fecha solo si tiene uno o varios eventos que se encuentran en la fecha seleccionada
y cuya disponibilidad no está establecida en libre.

Integración de la pantalla en una aplicación


La pantalla calendario es un conjunto eficaz de controles que se encuentran en su propio derecho, pero
normalmente se comporta mejor como parte de una aplicación más grande y versátil. Puede integrar esta
pantalla en una aplicación más grande de varias maneras, como agregar estas opciones:
Vea los detalles del evento.
Mostrar asistentes de eventos.
Ver detalles del evento
Si los usuarios seleccionan un evento en CalendarEventsGallery, puede abrir otra pantalla que muestra más
información sobre ese evento.

NOTE
En este procedimiento se muestran los detalles de los eventos en una galería con contenido dinámico, pero puede obtener
resultados similares si toma otros enfoques. Por ejemplo, puede obtener más control de diseño mediante una serie de
etiquetas en su lugar.

1. Agregue una pantalla en blanco, denominada EventDetailsScreen, que contenga una galería de alto
flexible en blanco y un botón que vuelva a la pantalla de calendario.
2. En la galería de alto flexible, agregue un control etiqueta y un control texto html y establezca la
propiedad autoheight de ambos en true.

NOTE
PowerApps recupera el cuerpo del mensaje de cada evento como texto HTML, por lo que debe mostrar el contenido
en un control de texto HTML .

3. Establezca la propiedad Y del control de texto html en esta expresión:


Label1.Y + Label1.Height + 20

4. Ajuste las propiedades adicionales según sea necesario para ajustarse a sus necesidades de estilo.
Por ejemplo, puede que desee agregar una línea de separación debajo del control de texto HTML .
5. Establezca la propiedad Items de la galería de alto flexible en esta fórmula:

Table(
{ Title: "Subject"; Value: _selectedCalendarEvent.Subject };
{
Title: "Time";
Value: _selectedCalendarEvent.Start & " - " & _selectedCalendarEvent.End
};
{ Title: "Body"; Value: _selectedCalendarEvent.Body }
)

Esta fórmula crea una galería de datos dinámicos que se establece en los valores de campo de
_selectedCalendarEvent, que se establece cada vez que el usuario selecciona un evento en el control
CalendarEventsGallery . Puede extender esta galería para incluir más campos agregando más etiquetas,
pero este conjunto proporciona un buen punto de partida.
6. Con los elementos de la galería en su lugar, establezca la propiedad texto del control etiqueta en
ThisItem.Title y la propiedad HtmlText del control de texto HTML en ThisItem.Value .

7. En CalendarEventsGallery, establezca la propiedad alseleccionar del control título en esta fórmula:

Set( _selectedCalendarEvent; ThisItem );;


Navigate( EventDetailsScreen; None )

NOTE
En lugar de usar la variable _selectedCalendarEvent , en su lugar podría usar CalendarEventsGallery.
Seleccionadas.

Mostrar asistentes para eventos


La operación Office365.GetEventsCalendarViewV2 recupera una variedad de campos para cada evento, incluido un
conjunto de asistentes necesarios y opcionales, separados por punto y coma. En este procedimiento, analizará
cada conjunto de asistentes, determinará qué asistentes se encuentran en su organización y recuperará los perfiles
de Office 365 de cualquier usuario que sea.
1. Si la aplicación no contiene el conector de usuarios de Office 365, agréguelo.
2. Para recuperar los perfiles de Office 365 de los asistentes de reunión, establezca la propiedad
alseleccionar del control de título en CalendarEventsGallery en esta fórmula:

Set( _selectedCalendarEvent; ThisItem );;


ClearCollect( AttendeeEmailsTemp;
Filter(
Split( ThisItem.RequiredAttendees & ThisItem.OptionalAttendees; ";" );
!IsBlank( Result )
)
);;
ClearCollect( AttendeeEmails;
AddColumns( AttendeeEmailsTemp;
"InOrg";
Upper( _userDomain ) = Upper( Right( Result; Len( Result ) - Find( "@"; Result ) ) )
)
);;
ClearCollect( MyPeople;
ForAll( AttendeeEmails; If( InOrg; Office365Users.UserProfile( Result ) ) )
);;
Collect( MyPeople;
ForAll( AttendeeEmails;
If( !InOrg;
{ DisplayName: Result; Id: ""; JobTitle: ""; UserPrincipalName: Result }
)
)
)

En esta lista se describe lo que hace cada operación de ClearCollect :


ClearCollect (AttendeeEmailsTemp)
ClearCollect( AttendeeEmailsTemp;
Filter(
Split( ThisItem.RequiredAttendees & ThisItem.OptionalAttendees; ";" );
!IsBlank( Result)
)
);;

Esta fórmula concatena los asistentes necesarios y opcionales en una sola cadena y, a continuación, divide
esa cadena en direcciones individuales en cada punto y coma. A continuación, la fórmula filtra los valores
en blanco de ese conjunto y agrega los demás valores en una colección denominada
AttendeeEmailsTemp.
ClearCollect (AttendeeEmails)

ClearCollect( AttendeeEmails;
AddColumns( AttendeeEmailsTemp;
"InOrg";
Upper( _userDomain ) = Upper( Right( Result; Len(Result) - Find("@"; Result) ) )
)
);;

Esta fórmula determina aproximadamente si un asistente está en su organización. La definición de


_userDomain es simplemente la dirección URL de dominio en la dirección de correo electrónico de la
persona que ejecuta la aplicación. Esta línea crea una columna true/false adicional, denominada InOrg, en
la colección AttendeeEmailsTemp . Esta columna contiene true si userDomain es equivalente a la
dirección URL de dominio de la dirección de correo electrónico en esa fila concreta de
AttendeeEmailsTemp.
Este enfoque no siempre es preciso, pero se cierra bastante. Por ejemplo, algunos asistentes de la
organización pueden tener una dirección de correo electrónico como Jane@OnContoso.com, mientras que
_userDomain es contoso.com. El usuario de la aplicación y Julia podrían trabajar en la misma empresa,
pero tienen ligeras variaciones en sus direcciones de correo electrónico. En casos como estos, puede que
desee usar esta fórmula:
Upper(_userDomain) in Upper(Right(Result; Len(Result) - Find("@"; Result)))

Sin embargo, esta fórmula coincide con las direcciones de correo electrónico como
Jane@NotTheContosoCompany.com con un _userDomain como contoso.com, y esas personas no
trabajan en la misma empresa.
ClearCollect (mis personas)
ClearCollect( MyPeople;
ForAll( AttendeeEmails;
If( InOrg;
Office365Users.UserProfile( Result )
)
)
);;
Collect( MyPeople;
ForAll( AttendeeEmails;
If( !InOrg;
{
DisplayName: Result;
Id: "";
JobTitle: "";
UserPrincipalName: Result
}
)
)
);;

Para recuperar los perfiles de Office 365, debe usar la operación Office365Users. userprofile o
Office365Users. UserProfileV2 . Estas operaciones primero reúnen todos los perfiles de Office 365 para los
asistentes que se encuentran en la organización del usuario. A continuación, las operaciones agregan
algunos campos a los asistentes desde fuera de la organización. Estos dos elementos se separan en
operaciones distintas porque el bucle forall no garantiza el orden. Por lo tanto, forall podría recopilar
primero un asistente de fuera de la organización. En este caso, el esquema de mis personas solo contiene
displayName, ID, JobTitley UserPrincipalName. Sin embargo, las operaciones de UserProfile
recuperan datos mucho más completos que. Por lo tanto, se obliga a la colección People a agregar perfiles
de Office 365 antes que a los demás perfiles.

NOTE
Puede lograr el mismo resultado con una sola función ClearCollect :

ClearCollect( MyPeople;
ForAll(
AddColumns(
Filter(
Split(
ThisItem.RequiredAttendees & ThisItem.OptionalAttendees;
";"
);
!IsBlank( Result )
);
"InOrg"; _userDomain = Right( Result; Len( Result ) - Find( "@"; Result ) )
);
If( InOrg;
Office365Users.UserProfile( Result );
{
DisplayName: Result;
Id: "";
JobTitle: "";
UserPrincipalName: Result;
Department: "";
OfficeLocation: "";
TelephoneNumber: ""
}
)
)
)
Para finalizar este ejercicio:
1. Agregue una pantalla que contenga una galería para la que la propiedad Items esté establecida en People.
2. En la propiedad alseleccionar del control title en CalendarEventsGallery, agregue una función
Navigate a la pantalla que creó en el paso anterior.

Pasos siguientes
Vea la documentación de referencia de esta pantalla.
Obtenga más información sobre el conector de Office 365 Outlook.
Obtenga más información sobre el conector de usuarios de Office 365.
Información de referencia sobre la plantilla de
pantalla calendario para aplicaciones de Canvas
26/11/2019 • 24 minutes to read

En el caso de las aplicaciones de canvas en PowerApps, comprenda cómo contribuye cada control significativo de
la plantilla de pantalla calendario a la funcionalidad predeterminada general de la pantalla. Esta profundización
presenta las fórmulas de comportamiento y los valores de otras propiedades que determinan cómo responden
los controles a los datos proporcionados por el usuario. Para obtener una descripción de alto nivel de la
funcionalidad predeterminada de esta pantalla, consulte la información generalde la pantalla de calendario.
En este tema se resaltan algunos controles significativos y se explican las expresiones o fórmulas en las que se
establecen varias propiedades (como Items y alseleccionar) de estos controles:
Lista desplegable de calendario (dropdownCalendarSelection)
Icono de calendario (iconCalendar)
Cheurón anterior (iconPrevMonth)
Botón de contenido adicional del mes siguiente (iconNextMonth)
Galería de calendarios (MonthDayGallery) (+ controles secundarios)
Galería de eventos (CalendarEventsGallery)

Requisito previo
Está familiarizado con cómo agregar y configurar pantallas y otros controles a medida que crea una aplicación en
PowerApps.

Lista desplegable de calendario

Propiedad: elementos
Valor: Office365.CalendarGetTables().value
Este valor es una operación de conector que recupera los calendarios de Outlook del usuario de la
aplicación. Puede ver el valor que recupera esta operación.
Propiedad: onchange
Valor: Select(dropdownCalendarSelection)
Cuando el usuario selecciona una opción en la lista, se ejecuta la función de la propiedad alseleccionar
del control.
Propiedad: Alseleccionar
Value: una función If , que aparece en el siguiente bloque de código, y varias funciones adicionales, que
aparecen en el bloque de código después de eso.
Esta parte de la fórmula se ejecuta solo la primera vez que el usuario selecciona una opción en la lista
desplegable después de abrir la aplicación:

If( IsBlank( _userDomain );


UpdateContext( {_showLoading: true} );;
Set( _userDomain; Right( User().Email; Len( User().Email ) - Find( "@"; User().Email ) ) );;
Set( _dateSelected; Today() );;
Set( _firstDayOfMonth; DateAdd( Today(); 1 - Day( Today() ); Days ) );;
Set( _firstDayInView; DateAdd( _firstDayOfMonth; -(Weekday(_firstDayOfMonth) - 1); Days ) );;
Set( _lastDayOfMonth; DateAdd( DateAdd( _firstDayOfMonth; 1; Months ); -1; Days ) )
);;

El código anterior define las siguientes variables:


_userDomain: el dominio de la empresa del usuario de la aplicación, tal y como se refleja en la
dirección de correo electrónico del usuario.
_dateSelected: fecha de hoy (de forma predeterminada). La galería de calendarios resalta esta fecha y
la galería de eventos muestra los eventos que están programados para esa fecha.
_firstDayOfMonth: el primer día del mes actual. Dado que
(Today + (1 - Today)) = Today - Today + 1 = 1 , esta función DateAdd siempre devuelve el primer día
del mes.
_firstDayInView: el primer día que puede mostrar la galería de calendarios. Este valor no es el mismo
que el primer día del mes, a menos que el mes se inicie en un domingo. Para evitar que se muestre una
semana completa del mes anterior, el valor de _firstDayInView es
_firstDayOfMonth - Weekday(_firstDayOfMonth) + 1 .
_lastDayOfMonth: el último día del mes actual, que es el mismo que el primer día del mes siguiente,
menos un día.
Las funciones después de la función If se ejecutan cada vez que el usuario selecciona una opción en la lista
desplegable calendario (no solo la primera vez que el usuario abre la aplicación):

Set( _calendarVisible; false );;


UpdateContext( {_showLoading: true} );;
Set( _myCalendar; dropdownCalendarSelection2.Selected );;
Set( _minDate;
DateAdd( _firstDayOfMonth; -(Weekday( _firstDayOfMonth ) - 2 + 1); Days )
);;
Set(_maxDate;
DateAdd(
DateAdd( _firstDayOfMonth; -(Weekday( _firstDayOfMonth ) - 2 + 1); Days );
40;
Days
)
);;
ClearCollect( MyCalendarEvents;
'Office365'.GetEventsCalendarViewV2( _myCalendar.Name;
Text( _minDate; UTC );
Text( _maxDate; UTC )
).value
);;
UpdateContext( {_showLoading: false} );;
Set( _calendarVisible; true )

El código anterior define estas variables y una colección:


_calendarVisible: establézcalo en false para que el calendario no aparezca mientras se carga la nueva
selección.
_showLoading: establézcalo en true para que aparezcan los indicadores de carga mientras se carga la
nueva selección.
_mi calendario: establézcalo en el valor actual del control desplegable del calendario para que se
recuperen los eventos del calendario correcto.
_minDate: establézcalo en el mismo valor que _firstDayInView. Esta variable determina qué eventos
ya se han recuperado de Outlook y se han almacenado en la memoria caché de la aplicación.
_maxDate: se establece en el último día visible en el calendario. La fórmula es _firstDayInView + 40 . El
calendario muestra un máximo de 41 días, por lo que la variable de _maxDate siempre refleja el último
día visible y determina qué eventos ya se han recuperado de Outlook y se han almacenado en la
memoria caché de la aplicación.
MyCalendarEvents: se establece en una colección de eventos del usuario del calendario seleccionado,
que van desde _MinDate a _maxDate.
_showLoading: establézcalo en false; _calendarVisible se establece en true una vez cargado todo lo
demás.

Icono de calendario

Propiedad: Alseleccionar
Valor: cuatro funciones de conjunto que restablecen la galería de calendario en la fecha de hoy:

Set( _dateSelected; Today() );;


Set( _firstDayOfMonth; DateAdd( Today(); 1 - Day( Today() ); Days) );;
Set( _firstDayInView; DateAdd(_firstDayOfMonth; -(Weekday( _firstDayOfMonth ) - 2 + 1); Days));;
Set( _lastDayOfMonth; DateAdd( DateAdd( _firstDayOfMonth; 1; Months ); -1; Days ) )

El código anterior restablece todas las variables de fecha necesarias para mostrar la vista de calendario
adecuada:
_dateSelected se restablece a hoy.
_firstDayOfMonth se restablece al primer día del mes de hoy.
_firstDayInView se restablece al primer día visible cuando se selecciona el mes de hoy.
_lastDayOfMonth se restablece en el último día del mes de hoy.
En la sección desplegable calendario de este tema se explican estas variables con más detalle.

Botón de contenido adicional de mes anterior

Propiedad: Alseleccionar
Valor: cuatro funciones de conjunto y una función If que muestran el mes anterior en la galería de
calendario:
Set( _firstDayOfMonth; DateAdd( _firstDayOfMonth; -1; Months ) );;
Set( _firstDayInView;
DateAdd( _firstDayOfMonth; -(Weekday( _firstDayOfMonth ) - 2 + 1); Days )
);;
Set( _lastDayOfMonth; DateAdd(DateAdd( _firstDayOfMonth; 1; Months ); -1; Days ) );;
If( _minDate > _firstDayOfMonth;
Collect( MyCalendarEvents;
'Office365'.GetEventsCalendarViewV2( _myCalendar.Name;
Text( _firstDayInView; UTC );
Text( DateAdd( _minDate; -1; Days ); UTC )
).value
);;
Set( _minDate; _firstDayInView )
)

NOTE
Las definiciones de _firstDayOfMonth, _FirstDayInViewy _lastDayOfMonth son casi idénticas a las de la sección
desplegable calendario de este tema.

Las tres primeras líneas del código anterior se ejecutan cada vez que el usuario selecciona el botón de
contenido adicional del mes anterior. El código establece las variables necesarias para mostrar la vista de
calendario adecuada. El código restante se ejecuta solo si el usuario no ha seleccionado previamente este
mes para el calendario seleccionado.
En este caso, _minDate es el primer día que aparece cuando se muestra el mes anterior. Antes de que el
usuario seleccione el icono, _minDate tiene un valor mínimo posible de la 23 del mes actual. (Cuando el 1
de marzo cae en sábado, _firstDayInView para marzo es el 23 de febrero). Esto significa que, si un
usuario no ha seleccionado este mes, _minDate es mayor que el nuevo _firstDayOfMonthy la función If
devuelve true. El código se ejecuta y se actualiza una colección y una variable:
MyCalendarEvents recupera eventos del calendario seleccionado con la operación Office365.
GetEventsCalendarViewV2 . El intervalo de fechas se encuentra entre las _fecha firstDayInView y
_minDate -1. Dado que MyCalendarEvents ya contiene eventos en la fecha de _minDate , 1 se
resta de esa fecha para el valor máximo de este nuevo intervalo de fechas.
_minDate se establece en el _firstDayInView actual, ya que se trata de la primera fecha para la
que se han recuperado eventos. Si un usuario vuelve a esta fecha seleccionando el botón de
contenido adicional del mes anterior, la función If devuelve false. el código no se ejecuta porque los
eventos de esta vista ya están almacenados en caché en MyCalendarEvents.

Botón de contenido adicional del mes siguiente

Propiedad: Alseleccionar
Valor: cuatro funciones de conjunto y una función If que muestran el mes siguiente en la galería de
calendario:
Set( _firstDayOfMonth; DateAdd( _firstDayOfMonth; 1; Months ) );;
Set( _firstDayInView;
DateAdd( _firstDayOfMonth; -(Weekday( _firstDayOfMonth ) - 2 + 1); Days ) );;
Set( _lastDayOfMonth; DateAdd( DateAdd( _firstDayOfMonth; 1; Months ); -1; Days ) );;
If( _maxDate < _lastDayOfMonth;
Collect( MyCalendarEvents;
'Office365'.GetEventsCalendarViewV2( _myCalendar.Name;
Text( DateAdd( _maxDate; 1; Days ); UTC );
DateAdd( _firstDayInView; 40; Days )
).value
);;
Set( _maxDate; DateAdd( _firstDayInView; 40; Days) )
)

NOTE
Las definiciones de _firstDayOfMonth, _FirstDayInViewy _lastDayOfMonth son casi idénticas a las de la sección
desplegable calendario de este tema.

Las tres primeras líneas del código anterior, que se ejecutan cuando el usuario selecciona el botón de
contenido adicional del mes siguiente, establezca las variables necesarias para mostrar la vista de
calendario adecuada. El código restante se ejecuta solo si el usuario no ha seleccionado previamente este
mes para el calendario seleccionado.
En ese caso, _maxDate es el último día que aparece cuando se muestra el mes anterior. Antes de que el
usuario seleccione el botón de contenido adicional del mes siguiente, _maxDate tiene un valor máximo
posible del decimotercer del mes siguiente. (Cuando el 1 de febrero cae en un domingo de año no bisiesto,
_maxDate es el 13 de marzo, que es _firstDayInView + 40 días). Esto significa que, si un usuario no ha
seleccionado este mes, _maxDate es mayor que el nuevo _lastDayOfMonthy la función If devuelve true.
El código se ejecuta y se actualiza una colección y una variable:
MyCalendarEvents recupera eventos del calendario seleccionado con la operación Office365.
GetEventsCalendarViewV2 . El intervalo de fechas se encuentra entre _maxDate + 1 día y
_firstDayInView + 40 días. Dado que MyCalendarEvents ya contiene eventos en la fecha de
_minDate , se agrega 1 a esa fecha para el valor mínimo de este nuevo intervalo de fechas.
_firstDayInView + 40 es la fórmula de _maxDate, por lo que la segunda fecha del intervalo es
simplemente la nueva _maxDate.
_maxDate se establece en _firstDayInView + 40 días, ya que se trata del último día para el que se
han recuperado eventos. Si un usuario vuelve a esta fecha seleccionando el botón de contenido
adicional del mes siguiente, la función If devuelve false. el código no se ejecuta porque los eventos
de esta vista ya están almacenados en caché en MyCalendarEvents.

Galería de calendarios
Propiedad: elementos
Valor:
[0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;
20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41]

El conjunto de 0 a 41 se usa para los elementos de la galería de calendarios porque, en el peor de los
casos, la vista de calendario tendrá que mostrar 42 días completos. Esto sucede cuando el primer día del
mes se produce el sábado y el último del mes se produce el domingo. En este caso, el calendario muestra
seis días del mes anterior de la fila que contiene el primero del mes y seis días desde el mes siguiente en la
fila que contiene la última del mes. Se trata de valores únicos 42, de los cuales 30 son para el mes
seleccionado.
Propiedad: WrapCount
Valor: 7
Este valor refleja una semana de siete días.
Control de título en la galería de calendarios

Propiedad: texto
Valor: Day( DateAdd( _firstDayInView; ThisItem.Value; Days ) )

Recuerde que _firstDayInView se define como ( _firstDayOfMonth -su valor de día de la semana) + 1.
Esto indica que _firstDayInView siempre es domingo y _firstDayOfMonth siempre está en la primera
fila de MonthDayGallery. Debido a estos dos hechos, _firstDayInView siempre está en la primera celda
de MonthDayGallery. ThisItem. Value es el número de esa celda en la propiedad del elemento
MonthDayGallery . Por lo tanto, al tomar _firstDayInView como punto de partida, cada celda muestra
el incremento de _firstDayInView + su valor de celda respectivo.
Propiedad: Fill
Valor: una función If :

If( DateAdd( _firstDayInView; ThisItem.Value ) = Today() &&


DateAdd( _firstDayInView; ThisItem.Value ) = _dateSelected;
RGBA( 0; 0; 0; 0 );
DateAdd( _firstDayInView; ThisItem.Value) = Today();
ColorFade( Subcircle.Fill; 0,67 );
Abs( Title.Text - ThisItem.Value) > 10;
RGBA( 200; 200; 200; 0,3 );
RGBA( 0; 0; 0; 0 )
)

Como se describe en la descripción de la propiedad Text , DateAdd(_firstDayInView; ThisItem.Value)


representa el día en la celda visible. Teniendo esto en cuenta, el código anterior realiza estas
comparaciones:
1. Si el valor de la celda es la fecha de hoy y esta celda es equivalente a _dateSelected, no
proporcione un valor de relleno.
2. Si el valor de la celda es la fecha de hoy, pero no equivalente a _dateSelected, proporcione el
relleno ColorFade .
3. La última comparación no es tan clara. Se trata de una comparación entre el valor de texto real de la
celda y el valor del elemento de celda (el número en la pantalla y el número de elemento).
Para comprender mejor esto, tenga en cuenta el 2018 de septiembre, un mes que comienza un
sábado y termina en domingo. En este caso, el calendario muestra el 26 al 31 de agosto y el 1 de
septiembre en la primera fila, y Abs(Title.Text - ThisItem.Value) = 26 hasta el 1 de septiembre. A
continuación, Abs(Title.Text - ThisItem.Value) = 5 . Permanecerá en 5 hasta la última fila del
calendario, que muestra el 30 de septiembre y el 1 de octubre al sexto. En ese
Abs(Title.Text - ThisItem.Value) seguirá siendo 5 para el 30 de septiembre, pero será 35 para las
fechas de octubre.
Este es el patrón: para los días mostrados en el mes anterior, Abs(Title.Text - ThisItem.Value)
siempre será igual al valor Title.Text del primer día de la pantalla. Durante los días que se
muestran en el mes siguiente, Abs(Title.Text - ThisItem.Value) siempre será igual al valor del
elemento MonthDayGallery de la primera celda de ese mes (en este caso, el 1 de octubre) menos
1. Y, lo que es más importante, en el caso de los días mostrados en el mes seleccionado
actualmente, Abs(Title.Text - ThisItem.Value) siempre será igual al valor del primer elemento de
ese mes menos 1 y nunca superará los 5, como se muestra en el ejemplo anterior. Por lo tanto, es
absolutamente válido escribir la fórmula como Abs(Title.Text - ThisItem.Value) > 5 .
Esta instrucción comprueba si el valor de fecha está fuera del mes seleccionado actualmente. Si es
así, Fill es un gris parcialmente opaco.

NOTE
Puede comprobar la validez de esta última comparación para sí mismo insertando un control etiqueta en la galería
y estableciendo su propiedad texto en este valor:
Abs(Title.Text - ThisItem.Value) .

Propiedad: visible
Valor

!(
DateAdd( _firstDayInView; ThisItem.Value; Days ) -
Weekday( DateAdd( _firstDayInView; ThisItem.Value;Days ) ) + 1
> _lastDayOfMonth
)

La instrucción anterior comprueba si la celda está en una fila en la que no se producen días del mes
seleccionado actualmente. Recuerde que si se resta el valor de día de la semana de cualquier día de su
valor de fecha y se agrega 1 siempre se devuelve el primer elemento de la fila en la que vive el día. Por lo
tanto, esta instrucción comprueba si el primer día de la fila es posterior al último día del mes visible. Si es
así, no aparecerá porque la fila completa contiene días del mes siguiente.
Propiedad: Alseleccionar
Valor: una función set que establece la variable _dateSelected en la fecha de la celda seleccionada:

Set( _dateSelected; DateAdd( _firstDayInView; ThisItem.Value; Days ) )


Control de círculo en la galería de calendarios

Propiedad: visible
Valor: una fórmula que determina si los eventos están programados para la fecha seleccionada y si los
controles de título y subcírculo están visibles:

CountRows(
Filter( MyCalendarEvents;
DateValue( Text( Start ) ) = DateAdd( _firstDayInView; ThisItem.Value; Days )
)
) > 0 && !Subcircle.Visible && Title.Visible

El control de círculo es visible si el campo de Inicio de cualquier evento es equivalente a la fecha de esa
celda, si el control de título está visible y si el control de subcírculo no está visible. En otras palabras, este
control es visible cuando se produce al menos un evento en este día y este día no está seleccionado. Si está
seleccionada, los eventos de ese día se muestran en el control CalendarEventsGallery .
Control de subcírculo en la galería de calendarios

Propiedad: visible
Valor

DateAdd( _firstDayInView; ThisItem.Value ) = _dateSelected && Title.Visible

El control de subcírculo está visible cuando _dateSelected es equivalente a la fecha de la celda y el


control de título está visible. En otras palabras, este control aparece cuando la celda es la fecha
seleccionada actualmente.
Galería de eventos

Propiedad: elementos
Valor: una fórmula que ordena y filtra la galería de eventos:

SortByColumns(
Filter( MyCalendarEvents;
Text( Start; DateTimeFormat.ShortDate ) = Text( _dateSelected; DateTimeFormat.ShortDate )
);
"Start"
)

La colección MyCalendarEvents contiene todos los eventos entre _MinDate y _maxDate. Para mostrar
los eventos solo para la fecha seleccionada, se aplica un filtro en MyCalendarEvents para mostrar los
eventos que tienen una fecha de inicio equivalente a \ _dateSelected. A continuación, los elementos se
ordenan por sus fechas de inicio para colocarlos en orden secuencial.

Pasos siguientes
Más información acerca de esta pantalla
Más información sobre el conector de Office 365 Outlook en PowerApps
Más información sobre el conector de usuarios de Office 365 en PowerApps
Información general de la plantilla de pantalla de
correo electrónico para las aplicaciones de Canvas
12/11/2019 • 8 minutes to read

En una aplicación de lienzo, agregue una pantalla de correo electrónico que permita a los usuarios enviar un
correo electrónico desde su cuenta de Office 365 Outlook. Los usuarios pueden buscar destinatarios en sus
organizaciones y agregar también direcciones de correo electrónico externas. Puede Agregar compatibilidad con
datos adjuntos de imagen, cambiar los datos de usuario que aparecen en la galería de búsquedas y realizar otras
personalizaciones.
También puede agregar otras pantallas basadas en plantillas que muestren datos diferentes de Office 365, como
el calendariode un usuario, las personas de una organización y la disponibilidad de las personas a las que los
usuarios quieran invitar a una reunión.
Esta información general le enseña:
Cómo usar la pantalla de correo electrónico predeterminada.
Cómo modificarlo.
Cómo integrarlo en una aplicación.
Para profundizar más en la funcionalidad predeterminada de esta pantalla, consulte la referencia de la pantalla de
correo electrónico.

Requisito previo
Está familiarizado con cómo agregar y configurar pantallas y otros controles a medida que crea una aplicación en
PowerApps.

Funcionalidad predeterminada
Para agregar una pantalla de correo electrónico desde la plantilla:
1. Inicie sesión en PowerApps y, después, cree una aplicación o abra una aplicación existente en PowerApps
Studio.
En este tema se muestra una aplicación de teléfono, pero los mismos conceptos se aplican a una aplicación
de Tablet PC.
2. En la pestaña Inicio de la cinta de opciones, seleccione nueva pantalla > correo electrónico.
De forma predeterminada, la pantalla tiene un aspecto similar al siguiente:
Algunas notas útiles:
Para buscar usuarios en la organización, empiece a escribir su nombre en el cuadro de entrada de texto que
aparece debajo de "a".
Al buscar personas, solo se devolverán los 15 resultados principales.
Para agregar direcciones de correo electrónico a los destinatarios de correo electrónico fuera de la
organización, escriba la dirección de correo electrónico completa y válida y seleccione el icono "+" que aparece
a la derecha.
Debe agregar al menos una persona como destinatario y proporcionar un asunto para enviar un correo
electrónico.
Después de enviar el correo electrónico, se borrarán todos los contenidos de la línea de asunto y el cuerpo del
mensaje, así como la lista de destinatarios.

Modificar la pantalla
Puede modificar la funcionalidad predeterminada de esta pantalla de varias maneras comunes:
Agregar compatibilidad con datos adjuntos de imagen
Mostrar datos diferentes para las personas
Si desea modificar la pantalla con más detalle, use la referencia de la pantalla de correo electrónico como guía.

IMPORTANT
En los pasos siguientes se supone que ha agregado solo una pantalla de correo electrónico a la aplicación. Si ha agregado
más de uno, los nombres de control (por ejemplo, iconMail1) terminarán con un número diferente y tendrá que ajustar las
fórmulas según corresponda.

Agregar compatibilidad con datos adjuntos de imagen


Esto permite a los usuarios enviar una sola imagen con el correo electrónico como datos adjuntos.
1. En la pestaña Insertar , seleccione medioy, a continuación, seleccione Agregar imagen.
2. Establezca la propiedad Y del nuevo control en esta expresión:
TextEmailMessage1.Y + TextEmailMessage1.Height + 20

3. Con el control AddMediaWithImage insertado, establezca su alto en un valor inferior a 210.


4. En la vista de árbol de control, seleccione AddMediaWithImage > .. . > reordene > Enviar a atrás. Esto
evita que el control esté delante del control PeopleBrowseGallery .
5. Cambie la propiedad alto de EmailPeopleGallery a esta fórmula:

Min(
( EmailPeopleGallery1.TemplateHeight + EmailPeopleGallery1.TemplatePadding * 2 ) *
RoundUp( CountRows( EmailPeopleGallery1.AllItems ) / 2; 0 );
304
)

6. Establezca la propiedad ShowScrollbar de EmailPeopleGallery en esta expresión:


EmailPeopleGallery1.Height >= 304

Esto impide que el alto máximo Inserte el control AddMediaWithImage fuera de la página.
7. Cambie la propiedad alseleccionar del control iconMail a esta fórmula:

Set( _emailRecipientString; Concat(MyPeople; Mail & ";") );;


If( IsBlank( UploadedImage1 );
'Office365'.SendEmail( _emailRecipientString;
TextEmailSubject1.Text;
TextEmailMessage1.Text;
{ Importance: "Normal" }
);
'Office365'.SendEmail( _emailRecipientString;
TextEmailSubject1.Text;
TextEmailMessage1.Text;
{
Importance: "Normal";
Attachments: Table(
{
Name: "Image.jpg";
ContentBytes: UploadedImage1.Image
}
)
}
)
);;
Reset( TextEmailSubject1 );;
Reset( TextEmailMessage1 );;
Reset( AddMediaButton1 );;
Clear( MyPeople )

Esta fórmula comprueba si hay una imagen cargada. Si no hay ninguno, usa la misma operación
Office365.SendEmail que antes. Si hay una imagen, se agrega como datos adjuntos en la tabla de datos
adjuntos. Después de enviar el correo electrónico, se realiza una operación de restablecimiento adicional
en AddMediaButton para quitar la imagen cargada.
NOTE
Para agregar más de un archivo adjunto a un correo electrónico, agregue registros a la tabla de datos adjuntos.

Mostrar datos diferentes para las personas


Esta pantalla usa la operación Office365Users. SearchUser para buscar usuarios en la organización. Proporciona
campos adicionales para cada evento más allá de lo que aparece en el control PeopleBrowseGallery . Agregar o
cambiar campos en la Galería es sencillo:
1. En el control PeopleBrowseGallery , seleccione una etiqueta para modificarla (o agréguela y manténgala
seleccionada).
2. Con su propiedad Text seleccionada, en la barra de fórmulas, reemplace el contenido por ThisItem.

IntelliSense muestra una lista de los campos que puede seleccionar.


3. Seleccione el campo que desee.
La propiedad de texto se actualiza a ThisItem.{FieldSelection} .

Integración de la pantalla en una aplicación


La pantalla de correo electrónico es un conjunto eficaz de controles en su propio derecho, pero normalmente
funciona mejor como parte de una aplicación más grande y versátil. Puede integrar esta pantalla en una
aplicación más grande de varias maneras, como la vinculación a la pantalla del calendario.
Vincular a la pantalla calendario
Siga los pasos descritos en la sección "Mostrar asistentes de eventos" de información general de la pantalla de
calendario pero, en el paso final, establezca la función Navigate para abrir la pantalla de correo electrónico.
Después de completar estos pasos, se rellena la colección People , que permite a los usuarios enviar correo
electrónico a las personas que asisten al evento seleccionado.

NOTE
Al enviar este correo electrónico se enviará un correo electrónico independiente del evento real en Outlook.

Pasos siguientes
Vea la documentación de referencia de esta pantalla.
Obtenga más información sobre el conector de usuarios de Office 365 en PowerApps.
Vea todas las conexiones disponibles en PowerApps.
Información de referencia sobre la plantilla de
pantalla de correo electrónico para las aplicaciones
de Canvas
08/10/2019 • 9 minutes to read

En el caso de las aplicaciones de canvas en PowerApps, comprenda cómo contribuye cada control significativo de
la plantilla de pantalla de correo electrónico a la funcionalidad predeterminada general de la pantalla. Esta
profundización presenta las fórmulas de comportamiento y los valores de otras propiedades que determinan
cómo responden los controles a los datos proporcionados por el usuario. Para obtener una descripción de alto
nivel de la funcionalidad predeterminada de esta pantalla, consulte la información general de la pantalla de correo
electrónico.
En este tema se resaltan algunos controles significativos y se explican las expresiones o fórmulas en las que se
establecen varias propiedades (como Items y alseleccionar) de estos controles:
Cuadro de búsqueda de texto
Agregar icono
Galería de exploración de personas
Galería de personas de correo electrónico (+ controles secundarios)
Icono correo

Requisito previo
Está familiarizado con cómo agregar y configurar pantallas y otros controles a medida que crea una aplicación en
PowerApps.

Cuadro de búsqueda de texto

Algunos otros controles de la pantalla tienen una dependencia en el control cuadro de búsqueda de texto :
Si un usuario comienza a escribir texto, aparece PeopleBrowseGallery .
Si un usuario escribe una dirección de correo electrónico válida, aparece AddIcon .
Cuando un usuario selecciona una persona dentro de PeopleBrowseGallery, se restablece el contenido de la
búsqueda.

Icono Agregar
El control Agregar icono permite a los usuarios de la aplicación agregar personas que no existen dentro de su
organización a la lista de destinatarios del correo electrónico que se está creando.
Propiedad Estarán
Valor Lógica para mostrar el control solo cuando un usuario escribe una dirección de correo electrónico
válida en el cuadro de búsqueda:

!IsBlank( TextSearchBox.Text ) &&


IsMatch( TextSearchBox.Text; Match.Email ) &&
Not( Trim( TextSearchBox.Text ) in MyPeople.UserPrincipalName )

Línea por línea, el bloque de código anterior indica que el control de icono Agregar solo será visible si:
TextSearchBox contiene texto.
El texto de TextSearchBox es una dirección de correo electrónico válida.
El texto de TextSearchBox ya no existe en la colección People .
Propiedad Alseleccionar
Valor Al seleccionar esta opción, se agrega la dirección de correo electrónico válida a la colección People .
La pantalla usa esta colección como la lista de destinatarios:

Collect( MyPeople;
{
DisplayName: TextSearchBox.Text;
UserPrincipalName: TextSearchBox.Text;
Mail: TextSearchBox.Text
}
);;
Reset( TextSearchBox )

Este bloque de código agrega una fila a la colección People y rellena tres campos con el texto en
TextSearchBox. Estos tres campos son displayName, UserPrincipalNamey mail. A continuación,
restablece el contenido de TextSearchBox.

Galería de exploración de personas


Propiedad Elementos
Valor Los 15 resultados principales de búsqueda del texto de búsqueda escrito en el control
TextSearchBox :

If( !IsBlank( Trim(TextSearchBox.Text ) );


'Office365Users'.SearchUser( {searchTerm: Trim( TextSearchBox.Text ); top: 15} )
)

Los elementos de esta galería se rellenan con los resultados de búsqueda de la operación Office365.
SearchUser . La operación toma el texto de Trim(TextSearchBox) como término de búsqueda y devuelve
los 15 resultados principales en función de la búsqueda.
TextSearchBox está encapsulado en una función Trim() porque un usuario que busca espacios no es
válido. La operación Office365Users.SearchUser se encapsula en una función
If(!IsBlank(Trim(TextSearchBox.Text)) ... ) , lo que significa que la operación se realiza solo si el cuadro
de búsqueda contiene texto escrito por el usuario. Esto mejora el rendimiento.
Control de título de la galería de exploración de personas

Propiedad Texto
Valor: ThisItem.DisplayName
Muestra el nombre para mostrar de la persona de su perfil de Office 365.
Propiedad Alseleccionar
Valor Código para agregar el usuario a una colección de nivel de aplicación y, a continuación, seleccione el
usuario:

Concurrent(
Set( _selectedUser; ThisItem );
Reset( TextSearchBox );
If( Not( ThisItem.UserPrincipalName in MyPeople.UserPrincipalName );
Collect( MyPeople; ThisItem )
)
)

La selección de este control realiza tres acciones simultáneamente:


Establece la variable _selectedUser en el elemento seleccionado.
Restablece el término de búsqueda en TextSearchBox.
Agrega el elemento seleccionado a la colección People , una colección de todos los usuarios seleccionados
que utiliza la pantalla correo electrónico como un conjunto de destinatarios.
Galería de personas de correo electrónico

Propiedad Elementos
Valor: MyPeople
Esta es la colección de personas inicializadas o agregadas a seleccionando el control de título
PeopleBrowseGallery .
Propiedad Alto
Valor Lógica para establecer el alto, en función del número de elementos que se encuentran actualmente
en la Galería:

Min(
( EmailPeopleGallery.TemplateHeight + EmailPeopleGallery.TemplatePadding * 2) *
RoundUp(CountRows(EmailPeopleGallery.AllItems) / 2; 0 );
304
)

El alto de esta galería se ajusta al número de elementos de la galería, con un alto máximo de 304.
Toma TemplateHeight + TemplatePadding * 2 como el alto total de una sola fila de EmailPeopleGalleryy, a
continuación, lo multiplica por el número de filas. Como WrapCount = 2 , el número de filas verdaderas es
RoundUp(CountRows(EmailPeopleGallery.AllItems) / 2; 0) .

Propiedad ShowScrollbar
Valor: EmailPeopleGallery.Height >= 304

Cuando el alto de la Galería alcanza el 304, la barra de desplazamiento está visible.


Control de título de la galería de personas de correo electrónico

Propiedad Alseleccionar
Valor: Set(_selectedUser; ThisItem)
Establece la variable _selectedUser en el elemento seleccionado en EmailPeopleGallery.
Control iconRemove de la galería de personas de correo electrónico
Propiedad Alseleccionar
Valor: Remove( MyPeople; LookUp( MyPeople; UserPrincipalName = ThisItem.UserPrincipalName ) )

Busca el registro en la colección People , donde UserPrincipalName coincide con el


userPrincipalName del elemento seleccionado y quita ese registro de la colección.

Icono correo
Propiedad Alseleccionar
Valor Lógica para enviar el mensaje de correo electrónico del usuario:

Set( _emailRecipientString; Concat( MyPeople; Mail & ";" ) );;


'Office365'.SendEmail( _emailRecipientString;
TextEmailSubject.Text;
TextEmailMessage.Text;
{ Importance:"Normal" }
);;
Reset( TextEmailSubject );;
Reset( TextEmailMessage );;
Clear( MyPeople )

El envío de un mensaje de correo electrónico requiere una cadena separada por punto y coma de
direcciones de correo electrónico. En el código anterior:
1. La primera línea de código toma el campo mail de todas las filas de la colección People , los
concatena en una sola cadena de direcciones de correo electrónico separadas por punto y coma, y
establece la variable _emailRecipientString en esa cadena. valor.
2. A continuación, usa la operación Office365. sendEmail para enviar el correo electrónico a los
destinatarios. La operación tiene tres parámetros necesarios, para, asuntoy cuerpo, y un
parámetro opcional--importancia. En el código anterior, se trata de _emailRecipientString,
TextEmailSubject. Texto, TextEmailMessage. Texto y normal, respectivamente.
3. Por último, restablece los controles TextEmailSubject y TextEmailMessage y borra la colección
People .
Propiedad DisplayMode
Valor
If( Len( Trim( TextEmailSubject.Text ) ) > 0 && !IsEmpty( MyPeople ); DisplayMode.Edit;
DisplayMode.Disabled )
para enviar un correo electrónico, la línea de asunto del correo electrónico debe tener texto y la colección
de destinatarios (mispersonas) no debe estar vacía.

Pasos siguientes
Más información acerca de esta pantalla
Más información sobre el conector de Office 365 Outlook en PowerApps
Más información sobre el conector de usuarios de Office 365 en PowerApps
Información general de la plantilla de pantalla de
reunión para las aplicaciones de Canvas
12/11/2019 • 4 minutes to read

En una aplicación de lienzo, agregue una pantalla de reunión que permita a los usuarios crear y enviar
convocatorias de reunión desde sus cuentas de Office 365 Outlook. Los usuarios pueden buscar asistentes en su
organización y agregar direcciones de correo electrónico externas. Si el inquilino tiene salas de reuniones
integradas en Outlook, los usuarios también pueden seleccionar una ubicación.
También puede agregar otras pantallas basadas en plantillas que muestren datos diferentes de Office 365, como
el correo electrónico, las personas de una organización y el calendariode un usuario.
Esta información general le enseña la funcionalidad de alto nivel de la pantalla.
Para profundizar más en la funcionalidad predeterminada de esta pantalla, consulte la referenciade la pantalla de
la reunión.

Requisito previo
Está familiarizado con cómo agregar y configurar pantallas y otros controles a medida que crea una aplicación en
PowerApps.

Funcionalidad predeterminada
Para agregar una pantalla de reunión desde la plantilla:
1. Inicie sesión en PowerApps y, después, cree una aplicación o abra una aplicación existente en PowerApps
Studio.
En este tema se muestra una aplicación de teléfono, pero los mismos conceptos se aplican a una aplicación
de Tablet PC.
2. En la pestaña Inicio de la cinta de opciones, seleccione nueva pantalla > reunión.
Cuando se rellena, ambas pestañas de la pantalla de la reunión tienen un aspecto similar al siguiente:
Algunas notas útiles:
La pantalla de la reunión permite a un usuario de la aplicación crear una reunión en Outlook. Los usuarios
pueden buscar y agregar asistentes y, opcionalmente, agregar una sala de reuniones a la reunión.
Para buscar un usuario en su organización, empiece a escribir su nombre en el cuadro de entrada de texto en
"asistentes".
Al buscar personas, solo se devuelven los 15 resultados principales.
Para agregar direcciones de correo electrónico para los asistentes fuera de la organización, escriba la dirección
de correo electrónico completa y válida y seleccione el icono "+" que aparece a la derecha de la dirección de
correo electrónico.
Para crear una reunión, debe agregar al menos una persona como asistente, proporcionar un asunto y
seleccionar una hora de reunión en la pestaña programación .
Después de enviar la solicitud de reunión, se borra toda la información de la reunión.
La instrucción alseleccionar del icono de envío (esquina superior derecha) contiene esta fórmula:

Set( _myCalendarName;
LookUp( 'Office365'.CalendarGetTables().value; DisplayName = "Calendar" ).Name
);;

"Calendar" es el nombre para mostrar predeterminado de la mayoría de los calendarios del usuario de Office,
pero su organización puede ser diferente. Si es así, puede cambiar "Calendar" por el término adecuado para
su organización.
Recibirá un error si intenta programar una reunión que se produzca en el pasado o agregar más de 20
personas a una reunión.

Pasos siguientes
Vea la documentación de referencia de esta pantalla.
Obtenga más información sobre el conector de Office 365 Outlook.
Obtenga más información sobre el conector de usuarios de Office 365.
Información de referencia sobre la plantilla de
pantalla de reunión para las aplicaciones de Canvas
08/10/2019 • 36 minutes to read

En el caso de las aplicaciones de canvas en PowerApps, comprenda cómo contribuye cada control significativo de
la plantilla de pantalla de reunión a la funcionalidad predeterminada general de la pantalla. Esta profundización
presenta las fórmulas de comportamiento y los valores de otras propiedades que determinan cómo responden los
controles a los datos proporcionados por el usuario. Para obtener una descripción de alto nivel de la funcionalidad
predeterminada de esta pantalla, consulte información general sobre la pantallade la reunión.
En este tema se resaltan algunos controles significativos y se explican las expresiones o fórmulas en las que se
establecen varias propiedades (como Items y alseleccionar) de estos controles:
Pestaña invitar (LblInviteTab)
Pestaña programación (LblScheduleTab)
Cuadro de búsqueda de texto
Icono Agregar (AddIcon)
Galería de exploración de personas (+ controles secundarios)
Galería de personas de la reunión (+ controles secundarios)
Selector de fecha de reunión (MeetingDateSelect)
Lista desplegable duración de la reunión (MeetingDurationSelect)
Buscar la galería de horas de reunión (+ controles secundarios)
Galería de exploración de salón (+ controles secundarios)
Cheurón atrás (RoomsBackNav) (puede que no esté visible si el inquilino no tiene listas de salones)
Icono de envío

Requisito previo
Está familiarizado con cómo agregar y configurar pantallas y otros controles a medida que crea una aplicación en
PowerApps.

Pestaña invitar

Propiedad Color
Valor: If( _showDetails; LblRecipientCount.Color; RectQuickActionBar.Fill )
_showDetails es una variable que se usa para determinar si se ha seleccionado el control LblInviteTab o
el control LblScheduleTab . Si el valor de _showDetails es true, LblScheduleTab está seleccionado; Si el
valor es false, se selecciona LblInviteTab . Esto significa que si el valor de _showDetails es true (esta
pestaña no está seleccionada), el color de la pestaña coincide con el de LblRecipientCount. De lo
contrario, coincide con el valor de relleno de RectQuickActionBar.
Propiedad Alseleccionar
Valor: Set( _showDetails; false )

Establece la variable _showDetails en false, lo que significa que el contenido de la pestaña invite está
visible y el contenido de la pestaña Schedule está oculto.

Pestaña programación

Propiedad Color
Valor: If( !_showDetails; LblRecipientCount.Color; RectQuickActionBar.Fill )

_showDetails es una variable que se usa para determinar si se ha seleccionado el control LblInviteTab o
el control LblScheduleTab . Si es true, LblScheduleTab está seleccionado; Si es false, LblInviteTab es.
Esto significa que, si _showDetails es true (esta pestaña está seleccionada), el color de la pestaña coincide
con el valor de relleno de RectQuickActionBar. De lo contrario, coincide con el valor de color de
LblRecipientCount.
Propiedad Alseleccionar
Valor: Set( _showDetails; true )

Establece la variable _showDetails en true, lo que significa que el contenido de la pestaña programación
es visible y el contenido de la pestaña invite está oculto.

Cuadro de búsqueda de texto


Otros controles de la pantalla dependen de este:
Si un usuario comienza a escribir cualquier texto, PeopleBrowseGallery se vuelve visible.
Si un usuario escribe una dirección de correo electrónico válida, AddIcon se vuelve visible.
Cuando un usuario selecciona una persona dentro de PeopleBrowseGallery , se restablece el contenido de la
búsqueda.

Icono Agregar

Este control permite a los usuarios agregar personas que no existen dentro de su organización a la lista de
asistentes para la reunión que se va a componer.
Propiedad Estarán
Valor Tres comprobaciones lógicas que deben evaluarse como true para que el control sea visible:

!IsBlank( TextSearchBox.Text ) &&


IsMatch( TextSearchBox.Text; Match.Email ) &&
Not( Trim( TextSearchBox.Text ) in MyPeople.UserPrincipalName )

Línea por línea, este bloque de código indica que el control AddIcon solo está visible si:
TextSearchBox contiene texto.
El texto de TextSearchBox es una dirección de correo electrónico válida.
El texto de TextSearchBox ya no existe en la colección People .
Propiedad Alseleccionar
Valor Una instrucción Collect para agregar el usuario a la lista de asistentes, otra para actualizar las horas
de reunión disponibles y varios alternancias de variables:
Collect( MyPeople;
{
DisplayName: TextSearchBox.Text;
UserPrincipalName: TextSearchBox.Text;
Mail: TextSearchBox.Text
}
);;
Concurrent(
Reset( TextSearchBox );
Set( _showMeetingTimes; false );
UpdateContext( { _loadMeetingTimes: true } );
Set( _selectedMeetingTime; Blank() );
Set( _selectedRoom; Blank() );
Set( _roomListSelected; false );
ClearCollect( MeetingTimes;
AddColumns(
'Office365'.FindMeetingTimes(
{
RequiredAttendees: Concat(MyPeople; UserPrincipalName & ";")
MeetingDuration: MeetingDurationSelect.Selected.Minutes;
Start: Text( DateAdd( MeetingDateSelect.SelectedDate; 8; Hours ); UTC );
End: Text( DateAdd( MeetingDateSelect.SelectedDate; 17; Hours ); UTC );
MaxCandidates: 15;
MinimumAttendeePercentage:1;
IsOrganizerOptional: false;
ActivityDomain: "Work"
}
).MeetingTimeSuggestions;
"StartTime"; MeetingTimeSlot.Start.DateTime;
"EndTime"; MeetingTimeSlot.End.DateTime
)
)
);;
UpdateContext( { _loadingMeetingTimes: false } );;
Set( _showMeetingTimes; true )

Al seleccionar este control, se agrega la dirección de correo electrónico válida (solo es visible si se escribe
una dirección de correo electrónico válida en TextSearchBox) en la colección People (esta colección es la
lista de asistentes) y, a continuación, se actualizan las horas de reunión disponibles con la nueva entrada de
usuario.
En un nivel bajo, este bloque de código:
1. Recopila la dirección de correo electrónico en la colección People , recopilando la dirección de correo
electrónico en los campos displayName, UserPrincipalNamey mail .
2. Restablece el contenido del control TextSearchBox .
3. Establece la variable _showMeetingTimes en false. Esta variable controla la visibilidad de
FindMeetingTimesGallery, que muestra las horas abiertas que los asistentes seleccionados deben
cumplir.
4. Establece la variable de contexto _loadMeetingTimes en true. Esta variable establece un estado de
carga, que alterna la visibilidad de los controles de estado de carga como _LblTimesEmptyState para
indicar al usuario que se están cargando sus datos.
5. Establece _selectedMeetingTime en Blank () . _selectedMeetingTime es el registro seleccionado
del control FindMeetingTimesGallery . Está en blanco aquí porque la adición de otro asistente podría
significar que la definición anterior de _selectedMeetingTime no está disponible para ese asistente.
6. Establece _selectedRoom en Blank () . _selectedRoom es el registro de salón seleccionado de
RoomBrowseGallery. Las disponibilidades de salón se determinan a partir del valor de
_selectedMeetingTime. Con ese valor en blanco, el valor de _selectedRoom ya no es válido, por lo
que debe estar en blanco.
7. Establece _roomListSelected en false. Es posible que esta línea no sea aplicable a todos los usuarios.
En Office, puede agrupar sus salones por diferentes "listas de salones". Si tiene listas de salas, esta
pantalla cuenta para eso, lo que le permite seleccionar primero una lista de salas antes de seleccionar
una sala de esa lista. El valor de _roomListSelected es lo que determina si un usuario (en un inquilino
con listas de habitación solo) estará viendo los salones en una lista de salas o en el conjunto de listas de
salas. Se establece en false para obligar a los usuarios a volver a seleccionar una nueva lista de salones.
8. Usa la operación Office365. FindMeetingTimes para determinar y recopilar las horas de reunión
disponibles para los asistentes. Esta operación pasa:
El UserPrincipalName de cada usuario seleccionado en el parámetro RequiredAttendees .
MeetingDurationSelect. Seleccionado. minutes en el parámetro MeetingDuration .
MeetingDateSelect. SelectedDate + 8 horas en el parámetro de Inicio . Se agregan ocho horas
porque, de forma predeterminada, la fecha y hora completas del control de calendario es 12:00
A.M. de la fecha seleccionada. Probablemente quiera recuperar las disponibilidades en las horas
de trabajo normales. Una hora de inicio de trabajo normal sería de 8:00 A.M.
MeetingDateSelect. SelectedDate + 17 horas en el parámetro End . se agregan 17 horas
porque 12:00 AM + 17 = 5:00 PM. Una hora de finalización de trabajo normal sería 5:00 PM.
15 en el parámetro MaxCandidates . Esto significa que la operación devuelve solo las 15 horas
disponibles principales para la fecha seleccionada. Esto tiene sentido porque solo hay fragmentos
de 16 30 minutos en un día de trabajo de 8 horas y una reunión de 30 minutos es el mínimo que
se puede establecer en esta pantalla.
1 en el parámetro MinimumAttendeePercentage . Esencialmente, a menos que no haya ningún
asistente disponible, se recupera la hora de la reunión.
false en el parámetro IsOrganizerOptional . El usuario de la aplicación no es un asistente
opcional para esta reunión.
"Work" en el parámetro ActivityDomain . Esto significa que las horas recuperadas son solo las de
un período de tiempo de trabajo normal.
9. La función ClearCollect también agrega dos columnas: "StartTime" y "EndTime". Esto simplifica los
datos devueltos. El campo que contiene las horas de inicio y finalización disponibles es el campo
MeetingTimeSlot . Este campo es un registro que contiene los registros inicial y final, que contienen
los valores DateTime y TimeZone de su sugerencia correspondiente. En lugar de intentar recuperar
este anidamiento de registros, al agregar las columnas "StartTime" y "EndTime" a la colección
MeetingTimes , los valores Start > datetime y End > DateTime se convierten en la superficie de la
colección.
10. Una vez completadas todas estas funciones, la variable _loadingMeetingTimes se establece en false,
se quita el estado de carga y _showMeetingTimes se establece en true, lo que muestra
FindMeetingTimesGallery.

Galería de exploración de personas


Propiedad Elementos
Valor

If( !IsBlank( Trim( TextSearchBox.Text ) );


'Office365Users'.SearchUser( { searchTerm: Trim(TextSearchBox.Text); top: 15 } )
)

Los elementos de esta galería se rellenan con los resultados de búsqueda de la operación Office365. SearchUser .
La operación toma el texto de Trim(**TextSearchBox**) como término de búsqueda y devuelve los 15 resultados
principales en función de la búsqueda.
TextSearchBox está encapsulado en una función Trim porque un usuario que busca espacios no es válido. La
operación Office365Users.SearchUser se encapsula en una función If(!IsBlank(Trim(TextSearchBox.Text)) ... )
porque la recuperación de los resultados de la búsqueda antes de que un usuario haya buscado es un desperdicio
de rendimiento.
Título de la galería de exploración de personas

Propiedad Texto
Valor: ThisItem.DisplayName
Muestra el nombre para mostrar de la persona de su perfil de Office 365.
Propiedad Alseleccionar
Valor Una instrucción Collect para agregar el usuario a la lista de asistentes, otra para actualizar las horas
de reunión disponibles y varios alternancias de variables:

Concurrent(
Reset( TextSearchBox );
Set( _selectedUser; ThisItem );
If( Not( ThisItem.UserPrincipalName in MyPeople.UserPrincipalName );
Collect( MyPeople; ThisItem );;
Concurrent(
Set( _showMeetingTimes; false );
UpdateContext( { _loadMeetingTimes: true } );
Set( _selectedMeetingTime; Blank() );
Set( _selectedRoom; Blank() );
Set( _roomListSelected; false );
ClearCollect( MeetingTimes;
AddColumns(
'Office365'.FindMeetingTimes(
{
RequiredAttendees: Concat( MyPeople; UserPrincipalName & ";" );
MeetingDuration: MeetingDurationSelect.Selected.Minutes;
Start: Text( DateAdd( MeetingDateSelect.SelectedDate; 8; Hours ); UTC );
End: Text( DateAdd( MeetingDateSelect.SelectedDate; 17; Hours ); UTC );
MaxCandidates: 15;
MinimumAttendeePercentage: 1;
IsOrganizerOptional: false;
ActivityDomain: "Work"
}
).MeetingTimeSuggestions;
"StartTime"; MeetingTimeSlot.Start.DateTime;
"EndTime"; MeetingTimeSlot.End.DateTime
)
)
);;
UpdateContext( { _loadingMeetingTimes: false } );;
Set( _showMeetingTimes; true )
)
)

En un nivel alto, al seleccionar este control se agrega la persona a la colección People (el almacenamiento
de la aplicación de la lista de asistentes) y se actualizan las horas de reunión disponibles en función de la
nueva adición de usuarios.
La selección de este control es muy similar a la selección del control AddIcon . la única diferencia es que la
instrucción Set(_selectedUser; ThisItem) y el orden de ejecución de las operaciones. Como tal, este debate
no será tan profundo. Para obtener una explicación más completa, lea la sección sobre el control AddIcon .
Al seleccionar este control se restablece TextSearchBox. Después, si la selección no está en la colección
People , el control:
1. Establece el estado _loadMeetingTimes en true y el estado _showMeetingTimes en false, en blanco
las variables _selectedMeetingTime y _selectedRoom y actualiza el MeetingTimes colección con la
nueva adición a la colección People .
2. Establece el estado de _loadMeetingTimes en falsey establece _showMeetingTimes en true. Si la
selección ya está en la colección People , solo restablece el contenido de TextSearchBox.

Galería de reuniones de personas


Propiedad Elementos
Valor: MyPeople
La colección People es la colección de personas inicializadas o agregadas a seleccionando el control de
título PeopleBrowseGallery .
Propiedad Alto
Valor Lógica para permitir que la Galería crezca hasta un alto máximo de 350:

Min(
76 * RoundUp( CountRows( MeetingPeopleGallery.AllItems ) / 2; 0 );
350
)

El alto de esta galería se ajusta al número de elementos de la galería, con un alto máximo de 350. La
fórmula toma 76 como alto de una sola fila de MeetingPeopleGalleryy, a continuación, lo multiplica por
el número de filas. La propiedad WrapCount se establece en 2, por lo que el número de filas verdaderas es
RoundUp(CountRows(MeetingPeopleGallery.AllItems) / 2; 0) .

Propiedad ShowScrollbar
Valor: MeetingPeopleGallery.Height >= 350

Cuando se alcanza el alto máximo de la galería (350), la barra de desplazamiento está visible.
Título de la galería de personas de reuniones

Propiedad Alseleccionar
Valor: Set(_selectedUser; ThisItem)

Establece la variable _selectedUser en el elemento seleccionado en MeetingPeopleGallery.


Galería de reuniones iconRemove

Propiedad Alseleccionar
Valor Una instrucción Remove para quitar el usuario de la lista de asistentes, una instrucción Collect para
actualizar las horas de reunión disponibles y varios alternancias de variables:

Remove( MyPeople; LookUp( MyPeople; UserPrincipalName = ThisItem.UserPrincipalName ) );;


Concurrent(
Reset( TextSearchBox );
Set( _showMeetingTimes; false );
UpdateContext( { _loadMeetingTimes: true } );
Set( _selectedMeetingTime; Blank() );
Set( _selectedRoom; Blank() );
Set( _roomListSelected; false );
ClearCollect( MeetingTimes;
AddColumns(
'Office365'.FindMeetingTimes(
{
RequiredAttendees: Concat( MyPeople; UserPrincipalName & ";" );
MeetingDuration: MeetingDurationSelect.Selected.Minutes;
Start: Text( DateAdd( MeetingDateSelect.SelectedDate; 8; Hours ); UTC );
End: Text( DateAdd( MeetingDateSelect.SelectedDate; 17; Hours ); UTC );
MaxCandidates: 15;
MinimumAttendeePercentage: 1;
IsOrganizerOptional: false;
ActivityDomain: "Work"
}
).MeetingTimeSuggestions;
"StartTime"; MeetingTimeSlot.Start.DateTime;
"EndTime"; MeetingTimeSlot.End.DateTime
)
)
);;
UpdateContext( { _loadingMeetingTimes: false } );;
Set( _showMeetingTimes; true )

En un nivel alto, al seleccionar este control se quita la persona de la lista de asistentes y se actualizan las
horas de reunión disponibles en función de la eliminación de esta persona.
Después de la primera línea del código anterior, la selección de este control es casi idéntica a seleccionar el
control AddIcon . Como tal, este debate no será tan profundo. Para obtener una explicación más completa,
lea la sección sobre el control AddIcon.
En la primera línea de código, el elemento seleccionado se quita de la colección People . Después, el
código:
1. Restablece TextSearchBoxy, a continuación, quita la selección de la colección People .
2. Establece el estado _loadMeetingTimes en true y el estado _showMeetingTimes en false, en blanco
las variables _selectedMeetingTime y _selectedRoom y actualiza el MeetingTimes colección con la
nueva adición a la colección People .
3. Establece el estado de _loadMeetingTimes en falsey establece _showMeetingTimes en true.

Selector de fecha de reunión

Propiedad DisplayMode
Valor: If( IsEmpty(MyPeople); DisplayMode.Disabled; DisplayMode.Edit )

No se puede elegir una fecha para una reunión hasta que se haya agregado al menos un asistente a la
colección People .
Propiedad OnChange
Valor: Select( MeetingDateSelect )

Al cambiar la fecha seleccionada, se desencadena el código de la propiedad alseleccionar de este control


para que se ejecute.
Propiedad Alseleccionar
Valor Una instrucción Collect para actualizar las horas de reunión disponibles y varios alternancias de
variables:
Concurrent(
Reset( TextSearchBox );
Set( _showMeetingTimes; false );
UpdateContext( { _loadingMeetingTimes: true } );
Set( _selectedMeetingTime; Blank() );
Set( _selectedRoom; Blank() );
Set( _roomListSelected; false );
ClearCollect( MeetingTimes;
AddColumns(
'Office365'.FindMeetingTimes(
{
RequiredAttendees: Concat( MyPeople; UserPrincipalName & ";" );
MeetingDuration: MeetingDurationSelect.Selected.Minutes;
Start: Text( DateAdd( MeetingDateSelect.SelectedDate; 8; Hours ); UTC );
End: Text( DateAdd( MeetingDateSelect.SelectedDate; 17; Hours ); UTC );
MaxCandidates: 15;
MinimumAttendeePercentage: 1;
IsOrganizerOptional: false;
ActivityDomain: "Work"
}
).MeetingTimeSuggestions;
"StartTime"; MeetingTimeSlot.Start.DateTime;
"EndTime"; MeetingTimeSlot.End.DateTime
)
)
);;
UpdateContext( { _loadingMeetingTimes: false } );;
Set( _showMeetingTimes; true )

En un nivel alto, al seleccionar este control se actualizan las horas de reunión disponibles. Es muy útil
porque, si un usuario cambia la fecha, las horas de reunión disponibles deben actualizarse para reflejar la
disponibilidad de los asistentes durante ese día.
A excepción de la instrucción Collect inicial, es idéntica a la funcionalidad alseleccionar del control
AddIcon . Como tal, este debate no será tan profundo. Para obtener una explicación más completa, lea la
sección sobre el control AddIcon .
Al seleccionar este control se restablece TextSearchBox. A continuación:
1. Establece el estado _loadMeetingTimes en true y el estado _showMeetingTimes en false, en blanco
las variables _selectedMeetingTime y _selectedRoom y actualiza el MeetingTimes colección con la
nueva selección de fecha.
2. Establece el estado de _loadMeetingTimes en falsey establece _showMeetingTimes en true.

Lista desplegable duración de la reunión

Propiedad DisplayMode
Valor: If( IsEmpty(MyPeople); DisplayMode.Disabled; DisplayMode.Edit )
No se puede elegir una duración para una reunión hasta que al menos un asistente se haya agregado a la
colección de mis personas .
Propiedad OnChange
Valor: Select(MeetingDateSelect1)
Al cambiar la duración seleccionada, se desencadena el código de la propiedad alseleccionar del control
MeetingDateSelect para que se ejecute.

Buscar la galería de horarios de reunión

Propiedad Elementos
Valor: MeetingTimes
Colección de horas de reunión potenciales recuperada de la operación de Office365. FindMeetingTimes .
Propiedad Estarán
Valor: _showMeetingTimes && _showDetails && !IsEmpty( MyPeople )

La Galería solo es visible si _showMeetingTimes está establecido en true, el usuario ha seleccionado el


control LblScheduleTab y se ha agregado al menos un asistente a la reunión.
Título de la Galería buscar horas de reunión

Propiedad Texto
Valor Conversión de la hora de inicio que se va a mostrar en la hora local del usuario:
Text(
DateAdd(
DateTimeValue( ThisItem.StartTime );
- TimeZoneOffset();
Minutes
);
DateTimeFormat.ShortTime
)

El valor recuperado de startTime está en formato UTC. Para convertir la hora UTC a la hora local, se aplica
la función DateAdd . La función Text toma una fecha y hora como primer argumento y la da formato
según su segundo argumento. Le pasa la conversión de hora local de ThisItem. startTimey la muestra
como DateTimeFormat. ShortTime.
Propiedad Alseleccionar
Valor Varias instrucciones Collect para recopilar salas de reuniones y sus sugerencias de disponibilidad, así
como varias alternancias de variables:

Set( _selectedMeetingTime; ThisItem );;


UpdateContext( { _loadingRooms: true } );;
If( IsEmpty( RoomsLists );
ClearCollect( RoomsLists; 'Office365'.GetRoomLists().value) );;
If( CountRows( RoomsLists ) <= 1;
Set( _noRoomLists; true );;
ClearCollect( AllRooms; 'Office365'.GetRooms().value );;
Set( _allRoomsConcat; Concat( FirstN( AllRooms; 20 ); Address & ";" ) );;
ClearCollect( RoomTimeSuggestions;
'Office365'.FindMeetingTimes(
{
RequiredAttendees: _allRoomsConcat;
MeetingDuration: MeetingDurationSelect.Selected.Minutes;
Start: _selectedMeetingTime.StartTime & "Z";
End: _selectedMeetingTime.EndTime & "Z";
MinimumAttendeePercentage: "1";
IsOrganizerOptional: "false";
ActivityDomain: "Unrestricted"
}
).MeetingTimeSuggestions
);;
ClearCollect( AvailableRooms;
AddColumns(
AddColumns(
Filter(
First( RoomTimeSuggestions ).AttendeeAvailability;
Availability="Free"
);
"Address"; Attendee.EmailAddress.Address
);
"Name"; LookUp( AllRooms; Address = Attendee.EmailAddress.Address ).Name
)
);;
ClearCollect( AvailableRoomsOptimal;
DropColumns(
DropColumns( AvailableRooms; "Availability" );
"Attendee"
)
);
Set( _roomListSelected; false)
);;
UpdateContext( {_loadingRooms: false} )

En un nivel alto, este bloque de código recopila los salones disponibles para los usuarios que no tienen
listas de salones, en función de la fecha y hora seleccionadas para la reunión. De lo contrario, simplemente
recupera las listas de salones.
En un nivel bajo, este bloque de código:
1. Establece _selectedMeetingTime en el elemento seleccionado. Se usa para averiguar qué salones
están disponibles en ese momento.
2. Establece la variable de estado de carga _loadingRooms en true, lo que activa el estado de carga.
3. Si la colección RoomsLists está vacía, recupera las listas de salones de tenant's del usuario y las
almacena en la colección RoomsLists .
4. Si el usuario no tiene una lista de salones o una lista de salas:
a. La variable noRoomLists se establece en truey esta variable se usa para determinar los
elementos que se muestran en el control RoomBrowseGallery .
b. La operación Office365.GetRooms() se usa para recuperar las primeras 100 salas de su inquilino.
Estos se almacenan en la colección AllRooms .
c. La variable _allRoomsConcat se establece en una cadena separada por punto y coma de las 20
primeras direcciones de correo electrónico de los salones de la colección AllRooms . Esto se
debe a que Office365. FindMeetingTimes está limitado a buscar las horas disponibles de 20
objetos Person en una sola operación.
d. La colección RoomTimeSuggestions usa Office365. FindMeetingTimes para recuperar la
disponibilidad de los 20 primeros salones de la colección AllRooms , en función de los valores
de tiempo de la variable _selectedMeetingTime . Tenga en cuenta que el & "Z" se usa para dar
formato correctamente al valor DateTime .
e. Se crea la colección AvailableRooms . Esto es simplemente la colección
RoomTimeSuggestions de la disponibilidad de los asistentes con dos columnas adicionales
agregadas: "Address" y "Name". "Address" es la dirección de correo electrónico de la habitación y
"Name" es el nombre de la habitación.
f. A continuación, se crea la colección AvailableRoomsOptimal . Esta es solo la colección
AvailableRooms con las columnas "Availability" y "attendees" quitadas. Esto coincide con los
esquemas de AvailableRoomsOptimal y AllRooms. Esto le permite usar ambas colecciones en
la propiedad Items de RoomBrowseGallery.
g. _roomListSelected está establecido en false.
5. El estado de carga, _loadingRooms, se establece en false una vez que todo lo demás ha terminado de
ejecutarse.

Galería de exploración de salón

Propiedad Elementos
Valor Se establece lógicamente en dos colecciones internas de esquema idéntico, en función de si el usuario
ha seleccionado una lista de salas o tiene listas de salones en su inquilino:

Search(
If( _roomListSelected || _noRoomLists; AvailableRoomsOptimal; RoomsLists );
Trim(TextMeetingLocation1.Text);
"Name";
"Address"
)

Esta galería muestra la colección AvailableRoomsOptimal si _roomListSelected o _noRoomLists es


true. De lo contrario, muestra la colección RoomsLists . Esto puede hacerse porque el esquema de estas
colecciones es idéntico.
Propiedad Estarán
Valor: _showDetails && !IsBlank( _selectedMeetingTime ) && !_loadingRooms

La Galería solo es visible si las tres instrucciones anteriores se evalúan como true.
Título de RoomBrowseGallery

Propiedad Alseleccionar
Valor Conjunto de instrucciones Collect y set enlazadas lógicamente, que pueden o no desencadenarse, en
función de si el usuario está viendo listas o salones de habitación:
UpdateContext( { _loadingRooms: true } );;
If( !_roomListSelected && !noRoomLists;
Set( _roomListSelected; true );;
Set( _selectedRoomList; ThisItem.Name );;
ClearCollect( AllRooms; 'Office365'.GetRoomsInRoomList( ThisItem.Address ).value );;
Set( _allRoomsConcat; Concat( FirstN( AllRooms; 20 ); Address & ";" ) );;
ClearCollect( RoomTimeSuggestions;
'Office365'.FindMeetingTimes(
{
RequiredAttendees: _allRoomsConcat;
MeetingDuration: MeetingDurationSelect.Selected.Minutes;
Start: _selectedMeetingTime.StartTime & "Z";
End: _selectedMeetingTime.EndTime & "Z";
MinimumAttendeePercentage: "1";
IsOrganizerOptional: "false";
ActivityDomain: "Unrestricted"
}
).MeetingTimeSuggestions
);;
ClearCollect( AvailableRooms;
AddColumns(
AddColumns(
Filter(
First( RoomTimeSuggestions ).AttendeeAvailability;
Availability = "Free"
);
"Address"; Attendee.EmailAddress.Address
);
"Name"; LookUp( AllRooms; Address = Attendee.EmailAddress.Address ).Name
)
);;
ClearCollect( AvailableRoomsOptimal;
DropColumns(
DropColumns( AvailableRooms; "Availability" )
);
"Attendee" )
);
Set( _selectedRoom; ThisItem )
);;
UpdateContext( {_loadingRooms: false} )

Las acciones que se producen cuando se selecciona este control dependen de si un usuario está viendo
actualmente un conjunto de listas de salas o un conjunto de salones. Si es el primero, al seleccionar este
control se recuperan los salones disponibles a la hora seleccionada de la lista de salones seleccionada. Si es
el último, al seleccionar este control se establece la variable _selectedRoom en el elemento seleccionado.
La instrucción anterior es muy similar a la instrucción Select para el título FindMeetingTimesGallery.
En un nivel bajo, el bloque de código anterior:
1. Activa el estado de carga de las salas estableciendo _loadingRooms en true.
2. Comprueba si se ha seleccionado una lista de salas y si el inquilino tiene listas de salones. En caso
afirmativo:
a. Establece _roomListSelected en true y establece _selectedRoomList en el elemento
seleccionado.
b. La variable _allRoomsConcat se establece en una cadena separada por punto y coma de las 20
primeras direcciones de correo electrónico de los salones de la colección AllRooms . Esto se
debe a que la operación Office365. FindMeetingTimes está limitada a la búsqueda de las horas
disponibles de 20 objetos Person en una sola operación.
c. La colección RoomTimeSuggestions usa la operación Office365. FindMeetingTimes para
recuperar las disponibilidades de los 20 primeros salones de la colección AllRooms , en función
de los valores de tiempo de _selectedMeetingTime variable. Tenga en cuenta que & "Z" se usa
para dar formato al valor DateTime correctamente.
d. Se crea la colección AvailableRooms . Esto es simplemente la colección
RoomTimeSuggestions de la disponibilidad de los asistentes con dos columnas adicionales
agregadas: "Address" y "Name". "Address" es la dirección de correo electrónico de la habitación y
"Name" es el nombre de la habitación.
e. A continuación, se crea la colección AvailableRoomsOptimal . Esta es solo la colección
AvailableRooms con las columnas "Availability" y "attendees" quitadas. Esto coincide con los
esquemas de AvailableRoomsOptimal y AllRooms. Esto le permite usar ambas colecciones en
la propiedad Items de RoomBrowseGallery.
f. _roomListSelected está establecido en false.
3. El estado de carga, _loadingRooms, se establece en false una vez que todo lo demás ha terminado de
ejecutarse.

Cheurón atrás

Propiedad Estarán
Valor: _roomListSelected && _showDetails

Este control solo es visible si se ha seleccionado una lista de sala y se selecciona la pestaña programación .
Propiedad Alseleccionar
Valor: Set( _roomListSelected; false )

Cuando _roomListSelected se establece en false, cambia el control RoomBrowseGallery para mostrar


los elementos de la colección RoomsLists .

Icono de envío
Propiedad DisplayMode
Valor Lógica para obligar al usuario a especificar determinados detalles de la reunión antes de que el icono
se vuelva editable.

If( Len( Trim( TextMeetingSubject1.Text ) ) > 0


&& !IsEmpty( MyPeople ) && !IsBlank( _selectedMeetingTime );
DisplayMode.Edit; DisplayMode.Disabled
)

El icono solo es seleccionable si el asunto de la reunión se rellena, hay al menos un asistente para la
reunión y se ha seleccionado una hora de reunión. De lo contrario, está deshabilitado.
Propiedad Alseleccionar
Valor Código para enviar la invitación de reunión a los asistentes seleccionados y borrar todos los campos
de entrada:

Set( _myCalendarName; LookUp( 'Office365'.CalendarGetTables().value; DisplayName = "Calendar" ).Name


);;
Set( _myScheduledMeeting;
'Office365'.V2CalendarPostItem( _myCalendarName;
TextMeetingSubject1.Text;
Text(DateAdd(DateTimeValue( _selectedMeetingTime.StartTime); -TimeZoneOffset(); Minutes) );
Text(DateAdd(DateTimeValue( _selectedMeetingTime.EndTime); -TimeZoneOffset(); Minutes) );
{
RequiredAttendees: Concat( MyPeople; UserPrincipalName & ";" ) & _selectedRoom.Address;
Body: TextMeetingMessage1.Text;
Location: _selectedRoom.Name;
Importance: "Normal";
ShowAs: "Busy";
ResponseRequested: true
}
)
);;
Concurrent(
Reset( TextMeetingLocation1 );
Reset( TextMeetingSubject1 );
Reset( TextMeetingMessage1 );
Clear( MyPeople );
Set( _selectedMeetingTime; Blank() );
Set( _selectedRoomList; Blank() );
Set( _selectedRoom; Blank() );
Set( _roomListSelected; false )
)

En un nivel bajo, este bloque de código:


1. Establece _myCalendarName en el calendario de la operación Office365. CalendarGetTables () con un
displayName de "Calendar".
2. Programa la reunión con todos los valores de entrada de las distintas selecciones realizadas por el
usuario en la pantalla mediante la operación Office365. V2CalendarPostItem .
3. Restablece todos los campos de entrada y las variables utilizadas en la creación de la reunión.

NOTE
En función de su región, es posible que el calendario que desee no tenga el nombre para mostrar "Calendar". Vaya a
Outlook para ver cuál es el título del calendario y realice el cambio adecuado en la aplicación.

Pasos siguientes
Más información acerca de esta pantalla
Más información sobre el conector de Office 365 Outlook en PowerApps
Más información sobre el conector de usuarios de Office 365 en PowerApps
Información general de la plantilla de pantalla
People para aplicaciones de Canvas
12/11/2019 • 8 minutes to read

En una aplicación de lienzo, agregue una pantalla de personas que permita a los usuarios buscar personas dentro
de sus organizaciones. Los usuarios pueden buscar, seleccionar y agregar personas a una recopilación. Puede
cambiar los tipos de datos que aparecen en la galería de resultados de la búsqueda, usar las selecciones de los
usuarios para enviar un correo electrónico y realizar otras personalizaciones.
También puede agregar otras pantallas basadas en plantillas que muestren datos diferentes de Office 365, como
el correo electrónico, el calendariode un usuario y la disponibilidad de personas que los usuarios quieran invitar
a una reunión.
Esta información general le enseña:
Cómo usar la pantalla usuarios predeterminados.
Cómo modificar la pantalla.
Cómo integrar la pantalla en aplicaciones.
Para profundizar más en la funcionalidad predeterminada de esta pantalla, consulte la referencia de la pantalla
People.

Requisito previo
Está familiarizado con cómo agregar y configurar pantallas y otros controles a medida que crea una aplicación en
PowerApps.

Funcionalidad predeterminada
Para agregar una pantalla de contactos de la plantilla:
1. Inicie sesión en PowerApps y, después, cree una aplicación o abra una aplicación existente en PowerApps
Studio.
En este tema se muestra una aplicación de teléfono, pero los mismos conceptos se aplican a una
aplicación de Tablet PC.
2. En la pestaña Inicio de la cinta de opciones, seleccione nueva pantalla > personas.
De forma predeterminada, la pantalla tiene un aspecto similar al siguiente:
3. Para iniciar la búsqueda de usuarios, seleccione el cuadro entrada de texto en la parte superior y comience
a escribir el nombre de un compañero de trabajo. Los resultados de la búsqueda aparecen debajo del
cuadro de entrada de texto:
4. Al seleccionar usuarios de los resultados de la búsqueda, se agregan a la colección People . Se restablece
el valor de entrada de la barra de búsqueda y se revela la colección de personas que ha seleccionado:
Modificar la pantalla
Puede modificar la funcionalidad predeterminada de esta pantalla mostrando datos diferentes para las personas.
Si desea modificar la pantalla con más detalle, use la referencia de la pantalla People como guía.
Mostrar datos diferentes para las personas
Esta pantalla usa la operación Office365Users. SearchUser para buscar usuarios en la organización. Proporciona
campos adicionales para cada evento más allá de lo que aparece en el control UserBrowseGallery . Agregar o
cambiar campos en la Galería es un proceso sencillo:
1. En UserBrowseGallery, seleccione una etiqueta para modificarla (o agréguela y manténgala
seleccionada).
2. Con su propiedad Text seleccionada, en la barra de fórmulas, reemplace el contenido por ThisItem.

IntelliSense muestra una lista de los campos que puede seleccionar.


3. Seleccione el campo que desee.
La propiedad de texto debe actualizarse a ThisItem.{FieldSelection} .

Integración de la pantalla en una aplicación


La pantalla People es un conjunto eficaz de controles en su propio derecho, pero normalmente funciona mejor
como parte de una aplicación más grande y versátil. Puede integrar esta pantalla en una aplicación más grande
de varias maneras, incluido el uso de la lista de personas almacenada en caché.
Usar la lista de personas almacenadas en caché
La pantalla People almacena en caché las selecciones de los usuarios en la colección People. En caso de que su
escenario empresarial llame a una búsqueda de personas, deberá saber cómo usar esta colección. Aquí, le guiará
por el modo de conectar esta pantalla a una pantalla de correo electrónico rudimentaria y enviar correos
electrónicos a los usuarios de la colección de mis personas . También obtendrá información sobre cómo
funciona la pantalla de correo electrónico .
1. Agregue el origen de datos Office 365 Outlook a la aplicación. para ello, seleccione la pestaña vista ,
seleccione orígenes de datos > Agregar origen de datosy busque el conector Office 365 Outlook. Es
posible que tenga que seleccionar nueva conexión para encontrarla.
2. Después de insertar la pantalla People, inserte una nueva pantalla en blanco. Dentro de esa pantalla,
agregue un icono de flecha atrás, dos cuadros de entrada de texto y un icono de envío.
3. Cambie el nombre de la pantalla a EmailScreen, el icono de flecha atrás a iconode retroceso, un cuadro
de entrada de texto a SubjectLine, el otro a MessageBodyy el icono de envío a SendIcon.
4. Establezca la propiedad alseleccionar del icono de en Back() .
5. Establezca la propiedad alseleccionar de SendIcon en esta fórmula:

Office365.SendEmail(
Concat( MyPeople; UserPrincipalName & ";" );
SubjectLine.Text;
MessageBody.Text
)

Aquí está usando el conector de Outlook para enviar un correo electrónico. Se pasa
Concat(MyPeople; UserPrincipalName & ";") como la lista de destinatarios. Esta fórmula concatena todas
las direcciones de correo electrónico de la colección People en una sola cadena con puntos y comas
separando. No es diferente de escribir una cadena de direcciones de correo electrónico separadas por
punto y coma en la línea "para" de su cliente de correo electrónico favorito.
Está pasando SubjectLine.Text como asunto del mensaje y MessageBody.Text como el cuerpo del
mensaje.
6. En la pantalla People, en la esquina superior derecha, inserte el icono mail . Cambie el color del icono a lo
que le convenga.
7. Establezca la propiedad alseleccionar de SendIcon en Navigate( EmailScreen; None ) .
Ahora tiene una aplicación de dos pantallas en la que puede seleccionar usuarios, crear un mensaje de
correo electrónico para ellos y, a continuación, enviarlo. No dude en probarlo, pero tenga cuidado, ya que
la aplicación envía mensajes de correo electrónico a todos los usuarios que agregue a la colección de mis
personas .

Pasos siguientes
Vea la documentación de referencia de esta pantalla.
Obtenga más información sobre el conector de Office 365 Outlook.
Obtenga más información sobre el conector de usuarios de Office 365.
Información de referencia sobre la plantilla de
pantalla People para aplicaciones de Canvas
08/10/2019 • 6 minutes to read

En el caso de las aplicaciones de canvas en PowerApps, comprenda cómo contribuye cada control significativo de
la plantilla de pantalla People a la funcionalidad predeterminada general de la pantalla. En esta profundización se
presentan las fórmulas de comportamiento y los valores de otras propiedades que determinan cómo responden
los controles a los datos proporcionados por el usuario. Para obtener una descripción de alto nivel de la
funcionalidad predeterminada de esta pantalla, consulte la información general de la pantalla People.
En este tema se resaltan algunos controles significativos y se explican las expresiones o fórmulas en las que se
establecen varias propiedades (como Items y alseleccionar) de estos controles:
Cuadro de búsqueda de texto
Galería de exploración de usuarios (+ controles secundarios)
Personalizó la Galería (+ controles secundarios)

Requisito previo
Está familiarizado con cómo agregar y configurar pantallas y otros controles a medida que crea una aplicación en
PowerApps.

Cuadro de búsqueda de texto

Un par de otros controles interactúan o tienen una dependencia en el cuadro de búsqueda de texto:
Si un usuario comienza a escribir cualquier texto, UserBrowseGallery se vuelve visible.
Cuando un usuario selecciona una persona dentro de UserBrowseGallery, se restablece el contenido de la
búsqueda.

Galería de exploración de usuarios


Propiedad Elementos
Valor Lógica para buscar usuarios cuando el usuario comienza a escribir:

If( !IsBlank( Trim( TextSearchBox.Text ) );


'Office365Users'.SearchUser(
{
searchTerm: Trim( TextSearchBox.Text );
top: 15
}
)
)

Los elementos de esta galería se rellenan con los resultados de búsqueda de la operación Office365. SearchUser .
La operación toma el texto de Trim(TextSearchBox) como término de búsqueda y devuelve los 15 resultados
principales en función de la búsqueda. TextSearchBox está encapsulado en una función Trim() porque un
usuario que busca espacios no es válido.
La operación Office365Users.SearchUser se encapsula en una función
If(!IsBlank(Trim(TextSearchBox.Text)) ... ) porque solo tiene que llamar a la operación cuando el cuadro de
búsqueda contiene texto escrito por el usuario. Esto mejora el rendimiento.
Control de título de UserBrowseGallery

Propiedad Texto
Valor: ThisItem.DisplayName
Muestra el nombre para mostrar de la persona de su perfil de Office 365.
Propiedad Alseleccionar
Valor Código para agregar el usuario a una colección de nivel de aplicación y, a continuación, seleccione el
usuario:
Concurrent(
Set( _selectedUser; ThisItem );
Reset( TextSearchBox );
If( Not( ThisItem.UserPrincipalName in MyPeople.UserPrincipalName );
Collect( MyPeople; ThisItem )
)
)

La selección de este control realiza tres acciones simultáneamente:


Establece la variable _selectedUser en el elemento seleccionado.
Restablece el término de búsqueda en TextSearchBox.
Agrega el elemento seleccionado a la colección People , una colección de todas las personas que ha
seleccionado el usuario de la aplicación.
Control UserBrowseGallery ProfileImage

Propiedad Imagen
Valor Lógica para recuperar la foto de Perfil de un usuario.

If( !IsBlank( ThisItem.Id ) &&


'Office365Users'.UserPhotoMetadata( ThisItem.Id ).HasPhoto;
'Office365Users'.UserPhoto( ThisItem.Id )
)

El control de imagen recupera la imagen del usuario con la operación Office365Users. UserPhoto . Sin embargo,
antes de hacerlo, comprueba dos cosas:
Indica si el campo de ID. está vacío o no está vacío. Esto impide que el control de imagen intente recuperar
una foto de usuario antes de que se haya rellenado la galería con los resultados de la búsqueda.
Si el usuario tiene una foto (con la operación Office365Users. UserPhotoMetadata ). Esto evita que la
búsqueda Office365Users.UserPhoto devuelva una excepción si el usuario no tiene una imagen de perfil.

Tenga en cuenta que si no se recupera una imagen, el control de imagen está en blanco y el control iconUser
está visible en su lugar.

Galería agregada por personas


Propiedad Elementos
Valor: MyPeople

Esta es la colección de personas inicializadas o agregadas a seleccionando el control de título


UserBrowseGallery .
Control de título de PeopleAddedGallery

Propiedad Alseleccionar
Valor: Set( _selectedUser; ThisItem )

Establece la variable _selectedUser en el elemento seleccionado en EmailPeopleGallery.


Control PeopleAddedGallery iconRemove

Propiedad Alseleccionar
Valor: Remove( MyPeople; LookUp( MyPeople; UserPrincipalName = ThisItem.UserPrincipalName ) )

Busca el registro en la colección People , donde UserPrincipalName coincide con el userPrincipalName del
elemento seleccionado y, a continuación, quita ese registro de la colección.

Pasos siguientes
Más información acerca de esta pantalla.
Obtenga más información sobre el conector de Office 365 Outlook.
Obtenga más información sobre el conector de usuarios de Office 365.
Mostrar una lista de elementos en PowerApps
26/11/2019 • 6 minutes to read

Muestre una lista de elementos de cualquier origen de datos agregando un control Galería a la aplicación de
lienzo. En este tema se utiliza Excel como origen de datos. Filtre la lista mediante la configuración del control
Galería para mostrar únicamente aquellos elementos que coinciden con el criterio de filtro en un control
Entrada de texto .

Requisitos previos
Aprenda a agregar y configurar un control en PowerApps.
Configure los datos de ejemplo:
1. Descargue este archivo de Excel, que contiene datos de ejemplo para este tutorial.
2. Cargue el archivo de Excel en una cuenta de almacenamiento en la nube, como OneDrive para la
Empresa.
Abra una aplicación en blanco:
1. Inicie sesión en PowerApps.
2. En Cree su propia aplicación, seleccione Aplicación de lienzo en blanco.
3. Especifique el nombre de la aplicación, seleccione Teléfono y, luego, Crear.
4. Si aparece el cuadro de diálogo de bienvenida a PowerApps Studio, seleccione Skip (Omitir).
5. Agregue una conexión a la tabla FlooringEstimates del archivo de Excel.

Agregar una galería a una pantalla en blanco


1. En la pestaña Insertar , seleccione Galeríay, a continuación, seleccione vertical.

2. En la pestaña propiedades del panel derecho, abra la lista elementos y, a continuación, seleccione las
estimaciones de suelos.
3. opta En la lista diseño , seleccione una opción diferente.

Agregar una galería en una pantalla


1. En la pestaña Inicio , seleccione nueva pantalla > pantalla lista.
Aparece una pantalla que contiene un control Galería y otros controles, como una barra de búsqueda.
2. Establezca la propiedad Elementos de la galería en FlooringEstimates .
El control Galería muestra los datos de ejemplo.
Agregar un control al control Galería
Antes de realizar cualquier otra personalización, asegúrese de que el diseño del control de Galería coincida
mejor con el que desee. Desde allí, puede modificar aún más la plantilla de la Galería , que determina cómo se
muestran todos los datos del control de la Galería .
1. Seleccione la plantilla haciendo clic o pulsando cerca de la parte inferior del control Galería y
seleccionando después el icono de lápiz en la esquina superior izquierda.

2. Con la plantilla aún seleccionada, agregue un control Etiqueta y, después, muévalo y ajuste su tamaño
para que no se superponga con otros controles de la plantilla.
3. Seleccione la galería y, a continuación, seleccione Editar junto a campos en la pestaña propiedades del
panel derecho.
4. Seleccione la etiqueta que ha agregado en este procedimiento y abra la lista resaltada en el panel Data
(Datos).

5. En dicha lista, pulse o haga clic en Price.


El control Galería muestra los valores nuevos.
Filtrar y ordenar una galería
La propiedad Elementos de una control Galería determina los elementos que muestra. En este procedimiento,
configurará esa propiedad para que también determine qué registros aparecen según los criterios de filtro y en
qué orden.

1. Establezca la propiedad Elementos del control Galería en esta fórmula:

Sort
(If
(IsBlank(TextSearchBox1.Text);
FlooringEstimates;
Filter(
FlooringEstimates;
TextSearchBox1.Text in Text(Name)
)
);
Name;
If(
SortDescending1;
SortOrder.Descending;
SortOrder.Ascending
)
)

Para más información acerca de las funciones de esta fórmula, consulte la referencia de las fórmulas.
2. Haga doble clic en el cuadro de búsqueda y, a continuación, escriba parte o todo el nombre del producto
en él.
Solo aparecen los elementos que cumplen el criterio de filtro.
3. Mientras presiona la tecla Alt, seleccione el icono de ordenación una o varias veces para cambiar el
criterio de ordenación.
Los registros alternan entre orden alfabético ascendente y descendente según el nombre del producto.

Resalte el elemento seleccionado


Establezca la propiedad rellenodeplantilla del control de Galería en una fórmula similar a la de este ejemplo,
pero puede especificar distintos colores si lo desea:
If(ThisItem.IsSelected; LightCyan; White)

Cambio de la elección predeterminada


En la propiedad Default del control Galería, especifique el registro que desea que se seleccione de manera
predeterminada. Por ejemplo, puede especificar el quinto elemento en el origen de datos FlooringEstimates :
Last(FirstN (FlooringEstimates; 5))
En este ejemplo, especifique el primer elemento de la categoría Hardwood del origen de datos
FlooringEstimates:
First(Filter(FlooringEstimates; Category = "Hardwood"))

Pasos siguientes
Aprenda a trabajar con formularios y fórmulas.
Mostrar elementos de alturas diferentes en una
galería de PowerApps
07/10/2019 • 5 minutes to read

Si diferentes elementos del conjunto de datos contienen diferentes cantidades de datos en el mismo campo, puede
mostrar por completo los elementos que contienen más datos sin tener que agregar espacio vacío después de los
elementos que contienen menos datos. Agregue y configure un control de galería Altura flexible para que pueda:
Configure controles Etiqueta para que se expandan o se reduzcan según su contenido.
Coloque cada control para que aparezca automáticamente bajo el control de encima.
En este tutorial, va a mostrar datos sobre productos para el suelo en un control de galería Altura flexible. La
imagen de cada producto aparece 5 píxeles por debajo de la información general, tanto si esta contiene cinco líneas
de texto como solo dos.

Lectura recomendada
Si nunca ha agregado los controles a una galería, siga los pasos descritos en Mostrar una lista de elementos antes
de continuar en este tema.

Agregar datos a una aplicación en blanco


1. Descargue este archivo de Excel, que contiene nombres, información general y vínculos a imágenes de
productos para el suelo.
2. Cargue el archivo de Excel en una cuenta de almacenamiento en la nube, como OneDrive, Dropbox o
Google Drive.
3. En PowerApps Studio, pulse o haga clic en Nuevo en el menú Archivo.
4. En el icono Blank app (Aplicación vacía), pulse o haga clic en Phone layout (Diseño de teléfono).

5. Agregue una conexión a la tabla FlooringEstimates del archivo de Excel.


Para más información, consulte Agregar una conexión.

Agregar datos a una galería


1. En la pestaña Insertar, haga clic o pulse en Galería y luego haga clic o pulse en Altura flexible.

2. Cambie el tamaño de la galería para que ocupe toda la pantalla.


3. Establezca la propiedad Elementos de la galería en FlooringEstimates.

Mostrar los nombres de producto


1. En la esquina superior izquierda de la galería, haga clic o pulse en el icono de lápiz para seleccionar la
plantilla de la galería.

2. Con la plantilla de la galería seleccionada, agregue un control Etiqueta .


3. Establezca la propiedad Text del control Etiqueta en esta expresión:
ThisItem.Name

Mostrar las informaciones generales de producto


1. Con la plantilla de la galería seleccionada, agregue otro control Etiqueta y muévalo debajo del primer
control Etiqueta.
2. Establezca la propiedad Texto del segundo control Etiqueta en esta expresión:
ThisItem.Overview
3. Con el segundo control Etiqueta seleccionado, haga clic o pulse en el icono de etiqueta de nombre en la
pestaña Contenido y cambie el nombre del control a OverviewText.

4. Establezca la propiedad AutoHeight del cuadro OverviewText en true.


Este paso garantiza que el cuadro aumentará o reducirá su tamaño para ajustarse al contenido.
Mostrar las imágenes de producto
1. Cambie el tamaño de la plantilla para que sea dos veces más alta de lo que era.
Puede agregar controles a la plantilla más fácilmente cuando compile la aplicación y este cambio no afectará
al aspecto de la aplicación cuando esta se ejecute.
2. Con la plantilla de la galería seleccionada, agregue un control Imagen y muévalo debajo del cuadro
OverviewText.
3. Asegúrese de que la propiedad Imagen del control Imagen esté establecida en esta expresión:
ThisItem.Image
4. Establezca la propiedad Y del control Imagen en función de la posición y el tamaño del cuadro
OverviewText, como se muestra en esta expresión:
OverviewText.Y + OverviewText.Height + 5

Aplique el mismo concepto se aplica si desea agregar más controles: establezca la propiedad Y de cada control en
función de las propiedades Y y Altura del control situado por encima de él.

Pasos siguientes
Aprenda a trabajar con un control Galería y fórmulas.
Mostrar, editar o agregar un registro en una
aplicación de lienzo
08/10/2019 • 4 minutes to read

En una aplicación de lienzo, agregue y configure un control Mostrar formulario para mostrar todos los campos
de un registro, también puede Agregar y configurar un control Editar formulario para editar cualquier campo
de un registro, agregar un registro y guardar los cambios de nuevo en un origen de datos.

Requisitos previos
Aprenda a agregar y configurar un control en PowerApps.
Descargue este archivo de Excel, que contiene datos de ejemplo para este tutorial.
Cargue el archivo de Excel en una cuenta de almacenamiento en la nube, como OneDrive para la
Empresa.
Cree o abra una aplicación para teléfonos y agregue una conexión a la tabla FlooringEstimates en el
archivo de Excel.
Puede Agregar un formulario a una aplicación de Tablet PC, pero no coincidirá con este tema porque el
formulario tendrá tres columnas de forma predeterminada.
Si abre una aplicación existente, agregue una pantalla a ella.

Agregar un formulario y mostrar datos


1. En una pantalla en blanco, agregue un control lista desplegable y asígnele el nombre ChooseProduct.

NOTE
Si no está seguro de cómo agregar un control, cambiar su nombre o establecer una propiedad, consulte Adición
y configuración de un control en PowerApps.

2. En la pestaña propiedades del panel derecho, establezca items en FlooringEstimates y Value en Name
.

La lista muestra nombres de productos para el suelo del origen de datos.


3. Agregue un control Editar formulario, muévalo debajo de ChooseProducty, a continuación, cambie el
tamaño del formulario para que cubra la mayor parte de la pantalla.
NOTE
En este tema se describe el control formulario de edición , pero los principios similares se aplican al control
Mostrar formulario.

4. Establezca la propiedad DataSource del formulario en FlooringEstimates y su propiedad Item en


esta fórmula:
First(Filter(FlooringEstimates; Name=ChooseProduct.Selected.Value))

Esta fórmula especifica que, cuando termine de configurar el formulario, aparecerá el registro que el
usuario selecciona en ChooseProduct.
5. En la pestaña propiedades del panel derecho, seleccione Editar campos.

6. En el panel Campos, seleccione Agregar campo, marque la casilla de cada campo y, luego, seleccione
Agregar.
7. Seleccione los puntos suspensivos (...) junto a Agregar campo, seleccione contraer todoy, a
continuación, arrastre nombre hasta la parte superior de la lista.

El control Editar formulario refleja el cambio.


Establecimiento del tipo de tarjeta de un campo
1. En el panel campos , expanda el campo precio seleccionando la flecha hacia abajo.
2. Abra la lista tipo de control y, a continuación, seleccione Editar control deslizante.

En el formulario, el campo precio muestra un control deslizante en lugar de un control entrada de


texto .
3. opta Siga el mismo proceso para cambiar el control para el campo de información general a un
control de texto de varias líneas .

Guardar cambios (Solo para Edit form)


1. Cambie el nombre del formulario a EditForm.
2. Agregue un control Botón y establezca su propiedad OnSelect en esta fórmula:
SubmitForm(EditForm)

3. Presione F5 para abrir la vista previa, cambie el nombre de un producto y, a continuación, seleccione el
botón que creó.
La función SubmitForm guarda los cambios en el origen de datos.
4. opta Cierre la vista previa presionando ESC (o seleccionando el icono cerrar en la esquina superior
derecha).

Pasos siguientes
Más información sobre formularios y galerías.
Comprender los formularios de aplicaciones de
lienzo en Microsoft PowerApps
05/11/2019 • 41 minutes to read

Agregue tres tipos de controles a una aplicación de lienzo para que el usuario pueda buscar un registro,
mostrar los detalles sobre ese registro y editar o crear un registro:

ACTIVIDAD CONTROL DESCRIPCIÓN

Buscar un registro Control Galería Filtra, ordena, busca y se desplaza


por los registros de un origen de
datos, además de seleccionar un
registro específico. Muestra solo
algunos campos de cada registro
para ver varios registros a la vez,
incluso en una pantalla pequeña.

Mostrar los detalles de un Control Mostrar formulario Muestra varios o todos los campos
registro de un solo registro.

Editar o crear un registro Control Editar formulario Actualiza uno o varios campos de un
solo registro (o cree un registro a
partir de los valores
predeterminados) y guarde esos
cambios en el origen de datos
subyacente.

Ubique cada control en una pantalla distinta para que sea más fácil distinguirlos:

Tal como se describe en este tema, combine estos controles con fórmulas para crear la experiencia global
del usuario.
Requisitos previos
Regístrese en PowerApps y, luego, inicie sesión con las mismas credenciales que usó para registrase.
Aprenda a configurar un control en PowerApps.

Exploración de una aplicación generada


PowerApps puede generar automáticamente una aplicación según un origen de datos que especifique.
Cada aplicación contiene tres pantallas con los controles anteriormente descritos, además de fórmulas que
las conectan. Ejecute estas aplicaciones "de uso inmediato", personalícelas para lograr objetivos específicos
o examine cómo funcionan para que pueda aprender conceptos útiles para usarlos con sus propias
aplicaciones. En las secciones siguientes, revise las pantallas, los controles y las fórmulas que crean una
aplicación generada.
Pantalla de exploración

Esta pantalla incluye las siguientes fórmulas clave:

CONTROL COMPORTAMIENTO ADMITIDO FÓRMULA

BrowseGallery1 Muestra los registros del origen de La propiedad Items de la galería está
datos Assets. establecida en una fórmula basada en
el origen de datos Assets.

ImageNewItem1 Muestra la pantalla Editar y crear La propiedad OnSelect de la imagen


con cada campo establecido en un está establecida en esta fórmula:
valor predeterminado para que el NewForm( EditForm1 );;
usuario pueda crear fácilmente un Navigate( EditScreen1; None )
registro.
CONTROL COMPORTAMIENTO ADMITIDO FÓRMULA

NextArrow1 (en la galería) Muestra la pantalla Detalles para ver La propiedad OnSelect de la flecha
varios o todos los campos del está establecida en esta fórmula:
registro actualmente seleccionado. Navigate( DetailScreen1; None )

El control principal de esta pantalla, BrowseGallery1, abarca la mayor parte de la pantalla. El usuario
puede desplazarse en la galería para encontrar un registro específico a fin de mostrar más campos o hacer
una actualización.
Establezca la propiedad Items de una galería para que muestre los registros provenientes de un origen de
datos. Por ejemplo, establezca la propiedad en Assets para mostrar los registros de un origen de datos con
ese nombre.

NOTE
En una aplicación generada, la propiedad Elementos se establece, de manera predeterminada, en una fórmula mucho
más complicada para que el usuario pueda ordenar y buscar registros. Más adelante en este tema obtendrá
información sobre cómo crear esta fórmula; por ahora basta con la versión más sencilla.

En lugar de buscar un registro para mostrarlo o editarlo, el usuario puede crear un registro si selecciona el
símbolo "+" que se encuentra arriba de la galería. Para crear este efecto, agregue un control Image ,
colóquele un símbolo "+" y establezca su propiedad OnSelect en esta fórmula:
NewForm ( EditForm1 );; Navigate( EditScreen1; None )
Esta fórmula abre la pantalla Editar y crear, que incluye un control Editar formulario llamado EditForm1.
La fórmula también convierte ese formulario al modo New, en el cual el formulario muestra los valores
predeterminados del origen de datos para que el usuario pueda crear fácilmente un registro desde cero.
Para examinar cualquier control que aparezca en BrowseGallery1, selecciónelo en la primera sección de la
galería, lo que sirve como plantilla para todas las demás secciones. Por ejemplo, seleccione el control
Etiqueta central que se encuentra en el borde de la izquierda:

En este ejemplo, la propiedad Text del control está establecida en ThisItem.AssignedTo, que es un campo
que se encuentra en el origen de datos Assets. La propiedad Texto de los otros tres controles Etiqueta en
la galería está establecida en fórmulas similares y cada control muestra un campo distinto en el origen de
datos.
Seleccione el control Forma (la flecha) y confirme que la propiedad OnSelect está establecida en esta
fórmula:
Navigate( DetailScreen1; None )
Si el usuario encuentra un registro en BrowseGallery1, puede seleccionar la flecha correspondiente a ese
registro para mostrar más información sobre él en DetailScreen1. Cuando selecciona una flecha, el
usuario cambia el valor de la propiedad Selected de BrowseGallery1. En esta aplicación, esa propiedad
determina el registro que aparece no solo en la pantalla DetailScreen1, sino que también en Edit and
Create, si el usuario decide actualizar el registro.
Pantalla de detalle

Esta pantalla incluye las siguientes fórmulas clave:

CONTROL COMPORTAMIENTO ADMITIDO FÓRMULA

DetailForm1 Muestra un registro en el origen de Establezca la propiedad DataSource


datos Assets. en Assets.

DetailForm1 Determina el registro que se Establezca la propiedad Item de este


mostrará. En una aplicación control en este valor:
generada, muestra el registro que el BrowseGallery1.Selected
usuario seleccionó en la galería.

Controles Tarjeta En un control Mostrar formulario , Establezca la propiedad DataField en


muestra un solo campo de un el nombre de un campo entre
registro. comillas dobles (por ejemplo,
"Nombre" ).
CONTROL COMPORTAMIENTO ADMITIDO FÓRMULA

ImageBackArrow1 Cuando el usuario selecciona este Establezca la propiedad OnSelect en


control, se abre BrowseScreen1. esta fórmula:
Back()

ImageDelete1 Cuando el usuario selecciona este Establezca la propiedad OnSelect en


control, se elimina un registro. esta fórmula:
Remove( Assets;
BrowseGallery1.Selected )

ImageEdit1 Cuando el usuario selecciona este Establezca la propiedad OnSelect en


control, la pantalla Editar y crear se esta fórmula:
abre en el registro actual. Navigate( EditScreen1; None )

En la parte superior de la pantalla, aparecen tres imágenes fuera de DetailForm1 que actúan como
botones y se organizan entre las tres pantallas de la aplicación.
DetailForm1 domina esta pantalla y muestra el registro que el usuario seleccionó en la galería (porque la
propiedad Item del formulario está establecida en BrowseGallery1.Selected). La propiedad DataSource
del formulario también proporciona metadatos sobre el origen de datos, como un nombre descriptivo para
mostrar para cada campo.
DetailForm1 contiene varios controles Tarjeta . Puede seleccionar el control Tarjeta mismo o el control
que contiene para encontrar información adicional.

La propiedad DataField de un control Tarjeta determina el campo que se muestra. En este caso, esa
propiedad está establecida en AssetID. La tarjeta contiene un control Etiqueta para el que la propiedad
Texto está establecida en Parent.Default. Este control muestra el valor Default de la tarjeta, que se
establece a través de la propiedad DataField .
En una aplicación generada, los controles Tarjeta están bloqueados de manera predeterminada. Cuando
una tarjeta está bloqueada, no se pueden modificar algunas propiedades, como DataField , y la barra de
fórmulas no está disponible para esas propiedades. Esta restricción permite garantizar que las
personalizaciones no interrumpan la funcionalidad básica de la aplicación generada. Sin embargo, puede
modificar algunas de las propiedades de una tarjeta y sus controles en el panel de la derecha:
En el panel de la derecha, puede seleccionar los campos que se van a mostrar y el tipo de control que
mostrará cada uno.
Pantalla de edición o creación

Esta pantalla incluye las siguientes fórmulas clave:


CONTROL COMPORTAMIENTO ADMITIDO FÓRMULA

EditForm1 Muestra un registro en el origen de Establezca la propiedad DataSource


datos Assets. en Assets.

EditForm1 Determina el registro que se Establezca la propiedad Item en este


mostrará. En una aplicación valor:
generada, muestra el registro que el BrowseGallery1.Selected
usuario seleccionó en
BrowseScreen1.

Controles Tarjeta En un control Editar formulario , Establezca la propiedad DataField en


proporciona controles para que el el nombre de un campo entre
usuario pueda editar uno o varios comillas dobles (por ejemplo,
campos de un registro. "Nombre" ).

ImageCancel1 Cuando el usuario selecciona este Establezca la propiedad OnSelect en


control, se descartan los cambios en esta fórmula:
curso y se abre la pantalla Detalles. ResetForm( EditForm1 );; Back()

ImageAccept1 Cuando el usuario selecciona este Establezca la propiedad OnSelect en


control, los cambios se envían al esta fórmula:
origen de datos. SubmitForm( EditForm1 )

EditForm1 Si se aceptan los cambios, se vuelve a Establezca la propiedad OnSuccess


la pantalla anterior. en esta fórmula:
Back()

EditForm1 Si no se aceptan los cambios, el Deje en blanco la propiedad


usuario continúa en la pantalla actual OnFailure .
para poder corregir cualquier
problema e intente volver a enviar.

LblFormError1 Si no se aceptan los cambios, se Establezca la propiedad Text en este


muestra un mensaje de error. valor:
EditForm1.Error

Tal como ocurre en la pantalla Detalles, un control de formulario, llamado EditForm1, domina la pantalla
Editar y crear. Además, la propiedad Item de EditForm1 está establecida en BrowseGallery1.Selected,
por lo que el formulario muestra el registro que el usuario seleccionó en BrowseScreen1. Si bien la
pantalla Detalles muestra cada campo como un campo de solo lectura, el usuario puede actualizar el valor
de uno o más campos con los controles en EditForm1. También usa la propiedad DataSource para tener
acceso a metadatos sobre este origen de datos, como el nombre descriptivo para mostrar de cada campo y
la ubicación en la que se deben guardar los cambios.
Si el usuario selecciona el icono "X" para cancelar una actualización, la función ResetForm descarta los
cambios que no se hayan guardado y la función Back abre la pantalla Detalles. Tanto la pantalla Detalles
como la pantalla Editar y crear muestran el mismo registro hasta que el usuario selecciona otro en
BrowseScreen1. Los campos de ese registro siguen establecidos en los valores que se guardaron más
recientemente, no en ningún cambio que el usuario haya hecho para luego abandonar.
Si el usuario cambia uno o más valores del formulario y luego selecciona el icono "marca de verificación", la
función SubmitForm envía los cambios del usuario al origen de datos.
Si los cambios se guardaron correctamente, se ejecuta la fórmula OnSuccess del formulario y la función
Back() abre la pantalla de detalle para mostrar el registro actualizado.
Si los cambios no se guardaron correctamente, se ejecuta la fórmula OnFailure del formulario, pero no
cambia nada porque está en blanco. La pantalla Editar y crear sigue abierta, por lo que el usuario puede
cancelar los cambios o corregir el error. LblFormError1 muestra un mensaje de error descriptivo en el
que está establecida la propiedad Error del formulario.
Al igual que con un control Mostrar formulario , un control Editar formulario contiene controles Tarjeta
los que, a su vez, contienen otros controles que muestran otros campos de un registro:

En la imagen anterior, la tarjeta seleccionada muestra el campo AssetID y contiene un control Entrada de
texto para que el usuario pueda editar el valor de ese campo. (En cambio, la pantalla de detalle muestra el
mismo campo en un control de etiqueta , que es de solo lectura). El control entrada de texto tiene una
propiedad predeterminada , que se establece en Parent. default. Si el usuario estuviera creando un
registro en lugar de editándolo, ese control mostraría un valor inicial que el usuario podría cambiar para el
registro nuevo.
En el panel de la derecha, puede mostrar u ocultar cada una de las tarjetas, reorganizarlas o configurarlas
para mostrar campos en los distintos tipos de controles.
Crear una aplicación desde cero
Si comprende cómo PowerApps genera una aplicación, puede compilar una que use los mismos bloques de
creación y fórmulas que ya se analizaron en este tema.

Identificación de los datos de prueba


Para aprovechar al máximo este tema, comience con un origen de datos con el que pueda experimentar.
Debe contener datos de prueba que pueda leer y actualizar sin tener que preocuparse.

NOTE
Si usa una lista de SharePoint o una tabla de Excel que contenga nombres de columna con espacios como origen de
datos, PowerApps reemplazará los espacios por "_x0020_" . Por ejemplo, "Nombre de columna" en SharePoint o
Excel aparecerá como "Nombre_x0020_de_columna" en PowerApps cuando se muestre en el diseño de datos o se
use en una fórmula.

Para seguir el resto de este tema al pie de la letra, cree una lista de SharePoint llamada "Helado" con los
siguientes datos:
Cree una aplicación desde cero, para teléfonos, y conéctela al origen de datos.

NOTE
Las aplicaciones de tableta son muy similares, pero es posible que desee un diseño de pantalla distinto para
aprovechar al máximo el espacio adicional de la pantalla.

Los ejemplos que aparecen en el resto del tema se basan en un origen de datos llamado Helado.

Búsqueda de registros
Obtenga un fragmento de información de un registro; para ello, búsquelo en una galería en una pantalla de
exploración.
1. Agregue una galería Vertical y cambie el diseño a solo Título.
2. Establezca la propiedad Elementos de la galería en Helado.
3. Establezca la propiedad Texto de la primera etiqueta en la galería en ThisItem.Title si está
establecida en algo diferente.
Ahora la etiqueta muestra el valor del campo Título para cada registro.
4. Cambie el tamaño de la galería para que llene la pantalla y establezca su propiedad
TamañoDePlantilla en 60.
La pantalla es similar a este ejemplo, el que muestra todos los registros del origen de datos:
Ver detalles
Si la galería no muestra la información que desea, seleccione la flecha de un registro para abrir la pantalla
de detalles. Un control Mostrar formulario de esa pantalla muestra más campos, posiblemente todos, del
registro que seleccionó.
El control Mostrar formulario usa dos propiedades para mostrar el registro:
Propiedad DataSource . El nombre del origen de datos que contiene el registro. Esta propiedad rellena
el panel de la derecha con campos y determina el nombre para mostrar y el tipo de datos (cadena,
número, fecha, etc.) de cada campo.
Propiedad Item . El registro que se mostrará. A menudo, esta propiedad está conectada con la propiedad
Selected del control Galería , por lo que el usuario puede seleccionar un registro en el control Galería
y luego profundizar en ese registro.
Cuando se establece la propiedad DataSource , puede agregar y quitar campos en el panel de la derecha y
cambiar la forma en que se muestran.
En esta pantalla, los usuarios no pueden cambiar ningunos de los valores del registro, ya sea intencional o
accidentalmente. El control Mostrar formulario es un control de solo lectura, por lo que no modificará el
registro.
Para agregar un control Mostrar formulario :
1. Agregue una pantalla y, luego, agréguele un control Mostrar formulario .
2. Establezca la propiedad DataSource del control de formulario en "Helado" .
En el panel de la derecha, puede seleccionar los campos que se van a mostrar en la pantalla y el tipo de
tarjeta que se mostrará para cada campo. Cuando hace cambios en el panel de la derecha, la propiedad
DataField de cada control Tarjeta se establece en el campo con el que interactuará el usuario. La pantalla
debe ser similar al ejemplo:

Por último, es necesario conectar el control Mostrar formulario con el control Galería para poder ver los
detalles de un registro específico. Tan pronto como se termine de establecer la propiedad Item , el primer
registro de la galería aparecerá en el formulario.
Establezca la propiedad Item del control Mostrar formulario en Gallery1.Selected.
Los detalles del elemento seleccionado aparecen en el formulario.
Excelente. Ahora analizaremos la navegación: cómo un usuario abre la pantalla de detalles desde la pantalla
de galería y viceversa.
Agregue un control Botón a la pantalla, establezca su propiedad Text para mostrar Back , y
establezca su propiedad OnSelect en Back() .
Esta fórmula devuelve al usuario a la galería cuando termina de ver los detalles.

Volvamos al control Galería y agreguemos navegación a la pantalla de detalle.


1. Vaya a la primera pantalla, que hospeda el control Galería , y seleccione la flecha del primer
elemento de la galería.
2. Establezca la propiedad OnSelect de la forma en esta fórmula:
Navigate( Screen2; None )

3. Presione F5 y seleccione una flecha en la galería para mostrar los detalles de un elemento.
4. Seleccione el botón Atrás para volver a la galería de productos y, luego, presione Esc.

Edición de detalles
Finalmente, la última actividad central es cambiar el contenido de un registro, algo que los usuarios pueden
hacer en un control Editar formulario .
El control Editar formulario usa dos propiedades para mostrar y editar el registro:
Propiedad DataSource . El nombre del origen de datos que contiene el registro. Del mismo modo que
con el control Mostrar formulario , esta propiedad rellena el panel de la derecha con campos y
determina el nombre para mostrar y el tipo de datos (cadena, número, fecha, etc.) de cada campo. Esta
propiedad también determina si el valor de cada campo es válido antes de enviarlo al origen de datos
subyacente.
Propiedad Item . El registro que se editará, que a menudo está conectado a la propiedad Selected del
control Galería . Así, puede seleccionar un registro en el control Galería , mostrarlo en la pantalla de
detalles y editarlo en la pantalla Editar y crear.
Para agregar un control Editar formulario :
1. Agregue una pantalla y un control Editar formulario y, luego, establezca la propiedad DataSource del
formulario en "Helado" .
2. Establezca la propiedad Item en Gallery1.Selected.
Ahora puede seleccionar los campos que se mostrarán en la pantalla. También puede seleccionar el tipo de
tarjeta que se mostrará para cada campo. Cuando hace cambios en el panel de la derecha, la propiedad
DataField de cada control Tarjeta se establece en el campo con el que interactuará el usuario. La pantalla
debe ser similar al ejemplo:

Estas dos propiedades son las mismas propiedades del control Mostrar formulario . Con ellas se pueden
mostrar los detalles de un registro.
El control Editar formulario va más allá y ofrece la función SubmitForm para reescribir los cambios en el
origen de datos. Puede usarla con un control de botón o imagen para guardar los cambios de un usuario.
Agregue un control Botón , establezca la propiedad Text para mostrar Guardar y establezca la
propiedad OnSelect en esta fórmula:
SubmitForm ( Form1 )
Para agregar navegación desde esta pantalla y hacia ella:
1. Agregue otro control Botón , establezca la propiedad Text para mostrar Cancelar y establezca la
propiedad OnSelect en esta fórmula:
ResetForm ( Form1 );; Back()
Esta fórmula descarta las ediciones no guardadas y abre la pantalla anterior.

2. Establezca la propiedad OnSuccess del formulario en Back() .


Si las actualizaciones se guardan correctamente, la pantalla anterior (en este caso, la pantalla de
detalles) se abre automáticamente.

3. En la pantalla Mostrar, agregue un botón, establezca su propiedad Text para mostrar Editar y
establezca la propiedad OnSelect en esta fórmula:
Navigate( Screen3; None )

Ha compilado una aplicación básica con tres pantallas para ver y escribir datos. Para probarla, muestre la
pantalla de galería y, luego, presione F5 (o seleccione el botón "Vista previa" de la flecha hacia adelante
junto a la esquina superior izquierda de la pantalla). El punto rosa indica donde el usuario toca o hace clic en
la pantalla en cada paso.
Creación de un registro
El usuario interactúa con el mismo formulario Editar para actualizar y crear registros. Cuando el usuario
desea crear un registro, la función NewForm cambia el formulario al modo New.
Si el formulario está en modo New, el valor de cada campo se establece en los valores predeterminados del
origen de datos. Se omite el registro que se proporcionó en la propiedad Item del formulario.
Cuando el usuario está listo para guardar el registro nuevo, se ejecuta SubmitForm . Una vez que el
formulario se envía correctamente, vuelve al modo EditMode.
En la primera pantalla, agregará un botón Nuevo:
1. En la pantalla con la galería, agregue un control Botón .
2. Establezca la propiedad Text en New y su propiedad OnSelect en esta fórmula:
NewForm ( Form1 );; Navigate( Screen3; None )
Esta fórmula cambia el control Editar formulario en Screen3 al modo New y se abre esa pantalla
para que el usuario pueda rellenarla.
Cuando se abre la pantalla Editar y crear, el formulario está vacío y listo para que el usuario agregue un
elemento. Cuando el usuario selecciona el botón Guardar, la función SubmitForm garantiza que se cree
un registro, en lugar de actualizarlo. Si el usuario selecciona el botón Cancelar, la función ResetForm
vuelve a cambiar el formulario al modo Edit y la función Back abre la pantalla para explorar la galería.

Eliminación de un registro
1. En la pantalla Mostrar, agregue un botón y establezca su propiedad Text para que muestre
Eliminar.
2. Establezca la propiedad OnSelect del botón en esta fórmula:
Remove( 'Ice Cream'; Gallery1.Selected );; Back()
Control de errores
En esta aplicación, se produce un error si el valor de un campo no es válido, si un campo obligatorio está en
blanco, si se le desconecta de la red o si emerge cualquier otro número de problemas.
Si SubmitForm presenta un error por cualquier motivo, la propiedad Error del control Editar formulario
contiene un mensaje de error que se le mostrará al usuario. Con esta información, el usuario debe poder
corregir el problema y reenviar el cambio, o bien puede cancelar la actualización.
1. En la pantalla Editar y crear, agregue un control Etiqueta y póngalo justo debajo del botón Guardar.
Será sencillo detectar cualquier error una vez que el usuario seleccione este control para guardar los
cambios.
2. Establezca la propiedad Texto del control Etiqueta para mostrar Form1.Error.
En una aplicación que PowerApps genera a partir de los datos, la propiedad AutoHeight de este control
está establecida en true para que no se consuma espacio si no se produce ningún error. Las propiedades
Height e Y del control Editar formulario también se ajustan de forma dinámica para contemplar el
crecimiento de este control cuando se produce un error. Para más detalles, genere una aplicación a partir de
los datos existentes y revise estas propiedades. El control de cuadro de texto para los errores es muy breve
cuando no se ha producido ningún error; es posible que tenga que abrir la vista Avanzada (disponible en la
pestaña Ver) para seleccionar este control.
Actualización de datos
El origen de datos se actualiza cada vez que el usuario abre la aplicación, pero es posible que el usuario
quiera actualizar los registros en la galería sin cerrar la aplicación. Agregue un botón Actualizar, de modo
que el usuario pueda seleccionarlo para actualizar manualmente los datos:
1. En la pantalla con el control Galería , agregue un control Botón y establezca su propiedad Text para
que muestre Actualizar.
2. Establezca la propiedad OnSelect de este control en esta fórmula:
Refresh( 'Ice Cream' )
Búsqueda y ordenación de la galería
En la aplicación que PowerApps generó a partir de los datos, no analizamos dos controles que se
encuentran en la parte superior de la pantalla de exploración. Con estos controles, el usuario puede buscar
uno o varios registros, ordenar la lista de registros en orden ascendente o descendente, o ambas acciones.

Cuando el usuario selecciona el botón de ordenación, se invierte el criterio de ordenación de la galería. Para
crear este comportamiento, usamos una variable de contexto para hacer seguimiento de la dirección en que
se ordena la galería. Cuando el usuario selecciona el botón, se actualiza la variable y se invierte la dirección.
La propiedad OnSelect del botón de ordenación se establece en esta fórmula: UpdateContext(
{SortDescending1: !SortDescending1} )
La función UpdateContext crea la variable de contexto SortDescending1 si todavía no existe. La función
leerá el valor de la variable y lo establecerá en la lógica opuesta con el operador ! . Si el valor es true, se
convierte en false. Si el valor es false, se convierte en true.
La fórmula de la propiedad Items del control Galería usa esta variable de contexto junto con el texto del
control TextSearchBox1:

Sort(
If( IsBlank(TextSearchBox1.Text);
Assets;
Filter( Assets; TextSearchBox1.Text in Text(ApproverEmail) )
);
ApproverEmail;
If(SortDescending1; Descending; Ascending)
)

Desglosemos esto:
Por fuera, tenemos la función Sort , que toma tres argumentos: una tabla, un campo según el cual
ordenar y la dirección de ordenación.
La dirección de ordenación se toma de la variable de contexto que alterna cuando el usuario
selecciona el control ImageSortUpDown1. El valor true/false se traduce a las constantes
Descending y Ascending.
El campo de ordenación se fija en ApproverEmail. Si cambia los campos que aparecen en la
galería, también deberá cambiar este argumento.
Por dentro, tenemos la función Filter , que toma una tabla como argumento y una expresión para
evaluar para cada registro.
La tabla es el origen de datos Assets sin procesar, que es el punto de partida antes de filtrar u
ordenar.
La expresión busca una instancia de la cadena en TextSearchBox1 dentro del campo
ApproverEmail. Le recordamos que si cambia los campos que aparecen en la galería, también
deberá actualizar este argumento.
Si el valor TextSearchBox1 está vacío, el usuario desea mostrar todos los registros y se omite la
función Filter .
Este es solo un ejemplo, porque puede crear su propia fórmula para la propiedad Items , en función de las
necesidades de la aplicación, si junta las funciones Filter , Sort y otras.

Diseño de pantalla
Hasta ahora, no hemos analizado otras formas para distribuir los controles entre las pantallas. Esto se debe
a que tiene muchas opciones y la mejor selección depende de las necesidades específicas de la aplicación.
Como el espacio real en las pantallas de los teléfonos es tan limitado, es probable que desee buscar, mostrar
y editar o crear formularios en distintas pantallas. En este tema, las funciones Navigate y Back abren cada
pantalla.
En una tableta, puede buscar, mostrar y editar o crear formularios en dos pantallas, o incluso en una. En el
último caso, no se requerirá la función Navigate ni la función Back .
Si el usuario trabaja en la misma pantalla, se debe tener cuidado de que el usuario no pueda cambiar la
selección de la Galería porque podría perder las modificaciones hechas en el control Editar formulario .
Para evitar que el usuario seleccione un registro distinto cuando todavía no se guardan los cambios en otro
registro, establezca la propiedad Disabled de la galería en esta fórmula:
EditForm.Unsaved
Comprender el diseño de formularios de datos para
aplicaciones de lienzo en PowerApps
07/10/2019 • 29 minutes to read

Cree fácilmente un formulario atractivo y eficaz al compilar una aplicación de lienzo en PowerApps. Por ejemplo,
considere este formulario básico para grabar pedidos de ventas:

En este tutorial, se le guiará por los pasos necesarios para crear un formulario. También se examinarán algunos
temas avanzados como el cambio de tamaño dinámico de campos para llenar el espacio disponible.

Antes de comenzar
Si es la primera vez que usa PowerApps (o solo ha generado aplicaciones automáticamente), lo más
recomendable es compilar una aplicación desde cero antes de profundizar en este tema. Mediante la compilación
de una aplicación desde cero, se familiarizará con los conceptos necesarios, como agregar orígenes de datos y
controles, que se mencionan, pero no se explican, en este tema.
Este tema se escribe como si tuviera un origen de datos denominado sales Order y que contenga los campos del
gráfico anterior. Si tiene una licencia del plan 2 de PowerApps o una licencia de prueba y un administrador del
sistema o permisos del Personalizador del sistema, puede crear una entidad en Common Data Service y agregar
campos similares.

Agregar una galería


1. Cree una aplicación de Tablet PC desde cero y agregue el origen de datos.
Todo lo que se describe en este tema aquí también se aplica a los diseños para teléfono, pero las
aplicaciones de teléfono suelen tener solo una columna vertical.
2. Agregue un control Galería vertical y en su propiedad Elementos, seleccione "Sales order" .
(opcional) Para ajustarse a los ejemplos de este tutorial, cambie el diseño de la galería para que muestre
solo el título y subtítulo.

3. En la galería, pulse o haga clic en SO004.

Este registro aparecerá en el formulario que se crea siguiendo los pasos que encontrará más adelante en
este mismo tema.

Incorporación de una barra de título


1. Agregue una pantalla en blanco, en la que colocará el formulario.
Fuera de este tutorial, los controles Galería y Editar formulario se pueden colocar en la misma pantalla,
pero habrá más espacio para trabajar con si se colocan en pantallas independientes.
2. En la parte superior de la pantalla, agregue un control Etiqueta y en su propiedad Texto escriba esta
expresión:
"Sales Order " & Gallery1.Selected.SalesOrderId
La etiqueta muestra el número del pedido de ventas del registro que seleccionó en la galería.
3. (opcional) Dé formato a la etiqueta como se indica a continuación:
a. Establezca su propiedad Align en Center.
b. Establezca su propiedad Size en 20.
c. Establezca su propiedad Fill en Navy.
d. Establezca su propiedad Color en White.
e. Establezca su propiedad Width en Parent.Width.
f. Establecer sus propiedades X e Y en 0.

Agregar un formulario
1. Agregue un control Editar formulario y muévalo y cámbielo de tamaño para rellenar la pantalla bajo la
etiqueta.
En el paso siguiente, conectará el control de formulario al origen de datos Sales order mediante el panel
derecho, no la barra de fórmulas. Si usa la barra de fórmulas, el formulario no mostrará cambios de
manera predeterminada. Siempre puede mostrar todos los campos que desee activando una o varias
casillas en el panel derecho.
2. En el panel derecho, pulse o haga clic en la flecha abajo junto a No se ha seleccionado un origen de
datos y después en Sales order.
Un conjunto de campos predeterminado del origen de datos Sales order aparecerá en un diseño sencillo
de tres columnas. Sin embargo, muchos están en blanco y es posible que tarden un tiempo en quedarse
en sus posiciones finales.
3. En la propiedad Item del formulario, seleccione Gallery1.Selected.
El formulario muestra el registro que seleccionó en la galería, pero es posible que el conjunto de campos
predeterminado no coincida con el que desea en el producto final.
4. En el panel derecho, oculte todos estos campos, para lo que debe desactivando su casilla:
Sales order ID
Account
Sales person
Account contact
5. Mueva el campo Order status, para lo que debe arrastrarlo a la izquierda y soltarlo en el otro lado del
campo Customer purchase order reference.
La pantalla debe ser similar al ejemplo:

Seleccione una tarjeta de datos


Cada campo mostrado cuenta con una tarjeta de datos correspondiente en el formulario. Esta tarjeta consta de
un conjunto de controles para el título de campo, un cuadro de entrada, una estrella (que aparece si el campo es
obligatorio) y un mensaje de error de validación.
También puede seleccionar tarjetas directamente en el formulario. Cuando se selecciona una tarjeta, aparece un
subtítulo negro sobre ella.

NOTE
Para eliminar una tarjeta (no solo ocultarla), selecciónela y presione Supr.

Organización de tarjetas en columnas


De forma predeterminada, los formularios de las aplicaciones para tableta tienen tres columnas, mientras que las
aplicaciones para teléfono tienen una. Puede especificar no solo el número de columnas un formulario, sino
también si todas las tarjetas deben ajustarse a los bordes de la columna.
En este gráfico, se ha cambiado el número de columnas del formulario de tres a cuatro con la casilla Ajustar en
columnas activada. Las tarjetas del formulario se han organizado automáticamente para ajustarse al nuevo
diseño.

Cambio del tamaño de las tarjetas en varias columnas


En función de los datos que haya en cada tarjeta, es posible que desee que algunas tarjetas quepan en una sola
columna, mientras que otras que abarcan varias columnas. Si una tarjeta contiene más datos de los que desea
mostrar en una sola columna, puede ensancharla, para lo que debe seleccionarla y, después, arrastrar el
controlador de agarre de los bordes izquierdo o derecho de su cuadro de selección. Al arrastrar el controlador, la
tarjeta se "ajustará" a los límites de la columna.
Para aumentar la flexibilidad del diseño, pero conservar cierta estructura, puede aumentar el número de
columnas a 12. Con ese cambio, puede configurar fácilmente cada tarjeta para que abarque todo el formulario, la
mitad del formulario, un tercio, un cuarto, un sexto, etc. Vamos a ver esto en acción.
1. En el panel derecho, defina el número de columnas del formulario, 12.

El formulario no cambia visiblemente, pero tendrá más puntos de acoplamiento al arrastrar el controlador
de agarre derecho o izquierdo.
2. Para aumentar el ancho de la tarjeta Order date, arrastre hacia la derecha el controlador de agarre del
punto de acoplamiento derecho.
La tarjeta abarca cuatro de 12 columnas del formulario (o 1/3 del formulario), en lugar de solo tres de las
12 columnas del formulario (o 1/4 del formulario). Cada vez que aumenta el ancho de la tarjeta en un
punto de acoplamiento, la tarjeta abarca un 1/12 adicional del formulario.

3. Repita el paso anterior con las tarjetas Order status y Customer purchase order reference.

4. Cambie el tamaño de las tarjetas Name y Description para que ocupen seis columnas (o 1/2) del
formulario.
5. Estire las dos primeras líneas de la dirección de envío para que ocupen todo el formulario:
¡ Listo! El formulario deseado, en el que se mezclan filas con distintos números de columnas, está listo:
Manipulación de los controles de una tarjeta
La dirección de entrega consta de varios datos que se desean mostrar de forma visualmente agrupada al usuario.
Cada campo permanecerá en su propia tarjeta de datos, pero se pueden manipular los controles de la tarjeta para
que se ajusten mejor juntos.
1. Seleccione la tarjeta First line of Delivery address, seleccione la etiqueta de dicha tarjeta y elimine las
tres primeras palabras del texto.

2. Seleccione la tarjeta Second line of Delivery address, seleccione la etiqueta de dicha tarjeta y elimine
todo el texto.
Puede ser tentador quitar simplemente el control de etiqueta, y en muchos casos será suficiente. Sin
puede que haya fórmulas que dependan de que dicho control esté presente. El enfoque más seguro es
quitar el texto o establecer la propiedad Visible del control en false.
3. En la misma tarjeta, mueva el cuadro de entrada de texto sobre la etiqueta para reducir el espacio entre la
primera y la segunda línea de la dirección.
El alto de la tarjeta se reduce cuando su contenido ocupa menos espacio.

Ahora se va a prestar atención a la tercera línea de dirección. De forma similar al paso anterior, se va a reducir el
texto de cada etiqueta para estas tarjetas y a mover el cuadro de entrada de texto a la derecha de cada etiqueta.
Estos son los pasos para la tarjeta State:

PASO DESCRIPCIÓN RESULTADO

1 Seleccione la tarjeta State para que


aparezcan controladores de agarre
alrededor.

2 Seleccione la etiqueta de la tarjeta para


que aparezcan controladores de agarre
alrededor.

3 Coloque el cursor a la derecha del texto


y elimine la parte que no sea necesaria.

4 Use los controladores de agarre de los


lados y cambie el tamaño del control
de etiqueta para ajustarlo al nuevo
tamaño del texto.

5 Seleccione el control de entrada de


texto dentro de esta tarjeta.
PASO DESCRIPCIÓN RESULTADO

6 Con los controladores de agarre de los


lados, cambie el tamaño del control de
entrada de texto al que desee.

7 Arrastre el cuadro de entrada de texto


hacia arriba y a la derecha del control
de etiqueta y suelte el cuadro de
entrada de texto.

Las modificaciones en la tarjeta State


están completadas.

El resultado de la tercera línea de dirección:

Tenga en cuenta que muchas de las tarjetas empiezan con fórmulas dinámicas para las propiedades. Por ejemplo,
el control Entrada de texto cuyo tamaño hemos cambiado y encima del que nos hemos movido tenía una
propiedad Ancho basada en el ancho de su control principal. Cuando se mueve o se cambia el tamaño de un
control, estas fórmulas dinámicas se reemplazan por valores estáticos. Si lo desea, puede restaurar las fórmulas
dinámicas mediante la barra de fórmulas.

Desactivar Ajustar en columnas


A veces es conveniente proporcionar un control más preciso que el pueden hacerlo las 12 columnas estándar.
Para estos casos, puede desactivar Ajustar en columnas y colocar las tarjetas manualmente. El formulario
seguirá ajustándose a 12 columnas, pero también es posible mantener presionada la tecla Alt para colocar una
tarjeta y cambiarla de tamaño manualmente como desee.
En este ejemplo, los cuatro componentes que constituyen la tercera línea de la dirección tienen exactamente la
misma anchura. Pero es posible que éste no sea el diseño óptimo, ya que los nombres de ciudad son más largos
que los nombres de estado y el cuadro de entrada de texto para países o regiones es corto debido a la longitud
de la etiqueta.
Para optimizar este espacio, desactive Ajustar en columnas en el panel derecho y, después, mantenga
presionada la tecla Alt mientras ajusta el tamaño y coloca estas tarjetas. Cada vez que mantenga presionada la
tecla Alt, todos los controles mostrarán subtítulos negros. Este comportamiento es por diseño para mostrar los
nombres de los controles.
Después de colocarlas con cuidado, se logran tamaños adecuados para cada campo y un espaciado horizontal
uniforme entre los campos:

En resumen, ¿cuáles son las diferencias cuando la opción Ajustar en columnas está activada y desactivada?

COMPORTAMIENTO AJUSTAR EN COLUMNAS ACTIVADA AJUSTAR EN COLUMNAS DESACTIVADA

El cambio de tamaño se ajusta a Número de columnas que selecciona: 12 columnas


1, 2, 3, 4, 6 o 12

Se puede invalidar el ajuste de cambio No Sí, con la tecla Alt


de tamaño

Se cambia el diseño de las tarjetas Sí No


automáticamente entre filas (se explica
más adelante)

Establecer ancho y alto


Como con todo en PowerApps, el diseño del formulario se rige por las propiedades de los controles de tarjeta.
Como ya se ha descrito, para cambiar los valores de estas propiedades tiene que arrastrar controles a
ubicaciones diferentes o arrastrar los controladores de agarre para cambiar el tamaño de los controles. Pero
encontrará situaciones en las que deseará conocer y manipular estas propiedades con mayor precisión,
especialmente al usar fórmulas para que los formularios sean dinámicos.
Diseño básico: X, y y ancho
Las propiedades X e Y controlan la posición de las tarjetas. Cuando se trabaja con controles en el lienzo en
blanco, estas propiedades proporcionan una posición absoluta. En un formulario, estas propiedades tienen un
significado diferente:
X: Orden en una fila.
Y: Número de fila.
De forma similar a los controles en el lienzo, la propiedad Ancho especifica la anchura mínima de la tarjeta (más
información sobre el aspecto mínimo en un momento).
Aquí se ven las propiedades X, Y y Ancho de las tarjetas en el formulario:
Filas desbordantes
¿Qué ocurre si las tarjetas de una fila son demasiado anchas para caber en ella? Por lo general, no es necesario
que se preocupe por esta posibilidad. Con la opción Ajustar en columnas activada, estas tres propiedades se
ajustarán automáticamente para que todo quepa en las filas sin desbordarse.
Sin embargo, con la opción Ajustar en columnas desactivada o con una propiedadAncho basada en fórmula
en una o varias de las tarjetas, puede que se desborde una fila. En este caso, las tarjetas se ajustarán
automáticamente para que se cree otra fila. Por ejemplo, se cambia manualmente la propiedad Ancho de la
tarjeta Referencia de pedido de compra de cliente (primera fila, tercer elemento) a 500:

Las tres tarjetas de la fila superior ya no caben horizontalmente y que se ha creado una fila para ajustar lo que
desborda. La coordenada Y de todas estas tarjetas sigue siendo la misma, 0, mientras que las tarjetas Nombre y
Descripción siguen teniendo 1 como valor de Y. Las tarjetas que tienen diferentes valores de Y no se combinan
en filas.
Este comportamiento se puede usar para crear un diseño totalmente dinámico en el que las tarjetas se colocan
en función de un orden Z, rellenando el mayor espacio posible antes de pasar a la siguiente fila. Para lograr este
efecto, asigne a todas las tarjetas el mismo valor de Y y use X para el orden de las tarjetas.
Rellenar espacios: Widthfit ajustedeancho )
El desbordamiento del último ejemplo creaba un espacio después de Estado de pedido, que era la segunda
tarjeta de la primera fila. Se podrían ajustar manualmente los valores de la propiedad Ancho de las dos tarjetas
restantes para llenar este espacio, pero este método es tedioso.
Como alternativa, use la propiedad WidthFit (AjusteDeAncho). Si esta propiedad establecida en True en una o
varias tarjetas de una fila, el espacio restante de la fila se dividirá uniformemente entre ellas. A este
comportamiento es a lo que se debe que antes se indicara que la propiedad Ancho de una tarjeta es un mínimo
y que lo que se ve en realidad puede ser más ancho. Esta propiedad nunca hará que una tarjeta encoja, solo que
se expanda.
Si en WidthFit (AjusteDeAncho) se selecciona true en la tarjeta Order status, rellena el espacio disponible,
mientras que la primera tarjeta permanece sin cambios:

Si WidthFit (AjusteDeAncho) también se establece en true en la tarjeta Fecha de pedido, ambas tarjetas se
dividirán uniformemente el espacio disponible:

Observe que los controles de agarre en estas tarjetas tienen en cuenta el ancho adicional proporcionado por
WidthFit (AjusteDeAncho), no el ancho mínimo proporcionado por la propiedad Ancho. Puede resultar confuso
manipular la propiedad Ancho con la propiedad WidthFit (AjusteDeAncho) activada; puede desactivarla,
realizar cambios en Ancho y volver a activarla.
¿Cuando podría ser útil WidthFit (AjusteDeAncho)? Si tiene un campo que se usa solo en determinadas
situaciones, puede establecer su propiedad Visible en false y las restantes tarjetas de la fila rellenarán
automáticamente el espacio alrededor de ella. Puede usar una fórmula que muestre un campo solo cuando otro
campo tenga un valor determinado.
En este caso, se establecerá la propiedad Visible del campo Estado de pedido en un valor false estático:
Con la segunda tarjeta eliminada en la práctica, la tercera tarjeta ahora puede volver a la misma fila que la
primera. La primera tarjeta aún tiene la propiedad WidthFit (AjusteDeAncho) establecida en true, por lo que es
la única que se expande para rellenar el espacio disponible.
Dado que Order status no se ve, no se puede seleccionar fácilmente en el lienzo. Sin embargo, puede seleccionar
cualquier control, visible o no, de la lista jerárquica de controles en el lado izquierdo de la pantalla.
Alto
La propiedad Alto rige la altura de cada tarjeta. Las tarjetas tienen el equivalente de WidthFit (AjusteDeAncho)
para Alto, y siempre se establece en true. Imagine que un existe una propiedad HeightFit (AjusteDeAlto), pero
no lo busca en el producto porque dicha propiedad aún no está expuesta.
No se puede desactivar este comportamiento, por lo que cambiar la altura de las tarjetas puede ser complicado.
Todas las tarjetas de una fila parecen tener la misma altura que la tarjeta más alta. La fila podría ser similar a la
siguiente:

¿Qué tarjeta determina la altura de la fila? En el gráfico anterior, la tarjeta Importe total está seleccionada y
parece alta, pero su propiedad Alto está establecida en 80 (la misma altura que la primera fila). Para reducir el
alto de una fila, debe reducir la propiedad Alto de la tarjeta más alta de dicha fila, pero dicha tarjeta no se puede
identificar sin examinar la propiedad Alto de cada tarjeta.
AutoHeight (AlturaAutomática)
U na tarjeta también puede ser más alta de lo esperable si contiene un control cuya propiedad AutoHeight
(AlturaAutomática) está establecida en true. Por ejemplo, muchas tarjetas contienen una etiqueta que muestra un
mensaje de error si el valor del campo provoca un problema de validación.
Si no hay texto para mostrar (no hay error), la etiqueta se contrae a una altura de valor cero. Si no lo supiera, no
se daría cuenta de que está ahí, que es como debería ser:
A la izquierda de la pantalla, la lista de controles muestra ErrorMessage1 (MensajeDeError1), que es el control
de etiqueta. Al actualizar una aplicación, puede seleccionar este control para darle cierta altura y mostrar
controladores de agarre con los que se puede colocar y ajustar su tamaño. Una "A" en un cuadro azul indica que
el control tiene la propiedad AutoHeight (AlturaAutomática) establecido en true:

La propiedad Texto de este control está establecida en Parent.Error, que se usa para obtener información de
error dinámica basada en reglas de validación. Con fines meramente ilustrativos, vamos a establecer de manera
estática la propiedad Texto de este control, lo que aumentará su altura (y, por extensión, la de la tarjeta) para
acomodarse a la longitud del texto:
Si el mensaje de error es un poco más largo, de nuevo el control y la tarjeta crecen para darle cabida. Tenga en
cuenta que la fila en general crece a lo alto, conservando la alineación vertical entre las tarjetas:
Comprender las tarjetas de datos en PowerApps
07/10/2019 • 17 minutes to read

Los controles Tarjeta son los componentes fundamentales de los controles Editar formulario y Mostrar
formulario en aplicaciones de lienzo. El formulario representa todo el registro y cada tarjeta representa un único
campo de ese registro.
Puede interactuar con las tarjetas más fácilmente en el panel derecho después de seleccionar un control de
formulario en el área de trabajo de diseño. En este panel, puede elegir los campos que desea mostrar, cómo
mostrarlos y en qué orden. En este ejemplo se muestra un control Formulario de edición en una aplicación que
se crea a partir de una lista de SharePoint denominada Assets.

Para empezar a trabajar con las tarjetas, consulte cómo agregar un formulario y cómo entender los formularios
de datos. En el resto de este tema se explica con más detalle cómo funcionan las tarjetas y cómo puede
personalizar o incluso crear las suyas propias.

Tarjetas predefinidas
PowerApps ofrece un conjunto predefinido de tarjetas para cadenas, números y otros tipos de datos. En el panel
derecho, puede ver las variaciones disponibles y cambiar la tarjeta usada para un campo:
En este ejemplo, se ha seleccionado una tarjeta con una sola línea de texto, pero el texto de la dirección URL
ocupa más de lo que se puede mostrar en una única línea. Vamos a cambiarla a una tarjeta con múltiples líneas de
texto para ofrecer a nuestros usuarios más espacio para editar:

Algunos de los campos de este origen de datos no se muestran, pero puede mostrar u ocultar un campo
seleccionando su casilla. En este ejemplo se explica cómo mostrar el campo SecurityCode.

Personalizar una tarjeta


Las tarjetas constan de otros controles. En un control Formulario de edición, el usuario escribe datos en un
control Entrada de texto estándar que se agrega desde la pestaña Insertar.
Analicemos un ejemplo de cambio de la apariencia de la tarjeta mediante la manipulación de los controles que
aparecen en ella.
1. En primer lugar, vamos a volver a la tarjeta que insertamos más recientemente para el campo
SecurityCode. Seleccione esta tarjeta pulsándola una vez o haciendo clic en ella:

2. Seleccione el control Text Input situado dentro de la tarjeta pulsando o haciendo clic en el propio control
de entrada.

3. Mueva este control dentro de la tarjeta arrastrando el cuadro de selección y cambie su tamaño arrastrando
los controladores a lo largo del borde del cuadro de selección:

Puede cambiar el tamaño de los controles de una tarjeta, moverlos y realizar otras modificaciones, pero no puede
eliminarla sin desbloquearla primero.

Desbloquear una tarjeta


Además de contener controles, las tarjetas constituyen en sí mismas controles que tienen propiedades y fórmulas,
al igual que cualquier otro control. Cuando decide mostrar un campo en un formulario, el panel derecho crea
automáticamente la tarjeta y genera las fórmulas necesarias. Podemos ver estas fórmulas en la pestaña Avanzado
del panel derecho:
Inmediatamente vemos una de las propiedades más importantes de la tarjeta: DataField . Esta propiedad indica
qué campo del origen de datos puede ver y editar el usuario en esta tarjeta.
En la pestaña Avanzado, el banner que aparece en la parte superior indica que las propiedades de esta tarjeta
están bloqueadas. También aparece un icono de bloqueo junto a las propiedades DataField , DisplayName y
Required . El panel derecho fue el que creó estas fórmulas y el bloqueo impide que se realicen cambios
accidentales en estas propiedades.

Pulse o haga clic en la pancarta que aparece en la parte superior para desbloquear la tarjeta y poder modificar
estas propiedades:
Vamos a modificar DisplayName para agregar un espacio entre Asset e ID. Al realizar este cambio, estamos
alterando lo que se ha generado automáticamente. En el panel derecho, esta tarjeta tiene una etiqueta distinta:

Ahora hemos tomado el control de esta tarjeta y podemos modificarla para que se ajuste a nuestras necesidades.
Pero hemos perdido la capacidad que teníamos antes de cambiar la tarjeta de una representación a otra (por
ejemplo, de texto de una sola línea a texto de múltiples líneas). Hemos transformado la tarjeta predefinida en una
"tarjeta personalizada" sobre la que tenemos control.

IMPORTANT
Si ha desbloqueado una tarjeta, no podrá volver a bloquearla. Para volver al estado de bloqueo, quite la tarjeta y vuelva a
insertarla en el panel derecho.

Puede cambiar la apariencia y el comportamiento de una tarjeta desbloqueada de varias formas como, por
ejemplo, con la adición y eliminación de los controles dentro de ella. Por ejemplo, puede agregar una forma de
estrella desde el menú Iconos de la pestaña Insertar.

Ahora, la estrella forma parte de la tarjeta y se moverá con ella si, por ejemplo, reordena las tarjetas en el
formulario.
Como otro ejemplo, desbloquee la tarjeta ImageURL y, a continuación, agregue un control Image en ella
mediante la pestaña Insertar:

En la barra de fórmulas, establezca la propiedad Image de este control en TextBox.Text, en la que TextBox es el
nombre del control Entrada de texto que contiene la URL:
Ahora ya podemos ver las imágenes y editar sus direcciones URL. Observe que podríamos haber usado
Parent.Default como la propiedad Image, pero no se habría actualizado si el usuario hubiera cambiado la
dirección URL.
Podemos hacer lo mismo en la segunda pantalla de esta aplicación, en la que usamos un control Formulario de
presentación para mostrar los detalles de un registro. En este caso, es posible que queramos ocultar la etiqueta
(establezca la propiedad Visible de la etiqueta, no la tarjeta, en false) porque el usuario no editará la dirección
URL en esa pantalla:
Interactuar con un formulario
Después de desbloquear una tarjeta, puede cambiar la forma en que interactúa con el formulario que la contiene.
Más adelante se muestran algunas directrices sobre cómo deben funcionar los controles con su tarjeta y cómo
deben funcionar las tarjetas con el formulario. Se trata únicamente de directrices. Como ocurre con todos los
controles de PowerApps, puede crear fórmulas que hagan referencia a cualquier otro control de PowerApps, y lo
mismo ocurre para las tarjetas y los controles dentro de estas. Sea creativo: puede crear una aplicación de muchas
maneras.
Propiedad DataField
La propiedad más importante de la tarjeta es DataField . Esta propiedad controla la validación, qué campo se
actualiza y otros aspectos de la tarjeta.
Información que entra
Como contenedor, el formulario pone ThisItem a disposición de todas las tarjetas que incluye. Este registro
contiene todos los campos del registro actual de interés.
La propiedad Default de todas las tarjetas debe establecerse como ThisItem.FieldName. En determinadas
circunstancias, es posible que le interese transformar este valor cuando lo especifique. Por ejemplo, es posible que
desee dar formato a una cadena o traducir el valor de un idioma a otro.
Todos los controles de la tarjeta deben hacer referencia a Parent.Default para tener acceso al valor del campo.
Esta estrategia proporciona un nivel de encapsulación para la tarjeta, de forma que la propiedad Default de esta
pueda cambiar sin que lo hagan sus fórmulas internas.
De forma predeterminada, las propiedades DefaultValue y Required se toman de los metadatos del origen de
datos basándose en la propiedad DataField . Puede reemplazar estas fórmulas con su propia lógica, integrando
los metadatos del origen de datos mediante el uso de la función DataSourceInfo .
Información que sale
Después de que el usuario modifique un registro usando los controles de las tarjetas, la función SubmitForm
guarda esos cambios en el origen de datos. Cuando se ejecuta esa función, el control de formulario lee los valores
de la propiedad DataField de cada tarjeta para saber qué campo debe cambiar.
El control de formulario también lee el valor de la propiedad Update de cada tarjeta. Este valor se almacenará en
el origen de datos para este campo. Este es el lugar para aplicar otra transformación, quizás para revertir la
transformación que se ha aplicado en la fórmula Default de la tarjeta.
La propiedad Valid se toma de los metadatos del origen de datos, basándose en la propiedad DataField .
También depende de la propiedad Required y de si la propiedad Update contiene un valor. Si el valor de la
propiedad Update no es válido, la propiedad Error proporciona un mensaje de error descriptivo.
Si la propiedad DataField de una tarjeta está en blanco, la tarjeta sencillamente es un contenedor de controles.
Sus propiedades Valid y Update no participan cuando se envía el formulario.

Examinar un ejemplo
Echemos un vistazo a los controles que componen una tarjeta de entrada de datos básica. Se ha aumentado el
espacio entre controles para mostrar cada uno de ellos de forma más clara:
En este gráfico, los controles de la tarjeta de datos tienen la etiqueta:

Cuatro controles hacen que esta tarjeta funcione:

NOMBRE TIPO DESCRIPCIÓN

TextRequiredStar Control Etiqueta Muestra una estrella, que se utiliza


habitualmente en los formularios de
entrada de datos para indicar que un
campo es obligatorio.

TextFieldDisplayName Control Etiqueta Muestra el nombre descriptivo de este


campo. Este nombre puede diferir de lo
que aparece en el esquema del origen
de datos.

InputText Control Input text Muestra el valor inicial del campo y


permite al usuario cambiar dicho valor.

TextErrorMessage Control Etiqueta Muestra un mensaje de error


descriptivo al usuario si se produce un
problema con la validación. También
garantiza que el campo tiene un valor si
es necesario.

Para rellenar estos controles con datos, se pueden tomar sus propiedades de las propiedades de la tarjeta a través
de estas fórmulas claves. Tenga en cuenta que ninguna de estas fórmulas hace referencia a un campo específico.
En su lugar, toda la información procede de la tarjeta.

PROPIEDAD DE CONTROL FÓRMULA DESCRIPCIÓN

TextRequiredStar.Visible Parent.Required La estrella solo aparece si el campo es


obligatorio. "Required" es una fórmula
controlada por usted o los metadatos
del origen de datos.
PROPIEDAD DE CONTROL FÓRMULA DESCRIPCIÓN

TextFieldDisplayName.Text Parent.DisplayName El control de cuadro de texto muestra


el nombre descriptivo, proporcionado
por usted o los metadatos del origen
de datos, y que se establece en la
propiedad DisplayName de la tarjeta.

InputText.Default Parent.Default Inicialmente, el control de entrada de


texto muestra el valor del campo del
origen de datos, según lo
proporcionado por el valor
predeterminado de la tarjeta.

TextErrorMessage.Text Parent.Error Si se produce un problema de


validación, la propiedad Error de la
tarjeta proporciona el correspondiente
mensaje de error.

NOTE
La propiedad Parent. error es una propiedad de solo salida que no se puede establecer mediante una fórmula. Por lo
tanto, esta propiedad no aparecerá en la lista de propiedades cerca de la esquina superior izquierda o en las pestañas
propiedades o avanzadas cerca del borde derecho. La barra de fórmulas sugiere esta propiedad si está escribiendo una
fórmula que podría hacer referencia a la propiedad.

Para extraer información de estos controles y volver a insertarla en el origen de datos, tenemos las siguientes
fórmulas clave:

NOMBRE DEL CONTROL FÓRMULA DESCRIPCIÓN

DataCard.DataField "ApproverEmail" El nombre del campo que el usuario


puede mostrar y editar en esta tarjeta.

DataCard.Update InputText.Text El valor que se valida y se vuelve a


insertar en el origen de datos cuando
se ejecuta SubmitForm .
Adición de un cuadro de lista, una lista desplegable o
botones de selección a una aplicación de lienzo
29/10/2019 • 4 minutes to read

Muestre una sola columna de datos (por ejemplo, de una tabla de varias columnas) en una aplicación de lienzo
para que los usuarios puedan seleccionar uno o varios elementos de una lista.
Agregue un cuadro de lista para permitir a los usuarios seleccionar más de una opción.
Agregue una lista desplegable para que ocupe menos espacio en una pantalla.
Agregue un conjunto de botones de selección para obtener un efecto de diseño concreto.
Este tema se centra en los cuadros de listas y botones de selección, pero los mismos principios se aplican a las
listas desplegables.

Requisitos previos
1. Suscríbase a PowerApps.
2. Inicie sesión en con las mismas credenciales que usó para registrarse.
3. En Crear su propia aplicación, pase el puntero por la ventana Aplicación de lienzo desde cero, seleccione
el icono de teléfono y, a continuación, seleccione Crear esta aplicación.
4. Aprenda a agregar y configurar controles.

Creación de una lista sencilla


1. Agregue un control Cuadro de lista, denomínelo MyListBox y establezca su propiedad Elementos en
esta expresión:
["circle";"triangle";"rectangle"]

El diseñador tendrá un aspecto similar al siguiente:

2. En la pestaña Insertar, seleccione Iconos, seleccione el círculo y sitúelo bajo MyListBox:

3. Agregue un triángulo y un rectángulo y, después, disponga las formas en una fila bajo MyListBox:
4. Defina la propiedad Visible de las formas siguientes con las funciones indicadas a continuación:

FORMA ESTABLECER FUNCIÓN DE VISIBLE EN

círculo If("circle" in MyListBox.SelectedItems.Value;


true)

triángulo If("triangle" in MyListBox.SelectedItems.Value;


true)

rectángulo If("rectangle" in MyListBox.SelectedItems.Value;


true)

5. Mientras mantiene presionada la tecla Alt, seleccione una o varias formas en MyListBox.
Solo se mostrarán aquellas formas que seleccione.
En estos pasos, ha utilizado una expresión para crear una lista de elementos. Esto es aplicable a otros elementos de
su negocio. Por ejemplo, puede usar un control desplegable para mostrar imágenes de productos, descripciones
de productos, etc.

Adición de botones de selección


1. En la pestaña Inicio, seleccione Nueva pantalla y luego En blanco.
2. En la pestaña Insertar, seleccione Controles y, a continuación, seleccione Botón de selección.

3. Cambie el nombre del control Botón de selección por Choices y establezca la siguiente fórmula para la
propiedad Elementos :
["red";"green";"blue"]
Si es necesario, cambie el tamaño del control para mostrar todas las opciones.
4. En la pestaña Insertar, seleccione Iconos y, a continuación, seleccione el círculo.
5. Defina la siguiente función para la propiedad Fill del círculo:
If(Choices.Selected.Value = "red"; Red; Choices.Selected.Value = "green"; Green; Choices.Selected.Value
= "blue"; Blue)

En esta fórmula, el círculo cambia de color dependiendo de qué botón de selección elija.
6. Sitúe el círculo bajo el control Botón de selección, como en este ejemplo:

7. Mientras mantiene presionada la tecla Alt, seleccione otro botón de selección para cambiar el color del
círculo.
Crear listas desplegables dependientes en una
aplicación de lienzo
05/11/2019 • 13 minutes to read

Al crear listas desplegables dependientes (o en cascada), los usuarios seleccionan una opción en una lista para
filtrar las opciones de otra lista. Muchas organizaciones crean listas dependientes para ayudar a los usuarios a
rellenar formularios de forma más eficaz. Por ejemplo, los usuarios pueden seleccionar un país o región para filtrar
una lista de ciudades, o bien los usuarios pueden seleccionar una categoría para mostrar solo los códigos de esa
categoría.
Como procedimiento recomendado, cree un origen de datos para los valores de las listas "primario" y "secundario"
(por ejemplo, países o regiones y ciudades) que sea independiente del origen de datos que los usuarios actualizan
mediante la aplicación. Si adopta este enfoque, puede usar los mismos datos primarios y secundarios en más de
una aplicación, y puede actualizar los datos sin volver a publicar la aplicación o aplicaciones que los usan. Puede
lograr el mismo resultado mediante una colección o datos estáticos, pero no se recomienda para escenarios
empresariales.
En el escenario de este tema, los empleados de la tienda envían problemas a una lista de incidentes a través de un
formulario. Los empleados no solo especifican la ubicación del almacén en el que se produjo el incidente, sino
también el departamento dentro de esa ubicación. No todas las ubicaciones tienen los mismos departamentos, por
lo que una lista de ubicaciones garantiza que los empleados no puedan especificar un departamento para una
ubicación que no tenga ese departamento.
En este tema se usan listas de Microsoft SharePoint como orígenes de datos, pero todos los orígenes de datos
tabulares funcionan de la misma manera.

Crear orígenes de datos


Una lista de ubicaciones muestra los departamentos de cada ubicación.

LOCATION DEPARTAMENTO

Eganville Pastelería

Eganville Nodos

Eganville Crea

Renfrew Pastelería

Renfrew Nodos

Renfrew Crea

Renfrew Farmacia

Renfrew Flor

Pembroke Pastelería
LOCATION DEPARTAMENTO

Pembroke Nodos

Pembroke Crea

Pembroke Flor

Una lista de incidentes muestra información de contacto e información sobre cada incidente. Cree la columna de
fecha como una columna de fecha , pero cree las demás columnas como una sola línea de columnas de texto
para simplificar la configuración y evitar las advertencias de delegación en Microsoft PowerApps.

NÚMERO DE DEPARTAMENT
NOMBRE APELLIDOS TELÉFONO LOCATION O DESCRIPCIÓN DATE

Tonya Cortez (206) 555- Eganville Crea Tengo un 2/12/2019


1022 problema
con...

, Moses, Laflamme (425) 555- Renfrew Flor Se produjo un 2/13/2019


1044 problema...

De forma predeterminada, las listas personalizadas de SharePoint incluyen una columna de título que no puede
cambiar de nombre o quitar, y que debe contener datos para poder guardar un elemento en la lista. Para configurar
la columna de modo que no requiera datos:
1. Cerca de la esquina superior derecha, seleccione el icono de engranaje y, a continuación, seleccione
Configuración de la lista.
2. En la página configuración , seleccione título en la lista de columnas.
3. En requerir que esta columna contenga información, seleccione no.
Después de ese cambio, puede omitir la columna title o quitarla de la vista predeterminada si aparece al menos
otra columna.

Abrir el formulario
1. Abra la lista incidentes y, a continuación, seleccione PowerApps > personalizar formularios.

Se abre una pestaña del explorador con el formulario predeterminado en PowerApps Studio.
2. opta En el panel campos , mantenga el mouse sobre el campo título , seleccione los puntos suspensivos (...)
que aparecen y, a continuación, seleccione quitar.
Si ha cerrado el panel campos , puede volver a abrirlo seleccionando SharePointForm1 en la barra de
navegación izquierda y, a continuación, seleccionando Editar campos en la pestaña propiedades del panel
derecho.
3. opta Repita el paso anterior para quitar el campo de datos adjuntos del formulario.
El formulario aparece solo con los campos que ha agregado.

Reemplazar los controles


1. En el panel campos , seleccione la flecha situada junto a Ubicación.
Si ha cerrado el panel campos , puede volver a abrirlo seleccionando SharePointForm1 en la barra de
navegación izquierda y, a continuación, seleccionando Editar campos en la pestaña propiedades del panel
derecho.
2. Abra la lista tipo de control y, a continuación, seleccione valores permitidos.

El mecanismo de entrada cambia a un control de lista desplegable.


3. Repita estos pasos para la tarjeta del Departamento .

Agregar la lista de ubicaciones


1. Seleccione ver > orígenes de datos > Agregar origen de datos.
2. Seleccione o cree una conexión de SharePoint y, a continuación, especifique el sitio que contiene la lista de
ubicaciones .
3. Active la casilla correspondiente a esa lista y, a continuación, seleccione conectar.
La lista de conexiones muestra la lista de incidentes , en la que se basa el formulario, y la lista de
ubicaciones , que identificará las ubicaciones y los departamentos en el formulario.

Desbloquear las tarjetas


1. Seleccione la tarjeta de Ubicación , seleccione la pestaña Opciones avanzadas en el panel derecho y, a
continuación, seleccione desbloquear para cambiar las propiedades.
2. Repita el paso anterior para la tarjeta del Departamento .

Cambiar el nombre de los controles


Si cambia el nombre de los controles, puede identificarlos más fácilmente y los ejemplos son más fáciles de seguir.
Para descubrir otros procedimientos recomendados, revise las notas del producto sobre estándares de codificación
y directrices.
1. En la tarjeta Ubicación , seleccione el control lista desplegable .
2. Cerca de la parte superior del panel derecho, cambie el nombre del control seleccionado escribiendo o
pegando ddLocation.

3. Repita los dos pasos anteriores de la tarjeta Department para cambiar el nombre del control de lista
desplegable a ddDepartment.
Configurar las ubicaciones
1. Establezca la propiedad Items de ddlocation en esta fórmula:
Distinct(Locations; Location)

2. opta Mientras mantiene presionada la tecla Alt, Abra ddLocationy confirme que la lista muestra las tres
ubicaciones.

Configurar los departamentos


1. Seleccione ddDepartmenty, a continuación, en la pestaña propiedades del panel derecho, seleccione
depende de.
2. En control primario, asegúrese de que ddLocation aparece en la lista superior y el resultado aparece en
la lista inferior.

NOTE
Si no desea buscar coincidencias en una cadena pero en el ID. real de la fila de datos, seleccione ID en lugar de result.

3. En campo coincidente, seleccione ubicaciones en la lista superior, seleccione Ubicación en la lista


inferior y, a continuación, seleccione aplicar.

La propiedad Items de ddDepartment se establece en esta fórmula:


Filter(Locations; Location = ddLocation.Selected.Result)

Esta fórmula filtra los elementos de ddDepartment en función de lo que seleccione el usuario en
ddLocation. Esta configuración garantiza que la lista "secundaria" de departamentos refleje los datos para
su ubicación "primaria", como la lista de ubicaciones de SharePoint especifica.
4. En la pestaña propiedades del panel derecho, abra la lista junto a valory seleccione Departamento.
Este paso establece el texto para mostrar en las opciones de la columna Departamento de la lista
ubicaciones de SharePoint.
Prueba del formulario
Mientras mantiene presionada la tecla Alt, abra la lista de ubicaciones, seleccione una, abra la lista de
departamentos y, a continuación, seleccione una.
Las listas de ubicaciones y departamentos reflejan la información de la lista ubicaciones de SharePoint.

Guardar y abrir el formulario (opcional)


1. Abra el menú archivo y, a continuación, seleccione Guardar > publicar en SharePoint > publicar en
SharePoint.
2. En la esquina superior izquierda, seleccione la flecha Atrás y luego Volver a SharePoint.
3. En la barra de comandos, seleccione Nuevo para abrir el formulario personalizado.

Preguntas más frecuentes


No veo ningún dato: los orígenes están todos en blanco o tienen datos incorrectos. Confirme si está
mostrando el campo correcto para el control de cualquiera de estas maneras:
Seleccione una lista desplegable y, a continuación, seleccione la propiedad valor en la pestaña propiedades
del panel derecho.
Seleccione un cuadro combinado y, a continuación, asegúrese de que el texto principal es el campo que
desea mostrar.

La lista desplegable mi secundaria contiene elementos duplicados. Este síntoma es probable que se deba al
uso de una columna de búsqueda en SharePoint o a una función de elección en PowerApps. Para quitar la
duplicación, ajuste una función DISTINCT alrededor de los datos que devuelven correctamente. Más información:
función DISTINCT.

Limitaciones conocidas
Esta configuración está disponible en los controles desplegables, así como en los controles de cuadro
combinado y cuadro de lista que permiten una selección a la vez. No se puede usar el depende de la
configuración de ninguno de esos controles si permiten selecciones múltiples. No se recomienda este enfoque para
trabajar con conjuntos de opciones en Common Data Service.
Depende de la configuración no es compatible con colecciones o datos estáticos. Para configurar listas
desplegables dependientes con estos orígenes, edite la expresión directamente en la barra de fórmulas. Además,
PowerApps no admite el uso de dos campos de elección en SharePoint sin ninguna tabla de datos coincidente, y no
se puede definir un campo coincidente dentro de esta interfaz de usuario.
Visualización de datos en un gráfico de líneas,
circular o de barras en PowerApps
05/11/2019 • 4 minutes to read

Utilice gráficos de líneas, gráficos circulares y gráficos de barras para mostrar los datos en una aplicación de lienzo.
Cuando trabaje con gráficos, los datos que importe deben estar estructurados en función de los criterios
siguientes:
Todas las series deben estar en la primera fila.
Las etiquetas deben estar en la columna izquierda.
Por ejemplo, los datos deben tener un aspecto similar al siguiente:

Puede crear y usar estos gráficos en PowerApps. Empecemos.

Requisitos previos
Regístrese en PowerApps y, luego, inicie sesión con las mismas credenciales que usó para registrase.
Cree una aplicación a partir de una plantilla, de datos o desde cero.
Aprenda a configurar un control en PowerApps.
Descargue ChartData.zip, que contiene datos de ejemplo como un archivo XML. Siga los pasos descritos en
este tema para importarlo directamente desde su aplicación. Como alternativa, descomprima el archivo .zip,
abra el archivo XML en Excel y guárdelo en una cuenta de almacenamiento en la nube.

Importar los datos de ejemplo


En estos pasos importaremos los datos de ejemplo en una colección, denominada ProductRevenue.
1. En la pestaña Insertar, seleccione Controles e Importar:
2. Establezca la propiedad OnSelect del control en la función siguiente:
Collect(ProductRevenue; Import1.Data)

3. Presione F5 para abrir el modo de vista previa y seleccione el botón Importar datos.
4. En el cuadro de diálogo Abrir, elija ChartData.zip, seleccione Abrir y, después, presione Esc.
5. En el menú Archivo, seleccione Colecciones.
Aparece la colección ProductRevenue con los datos de gráfico que ha importado:

NOTE
El control de importación se usa para importar datos en forma de Excel y crear la colección. El control de importación
importa los datos cuando se crea la aplicación y se obtiene una vista previa de esta. Actualmente, el control de
importación no importa datos cuando se publica la aplicación.

6. Presione Esc para volver al área de trabajo predeterminada.

Agregar un gráfico circular


1. En la pestaña Insertar, seleccione Gráficos y Gráfico circular.
2. Mueva el gráfico circular bajo el botónImportar datos.
3. En el control de gráfico circular, seleccione el centro del gráfico circular:
4. Establezca la propiedad Elementos del gráfico circular en esta expresión: ProductRevenue.Revenue2014

El gráfico circular muestra los datos de los ingresos de 2014.

Agregar un gráfico de barras para mostrar los datos


Ahora vamos a usar esta colección ProductRevenue en un gráfico de barras:
1. En la pestaña Inicio, agregue una pantalla.]
2. En la pestaña Insertar, seleccione Gráficos y Gráfico de columnas.
3. Seleccione el centro del gráfico de columnas. Establezca la propiedad Items del gráfico de columnas en
ProductRevenue :

El gráfico de columnas muestra los datos de los ingresos de 2012:

4. En el gráfico de columnas, seleccione el cuadrado central:

5. En la pestaña Gráfico, seleccione Número de series y escriba 3 en la barra de fórmulas:


El gráfico de columnas muestra los datos de los ingresos de cada producto durante tres años:
Utilizar archivos multimedia en PowerApps
12/11/2019 • 10 minutes to read

En este tema, aprenderá a insertar archivos multimedia en la aplicación de lienzo, a cargar dibujos en un origen de
datos y a mostrar imágenes procedentes de un origen de datos en la aplicación. El origen de datos que vamos a
usar en este tema es un archivo de Excel guardado en OneDrive para la Empresa.

Requisitos previos
Regístrese en PowerApps y, luego, inicie sesión con las mismas credenciales que usó para registrase.

Agregar contenido multimedia desde un archivo o la nube


Puede elegir el tipo de contenido multimedia que desea agregar; por ejemplo, imágenes, vídeo o audio.
1. En la pestaña Contenido, seleccione Multimedia.
2. En Multimedia, seleccione Imágenes, Vídeos o Audio y después Examinar:

3. Elija el archivo que desea agregar y seleccione Abrir.


Se abrirá la carpeta Imágenes de su equipo y podrá seleccionar una imagen o acceder a otra carpeta.
4. Cuando haya terminado de agregar archivos, presione Esc para volver al área de trabajo predeterminada.
5. En la pestaña Insertar, seleccione Multimedia y después Imagen, Vídeo o Audio:

6. Si agrega un control de imagen, establezca la propiedad Imagen en el archivo que agregó:


NOTE
El nombre de archivo debe especificarse sin la extensión y entre comillas simples.

7. Si agrega un control de vídeo o audio, establezca la propiedad Media (Multimedia) en el archivo que
agregó:

NOTE
Para reproducir un vídeo de YouTube, la propiedad Media (Multimedia) del control de vídeo tiene que establecerse en
la dirección URL correspondiente, que debe escribirse entre comillas dobles.

Agregar contenido multimedia desde Azure Media Services


1. Desde su cuenta de Azure Media Services, cargue y publique sus recursos de vídeo desde AMS >
Configuración > Activos.
2. Una vez publicado el vídeo, copie su dirección URL.
3. Desde PowerApps, agregue el control Vídeo desde Insertar > Multimedia.
4. Establezca la propiedad Multimedia en la dirección URL que copió.
Como se muestra en este gráfico, puede elegir cualquier dirección URL de streaming que admita Azure
Media Services:

Agregar imágenes a la aplicación desde la nube


En este ejemplo, tiene imágenes guardadas en una cuenta de almacenamiento en la nube de OneDrive para la
Empresa. Además, utiliza una tabla de Excel donde se almacenan las rutas de acceso de las imágenes y estas
imágenes se muestran en la aplicación mediante un control de la galería.
En este ejemplo, vamos a utilizar CreateFirstApp.zip, que contiene algunos archivos .jpeg.
NOTE
Las rutas de acceso a estas imágenes que se utilizan en el archivo de Excel deben escribirse usando barras diagonales. Cuando
PowerApps guarda las rutas de las imágenes en una tabla de Excel, las rutas contienen barras diagonales inversas. Si utiliza
rutas de imágenes que proceden, por ejemplo, de una tabla, debe cambiar las rutas de la tabla de Excel para que contengan
barras diagonales en lugar de barras diagonales inversas. De lo contrario, no se mostrarán las imágenes.

1. Descargue CreateFirstApp.zip y extraiga la carpeta Assets en la cuenta de almacenamiento en nube.


2. Cambie el nombre de la carpeta Assets por Assets_images.
3. En una hoja de cálculo de Excel, cree una tabla de una sola columna y rellénala con los siguientes datos:

4. Asigne el nombre Jackets a la tabla y el nombre Assets.xlsx al archivo de Excel.


5. En la aplicación, agregue la tabla Jackets como origen de datos.
6. Agregue un control Solo imagen (pestaña Insertar > Galería) y establezca la propiedad Elementos en
Jackets :

La galería se actualiza automáticamente con las imágenes:

Cuando defina la propiedad Elementos, automáticamente se agregará la columna PowerAppsId


(IdDePowerApps) a la tabla de Excel.
En la tabla de Excel, la ruta de acceso de una imagen también puede ser una dirección URL. Una muestra de
ello sería el archivo de ejemplo Flooring Estimates. Puede descargar este archivo en la cuenta de
almacenamiento en la nube, agregar la tabla FlooringEstimates como origen de datos de la aplicación y
establecer el control de la galería en FlooringEstimates . La galería se actualiza automáticamente con las
imágenes.

Cargar dibujos en la nube


En este ejemplo, aprenderá a cargar dibujos en el origen de datos, OneDrive para la Empresa, y descubrirá cómo se
guardan allí los dibujos.
1. En Excel, escriba Image [image] en la celda A1.
2. Siga estos pasos para crear una tabla:
a. Seleccione la celda A1.
b. En la cinta Insertar, seleccione Tabla.
c. En el cuadro de diálogo, seleccione La tabla tiene encabezados y Aceptar.

Ahora, el archivo de Excel tiene formato de tabla. Para más información sobre el formato de tabla de
Excel, consulte Aplicar formato a una tabla de Excel.
d. Asigne a la tabla el nombre Drawings:

3. Guarde el archivo de Excel en OneDrive para la Empresa como SavePen.xlsx.


4. En PowerApps, cree una aplicación en blanco.
5. En la aplicación, agregue la cuenta de OneDrive para la Empresa como origen de datos:
a. Pulse o haga clic en la pestaña Vista y, luego, en Orígenes de datos.

b. Pulse o haga clic en Agregar origen de datos y en OneDrive para la Empresa.

c. Pulse o haga clic en SavePen.xlsx.


d. Seleccione la tabla Drawings y pulse o haga clic en Conectar.
Ahora, la tabla Drawings aparece como origen de datos.
6. En la pestaña Insertar, seleccione Texto y Entrada manuscrita.
7. Cambie el nombre del control a MyPen:

8. En la pestaña Insertar, agregue el control Botón y establezca la propiedad AlSeleccionar en esta fórmula:
Patch(Drawings; Defaults(Drawings); {Image:MyPen.Image})
9. Agregue un control de la Galería de imágenes (pestaña Insertar > Galería) y establezca la propiedad
Elementos en Drawings . La propiedad Image del control de galería se establece automáticamente en
ThisItem.Image .

Organice los controles tal y como se muestra a continuación:


10. Presione F5 o seleccione Vista previa ( ).
11. Dibuje algo en MyPen y seleccione el botón.
En la primera imagen del control de galería aparecerá lo que ha dibujado.
12. Agregue algo más al dibujo y seleccione el botón.
En la segunda imagen del control de galería aparecerá lo que ha dibujado.
13. Cierre la ventana de vista previa con la tecla Esc.
En la cuenta de almacenamiento en la nube, se crea automáticamente la carpeta SavePen_images. Esta
carpeta contiene las imágenes guardadas junto con los identificadores de los nombres de archivo. Para ver
la carpeta, deberá actualizar la ventana del explorador (por ejemplo, pulsando F5).
En SavePen.xlsx, la ruta de las nuevas imágenes se especifica en la columna Image.
Limitaciones conocidas
Para más información sobre cómo compartir datos de Excel en su organización, repase estas limitaciones.

Más información
No olvide probar la aplicación en diferentes plataformas, como en una ventana del explorador y en un teléfono.
Para más información sobre escenarios más avanzados en los que el contenido multimedia se carga directamente
en un origen de datos distinto, consulte algunas sugerencias de profesionales para capturar imágenes y descubra
cómo usar conectores personalizados para cargar imágenes.
Otra forma de cargar archivos en un origen de datos consiste en usar la función Patch.
Objeto visual personalizado de PowerApps para
Power BI
27/11/2019 • 8 minutes to read

Power BI habilita la información sobre los datos y mejora la toma de decisiones, mientras que PowerApps permite
a todos los usuarios compilar y usar aplicaciones que se conectan a datos empresariales. Con el objeto visual
personalizado de PowerApps, se pueden pasar datos en contexto a una aplicación de lienzo, que se actualiza en
tiempo real mientras se realizan cambios en el informe. Ahora, los usuarios de la aplicación pueden derivar
información empresarial y realizar acciones desde el interior de sus informes y paneles de Power BI.

Uso del objeto visual personalizado de PowerApps


Veamos los pasos necesarios para usar el objeto visual personalizado de PowerApps en el informe de Power BI.
1. Obtenga el objeto visual personalizado desde AppSource o impórtelo directamente en el servicio de Power
BI.

2. Agregue el objeto visual de PowerApps al informe y establezca los campos de datos asociados con él.

Puede elegir una aplicación existente o crear una, pero el informe se deben publicar en el servicio Power BI
y abrir en Microsoft Edge o Google Chrome.
3. Si decide crear una aplicación, puede elegir en qué entorno crearla.
Si elige usar una aplicación existente, el objeto visual le pedirá que abra la aplicación en PowerApps.
Después, el objeto visual configura los componentes necesarios de la aplicación para que Power BI pueda
enviar datos a PowerApps.
Si crea una aplicación, PowerApps crea una aplicación sencilla con los componentes necesarios ya
configurados.

4. Ahora en PowerApps Studio, se pueden usar los campos de datos que se establecieron en el paso 2. El
objeto PowerBIIntegration actúa como cualquier otro origen de datos o colección de solo lectura de
PowerApps. Se puede usar el objeto para rellenar un control, o para combinar y filtrar otros orígenes de
datos.
Esta fórmula combina datos de Power BI con el origen de datos de cliente:
LookUp(Customer,Customer_x0020_Name=First(PowerBIIntegration.Data).Customer_Name)

El informe de Power BI y la instancia de PowerApps Studio que se inició comparten una conexión de datos
dinámica. Mientras los dos estén abiertos, se pueden filtrar o cambiar los datos del informe para ver los
datos actualizados reflejados al instante en la aplicación en PowerApps Studio.
5. Después de haber completado la compilación o los cambios en la aplicación, guárdela y publíquela en
PowerApps para verla en el informe de Power BI.
6. Una vez esté satisfecho con los cambios, asegúrese de compartir la aplicación de PowerApps con los
usuarios del informe y, después, guarde el informe.
7. Y con eso, ha creado un informe en el que los usuarios pueden realizar acciones como obtener información
de los datos.

Si necesita realizar cambios en una aplicación, abra el informe en modo de edición, pulse o haga clic en Más
opciones ( . . . ) en el objeto visual de PowerApps y seleccione Editar.
Limitaciones del objeto visual personalizado de PowerApps
Las siguientes limitaciones se aplican al código Visual personalizado de PowerApps:
Si se cambian los campos de datos asociados con el objeto visual, tendrá que modificar la aplicación desde
dentro del servicio Power BI haciendo clic en el botón de puntos suspensivos (...) y seleccionando después
Editar. En caso contrario, los cambios no se propagarán a PowerApps y la aplicación se comportará de forma
inesperada.
El visual personalizado de PowerApps no puede desencadenar una actualización de Power BI informes y Power
BI orígenes de datos desde Power BI Desktop. Si escribe datos de la aplicación en el mismo origen de datos que
el informe, los cambios no se reflejarán inmediatamente en Power BI Desktop. Los cambios se reflejan en la
siguiente actualización programada.
El objeto visual personalizado de PowerApps no puede filtrar los datos o devolver ningún dato al informe.
Tendrá que compartir la aplicación de PowerApps de forma independiente al informe. Obtenga información
sobre cómo compartir aplicaciones en PowerApps.
Power BI Report Server y la aplicación móvil para Power BI no admiten el visual personalizado de PowerApps.
Si usa la función PowerBIIntegration. Refresh (), debe usar un origen que admita DirectQuery y la conexión de
datos debe crearse mediante el método directquery.
PowerApps en Power BI Desktop proporciona datos para PowerApps Studio al crear aplicaciones pero no
durante la edición. Use Power BI web para obtener una vista previa de los datos mientras edita las aplicaciones.

NOTE
Se recomienda publicar primero el informe en el servicio Power BI y, a continuación, crear o modificar las aplicaciones.

Compatibilidad con exploradores


En la tabla siguiente se muestra la compatibilidad del explorador para ver, crear y modificar acciones del código
Visual personalizado de PowerApps. Los exploradores y las acciones admitidos se identifican con una marca de
verificación (✓).

EXPLORADOR VISORES A MODIFICACIONES

Microsoft Edge ✓ ✓ ✓

Internet Explorer 11 ✓

Google Chrome ✓ ✓ ✓

* Safari ✓

Mozilla Firefox

Todos los demás


exploradores

* en Safari, debe habilitar el seguimiento entre sitios (preferencias > privacidady desactivar evitar el
seguimiento entre sitios) para ver el objetos visuales personalizados de PowerApps.
Compatibilidad con accesibilidad
Para navegar por el visual de PowerApps con el teclado, siga estos pasos:
1. Centrar la selección en el informe de Power BI para el visual de PowerApps deseado.
2. Use la tecla Tab del teclado hasta que se resalte el visual.
3. Use la tecla Ctrl + flecha derecha en el teclado para escribir el control visual.
4. Use la tecla Tab del teclado hasta que se seleccione el componente deseado del elemento visual.
Para obtener más información, vea: Power BI la documentación de accesibilidad

Pasos siguientes
Realice un sencillo tutorial paso a paso.
Consulte nuestro vídeo.
Mostrar, ordenar y filtrar los datos en una galería
de PowerApps
12/11/2019 • 13 minutes to read

Cree una galería para mostrar imágenes y texto sobre diversos productos, y ordene y filtre esa información.
En PowerApps, puede usar una galería para mostrar varios elementos relacionados, como si se tratara de un
catálogo. Las galerías son ideales para mostrar información sobre productos, como nombres y precios. En este
tema, crearemos una galería y ordenaremos y filtraremos la información mediante el uso de funciones
similares a las de Excel. Además, cuando se seleccione un elemento, se colocará un borde a su alrededor.

NOTE
En este tema se usa una aplicación de tableta. Puede usar una aplicación de teléfono, pero deberá cambiar el tamaño de
algunos de los controles.

Requisitos previos
Regístrese en PowerApps y, luego, inicie sesión con las mismas credenciales que usó para registrase.
Cree una aplicación de tableta a partir de una plantilla, de datos o desde cero.
Tiene que saber configurar un control.
En estos pasos se usa CreateFirstApp como datos de entrada de ejemplo, que incluye imágenes .jpg. El
archivo zip incluye un archivo XML que se puede convertir a Excel. De lo contrario, PowerApps lee
automáticamente los archivos dentro los archivos .zip y lo importa correctamente. Puede descargar y usar
estos datos de ejemplo o importar los suyos propios.

Mostrar datos en una galería


1. Cree una colección denominada Inventory con los datos de ejemplo. Siga estos pasos:
a. En la pestaña Insertar, seleccione Controles e Importar:

b. Establezca la propiedad AlSeleccionar del control de importación en la siguiente fórmula:


Collect (Inventory, Import1. Data)
c. Seleccione el botón Importar datos para abrir el Explorador de Windows. Seleccione
CreateFirstApp.zip y Abrir.
d. En el menú Archivo, seleccione Colecciones. La colección Inventory se muestra con los datos
que ha importado:

Acaba de crear la colección Inventory, que contiene información sobre cinco productos, incluida
una imagen del diseño, el nombre del producto y el número de unidades disponibles.

NOTE
El control de importación se usa para importar datos en forma de Excel y crear la colección. El control de
importación importa los datos cuando se crea la aplicación y se obtiene una vista previa de esta.
Actualmente, el control de importación no importa datos cuando se publica la aplicación.

2. Seleccione la flecha Atrás para volver al diseñador.


3. En la pestaña Insertar, haga clic o pulse en Galería y luego haga clic o pulse en la galería Horizontal.
4. En el panel derecho, haga clic o pulse en la opción en la que el título y el subtítulo se superponen en
superposición en el gráfico:

5. Establezca la propiedad Items de la galería en Inventory:

6. Cambie el nombre de la galería a ProductGallery y muévala de modo que no bloquee los demás
controles. Cambie el tamaño de la galería para que muestre tres productos:

7. En el primer elemento de la galería, seleccione la etiqueta inferior:


NOTE
Cuando se cambia el primer elemento de una galería, se cambian automáticamente los demás elementos de la
galería.

8. Establezca la propiedad Text de la etiqueta en la expresión siguiente:


ThisItem. UnidadesEnExistencias
Al hacerlo, en la etiqueta se muestran las unidades disponibles de cada producto:

NOTE
De forma predeterminada, la propiedad Text de la etiqueta superior está establecida en ThisItem.ProductName . Puede
cambiarla a cualquier otro elemento de la colección. Por ejemplo, si la colección tiene los campos ProductDescription o
Price, puede establecer la etiqueta en ThisItem.ProductDescription o ThisItem.Price .

Mediante estos pasos, ha importado datos que incluyen imágenes .jpg en una colección. Después, ha agregado
una galería en la que se muestran los datos y ha configurado una etiqueta para mostrar las unidades
disponibles de cada producto.

Resaltar el elemento seleccionado de la galería


1. Seleccione un elemento cualquiera de la galería excepto el primero. Aparece el icono de edición en la
esquina superior izquierda. Seleccione el icono de edición:

2. En la pestaña Insertar, seleccione Formas y, luego, el rectángulo. Aparece un rectángulo sólido azul en
cada elemento de la galería.
3. En la pestaña Inicio, seleccione Relleno y, después, Sin relleno.
4. Seleccione Borde, Estilo de borde y la línea sólida.
5. Seleccione Borde de nuevo y establezca el grosor en 3. Cambie el tamaño del rectángulo de modo que
rodee el elemento de la galería. Ahora los elementos de la galería tienen un borde azul y deberían tener
un aspecto similar al siguiente:

6. En la pestaña Forma, seleccione Visible y escriba la siguiente fórmula en la barra de fórmulas:


Si (ThisItem. IsSelected, true)
Un rectángulo azul rodea la selección actual en la galería. Seleccione algunos elementos de la galería
para confirmar que el rectángulo aparece alrededor de cada elemento seleccionado. Recuerde que
también puede abrir Vista previa para ver y probar lo que está creando.

TIP
Seleccione el rectángulo, Reordenar en la pestaña Inicio y Enviar al fondo. Con esta característica, puede seleccionar
un elemento de galería sin que el borde bloquee nada.

Mediante estos pasos, ha agregado un borde alrededor de la selección actual en la galería.

Ordenar y filtrar elementos en la galería


Mediante estos pasos, vamos a ordenar los elementos de la galería en orden ascendente y descendente.
Además, vamos a agregar un control deslizante para "filtrar" los elementos de la galería por las unidades
disponibles que elija.
Ordenar en orden ascendente o descendente
1. Seleccione un elemento cualquiera de la galería excepto el primero.
2. La propiedad Items está establecida actualmente en Inventory (el nombre de la colección). Cámbiela a
lo siguiente:
Sort(Inventory; ProductName)
Cuando lo haga, los elementos de la galería se ordenarán por nombre de producto en orden ascendente:
Pruebe un orden descendente. Establezca la propiedad Elementos de la galería en la siguiente fórmula:
Sort(Inventory, ProductName, Descending)
Agregar un control deslizante y filtrar los elementos de la galería
1. Agregue un control deslizante (pestaña Insertar > Controles), cambie su nombre a StockFilter y
muévalo debajo de la galería.
2. Configure el control deslizante de modo que los usuarios no puedan establecerlo en un valor fuera del
intervalo de unidades disponibles:
a. En la pestaña Contenido, seleccione Mín. y escriba la expresión siguiente:
Min(Inventory; UnitsInStock)
b. En la pestaña Contenido, seleccione Máx. y escriba la expresión siguiente:
Max(Inventory; UnitsInStock)
3. Seleccione un elemento cualquiera de la galería excepto el primero. Establezca la propiedad Items de la
galería en la expresión siguiente:
Filter(Inventory; UnitsInStock<=StockFilter.Value)

4. En Vista previa, ajuste el control deslizante en un valor comprendido entre la cantidad mínima y
máxima en la galería. A medida que ajuste el control deslizante, la galería mostrará solo los productos
con una cantidad inferior al valor que elija:

Ahora vamos a agregar un filtro:


1. Vuelva al diseñador.
2. En la pestaña Insertar, seleccione Texto, elija Texto de entrada y cambie el nombre del control nuevo a
NameFilter. Mueva el control de texto debajo del control deslizante.
3. Establezca la propiedad Items de la galería en la expresión siguiente:
Filter(Inventory; UnitsInStock<=StockFilter.Value && NameFilter.Text in ProductName)
4. En Vista previa, establezca el control deslizante en 30 y escriba la letra g en el control de entrada de texto.
En la galería se muestra el único producto con menos de 30 unidades disponibles y con un nombre que
empieza por la letra "g":
consejos y trucos
En cualquier momento, puede seleccionar el botón de vista previa ( ) para ver lo que ha creado y
probarlo.
Al diseñar la aplicación, puede volver a cambiar el tamaño de los controles y moverlos haciendo clic en ellos
y arrastrándolos.
Presione ESC o seleccione la X para cerrar la ventana de vista previa.
Cuando use una galería, seleccione el primer elemento para cambiar todos los elementos de la galería. Por
ejemplo, seleccione el primer elemento para agregar un borde a todos los elementos de la galería.
Para actualizar las propiedades de la galería, seleccione un elemento cualquiera de la galería excepto el
primero. Por ejemplo, seleccione el segundo elemento para actualizar la propiedad Items, ShowScrollbar u
otra propiedad que se aplique a la galería (no a los elementos de la galería).

Qué ha aprendido
En este tema:
Ha creado una colección, ha importado datos que incluían imágenes .jpg en esta colección y ha hecho que
los datos aparecieran en una galería.
Debajo de cada imagen de la galería, ha configurado una etiqueta que indica las unidades disponibles de
ese elemento.
Ha agregado un borde alrededor del elemento que se seleccione.
Ha ordenado los elementos por nombre de producto de manera ascendente y descendente.
Ha agregado un control deslizante y un control de texto de entrada para filtrar los productos por unidades
disponibles y nombre de producto.
Controles y propiedades en PowerApps
29/11/2019 • 49 minutes to read

Para configurar la apariencia y el comportamiento de un control es preciso establecer una de sus propiedades.
Cada tipo de control tiene un conjunto de propiedades diferente. Algunas propiedades, como Alto y Ancho, son
comunes a casi todos los tipos de controles, pero otras, como TamañoDeCasilla, son específicas de un tipo de
control.

Controles
Agregar imagen : cargue imágenes desde el dispositivo local, para cargarlas en un origen de datos.
Datos adjuntos : cargue y descargue archivos desde el dispositivo local a un origen de datos.
Audio : reproduzca un clip de audio o la parte de audio de un clip de vídeo.
Escáner de código de barras : explora códigos de barras, códigos QR y códigos de matriz de datos en un
dispositivo Android o iOS.
Botón : interactúe con la aplicación haciendo clic en él o pulsándolo.
Cámara : haga fotos y guárdelas en la aplicación o en un origen de datos.
Tarjeta : muestre y edite un campo individual de un registro en un control de un formulario de edición o
formulario de presentación .
Casilla : active o desactive una opción para especificar true o false.
Gráfico de columnas : muestre los valores en forma de barras verticales en relación a dos ejes.
Columna : proporciona la representación de un solo campo en un control Tabla de datos.
Cuadro combinado : permite a los usuarios seleccionar entre las opciones proporcionadas. Admite tanto la
búsqueda como la selección múltiple.
Contenedor (experimental) : cree una jerarquía anidada para la accesibilidad y la capacidad de respuesta.
Tabla de datos : muestre datos en formato tabular.
Selector de fecha : especifique una fecha haciendo clic en él o pulsándolo.
Mostrar formulario : muestre los registros de un origen de datos mediante un formulario.
Desplegable : muestre el primer elemento de una lista hasta que se selecciona un botón de contenido adicional.
Formulario de edición : edite y cree registros en un origen de datos mediante un formulario.
Formulario de entidad (característica experimental): agregue formularios dinámicos en el que los usuarios
puedan ver datos relacionales de Common Data Service, editarlos y navegar por ellos.
Exportar : exporte datos para usarlos en cualquier otro lugar de PowerApps.
Galería : muestre una lista de los registros que pueden contener varios tipos de datos.
Texto HTML : convierta automáticamente las etiquetas HTML.
Icono : agregue un gráfico atractivo y aumente el interés visual.
Imagen : muestre una imagen de, por ejemplo, un archivo local o un origen de datos.
Importar : importe datos de cualquier otro lugar de PowerApps.
Gráfico de líneas : muestre los valores en forma de puntos de datos en relación a dos ejes.
Cuadro de lista : seleccione uno o varios elementos de una lista.
Micrófono : grabe y guarde sonidos en la aplicación o en un origen de datos.
Visor de PDF (experimental) : muestre el contenido de un archivo PDF en Internet.
Entrada manuscrita : dibuje una imagen o escriba texto y guárdelo en la aplicación o en un origen de datos.
Gráfico circular : muestre la relación de los valores entre sí.
Icono de Power BI : mostrar un icono de Power BI dentro de una aplicación.
Radio : muestre opciones que se excluyen mutuamente.
Clasificación : indique un valor entre 1 y un número especificado.
Editor de texto enriquecido : permite el formato de texto enriquecido por los usuarios de la aplicación.
Pantalla : muestre y actualice los datos sobre una tarea específica.
Forma : muestre flechas y formas geométricas, como rectángulos.
Control deslizante : especifique un valor arrastrando un controlador.
Etiqueta : muestre datos como texto, números, fechas o moneda.
Entrada de texto : escriba texto, números y otros datos.
Temporizador : configure la aplicación para que responda cuando transcurra un período concreto.
Alternancia : arrastre un cuadro para especificar true o false.
Vídeo : reproduzca un clip de vídeo de un archivo local, un origen de datos o YouTube.
Escáner de código de barras web (experimental) : el escáner de códigos de barras heredado, que está
obsoleto, pero podría ser útil para examinar códigos en un explorador Web.

Propiedades comunes por categoría


Color y borde : configure el color y borde de un control que puede cambiar cuando un usuario interactúa con él.
Núcleo : configure si el usuario puede ver un control e interactuar con él.
Imagen : configure qué imagen se muestra y cómo rellena el control.
Tamaño y ubicación : configure el tamaño de un control (o un elemento de un control) y dónde se encuentra en
relación con la pantalla en la que está.
Texto : configure la apariencia del texto en los controles, como las características de la fuente, la alineación y el
alto de línea.

Todas las propiedades


A
ActualZoom : el zoom real del control, que puede diferir del zoom solicitado con la propiedad Zoom. Se aplica al
control Visor de PDF .
Align : la ubicación del texto respecto al centro horizontal de su control. Se aplica a muchos controles.
TodosLosElementos : todos los elementos de una galería, entre los que se incluyen valores de control adicionales
que formen parte de la plantilla de la galería. Se aplica al control Galería .
AutoDisableOnSelect: deshabilita automáticamente el control mientras se ejecuta el comportamiento
AlSeleccionar. Se aplica a los controles Botón e Imagen .
AutoHeight (AlturaAutomática): indica si una etiqueta aumenta automáticamente su altura si su propiedad Texto
contiene más caracteres de los que el control permite mostrar. Se aplica al control Etiqueta .
PausarAutomáticamente: indica si un clip de audio o vídeo se detiene automáticamente si el usuario se desplaza
a otra pantalla. Se aplica a los controles Audio , Temporizador y Vídeo .
IniciarAutomáticamente: indica si un control de audio o vídeo empieza a reproducir automáticamente un clip
cuando el usuario navega a la pantalla que contiene ese control. Se aplica a los controles Audio , Temporizador y
Vídeo .
B
ImagenDeFondo : nombre de un archivo de imagen que aparece en el fondo de una pantalla. Se aplica al control
Screen .
BorderColor : el color de un borde del control. Se aplica a muchos controles.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None. Se aplica a muchos controles.
BorderThickness : el grosor de un borde del control. Se aplica a muchos controles.
Brillo : la claridad que el usuario es probable que perciba en una imagen. Se aplica al control Cámara .
C
CalculateOriginalDimensions : habilita las propiedades AltoOriginal y AnchoOriginal . Se aplica al control
Imagen .
Cámara : en los dispositivos que tienen más de una cámara, el identificador numérico de la cámara que usa la
aplicación. Se aplica al control Cámara .
CheckboxBackgroundFill (RellenoDeFondoDeCasilla): el color de fondo del cuadro que rodea la marca de
verificación en un control de casilla. Se aplica al control Casilla .
CheckboxBorderColor : el color del borde que rodea la marca de verificación en un control de casilla. Se aplica al
control Casilla .
TamañoDeCasilla : el ancho y alto del cuadro que rodea la marca de verificación en un control de casilla. Se aplica
al control Casilla .
CheckmarkFill : el color de la marca de verificación en un control de casilla. Se aplica al control Casilla .
ChevronBackground : el color detrás de la flecha hacia abajo en una lista desplegable. Se aplica al control
Desplegable .
ChevronFill : el color de la flecha hacia abajo en una lista desplegable. Se aplica al control Desplegable .
Clear : si un control de entrada de texto muestra una "X" que el usuario puede pulsar o hacer clic para borrar el
contenido del control. Se aplica al control Entrada de texto .
Color : el color del texto en un control. Se aplica a muchos controles.
Contraste : indica cómo el usuario puede distinguir fácilmente colores similares en una imagen. Se aplica al
control Cámara .
CurrentFindText : el término de búsqueda que está en uso en ese momento. Se aplica al control Visor de PDF .
CurrentPage : el número de la página de un archivo PDF que se muestra realmente. Se aplica al control Visor de
PDF .
D
Data : el nombre de una colección que desea exportar a un archivo local. Se aplica al control Exportar .
DataField : el nombre del campo de un registro que esta tarjeta muestra y edita. Se aplica al control Tarjeta .
DataSource : el origen de datos que contiene el registro que el usuario mostrará, editará o creará. Se aplica a los
controles Formulario de presentación y Formulario de edición .
Predeterminado : el valor inicial de un control antes de que lo cambie el usuario. Se aplica a muchos controles.
DefaultDate : el valor inicial de un control de fecha antes de que lo cambie el usuario. Se aplica al control
Selector de fecha .
DefaultMode : el modo inicial de un control de formulario, ya sea Edit, New o View. Se aplica al control
Formulario de edición .
Dirección : indica si el primer elemento de una galería con orientación horizontal aparece cerca del borde
izquierdo o derecho. Se aplica al control Galería .
Disabled : indica si el usuario puede interactuar con el control. Se aplica a muchos controles.
DisabledBorderColor : el color de un borde del control si la propiedad Disabled del control está establecida en
true. Se aplica a muchos controles.
DisabledColor : el color del texto en un control si su propiedad Disabled está establecida en true. Se aplica a
muchos controles.
DisabledFill : el color de fondo de un control si su propiedad Disabled está establecida en true. Se aplica a
muchos controles.
DisplayName : el nombre descriptivo de un campo de un origen de datos. Se aplica al control Tarjeta .
DisplayMode : los valores pueden ser Edit, View o Disabled. Configura si el control permite entradas de usuario
(Edit), solo muestra datos (View ) o si está deshabilitado (Disabled).
Documento : la dirección URL, entre comillas dobles, de un archivo PDF. Se aplica al control Visor de PDF .
Duración : tiempo de ejecución del temporizador. Se aplica al control Temporizador .
E
EndYear : el último año en el que el usuario puede establecer el valor de un control selector de fecha. Se aplica al
control Selector de fecha .
Error: el significado de esta propiedad depende del control:
Control Agregar imagen : si aparece algún problema al cargar una imagen, esta propiedad contendrá una
cadena de error apropiada.
Control Tarjeta : el mensaje de error descriptivo que se muestra en este campo cuando se produce un error de
validación.
Control Formulario de edición : un mensaje de error descriptivo que se muestra en este formulario cuando
se produce un error en la función SubmitForm .
ErrorKind : si se produce un error durante la ejecución de SubmitForm, el tipo de error que se produjo. Se aplica
a los controles Formulario de presentación y Formulario de edición .
Seccionar : las distancia entre las cuñas de un gráfico circular. Se aplica al control Gráfico circular .
F
Fill : el color de fondo de un control. Se aplica a muchos controles.
FindNext : busca la siguiente instancia de FindText en el documento. Se aplica al control Visor de PDF .
FindPrevious : busca la instancia anterior de FindText en el documento. Se aplica al control Visor de PDF .
FindText : el término que se busca en el documento. Se aplica al control Visor de PDF .
Font : el nombre de la familia de fuentes en la que aparece el texto. Se aplica a muchos controles.
FontWeight : el peso del texto en un control: Bold, Semibold, Normal o Lighter. Se aplica a muchos controles.
G
GridStyle : indica si un gráfico de columnas o de líneas muestra su eje x, su eje, ambos o ninguno. Se aplica a los
controles Gráfico de columnas y Gráfico de líneas .
H
RellenoDeControladorActivo : el color del controlador de un control deslizante cuando el usuario cambia el
valor. Se aplica al control Control deslizante .
RellenoDeControlador : el color del controlador (el elemento que cambia de posición) en un control de
alternancia o control deslizante. Se aplica al control Control deslizante .
RellenoDeControladorAlMantener : el color del texto del controlador cuando el usuario mantiene el puntero
sobre él. Se aplica al control Control deslizante .
Height : la distancia entre los bordes superior e inferior de un control. Se aplica a muchos controles.
TextoDeSugerencia : texto de color gris claro que aparece en un control de entrada de texto si está en blanco. Se
aplica al control Entrada de texto .
HoverBorderColor : el color de un borde del control cuando el usuario mantiene el puntero del mouse sobre ese
control. Se aplica a muchos controles.
HoverColor : el color del texto de un control cuando el usuario mantiene el puntero del mouse sobre él. Se aplica
a muchos controles.
HoverFill : el color de fondo de un control cuando el usuario mantiene el puntero del mouse sobre él. Se aplica a
muchos controles.
Texto HTML : texto que aparece en un control de texto HTML y que puede contener etiquetas HTML. Se aplica al
control Texto HTML .
I
Imagen : el nombre de la imagen que aparece en un control de imagen, audio o micrófono. Se aplica a los
controles Audio , Image , Microphone y Video .
PosiciónDeLaImagen : posición (Rellenar, Ajustar, Estirar, Icono o Centrar) de una imagen en una pantalla o
un control, si no tiene el mismo tamaño que la imagen. Se aplica a muchos controles.
Input : entrada. Se aplica al control Entrada manuscrita .
Italic : indica si el texto de un control está en cursiva. Se aplica a muchos controles.
Elemento : el registro en el origen de datos que el usuario mostrará o editará. Se aplica a los controles
Formulario de presentación y Formulario de edición .
ItemBorderColor : el color del borde que rodea cada cuña de un gráfico circular. Se aplica al control Gráfico
circular .
ItemBorderThickness : el grosor del borde que rodea cada cuña de un gráfico circular. Se aplica al control
Gráfico circular .
ItemColorSet: color de cada punto de datos de un gráfico. Se aplica a los controles Gráfico de columnas ,
Gráfico de líneas y Gráfico circular .
ItemPaddingLeft : la distancia entre el texto de un cuadro de lista y su borde izquierdo. Se aplica al control
Cuadro de lista .
Elementos : origen de datos que aparece en un control, como una galería, una lista o un gráfico. Se aplica a
muchos controles.
ItemsGap : la distancia entre las columnas de un gráfico de columnas. Se aplica al control Gráfico de columnas .
Grande
LabelPosition : ubicación de las etiquetas en un gráfico circular con respecto a sus cuñas. Se aplica al control
Gráfico circular .
LastSubmit : el último registro enviado correctamente, incluidos todos los campos que ha generado el servidor.
Se aplica al control Formulario de edición .
Layout: indica si el usuario se desplaza por la galería o ajusta un control deslizante de arriba a abajo (Vertical) o
de izquierda a derecha (Horizontal). Se aplica a los controles Galería y Control deslizante .
AlturaDeLínea : distancia entre, por ejemplo, líneas de texto o elementos de una lista. Se aplica a los controles
Cuadro de lista , Botón de selección , Etiqueta y Entrada de texto .
Bucle : indica si un clip de audio o de vídeo empieza de nuevo automáticamente en cuanto termina de
reproducirse. Se aplica a los controles Audio y Vídeo .
Mediana
Marcadores : indica si un gráfico de columnas o de líneas muestra el valor de cada punto de datos. Se aplica a los
controles Gráfico de columnas y Gráfico de líneas .
MarkerSuffix : texto que aparece después de cada valor en un gráfico de columnas en el que la propiedad
Marcadores está establecida en true. Se aplica al control Gráfico de columnas .
Max: el valor máximo para el que el usuario puede establecer un control deslizante o una clasificación. Se aplica a
los controles Clasificación y Control deslizante .
MaxLength : el número de caracteres que el usuario puede escribir en un control de entrada de texto. Se aplica al
control Entrada de texto .
Multimedia: un identificador de la secuencia que reproduce un control de audio o de vídeo. Se aplica a los
controles Agregar imagen , Audio y Vídeo .
Micrófono : en un dispositivo que tenga varios micrófonos, el identificador numérico del micrófono que usa la
aplicación. Se aplica al control Micrófono .
Mín : el valor mínimo para el que el usuario puede establecer un control deslizante. Se aplica al control Control
deslizante .
AnchoDeBarraMínimo : el ancho mínimo posible de las columnas de un gráfico de columnas. Se aplica al control
Gráfico de columnas .
Mode: el significado de esta propiedad depende del control:
Control Formulario de edición : el control está en modo Edición o Nuevo.
Control Entrada manuscrita : el control está en los modos Dibujar, Borrar o Selección.
Control Entrada de texto : el control se encuentra en modo LíneaÚnica, Multilínea o Contraseña.
N
PasoDeNavegación : lo lejos que se desplaza una galería si su propiedad MostrarNavegación está establecida
en true y el usuario selecciona una flecha de navegación de cualquier extremo de esa galería. Se aplica al control
Galería .
NúmeroDeSeries : el número de columnas de datos reflejadas en un gráfico de columnas o de líneas. Se aplica a
los controles Gráfico de columnas y Gráfico de líneas .
O
AlCambiar : el comportamiento de una aplicación cuando el usuario cambia el valor de un control (por ejemplo,
al ajustar un control deslizante). Se aplica a muchos controles.
AlActivar: el comportamiento de una aplicación cuando el valor de una casilla o de un control Alternar cambia a
true. Se aplica a los controles Casilla y Alternancia .
AlFinalizar : el comportamiento de una aplicación cuando finaliza la reproducción de un clip de audio o de vídeo.
Se aplica a los controles Audio y Vídeo .
OnFailure (ConError): el comportamiento de una aplicación cuando una operación de datos ha sido incorrecta. Se
aplica al control Formulario de edición .
AlEstarOculto : el comportamiento de una aplicación cuando el usuario navega fuera de una pantalla. Se aplica al
control Screen .
AlPausar : el comportamiento de una aplicación cuando el usuario pausa el clip que reproduce un control de
audio o de vídeo. Se aplica a los controles Audio y Vídeo .
OnReset (AlRestablecer): el comportamiento de una aplicación cuando se restablece un control Formulario de
edición . Se aplica al control Formulario de edición .
AlSeleccionar : el comportamiento de una aplicación cuando el usuario pulsa o hace clic en un control. Se aplica a
muchos controles.
AlIniciar: el comportamiento de una aplicación cuando el usuario la abre o comienza a grabar con un control de
micrófono. Se aplica a los controles Audio , Micrófono , Pantalla y Vídeo .
OnStateChange (AlCambiarEstado): el comportamiento de una aplicación cuando cambia el estado del control.
Se aplica al control Visor de PDF .
AlDetener : el comportamiento de una aplicación cuando el usuario detiene la grabación con un control de
micrófono. Se aplica al control Micrófono .
EnSecuencia : el comportamiento de una aplicación cuando se actualiza la propiedad Secuencia . Se aplica al
control Cámara .
OnSuccess (ConResultadoCorrecto): el comportamiento de una aplicación cuando una operación de datos ha
sido correcta. Se aplica al control Formulario de edición .
AlFinalizarTemporizador : el comportamiento de una aplicación cuando se termina de ejecutar un temporizador.
Se aplica al control Temporizador .
AlIniciarTemporizador : el comportamiento de una aplicación cuando se empieza a ejecutar un temporizador. Se
aplica al control Temporizador .
AlDesactivar: el comportamiento de una aplicación cuando el valor de una casilla o de un control Alternar
cambia a false. Se aplica a los controles Casilla y Alternancia .
AlEstarVisible : el comportamiento de una aplicación cuando el usuario navega a una pantalla. Se aplica al
control Screen .
AltoOriginal : el alto original de una imagen, habilitada con la propiedad CalculateOriginalDimensions . Se
aplica al control Imagen .
AnchoOriginal : el ancho original de una imagen, habilitada con la propiedad CalculateOriginalDimensions .
Se aplica al control Imagen .
Desbordamiento : indica si aparece una barra de desplazamiento en una etiqueta si su propiedad Wrap (Ajuste)
está establecida en verdadero y el valor de la propiedad Texto del control contiene más caracteres de los que el
control permite mostrar a la vez. Se aplica al control Etiqueta .
P
Padding : la distancia entre el texto de un botón Exportar o Importar y los bordes de ese botón. Se aplica a los
controles Add picture , Export y Import .
RellenoInferior : distancia entre el texto de un control y el borde inferior de ese control. Se aplica a muchos
controles.
RellenoIzquierdo : distancia entre el texto de un control y el borde izquierdo de ese control. Se aplica a muchos
controles.
RellenoDerecho : distancia entre el texto de un control y el borde derecho de ese control. Se aplica a muchos
controles.
RellenoSuperior : distancia entre el texto de un control y el borde superior de ese control. Se aplica a muchos
controles.
Página : el número de la página que desea mostrar. Se aplica al control Visor de PDF .
PageCount : el número de páginas de un documento. Se aplica al control Visor de PDF .
Paused : true si un control de reproducción multimedia está actualmente en pausa; en caso contrario, false. Se
aplica a los controles Audio y Vídeo .
Foto : la imagen que se captura cuando el usuario hace una foto. Se aplica al control Cámara .
Presionado : true mientras se presiona un control; en caso contrario, false. Se aplica al control Botón .
PressedBorderColor : el color de un borde del control cuando el usuario toca o hace clic en ese control. Se aplica
a muchos controles.
PressedColor : el color de texto de un control cuando el usuario toca o hace clic en ese control. Se aplica a muchos
controles.
PressedFill : el color de fondo de un control cuando el usuario toca o hace clic en ese control. Se aplica a muchos
controles.
R
RadioBackgroundFill : el color de fondo de los círculos en un control de botón de radio. Se aplica al control
Radio .
RadioBorderColor : el color del círculo de cada opción de un control de botón de radio. Se aplica al control Radio
.
RadioSelectionFill : el color que aparece dentro del círculo de la opción seleccionada en un control de botón de
radio. Se aplica al control Radio .
TamañoDeBotónDeRadio : el diámetro de los círculos de un control de botón de radio. Se aplica al control
Radio .
RadiusBottomLeft : el grado al que se redondea la esquina inferior izquierda de un control. Se aplica a muchos
controles.
RadiusBottomRight : el grado al que se redondea la esquina inferior derecha de un control. Se aplica a muchos
controles.
RadiusTopLeft : el grado al que se redondea la esquina superior izquierda de un control. Se aplica a muchos
controles.
RadiusTopRight : el grado al que se redondea la esquina superior derecha de un control. Se aplica a muchos
controles.
RellenoDeRaíl: color de fondo del rectángulo en un control Alternar cuando su valor es false o color de la línea a
la derecha del identificador en un control deslizante. Se aplica a los controles Control deslizante y Alternancia .
RellenoRaílAlMantenerPuntero: al mantener el puntero sobre un control Alternar o deslizante, color de fondo
del rectángulo del primero cuando su valor es false o color de la línea a la derecha del identificador del segundo.
Se aplica a los controles Control deslizante y Alternancia .
RellenoDeClasificación : el color de las estrellas de un control de clasificación. Se aplica al control Clasificación
.
ReadOnly: indica si un usuario puede cambiar el valor de un control deslizante o el control de clasificación. Se
aplica a los controles Clasificación y Control deslizante .
Repetir : si un temporizador se reinicia automáticamente cuando finaliza la ejecución. Se aplica al control
Temporizador .
Required : indica si una tarjeta, al editar el campo de un origen de datos, debe contener un valor. Se aplica al
control Tarjeta .
Reset : indica si un control vuelve a su valor predeterminado. Se aplica a muchos controles. Consulte también la
función Reset .
Pequeña
Seleccionados: el elemento seleccionado. Se aplica a los controles Desplegable y Galería .
SelectedDate : la fecha seleccionada actualmente en un control de fecha. Se aplica al control Selector de fecha .
ColorDeSelección : color del texto de los elementos seleccionados en una lista o de la herramienta de selección
de un control de entrada manuscrita. Se aplica a los controles Drop down , List Box y Pen input .
RellenoDeSelección : el color de fondo de uno o varios elementos seleccionados en una lista o un área
seleccionada de un control de entrada manuscrita. Se aplica a los controles Drop down y List Box .
GrosorDeSelección : el grosor de la herramienta de selección de un control de entrada manuscrita. Se aplica al
control Entrada manuscrita .
SelecciónMúltiple : si un usuario puede seleccionar más de un elemento en un cuadro de lista. Se aplica al
control Cuadro de lista .
SeriesAxisMax : el valor máximo del eje y en un gráfico de columnas o de líneas. Se aplica al control Gráfico de
columnas .
SeriesAxisMin : un número que determina el valor mínimo del eje y de un gráfico de columnas. Se aplica al
control Gráfico de columnas .
MostrarControles: indica si se muestra un reproductor de audio o vídeo, por ejemplo, un botón de reproducción
y un control deslizante de volumen, y un control de entrada manuscrita muestra, por ejemplo, iconos para dibujar,
borrar y borrar todo. Se aplica a los controles Audio , Visor de PDF , Entrada manuscrita y Vídeo .
ShowLabels : si un gráfico circular muestra el valor asociado a cada una de sus cuñas. Se aplica al control Gráfico
circular .
MostrarNavegación : si aparece una flecha en cada extremo de una galería para que un usuario pueda
desplazarse por los elementos de la galería haciendo clic en una flecha o pulsando en ella. Se aplica al control
Galería .
MostrarBarraDesplazamiento : si aparece una barra de desplazamiento cuando el usuario mantiene el puntero
sobre una galería. Se aplica al control Galería .
MostrarValor: indica si el valor de un control deslizante o una clasificación aparece cuando el usuario cambia ese
valor o mantiene el puntero sobre el control. Se aplica a los controles Clasificación y Control deslizante .
Size : el tamaño de la fuente del texto que aparece en un control. Se aplica a muchos controles.
Ajustar : si, cuando un usuario se desplaza por una galería, se ajusta automáticamente para que aparezca el
siguiente elemento en su totalidad. Se aplica al control Galería .
Inicio: indica si se reproduce un clip de audio o vídeo. Se aplica a los controles Audio , Temporizador y Vídeo .
HoraDeInicio : la hora después del inicio de un clip de audio o de vídeo en que el clip empieza a reproducirse. Se
aplica a los controles Audio y Vídeo .
StartYear : el primer año en el que el usuario puede establecer el valor de un control de selector de fecha. Se aplica
al control Selector de fecha .
Secuencia : la imagen se actualiza automáticamente en la propiedad TasaSecuencia . Se aplica al control
Cámara .
TasaSecuencia : la frecuencia de actualización de la imagen en la propiedad Secuencia , en milisegundos. Este
valor puede oscilar entre 100 (1/10 centésimas de segundo) y 3 600 000 (1 hora). Se aplica al control Cámara .
Strikethrough : indica si aparece una línea sobre el texto de un control. Se aplica a muchos controles.
T
RellenoDePlantilla : el color de fondo de una galería. Se aplica al control Galería .
EspaciadoInternoDePlantilla : la distancia entre los elementos de una galería. Se aplica al control Galería .
TamañoDePlantilla : el alto de la plantilla en una galería con orientación vertical o el ancho de la plantilla en una
galería con orientación horizontal. Se aplica al control Galería .
Text : texto que aparece en un control o que el usuario escribe en un control. Se aplica a muchos controles.
Time : posición actual de un control multimedia. Se aplica a los controles Audio y Vídeo .
Información sobre herramientas : texto explicativo que aparece cuando el usuario mantiene el puntero sobre
un control. Se aplica a muchos controles.
Transición : el efecto visual (Emergente, Insertar o Ninguno) cuando el usuario mantiene el puntero sobre un
elemento de la galería. Se aplica al control Galería .
Transparencia : el grado de visibilidad de los controles de detrás de una imagen. Se aplica al control Imagen .
U
Underline : indica si aparece una línea debajo del texto de un control. Se aplica a muchos controles.
Sin guardar : true si el control Formulario de edición contiene cambios de usuario que no se guardaron. Se
aplica al control Formulario de edición .
Actualizar : el valor que se reescribe en el origen de datos de un campo. Se aplica al control Tarjeta .
Actualizaciones : los valores que se escriben en el origen de datos de un registro cargado en un control de
formulario. Se aplica al control Formulario de edición .
V
Válido: si un control Tarjeta o Formulario de edición contiene entradas válidas listas para enviarse al origen de
datos. Se aplica a los controles Tarjeta y Formulario de edición .
Valor : el valor de un control de entrada. Se aplica a los controles Casilla , Radio , Control deslizante y
Alternancia .
RellenoDeValor: color de fondo del rectángulo en un control Alternar cuando su valor es true o color de la línea
a la izquierda del identificador en un control deslizante. Se aplica a los controles Control deslizante y
Alternancia .
RellenoValorAlMantenerPuntero: al mantener el puntero del mouse sobre un control Alternar o Control
deslizante, color de fondo del rectángulo del primero cuando su valor es true o color de la línea a la izquierda del
identificador del segundo. Se aplica a los controles Control deslizante y Alternancia .
VerticalAlign : la ubicación del texto en un control respecto al centro vertical de ese control. Se aplica a muchos
controles.
Visible : indica si un control aparece o está oculto. Se aplica a muchos controles.
W
Width : la distancia entre los bordes derecho e izquierdo de un control. Se aplica a muchos controles.
WidthFit (AjusteDeAncho): indica si un control crece automáticamente en la horizontal para llenar el espacio
vacío de un control de contenedor, como un control Formulario de edición . Si varias tarjetas tienen esta
propiedad establecida en true, el espacio se divide entre ellas. Para más información, consulte Understand data
form layout in Microsoft PowerApps (Introducción al diseño de formularios de datos en Microsoft PowerApps).
Wrap (Ajuste): indica si el texto que es demasiado largo para caber en una etiqueta se ajusta a la línea siguiente. Se
aplica al control Etiqueta .
WrapCount : el número de registros que aparecen en cada elemento de una galería. Se aplica al control Galería .
X
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario (la pantalla si
no hay un contenedor primario). Se aplica a muchos controles. Para un control Tarjeta en un contenedor con
varias columnas, esta propiedad determina la columna en la que aparece la tarjeta.
XLabelAngle : el ángulo de las etiquetas del eje x de un gráfico de columnas o de líneas. Se aplica a los controles
Gráfico de columnas y Gráfico de líneas .
Y
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario (la pantalla si
no hay un contenedor primario). Se aplica a muchos controles. Para un control Tarjeta en un contenedor con
varias filas, esta propiedad determina la fila en la que aparece la tarjeta.
EjeYMáximo : el valor máximo del eje y de un gráfico de líneas. Se aplica al control Gráfico de líneas .
EjeYMínimo : el valor mínimo del eje y de un gráfico de líneas. Se aplica al control Gráfico de líneas .
YLabelAngle : el ángulo de las etiquetas del eje y de un gráfico de líneas o de columnas. Se aplica a los controles
Gráfico de columnas y Gráfico de líneas .
Z
Zoom: el porcentaje en que se amplía una imagen de una cámara o la vista de un archivo en un visor de PDF. Se
aplica a los controles Cámara y Visor de PDF .
Control Agregar imagen en PowerApps
12/11/2019 • 10 minutes to read

Toma una fotografía o carga imágenes desde el dispositivo local.

Descripción
Con este control los usuarios pueden tomar fotografías o cargar archivos de imagen desde su
dispositivo y actualizar el origen de datos con este contenido. En un dispositivo móvil se presenta al
usuario el cuadro de diálogo de elección del dispositivo para que elija entre tomar una foto o
seleccionar una ya disponible.
Este control es un control agrupado que contiene dos controles: un control Imagen y un control Add
media button (Agregar botón multimedia). El control Imagen muestra la imagen cargada o un
marcador de posición si no se ha cargado ninguna imagen. El control Add media button (Agregar
botón multimedia) le solicita una imagen para cargar.
Consulte la referencia del control Imagen para conocer las propiedades de Imagen.

Propiedades de Add media button (Agregar botón multimedia)


AccessibleLabel : etiqueta para lectores de pantalla. Debe describir el fin de agregar una imagen.
Align : la ubicación del texto respecto al centro horizontal de su control.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
ChangePictureText: texto que aparece en el botón cuando se ha cargado una imagen.
Color : el color del texto en un control.
DisabledBorderColor : el color de un borde del control si la propiedad DisplayMode del control está
establecida en Disabled.
DisabledColor : el color del texto en un control si su propiedad DisplayMode está establecida en
Disabled.
DisabledFill : el color de fondo de un control si su propiedad DisplayMode está establecida en
Disabled.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos (View) o si
está deshabilitado (Disabled).
Error: si hay un problema al cargar una imagen, esta propiedad contendrá una cadena de error
apropiada.
Fill : el color de fondo de un control.
FocusedBorderColor : el color del borde de un control cuando el control recibe el foco.
FocusedBorderThickness : el grosor del borde de un control cuando el control recibe el foco.
Font : el nombre de la familia de fuentes en la que aparece el texto.
FontWeight : el peso del texto en un control: Bold, Semibold, Normal o Lighter.
Height : la distancia entre los bordes superior e inferior de un control.
HoverBorderColor : el color de un borde del control cuando el usuario mantiene el puntero del mouse
sobre ese control.
HoverColor : el color del texto de un control cuando el usuario mantiene el puntero del mouse sobre
él.
HoverFill : el color de fondo de un control cuando el usuario mantiene el puntero del mouse sobre él.
Italic : indica si el texto de un control está en cursiva.
Multimedia: un identificador de la secuencia que reproduce un control de audio o de vídeo.
AlCambiar : indica cómo responde la aplicación cuando el usuario cambia el valor de un control (por
ejemplo, mediante el ajuste de un control deslizante).
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace clic en un control.
Padding : la distancia entre el texto de un botón Exportar o Importar y los bordes de ese botón.
PressedBorderColor : el color de un borde del control cuando el usuario toca o hace clic en ese
control.
PressedColor : el color de texto de un control cuando el usuario toca o hace clic en ese control.
PressedFill : el color de fondo de un control cuando el usuario toca o hace clic en ese control.
Reset : indica si un control vuelve a su valor predeterminado.
Size : el tamaño de la fuente del texto que aparece en un control.
Strikethrough : indica si aparece una línea sobre el texto de un control.
TabIndex : orden de navegación del teclado en relación con otros controles.
Text : texto que aparece en el botón cuando no se ha cargado una imagen.
Información sobre herramientas : texto explicativo que aparece cuando el usuario mantiene el
puntero sobre un control.
Underline : indica si aparece una línea debajo del texto de un control.
VerticalAlign : la ubicación del texto en un control respecto al centro vertical de ese control.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario (la
pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario (la
pantalla si no hay un contenedor primario).

Funciones relacionadas
Patch( DataSource; BaseRecord; ChangeRecord )
Ejemplos
Agregar imágenes a un control Galería de imágenes
1. Agregue un control Agregar imagen y, a continuación, haga clic en él tres veces.
¿No sabe cómo agregar, nombrar y configurar un control?

2. En el cuadro de diálogo Abrir, pulse o haga clic en un archivo de imagen y luego pulse o haga
clic en Abrir.
3. Agregue un control Botón , muévalo al control Agregar imagen y establezca la propiedad
AlSeleccionar del control Botón en esta fórmula:
Collect(MyPix; AddMediaButton1.Media)
¿Desea más información sobre la función Recopilar u otras funciones?

4. Agregue un control Galería de imágenes y establezca su propiedad Elementos en MyPix.


5. Presione F5 y pulse o haga clic en el control Botón .
La imagen del control Agregar imagen aparece en el control Galería de imágenes. Si la
imagen no tiene la misma relación de aspecto que el control Imagen del control Galería de
imágenes, establezca la propiedad PosiciónDeLaImagen del control Imagen en Ajustar.
6. Pulse o haga clic en el control Agregar imagen, pulse o haga clic en Abrir y luego pulse o haga
clic en el control Botón que agregó.
La segunda imagen aparece en el control Galería de imágenes.
7. (opcional) Repita el paso anterior una o más veces y, a continuación, presione Esc para volver al
área de trabajo predeterminada.
Use la función SaveData para guardar las imágenes localmente o la función Patch para actualizar el
origen de datos.

Directrices de accesibilidad
Se aplican las mismas directrices para Botón e Imagen . Además, tenga en cuenta lo siguiente:
Contraste de color
El control Add media button (Agregar botón multimedia) debe tener el contraste adecuado entre
su texto y el fondo. Dado que la imagen cargada puede tener diversos colores, use una propiedad
Fill opaca en el control Add media button (Agregar botón multimedia) para garantizar un
contraste uniforme.
Soporte técnico para el lector de pantalla
El control Add media button (Agregar botón multimedia) debe tener las propiedades Text y
ChangePictureText que soliciten al usuario que agregue o cambie una imagen.
Compatibilidad con el teclado
Add media button (Agregar botón multimedia) debe tener la propiedad TabIndex igual a cero o
superior para que los usuarios del teclado puedan desplazarse hasta él.
Add media button (Agregar botón multimedia) debe tener claramente visibles los indicadores de
enfoque. Use FocusedBorderColor y FocusedBorderThickness para conseguirlo.
Control Datos adjuntos en PowerApps
06/11/2019 • 6 minutes to read

Un control que permite a los usuarios descargar archivos en su dispositivo, así como cargar y eliminar archivos de
una lista de SharePoint o una entidad Common Data Service.

Límite
El control de datos adjuntos presenta estas limitaciones:
1. Los datos adjuntos son compatibles con las listas de SharePoint y Common Data Service entidades.
2. La funcionalidad de carga y eliminación solo funciona dentro de un formulario. El control de datos adjuntos
aparece deshabilitado cuando está en modo de edición y no dentro de un formulario. Para guardar las
adiciones y eliminaciones de archivos, el usuario de la aplicación debe guardar el formulario. Debido a esta
limitación, el control de datos adjuntos no está disponible en la pestaña Insertar , pero aparece en el
formulario cuando el campo de formulario de datos adjuntos está habilitado en un formulario de
SharePoint o de Common Data Service.
3. Solo puede cargar archivos si son de 10 MB o más pequeños.

Descripción
Un control de datos adjuntos le permite abrir, agregar y eliminar archivos de una lista de SharePoint o una
entidad Common Data Service.

Propiedades principales
Items : el origen de donde se describen los archivos que se pueden descargar.
MaxAttachments: el número máximo de archivos que acepta el control.
MaxAttachmentSize: el tamaño de archivo máximo permitido, en MB, de cada elemento adjunto nuevo.
Actualmente, el límite se encuentra en 10 MB.
OnAttach: cómo responde la aplicación cuando el usuario agrega nuevos datos adjuntos.
OnRemove: cómo responde la aplicación cuando el usuario elimina datos adjuntos existentes.
OnSelect : cómo responde la aplicación cuando el usuario hace clic en unos datos adjuntos.

Propiedades adicionales
AccessibleLabel : etiqueta para lectores de pantalla. Debe describir el fin de los datos adjuntos.
AddAttachmentText: el texto de la etiqueta del vínculo que se usa para agregar nuevos datos adjuntos.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
DisplayMode : indica si el control permite agregar y eliminar archivos (Edit), solo muestra datos (View) o si está
deshabilitado (Disabled).
FocusedBorderColor : el color del borde de un control cuando el control recibe el foco.
FocusedBorderThickness : el grosor del borde de un control cuando el control recibe el foco.
Height : la distancia entre los bordes superior e inferior de un control.
MaxAttachmentsText: el texto que reemplaza al vínculo de "Adjuntar archivo" cuando el control contiene el
número máximo de archivos permitidos.
NoAttachmentsText: texto informativo que se muestra al usuario cuando no hay archivos adjuntos.
TabIndex : orden de navegación del teclado en relación con otros controles.
Visible : indica si un control está visible u oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario (la pantalla si
no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario (la pantalla si
no hay un contenedor primario).

Ejemplo
1. Cree una aplicación de datos usando una lista de SharePoint como origen de datos. Como alternativa,
puede agregar un formulario a la aplicación y establecer una lista de SharePoint como su origen de datos.
2. Seleccione el control Formulario en la vista de árbol del lado izquierdo.
3. Haga clic en Datos en la pestaña Propiedades en el panel de opciones de la derecha.
4. En Campos, habilite el campo Datos adjuntos.
El campo de datos adjuntos asociado a la lista de SharePoint aparecerá en el formulario.
[Aprenda a agregar y configurar un control].(../add-configure-controls.md)

Directrices de accesibilidad
Contraste de color
Debe haber un contraste de color adecuado entre:
ItemColor y ItemFill
ItemHoverColor y ItemHoverFill
ItemPressedColor y ItemPressedFill
AddedItemColor y AddedItemFill
RemovedItemColor y RemovedItemFill
ItemErrorColor y ItemErrorFill
AddAttachmentColor y Fill
MaxAttachmentsColor y Fill
NoAttachmentsColor y Fill
Y esto, además de los requisitos estándar de contraste de color.
Soporte técnico para el lector de pantalla
Las siguientes propiedades deben estar presentes:
AccessibleLabel
AddAttachmentsText
MaxAttachmentsText
NoAttachmentsText
Compatibilidad con el teclado
La propiedad TabIndex debe ser cero o superior para que los usuarios del teclado puedan desplazarse hasta
él.
Los indicadores de foco deben ser claramente visibles. Use FocusedBorderColor y
FocusedBorderThickness para conseguirlo.
Controles Audio y Vídeo en PowerApps
06/11/2019 • 11 minutes to read

Un control que reproduce un archivo de audio, un archivo de vídeo o un vídeo en YouTube.

Descripción
Un control Audio reproduce una secuencia de sonido de un archivo, una grabación de un control Micrófono o el
audio de una pista de audio de un archivo de vídeo.
Un control Vídeo reproduce una secuencia de vídeo de un archivo o de YouTube o Azure Media Services.
Opcionalmente, se pueden mostrar subtítulos cuando se especifique.

Propiedades principales
Bucle: indica si una secuencia de audio o vídeo empieza de nuevo automáticamente en cuanto termina de
reproducirse.
Multimedia: un identificador de la secuencia que reproduce un control de audio o de vídeo.
MostrarControles: indica si se muestra un reproductor de audio o vídeo, por ejemplo, un botón de reproducción y
un control deslizante de volumen, y un control de entrada manuscrita muestra, por ejemplo, iconos para dibujar,
borrar y borrar todo.

Propiedades adicionales
AccessibleLabel : etiqueta para lectores de pantalla. Debe ser el título de la secuencia de vídeo o audio.
PausarAutomáticamente: indica si un clip de audio o vídeo se detiene automáticamente si el usuario se desplaza
a otra pantalla.
IniciarAutomáticamente: indica si un control de audio o vídeo empieza a reproducir automáticamente un clip
cuando el usuario navega a la pantalla que contiene ese control.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
ClosedCaptionsUrl: solo control de vídeo. Dirección URL del archivo de los subtítulos en formato de WebVTT.
Ambas direcciones URL, la del vídeo y la de los subtítulos, deben ser HTTPS. El servidor que hospede los archivos
de vídeo y los subtítulos debe tener CORS habilitado.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos (View) o si está
deshabilitado (Disabled).
Fill : el color de fondo de un control.
FocusedBorderColor : el color del borde de un control cuando el control recibe el foco.
FocusedBorderThickness : el grosor del borde de un control cuando el control recibe el foco.
Height : la distancia entre los bordes superior e inferior de un control.
Imagen : el nombre de la imagen que aparece en un control de imagen, audio o micrófono.
PosiciónDeLaImagen : posición (Rellenar, Ajustar, Estirar, Icono o Centrar) de una imagen en una pantalla o
un control, si no tiene el mismo tamaño que la imagen.
AlFinalizar: indica cómo una aplicación responde cuando finaliza la reproducción de una secuencia de audio o de
vídeo.
AlPausar: indica cómo responde una aplicación cuando el usuario pausa la secuencia que está reproduciendo un
control de audio o de vídeo.
AlIniciar: indica cómo la aplicación responde cuando el usuario comienza a grabar con un control de micrófono.
Paused: true si un control de reproducción multimedia está actualmente en pausa, de lo contrario false.
Reset : indica si un control vuelve a su valor predeterminado.
Inicio: indica si se reproduce un clip de audio o vídeo.
HoraDeInicio: la hora después del inicio de una secuencia de audio o de vídeo cuando la secuencia empieza a
reproducirse.
Time: posición actual del control multimedia.
TabIndex : orden de navegación del teclado en relación con otros controles.
Información sobre herramientas : texto explicativo que aparece cuando el usuario mantiene el puntero sobre un
control.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario (la pantalla si
no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario (la pantalla si no
hay un contenedor primario).

Funciones relacionadas
First( TableName )

Ejemplos
Reproducir un archivo de audio o de vídeo
1. En el menú Archivo, pulse o haga clic en Multimedia, pulse o haga clic en Vídeos o Audio y, luego, pulse
o haga clic en Examinar.
2. Busque el archivo que desea usar, pulse o haga clic en él y, luego, pulse o haga clic en Abrir.
3. Presione Esc para volver al área de trabajo predeterminada, agregue un control Audio o Vídeo y establezca
su propiedad Multimedia en el archivo que ha agregado.
¿No sabe cómo agregar y configurar un control?

4. Presione F5 y, a continuación, reproduzca la secuencia haciendo clic o pulsando en el botón de reproducción


del control que ha agregado.
TIP
El botón de reproducción del control Vídeo aparece cuando mantiene el puntero sobre el control.

5. Presione Esc para volver al área de trabajo predeterminada.


Reproducir un vídeo de YouTube
1. Agregue un control Vídeo y establezca su propiedad Multimedia en la dirección URL del vídeo de YouTube
entre comillas.
2. Presione F5 y, a continuación, reproduzca la secuencia haciendo clic o pulsando en el botón de reproducción del
control Vídeo.
3. Presione Esc para volver al área de trabajo predeterminada.
Reproducción de un vídeo desde Azure Media Services
1. Una vez que los vídeos se publiquen en AMS, copie la dirección URL del manifiesto. Inicie el punto de conexión
de streaming del servicio, si no lo ha hecho todavía.
2. Agregue un control Vídeo y establezca su propiedad Multimedia en la dirección URL del vídeo de AMS entre
comillas.
3. Presione F5 y, a continuación, reproduzca la secuencia haciendo clic o pulsando en el botón de reproducción del
control Vídeo.
4. Presione Esc para volver al área de trabajo predeterminada.

Directrices de accesibilidad
Alternativas de audio y vídeo
ShowControls debe configurarse en true para que los usuarios puedan escuchar o ver elementos multimedia a
su propio ritmo. Esto también permite a los usuarios activar o desactivar subtítulos y el modo de pantalla
completa en los reproductores de vídeo.
Deben proporcionarse subtítulos para los vídeos.
En el caso de los vídeos de YouTube, utilice las herramientas de creación proporcionadas por YouTube
para agregar subtítulos.
Para otros vídeos, cree subtítulos en formato WebVTT, cárguelos y configure el valor
ClosedCaptionsUrl con la ubicación de la dirección URL. Existen varias limitaciones. Es necesario que
los servidores que hospedan vídeo y subtítulos estén habilitados para CORS y los controlen mediante el
protocolo HTTPS. Los subtítulos no funcionan en Internet Explorer.
Considere la posibilidad de proporcionar una transcripción de audio o vídeo con uno de estos métodos:
1. Ponga el texto en un elemento Label y colóquelo junto al reproductor multimedia. Opcionalmente, puede
crear un elemento Button para alternar la presentación del texto.
2. Coloque el texto en otra pantalla. Cree un elemento Button que vaya a la pantalla y colóquelo junto al
reproductor multimedia.
3. Si la descripción es breve, puede colocarse en AccessibleLabel .
Contraste de color
Debe haber un contraste de color adecuado entre:
FocusedBorderColor y el color exterior
Image y los controles del reproductor multimedia (si procede)
Fill y los controles del reproductor multimedia (si el relleno está visible)
Proporcione subtítulos o transcripción si el contenido de vídeo tiene problemas de contraste de color.
Soporte técnico para el lector de pantalla
La propiedad AccessibleLabel debe estar presente.
Compatibilidad con el teclado
La propiedad TabIndex debe ser cero o superior para que los usuarios del teclado puedan desplazarse hasta él.
Los indicadores de foco deben ser claramente visibles. Use FocusedBorderColor y FocusedBorderThickness
para conseguirlo.
AutoStart debe ser false porque puede ser difícil para los usuarios del teclado detener la reproducción
rápidamente.
Control del lector de código de barras para
aplicaciones de lienzo
06/11/2019 • 4 minutes to read

Explora códigos de barras, códigos QR y códigos de matriz de datos en un dispositivo Android o iOS. No se
admite en un explorador Web.

Descripción
El control abre un escáner nativo en un dispositivo iOS o Android. El escáner detecta automáticamente un código
de barras, un código QR o un código de matriz de datos cuando está en la vista. El control no admite el examen en
un explorador Web.
El control admite códigos QR, códigos de matriz de datos y estos tipos de códigos de barras:
UPC A
UPC E
EAN 8
EAN 13
CÓDIGO 39
CÓDIGO 128
ITF
PDF 417

Propiedades principales
Valor : propiedad de salida que contiene el valor de texto del código que se analizó más recientemente.
Texto: texto que aparece en el botón que activa el analizador.
Alscan : cómo responde una aplicación cuando se examina correctamente un código de barras.

Propiedades adicionales
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos (View) o si está
deshabilitado (Disabled).
FlashlightEnabled : indica si la linterna se habilita automáticamente cuando se abre el escáner.
Alto : el alto del botón que activa el escáner.
PreferFrontCamera : indica si la cámara frontal, si está disponible, se utiliza para el examen.
Información sobre herramientas : texto explicativo que aparece cuando el usuario mantiene el puntero sobre
un control.
Tipo : el tipo de código que se ha detectado en el examen que se ha realizado correctamente.
Visible : indica si un control aparece o está oculto.
Ancho : el ancho del botón que activa el escáner.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario (la pantalla si
no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario (la pantalla si
no hay un contenedor primario).

Directrices de accesibilidad
Las mismas instrucciones para el control de botón se aplican al control de escáner de código de barras porque
es un botón que inicia el examen.
Alternativas visuales
El escáner de códigos de barras es un botón que no muestra el resultado del análisis. Considere la
posibilidad de mostrar el resultado del examen con un control etiqueta . Establezca la propiedad Text de la
etiqueta en la propiedad Value del escáner de códigos de barras. Establezca la propiedad Live de la
etiqueta en Educate para que se notifiquen los cambios a los usuarios de lector de pantalla. Este cambio
hace que el valor explorado sea accesible para todos los usuarios, independientemente de la capacidad
visual.
Los usuarios que tienen discapacidades visuales y del motor prefieren no señalar la cámara en un código
de barras. Considere la posibilidad de agregar otra forma de entrada, como un control entrada de texto ,
para que los usuarios escriban códigos de barras.
Control Botón en PowerApps
12/11/2019 • 13 minutes to read

Un control en el que el usuario puede hacer clic o pulsar para interactuar


con la aplicación.

Descripción
Configure la propiedad AlSeleccionar de un control Botón para ejecutar
una o más fórmulas cuando el usuario haga clic en el control o lo pulse.

Propiedades principales
OnSelect : indica cómo responde la aplicación cuando el usuario toca o
hace clic en un control.
Text : texto que aparece en un control o que el usuario escribe en un
control.

Propiedades adicionales
Align : la ubicación del texto respecto al centro horizontal de su control.
AutoDisableOnSelect (DesahabilitarAutomáticamenteAlSeleccionar):
deshabilita automáticamente el control mientras se está ejecutando el
comportamiento AlSeleccionar.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
Color : el color del texto en un control.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo
muestra datos (View) o si está deshabilitado (Disabled).
DisabledBorderColor : el color de un borde del control si la propiedad
DisplayMode del control está establecida en Disabled.
DisabledColor : el color del texto en un control si su propiedad
DisplayMode está establecida en Disabled.
DisabledFill : el color de fondo de un control si su propiedad
DisplayMode está establecida en Disabled.
FocusedBorderColor : el color del borde de un control cuando el control
recibe el foco.
FocusedBorderThickness : el grosor del borde de un control cuando el
control recibe el foco.
Fill : el color de fondo de un control.
Font : el nombre de la familia de fuentes en la que aparece el texto.
FontWeight : el peso del texto en un control: Bold, Semibold, Normal o
Lighter.
Height : la distancia entre los bordes superior e inferior de un control.
HoverBorderColor : el color de un borde del control cuando el usuario
mantiene el puntero del mouse sobre ese control.
HoverColor : el color del texto de un control cuando el usuario mantiene el
puntero del mouse sobre él.
HoverFill : el color de fondo de un control cuando el usuario mantiene el
puntero del mouse sobre él.
Italic : indica si el texto de un control está en cursiva.
RellenoInferior : distancia entre el texto de un control y el borde inferior
de ese control.
RellenoIzquierdo : distancia entre el texto de un control y el borde
izquierdo de ese control.
RellenoDerecho : distancia entre el texto de un control y el borde derecho
de ese control.
RellenoSuperior : distancia entre el texto de un control y el borde superior
de ese control.
Pressed: true mientras se presiona un control, en caso contrario false.
PressedBorderColor : el color de un borde del control cuando el usuario
toca o hace clic en ese control.
PressedColor : el color de texto de un control cuando el usuario toca o
hace clic en ese control.
PressedFill : el color de fondo de un control cuando el usuario toca o hace
clic en ese control.
RadiusBottomLeft : el grado al que se redondea la esquina inferior
izquierda de un control.
RadiusBottomRight : el grado al que se redondea la esquina inferior
derecha de un control.
RadiusTopLeft : el grado al que se redondea la esquina superior izquierda
de un control.
RadiusTopRight : el grado al que se redondea la esquina superior derecha
de un control.
Size : el tamaño de la fuente del texto que aparece en un control.
Strikethrough : indica si aparece una línea sobre el texto de un control.
TabIndex : orden de navegación del teclado en relación con otros
controles.
Información sobre herramientas : texto explicativo que aparece cuando
el usuario mantiene el puntero sobre un control.
Underline : indica si aparece una línea debajo del texto de un control.
VerticalAlign : la ubicación del texto en un control respecto al centro
vertical de ese control.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo
de su contenedor primario (la pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de
su contenedor primario (la pantalla si no hay un contenedor primario).

Funciones relacionadas
Navegar( NombrePantalla; ScreenTransitionValue )

Ejemplos
Agregar una fórmula básica a un botón
1. Agregue un control Entrada de texto y denomínelo Origen.
¿No sabe cómo agregar, nombrar y configurar un control?

2. Agregue un control Botón, establezca su propiedad Texto en


"Agregar" y su propiedad AlSeleccionar en esta fórmula:
UpdateContext({Total:Total + Value(Source.Text)})
¿Desea más información sobre la función UpdateContext u otras
funciones?
3. Agregue un control Etiqueta , establezca su propiedad Texto en
Total y presione F5.
4. Borre el texto predeterminado de Origen, escriba un número en él y,
a continuación, haga clic o pulse Agregar.
El control Etiqueta muestra el número que ha escrito.
5. Borre el número de Origen, escriba otro número y, a continuación,
haga clic o pulse Agregar.
El control Etiqueta muestra la suma de los números que ha escrito.
6. (opcional) Repita el paso anterior una o varias veces.
7. Para volver al área de trabajo predeterminada, presione Esc (o haga
clic o pulse el icono de cerrar en la esquina superior derecha).
Configuración de un botón con varias fórmulas
Agregue una fórmula que borra el control Entrada de texto entre las
entradas.
1. Establezca la propiedad TextoDeSugerencia de Origen en "Enter a
number" (Escriba un número).
2. Establezca la propiedad AlSeleccionar de Agregar en esta fórmula:
UpdateContext({Total:Total + Value(Source.Text)});;
UpdateContext({ClearInput: ""})

NOTE
Utilice el punto y coma " ; " para separar varias fórmulas.

3. Establezca la propiedad Predeterminad de Origen en ClearInput


(Borrar entrada).
4. Presione F5y, a continuación, pruebe la aplicación agregando varios
números juntos.
Integración de otro botón para restablecer el total
Agregue un segundo botón para borrar el total entre un cálculo y otro.
1. Agregue otro control Botón, establezca su propiedad Texto en
"Borrar" y su propiedad AlSeleccionar en esta fórmula:
UpdateContext ({Total:0})
2. Presione F5, sume varios números y luego haga clic o pulse Borrar
para restablecer el total.
Cambio de la apariencia de un botón
Cambio de la forma de un botón
De forma predeterminada, PowerApps crea un control Botón rectangular
con esquinas redondeadas. Puede realizar modificaciones básicas en la
forma de un control Botón estableciendo sus propiedades Altura , Ancho
, y Radius (Radio).

NOTE
Icons and Shapes (Iconos y formas) proporcionan una gran variedad de diseños
y pueden realizar algunas de las mismas funciones básicas que realizan los
controles Botón. Pero, Icons and shapes (Iconos y formas) no tiene una
propiedad Texto .

1. Agregue un control Botón, y establezca sus propiedades Altura y


Ancho en 300 para hacer un botón cuadrado grande.
2. Modifique las propiedades RadiusTopLeft
(RadioSuperiorIzquierdo), RadiusTopRight
(RadioSuperiorDerecho), RadiusBottomLeft
(RadioInferiorIzquierdo), y RadiusBottomRight
(RadioInferiorDerecho) para ajustar la cantidad de curvatura en cada
esquina. Estos son algunos ejemplos de formas diferentes, cada una
comenzando a partir de un botón cuadrado de 300 x 300:
Establezca los cuatro valores de Radius (Radio) en 150 para
crear un círculo.
Establezca los valores de RadiusTopLeft
(RadioSuperiorIzquierdo) y RadiusBottomRight
(RadioInferiorDerecho) en 300 para crear un Botón en forma de
hoja.
Establezca los valores de RadiusTopLeft
(RadioSuperiorIzquierdo) y RadiusTopRight
(RadioSuperiorDerecho)en 300 y los valores de
RadiusBottomLeft (RadioInferiorIzquierdo) y
RadiusBottomRight (RadioInferiorDerecho) en 100 para crear
un botón en forma de pestaña.
Cambio del color de un botón cuando se mantiene el puntero sobre él
De forma predeterminada, el color de relleno de un control Botón se
atenuará en un 20 % al mantener el mouse sobre él. Puede ajustar este
comportamiento cambiando la propiedad RellenoAlMantener , que usa
la función ColorFade . Si establece la fórmula ColorFade en un porcentaje
positivo, el color se vuelve más claro al mantener el mouse sobre el botón,
mientras que un porcentaje negativo hace que el color sea más oscuro.
Cambie el porcentaje de ColorFade en la propiedad
RellenoAlMantener de uno de los botones que creó y observe los
efectos.
También puede especificar el color de un control Botón estableciendo su
propiedad RellenoAlMantener en una fórmula que contenga la función
ColorValue función en lugar de la función ColorFade , como en
ColorValue("Red") .

NOTE
El valor de color puede ser cualquier definición de color CSS, ya sea un nombre o
un valor hexadecimal.

Reemplace la función ColorFade con una función ColorValue en uno


de los botones que creó y observe los efectos.

Directrices de accesibilidad
Contraste de color
Se aplican requisitos estándar de contraste de color.
Soporte técnico para el lector de pantalla
La propiedad Text debe existir.
Compatibilidad con el teclado
La propiedad TabIndex debe ser cero o superior para que los usuarios
del teclado puedan desplazarse hasta él.
Los indicadores de foco deben ser claramente visibles. Use
FocusedBorderColor y FocusedBorderThickness para conseguirlo.
Control Cámara en PowerApps
12/11/2019 • 6 minutes to read

Un control con el que el usuario puede realizar fotos mediante el uso de la cámara del dispositivo.

Descripción
Si agrega este control, el usuario puede actualizar un origen de datos con una o más fotos desde
donde se esté ejecutando la aplicación.

Propiedades principales
Cámara: en un dispositivo que tenga más de una cámara, el identificador numérico de la cámara que
usa la aplicación.

Propiedades adicionales
AccessibleLabel : etiqueta para lectores de pantalla. Debe describir la finalidad de realizar una foto.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
Brillo: indica la claridad que el usuario percibirá probablemente en una imagen.
Contraste: indica cómo el usuario puede distinguir fácilmente colores similares en una imagen.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos (View) o
si está deshabilitado (Disabled).
FocusedBorderColor : el color del borde de un control cuando el control recibe el foco.
FocusedBorderThickness : el grosor del borde de un control cuando el control recibe el foco.
Height : la distancia entre los bordes superior e inferior de un control.
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace clic en un control.
EnSecuencia: indica cómo responde la aplicación cuando la propiedad Stream está actualizada.
Foto: la imagen capturada cuando el usuario realiza una foto.
Stream: la imagen se actualiza automáticamente en la propiedad TasaSecuencia.
TasaSecuencia: la frecuencia de actualización de la imagen en la propiedad Stream, en
milisegundos. Este valor puede oscilar entre 100 (1/10 centésimas de segundo) y 3 600 000 (1 hora).
TabIndex : orden de navegación del teclado en relación con otros controles.
Información sobre herramientas : texto explicativo que aparece cuando el usuario mantiene el
puntero sobre un control.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario
(la pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario
(la pantalla si no hay un contenedor primario).

Funciones relacionadas
Patch( DataSource; BaseRecord; ChangeRecord )

Ejemplo
Agregar fotos a un control Galería de imágenes
1. Agregue un control Cámara, denomínelo MyCamera y establezca su propiedad
AlSeleccionar en esta fórmula:
Collect(MyPix; MyCamera.Photo)
¿No sabe cómo agregar, nombrar y configurar un control?
¿Desea más información sobre la función Recopilar u otras funciones?

2. Presione F5 y, a continuación, tome una foto haciendo clic o pulsando en MyCamera.


3. Agregue un control Galería vertical y, luego, cambie de tamaño su control Imagen , su
plantilla y el propio control Galería de imágenes para que quepa en la pantalla.
4. Establezca la propiedad Elementos del control Galería de imágenes en:
MyPix.
5. Establezca la propiedad Elementos del control Imagen de la galería en esta expresión:
ThisItem.Url
La foto que realizó aparece en el control Galería de imágenes.
6. Realice tantas fotografías como desee y, a continuación, presione Esc para volver al área de
trabajo predeterminada.
7. (opcional) Establezca la propiedad AlSeleccionar del control Imagen del control Galería de
imágenes en Remove(MyPix; ThisItem ) , presione F5 y luego pulse o haga clic en una foto
para quitarla.
Use la función SaveData para guardar las fotos localmente o la función Revisión para actualizar el
origen de datos.

Directrices de accesibilidad
Además de mostrar la fuente de la cámara, todo el control de cámara también funciona como un
botón que realiza una foto. Por lo tanto, las consideraciones sobre accesibilidad son parecidas a las de
los botones.
Alternativas de vídeo
Considere la posibilidad de agregar una forma alternativa de entrada para los usuarios con
discapacidades visuales. Por ejemplo, Agregar imagen para permitir que los usuarios carguen
una imagen desde sus dispositivos.
Contraste de color
Debe haber un contraste de color adecuado entre:
FocusedBorderColor y el color exterior
Soporte técnico para el lector de pantalla
La propiedad AccessibleLabel debe estar presente.
Compatibilidad con el teclado
La propiedad TabIndex debe ser cero o superior para que los usuarios del teclado puedan
desplazarse hasta él.
Los indicadores de foco deben ser claramente visibles. Use FocusedBorderColor y
FocusedBorderThickness para conseguirlo.
Control Card en PowerApps
07/10/2019 • 12 minutes to read

Proporciona la experiencia de edición y visualización de un solo campo de un


control Formulario de presentación o Formulario de edición .

Descripción
Los controles Formulario de presentación y Formulario de edición
funcionan como contenedores para mostrar y ver los registros enteros. Cada
contenedor puede contener un conjunto de controles Card que muestran
campos individuales o proporcionan una forma de actualizar esos campos.
Cada tarjeta tiene una propiedad DataField que especifica el campo del
registro en el que se trabaja.
Hay definidas tarjetas predefinidas para diferentes tipos de datos y
experiencias de usuario. Por ejemplo, puede haber una tarjeta para editar un
campo numérico con un control Entrada de texto , que resulta muy
adecuado para usar con el teclado. Otra tarjeta podría permitir la edición de
un número usando en su lugar un control Control deslizante . Con el control
de formulario seleccionado, puede seleccionar fácilmente, en el panel derecho,
una tarjeta basada en un campo.
Las tarjetas contienen controles. Los controles de una tarjeta constituyen la
experiencia para mostrar y editar un único campo. Por ejemplo, una tarjeta de
número puede estar formada por un control Etiqueta para proporcionar el
nombre para mostrar del campo y un control Entrada de texto para
proporcionar un editor para el valor del campo. La tarjeta puede tener
también un control Etiqueta que muestra los errores de validación que se
producen y un control Etiqueta para el asterisco común que indica que es un
campo obligatorio.
Puede personalizar los controles de una tarjeta predefinida: cambiar su
tamaño, moverla, ocultarla, agregarle controles y realizar otros cambios.
También puede comenzar con una tarjeta completamente en blanco, una
"tarjeta personalizada", a la cual agregar controles desde cero.
Las tarjetas predefinidas están bloqueadas de forma predeterminada. En una
tarjeta bloqueada, solo puede modificar determinadas propiedades de la
tarjeta o los controles que contiene. No se puede eliminar una tarjeta
bloqueada. Puede mostrar el bloqueo de tarjeta y desbloquearla en la pestaña
Ver de la vista Avanzado. Si una propiedad está bloqueada y no se puede
modificar, aparece un icono de candado junto a su nombre. Desbloquear una
tarjeta es una actividad avanzada y debe realizarse con cuidado, ya que la
generación automática de fórmulas ya no tendrá lugar para la tarjeta, y no se
puede volver a bloquear una tarjeta.
Dentro del contenedor del formulario el registro EsteElemento está
disponible y contiene todos los campos del registro. Por ejemplo, la propiedad
Default con frecuencia se establece en EsteElemento.FieldName.
Puede usar la referencia Parent para configurar un control que haga
referencia a las propiedades de una tarjeta. Por ejemplo, un control debe usar
Parent.Default para leer el estado inicial del campo del origen de datos. Al
usar Parent en lugar de acceder directamente a la información que desea, la
tarjeta está mejor encapsulada y puede cambiarla a un campo diferente sin
romper fórmulas internas.
Consulte Understand data cards (Introducción a las tarjetas de datos) para ver
ejemplos de cómo personalizar, desbloquear y crear tarjetas.

Propiedades principales
DataField: el nombre del campo dentro de un registro que esta tarjeta
muestra y edita.
Especifique el nombre como una sola cadena estática incluida entre
comillas dobles (por ejemplo, "Nombre" ), no una fórmula.
Para desenlazar una tarjeta, establezca su propiedad DataField en blanco.
Las propiedades Valid y Actualizar se ignoran en las tarjetas
desenlazadas.
Predeterminado : el valor inicial de un control antes de que lo cambie el
usuario.
Para cada control de una tarjeta, establezca esta propiedad en
Parent.Default para hacer referencia al valor predeterminado del campo
según el origen de datos. Por ejemplo, establezca la propiedad Default de
un control deslizante en Parent.Default para garantizar que el usuario
comienza con un valor genérico para ese control deslizante.
DisplayMode: los valores pueden ser Edit, View o Disabled. Permite
configurar si el control de la tarjeta permite entradas de usuario (Edit), solo
muestra datos (View) o si está deshabilitado (Disabled).
Mediante la configuración de esta propiedad, que está vinculada al
comportamiento predeterminado del formulario, se permite que se pueda
usar una sola tarjeta en los formularios Edit y View.
En el modo View, los controles secundarios como Entrada de texto ,
Lista desplegable y Selector de fecha solo mostrarán el valor del texto y
no representarán ninguna otra decoración ni elemento interactivo.
DisplayName: el nombre descriptivo de un campo en un origen de datos.
La función DataSourceInfo proporciona estos metadatos desde el origen
de datos.
Los controles de la tarjeta deben usar Parent.DisplayName para hacer
referencia al nombre del campo.
Error: el mensaje de error descriptivo para mostrar de este campo cuando se
produce un error de validación.
Esta propiedad se establece cuando se llama a SubmitForm.
El mensaje describe los problemas de validación basándose en los
metadatos del origen de datos y la comprobación de la propiedad
Required de la tarjeta.
Required: indica si una tarjeta, al editar el campo de un origen de datos, debe
contener un valor.
La función DataSourceInfo proporciona los metadatos necesarios desde
el origen de datos.
Los controles dentro de la tarjeta deben usar Parent.Required para
determinar si el campo de la tarjeta es obligatorio.
Actualizar: el valor para escribir en el origen de datos de un campo.
Use la fórmula de esta propiedad para extraer los valores de los controles
de edición de la tarjeta con el fin de escribir en el origen de datos. Por
ejemplo, establezca la propiedad Actualizar en Slider.Value para
actualizar el origen de datos con un valor del control deslizante de esa
tarjeta.
Width : la distancia entre los bordes derecho e izquierdo de un control.
WidthFit : indica si un control crece automáticamente en la horizontal para
rellenar el espacio vacío de un control de contenedor como el control
Formulario de edición . Si varias tarjetas tienen esta propiedad establecida
en true, el espacio se divide entre ellas. Para más información, consulte
Understand data form layout in Microsoft PowerApps (Introducción al diseño
de formularios de datos en Microsoft PowerApps).

Propiedades adicionales
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
Fill : el color de fondo de un control.
Height : la distancia entre los bordes superior e inferior de un control.
Valid: indica si un control Card o Edit form contiene entradas válidas listas
para enviarse al origen de datos.
Visible : indica si un control aparece o está oculto.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de
su contenedor primario (la pantalla si no hay un contenedor primario). Para un
control Tarjeta en un contenedor con varias columnas, esta propiedad
determina la columna en la que aparece la tarjeta.
Y : la distancia entre el borde superior de un control y el borde superior de su
contenedor primario (la pantalla si no hay un contenedor primario). Para un
control Tarjeta en un contenedor con varias filas, esta propiedad determina la
fila en la que aparece la tarjeta.

Ejemplos
Encontrará ejemplos en Tarjetas de datos y la introducción al diseño de los
formularios de datos.
Directrices de accesibilidad
Contraste de color
Debe haber un contraste de color adecuado entre:
Fill y cualquier control secundario. Por ejemplo, si una tarjeta contiene una
etiqueta y esta tiene relleno transparente, la propiedad Fill de la tarjeta se
convierte de hecho en el color de fondo de la etiqueta. Por tanto, debe
haber un contraste adecuado entre la propiedad Fill de la tarjeta y la
propiedad Color de la etiqueta.
Soporte técnico para el lector de pantalla
La propiedad DisplayName debe existir.
Control Casilla en PowerApps
12/11/2019 • 9 minutes to read

Un control que el usuario puede seleccionar o borrar para establecer su valor en true o false.

Descripción
El usuario puede especificar un valor booleano mediante este conocido control, que lleva décadas
usándose en las interfaces gráficas de usuario.

Propiedades principales
Predeterminado : el valor inicial de un control antes de que lo cambie el usuario.
Text : texto que aparece en un control o que el usuario escribe en un control.
Valor : el valor de un control de entrada.

Propiedades adicionales
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
CheckboxBackgroundFill: el color de fondo del cuadro que rodea la marca de verificación en un
control de casilla.
CheckboxBorderColor: el color del borde que rodea la marca de verificación en un control de
casilla.
TamañoDeCasilla: el ancho y el alto del cuadro que rodea la marca de verificación en un control
de casilla.
CheckmarkFill: el color de la marca de verificación en un control de casilla.
Color : el color del texto en un control.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos (View)
o si está deshabilitado (Disabled).
DisabledBorderColor : el color de un borde del control si la propiedad DisplayMode del control
está establecida en Disabled.
DisabledColor : el color del texto en un control si su propiedad DisplayMode está establecida
en Disabled.
DisabledFill : el color de fondo de un control si su propiedad DisplayMode está establecida en
Disabled.
Fill : el color de fondo de un control.
FocusedBorderColor : el color del borde de un control cuando el control recibe el foco.
FocusedBorderThickness : el grosor del borde de un control cuando el control recibe el foco.
Font : el nombre de la familia de fuentes en la que aparece el texto.
FontWeight : el peso del texto en un control: Bold, Semibold, Normal o Lighter.
Height : la distancia entre los bordes superior e inferior de un control.
HoverBorderColor : el color de un borde del control cuando el usuario mantiene el puntero del
mouse sobre ese control.
HoverColor : el color del texto de un control cuando el usuario mantiene el puntero del mouse
sobre él.
HoverFill : el color de fondo de un control cuando el usuario mantiene el puntero del mouse
sobre él.
Italic : indica si el texto de un control está en cursiva.
AlActivar: respuesta de una aplicación cuando el valor de una casilla o de un control Alternar
cambia a true.
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace clic en un control.
AlDesactivar: respuesta de una aplicación cuando el valor de una casilla o de un control Alternar
cambia a false.
RellenoInferior : distancia entre el texto de un control y el borde inferior de ese control.
RellenoIzquierdo : distancia entre el texto de un control y el borde izquierdo de ese control.
RellenoDerecho : distancia entre el texto de un control y el borde derecho de ese control.
RellenoSuperior : distancia entre el texto de un control y el borde superior de ese control.
PressedBorderColor : el color de un borde del control cuando el usuario toca o hace clic en ese
control.
PressedColor : el color de texto de un control cuando el usuario toca o hace clic en ese control.
PressedFill : el color de fondo de un control cuando el usuario toca o hace clic en ese control.
Reset : indica si un control vuelve a su valor predeterminado.
Size : el tamaño de la fuente del texto que aparece en un control.
Strikethrough : indica si aparece una línea sobre el texto de un control.
TabIndex : orden de navegación del teclado en relación con otros controles.
Información sobre herramientas : texto explicativo que aparece cuando el usuario mantiene el
puntero sobre un control.
Underline : indica si aparece una línea debajo del texto de un control.
VerticalAlign : la ubicación del texto en un control respecto al centro vertical de ese control.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor
primario (la pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario
(la pantalla si no hay un contenedor primario).
Funciones relacionadas
If( Condition; Result )

Ejemplo
1. Agregue un control Cuadro de texto, denomínelo chkReserve y establezca su propiedad
Texto para mostrar Reserve now.
¿No sabe cómo agregar, nombrar y configurar un control?

2. Agregue un control Selector de fecha y establezca su propiedad Visible en esta fórmula:


If(chkReserve.Value = true; true)
¿Desea más información sobre la función If u otras funciones?

3. Presione F5, pulse o haga clic en chkReserve para establecer su propiedad Valor en true y
luego pulse o haga clic de nuevo en chkReserve para establecer su propiedad Valor en
false.
El control Selector de fecha aparece cuando la propiedad Valor de chkReserve es true
pero no cuando es false.
4. Presione Esc para volver al área de trabajo predeterminada.

Directrices de accesibilidad
Contraste de color
Debe haber un contraste de color adecuado entre:
CheckmarkFill y CheckboxBackgroundFill
CheckboxBackgroundFill y Fill
CheckboxBackgroundFill y PressedFill
CheckboxBackgroundFill y HoverFill
Y esto, además de los requisitos estándar de contraste de color.
Soporte técnico para el lector de pantalla
La propiedad Text debe existir.
Compatibilidad con el teclado
La propiedad TabIndex debe ser cero o superior para que los usuarios del teclado puedan
desplazarse hasta él.
Los indicadores de foco deben ser claramente visibles. Use FocusedBorderColor y
FocusedBorderThickness para conseguirlo.
Controles Gráfico de columnas y Gráfico de líneas en
PowerApps
12/11/2019 • 10 minutes to read

Controles que muestran datos como gráficos con ejes x e y.

Descripción
Gráfico de columnas y Gráfico de líneas son controles agrupados. Cada grupo contiene tres controles: un
control Etiqueta para el título, el gráfico y un control Leyenda.

Propiedades principales del gráfico


Elementos : origen de datos que aparece en un control, como una galería, una lista o un gráfico.
NúmeroDeSeries: indica el número de columnas de datos reflejadas en un gráfico de columnas o de líneas.

Propiedades adicionales del gráfico


BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
Color : el color del texto en un control.
DisabledBorderColor : el color de un borde del control si la propiedad DisplayMode del control está establecida
en Disabled.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos (View) o si está
deshabilitado (Disabled).
Font : el nombre de la familia de fuentes en la que aparece el texto.
GridStyle: indica si un gráfico de columnas o de líneas muestra su eje x, su eje y, ambos o ninguno.
Height : la distancia entre los bordes superior e inferior de un control.
HoverBorderColor : el color de un borde del control cuando el usuario mantiene el puntero del mouse sobre ese
control.
ItemColorSet: color de cada punto de datos de un gráfico.
ItemsGap: indica la distancia entre las columnas de un gráfico de columnas.
La propiedad ItemsGap está disponible para el control Gráfico de columnas pero no para el control Gráfico
de líneas.
Markers: indica si un gráfico de columnas o de líneas muestra el valor de cada punto de datos.
MarkerSuffix: texto que aparece después de cada valor en un gráfico de columnas para el que la propiedad
Markers está establecida en true.
La propiedad MarkerSuffix está disponible para el control Gráfico de columnas pero no para el control
Gráfico de líneas.
AnchoDeBarraMínimo: el ancho mínimo posible de columnas en un gráfico de columnas.
La propiedad AnchoDeBarraMínimo está disponible para el control Gráfico de columnas pero no para el
control Gráfico de líneas.
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace clic en un control.
RellenoInferior : distancia entre el texto de un control y el borde inferior de ese control.
RellenoIzquierdo : distancia entre el texto de un control y el borde izquierdo de ese control.
RellenoDerecho : distancia entre el texto de un control y el borde derecho de ese control.
RellenoSuperior : distancia entre el texto de un control y el borde superior de ese control.
PressedBorderColor : el color de un borde del control cuando el usuario toca o hace clic en ese control.
SeriesAxisMax: el valor máximo del eje y para un gráfico de columnas o de líneas.
La propiedad SeriesAxisMax está disponible para el control Gráfico de columnas pero no para el control
Gráfico de líneas.
SeriesAxisMin: un número que determina el valor mínimo del eje y de un gráfico de columnas.
La propiedad SeriesAxisMin está disponible para el control Gráfico de columnas pero no para el control
Gráfico de líneas.
Size : el tamaño de la fuente del texto que aparece en un control.
TabIndex : orden de navegación del teclado en relación con otros controles.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario (la pantalla si
no hay un contenedor primario).
XLabelAngle: el ángulo de las etiquetas debajo del eje x de un gráfico de columnas o de líneas.
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario (la pantalla si no
hay un contenedor primario).
EjeYMáximo: el valor máximo del eje y de un gráfico de columnas o de líneas.
La propiedad YAxisMax está disponible para el control Gráfico de líneas pero no para el control Gráfico de
columnas.
EjeYMínimo: el valor mínimo del eje y de un gráfico de columnas o de líneas.
La propiedad YAxisMin está disponible para el control Gráfico de líneas pero no para el control Gráfico de
columnas.
YLabelAngle: el ángulo de las etiquetas junto al eje y de un gráfico de líneas o de columnas.

Funciones relacionadas
Max( DataSource; ColumnName )

Ejemplo
1. Agregue un control Botón y establezca su propiedad OnSelect en esta fórmula:
Collect(Revenue; {Year:"2013"; Europa:24000; Ganymede:22300; Callisto:21200}; {Year:"2014";
Europa:26500; Ganymede:25700; Callisto:24700};{Year:"2014"; Europa:27900; Ganymede:28300;
Callisto:25600})
¿No sabe cómo agregar y configurar un control?
¿Desea más información sobre la función Recopilar u otras funciones?

2. Presione F5, pulse o haga clic en el control Botón y presione Esc para volver al área de trabajo
predeterminada.
3. Agregue un control Gráfico de columnas o un control Gráfico de líneas, establezca su propiedad
Elementos en Ingresos y establezca su propiedad NúmeroDeSeries en 3.
El control muestra datos de ingresos para cada producto durante tres años.

Directrices de accesibilidad
Contraste de color
Debe haber un contraste de color adecuado entre:
Cada elemento de ItemColorSet
Cada elemento de ItemColorSet y el color de fondo
La propiedad Color y el color de fondo
Soporte técnico para el lector de pantalla
Debe haber un control Etiqueta inmediatamente delante del gráfico para que sirva de título.
Considere la posibilidad de agregar un resumen del gráfico. Por ejemplo, "El gráfico de líneas muestra un
aumento constante en las ventas entre marzo y agosto de este año".

NOTE
Los gráficos y el control Leyenda están ocultos para los usuarios de lector de pantalla. Como alternativa, se les
presenta los datos en formato tabular. También pueden recorrer los botones que seleccionan datos en el gráfico.

Apoyo para deficiencia visual


Debe haber un control Leyenda si se muestra más de una serie.
Considere la posibilidad de establecer GridStyle en GridStyle.All, que muestra ambos ejes. Esto ayuda a que
todos los usuarios puedan determinar con precisión la escala de los datos.
Para el control Gráfico de columnas, considere la posibilidad de establecer Markers en true. Esto ayuda a los
usuarios con deficiencia visual a determinar el valor de una columna.
Compatibilidad con el teclado
La propiedad TabIndex debe ser cero o superior para que los usuarios del teclado puedan desplazarse hasta
él.

NOTE
Cuando los usuarios de teclado se desplazan al gráfico, pueden recorrer los botones que seleccionan datos del gráfico.
Control Columna en PowerApps
06/11/2019 • 3 minutes to read

Proporciona la representación de un solo campo en un control Tabla de datos.

Descripción
El control Tabla de datos muestra un conjunto de datos en formato tabular, y cada columna en ese formato
tabular se representa mediante un control Columna. El control Columna proporciona propiedades que el creador
de la aplicación puede usar para personalizar la apariencia y el comportamiento de la columna.

Funcionalidades
Ahora disponible
Cambie el ancho de un control Columna.
Cambie el texto de un control Columna.
Navegue pulsando o haciendo clic en el valor de un control Columna.
Aún no está disponible
Personalice el estilo de un control Columna.
Problemas conocidos
La propiedad Visible todavía no funciona.

Propiedades
DisplayName (NombreParaMostrar): el texto que aparece en el encabezado de la columna.

NOTE
El nombre de esta propiedad se cambiará pronto a HeaderText (TextoDeEncabezado).

IsHyperlink (EsHipervínculo): un valor que indica si los datos de la columna deben subrayarse para indicar
que se trata de un hipervínculo.
Ancho: la distancia entre los bordes derecho e izquierdo del control Columna.

Ejemplos
Cambio del tamaño de una columna
1. Cree una aplicación de tableta vacía.
2. En la pestaña Insertar, pulse o haga clic en Tabla de datos y cambie el tamaño del control Tabla de datos
de modo que cubra toda la pantalla.
3. En el panel derecho, pulse o haga clic en la flecha abajo a la derecha de No se ha seleccionado un origen
de datos y en Agregar un origen de datos.
4. En la lista de conexiones, pulse o haga clic en la conexión para la base de datos de Common Data Service.
5. En la lista de entidades, pulse o haga clic en Cuenta y en Conectar.
El control Tabla de datos se inicializa y muestra un conjunto de campos predeterminados.
6. Pulse o haga clic en la columna Nombre completo.

7. Arrastre el adorno del lado derecho para cambiar el tamaño del campo.

Directrices de accesibilidad
Soporte técnico para el lector de pantalla
La propiedad DisplayName debe existir.
Control de cuadro combinado en PowerApps
06/11/2019 • 7 minutes to read

Un control que permite a los usuarios seleccionar entre las opciones proporcionadas. Admite tanto la búsqueda
como la selección múltiple.

Descripción
Con un control de cuadro combinado puede buscar los elementos que va a seleccionar. La búsqueda se realiza
en el lado del servidor de la propiedad SearchField, por lo que el rendimiento no se ve afectado por orígenes de
datos muy grandes.
El modo de selección individual o múltiple se configura mediante la propiedad SelectMultiple.
Cuando se buscan elementos que se van a seleccionar, en todos los elementos puede elegir mostrar un valor de
datos único, dos valores o una imagen y dos valores (Persona) mediante la modificación de la configuración de
diseño en el panel Data (Datos).

Selector de personas
Para usar cuadro combinado como selector de personas, elija la plantilla Persona desde la configuración de
diseño del panel Data (Datos) y configure las propiedades de datos relacionadas que se mostrará para la
persona que aparece a continuación.

Propiedades principales
Items : el origen de datos del que se puede elegir.
DefaultSelectedItems : los elementos seleccionados iniciales antes de que el usuario interactúe con el control.
SelectedItems: lista de los elementos seleccionados resultante de la interacción con el usuario.
SelectMultiple: si el usuario puede seleccionar un solo elemento o varios.
IsSearchable: indica si el usuario puede buscar elementos antes de realizar la selección.
SearchFields: campos de datos del origen de datos en los que se busca cuando el usuario escribe texto. Para
buscar en varios campos, establezca ComboBox1.SearchFields = ["MyFirstColumn", "MySecondColumn"]

Propiedades adicionales
AccessibleLabel : etiqueta para lectores de pantalla.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
DisplayFields: lista de campos que se muestran en cada elemento que devuelve la búsqueda. Lo más fácil es
configurarlo mediante el panel Datos de la pestaña de la opción Propiedades.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos (View) o si está
deshabilitado (Disabled).
FocusedBorderColor : el color del borde de un control cuando el control recibe el foco.
FocusedBorderThickness : el grosor del borde de un control cuando el control recibe el foco.
Height : la distancia entre los bordes superior e inferior de un control.
InputTextPlaceholder: texto informativo que se muestra a los usuarios finales cuando no hay elementos
seleccionados.
OnChange: cómo responde la aplicación cuando el usuario cambia una selección.
OnNavigate: cómo responde la aplicación cuando el usuario hace clic en un elemento.
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace clic en un control.
TabIndex : orden de navegación del teclado en relación con otros controles.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario (la
pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario (la pantalla
si no hay un contenedor primario).

Ejemplo
1. En la pestaña Insertar , abra el menú controles y, a continuación, seleccione cuadro combinado.
2. En la pestaña propiedades del panel derecho, abra la lista seleccionar un origen de datos (junto a
elementos) y, a continuación, agregue o seleccione un origen de datos.
3. En la misma pestaña, seleccione Editar (junto a campos).
4. En el panel datos , abra la lista texto principal y, a continuación, seleccione la columna que desea
mostrar en el control de cuadro combinado .
5. Mientras mantiene presionada la tecla Alt, seleccione la flecha hacia abajo para abrir el control de
cuadro combinado .
El control muestra los datos de la columna especificada en el origen de datos que especificó.
6. opta Para mostrar el primer registro de forma predeterminada, establezca la propiedad
DefaultSelectedItems en esta expresión, reemplazando DataSource por el nombre del origen de
datos:
First(DataSource)

Directrices de accesibilidad
Contraste de color
Debe haber un contraste de color adecuado entre:
ChevronFill y ChevronBackground
ChevronHoverFill y ChevronHoverBackground
SelectionColor y SelectionFill
SelectionFill y Fill
SelectionTagColor y SelectionTagFill
Y esto, además de los requisitos estándar de contraste de color.
Soporte técnico para el lector de pantalla
La propiedad AccessibleLabel debe estar presente.

NOTE
En pantallas táctiles, los usuarios de lector de pantalla pueden desplazarse por el contenido del cuadro combinado
secuencialmente. El cuadro combinado actúa como botón que muestra u oculta su contenido cuando se
selecciona.

Compatibilidad con el teclado


La propiedad TabIndex debe ser cero o superior para que los usuarios del teclado puedan desplazarse
hasta él.
Los indicadores de foco deben ser claramente visibles. Use FocusedBorderColor y
FocusedBorderThickness para conseguirlo.

NOTE
La tecla de tabulación permite desplazarse hasta el cuadro combinado o fuera de él. Las teclas de dirección
permiten desplazarse por el contenido del cuadro combinado. La tecla escape cierra la lista desplegable cuando
está abierta.
Control contenedor en PowerApps (experimental)
05/11/2019 • 3 minutes to read

Proporciona la capacidad de crear una jerarquía.

IMPORTANT
Se trata de una característica experimental. Las características experimentales pueden cambiar radicalmente o desaparecer
por completo en cualquier momento. Para obtener más información, lea Descripción de las características experimentales y
de vista previa en PowerApps.

Descripción
El contenedor puede contener un conjunto de controles y tiene sus propias propiedades.
Puede empezar por insertar un contenedor en blanco y, a continuación, personalizarlo agregando controles a él,
cambiando su tamaño, moviéndolo, ocultándolo y realizando otros cambios. También puede empezar con una
serie de controles, seleccionarlos y agregarlos a un contenedor mediante el menú contextual de la vista de árbol o
hacer clic con el botón derecho en el lienzo.

Propiedades
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
Fill : el color de fondo de un control.
Height : la distancia entre los bordes superior e inferior de un control.
Width : la distancia entre los bordes derecho e izquierdo de un control.
Visible : indica si un control aparece o está oculto.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario (la pantalla si
no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario (la pantalla si
no hay un contenedor primario).

Limitaciones conocidas
Los contenedores no funcionan con componentes de canvas ni dentro de formularios.

Preguntas más frecuentes


¿Cuál es la diferencia entre un contenedor y un grupo? El grupo de creación es un concepto ligero que se usa
para desplazarse por los controles y editar de forma masiva propiedades similares de los controles del grupo. El
grupo de creación no afecta al diseño de la aplicación.
El control contenedor enviado previamente en experimental como un reemplazo para el grupo de creación
cambiado de nombre como grupo mejorado. Se cambió el nombre al control contenedor, ya que hay un valor en
un grupo de creación ligero y un control contenedor strutured con propiedades adicionales.
Control Tabla de datos en PowerApps
08/10/2019 • 11 minutes to read

Muestra un conjunto de datos en formato tabular.

Descripción
El control Tabla de datos muestra un conjunto de datos en un formato que incluye encabezados de columna
para cada campo que el control muestra. Como responsable de una aplicación, tiene control total sobre los
campos que aparecen y en qué orden. Al igual que en el control Galería, el control Tabla de datos mantiene
una propiedad Seleccionado que apunta a la única fila seleccionada. Por lo tanto, puede vincular el control
Tabla de datos a otros controles.

Funcionalidades
PowerApps implementó el control Tabla de datos el 5 de mayo de 2017. En esta sección se proporciona
información sobre las funcionalidades compatibles e incompatibles.
Ahora disponible
Los datos de un control Tabla de datos es de solo lectura.
En los controles Tabla de datos siempre se selecciona una única fila.
Vincule un control Tabla de datos a un origen de datos local o conectado.
Ajuste el ancho de las columnas del control Tabla de datos mientras se ejecuta la aplicación, aunque los
cambios no se guardan.
En el control Tabla de datos aparece un conjunto de campos predeterminados cuando se vincula a un
conector con esta funcionalidad implementada, como Common Data Service. A continuación, puede mostrar
u ocultar estos y otros campos según sea necesario.
Personalice el ancho de la columna y el texto de encabezado.
Muestre los hipervínculos en un control Tabla de datos.
Copie y pegue un control Tabla de datos.
Aún no está disponible
Personalice el estilo de las columnas individuales.
Agregue un control Tabla de datos a un control de formulario.
Cambie el alto de todas las filas.
Muestre imágenes en un control Tabla de datos.
Muestre campos de entidades relacionadas.
Utilice la funcionalidad integrada para filtrar y ordenar los datos por encabezado de columna.
Agregue un control Tabla de datos a un control de formularioGalería.
Edite datos en el control Tabla de datos.
Seleccione varias filas.
Problemas conocidos
No aparecen datos al usar la función FirstN en la propiedad Elementos.

Propiedades principales
Elementos: el origen de datos que aparece en el control Tabla de datos.
Seleccionado: la fila seleccionada en el control Tabla de datos.

Otras propiedades
ColorDeLosBordes: el color del borde del control Tabla de datos.
EstiloDelBorde: el estilo del borde del control Tabla de datos. Las opciones son Sólido, Rayado,
Punteado y Ninguno.
GrosorDelBorde: el grosor del borde del control Tabla de datos.
Color: el color de texto predeterminado para todas las filas de datos.
Relleno: el color de fondo predeterminado para todas las filas de datos.
Fuente: la fuente predeterminada para todas las filas de datos.
EspesorDeFuente: el espesor de fuente predeterminado para todas las filas de datos.
HeadingColor (ColorDeEncabezado): el color del texto de los encabezados de columna.
HeadingFill (RellenoDeEncabezado): el color de fondo de los encabezados de columna.
HeadingFont (FuenteDeEncabezado): la fuente de los encabezados de columna.
HeadingFontWeight (EspesorDeFuenteDeEncabezado): el espesor de fuente de los encabezados de
columna.
HeadingSize (TamañoDeEncabezado): el tamaño de fuente de los encabezados de columna.
Altura: la distancia entre los bordes superior e inferior del control Tabla de datos.
ColorAlMantener: el color del texto de la fila a la cual apunta el puntero del mouse.
RellenoAlMantener: el color del fondo de la fila a la cual apunta el puntero del mouse.
NoDataText (SinTextoEnLosDatos): el mensaje que el usuario recibe cuando no hay registros para mostrar
en el control Tabla de datos.
SelectedColor (ColorSeleccionado): el color del texto de la fila seleccionada.
SelectedFill (RellenoSeleccionado): el color de fondo de la fila seleccionada.
Tamaño: el tamaño de fuente predeterminado para todas las filas de datos.
Visible: un valor que determina si el control Tabla de datos aparece o está oculto.
Ancho: la distancia entre los bordes derecho e izquierdo del control Tabla de datos.
X: la distancia entre el borde izquierdo del control Tabla de datos y el borde izquierdo de su contenedor
principal (o el borde izquierdo de la pantalla si no hay contenedor principal).
Y: la distancia entre el borde superior del control Tabla de datos y el borde superior de su contenedor
principal (o el borde superior de la pantalla si no hay contenedor principal).

Funciones relacionadas
Filtro (Origen de datos, Fórmula) (Origen de datos, Fórmula)
Búsqueda (Origen de datos; SearchString [BuscarCadena]; Columna) (Origen de datos, SearchString
[BuscarCadena], Columna)

Ejemplos
Uso básico
1. Cree una aplicación de tableta vacía.
2. En la pestaña Insertar, pulse o haga clic en Tabla de datos.
Se agrega un control Tabla de datos a la pantalla.
3. Cambie el nombre de SalesOrderTable (TablaDePedidosDeVentas) del control Tabla de datos y
auméntele el tamaño de modo que cubra toda la pantalla.
4. En el panel derecho, haga clic o pulse en la flecha abajo a la derecha del texto No se ha seleccionado
un origen de datos y en Agregar un origen de datos.

5. En la lista de conexiones, pulse o haga clic en la conexión para la base de datos de Common Data
Service.

6. En la lista de entidades, haga clic o pulse en Pedido de ventas y en Conectar.


El control Tabla de datos está ahora conectado al origen de datos Pedido de ventas. En el control
Tabla de datos aparecen varios campos iniciales, ya que se usa un conector que admite esa
funcionalidad.

7. En el panel derecho, seleccione una o más casillas para mostrar u ocultar campos.
Por ejemplo, seleccione la casilla junto al campo CustomerPurchaseOrderReference
(ReferenciaDelPedidoDeCompraDelCliente) para ocultarlo.
8. Para volver a ordenar los campos, arrástrelos hacia arriba o hacia abajo en el panel derecho.
El control SalesOrderTable (TablaDePedidosDeVentas) muestra los campos en el orden especificado.

Cambio de estilo del encabezado para el control Tabla de datos


1. Con el control Tabla de datos seleccionado, pulse o haga clic en la pestaña Avanzado en el panel
derecho.
2. Pulse o haga clic en el campo para la propiedad HeadingFill (RellenoDeEncabezado) y cambie el valor a
RGBA (62;96;170;1) .
3. Pulse o haga clic en el campo para la propiedad HeadingColor (ColorDeEncabezado) y cambie el valor
a White (Blanco).
4. Pulse o haga clic en el campo para la propiedad HeadingSize (TamañoDeEncabezado) y cambie el valor
a 14.
Conexión de un control Tabla de datos a otro control
1. Agregue un control Formulario de edición a la pantalla.
2. Cambie el tamaño de los controles Tabla de datos y Editar formulario de forma que el control Tabla
de datos aparezca en la parte izquierda de la pantalla y el control Editar formulario, en la parte
derecha.

3. Con Form1 seleccionado, en el panel derecho, cambie el número de columnas a 1.


4. Conecte Form1 al origen de datos Pedido de ventas.
En Form1 aparecen varios campos iniciales.
5. En el panel derecho, pulse o haga clic en la pestaña Avanzado.
6. Establezca la propiedad Elementos De Form1 en SalesOrderTable.Selected
(TablaDePedidosDeVentas.Seleccionado).
Form1 muestra información de la fila que está seleccionada en el control Tabla de datos.

Directrices de accesibilidad
Contraste de color
Debe haber un contraste de color adecuado entre:
Color y Fill
HeadingColor y HeadingFill
SelectedColor y SelectedFill
HoverColor y HoverFill
Y esto, además de los requisitos estándar de contraste de color.
Soporte técnico para el lector de pantalla
La propiedad NoDataText debe existir.
Control Selector de fecha en PowerApps
12/11/2019 • 8 minutes to read

Un control en el que el usuario puede hacer clic o pulsar para especificar una fecha.

Descripción
Si agrega un control Selector de fecha en lugar de un control Entrada de texto , ayuda a garantizar
que el usuario especifica una fecha en el formato correcto.

Propiedades principales
DefaultDate (FechaPred): el valor inicial de un control de fecha a menos que el usuario lo modifique.
SelectedDate: la fecha seleccionada actualmente en un control de fecha. Esta fecha se representa en
la hora local.
Formato: el formato de texto en el que el control muestra la fecha y el usuario especifica la fecha.
Puede establecer esta propiedad en FechaCorta (valor predeterminado) o FechaLarga para dar
formato a las fechas según la propiedad Lenguaje de este control. También puede establecer esta
propiedad en una expresión, como yyyy/mm/dd si desea el mismo formato con independencia del
lenguaje. Por ejemplo:
El control muestra 12/31/2017 si el usuario pulsa o hace clic en el último día de 2017, la
propiedad Formato está establecida en FechaCorta y la propiedad Idioma está establecida en
en-us.
El control muestra dimanche 31 decembre 2017 si el usuario pulsa o hace clic en el último día
de 2017, la propiedad Formato está establecida en FechaLarga y la propiedad Idioma está
establecida en fr-fr.
Idioma : determina el idioma que se usa para dar formato a las fechas, incluidos los nombres de los
meses. Si no se especifica esta propiedad, la configuración del dispositivo del usuario determina el
idioma. Los valores admitidos son "EN -US" y "FR".

Propiedades adicionales
AccessibleLabel : etiqueta para lectores de pantalla.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
Color : el color del texto en un control.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos (View ) o si
está deshabilitado (Disabled).
DisabledBorderColor : el color de un borde del control si la propiedad DisplayMode del control
está establecida en Disabled.
DisabledColor : el color del texto en un control si su propiedad DisplayMode está establecida en
Disabled.
DisabledFill : el color de fondo de un control si su propiedad DisplayMode está establecida en
Disabled.
EndYear: el último año en el que el usuario puede establecer el valor de un control Selector de fecha.
Fill : el color de fondo de un control.
FocusedBorderColor : el color del borde de un control cuando el control recibe el foco.
FocusedBorderThickness : el grosor del borde de un control cuando el control recibe el foco.
Font : el nombre de la familia de fuentes en la que aparece el texto.
FontWeight : el peso del texto en un control: Bold, Semibold, Normal o Lighter.
Height : la distancia entre los bordes superior e inferior de un control.
IconFill: el color de primer plano del icono del selector de fecha.
IconBackground: el color de fondo del icono del selector de fecha.
InputTextPlaceholder : texto informativo que aparece si no se especifica ninguna fecha.
Italic : indica si el texto de un control está en cursiva.
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace clic en un control.
RellenoInferior : distancia entre el texto de un control y el borde inferior de ese control.
RellenoIzquierdo : distancia entre el texto de un control y el borde izquierdo de ese control.
RellenoDerecho : distancia entre el texto de un control y el borde derecho de ese control.
RellenoSuperior : distancia entre el texto de un control y el borde superior de ese control.
Size : el tamaño de la fuente del texto que aparece en un control.
StartYear: el primer año en el que el usuario puede establecer el valor de un control Selector de
fecha.
TabIndex : orden de navegación del teclado en relación con otros controles.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario
(la pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario (la
pantalla si no hay un contenedor primario).

Funciones relacionadas
Año ( FechaHoraNúmero )

Ejemplo
1. Agregue un control Selector de fecha y denomínelo Deadline.
¿No sabe cómo agregar, nombrar y configurar un control?

2. Agregue un control Label y establezca su propiedad Text en esta fórmula:


DateDiff(Today(); Deadline.SelectedDate) & " days to go!"
¿Desea más información sobre la función DateDiff u otras funciones?

3. Presione F5, elija una fecha en Deadline (Fecha límite) y, a continuación, pulse o haga clic en
Aceptar.
El control Etiqueta muestra el número de días entre hoy y la fecha que eligió.
4. Presione Esc para volver al área de trabajo predeterminada.

Directrices de accesibilidad
Contraste de color
Se aplican requisitos estándar de contraste de color.
Soporte técnico para el lector de pantalla
La propiedad AccessibleLabel debe estar presente.
Compatibilidad con el teclado
La propiedad TabIndex debe ser cero o superior para que los usuarios del teclado puedan
desplazarse hasta él.
Los indicadores de foco deben ser claramente visibles. Use FocusedBorderColor y
FocusedBorderThickness para conseguirlo.

TIP
Cuando el calendario esté abierto, presione Re Pág y Av Pág para desplazarse entre meses y MAYÚS + RE
PÁG y Mayús + Av Pág para navegar entre años.
Controles Formulario de presentación y Formulario
de edición en PowerApps
08/10/2019 • 22 minutes to read

Muestra, edición y creación de un registro en un origen de datos.

Descripción
Si agrega un control Formulario de presentación , el usuario puede mostrar todos los campos de un registro o
solo los campos que usted especifique. Si agrega un control Formulario de edición, el usuario puede editar esos
campos, crear un registro y guardar los cambios realizados en un origen de datos.

Si agrega un control Galería , puede configurarlo para mostrar una tabla en un origen de datos y luego configurar
un formulario para mostrar cualquier registro que el usuario seleccione en la galería. También puede agregar uno o
varios controles Botón que el usuario puede seleccionar para guardar las modificaciones, cancelar las
modificaciones y crear un registro. Al usar varios controles juntos, puede crear una solución completa.
Selección de registros
Para cada tipo de formulario, establezca su propiedad DataSource en una tabla de registros y establezca la
propiedad Elemento para mostrar un registro específico en esa tabla. Por ejemplo, puede establecer la propiedad
Elemento de un formulario en la propiedad SelectedItem de un control Galería . Cuando el usuario selecciona
un registro en la galería, aparece el mismo registro en el formulario, excepto que el formulario puede mostrar más
campos. Si el usuario vuelve a la galería y selecciona un registro diferente, la propiedad SelectedItem de la galería
cambia. Este cambio actualiza la propiedad Elemento del formulario, que mostrará el registro recién seleccionado.
También puede establecer la propiedad Elemento de un formulario mediante un control desplegable, como se
describe en Mostrar, editar o agregar un registro, o bien una función como Lookup o First. Por ejemplo, puede
establecer la propiedad Item en cualquiera de estas fórmulas para mostrar la entrada Fabrikam en la entidad
accounts en Common Data Service:
First(Accounts)

Lookup(Accounts; "Fabrikam" in name)

Cada control de formulario contiene uno o varios controles Tarjeta . Estableciendo la propiedad DataField de una
tarjeta, se especifica qué campo muestra esta tarjeta y otros detalles.
Creación de un registro
Cuando un control Formulario de edición se encuentra en modo Edición, el usuario puede actualizar el registro
que se especifica en la propiedad Elemento del formulario. Si se inspecciona, la propiedad Modo devuelve
Edición.
Cuando un control Formulario de edición se encuentra en modo Nuevo pero la propiedad Elemento se omite.
El formulario no muestra un registro existente; en su lugar, los valores de cada campo coinciden con los valores
predeterminados del origen de datos con el que ha configurado el formulario. La función NuevoFormulario hace
que un formulario cambie a este modo.
Por ejemplo, puede establecer la propiedad Texto de un botón para mostrar Nuevo y su propiedad
AlSeleccionar en una fórmula que incluya la función NuevoFormulario . Si el usuario selecciona ese botón, el
formulario cambia al modo Nuevo para que el usuario puede crear un registro a partir de los valores conocidos.
Un formulario vuelve a cambiar a modo Edición si es ejecuta la función ResetForm o la función SubmitForm se
ejecuta correctamente.
Puede establecer la propiedad Texto de un botón para mostrar Cancelar y su propiedad AlSeleccionar en una
fórmula que incluya la función ResetForm . Si el usuario selecciona ese botón, se descartan todos los cambios
en curso, y los valores en el formulario, una vez más, coinciden con los valores predeterminados del origen de
datos.
Puede establecer la propiedad Texto de un botón para mostrar Guardar cambios y su propiedad
AlSeleccionar en una fórmula que incluya la función SubmitForm . Si el usuario selecciona ese botón y se
actualiza el origen de datos, los valores en el formulario se restablecen a los valores predeterminados del origen
de datos.
Guardar cambios
Si crea un botón Guardar cambios tal y como se describe en la sección anterior, el usuario puede crear o actualizar
un registro y luego seleccionar ese botón para guardar esos cambios en el origen de datos. En su lugar, puede
configurar un control Imagen o algún otro control para realizar la misma tarea, siempre y cuando configure ese
control con la función SubmitForm . En cualquier caso, las propiedades Error, ErrorKind, OnSuccess, y
OnFailure proporcionan comentarios sobre el resultado.
Cuando la función SubmitForm se ejecuta, validará primero los datos que el usuario desea enviar. Si un campo
obligatorio no contiene un valor u otro valor no se ajusta a alguna otra restricción, las propiedades ErrorKind se
establecen y se ejecuta la fórmula OnFailure. Puede configurar el botón Guardar cambios u otro control de forma
que el usuario pueda seleccionarlo solo si los datos son válidos (es decir, si la propiedad Válido del formulario es
true). Tenga en cuenta que el usuario no solo tiene que corregir el problema sino que también tiene que volver a
seleccionar el botón Guardar cambios (o descartar los cambios seleccionando un botón Cancelar, como se
describió anteriormente) para restablecer las propiedades Error y ErrorKind.
Si los datos pasan la validación, SubmitForm los envía al origen de datos, lo que puede tardar algún tiempo
dependiendo de la latencia de red.
Si el envío se realiza correctamente, la propiedad Error se desactiva, la propiedad ErrorKind se establece en
ErrorKind.Noney se ejecuta la fórmula OnSuccess. Si el usuario creó un registro (es decir, si el formulario se
encontraba anteriormente en modo Nuevo), el formulario se cambia a modo Edición para que el usuario
pueda editar el registro recién creado o uno diferente.
Si se produce un error en el envío, la propiedad Error contiene un mensaje de error descriptivo del origen de
datos, en donde se explica el problema. La propiedad ErrorKind se establece como corresponda, dependiendo
del problema y se ejecuta la fórmula OnFailure.
Algunos orígenes de datos pueden detectar cuando hay dos personas tratando de actualizar el mismo registro a la
vez. En este caso, ErrorKind se establece en ErrorKind.Conflict, y la solución es actualizar el origen de datos con
los cambios del otro usuario y volver a aplicar los cambios realizados por este usuario.

TIP
Si ofrece un botón Cancelar en el formulario para que el usuario puede descartar los cambios en curso, agregue la función
ResetForm a la propiedad AlSeleccionar del botón, aunque dicha propiedad contenga también una función Navegar para
cambiar de pantalla. De lo contrario, el formulario conservará los cambios del usuario.

Diseño
De forma predeterminada, las tarjetas se colocan en una sola columna para las aplicaciones de teléfono y en tres
columnas para las aplicaciones de tableta. Puede especificar cuántas columnas tiene un formulario y si se deben
ajustar a ellas las tarjetas al configurar el formulario. Esta configuración no se expone en propiedades, porque se
usa únicamente para definir las propiedades X, Y y Width de las tarjetas.
Para más información, consulte Understand data form layout in Microsoft PowerApps (Introducción al diseño de
formularios de datos en Microsoft PowerApps).

Propiedades principales
DataSource: el origen de datos que contiene el registro que el usuario muestra, edita o crea.
Si no establece esta propiedad, el usuario no puede mostrar, editar o crear un registro, y no se proporcionan ni
metadatos adicionales ni la validación.
DefaultMode: el modo inicial del control de formulario. Consulte a continuación la descripción de Modo para
conocer los valores aceptables y sus significados.
DisplayMode: el modo que se utiliza para las tarjetas de datos y los controles del control de formulario.
Deriva de la propiedad Modo en la que se basa y no se puede establecer de forma independiente:

MODO DISPLAYMODE DESCRIPCIÓN

FormMode.Edit DisplayMode.Edit Las tarjetas de datos y los controles son


editables, y están listos para aceptar los
cambios de un registro.

FormMode.New DisplayMode.Edit Las tarjetas de datos y los controles son


editables, y están listos para aceptar un
nuevo registro.
MODO DISPLAYMODE DESCRIPCIÓN

FormMode.View DisplayMode.View Las tarjetas de datos y los controles no


son editables y están optimizados para
su visualización.

Error: un mensaje de error descriptivo para mostrar para este formulario cuando se produce un error en la función
SubmitForm .
Esta propiedad solo se aplica al control Formulario de edición.
Esta propiedad cambia solo cuando se ejecuta la función SubmitForm , EditForm, o ResetForm .
Si no se produce ningún error, esta propiedad está en blanco, y ErrorKind se establece en ErrorKind.None.
Cuando sea posible, el mensaje de error devuelto estará en el idioma del usuario. Algunos mensajes de error
proceden directamente del origen de datos y puede que no estén en el idioma del usuario.
ErrorKind: si se produce un error cuando se ejecuta SubmitForm, el tipo de error que se produjo:
Solo se aplica a un control Formulario de edición.
Esta propiedad no tiene la misma enumeración que la función Errores . Un control Formulario de edición
puede devolver estos valores:

ERRORKIND DESCRIPCIÓN

ErrorKind.Conflict Otro usuario ha cambiado el mismo registro, lo que produce


un conflicto de cambios. Ejecute la función Actualizar para
volver a cargar el registro e intente de nuevo el cambio.

ErrorKind.None El error es de un tipo desconocido.

ErrorKind.Sync El origen de datos informó de un error. Compruebe la


propiedad Error para obtener más información.

ErrorKind.Validation Se detectó un problema de validación general.

Elemento: el registro en el origen de datos que el usuario mostrará o editará.


LastSubmit: el último registro enviado correctamente, incluidos los campos generada por el servidor.
Esta propiedad solo se aplica al control Formulario de edición.
Si el origen de datos genera automáticamente o calcula cualquier campo, como un campo de identificador con
un número único, la propiedad LastSubmit tendrá este nuevo valor después de que SubmitForm se ejecute
correctamente.
El valor de esta propiedad está disponible en la fórmula OnSuccess.
Modo: el control se encuentra en modo Edición o Nuevo.

MODO DESCRIPCIÓN

FormMode.Edit El usuario puede editar un registro mediante el formulario. Los


valores de las tarjetas del formulario se rellenan con el registro
existente, el usuario puede cambiarlos. Si la función
SubmitForm se ejecuta correctamente, se modifica un registro
existente.
MODO DESCRIPCIÓN

FormMode.New El usuario puede crear un registro mediante el formulario. Los


valores de los controles del formulario se rellenan previamente
con los valores predeterminados para un registro del origen de
datos. Si la función SubmitForm se ejecuta correctamente, se
crea un registro.

FormMode.View El usuario puede ver un registro mediante el formulario. Los


valores de los controles del formulario se rellenan previamente
con los valores predeterminados para un registro del origen de
datos.

El formulario cambia de modo Nuevo a modo Edición cuando se produce cualquiera de estos cambios:
El formulario se envía correctamente y se crea un registro. Si se establece la galería para mover
automáticamente la selección a este nuevo registro, el formulario estará en modo Edición para el registro
creado para que el usuario puede realizar cambios adicionales.
Se ejecuta la función EditForm .
Se ejecuta la función ResetForm . Por ejemplo, el usuario puede seleccionar un botón Cancelar que se haya
configurado con esta función.
OnFailure: la forma en la que responde una aplicación cuando una operación de datos ha sido incorrecta.
Esta propiedad solo se aplica al control Formulario de edición.
OnReset: la forma en la que responde una aplicación cuando se restablece un control Formulario de edición.
Esta propiedad solo se aplica al control Formulario de edición.
OnSuccess: la forma en la que responde una aplicación cuando una operación de datos se ha realizado
correctamente.
Esta propiedad solo se aplica al control Formulario de edición.
Sin guardar: True si el control Formulario de edición contiene cambios de usuario que no se guardaron.
Esta propiedad solo se aplica al control Formulario de edición.
Utilice esta propiedad para advertir al usuario antes de que pierda los cambios no guardados. Para impedir que
el usuario seleccione un registro diferente en un control Galería antes de guardar los cambios en el registro
actual, establezca la propiedad Deshabilitado en Form.Unsaved y, asimismo, deshabilite las operaciones de
actualización.
Actualizaciones: los valores que se van a escribir en el origen de datos para un registro cargado en un control de
formulario.
Esta propiedad solo se aplica al control Formulario de edición.
Utilice esta propiedad para extraer los valores de campo de las tarjetas en el control. A continuación, puede
utilizar estos valores para actualizar manualmente el origen de datos con una llamada de función Revisión u
otro método expuesto por una conexión. No es necesario utilizar esta propiedad si usa la función SubmitForm .
Esta propiedad devuelve un registro de valores. Por ejemplo, si el control de formulario contiene controles de
tarjeta para los campos de nombre y cantidad , y los valores de las propiedades de actualización de esas
tarjetas devuelven "widget" y 10, respectivamente, la propiedad actualizaciones del control de formulario
devolvería {nombre: "Widget"; cantidad: 10} .
Válido: indica si un control Tarjeta o Formulario de edición contiene entradas válidas listas para enviarse al
origen de datos.
Esta propiedad solo se aplica al control Formulario de edición.
La propiedad Válido de un control de formulario agrega las propiedades Válido de todos los controles
Tarjeta del formulario . La propiedad Válido de un formulario es true solamente si los datos en todas las
tarjetas de ese formulario son válidos, de lo contrario, la propiedad Válido del formulario es false.
Para habilitar un botón para guardar los cambios solo cuando los datos de un formulario sean válidos pero
aún no se hayan enviado, establezca la propiedad DisplayMode del botón en esta fórmula:
SubmitButton.DisplayMode = If(IsBlank( Form.Error ) || Form.Valid; DisplayMode.Edit;
DisplayMode.Disabled)

Propiedades adicionales
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
Fill : el color de fondo de un control.
Height : la distancia entre los bordes superior e inferior de un control.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario (la pantalla si
no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario (la pantalla si no
hay un contenedor primario).

Más información
Para información general integral sobre cómo funcionan los formularios, consulte la introducción a los formularios
de datos.

Directrices de accesibilidad
Soporte técnico para el lector de pantalla
Considere la posibilidad de agregar un encabezado al formulario mediante un control Etiqueta .
Control Lista desplegable en PowerApps
12/11/2019 • 10 minutes to read

Una lista que muestra solo el primer elemento a menos que el usuario la abra.

Descripción
Un control Lista desplegable conserva el estado real de la pantalla, en especial cuando la lista
contiene un gran número de opciones. El control toma una sola línea a menos que el usuario
seleccione las comillas angulares para revelar más opciones. El control muestra un máximo de
500 elementos.

Propiedades principales
Valor predeterminado : valor inicial de un control antes de que el usuario especifique otro.
Elementos : origen de datos que contiene los elementos que aparecen en el control. Si el origen
tiene varias columnas, establezca la propiedad Valor del control en la columna de datos que
quiere mostrar.
Valor: columna de datos que quiere mostrar en el control (por ejemplo, si un origen de datos
tiene varias columnas).
Seleccionado : el registro de datos que representa el elemento seleccionado.
AllowEmptySelection : indica si el control muestra una selección vacía si no se ha
seleccionado ningún elemento. Los usuarios de la aplicación también pueden borrar sus
elecciones seleccionando el elemento en blanco.

Propiedades adicionales
AccessibleLabel : etiqueta para lectores de pantalla.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
ChevronBackground: el color detrás de la flecha hacia abajo en una lista desplegable.
ChevronFill: el color de la flecha hacia abajo en una lista desplegable.
Color : el color del texto en un control.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos
(View) o si está deshabilitado (Disabled).
DisabledBorderColor : el color de un borde del control si la propiedad DisplayMode del
control está establecida en Disabled.
DisabledColor : el color del texto en un control si su propiedad DisplayMode está establecida
en Disabled.
DisabledFill : el color de fondo de un control si su propiedad DisplayMode está establecida
en Disabled.
Fill : el color de fondo de un control.
FocusedBorderColor : el color del borde de un control cuando el control recibe el foco.
FocusedBorderThickness : el grosor del borde de un control cuando el control recibe el foco.
Font : el nombre de la familia de fuentes en la que aparece el texto.
FontWeight : el peso del texto en un control: Bold, Semibold, Normal o Lighter.
Height : la distancia entre los bordes superior e inferior de un control.
HoverBorderColor : el color de un borde del control cuando el usuario mantiene el puntero del
mouse sobre ese control.
HoverColor : el color del texto de un control cuando el usuario mantiene el puntero del mouse
sobre él.
HoverFill : el color de fondo de un control cuando el usuario mantiene el puntero del mouse
sobre él.
Italic : indica si el texto de un control está en cursiva.
AlCambiar : indica cómo responde la aplicación cuando el usuario cambia el valor de un
control (por ejemplo, mediante el ajuste de un control deslizante).
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace clic en un control.
RellenoInferior : distancia entre el texto de un control y el borde inferior de ese control.
RellenoIzquierdo : distancia entre el texto de un control y el borde izquierdo de ese control.
RellenoDerecho : distancia entre el texto de un control y el borde derecho de ese control.
RellenoSuperior : distancia entre el texto de un control y el borde superior de ese control.
PressedBorderColor : el color de un borde del control cuando el usuario toca o hace clic en ese
control.
PressedColor : el color de texto de un control cuando el usuario toca o hace clic en ese control.
PressedFill : el color de fondo de un control cuando el usuario toca o hace clic en ese control.
Reset : indica si un control vuelve a su valor predeterminado.
SelectedText (desusado) : valor de cadena que representa el elemento seleccionado.
ColorDeSelección : color del texto de los elementos seleccionados en una lista o de la
herramienta de selección de un control de entrada manuscrita.
RellenoDeSelección : el color de fondo de uno o varios elementos seleccionados en una lista o
un área seleccionada de un control de entrada manuscrita.
Size : el tamaño de la fuente del texto que aparece en un control.
Strikethrough : indica si aparece una línea sobre el texto de un control.
TabIndex : orden de navegación del teclado en relación con otros controles.
Información sobre herramientas : texto explicativo que aparece cuando el usuario mantiene
el puntero sobre un control.
Underline : indica si aparece una línea debajo del texto de un control.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor
primario (la pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor
primario (la pantalla si no hay un contenedor primario).

Ejemplo
Lista sencilla
1. Agregue un control Lista desplegable y establezca su propiedad Items en esta
expresión:
["Seattle"; "Tokyo"; "London"; "Johannesburg"; "Rio de Janeiro"]

¿No sabe cómo agregar, nombrar y configurar un control?

2. Para mostrar los elementos de la lista, seleccione la flecha hacia abajo del control
mientras presiona la tecla Alt.
Lista de un origen de datos
Los principios de este procedimiento se aplican a cualquier origen de datos que proporcione
tablas pero, para seguir estos pasos exactamente, debe abrir un entorno para el que se ha
creado una base de datos de Common Data Service y se han agregado los datos de ejemplo.
1. Abra una aplicación en blanco y especifique la entidad Cuentas.
2. Agregue un control Lista desplegable y establezca su propiedad Elementos en esta
fórmula:
Distinct(Accounts; address1_city)

Esta fórmula muestra todas las ciudades de la entidad Cuentas. Si hay más de un
registro con la misma ciudad, la función Distinct oculta la duplicación en el control de
lista desplegable.
3. (opcional) Cambie el nombre del control Lista desplegable a Ciudades, agregue un
control vertical Galería y establezca la propiedad Elementos de la galería en esta
fórmula:
Filter(Accounts; address1_city = Cities.Selected.Value)

Esta función Filtro muestra únicamente aquellos registros de la entidad Cuentas en los
que la ciudad coincida con el valor seleccionado en el control Ciudades.

Directrices de accesibilidad
Contraste de color
Debe haber un contraste de color adecuado entre:
ChevronFill y ChevronBackground
ChevronHoverFill y ChevronHoverBackground
SelectionColor y SelectionFill
SelectionFill y Fill
Y esto, además de los requisitos estándar de contraste de color.
Soporte técnico para el lector de pantalla
La propiedad AccessibleLabel debe estar presente.
Compatibilidad con el teclado
La propiedad TabIndex debe ser cero o superior para que los usuarios del teclado puedan
desplazarse hasta él.
Los indicadores de foco deben ser claramente visibles. Use FocusedBorderColor y
FocusedBorderThickness para conseguirlo.
Controles
Formulario
de
presentación
y Formulario
de edición
en
PowerApps
08/10/2019 • 22 minutes to
read

Muestra, edición y creación de


un registro en un origen de
datos.

Descripción
Si agrega un control
Formulario de presentación ,
el usuario puede mostrar todos
los campos de un registro o solo
los campos que usted
especifique. Si agrega un control
Formulario de edición, el
usuario puede editar esos
campos, crear un registro y
guardar los cambios realizados
en un origen de datos.

Si agrega un control Galería ,


puede configurarlo para mostrar
una tabla en un origen de datos
y luego configurar un formulario
para mostrar cualquier registro
que el usuario seleccione en la
galería. También puede agregar
uno o varios controles Botón
que el usuario puede seleccionar
para guardar las modificaciones,
cancelar las modificaciones y
crear un registro. Al usar varios
controles juntos, puede crear
una solución completa.
Selección de registros
Para cada tipo de formulario,
establezca su propiedad
DataSource en una tabla de
registros y establezca la
propiedad Elemento para
mostrar un registro específico en
esa tabla. Por ejemplo, puede
establecer la propiedad
Elemento de un formulario en
la propiedad SelectedItem de
un control Galería . Cuando el
usuario selecciona un registro en
la galería, aparece el mismo
registro en el formulario,
excepto que el formulario puede
mostrar más campos. Si el
usuario vuelve a la galería y
selecciona un registro diferente,
la propiedad SelectedItem de
la galería cambia. Este cambio
actualiza la propiedad
Elemento del formulario, que
mostrará el registro recién
seleccionado.
También puede establecer la
propiedad Elemento de un
formulario mediante un control
desplegable, como se describe
en Mostrar, editar o agregar un
registro, o bien una función
como Lookup o First. Por
ejemplo, puede establecer la
propiedad Item en cualquiera
de estas fórmulas para mostrar
la entrada Fabrikam en la
entidad accounts en Common
Data Service:
First(Accounts)

Lookup(Accounts; "Fabrikam" in
name)

Cada control de formulario


contiene uno o varios controles
Tarjeta . Estableciendo la
propiedad DataField de una
tarjeta, se especifica qué campo
muestra esta tarjeta y otros
detalles.
Creación de un registro
Cuando un control Formulario
de edición se encuentra en
modo Edición, el usuario puede
actualizar el registro que se
especifica en la propiedad
Elemento del formulario. Si se
inspecciona, la propiedad Modo
devuelve Edición.
Cuando un control Formulario
de edición se encuentra en
modo Nuevo pero la propiedad
Elemento se omite. El
formulario no muestra un
registro existente; en su lugar, los
valores de cada campo coinciden
con los valores predeterminados
del origen de datos con el que
ha configurado el formulario. La
función NuevoFormulario
hace que un formulario cambie a
este modo.
Por ejemplo, puede establecer la
propiedad Texto de un botón
para mostrar Nuevo y su
propiedad AlSeleccionar en
una fórmula que incluya la
función NuevoFormulario . Si
el usuario selecciona ese botón,
el formulario cambia al modo
Nuevo para que el usuario
puede crear un registro a partir
de los valores conocidos.
Un formulario vuelve a cambiar
a modo Edición si es ejecuta la
función ResetForm o la función
SubmitForm se ejecuta
correctamente.
Puede establecer la
propiedad Texto de un botón
para mostrar Cancelar y su
propiedad AlSeleccionar en
una fórmula que incluya la
función ResetForm . Si el
usuario selecciona ese botón,
se descartan todos los
cambios en curso, y los
valores en el formulario, una
vez más, coinciden con los
valores predeterminados del
origen de datos.
Puede establecer la
propiedad Texto de un botón
para mostrar Guardar
cambios y su propiedad
AlSeleccionar en una
fórmula que incluya la
función SubmitForm . Si el
usuario selecciona ese botón
y se actualiza el origen de
datos, los valores en el
formulario se restablecen a
los valores predeterminados
del origen de datos.
Guardar cambios
Si crea un botón Guardar
cambios tal y como se describe
en la sección anterior, el usuario
puede crear o actualizar un
registro y luego seleccionar ese
botón para guardar esos
cambios en el origen de datos.
En su lugar, puede configurar un
control Imagen o algún otro
control para realizar la misma
tarea, siempre y cuando
configure ese control con la
función SubmitForm . En
cualquier caso, las propiedades
Error, ErrorKind, OnSuccess, y
OnFailure proporcionan
comentarios sobre el resultado.
Cuando la función SubmitForm
se ejecuta, validará primero los
datos que el usuario desea
enviar. Si un campo obligatorio
no contiene un valor u otro valor
no se ajusta a alguna otra
restricción, las propiedades
ErrorKind se establecen y se
ejecuta la fórmula OnFailure.
Puede configurar el botón
Guardar cambios u otro
control de forma que el usuario
pueda seleccionarlo solo si los
datos son válidos (es decir, si la
propiedad Válido del formulario
es true). Tenga en cuenta que el
usuario no solo tiene que
corregir el problema sino que
también tiene que volver a
seleccionar el botón Guardar
cambios (o descartar los
cambios seleccionando un botón
Cancelar, como se describió
anteriormente) para restablecer
las propiedades Error y
ErrorKind.
Si los datos pasan la validación,
SubmitForm los envía al origen
de datos, lo que puede tardar
algún tiempo dependiendo de la
latencia de red.
Si el envío se realiza
correctamente, la propiedad
Error se desactiva, la
propiedad ErrorKind se
establece en
ErrorKind.Noney se ejecuta
la fórmula OnSuccess. Si el
usuario creó un registro (es
decir, si el formulario se
encontraba anteriormente en
modo Nuevo), el formulario
se cambia a modo Edición
para que el usuario pueda
editar el registro recién
creado o uno diferente.
Si se produce un error en el
envío, la propiedad Error
contiene un mensaje de error
descriptivo del origen de
datos, en donde se explica el
problema. La propiedad
ErrorKind se establece como
corresponda, dependiendo
del problema y se ejecuta la
fórmula OnFailure.
Algunos orígenes de datos
pueden detectar cuando hay dos
personas tratando de actualizar
el mismo registro a la vez. En
este caso, ErrorKind se
establece en
ErrorKind.Conflict, y la
solución es actualizar el origen
de datos con los cambios del
otro usuario y volver a aplicar
los cambios realizados por este
usuario.
TIP
Si ofrece un botón Cancelar en
el formulario para que el usuario
puede descartar los cambios en
curso, agregue la función
ResetForm a la propiedad
AlSeleccionar del botón,
aunque dicha propiedad
contenga también una función
Navegar para cambiar de
pantalla. De lo contrario, el
formulario conservará los
cambios del usuario.

Diseño
De forma predeterminada, las
tarjetas se colocan en una sola
columna para las aplicaciones de
teléfono y en tres columnas para
las aplicaciones de tableta.
Puede especificar cuántas
columnas tiene un formulario y
si se deben ajustar a ellas las
tarjetas al configurar el
formulario. Esta configuración
no se expone en propiedades,
porque se usa únicamente para
definir las propiedades X, Y y
Width de las tarjetas.
Para más información, consulte
Understand data form layout in
Microsoft PowerApps
(Introducción al diseño de
formularios de datos en
Microsoft PowerApps).

Propiedades
principales
DataSource: el origen de datos
que contiene el registro que el
usuario muestra, edita o crea.
Si no establece esta
propiedad, el usuario no
puede mostrar, editar o crear
un registro, y no se
proporcionan ni metadatos
adicionales ni la validación.
DefaultMode: el modo inicial
del control de formulario.
Consulte a continuación la
descripción de Modo para
conocer los valores aceptables y
sus significados.
DisplayMode: el modo que se
utiliza para las tarjetas de datos
y los controles del control de
formulario.
Deriva de la propiedad Modo
en la que se basa y no se puede
establecer de forma
independiente:

DISPLAY DESCRIPC
MODO MODE IÓN

FormM Display Las


ode.Edit Mode.E tarjetas
dit de datos
y los
controles
son
editables,
y están
listos
para
aceptar
los
cambios
de un
registro.

FormM Display Las


ode.Ne Mode.E tarjetas
w dit de datos
y los
controles
son
editables,
y están
listos
para
aceptar
un
nuevo
registro.

FormM Display Las


ode.Vie Mode.Vi tarjetas
w ew de datos
y los
controles
no son
editables
y están
optimiza
dos para
su
visualizac
ión.

Error: un mensaje de error


descriptivo para mostrar para
este formulario cuando se
produce un error en la función
SubmitForm .
Esta propiedad solo se aplica
al control Formulario de
edición.
Esta propiedad cambia solo
cuando se ejecuta la función
SubmitForm , EditForm, o
ResetForm .
Si no se produce ningún
error, esta propiedad está en
blanco, y ErrorKind se
establece en
ErrorKind.None.
Cuando sea posible, el
mensaje de error devuelto
estará en el idioma del
usuario. Algunos mensajes
de error proceden
directamente del origen de
datos y puede que no estén
en el idioma del usuario.
ErrorKind: si se produce un
error cuando se ejecuta
SubmitForm, el tipo de error
que se produjo:
Solo se aplica a un control
Formulario de edición.
Esta propiedad no tiene la
misma enumeración que la
función Errores . Un control
Formulario de edición
puede devolver estos valores:

ERRORKIND DESCRIPCIÓN

ErrorKind.Con Otro usuario ha


flict cambiado el
mismo registro,
lo que produce
un conflicto de
cambios.
Ejecute la
función
Actualizar para
volver a cargar
el registro e
intente de
nuevo el
cambio.

ErrorKind.Non El error es de
e un tipo
desconocido.
ERRORKIND DESCRIPCIÓN

ErrorKind.Syn El origen de
c datos informó
de un error.
Compruebe la
propiedad
Error para
obtener más
información.

ErrorKind.Vali Se detectó un
dation problema de
validación
general.

Elemento: el registro en el
origen de datos que el usuario
mostrará o editará.
LastSubmit: el último registro
enviado correctamente, incluidos
los campos generada por el
servidor.
Esta propiedad solo se aplica
al control Formulario de
edición.
Si el origen de datos genera
automáticamente o calcula
cualquier campo, como un
campo de identificador con
un número único, la
propiedad LastSubmit
tendrá este nuevo valor
después de que
SubmitForm se ejecute
correctamente.
El valor de esta propiedad
está disponible en la fórmula
OnSuccess.
Modo: el control se encuentra
en modo Edición o Nuevo.

MODO DESCRIPCIÓN
MODO DESCRIPCIÓN

FormMode.Edi El usuario
t puede editar un
registro
mediante el
formulario. Los
valores de las
tarjetas del
formulario se
rellenan con el
registro
existente, el
usuario puede
cambiarlos. Si la
función
SubmitForm se
ejecuta
correctamente,
se modifica un
registro
existente.

FormMode.Ne El usuario
w puede crear un
registro
mediante el
formulario. Los
valores de los
controles del
formulario se
rellenan
previamente
con los valores
predeterminado
s para un
registro del
origen de datos.
Si la función
SubmitForm se
ejecuta
correctamente,
se crea un
registro.

FormMode.Vi El usuario
ew puede ver un
registro
mediante el
formulario. Los
valores de los
controles del
formulario se
rellenan
previamente
con los valores
predeterminado
s para un
registro del
origen de datos.

El formulario cambia de modo


Nuevo a modo Edición cuando
se produce cualquiera de estos
cambios:
El formulario se envía
correctamente y se crea un
registro. Si se establece la
galería para mover
automáticamente la selección
a este nuevo registro, el
formulario estará en modo
Edición para el registro
creado para que el usuario
puede realizar cambios
adicionales.
Se ejecuta la función
EditForm .
Se ejecuta la función
ResetForm . Por ejemplo, el
usuario puede seleccionar un
botón Cancelar que se haya
configurado con esta función.
OnFailure: la forma en la que
responde una aplicación cuando
una operación de datos ha sido
incorrecta.
Esta propiedad solo se aplica
al control Formulario de
edición.
OnReset: la forma en la que
responde una aplicación cuando
se restablece un control
Formulario de edición.
Esta propiedad solo se aplica
al control Formulario de
edición.
OnSuccess: la forma en la que
responde una aplicación cuando
una operación de datos se ha
realizado correctamente.
Esta propiedad solo se aplica
al control Formulario de
edición.
Sin guardar: True si el control
Formulario de edición
contiene cambios de usuario que
no se guardaron.
Esta propiedad solo se aplica
al control Formulario de
edición.
Utilice esta propiedad para
advertir al usuario antes de
que pierda los cambios no
guardados. Para impedir que
el usuario seleccione un
registro diferente en un
control Galería antes de
guardar los cambios en el
registro actual, establezca la
propiedad Deshabilitado en
Form.Unsaved y, asimismo,
deshabilite las operaciones
de actualización.
Actualizaciones: los valores
que se van a escribir en el origen
de datos para un registro
cargado en un control de
formulario.
Esta propiedad solo se aplica
al control Formulario de
edición.
Utilice esta propiedad para
extraer los valores de campo
de las tarjetas en el control. A
continuación, puede utilizar
estos valores para actualizar
manualmente el origen de
datos con una llamada de
función Revisión u otro
método expuesto por una
conexión. No es necesario
utilizar esta propiedad si usa
la función SubmitForm .
Esta propiedad devuelve un
registro de valores. Por
ejemplo, si el control de
formulario contiene controles
de tarjeta para los campos de
nombre y cantidad , y los
valores de las propiedades de
actualización de esas
tarjetas devuelven "widget" y
10, respectivamente, la
propiedad actualizaciones
del control de formulario
devolvería {nombre:
"Widget"; cantidad: 10} .
Válido: indica si un control
Tarjeta o Formulario de
edición contiene entradas
válidas listas para enviarse al
origen de datos.
Esta propiedad solo se
aplica al control
Formulario de edición.
La propiedad Válido de
un control de formulario
agrega las propiedades
Válido de todos los
controles Tarjeta del
formulario . La
propiedad Válido de un
formulario es true
solamente si los datos en
todas las tarjetas de ese
formulario son válidos, de
lo contrario, la propiedad
Válido del formulario es
false.
Para habilitar un botón
para guardar los cambios
solo cuando los datos de
un formulario sean
válidos pero aún no se
hayan enviado, establezca
la propiedad
DisplayMode del botón
en esta fórmula:
SubmitButton.Display
Mode = If(IsBlank(
Form.Error ) ||
Form.Valid;
DisplayMode.Edit;
DisplayMode.Disabled)

Propiedades
adicionales
BorderColor : el color de un
borde del control.
BorderStyle : si el borde del
control es Solid, Dashed,
Dotted o None.
BorderThickness : el grosor de
un borde del control.
Fill : el color de fondo de un
control.
Height : la distancia entre los
bordes superior e inferior de un
control.
Visible : indica si un control
aparece o está oculto.
Width : la distancia entre los
bordes derecho e izquierdo de
un control.
X : la distancia entre el borde
izquierdo de un control y el
borde izquierdo de su
contenedor primario (la pantalla
si no hay un contenedor
primario).
Y : la distancia entre el borde
superior de un control y el borde
superior de su contenedor
primario (la pantalla si no hay un
contenedor primario).

Más información
Para información general
integral sobre cómo funcionan
los formularios, consulte la
introducción a los formularios
de datos.

Directrices de
accesibilidad
Soporte técnico para el lector de
pantalla
Considere la posibilidad de
agregar un encabezado al
formulario mediante un
control Etiqueta .
Control Exportar y control Importar en PowerApps
12/11/2019 • 8 minutes to read

Controles para exportar datos a un archivo local y luego importarlos en otra aplicación de PowerApps.

Descripción
Si desea crear más de una aplicación que utiliza los mismos datos, pero no quiere compartir esos datos fuera de
esas aplicaciones, puede exportarlos e importarlos mediante un control Exportar y un control Importar. Cuando
se exportan datos, se crea un archivo comprimido que se puede copiar en otra máquina y leer en cualquier
programa que no sea PowerApps.

Advertencia
Al habilitar esta funcionalidad en la aplicación, puede exponerla a vulnerabilidades de seguridad y pérdida de datos.
Se recomienda aconsejar a los usuarios que importen solo los archivos reconocidos y de confianza y que exporten
únicamente los datos que no sean confidenciales.

Límite
La funcionalidad de exportación no es compatible con los navegadores web.

Propiedades principales
Data: el nombre de una colección que quiere exportar a un archivo local.
La propiedad Data está disponible para un control Exportar pero no para un control Importar.
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace clic en un control.

Propiedades adicionales
Align : la ubicación del texto respecto al centro horizontal de su control.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
Color : el color del texto en un control.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos (View) o si está
deshabilitado (Disabled).
DisabledBorderColor : el color de un borde del control si la propiedad DisplayMode del control está establecida
en Disabled.
DisabledColor : el color del texto en un control si su propiedad DisplayMode está establecida en Disabled.
DisabledFill : el color de fondo de un control si su propiedad DisplayMode está establecida en Disabled.
Fill : el color de fondo de un control.
FocusedBorderColor : el color del borde de un control cuando el control recibe el foco.
FocusedBorderThickness : el grosor del borde de un control cuando el control recibe el foco.
Font : el nombre de la familia de fuentes en la que aparece el texto.
FontWeight : el peso del texto en un control: Bold, Semibold, Normal o Lighter.
Height : la distancia entre los bordes superior e inferior de un control.
HoverBorderColor : el color de un borde del control cuando el usuario mantiene el puntero del mouse sobre ese
control.
HoverColor : el color del texto de un control cuando el usuario mantiene el puntero del mouse sobre él.
HoverFill : el color de fondo de un control cuando el usuario mantiene el puntero del mouse sobre él.
Italic : indica si el texto de un control está en cursiva.
Padding : la distancia entre el texto de un botón Exportar o Importar y los bordes de ese botón.
PressedBorderColor : el color de un borde del control cuando el usuario toca o hace clic en ese control.
PressedColor : el color de texto de un control cuando el usuario toca o hace clic en ese control.
PressedFill : el color de fondo de un control cuando el usuario toca o hace clic en ese control.
RadiusBottomLeft : el grado al que se redondea la esquina inferior izquierda de un control.
RadiusBottomRight : el grado al que se redondea la esquina inferior derecha de un control.
RadiusTopLeft : el grado al que se redondea la esquina superior izquierda de un control.
RadiusTopRight : el grado al que se redondea la esquina superior derecha de un control.
Size : el tamaño de la fuente del texto que aparece en un control.
Strikethrough : indica si aparece una línea sobre el texto de un control.
TabIndex : orden de navegación del teclado en relación con otros controles.
Text : texto que aparece en un control o que el usuario escribe en un control.
Underline : indica si aparece una línea debajo del texto de un control.
VerticalAlign : la ubicación del texto en un control respecto al centro vertical de ese control.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario (la pantalla si
no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario (la pantalla si no
hay un contenedor primario).

Ejemplo
1. Agregue un control Botón y establezca su propiedad OnSelect en esta fórmula:
ClearCollect(Products; {Name:"Europa"; Price:"10.99"}; {Name:"Ganymede"; Price:"12.49"};
{Name:"Callisto"; Price:"11.79"})
¿No sabe cómo agregar, nombrar y configurar un control?
¿Desea más información sobre la función ClearCollect u otras funciones?
2. Presione F5, haga clic o pulse el control Botón y luego presione Esc.
3. Agregue un control Exportar y establezca su propiedad Data en Productos.
4. Presione F5, haga clic o pulse el control Exportar y luego especifique el nombre del archivo en el que desea
exportar los datos.
5. Haga clic o pulse Guardar y luego presione Esc para volver al área de trabajo predeterminada.
6. En una aplicación nueva o existente, agregue un control Importar, asígnele el nombre MyData y establezca
su propiedad OnSelect en esta fórmula:
Collect(ImportedProducts; MyData.Data)
7. Presione F5, haga clic o pulse MyData, haga clic o pulse el archivo exportado y luego haga clic o pulse
Abrir.
8. Presione Esc, haga clic o pulse Colecciones en el menú Archivo y confirme que la aplicación actual tiene
los datos que ha exportado.

Directrices de accesibilidad
Se aplican las mismas directrices para Botón porque Exportar e Importar son simplemente botones
especializados.
Control Galería en aplicaciones
de lienzo
26/11/2019 • 10 minutes to read

Un control que contiene otros controles y muestra un conjunto de datos.

Descripción
Un control Galería puede mostrar varios registros de un origen de datos,
y cada registro puede contener varios tipos de datos. Por ejemplo, un
control Galería puede mostrar varios contactos y cada elemento mostrar
a su vez información de contacto que incluye un nombre, una dirección y
un número de teléfono para cada contacto. Cada campo de datos aparece
en un control independiente dentro del control Galería y esos controles
se pueden configurar en su plantilla. La plantilla aparece como primer
elemento dentro de la galería, en el borde izquierdo de un control Galería
en orientación horizontal o vertical y en la parte superior de un control
Galería en orientación vertical. Los cambios realizados en la plantilla se
reflejarán en todo el control Galería.
Están disponibles las plantillas predefinidas para mostrar imágenes y
texto en una galería, así como una galería para elementos de alto variable.

Límite
Si un usuario desplaza el control de la galería de alto flexible antes de
que se carguen todos los elementos, el elemento que está actualmente en
la vista se puede desplazar hacia abajo y fuera de la vista cuando finaliza
la carga de datos. Para evitar este problema, use un control de Galería
estándar en lugar de la variante de alto flexible .

Propiedades principales
Predeterminado : el elemento o registro del origen de datos que se va a
seleccionar en la galería al iniciarse la aplicación.
Elementos : origen de datos que aparece en un control, como una galería,
una lista o un gráfico.
Seleccionados: el elemento seleccionado.

Propiedades adicionales
Propiedad accessiblelabel : etiqueta de la galería (no los elementos que
contiene) para los lectores de pantalla. Debe describir cuáles es la lista de
elementos.
TodosLosElementos: todos los elementos de una galería, como valores
de control adicionales que sean parte de la plantilla de la galería.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
DisplayMode : indica si el control permite entradas de usuario (Edit),
solo muestra datos (View) o si está deshabilitado (Disabled).
Fill : el color de fondo de un control.
Height : la distancia entre los bordes superior e inferior de un control.
ItemAccessibleLabel : etiqueta de cada elemento de la galería para
lectores de pantalla. Debe describir qué es cada elemento.
PasoDeNavegación: indica lo lejos que se desplaza una galería si su
propiedad Mostrar Navegación está establecida en true y el usuario
selecciona una flecha de navegación de cualquier extremo de esa galería.
Seleccionable : indica si se pueden seleccionar elementos de la galería.
Cuando se establece en true, los lectores de pantalla identifican la Galería
como una lista seleccionable y se selecciona un elemento haciendo clic o
pulsando en él. Cuando se establece en false, los lectores de pantalla
identifican la Galería como una lista normal y al hacer clic o pulsar en un
elemento no se selecciona.
MostrarNavegación: indica si aparece una flecha en cada extremo de
una galería para que un usuario puede desplazarse por los elementos de
la galería haciendo clic en una flecha o pulsando en ella.
MostrarBarraDesplazamiento: indica si aparecerá una barra de
desplazamiento cuando el usuario mantenga el cursor sobre una galería.
Snap: indica si, cuando un usuario se desplaza por una galería, esta se
ajusta automáticamente para que aparezca el siguiente elemento en su
totalidad.
RellenoDePlantilla: el color de fondo de una galería.
EspaciadoInternoDePlantilla: la distancia entre los elementos de una
galería.
TamañoDePlantilla: el alto de la plantilla en una galería en orientación
vertical o el ancho de la plantilla en una galería en orientación horizontal o
vertical.
Transition: el efecto visual (Pop, Push o None) cuando el usuario
mantiene el puntero sobre un elemento de la galería.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
WrapCount: número de elementos que se muestran por fila o columna
en función del diseño horizontal o vertical.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo
de su contenedor primario (la pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de
su contenedor primario (la pantalla si no hay un contenedor primario).
Funciones relacionadas
Filter( DataSource; Formula )

Ejemplos
Mostrar y filtrar los datos
Mostrar texto
Mostrar imágenes
Filtrar datos mediante la selección de una opción de la lista
Filtrar datos mediante el ajuste de un control deslizante
Obtener datos del usuario
Obtener texto
Obtener imágenes
Obtener fotografías
Obtener sonidos
Obtener dibujos

Directrices de accesibilidad
Contraste de color
Si la finalidad de hacer clic en cualquier parte en un elemento de la galería
es seleccionarlo, debe haber un contraste de color adecuado entre:
BorderColor y el color de fuera de la galería (si hay un borde)
Fill y el color situado fuera de la galería (si hay un borde)
Soporte técnico para el lector de pantalla
La propiedad AccessibleLabel debe estar presente.

NOTE
Los lectores de pantalla anunciarán cuando cambien los elementos de
la galería. La propiedad AccessibleLabel también se menciona. De esta
forma, se proporciona contexto al anuncio y es incluso más importante
cuando hay varias galerías en la misma pantalla.

Cuando un elemento de la galería contiene varios controles, use


ItemAccessibleLabel para resumir el contenido del elemento de
la galería.
Establezca el valor de Selectable en true si desea que los usuarios
seleccionen un elemento de la galería. De lo contrario, establezca el
valor en false.
Cuando un elemento de la galería contiene varios controles, use
ItemAccessibleLabel para proporcionar un resumen del
contenido del elemento de la galería.
Selectable debe establecerse correctamente, en función de si los
usuarios están diseñados para seleccionar un elemento de la
galería.
Compatibilidad con el teclado
Considere la posibilidad de establecer ShowScrollbar en true. En
la mayoría de los dispositivos de pantalla táctil, la barra de
desplazamiento no se muestra hasta que comienza el
desplazamiento.
Si la finalidad de hacer clic en cualquier parte en un elemento de la
galería es seleccionarlo, debe haber también una forma de que los
usuarios de teclado seleccionen el elemento de la galería. Por
ejemplo, agregar un control Botón cuya propiedad OnSelect esté
establecida en Select(Parent) .

NOTE
Los controles situados fuera de la galería no se tienen en cuenta en el
orden de desplazamiento por el teclado dentro de la galería. Se tiene en
cuenta la propiedad TabIndex de los controles dentro de una galería.
Consulte las propiedades de accesibilidad para obtener más
información.
Control Texto HTML en PowerApps
12/11/2019 • 5 minutes to read

Un cuadro que muestra el texto y convierte las etiquetas HTML al formato.

Descripción
Un control Texto HTML no solo muestra texto sin formato y números, también convierte las etiquetas
HTML, como los espacios de no separación.

Propiedades principales
Color : el color del texto en un control.
Font : el nombre de la familia de fuentes en la que aparece el texto.
HtmlText: texto que aparece en un control de texto HTML y que puede contener etiquetas HTML.

Propiedades adicionales
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos (View) o si está
deshabilitado (Disabled).
DisabledBorderColor : el color de un borde del control si la propiedad DisplayMode del control está
establecida en Disabled.
DisabledFill : el color de fondo de un control si su propiedad DisplayMode está establecida en Disabled.
Fill : el color de fondo de un control.
Height : la distancia entre los bordes superior e inferior de un control.
HoverBorderColor : el color de un borde del control cuando el usuario mantiene el puntero del mouse
sobre ese control.
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace clic en un control.
RellenoInferior : distancia entre el texto de un control y el borde inferior de ese control.
RellenoIzquierdo : distancia entre el texto de un control y el borde izquierdo de ese control.
RellenoDerecho : distancia entre el texto de un control y el borde derecho de ese control.
RellenoSuperior : distancia entre el texto de un control y el borde superior de ese control.
Size : el tamaño de la fuente del texto que aparece en un control.
Información sobre herramientas : texto explicativo que aparece cuando el usuario mantiene el puntero
sobre un control.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario (la
pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario (la
pantalla si no hay un contenedor primario).

Funciones relacionadas
Buscar( FindString; WithinString )

Ejemplo
1. Agregue un control Etiqueta , llámelo Source y establezca su propiedad Texto en esta cadena:
"<p>Hemos&nbsp;realizado una tarea de globalización y localización particularmente
&quot;intensiva&quot;.<p>"
¿No sabe cómo agregar, nombrar y configurar un control?

1. Agregue un control Texto HTML y establezca su propiedad HtmlText en este valor:


Source.Text
El control Texto HTML muestra el mismo texto que el Etiqueta pero convierte las etiquetas en los
caracteres correspondientes.

Directrices de accesibilidad
La finalidad del texto HTML no es ser interactivo. Solo debe usarse para la visualización de texto.
Contraste de color
Debe haber un contraste de color adecuado entre:
Color y Fill
Texto con colores personalizados y su fondo
Soporte técnico para el lector de pantalla
La propiedad HtmlText debe existir.
Compatibilidad con el teclado
La propiedad HtmlText no debe contener elementos interactivos, como <button> , <a> o <input> . El
sistema de TabIndex en PowerApps no tiene en cuenta los elementos dentro de HtmlText.
Controles Forma e Icon de PowerApps
12/11/2019 • 7 minutes to read

Gráficos para los que puede configurar las propiedades de aspecto y comportamiento.

Descripción
Estos controles incluyen flechas, formas geométricas, iconos de acción y símbolos para los que puede configurar
propiedades como el relleno, el tamaño y la ubicación. También puede configurar su propiedad alseleccionar para
que la aplicación responda si el usuario selecciona el control.

Propiedades de clave (iconos y formas)


Fill : el color de fondo de un control.
Alseleccionar : cómo responde la aplicación cuando el usuario selecciona un control.

Propiedades de clave (solo iconos)


Icono : el tipo de icono que se va a mostrar (por ejemplo, ArrowDown o ShoppingCart).
Rotation : el número de grados que se va a girar el icono.
Color : el color del icono por nombre o valores RGBA.

Propiedades adicionales
AccessibleLabel : etiqueta para lectores de pantalla.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos (View) o si está
deshabilitado (Disabled).
FocusedBorderColor : el color del borde de un control cuando el control recibe el foco.
FocusedBorderThickness : el grosor del borde de un control cuando el control recibe el foco.
Height : la distancia entre los bordes superior e inferior de un control.
HoverFill : el color de fondo de un control cuando el usuario mantiene el puntero del mouse sobre él.
PressedBorderColor : el color del borde de un control cuando el usuario selecciona ese control.
PressedFill : el color de fondo de un control cuando el usuario selecciona ese control.
TabIndex : orden de navegación del teclado en relación con otros controles.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario (la pantalla si
no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario (la pantalla si no
hay un contenedor primario).
Funciones relacionadas
Navegar( NombrePantalla; TransiciónDePantalla )

Ejemplo
1. Asigne al control Pantalla predeterminado el nombre Target, agregue un control Etiqueta y establezca su
propiedad Texto para que muestre Target.
¿No sabe cómo agregar y configurar un control?

2. Agregue un control Pantalla y denomínelo Source.


3. En Source, agregue un control Forma y establezca su propiedad AlSeleccionar en esta fórmula:
Navigate(Target; ScreenTransition.Fade)

1. Presione F5 y, a continuación, seleccione el control forma .


Aparecerá la pantalla Target.
2. (opcional) Presione Esc para volver al área de trabajo predeterminada, agregue un control Forma a Target y
establezca la propiedad AlSeleccionar del control Forma en la siguiente fórmula:
Navigate(Source; ScreenTransition.Fade)

Directrices de accesibilidad
Contraste de color
Lo siguiente se aplica solo a gráficos que se usan como botones o no solo como decoración.
Para los iconos:
Color y Fill
Se aplican otros requisitos de contraste de color estándar (si se usan como botón)
Para las formas con bordes:
BorderColor y el color fuera del control
FocusedBorderColor y el color fuera del control (si se usa como botón)
Para las formas sin bordes:
Fill y el color fuera del control
PressedFill y el color fuera del control (si se usa como botón)
HoverFill y el color fuera del control (si se usa como botón)
Compatibilidad con el lector de pantalla
Propiedad accessiblelabel debe establecerse en una cadena que no esté vacía si el gráfico se utiliza como
botón o no solo para la decoración.
Propiedad accessiblelabel debe estar vacío o la cadena vacía "" si el gráfico proporciona información
redundante o es meramente para la decoración. Este valor hace que los lectores de pantalla omitan el
gráfico.
Por ejemplo, puede establecer la propiedad propiedad accessiblelabel de un icono de configuración en
configuración. Este icono no se utiliza como botón. Está junto a una etiqueta que también indica la
configuración. Los lectores de pantalla leerán el icono y la etiqueta como configuración, que es
innecesariamente detallado. En este caso, el icono no necesita un propiedad accessiblelabel .

IMPORTANT
Los lectores de pantalla leerán un icono o forma como botón si su propiedad accessiblelabel se establece en una cadena
vacía y su TabIndex se establece en cero o más. Estos iconos o formas se representan como botones.

Compatibilidad con el teclado


TabIndex debe ser cero o superior si el gráfico se utiliza como botón. Si establece este valor para un icono o
una forma, los usuarios del teclado pueden desplazarse hasta él.
Los indicadores de foco deben ser claramente visibles si el gráfico se utiliza como botón. Use
FocusedBorderColor y FocusedBorderThickness para lograr este resultado.

NOTE
Cuando TabIndex es cero o mayor, el icono o forma se representa como un botón. Su apariencia no cambia, pero los
lectores de pantalla identificarán correctamente la imagen como un botón. Cuando TabIndex es menor que cero, el
icono o forma se identifica como una imagen.
Control Imagen en PowerApps
12/11/2019 • 11 minutes to read

Un control que muestra una imagen desde, por ejemplo, un archivo local o un origen de
datos.

Descripción
Si agrega uno o varios controles Imagen controles a la aplicación, puede mostrar
imágenes individuales que no forman parte de un conjunto de datos, o puede incorporar
imágenes desde registros de orígenes de datos.

Propiedades principales
Imagen : el nombre de la imagen que aparece en un control de imagen, audio o
micrófono.

Propiedades adicionales
AccessibleLabel : etiqueta para lectores de pantalla.
ApplyEXIFOrientation: si se aplica automáticamente la orientación especificada en los
datos EXIF insertados en la imagen.
AutoDisableOnSelect: deshabilita automáticamente el control mientras se ejecuta el
comportamiento AlSeleccionar.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
CalculateOriginalDimensions: habilita las propiedades AltoOriginal y
AnchoOriginal.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos
(View) o si está deshabilitado (Disabled).
DisabledBorderColor : el color de un borde del control si la propiedad DisplayMode
del control está establecida en Disabled.
DisabledFill : el color de fondo de un control si su propiedad DisplayMode está
establecida en Disabled.
Fill : el color de fondo de un control.
FlipHorizontal: si la imagen se voltea horizontalmente antes de mostrarla.
FlipVertical: si la imagen se voltea verticalmente antes de mostrarla.
FocusedBorderColor : el color del borde de un control cuando el control recibe el foco.
FocusedBorderThickness : el grosor del borde de un control cuando el control recibe el
foco.
Height : la distancia entre los bordes superior e inferior de un control.
HoverBorderColor : el color de un borde del control cuando el usuario mantiene el
puntero del mouse sobre ese control.
HoverFill : el color de fondo de un control cuando el usuario mantiene el puntero del
mouse sobre él.
PosiciónDeLaImagen : posición (Rellenar, Ajustar, Estirar, Icono o Centrar) de una
imagen en una pantalla o un control, si no tiene el mismo tamaño que la imagen.
ImageRotation: cómo girar la imagen antes de mostrarla. Los valores pueden ser: no, 90
grados a la derecha, 90 grados a la izquierda y 180 grados a la derecha.
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace clic en un
control.
AltoOriginal: la altura original de una imagen, habilitada con la propiedad
CalculateOriginalDimensions.
AnchoOriginal: el ancho original de una imagen, habilitada con la propiedad
CalculateOriginalDimensions.
RellenoInferior : distancia entre el texto de un control y el borde inferior de ese control.
RellenoIzquierdo : distancia entre el texto de un control y el borde izquierdo de ese
control.
RellenoDerecho : distancia entre el texto de un control y el borde derecho de ese control.
RellenoSuperior : distancia entre el texto de un control y el borde superior de ese control.
PressedBorderColor : el color de un borde del control cuando el usuario toca o hace clic
en ese control.
PressedFill : el color de fondo de un control cuando el usuario toca o hace clic en ese
control.
RadiusBottomLeft : el grado al que se redondea la esquina inferior izquierda de un
control.
RadiusBottomRight : el grado al que se redondea la esquina inferior derecha de un
control.
RadiusTopLeft : el grado al que se redondea la esquina superior izquierda de un control.
RadiusTopRight : el grado al que se redondea la esquina superior derecha de un control.
TabIndex : orden de navegación del teclado en relación con otros controles.
Información sobre herramientas : texto explicativo que aparece cuando el usuario
mantiene el puntero sobre un control.
Transparencia: el grado en el los controles permanecen visibles detrás de una imagen.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su
contenedor primario (la pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor
primario (la pantalla si no hay un contenedor primario).

Funciones relacionadas
Quitar( DataSource; EsteElemento)

Ejemplos
Mostrar una imagen desde un archivo local
1. En el menú Archivo, pulse o haga clic en Multimedia y, después, en Examinar.
2. Pulse o haga clic en el archivo de imagen que desea agregar, pulse o haga clic en
Abrir, y, a continuación, presione Esc para volver al área de trabajo predeterminada.
3. Agregue un control Imagen y en su propiedad Image escriba el nombre del
archivo que agregó.
¿No sabe cómo agregar y configurar un control?

El control Imagen muestra la imagen que ha especificado.


Mostrar un conjunto de imágenes desde un origen de datos
1. Descargue este archivo de Excely guárdelo en el dispositivo local.
2. En PowerApps Studio, cree o abra una aplicación y, a continuación, haga clic o pulse
Agregar origen de datos en el panel derecho.
Si Agregar origen de datos no aparece en el panel de la derecha, pulse o haga clic
en la barra de navegación izquierda de una pantalla.
3. Pulse o haga clic en Agregar datos estáticos a la aplicación, pulse o haga clic en
el archivo de Excel que descargó y, a continuación en Abrir.
4. Seleccione la casilla Flooring Estimates y a continuación, pulse o haga clic en
Conectar.
5. Agregue un control Galería con imágenes y establezca su propiedad Artículos en
FlooringEstimates.
¿No sabe cómo agregar y configurar un control?

El control Galería muestra imágenes de productos de moqueta, parquet y mosaico


basados en vínculos en el archivo de Excel que ha descargado.

Directrices de accesibilidad
Contraste de color
Si el gráfico se utiliza como botón, se aplican los requisitos estándar de contraste de
color.
Considere la posibilidad de comprobar si hay problemas de contraste en la imagen, si
no es simplemente decorativa.
Soporte técnico para el lector de pantalla
La propiedad AccessibleLabel debe estar presente si el gráfico se usa como botón o
no solo como decoración.
La propiedad AccessibleLabel debe estar vacía o la cadena "" vacía si el gráfico es
exclusivamente decorativo. De esta forma, los lectores de pantalla omiten el gráfico.
La propiedad AccessibleLabel puede estar vacía o la cadena "" vacía si el gráfico
proporciona información redundante.
Por ejemplo, un control Imagen de engranajes con su propiedad
AccessibleLabel establecida en Configuración. Esta imagen no se utiliza
como botón. Se encuentra junto a una etiqueta que también dice
Configuración. Los lectores de pantalla leerán la imagen como
Configuración y, nuevamente, la etiqueta como Configuración. No es
necesario tanto detalle. En este caso, el control Imagen no necesita una
propiedad AccessibleLabel .

IMPORTANT
Los lectores de pantalla siempre leerán los controles Imagen cuya propiedad
TabIndex sea cero o superior, incluso si la propiedad AccessibleLabel está vacía.
El motivo es que se representan como botones. Si no se proporciona ninguna
propiedad AccessibleLabel , los lectores de pantalla simplemente leerán el
gráfico como un botón.

Compatibilidad con el teclado


TabIndex debe ser cero o mayor si el gráfico se utiliza como botón. De esta forma,
los usuarios de teclado pueden navegar hasta él.
Los indicadores de foco deben ser claramente visibles si el gráfico se usa como
botón. Use FocusedBorderColor y FocusedBorderThickness para conseguirlo.

NOTE
Cuando TabIndex es cero o mayor, el control Imagen se representa como un botón. No
hay ningún cambio en la apariencia visual, pero los lectores de pantalla identifican
correctamente la imagen como un botón. Cuando TabIndex es menor que cero, el
control Imagen se identifica como una imagen.
Control Exportar y control Importar en
PowerApps
12/11/2019 • 8 minutes to read

Controles para exportar datos a un archivo local y luego importarlos en otra aplicación de
PowerApps.

Descripción
Si desea crear más de una aplicación que utiliza los mismos datos, pero no quiere
compartir esos datos fuera de esas aplicaciones, puede exportarlos e importarlos mediante
un control Exportar y un control Importar. Cuando se exportan datos, se crea un archivo
comprimido que se puede copiar en otra máquina y leer en cualquier programa que no sea
PowerApps.

Advertencia
Al habilitar esta funcionalidad en la aplicación, puede exponerla a vulnerabilidades de
seguridad y pérdida de datos. Se recomienda aconsejar a los usuarios que importen solo los
archivos reconocidos y de confianza y que exporten únicamente los datos que no sean
confidenciales.

Límite
La funcionalidad de exportación no es compatible con los navegadores web.

Propiedades principales
Data: el nombre de una colección que quiere exportar a un archivo local.
La propiedad Data está disponible para un control Exportar pero no para un control
Importar.
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace clic en un
control.

Propiedades adicionales
Align : la ubicación del texto respecto al centro horizontal de su control.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
Color : el color del texto en un control.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos
(View) o si está deshabilitado (Disabled).
DisabledBorderColor : el color de un borde del control si la propiedad DisplayMode del
control está establecida en Disabled.
DisabledColor : el color del texto en un control si su propiedad DisplayMode está
establecida en Disabled.
DisabledFill : el color de fondo de un control si su propiedad DisplayMode está
establecida en Disabled.
Fill : el color de fondo de un control.
FocusedBorderColor : el color del borde de un control cuando el control recibe el foco.
FocusedBorderThickness : el grosor del borde de un control cuando el control recibe el
foco.
Font : el nombre de la familia de fuentes en la que aparece el texto.
FontWeight : el peso del texto en un control: Bold, Semibold, Normal o Lighter.
Height : la distancia entre los bordes superior e inferior de un control.
HoverBorderColor : el color de un borde del control cuando el usuario mantiene el
puntero del mouse sobre ese control.
HoverColor : el color del texto de un control cuando el usuario mantiene el puntero del
mouse sobre él.
HoverFill : el color de fondo de un control cuando el usuario mantiene el puntero del
mouse sobre él.
Italic : indica si el texto de un control está en cursiva.
Padding : la distancia entre el texto de un botón Exportar o Importar y los bordes de ese
botón.
PressedBorderColor : el color de un borde del control cuando el usuario toca o hace clic
en ese control.
PressedColor : el color de texto de un control cuando el usuario toca o hace clic en ese
control.
PressedFill : el color de fondo de un control cuando el usuario toca o hace clic en ese
control.
RadiusBottomLeft : el grado al que se redondea la esquina inferior izquierda de un
control.
RadiusBottomRight : el grado al que se redondea la esquina inferior derecha de un
control.
RadiusTopLeft : el grado al que se redondea la esquina superior izquierda de un control.
RadiusTopRight : el grado al que se redondea la esquina superior derecha de un control.
Size : el tamaño de la fuente del texto que aparece en un control.
Strikethrough : indica si aparece una línea sobre el texto de un control.
TabIndex : orden de navegación del teclado en relación con otros controles.
Text : texto que aparece en un control o que el usuario escribe en un control.
Underline : indica si aparece una línea debajo del texto de un control.
VerticalAlign : la ubicación del texto en un control respecto al centro vertical de ese
control.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor
primario (la pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor
primario (la pantalla si no hay un contenedor primario).

Ejemplo
1. Agregue un control Botón y establezca su propiedad OnSelect en esta fórmula:
ClearCollect(Products; {Name:"Europa"; Price:"10.99"}; {Name:"Ganymede";
Price:"12.49"}; {Name:"Callisto"; Price:"11.79"})
¿No sabe cómo agregar, nombrar y configurar un control?
¿Desea más información sobre la función ClearCollect u otras funciones?

2. Presione F5, haga clic o pulse el control Botón y luego presione Esc.
3. Agregue un control Exportar y establezca su propiedad Data en Productos.
4. Presione F5, haga clic o pulse el control Exportar y luego especifique el nombre del
archivo en el que desea exportar los datos.
5. Haga clic o pulse Guardar y luego presione Esc para volver al área de trabajo
predeterminada.
6. En una aplicación nueva o existente, agregue un control Importar, asígnele el
nombre MyData y establezca su propiedad OnSelect en esta fórmula:
Collect(ImportedProducts; MyData.Data)
7. Presione F5, haga clic o pulse MyData, haga clic o pulse el archivo exportado y
luego haga clic o pulse Abrir.
8. Presione Esc, haga clic o pulse Colecciones en el menú Archivo y confirme que la
aplicación actual tiene los datos que ha exportado.

Directrices de accesibilidad
Se aplican las mismas directrices para Botón porque Exportar e Importar son
simplemente botones especializados.
Controles Gráfico de columnas y
Gráfico de líneas en PowerApps
12/11/2019 • 10 minutes to read

Controles que muestran datos como gráficos con ejes x e y.

Descripción
Gráfico de columnas y Gráfico de líneas son controles agrupados. Cada grupo
contiene tres controles: un control Etiqueta para el título, el gráfico y un control
Leyenda.

Propiedades principales del gráfico


Elementos : origen de datos que aparece en un control, como una galería, una lista o
un gráfico.
NúmeroDeSeries: indica el número de columnas de datos reflejadas en un gráfico
de columnas o de líneas.

Propiedades adicionales del gráfico


BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
Color : el color del texto en un control.
DisabledBorderColor : el color de un borde del control si la propiedad
DisplayMode del control está establecida en Disabled.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra
datos (View) o si está deshabilitado (Disabled).
Font : el nombre de la familia de fuentes en la que aparece el texto.
GridStyle: indica si un gráfico de columnas o de líneas muestra su eje x, su eje y,
ambos o ninguno.
Height : la distancia entre los bordes superior e inferior de un control.
HoverBorderColor : el color de un borde del control cuando el usuario mantiene el
puntero del mouse sobre ese control.
ItemColorSet: color de cada punto de datos de un gráfico.
ItemsGap: indica la distancia entre las columnas de un gráfico de columnas.
La propiedad ItemsGap está disponible para el control Gráfico de columnas
pero no para el control Gráfico de líneas.
Markers: indica si un gráfico de columnas o de líneas muestra el valor de cada punto
de datos.
MarkerSuffix: texto que aparece después de cada valor en un gráfico de columnas
para el que la propiedad Markers está establecida en true.
La propiedad MarkerSuffix está disponible para el control Gráfico de columnas
pero no para el control Gráfico de líneas.
AnchoDeBarraMínimo: el ancho mínimo posible de columnas en un gráfico de
columnas.
La propiedad AnchoDeBarraMínimo está disponible para el control Gráfico de
columnas pero no para el control Gráfico de líneas.
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace clic en
un control.
RellenoInferior : distancia entre el texto de un control y el borde inferior de ese
control.
RellenoIzquierdo : distancia entre el texto de un control y el borde izquierdo de ese
control.
RellenoDerecho : distancia entre el texto de un control y el borde derecho de ese
control.
RellenoSuperior : distancia entre el texto de un control y el borde superior de ese
control.
PressedBorderColor : el color de un borde del control cuando el usuario toca o hace
clic en ese control.
SeriesAxisMax: el valor máximo del eje y para un gráfico de columnas o de líneas.
La propiedad SeriesAxisMax está disponible para el control Gráfico de
columnas pero no para el control Gráfico de líneas.
SeriesAxisMin: un número que determina el valor mínimo del eje y de un gráfico de
columnas.
La propiedad SeriesAxisMin está disponible para el control Gráfico de
columnas pero no para el control Gráfico de líneas.
Size : el tamaño de la fuente del texto que aparece en un control.
TabIndex : orden de navegación del teclado en relación con otros controles.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su
contenedor primario (la pantalla si no hay un contenedor primario).
XLabelAngle: el ángulo de las etiquetas debajo del eje x de un gráfico de columnas o
de líneas.
Y : la distancia entre el borde superior de un control y el borde superior de su
contenedor primario (la pantalla si no hay un contenedor primario).
EjeYMáximo: el valor máximo del eje y de un gráfico de columnas o de líneas.
La propiedad YAxisMax está disponible para el control Gráfico de líneas pero
no para el control Gráfico de columnas.
EjeYMínimo: el valor mínimo del eje y de un gráfico de columnas o de líneas.
La propiedad YAxisMin está disponible para el control Gráfico de líneas pero no
para el control Gráfico de columnas.
YLabelAngle: el ángulo de las etiquetas junto al eje y de un gráfico de líneas o de
columnas.

Funciones relacionadas
Max( DataSource; ColumnName )

Ejemplo
1. Agregue un control Botón y establezca su propiedad OnSelect en esta
fórmula:
Collect(Revenue; {Year:"2013"; Europa:24000; Ganymede:22300;
Callisto:21200}; {Year:"2014"; Europa:26500; Ganymede:25700;
Callisto:24700};{Year:"2014"; Europa:27900; Ganymede:28300;
Callisto:25600})
¿No sabe cómo agregar y configurar un control?
¿Desea más información sobre la función Recopilar u otras funciones?

2. Presione F5, pulse o haga clic en el control Botón y presione Esc para volver al
área de trabajo predeterminada.
3. Agregue un control Gráfico de columnas o un control Gráfico de líneas,
establezca su propiedad Elementos en Ingresos y establezca su propiedad
NúmeroDeSeries en 3.
El control muestra datos de ingresos para cada producto durante tres años.

Directrices de accesibilidad
Contraste de color
Debe haber un contraste de color adecuado entre:
Cada elemento de ItemColorSet
Cada elemento de ItemColorSet y el color de fondo
La propiedad Color y el color de fondo
Soporte técnico para el lector de pantalla
Debe haber un control Etiqueta inmediatamente delante del gráfico para que
sirva de título.
Considere la posibilidad de agregar un resumen del gráfico. Por ejemplo, "El
gráfico de líneas muestra un aumento constante en las ventas entre marzo y
agosto de este año".
NOTE
Los gráficos y el control Leyenda están ocultos para los usuarios de lector de
pantalla. Como alternativa, se les presenta los datos en formato tabular. También
pueden recorrer los botones que seleccionan datos en el gráfico.

Apoyo para deficiencia visual


Debe haber un control Leyenda si se muestra más de una serie.
Considere la posibilidad de establecer GridStyle en GridStyle.All, que muestra
ambos ejes. Esto ayuda a que todos los usuarios puedan determinar con precisión
la escala de los datos.
Para el control Gráfico de columnas, considere la posibilidad de establecer
Markers en true. Esto ayuda a los usuarios con deficiencia visual a determinar el
valor de una columna.
Compatibilidad con el teclado
La propiedad TabIndex debe ser cero o superior para que los usuarios del
teclado puedan desplazarse hasta él.

NOTE
Cuando los usuarios de teclado se desplazan al gráfico, pueden recorrer los botones
que seleccionan datos del gráfico.
Control Cuadro de lista en PowerApps
12/11/2019 • 10 minutes to read

Una lista en la que el usuario puede seleccionar uno o varios elementos.

Descripción
Un control Cuadro de lista siempre muestra todas las opciones disponibles (a diferencia de un
control Lista desplegable ) y a diferencia de un control Radio , el usuario puede seleccionar varios
elementos al mismo tiempo.

Propiedades principales
Predeterminado : el valor inicial de un control antes de que lo cambie el usuario.
Elementos : origen de datos que aparece en un control, como una galería, una lista o un gráfico.
Seleccionado : el registro de datos que representa el elemento seleccionado.
Al agregar una galería, una lista o un gráfico, la lista de propiedades muestra Elementos de
manera predeterminada, con el fin de que pueda especificar fácilmente los datos que el nuevo
control debe mostrar. Por ejemplo, puede establecer la propiedad Elementos de una galería en la
tabla Cuenta de Salesforce, una tabla denominada Inventario que se ha creado en Excel y cargado
en la nube, o una lista de SharePoint llamada ConferenceSpeakers.

Propiedades adicionales
AccessibleLabel : etiqueta para lectores de pantalla.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
Color : el color del texto en un control.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos (View) o
si está deshabilitado (Disabled).
DisabledBorderColor : el color de un borde del control si la propiedad DisplayMode del control
está establecida en Disabled.
DisabledColor : el color del texto en un control si su propiedad DisplayMode está establecida en
Disabled.
DisabledFill : el color de fondo de un control si su propiedad DisplayMode está establecida en
Disabled.
Fill : el color de fondo de un control.
FocusedBorderColor : el color del borde de un control cuando el control recibe el foco.
FocusedBorderThickness : el grosor del borde de un control cuando el control recibe el foco.
Font : el nombre de la familia de fuentes en la que aparece el texto.
FontWeight : el peso del texto en un control: Bold, Semibold, Normal o Lighter.
Height : la distancia entre los bordes superior e inferior de un control.
HoverBorderColor : el color de un borde del control cuando el usuario mantiene el puntero del
mouse sobre ese control.
HoverColor : el color del texto de un control cuando el usuario mantiene el puntero del mouse
sobre él.
HoverFill : el color de fondo de un control cuando el usuario mantiene el puntero del mouse sobre
él.
Italic : indica si el texto de un control está en cursiva.
ItemPaddingLeft: la distancia entre el texto en un cuadro de lista y su borde izquierdo.
AlturaDeLínea : distancia entre, por ejemplo, líneas de texto o elementos de una lista.
AlCambiar : indica cómo responde la aplicación cuando el usuario cambia el valor de un control
(por ejemplo, mediante el ajuste de un control deslizante).
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace clic en un control.
RellenoInferior : distancia entre el texto de un control y el borde inferior de ese control.
RellenoIzquierdo : distancia entre el texto de un control y el borde izquierdo de ese control.
RellenoDerecho : distancia entre el texto de un control y el borde derecho de ese control.
RellenoSuperior : distancia entre el texto de un control y el borde superior de ese control.
PressedBorderColor : el color de un borde del control cuando el usuario toca o hace clic en ese
control.
PressedColor : el color de texto de un control cuando el usuario toca o hace clic en ese control.
PressedFill : el color de fondo de un control cuando el usuario toca o hace clic en ese control.
Reset : indica si un control vuelve a su valor predeterminado.
SelectedText (desusado) : valor de cadena que representa el elemento seleccionado.
ColorDeSelección : color del texto de los elementos seleccionados en una lista o de la herramienta
de selección de un control de entrada manuscrita.
RellenoDeSelección : el color de fondo de uno o varios elementos seleccionados en una lista o un
área seleccionada de un control de entrada manuscrita.
SelecciónMúltiple: indica si un usuario puede seleccionar más de un elemento en un cuadro de
lista.
Size : el tamaño de la fuente del texto que aparece en un control.
Strikethrough : indica si aparece una línea sobre el texto de un control.
TabIndex : orden de navegación del teclado en relación con otros controles.
Información sobre herramientas : texto explicativo que aparece cuando el usuario mantiene el
puntero sobre un control.
Underline : indica si aparece una línea debajo del texto de un control.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor
primario (la pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario
(la pantalla si no hay un contenedor primario).

Funciones relacionadas
Distinct( DataSource; ColumnName )

Ejemplo
1. Agregue un control Cuadro de lista, denomínelo CategoryList y establezca su propiedad
Elementos en esta fórmula:
["Carpet";"Hardwood";"Tile"]
¿No sabe cómo agregar, nombrar y configurar un control?

2. Agregar tres controles Lista desplegable , muévalas a CategoryListy asígneles un nombre


ListaMoqueta, ListaParquet, y ListaMosaico.
3. Establecer la propiedad Elementos de cada control Lista desplegable en uno de estos
valores:
ListaMoqueta: ["Caserta Stone Beige";"Ageless Beauty Clay"; "Lush II Tundra"]
ListaParquet: ["Golden Teak";"Natural Hickory"; "Victoria Mahogany"]
ListaMosaico: ["Honey Onyx Marble";"Indian Autumn Slate"; "Panaria Vitality
Ceramic"]

4. Establezca la propiedad Elementos de cada control Lista desplegable en uno de estos


valores:
ListaMoqueta: If("Moqueta" en CategoryList.SelectedItems.Value; true)
ListaParquet: If("Parquet" en CategoryList.SelectedItems.Value; true)
ListaMosaico: If("Mosaico" en CategoryList.SelectedItems.Value; true)
¿Desea más información sobre la función If u otras funciones?

5. Presione F5 y, a continuación, elija uno o más elementos de CategoryList.


Aparecerá el control o controles apropiados Lista desplegable en función de su elección.

6. (opcional) Presione Esc para volver al área de trabajo predeterminada.

Directrices de accesibilidad
Contraste de color
Debe haber un contraste de color adecuado entre:
SelectionColor y SelectionFill
SelectionFill y Fill
HoverFill y Fill
PressedFill y Fill
Y esto, además de los requisitos estándar de contraste de color.
Soporte técnico para el lector de pantalla
La propiedad AccessibleLabel debe estar presente.
Compatibilidad con el teclado
La propiedad TabIndex debe ser cero o superior para que los usuarios del teclado puedan
desplazarse hasta él.
Los indicadores de foco deben ser claramente visibles. Use FocusedBorderColor y
FocusedBorderThickness para conseguirlo.

NOTE
La tecla de tabulación se desplaza hasta el control Cuadro de lista o fuera de él. Las teclas de
dirección permiten desplazarse por el contenido del control Cuadro de lista.
Control Micrófono en PowerApps
12/11/2019 • 8 minutes to read

Un control que permite a los usuarios de la aplicación grabar sonidos desde sus dispositivos.

Descripción
Los usuarios de la aplicación pueden realizar grabaciones de audio si el dispositivo donde se ejecuta la
aplicación tiene un micrófono.
El audio se almacena en formato 3gp en Android, en formato AAC en iOS y en formato OGG en los
navegadores web.

Propiedades principales
Micrófono: en un dispositivo que tenga más de un micrófono, el identificador numérico del micrófono
que usa la aplicación.
AlDetener: indica cómo la aplicación responde cuando el usuario detiene la grabación con un control
de micrófono.

Propiedades adicionales
AccessibleLabel : etiqueta para lectores de pantalla. Debe describir la finalidad del micrófono.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
Color : el color del texto en un control.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos (View) o si
está deshabilitado (Disabled).
DisabledBorderColor : el color de un borde del control si la propiedad DisplayMode del control está
establecida en Disabled.
DisabledColor : el color del texto en un control si su propiedad DisplayMode está establecida en
Disabled.
DisabledFill : el color de fondo de un control si su propiedad DisplayMode está establecida en
Disabled.
Fill : el color de fondo de un control.
FocusedBorderColor : el color del borde de un control cuando el control recibe el foco.
FocusedBorderThickness : el grosor del borde de un control cuando el control recibe el foco.
Height : la distancia entre los bordes superior e inferior de un control.
HoverBorderColor : el color de un borde del control cuando el usuario mantiene el puntero del mouse
sobre ese control.
HoverColor : el color del texto de un control cuando el usuario mantiene el puntero del mouse sobre
él.
HoverFill : el color de fondo de un control cuando el usuario mantiene el puntero del mouse sobre él.
Imagen : el nombre de la imagen que aparece en un control de imagen, audio o micrófono.
PosiciónDeLaImagen : posición (Rellenar, Ajustar, Estirar, Icono o Centrar) de una imagen en una
pantalla o un control, si no tiene el mismo tamaño que la imagen.
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace clic en un control.
AlIniciar: indica cómo la aplicación responde cuando el usuario comienza a grabar con un control de
micrófono.
PressedBorderColor : el color de un borde del control cuando el usuario toca o hace clic en ese
control.
PressedColor : el color de texto de un control cuando el usuario toca o hace clic en ese control.
PressedFill : el color de fondo de un control cuando el usuario toca o hace clic en ese control.
Reset : indica si un control vuelve a su valor predeterminado.
TabIndex : orden de navegación del teclado en relación con otros controles.
Información sobre herramientas : texto explicativo que aparece cuando el usuario mantiene el
puntero sobre un control.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario (la
pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario (la
pantalla si no hay un contenedor primario).

Funciones relacionadas
Patch( DataSource; BaseRecord; ChangeRecord )

Ejemplo
Agregue sonidos a un control Galería personalizada
1. Agregue un Micrófono, asígnele el nombre MyMicy establezca su propiedad AlDetener en
esta fórmula:
Collect(MySounds; MyMic.Audio)
¿No sabe cómo agregar, nombrar y configurar un control?
¿Desea más información sobre la función Recopilar u otras funciones?

2. Agregue un control Galería personalizada muévalo debajo de MyMic establezca la propiedad


Elementos para el control Galería personalizada en MySounds.
3. En la plantilla para el control Galería personalizada de control, agregue un control Audio y
establezca su propiedad Multimedia en ThisItem.Url.
4. Presione F5, pulse o haga clic en MyMic para iniciar la grabación y luego pulse o haga clic en
nuevo para detener la grabación.
5. En el control Galería personalizada, pulse o haga clic en el botón de reproducción en el control
Audio para reproducir la grabación.
6. Agregue tantas grabaciones como desee y, a continuación, presione Esc para volver al área de
trabajo predeterminada.
7. (opcional) En la plantilla para el control Galería personalizada, agregue un control Botón ,
establezca su propiedad AlSeleccionar en Quitar (MySounds, EsteElemento) , presione F5 y,
a continuación, quite una grabación haciendo clic o pulsando el correspondiente control Botón.
Use la función SaveData para guardar las grabaciones localmente o la función Patch para actualizar el
origen de datos.

Directrices de accesibilidad
Se aplican las mismas directrices para Botón porque Micrófono es simplemente un botón
especializado. Además, tenga en cuenta lo siguiente:
Alternativas de audio
Considere la posibilidad de agregar una forma alternativa de entrada para los usuarios con
discapacidades del habla o que no tienen micrófono. Por ejemplo, Entrada de texto para permitir
que los usuarios escriban texto.
Contraste de color
Debe haber un contraste de color adecuado entre:
Image y el texto y el icono del botón (si procede)
Y esto, además de los requisitos estándar de contraste de color.
Soporte técnico para el lector de pantalla
La propiedad AccessibleLabel debe estar presente.
Control Visor de archivos PDF (experimental)
en PowerApps
06/11/2019 • 8 minutes to read

Un control experimental que muestra el contenido de un archivo PDF.

Descripción
Muestre texto, gráficos y otro contenido en un archivo PDF mediante la incorporación de este
tipo de control y estableciendo su propiedad Documento a la dirección URL, entre comillas
dobles, del archivo que desea mostrar.

Límite
1. La arquitectura de seguridad de PowerApps requiere que el visor de PDF admita solo
vínculos HTTPS, no HTTP.
2. La propiedad Document debe vincularse directamente al archivo PDF. No se admiten las
redirecciones del servidor ni las vistas HTML del documento.
3. El servidor que hospeda el documento no debe requerir autenticación.
4. Es posible que no pueda ver un documento PDF en la aplicación si el documento reside en
un servidor que tiene una configuración de uso compartido de recursos entre orígenes
(CORS ) restrictiva. Para resolver este problema, el servidor que hospeda documentos PDF
debe permitir solicitudes entre orígenes de powerapps.com.
Los usuarios de la aplicación pueden solucionar estas limitaciones abriendo documentos PDF en
un explorador externo, como se le pregunta si el control no puede abrir un documento. Esta
opción también está disponible en el menú de control para todos los documentos externos.
Los responsables de aplicaciones pueden solucionar estas limitaciones incluyendo documentos
PDF como recursos multimedia en la aplicación. De este modo, el control de PDF Viewer siempre
puede mostrar el documento.

Propiedades principales
Documento: la dirección URL entre comillas dobles, de un archivo PDF.

Propiedades adicionales
ActualZoom: el zoom real del control, que puede diferir del zoom solicitado con la propiedad
Ampliar.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
CurrentFindText: el término de búsqueda que está en uso en ese momento.
CurrentPage: el número de la página en un archivo PDF que se está mostrando en ese
momento.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos (View)
o si está deshabilitado (Disabled).
DisabledBorderColor : el color de un borde del control si la propiedad DisplayMode del
control está establecida en Disabled.
Fill : el color de fondo de un control.
FindNext: busca la siguiente instancia de FindText en el documento.
FindPrevious: busca la instancia anterior de FindText en el documento.
FindText: el término de búsqueda para buscar en el documento.
Height : la distancia entre los bordes superior e inferior de un control.
HoverBorderColor : el color de un borde del control cuando el usuario mantiene el puntero del
mouse sobre ese control.
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace clic en un control.
OnStateChange: cómo una aplicación responde cuando cambia el estado del control.
RellenoInferior : distancia entre el texto de un control y el borde inferior de ese control.
RellenoIzquierdo : distancia entre el texto de un control y el borde izquierdo de ese control.
RellenoDerecho : distancia entre el texto de un control y el borde derecho de ese control.
RellenoSuperior : distancia entre el texto de un control y el borde superior de ese control.
Página: el número de la página que desea mostrar.
PageCount: el número de páginas en un documento.
PressedBorderColor : el color de un borde del control cuando el usuario toca o hace clic en ese
control.
MostrarControles: indica si se muestra un reproductor de audio o vídeo, por ejemplo, un botón
de reproducción y un control deslizante de volumen, y un control de entrada manuscrita muestra,
por ejemplo, iconos para dibujar, borrar y borrar todo.
Información sobre herramientas : texto explicativo que aparece cuando el usuario mantiene el
puntero sobre un control.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor
primario (la pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor
primario (la pantalla si no hay un contenedor primario).
Zoom: el porcentaje en que se amplía una imagen de una cámara o la vista de un archivo en un
visor de PDF.

Ejemplo
Agregue un control Visor de archivos PDF y establezca su propiedad Documento en la
dirección URL, entre comillas dobles, de un archivo PDF, como en este ejemplo:
"https://blog.mozilla.org/security/files/2015/05/HTTPS -FAQ.pdf"
El control mostrará el archivo PDF.
¿No sabe cómo agregar y configurar un control?

Directrices de accesibilidad
No todas las características de accesibilidad de los documentos PDF se admiten ya que el visor
de PDF aún se encuentra en la fase experimental. Por lo tanto, ShowControls debe establecerse
en true para permitir que los usuarios abran el documento en una aplicación externa.
Aprenda a crear documentos PDF accesibles con los estándares WCAG 2.0 y PDF/UA.
Soporte técnico para el lector de pantalla
Considere la posibilidad de agregar un encabezado mediante un control Etiqueta si el
documento PDF no tiene ningún título. El encabezado puede colocarse inmediatamente
delante del visor de PDF.
Control Entrada manuscrita en PowerApps
12/11/2019 • 7 minutes to read

Control con el que el usuario puede dibujar, borrar y resaltar áreas de una imagen.

Descripción
El usuario puede utilizar este control como una pizarra, dibujar diagramas y escribir palabras que se
pueden convertir en texto mecanografiado.

Propiedades principales
Imagen: propiedad de salida que representa la imagen dibujada por el usuario final.
Color : el color de los trazos de entrada.
Modo: el control se encuentra en modo Dibujar o Borrar. El modo Seleccionar está en desuso.

Propiedades adicionales
AccessibleLabel : etiqueta para lectores de pantalla. Puede utilizarse para describir el propósito del
control, así como métodos de entrada alternativos.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos (View) o si está
deshabilitado (Disabled).
Fill : el color de fondo de un control.
Height : la distancia entre los bordes superior e inferior de un control.
Input: en desuso. Si la entrada admite entradas de mouse, lápiz o táctiles. El valor predeterminado (7)
admite las tres.
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace clic en un control.
ColorDeSelección : color del texto de los elementos seleccionados en una lista o de la herramienta de
selección de un control de entrada manuscrita.
GrosorDeSelección: grosor de la herramienta de selección de un control Entrada manuscrita.
MostrarControles: indica si se muestra un reproductor de audio o vídeo, por ejemplo, un botón de
reproducción y un control deslizante de volumen, y un control de entrada manuscrita muestra, por
ejemplo, iconos para dibujar, borrar y borrar todo.
Size : el tamaño de la fuente del texto que aparece en un control.
Información sobre herramientas : texto explicativo que aparece cuando el usuario mantiene el puntero
sobre un control.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario (la
pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario (la
pantalla si no hay un contenedor primario).

Funciones relacionadas
Recopilar( CollectionName; DatatoCollect )

Ejemplo
Crear un conjunto de imágenes
1. Agregue un control Entrada manuscrita, asígnele el nombre MyDoodles y establezca su
propiedad MostrarControles en true.
¿No sabe cómo agregar, nombrar y configurar un control?

2. Agregue un control Botón , desplácelo bajo MyDoodles y establezca la propiedad Text del control
Botón para que muestre Agregar.
3. Establezca la propiedad AlSeleccionar del control Botón en esta fórmula:
Collect(Doodles; {Sketch:MyDoodles.Image})
4. Agregue un control Galería de imágenes, desplácelo bajo el control Botón y reduzca el ancho del
control Galería de imágenes hasta que muestre tres elementos.
5. Establezca la propiedad Elementos del control Galería de imágenes en Doodles y presione F5.
6. Dibuje una imagen en MyDoodles y pulse o haga clic en el control Botón .
La imagen que ha dibujado aparecerá en el control Galería de imágenes.
7. (opcional) En el control Entrada manuscrita, haga clic en o pulse el icono para borrar la imagen
que ha dibujado, dibuje otra y pulse o haga clic en el control Botón .
8. En el control Galería de imágenes, establezca la propiedad AlSeleccionar del control Imagen
con la siguiente fórmula:
Remove(Doodles; ThisItem )
9. Pulse o haga clic en el control Galería de imágenes para eliminar un dibujo.
Use la función SaveData para guardar los dibujos en el entorno local o la función Patch para guardarlas
en un origen de datos.

Directrices de accesibilidad
Contraste de color
Debe haber un contraste de color adecuado entre:
BorderColor y el color situado fuera del control (si hay un borde)
Fill y el color situado fuera del control (si no hay un borde)
Soporte técnico para el lector de pantalla
La propiedad AccessibleLabel debe existir.
IMPORTANT
El control Entrada manuscrita no es accesible para los usuarios de lector de pantalla. Proporcione siempre
una forma de entrada alternativa. Por ejemplo, si se requiere un boceto, considere la posibilidad de agregar
un control Agregar imagen para que los usuarios carguen una imagen. Se pueden ofrecer ambos métodos
y el usuario puede elegir el que mejor le convenga.

Compatibilidad con el teclado

IMPORTANT
Entrada manuscrita no es accesible para los usuarios de teclado. Proporcione siempre una forma de entrada
alternativa. Por ejemplo, si se requiere una firma, podría agregar un control Entrada de texto para que los usuarios
escriban su nombre. Se pueden ofrecer ambos métodos y el usuario puede elegir el que mejor le convenga.
Control de gráficos circulares en PowerApps
12/11/2019 • 6 minutes to read

Control que muestra valores relativos comparados entre ellos.

Descripción
Agregue un control de gráfico circular si desea que aparezcan datos relativos de una tabla que
contenga las etiquetas de la columna izquierda y valores en la segunda columna de la izquierda.
Este control es un control agrupado que contiene tres controles: un control Etiqueta para el título, el
gráfico y un control Leyenda.

Propiedades principales del gráfico


Elementos : origen de datos que aparece en un control, como una galería, una lista o un gráfico.
ShowLabels: indica si un gráfico circular muestra el valor asociado con cada una de sus partes.

Propiedades adicionales del gráfico


BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
Color : el color del texto en un control.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos (View) o si
está deshabilitado (Disabled).
DisabledBorderColor : el color de un borde del control si la propiedad DisplayMode del control está
establecida en Disabled.
Seccionar: distancia entre las partes de un gráfico circular.
Font : el nombre de la familia de fuentes en la que aparece el texto.
Height : la distancia entre los bordes superior e inferior de un control.
HoverBorderColor : el color de un borde del control cuando el usuario mantiene el puntero del mouse
sobre ese control.
ItemBorderColor: color del borde que rodea cada parte de un gráfico circular.
ItemBorderThickness: grosor del borde que rodea cada parte de un gráfico circular.
ItemColorSet: color de cada punto de datos de un gráfico.
LabelPosition: ubicación de las etiquetas en un gráfico circular con respecto a sus partes.
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace clic en un control.
PressedBorderColor : el color de un borde del control cuando el usuario toca o hace clic en ese control.
Size : el tamaño de la fuente del texto que aparece en un control.
TabIndex : orden de navegación del teclado en relación con otros controles.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario (la
pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario (la
pantalla si no hay un contenedor primario).

Funciones relacionadas
Max( DataSource; ColumnName )

Ejemplo
1. Agregue un control Botón y establezca su propiedad OnSelect en esta fórmula:
Collect(Revenue2015; {Product:"Europa"; Revenue:27000}; {Product:"Ganymede";
Revenue:26300}; {Product:"Callisto"; Revenue:29200})
¿No sabe cómo agregar y configurar un control?
¿Desea más información sobre la función Recopilar u otras funciones?

2. Presione F5, pulse o haga clic en el control Botón y presione Esc para volver al área de trabajo
predeterminada.
3. Agregue un control de gráfico circular y establezca su propiedad Elementos en Revenue2015.
El control de gráfico circular muestra los datos de ingresos para cada producto en relación con
los demás.

Directrices de accesibilidad
Contraste de color
Debe haber un contraste de color adecuado entre:
Cada elemento de ItemColorSet
Cada elemento de ItemColorSet y el color de fondo
La propiedad Color y el color de fondo
Soporte técnico para el lector de pantalla
Debe haber un control Etiqueta inmediatamente delante del gráfico para que sirva de título.

NOTE
Los gráficos y el control Leyenda están ocultos para los usuarios de lector de pantalla. Como alternativa,
se les presenta los datos en formato tabular. También pueden recorrer los botones que seleccionan datos
en el gráfico.

Apoyo para deficiencia visual


Debe haber un control Leyenda.
Considere la posibilidad de establecer ShowLabels en true. Esto ayuda a los usuarios con
deficiencia visual a determinar rápidamente qué representa cada sector del gráfico circular.
Considere la posibilidad de establecer LabelPosition en LabelPosition.Outside. De esta forma,
aumenta la legibilidad de las etiquetas debido a un contraste de color más uniforme.
Compatibilidad con el teclado
La propiedad TabIndex debe ser cero o superior para que los usuarios del teclado puedan
desplazarse hasta él.

NOTE
Cuando los usuarios de teclado se desplazan al gráfico, pueden recorrer los botones que seleccionan
datos del gráfico.
Control Icono de Power BI en PowerApps
06/11/2019 • 6 minutes to read

Control que muestra un icono de Power BI dentro de una aplicación.


¿No tiene Power BI? Regístrese.

Descripción
Para sacar provecho de las funciones de informes y análisis de datos existentes, muestre sus iconos de Power BI
dentro de las aplicaciones. Especifique el icono que quiere mostrar mediante el establecimiento de sus
propiedades Workspace, Dashboard y Tile en la pestaña Datos del panel de opciones.

Recursos compartidos y seguridad


Cuando se comparte una aplicación que incluye contenido de Power BI, no solo se debe compartir la propia
aplicación, sino también el panel de donde procede el icono. De lo contrario, no aparecerá el contenido de Power
BI ni siquiera para los usuarios que abran la aplicación. Las aplicaciones que incluyen contenido de Power BI
respetan los permisos de ese contenido.

Rendimiento
No se recomienda tener más de tres iconos de Power BI cargados al mismo tiempo dentro de una aplicación.
Puede controlar la carga y descarga de iconos si establece la propiedad LoadPowerBIContent.

Pasar un parámetro
Al pasar un solo parámetro de la aplicación, puede filtrar los resultados que aparecen en un icono de Power BI. Sin
embargo, solo se admiten valores de cadena y el operador Equals, y es posible que el filtro no funcione si el
nombre de tabla o el nombre de columna contiene espacios.
Para pasar un valor de filtro único, modifique el valor de la propiedad TileURL , que sigue esta sintaxis:

"https://app.powerbi.com/embed?dashboardId=<DashboardID>&tileId=<TileID>&config=<SomeHash>"

En ese valor, anexe esta sintaxis:

&$filter=<TableName>/<ColumnName> eq '<Value>'

El parámetro filtrará un valor en el conjunto de DataSet del informe en el que se origina el icono.

Propiedades principales
Área de trabajo: área de trabajo de Power BI de dónde procede el mosaico.
Panel: panel de Power BI de dónde procede el mosaico.
Tile: nombre del icono de Power BI que quiere mostrar.
LoadPowerBIContent: cuando se establece en true, el contenido de Power BI se carga y se muestra. Cuando se
establece en false, el contenido de Power BI se descarga, lo que libera memoria y optimiza el rendimiento.
Propiedades adicionales
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos (View) o si está
deshabilitado (Disabled).
Height : la distancia entre los bordes superior e inferior de un control.
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace clic en un control. De forma
predeterminada, se abre el informe de Power BI asociado al icono.
TileUrl: dirección URL por medio de la cual se solicita un icono desde el servicio Power BI. Puede pasar un
parámetro único en el icono de Power BI si anexa el parámetro a la dirección URL (por ejemplo:… &
"&$filter=Town/Province eq '" & ListBox1.Selected.Abbr & "'"). Solo puede usar el operador equals en el
parámetro.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario (la pantalla si
no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario (la pantalla si
no hay un contenedor primario).

Ejemplo
1. En la pestaña Insertar, abra el menú Controles y luego agregue un control Icono de Power BI.
¿No sabe cómo agregar y configurar un control?

2. En la pestaña Datos del panel de opciones, pulse o haga clic en My Workspace como valor de
Workspace.
3. Seleccione un panel en la lista de paneles y luego seleccione un icono en la lista de iconos.
El control representa el icono de Power BI.

Directrices de accesibilidad
El icono de Power BI es simplemente un contenedor de contenido de Power BI. Aprenda a crear contenido
accesible con estas sugerencias de accesibilidad de Power BI.
Si el contenido de Power BI no tiene un icono, considere la posibilidad de agregar un encabezado mediante un
control Etiqueta para admitir lectores de pantalla. Puede colocar la etiqueta inmediatamente delante del icono de
Power BI.
Control Radio en PowerApps
12/11/2019 • 9 minutes to read

Control de entrada que muestra varias opciones entre las que los usuarios pueden seleccionar
solo una cada vez.

Descripción
Un control de radio, un control de entrada HTML estándar, se aprovecha mejor con solo unas
cuantas opciones mutuamente excluyentes.
El control puede tener un diseño horizontal o vertical.

Propiedades principales
Default : el valor de un control antes de que el usuario lo cambie.
Elementos : origen de datos que aparece en un control, como una galería, una lista o un gráfico.
Layout: indica si las opciones se disponen en vertical u horizontal.
Valor : el valor de un control de entrada.
Seleccionado : el registro de datos que representa el elemento seleccionado.

Todas las propiedades


Align : la ubicación del texto respecto al centro horizontal de su control.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
Color : el color del texto en un control.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos
(View) o si está deshabilitado (Disabled).
DisabledBorderColor : el color de un borde del control si la propiedad DisplayMode del
control está establecida en Disabled.
DisabledColor : el color del texto en un control si su propiedad DisplayMode está establecida
en Disabled.
DisabledFill : el color de fondo de un control si su propiedad DisplayMode está establecida en
Disabled.
Fill : el color de fondo de un control.
FocusedBorderColor : el color del borde de un control cuando el control recibe el foco.
FocusedBorderThickness : el grosor del borde de un control cuando el control recibe el foco.
Font : el nombre de la familia de fuentes en la que aparece el texto.
FontWeight : el peso del texto en un control: Bold, Semibold, Normal o Lighter.
Height : la distancia entre los bordes superior e inferior de un control.
HoverColor : el color del texto de un control cuando el usuario mantiene el puntero del mouse
sobre él.
HoverFill : el color de fondo de un control cuando el usuario mantiene el puntero del mouse
sobre él.
Italic : indica si el texto de un control está en cursiva.
AlturaDeLínea : distancia entre, por ejemplo, líneas de texto o elementos de una lista.
AlCambiar : indica cómo responde la aplicación cuando el usuario cambia el valor de un control
(por ejemplo, mediante el ajuste de un control deslizante).
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace clic en un control.
RellenoInferior : distancia entre el texto de un control y el borde inferior de ese control.
RellenoIzquierdo : distancia entre el texto de un control y el borde izquierdo de ese control.
RellenoDerecho : distancia entre el texto de un control y el borde derecho de ese control.
RellenoSuperior : distancia entre el texto de un control y el borde superior de ese control.
PressedColor : el color de texto de un control cuando el usuario toca o hace clic en ese control.
PressedFill : el color de fondo de un control cuando el usuario toca o hace clic en ese control.
RadioBackgroundFill: color de fondo de los círculos en un control de botón de radio.
RadioBorderColor: color de la circunferencia de cada opción de un control de botón de radio.
RadioSelectionFill: color que aparece dentro del círculo de la opción seleccionada en un control
de botón de radio.
TamañoDeBotónDeRadio: diámetro de los círculos de un control de botón de radio.
Reset : indica si un control vuelve a su valor predeterminado.
SelectedText (desusado) : valor de cadena que representa el elemento seleccionado.
Size : el tamaño de la fuente del texto que aparece en un control.
Strikethrough : indica si aparece una línea sobre el texto de un control.
TabIndex : orden de navegación del teclado en relación con otros controles.
Información sobre herramientas : texto explicativo que aparece cuando el usuario mantiene el
puntero sobre un control.
Underline : indica si aparece una línea debajo del texto de un control.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor
primario (la pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor
primario (la pantalla si no hay un contenedor primario).
Funciones relacionadas
Distinct( DataSource; ColumnName )

Ejemplo
1. Agregue un control Radio, asígnele el nombre Pricing y establezca su propiedad
Elementos en esta fórmula:
["Standard"; "Premium"]
¿No sabe cómo agregar, nombrar y configurar un control?

2. Agregue un control Etiqueta , desplácelo bajo el control Radio y establezca la propiedad


Texto del control Etiqueta en esta fórmula:
If("Premium" in Pricing.Selected.Value; "$200 per day"; "$150 per day")
¿Desea más información sobre la función If u otras funciones?

3. Mientras mantiene presionada la tecla Alt, seleccione alguna opción del control de radio.
El control Etiqueta muestra el texto adecuado para su elección.
4. (Opcional) Mientras mantiene presionada la tecla Alt, seleccione la otra opción para
confirmar que aparece el texto adecuado.

Directrices de accesibilidad
Contraste de color
Además de los requisitos de contraste de color estándar, asegúrese de que haya un contraste de
color adecuado entre:
RadioSelectionFill y RadioBackgroundFill
RadioBackgroundFill y Fill
Compatibilidad con el lector de pantalla
Asegúrese de que cada opción tenga un valor .
Podría también agregar un control Etiqueta inmediatamente delante del control Radio para
que actúe como encabezado.
Compatibilidad con el teclado
Establezca la propiedad TabIndex en cero o superior para que los usuarios del teclado
puedan desplazarse hasta él.
Establezca las propiedades FocusedBorderColor y FocusedBorderThickness para que los
indicadores de foco sean claramente visibles.
Control Clasificación en PowerApps
12/11/2019 • 6 minutes to read

Un control con el que los usuarios pueden indicar un valor comprendido entre 1 y el número máximo que
especifique.

Descripción
En este control el usuario puede indicar, por ejemplo, cuánto le ha gustado algo seleccionando un cierto
número de estrellas.

Propiedades principales
Predeterminado : el valor inicial de un control antes de que lo cambie el usuario.
Max: el valor máximo para el que el usuario puede establecer un control deslizante o una clasificación.

Propiedades adicionales
AccessibleLabel : etiqueta para lectores de pantalla.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos (View) o si está
deshabilitado (Disabled).
Fill : el color de fondo de un control.
FocusedBorderColor : el color del borde de un control cuando el control recibe el foco.
FocusedBorderThickness : el grosor del borde de un control cuando el control recibe el foco.
Height : la distancia entre los bordes superior e inferior de un control.
AlCambiar : indica cómo responde la aplicación cuando el usuario cambia el valor de un control (por
ejemplo, mediante el ajuste de un control deslizante).
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace clic en un control.
RellenoDeClasificación: el color de las estrellas de un control de clasificación.
ReadOnly: indica si un usuario puede cambiar el valor de un control deslizante o el control de clasificación.
Reset : indica si un control vuelve a su valor predeterminado.
MostrarValor: indica si el valor de un control deslizante o una clasificación aparece cuando el usuario
cambia ese valor o mantiene el puntero sobre el control.
TabIndex : orden de navegación del teclado en relación con otros controles.
Información sobre herramientas : texto explicativo que aparece cuando el usuario mantiene el puntero
sobre un control.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario (la
pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario (la
pantalla si no hay un contenedor primario).

Funciones relacionadas
Average( Value1; Value2; ... )

Ejemplo
1. Agregue un control Clasificación y llámelo Cuantitativo.
¿No sabe cómo agregar, nombrar y configurar un control?

2. Agregue un control Entrada de texto , denomínelo Cualitativo, y muévalo debajo del control
Clasificación.
3. Establezca la propiedad Default del control Entrada de texto en "" y establezca su
TextoDeSugerencia en esta fórmula:
If(Quantitative.Value > 3; "¿qué le gustó especialmente?"; "¿cómo podemos mejorar?")
¿Desea más información sobre la función If u otras funciones?

4. Presione F5 y, a continuación, pulse o haga clic en cuatro o cinco estrellas en el control


Clasificación.
La sugerencia del control Entrada de texto cambia para reflejar la alta clasificación.
5. Pulse o haga clic en menos de cuatro estrellas en Cuantitativo.
La sugerencia del control Entrada de texto cambia para reflejar la baja clasificación.
6. Presione Esc para volver al área de trabajo predeterminada.

Directrices de accesibilidad
Contraste de color
Debe haber un contraste de color adecuado entre:
RatingFill y Fill
Y esto, además de los requisitos estándar de contraste de color.
Soporte técnico para el lector de pantalla
La propiedad AccessibleLabel debe estar presente.

NOTE
Los lectores de pantalla tratan el control Clasificación como botones de radio.

Compatibilidad con el teclado


La propiedad TabIndex debe ser cero o superior para que los usuarios del teclado puedan
desplazarse hasta él.
Los indicadores de foco deben ser claramente visibles. Use FocusedBorderColor y
FocusedBorderThickness para conseguirlo.
Considere la posibilidad de usar otro control si hay demasiadas estrellas. Puede resultar agotador
navegar con un teclado y difícil seleccionar con precisión con una pantalla táctil.

NOTE
Las mismas interacciones de teclado para los botones de radio se pueden emplear en Clasificación.
Control de editor de texto enriquecido en
PowerApps
29/11/2019 • 4 minutes to read

Permite a los usuarios finales dar formato al texto dentro de un área de edición WYSIWYG. El formato de salida es
HTML.

Descripción
El control Editor de texto enriquecido proporciona al usuario de la aplicación un área de edición WYSIWYG
para dar formato al texto. El formato de entrada y salida del control es HTML.
El control permite pegar texto enriquecido copiado (es decir, desde el explorador web o Word) en el control.
El uso previsto del control consiste en dar formato al texto y no garantiza que se conserve la integridad de la
entrada HTML. El editor eliminará todas las etiquetas de script, estilo, objeto y otras que puedan ser
comprometedoras. Esto significa que si el texto enriquecido se creó fuera de PowerApps, es posible que no tenga el
mismo aspecto que en el producto en el que se creó.
Entre las características admitidas actualmente se incluyen las siguientes:
Negrita, cursiva, subrayado
Color del texto, color de resaltado
Tamaño del texto
Listas numeradas, listas de viñetas
Hipervínculos
Borrar formato
Para usar el control dentro de un formulario, seleccione la tarjeta "Editar texto multilínea" y personalícela
insertando el control Editor de texto enriquecido.

Propiedades principales
Default : propiedad de entrada para el valor de texto inicial que se muestra en el editor.
HtmlText: propiedad de salida para el texto enriquecido resultante en formato HTML.

Propiedades adicionales
AccessibleLabel : etiqueta para lectores de pantalla. Debe describir el fin de los datos adjuntos.
DisplayMode : indica si el control permite agregar y eliminar archivos (Edit), solo muestra datos (View) o si está
deshabilitado (Disabled).
EnableSpellCheck : indica si está habilitado el corrector ortográfico del explorador. Tenga en cuenta que esta
funcionalidad solo proporcionará la revisión ortográfica en el idioma predeterminado del explorador. Power apps
para Windows no admite esta propiedad.
Height : la distancia entre los bordes superior e inferior de un control.
TabIndex : orden de navegación del teclado en relación con otros controles.
Visible : indica si un control está visible u oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario (la pantalla si
no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario (la pantalla si
no hay un contenedor primario).

Directrices de accesibilidad
Soporte técnico para el lector de pantalla
La propiedad AccessibleLabel debe estar presente.
Compatibilidad con el teclado
La propiedad TabIndex debe ser cero o superior para que los usuarios del teclado puedan desplazarse hasta él.

TIP
Use Alt + 0 mientras el editor está centrado para obtener información sobre otros métodos abreviados de teclado.
Control Pantalla en PowerApps
08/10/2019 • 6 minutes to read

Elemento de la interfaz de usuario que contiene uno o más controles de una aplicación.

Descripción
La mayoría de las aplicaciones tienen varios controles Pantalla que contienen controles Etiqueta ,
Botón y otros controles que muestran los datos y son compatibles con la navegación. Para obtener
información sobre cómo agregar una pantalla, cambiar el orden de las pantallas y configurar la
navegación, consulte Agregar una pantalla.

Propiedades principales
ImagenDeFondo : nombre de un archivo de imagen que aparece en el fondo de una pantalla.
Fill : el color de fondo de un control.

Propiedades adicionales
Height : el alto de la pantalla. Si la aplicación responde (escalar para ajustarse a está desactivada) y
el dispositivo en el que se ejecuta la aplicación es menor que esta propiedad, la pantalla se puede
desplazar verticalmente.
PosiciónDeLaImagen : posición (Rellenar, Ajustar, Estirar, Icono o Centrar) de una imagen en una
pantalla o un control, si no tiene el mismo tamaño que la imagen.
Nombre : el nombre de la pantalla.
AlEstarOculto: el comportamiento de una aplicación cuando el usuario navega fuera de una pantalla.
AlEstarVisible: el comportamiento de una aplicación cuando el usuario navega a una pantalla. Utilice
esta propiedad para configurar las variables y cargar previamente los datos usados por la pantalla. Use
la propiedad app. OnStart para configurarla una vez cuando se inicie la aplicación.
Orientación : la orientación de la pantalla. Si su ancho es mayor que su alto, la orientación será
layout. horizontal; de lo contrario, será layout. vertical.
Tamaño : un entero positivo que clasifica el tamaño de la pantalla. La clasificación se determina
comparando la propiedad width de la pantalla con los valores de la propiedad app. SizeBreakpoints .
El tipo ScreenSize consta de cuatro valores (pequeño, mediano, grandey extragrande) que
corresponden a los enteros comprendidos entre 1 y 4.
Ancho : el ancho de la pantalla. Si la aplicación responde (escalar para ajustarse a está desactivada)
y el dispositivo en el que se ejecuta la aplicación es más estrecho que esta propiedad, la pantalla se
puede desplazar horizontalmente.

Funciones relacionadas
Distinct( DataSource; ColumnName )

Ejemplo
1. Agregue un control Radio , asígnele el nombre ScreenFills y establezca su propiedad
Elementos en este valor:
["Red"; "Green"]

¿No sabe cómo agregar, nombrar y configurar un control?

2. Asigne al control Pantalla predeterminado el nombre Source, agregue otro control Pantalla y
asígnele el nombre Target.
3. En origen, agregue un control forma (como una flecha) y establezca su propiedad
alseleccionar en esta fórmula:
Navigate(Target; ScreenTransition.Fade)

¿Desea más información sobre la función Navegar u otras funciones?

4. En Target, agregue un control Forma (como una flecha) y establezca su propiedad


AlSeleccionar en esta fórmula:
Navigate(Source; ScreenTransition.Fade)

5. Establezca la propiedad Fill de Target en esta fórmula:


If("Red" in ScreenFills.Selected.Value; RGBA(255; 0; 0; 1); RGBA(54; 176; 75; 1))

6. Seleccione la pantalla origen y, a continuación, mantenga presionada la tecla Alt, seleccione


cualquiera de las opciones del control radio y, a continuación, seleccione el control forma .
Destino aparece en el color que ha seleccionado.
7. En destino, seleccione el control forma para volver al origen.
8. opta Seleccione la opción otros en el control radio y, a continuación, seleccione el control forma
para confirmar que el destino aparece en el otro color.
9. opta Reordene las pantallas manteniendo el mouse sobre el destino en la barra de navegación
izquierda, seleccionando los puntos suspensivos que aparecen y seleccionando subir.
El destino aparece en primer lugar cuando el usuario abre la aplicación.

Directrices de accesibilidad
Contraste de color
Cuando la pantalla es de hecho el fondo del texto, debe haber un contraste de color adecuado entre:
Fill y el texto
BackgroundImage y el texto (si procede)
Por ejemplo, si un control Pantalla contiene un control Etiqueta y esta tiene relleno transparente, la
propiedad Fill de la pantalla se convierte de hecho en el color de fondo de la etiqueta.
Además de texto, podría también comprobar el contraste de color con objetos gráficos esenciales como
las imágenes de estrella de un control Clasificación .
Soporte técnico para el lector de pantalla
Debe haber un nombre significativo para cada pantalla. El nombre de la pantalla se puede ver y
editar de la misma manera que otros controles: en la vista de árbol del panel de controles o en el
encabezado del panel de propiedades.
NOTE
Cuando se carga una nueva pantalla, los lectores de pantalla anunciarán su nombre.
Controles Forma e Icon de PowerApps
12/11/2019 • 7 minutes to read

Gráficos para los que puede configurar las propiedades de aspecto y comportamiento.

Descripción
Estos controles incluyen flechas, formas geométricas, iconos de acción y símbolos para los que puede
configurar propiedades como el relleno, el tamaño y la ubicación. También puede configurar su
propiedad alseleccionar para que la aplicación responda si el usuario selecciona el control.

Propiedades de clave (iconos y formas)


Fill : el color de fondo de un control.
Alseleccionar : cómo responde la aplicación cuando el usuario selecciona un control.

Propiedades de clave (solo iconos)


Icono : el tipo de icono que se va a mostrar (por ejemplo, ArrowDown o ShoppingCart).
Rotation : el número de grados que se va a girar el icono.
Color : el color del icono por nombre o valores RGBA.

Propiedades adicionales
AccessibleLabel : etiqueta para lectores de pantalla.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos (View) o
si está deshabilitado (Disabled).
FocusedBorderColor : el color del borde de un control cuando el control recibe el foco.
FocusedBorderThickness : el grosor del borde de un control cuando el control recibe el foco.
Height : la distancia entre los bordes superior e inferior de un control.
HoverFill : el color de fondo de un control cuando el usuario mantiene el puntero del mouse sobre
él.
PressedBorderColor : el color del borde de un control cuando el usuario selecciona ese control.
PressedFill : el color de fondo de un control cuando el usuario selecciona ese control.
TabIndex : orden de navegación del teclado en relación con otros controles.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario
(la pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario
(la pantalla si no hay un contenedor primario).
Funciones relacionadas
Navegar( NombrePantalla; TransiciónDePantalla )

Ejemplo
1. Asigne al control Pantalla predeterminado el nombre Target, agregue un control Etiqueta y
establezca su propiedad Texto para que muestre Target.
¿No sabe cómo agregar y configurar un control?

2. Agregue un control Pantalla y denomínelo Source.


3. En Source, agregue un control Forma y establezca su propiedad AlSeleccionar en esta
fórmula:
Navigate(Target; ScreenTransition.Fade)

1. Presione F5 y, a continuación, seleccione el control forma .


Aparecerá la pantalla Target.
2. (opcional) Presione Esc para volver al área de trabajo predeterminada, agregue un control
Forma a Target y establezca la propiedad AlSeleccionar del control Forma en la siguiente
fórmula:
Navigate(Source; ScreenTransition.Fade)

Directrices de accesibilidad
Contraste de color
Lo siguiente se aplica solo a gráficos que se usan como botones o no solo como decoración.
Para los iconos:
Color y Fill
Se aplican otros requisitos de contraste de color estándar (si se usan como botón)
Para las formas con bordes:
BorderColor y el color fuera del control
FocusedBorderColor y el color fuera del control (si se usa como botón)
Para las formas sin bordes:
Fill y el color fuera del control
PressedFill y el color fuera del control (si se usa como botón)
HoverFill y el color fuera del control (si se usa como botón)
Compatibilidad con el lector de pantalla
Propiedad accessiblelabel debe establecerse en una cadena que no esté vacía si el gráfico
se utiliza como botón o no solo para la decoración.
Propiedad accessiblelabel debe estar vacío o la cadena vacía "" si el gráfico proporciona
información redundante o es meramente para la decoración. Este valor hace que los lectores
de pantalla omitan el gráfico.
Por ejemplo, puede establecer la propiedad propiedad accessiblelabel de un icono de
configuración en configuración. Este icono no se utiliza como botón. Está junto a una etiqueta
que también indica la configuración. Los lectores de pantalla leerán el icono y la etiqueta como
configuración, que es innecesariamente detallado. En este caso, el icono no necesita un propiedad
accessiblelabel .

IMPORTANT
Los lectores de pantalla leerán un icono o forma como botón si su propiedad accessiblelabel se establece
en una cadena vacía y su TabIndex se establece en cero o más. Estos iconos o formas se representan como
botones.

Compatibilidad con el teclado


TabIndex debe ser cero o superior si el gráfico se utiliza como botón. Si establece este valor
para un icono o una forma, los usuarios del teclado pueden desplazarse hasta él.
Los indicadores de foco deben ser claramente visibles si el gráfico se utiliza como botón. Use
FocusedBorderColor y FocusedBorderThickness para lograr este resultado.

NOTE
Cuando TabIndex es cero o mayor, el icono o forma se representa como un botón. Su apariencia no
cambia, pero los lectores de pantalla identificarán correctamente la imagen como un botón. Cuando
TabIndex es menor que cero, el icono o forma se identifica como una imagen.
Control deslizante en PowerApps
12/11/2019 • 9 minutes to read

Un control con el que el usuario puede especificar un valor arrastrando un controlador.

Descripción
El usuario puede indicar un valor comprendido entre un valor mínimo y un máximo que puede
especificar arrastrando el controlador de un control deslizante de derecha a izquierda o de arriba a
abajo, dependiendo de la dirección que desee.

Propiedades principales
Predeterminado : el valor inicial de un control antes de que lo cambie el usuario.
Max: el valor máximo para el que el usuario puede establecer un control deslizante o una
clasificación.
Max: el valor mínimo para el que el usuario puede establecer un control deslizante.
Valor : el valor de un control de entrada.

Propiedades adicionales
AccessibleLabel : etiqueta para lectores de pantalla.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos (View) o
si está deshabilitado (Disabled).
DisabledBorderColor : el color de un borde del control si la propiedad DisplayMode del control
está establecida en Disabled.
FocusedBorderColor : el color del borde de un control cuando el control recibe el foco.
FocusedBorderThickness : el grosor del borde de un control cuando el control recibe el foco.
RellenoDeControladorActivo: el color del controlador de un control deslizante cuando el usuario
cambia el valor.
RellenoDeControlador: el color del controlador (el elemento que cambia de posición) en un
control de alternancia o control deslizante.
RellenoDeControladorAlMantener: el color del texto del controlador cuando el usuario
mantiene el puntero sobre él.
HandleSize: el diámetro del controlador.
Height : la distancia entre los bordes superior e inferior de un control.
HoverBorderColor : el color de un borde del control cuando el usuario mantiene el puntero del
mouse sobre ese control.
Layout: indica si el usuario se desplaza por la galería o ajusta un control deslizante de arriba a
abajo (Vertical) o de izquierda a derecha (Horizontal).
AlCambiar : indica cómo responde la aplicación cuando el usuario cambia el valor de un control
(por ejemplo, mediante el ajuste de un control deslizante).
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace clic en un control.
PressedBorderColor : el color de un borde del control cuando el usuario toca o hace clic en ese
control.
RellenoDeRaíl: color de fondo del rectángulo en un control Alternar cuando su valor es false o
color de la línea a la derecha del identificador en un control deslizante.
RellenoRaílAlMantenerPuntero: al mantener el puntero sobre un control Alternar o deslizante,
color de fondo del rectángulo del primero cuando su valor es false o color de la línea a la derecha
del identificador del segundo.
ReadOnly: indica si un usuario puede cambiar el valor de un control deslizante o el control de
clasificación.
Reset : indica si un control vuelve a su valor predeterminado.
MostrarValor: indica si el valor de un control deslizante o una clasificación aparece cuando el
usuario cambia ese valor o mantiene el puntero sobre el control.
TabIndex : orden de navegación del teclado en relación con otros controles.
Información sobre herramientas : texto explicativo que aparece cuando el usuario mantiene el
puntero sobre un control.
RellenoDeValor: color de fondo del rectángulo en un control Alternar cuando su valor es true o
color de la línea a la izquierda del identificador en un control deslizante.
RellenoValorAlMantenerPuntero: al mantener el puntero del mouse sobre un control Alternar o
Control deslizante, color de fondo del rectángulo del primero cuando su valor es true o color de la
línea a la izquierda del identificador del segundo.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor
primario (la pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario
(la pantalla si no hay un contenedor primario).

Funciones relacionadas
Sum ( Value1; Value2 )

Ejemplo
1. Agregue un botón y establezca su propiedad OnSelect en esta fórmula:
ClearCollect(CityPopulations; {City:"London"; Country:"United Kingdom";
Population:8615000}; {City:"Berlin"; Country:"Germany"; Population:3562000};
{City:"Madrid"; Country:"Spain"; Population:3165000}; {City:"Rome";
Country:"Italy"; Population:2874000}; {City:"Paris"; Country:"France";
Population:2273000}; {City:"Hamburg"; Country:"Germany"; Population:1760000};
{City:"Barcelona"; Country:"Spain"; Population:1602000}; {City:"Munich";
Country:"Germany"; Population:1494000}; {City:"Milan"; Country:"Italy";
Population:1344000})
¿No sabe cómo agregar, nombrar y configurar un control?
¿Desea más información sobre la función ClearCollect u otras funciones?

2. Presione F5, seleccione el botón y presione Esc.


3. Agregue un control deslizante, muévalo debajo del botón y llámelo MinPopulation.
4. Establezca la propiedad Max del control deslizante en 5000000 y la propiedad Min en
1000000.
5. Agregue una galería de texto en orientación vertical, muévala debajo del control deslizante y
establezca la propiedad Elementos de la galería en esta fórmula:
Filter(CityPopulations; Population > MinPopulation)
6. En el primer elemento de la galería, establezca la propiedad Texto de la etiqueta superior en
ThisItem.City y establezca la propiedad Texto de la etiqueta inferior en esta fórmula:
Text(ThisItem.Population; "##,###")
7. Presione F5 y, a continuación, ajuste MinPopulation para que se muestren solo aquellas
ciudades que tengan una población mayor que el valor especificado.
8. Presione Esc para volver al área de trabajo predeterminada.

Directrices de accesibilidad
Contraste de color
Debe haber un contraste de color adecuado entre:
ValueFill y RailFill
ValueHoverFill y RailHoverFill
FocusedBorderColor y el color situado fuera del control
ValueFill y el color de fondo
RailFill y el color de fondo
ValueHoverFill y el color de fondo
RailHoverFill y el color de fondo
Soporte técnico para el lector de pantalla
La propiedad AccessibleLabel debe estar presente.
Compatibilidad con el teclado
La propiedad TabIndex debe ser cero o superior para que los usuarios del teclado puedan
desplazarse hasta él.
Los indicadores de foco deben ser claramente visibles. Use FocusedBorderColor y
FocusedBorderThickness para conseguirlo.
El valor del control deslizante se debe mostrar al interactuar con el teclado. Esto puede lograrse
mediante cualquiera de estos métodos:
Establezca ShowValue en true.
Agregue un control Etiqueta adyacente al control deslizante. Establezca la propiedad
Text de la etiqueta en la propiedad Value del control deslizante.
Control de etiqueta en
aplicaciones de lienzo
12/11/2019 • 13 minutes to read

Cuadro que muestra los datos como texto, números, fechas


o moneda.

Descripción
En una etiqueta se muestran datos que se especifican como
una cadena literal de texto, que aparece exactamente igual
que se escribe o como una fórmula que se analiza como
cadena de texto. Las etiquetas suelen aparecer fuera de
cualquier otro control (por ejemplo, como encabezado que
identifica una pantalla), como una etiqueta que identifica
otro control (por ejemplo, un control de clasificación o de
audio) o en una galería para mostrar un tipo específico de
información sobre un elemento.

Propiedades principales
Autoheight : establézcalo en true para permitir que la
etiqueta crezca automáticamente su alto para mostrar todo
el texto. Establézcalo en false para truncar el texto con el
alto asignado.
Color : el color del texto en un control.
Font : el nombre de la familia de fuentes en la que aparece
el texto.
Text : texto que aparece en un control o que el usuario
escribe en un control.
DelayOutput : establézcalo en true para retrasar la acción
durante la entrada de texto.

Propiedades adicionales
Align : la ubicación del texto respecto al centro horizontal
de su control.
AutoHeight: indica si una etiqueta aumenta
automáticamente su propiedad Altura si su propiedad
Texto contiene más caracteres de los que el control permite
mostrar a la vez.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed,
Dotted o None.
BorderThickness : el grosor de un borde del control.
DisplayMode : indica si el control permite entradas de
usuario (Edit), solo muestra datos (View) o si está
deshabilitado (Disabled).
DisabledBorderColor : el color de un borde del control si
la propiedad DisplayMode del control está establecida en
Disabled.
DisabledColor : el color del texto en un control si su
propiedad DisplayMode está establecida en Disabled.
DisabledFill : el color de fondo de un control si su
propiedad DisplayMode está establecida en Disabled.
Fill : el color de fondo de un control.
FocusedBorderColor : el color del borde de un control
cuando el control recibe el foco.
FocusedBorderThickness : el grosor del borde de un
control cuando el control recibe el foco.
FontWeight : el peso del texto en un control: Bold,
Semibold, Normal o Lighter.
Height : la distancia entre los bordes superior e inferior de
un control.
HoverBorderColor : el color de un borde del control
cuando el usuario mantiene el puntero del mouse sobre ese
control.
HoverColor : el color del texto de un control cuando el
usuario mantiene el puntero del mouse sobre él.
HoverFill : el color de fondo de un control cuando el
usuario mantiene el puntero del mouse sobre él.
Italic : indica si el texto de un control está en cursiva.
AlturaDeLínea : distancia entre, por ejemplo, líneas de
texto o elementos de una lista.
Live : Cómo anuncia un lector de pantalla los cambios en el
valor de la propiedad Text de la etiqueta.
Cuando se establece en OFF, el lector de pantalla no
anuncia cambios.
Cuando se establece en educado, el lector de pantalla
termina de hablar antes de anunciar los cambios que se
produjeron mientras estaba hablando el lector de
pantalla.
Cuando se establece en assertive, el lector de pantalla
se interrumpe para anunciar los cambios que se
produjeron mientras estaba hablando el lector de
pantalla.
OnSelect : indica cómo responde la aplicación cuando el
usuario toca o hace clic en un control.
Desbordamiento: indica si aparece una barra de
desplazamiento en una etiqueta si su propiedad Ajustar
está establecida en true y el valor de la propiedad Texto
del control contiene más caracteres de los que el control
permite mostrar a la vez.
RellenoInferior : distancia entre el texto de un control y el
borde inferior de ese control.
RellenoIzquierdo : distancia entre el texto de un control y
el borde izquierdo de ese control.
RellenoDerecho : distancia entre el texto de un control y el
borde derecho de ese control.
RellenoSuperior : distancia entre el texto de un control y el
borde superior de ese control.
PressedBorderColor : el color de un borde del control
cuando el usuario toca o hace clic en ese control.
PressedColor : el color de texto de un control cuando el
usuario toca o hace clic en ese control.
PressedFill : el color de fondo de un control cuando el
usuario toca o hace clic en ese control.
Role : el rol semántico del texto de la etiqueta, como
encabezado 1. No cambia el estilo de la etiqueta, pero hace
que la salida sea semánticamente correcta para que la
interpreten los lectores de pantalla.
Size : el tamaño de la fuente del texto que aparece en un
control.
Strikethrough : indica si aparece una línea sobre el texto
de un control.
TabIndex : orden de navegación del teclado en relación
con otros controles.
Información sobre herramientas : texto explicativo que
aparece cuando el usuario mantiene el puntero sobre un
control.
Underline : indica si aparece una línea debajo del texto de
un control.
VerticalAlign : la ubicación del texto en un control
respecto al centro vertical de ese control.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de
un control.
Ajustar: indica si el texto que es demasiado largo para
caber en una etiqueta se ajusta a la línea siguiente.
X : la distancia entre el borde izquierdo de un control y el
borde izquierdo de su contenedor primario (la pantalla si
no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el
borde superior de su contenedor primario (la pantalla si no
hay un contenedor primario).

Funciones relacionadas
Text( Number; "FormatCodes" )

Ejemplos
Mostrar una cadena literal
Agregue una etiqueta y establezca su propiedad
Texto en "Hola, mundo" (dobles comillas
incluidas).
¿No sabe cómo agregar y configurar un control?

Mostrar el resultado de una fórmula


Agregue una etiqueta y establezca su propiedad
Texto en una fórmula como esta:
Today()

NOTE
Al especificar una fórmula, no use comillas, a menos
que un argumento de la misma sea una cadena literal.
En ese caso, incluya el argumento, no la fórmula, con
comillas inglesas.

¿Desea más información sobre la función Today u


otras funciones?
Mostrar datos en una galería
En este procedimiento, creará una colección, denominada
CityPopulations, que contiene datos sobre la población de
varias ciudades de Europa. A continuación, mostrará los
datos de una galería que contengan tres etiquetas y
especificará el tipo de datos que se mostrará en cada
etiqueta.
1. Agregue un botón y establezca su propiedad
OnSelect en esta fórmula:
ClearCollect(CityPopulations; {City:"London";
Country:"United Kingdom";
Population:8615000}; {City:"Berlin";
Country:"Germany"; Population:3562000};
{City:"Madrid"; Country:"Spain";
Population:3165000}; {City:"Rome";
Country:"Italy"; Population:2874000};
{City:"Paris"; Country:"France";
Population:2273000}; {City:"Hamburg";
Country:"Germany"; Population:1760000};
{City:"Barcelona"; Country:"Spain";
Population:1602000}; {City:"Munich";
Country:"Germany"; Population:1494000};
{City:"Milan"; Country:"Italy";
Population:1344000})
2. Presione F5, seleccione el botón y presione Esc.
3. Agregue una galería de texto y establezca su
propiedad Elementos en CityPopulations.
Con la galería seleccionada, el panel derecho
muestra opciones para esa galería.
4. En el panel Gallery1, establezca la lista superior en
Population, la del medio en City y la inferior en
Country.

Directrices de accesibilidad
A pesar de su nombre, un control Etiqueta no tiene que
usarse como etiqueta con otro control. Se puede utilizar
para mostrar cualquier fragmento de texto.
Un control Etiqueta se puede usar como botón o vínculo
mediante la especificación del comportamiento OnSelect .
Cuando se utiliza de este modo, hay algunas
consideraciones sobre accesibilidad parecidas a las que se
tienen con los botones.
Contraste de color
Debe haber un contraste de color adecuado entre:
Color y Fill
Se aplican otros requisitos estándar de contraste de
color (si se usa como botón o vínculo)
Compatibilidad con el lector de pantalla
La propiedad Text debe existir.
Live debe establecerse en educated o assertive si
un lector de pantalla debe anunciar cambios en el
valor de la propiedad Text .

NOTE
Los lectores de pantalla tratan los controles Etiqueta
como botones cuando TabIndex es cero o superior.

Apoyo para deficiencia visual


El control Etiqueta debe parecerse a un vínculo, si se
utiliza como vínculo.
Establezca la propiedad Underline en true.
HoverColor debe ser diferente de Color
Compatibilidad con el teclado
TabIndex debe ser cero o mayor si el texto se utiliza
como botón o vínculo. De esta forma, los usuarios de
teclado pueden navegar hasta él.
Los indicadores de foco deben ser claramente visibles si
el texto se usa como botón o vínculo. Use
FocusedBorderColor y FocusedBorderThickness
para conseguirlo.
Control Entrada de texto en
PowerApps
27/11/2019 • 12 minutes to read

Un cuadro en el que el usuario puede escribir texto, números y otros datos.

Descripción
El usuario puede especificar datos escribiendo en un control Entrada de
texto. Dependiendo de cómo configure la aplicación, puede que esos datos
se agreguen a un origen de datos, usado para calcular un valor temporal, o
que se incorporen de alguna otra manera.

Propiedades principales
Predeterminado : el valor inicial de un control antes de que lo cambie el
usuario.
Text : texto que aparece en un control o que el usuario escribe en un control.

Propiedades adicionales
AccessibleLabel : etiqueta para lectores de pantalla.
Align : la ubicación del texto respecto al centro horizontal de su control.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
Clear: indica si un control Entrada de texto muestra una "X" sobre la que el
usuario puede pulsar o hacer clic para borrar el contenido de ese control.
Color : el color del texto en un control.
DelayOutput: cuando se establece en true, la entrada del usuario se registra
después de un retraso de medio segundo. Resulta útil para retrasar
operaciones costosas hasta que el usuario completa la entrada de texto (es
decir, para el filtrado cuando la entrada se utiliza en otras fórmulas).
DisplayMode : indica si el control permite entradas de usuario (Edit), solo
muestra datos (View) o si está deshabilitado (Disabled).
DisabledBorderColor : el color de un borde del control si la propiedad
DisplayMode del control está establecida en Disabled.
DisabledColor : el color del texto en un control si su propiedad
DisplayMode está establecida en Disabled.
DisabledFill : el color de fondo de un control si su propiedad
DisplayMode está establecida en Disabled.
EnableSpellCheck : indica si un control de entrada de texto debe usar la
función de corrector ortográfico del explorador. Power apps para Windows
no admite esta propiedad.
Fill : el color de fondo de un control.
FocusedBorderColor : el color del borde de un control cuando el control
recibe el foco.
FocusedBorderThickness : el grosor del borde de un control cuando el
control recibe el foco.
Font : el nombre de la familia de fuentes en la que aparece el texto.
FontWeight : el peso del texto en un control: Bold, Semibold, Normal o
Lighter.
Formato: indica si se han restringido las entradas de usuario a solo números
o a cualquier tipo de texto.
Height : la distancia entre los bordes superior e inferior de un control.
TextoDeSugerencia: texto de color gris claro que aparece en un control
Entrada de texto si está vacío.
HoverBorderColor : el color de un borde del control cuando el usuario
mantiene el puntero del mouse sobre ese control.
HoverColor : el color del texto de un control cuando el usuario mantiene el
puntero del mouse sobre él.
HoverFill : el color de fondo de un control cuando el usuario mantiene el
puntero del mouse sobre él.
Italic : indica si el texto de un control está en cursiva.
AlturaDeLínea : distancia entre, por ejemplo, las líneas de texto o los
elementos de una lista.
MaxLength: el número de caracteres que el usuario puede escribir en un
control Entrada de texto.
Mode: el control se encuentra en modo SingleLine, MultiLine o
Password.
AlCambiar : indica cómo responde la aplicación cuando el usuario cambia el
valor de un control (por ejemplo, mediante el ajuste de un control
deslizante).
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace
clic en un control.
RellenoInferior : distancia entre el texto de un control y el borde inferior de
ese control.
RellenoIzquierdo : distancia entre el texto de un control y el borde
izquierdo de ese control.
RellenoDerecho : distancia entre el texto de un control y el borde derecho
de ese control.
RellenoSuperior : distancia entre el texto de un control y el borde superior
de ese control.
PressedBorderColor : el color de un borde del control cuando el usuario
toca o hace clic en ese control.
PressedColor : el color de texto de un control cuando el usuario toca o hace
clic en ese control.
PressedFill : el color de fondo de un control cuando el usuario toca o hace
clic en ese control.
RadiusBottomLeft : el grado al que se redondea la esquina inferior
izquierda de un control.
RadiusBottomRight : el grado al que se redondea la esquina inferior
derecha de un control.
RadiusTopLeft : el grado al que se redondea la esquina superior izquierda
de un control.
RadiusTopRight : el grado al que se redondea la esquina superior derecha
de un control.
Reset : indica si un control vuelve a su valor predeterminado.
Size : el tamaño de la fuente del texto que aparece en un control.
Strikethrough : indica si aparece una línea sobre el texto de un control.
TabIndex : orden de navegación del teclado en relación con otros controles.
Información sobre herramientas : texto explicativo que aparece cuando el
usuario mantiene el puntero sobre un control.
Underline : indica si aparece una línea debajo del texto de un control.
VirtualKeyboardMode : tipo de teclado virtual, texto o numérico que
aparece en la pantalla táctil de un usuario de la aplicación. La propiedad
Format determina el valor predeterminado. La compatibilidad con
dispositivos varía. Los dispositivos que ejecutan iOS deben tener al menos la
versión 12,2. La versión recomendada de Android es 9,0 y las capacidades
de los teclados numéricos varían en los dispositivos Android. Windows 10
no admite esta propiedad.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de
su contenedor primario (la pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de
su contenedor primario (la pantalla si no hay un contenedor primario).

Funciones relacionadas
DateTimeValue( String )

Ejemplos
Recopilación de datos
1. Agregue dos controles Entrada de texto y llámelos inputFirst y
inputLast.
¿No sabe cómo agregar, nombrar y configurar un control?

2. Agregue un botón, establezca su propiedad Texto en Agregar y


establezca su propiedad AlSeleccionar en esta fórmula:
Collect(Names, {FirstName:inputFirst.Text,
LastName:inputLast.Text})
¿Desea más información sobre la función Recopilar u otras
funciones?
3. Agregue una galería de texto en orientación vertical, establezca su
propiedad Elementos en Names y establezca la propiedad Texto de
Subtitle1 en ThisItem.FirstName.
4. (Opcional) En la galería de plantillas, elimine la etiqueta inferior,
llamada Body1 y establezca la propiedad TamañoDePlantilla de la
galería en 80.
5. Presione F5, escriba una cadena de texto en inputFirst y en
inputLasty, a continuación, pulse o haga clic en el botón Agregar.
6. (opcional) Agregue más nombres a la colección y, a continuación,
presione Esc para volver al área de trabajo predeterminada.
Solicitud de una contraseña
1. Agregue un control Entrada de texto, llámelo inputPasswordy
establezca su propiedad Mode en Password.
2. Agregue una etiqueta y establezca su propiedad Texto en esta
fórmula:
If(inputPassword.Text = "P@ssw0rd", "Access granted",
"Access denied")
¿Desea más información sobre la función If u otras funciones?

3. Presione F5 y, a continuación, escriba **P@ssw0rd** en


inputPassword.
Cuando acabe de escribir la contraseña, la etiqueta dejará de
mostrarAcceso denegado y empezará a mostrar Acceso
concedido.
4. Presione Esc para volver al área de trabajo predeterminada.
5. (opcional) Agregue un control como una flecha, configúrelo para
desplazarse a otra pantalla y que solo aparezca después de que el
usuario escriba la contraseña.
6. (opcional) Agregue un botón, configure su propiedad Texto para que
muestre Iniciar sesión, agregue un temporizador y deshabilite el
control Entrada de texto durante un determinado período de tiempo
si el usuario escribe una contraseña incorrecta y, a continuación, pulse
o haga clic en el botón Iniciar sesión.
Directrices de accesibilidad
Contraste de color
Se aplican requisitos estándar de contraste de color.
Soporte técnico para el lector de pantalla
La propiedad AccessibleLabel debe estar presente.
Compatibilidad con el teclado
La propiedad TabIndex debe ser cero o superior para que los usuarios
del teclado puedan desplazarse hasta él.
Los indicadores de foco deben ser claramente visibles. Use
FocusedBorderColor y FocusedBorderThickness para conseguirlo.
Control Temporizador en PowerApps
12/11/2019 • 11 minutes to read

Control que determina la forma en que la aplicación responde una vez transcurrido un tiempo
determinado.

Descripción
Los temporizadores, por ejemplo, determinan el tiempo que un control va a aparecer o cambian
otras propiedades de un control una vez transcurrido un tiempo determinado.

NOTE
En PowerApps Studio, los temporizadores solo se ejecutan en el modo de vista previa.

Propiedades principales
Duración: el tiempo durante el que se ejecuta un temporizador, en milisegundos. No hay valor
máximo.
AlFinalizarTemporizador: respuesta de la aplicación al finalizar la ejecución del temporizador.
Repetir: indica si un temporizador se reinicia automáticamente cuando finaliza la ejecución.

Propiedades adicionales
Align : la ubicación del texto respecto al centro horizontal de su control.
AutoPause: indica si el control de temporizador se pausa automáticamente si el usuario se
desplaza a otra pantalla.
AutoStart: indica si el control de temporizador se empieza a reproducir automáticamente cuando
el usuario se desplaza a la pantalla que contiene ese control.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
Color : el color del texto en un control.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos (View) o
si está deshabilitado (Disabled).
DisabledBorderColor : el color de un borde del control si la propiedad DisplayMode del control
está establecida en Disabled.
DisabledColor : el color del texto en un control si su propiedad DisplayMode está establecida en
Disabled.
DisabledFill : el color de fondo de un control si su propiedad DisplayMode está establecida en
Disabled.
Fill : el color de fondo de un control.
FocusedBorderColor : el color del borde de un control cuando el control recibe el foco.
FocusedBorderThickness : el grosor del borde de un control cuando el control recibe el foco.
Font : el nombre de la familia de fuentes en la que aparece el texto.
FontWeight : el peso del texto en un control: Bold, Semibold, Normal o Lighter.
Height : la distancia entre los bordes superior e inferior de un control.
HoverBorderColor : el color de un borde del control cuando el usuario mantiene el puntero del
mouse sobre ese control.
HoverColor : el color del texto de un control cuando el usuario mantiene el puntero del mouse
sobre él.
HoverFill : el color de fondo de un control cuando el usuario mantiene el puntero del mouse sobre
él.
Italic : indica si el texto de un control está en cursiva.
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace clic en un control.
AlIniciarTemporizador: respuesta de la aplicación cuando se inicia un temporizador.
PressedBorderColor : el color de un borde del control cuando el usuario toca o hace clic en ese
control.
PressedColor : el color de texto de un control cuando el usuario toca o hace clic en ese control.
PressedFill : el color de fondo de un control cuando el usuario toca o hace clic en ese control.
Reset : indica si un control vuelve a su valor predeterminado.
Size : el tamaño de la fuente del texto que aparece en un control.
Start: indica si el temporizador se inicia.
Strikethrough : indica si aparece una línea sobre el texto de un control.
TabIndex : orden de navegación del teclado en relación con otros controles.
Text : texto que aparece en un control o que el usuario escribe en un control.
Información sobre herramientas : texto explicativo que aparece cuando el usuario mantiene el
puntero sobre un control.
Underline : indica si aparece una línea debajo del texto de un control.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor
primario (la pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario
(la pantalla si no hay un contenedor primario).

Funciones relacionadas
Refresh( DataSource )
Ejemplos
Mostrar una cuenta atrás
1. Agregue un temporizador y asígnele el nombre Countdown.
¿No sabe cómo agregar, nombrar y configurar un control?

2. Establezca la propiedad Duration en 10000 y sus propiedades Repetir e


IniciarAutomáticamente en true.
3. (opcional) Configure la propiedad Altura en 160, su propiedad Altura en 600 y su
propiedad Size en 60 para facilitar la lectura del temporizador.
4. Agregue una etiqueta y establezca su propiedad Text en esta fórmula:
"Number of seconds remaining: " & RoundUp(10-Countdown.Value/1000; 0)
¿Desea más información sobre la función RedondearMas u otras funciones?

La etiqueta muestra cuántos segundos quedan para que se reinicie el temporizador.


Animar un control
1. Agregue un temporizador y asígnele el nombre FadeIn.
¿No sabe cómo agregar, nombrar y configurar un control?

2. Establezca la propiedad Duration del temporizador en 5000, su propiedad Repeat en true


y su propiedad Text en Toggle animation.
3. (opcional) Configure la propiedad Altura en 160, su propiedad Altura en 600 y su
propiedad Size en 60 para facilitar la lectura del temporizador.
4. Agregue una etiqueta y establezca su propiedad Texto para que muestre el mensaje
Welcome! y establezca su propiedad Color con esta fórmula:
ColorFade(Color.BlueViolet; FadeIn.Value/5000)
¿Desea más información sobre la función ColorFade u otras funciones?

5. Seleccione el botón de temporizador para iniciar o detener la animación. El texto de la


etiqueta se difumina a blanco, recupera su intensidad y el proceso se repite.

Directrices de accesibilidad
Las mismas instrucciones para el control de botón se aplican al control de temporizador si los
usuarios pueden interactuar con él.
Temporizadores de fondo
Los temporizadores en segundo plano se ejecutan automáticamente y están ocultos. Úselos en un
rol de soporte en el que el tiempo transcurrido sea de poca interés para el usuario. Por ejemplo,
puede actualizar los datos cada minuto o mostrar un mensaje de notificación solo durante un
período de tiempo determinado.
Los temporizadores de fondo deben tener la propiedad visible establecida en false para que estén
ocultos para todos los usuarios.
Consideraciones de sincronización
Si un temporizador se ejecuta automáticamente, considere si los usuarios tienen tiempo suficiente
para leer y usar el contenido. Los usuarios de teclado y de lectura de pantalla pueden necesitar más
tiempo para reaccionar a un evento con hora.
Cualquiera de estas estrategias es suficiente:
Permite a los usuarios cancelar el evento con hora.
Permite a los usuarios ajustar el límite de tiempo antes de comenzar.
Advierta 20 segundos antes de que expire el límite de tiempo y proporcione una manera fácil de
ampliar el límite.
Algunos escenarios están exentos de estos requisitos. Aprenda más sobre las directrices de WCAG
2.0 para los límites de tiempo.
Soporte técnico para el lector de pantalla
Si un temporizador desencadena cambios en la pantalla actual, use una región activa para
indicar a los usuarios del lector de pantalla lo que ha cambiado.

NOTE
Si el temporizador está visible y en ejecución, los lectores de pantalla anunciarán el tiempo
transcurrido cada cinco segundos.

No use la propiedad texto de un control para obtener información importante y sensible al


tiempo. Los lectores de pantalla no anunciarán cambios en el texto .
Para temporizadores interactivos:
La propiedad Text debe existir.
Considere la posibilidad de agregar un control etiqueta para mostrar el tiempo
transcurrido. Use la propiedad Text del temporizador para indicar al usuario que inicie o
detenga el temporizador.
Control Alternar en PowerApps
12/11/2019 • 8 minutes to read

Control que el usuario puede activar o desactivar al mover su identificador.

Descripción
Alternar está diseñado para las interfaces gráficas de usuario recientes pero se comporta igual que una
casilla.

Propiedades principales
Predeterminado : el valor inicial de un control antes de que lo cambie el usuario.
Valor : el valor de un control de entrada.

Propiedades adicionales
AccessibleLabel : etiqueta para lectores de pantalla.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos (View) o si
está deshabilitado (Disabled).
DisabledBorderColor : el color de un borde del control si la propiedad DisplayMode del control está
establecida en Disabled.
FalseFill: el color de relleno de alternancia cuando la alternancia está desactivada.
FalseHoverFill: el color de relleno al mantener de alternancia cuando la alternancia está desactivada.
FalseText: el texto que se muestra cuando la alternancia está desactivada.
Fill : el color de fondo de un control.
FocusedBorderColor : el color del borde de un control cuando el control recibe el foco.
FocusedBorderThickness : el grosor del borde de un control cuando el control recibe el foco.
HandleFill: el color de relleno del controlador de alternancia.
Height : la distancia entre los bordes superior e inferior de un control.
HoverBorderColor : el color de un borde del control cuando el usuario mantiene el puntero del mouse
sobre ese control.
AlCambiar : indica cómo responde la aplicación cuando el usuario cambia el valor de un control (por
ejemplo, mediante el ajuste de un control deslizante).
AlActivar: respuesta de una aplicación cuando el valor de una casilla o de un control Alternar cambia a
true.
OnSelect : indica cómo responde la aplicación cuando el usuario toca o hace clic en un control.
AlDesactivar: respuesta de una aplicación cuando el valor de una casilla o de un control Alternar cambia
a false.
PressedBorderColor : el color de un borde del control cuando el usuario toca o hace clic en ese control.
RellenoDeRaíl: color de fondo del rectángulo en un control Alternar cuando su valor es false o color de
la línea a la derecha del identificador en un control deslizante.
RellenoRaílAlMantenerPuntero: al mantener el puntero sobre un control Alternar o deslizante, color
de fondo del rectángulo del primero cuando su valor es false o color de la línea a la derecha del
identificador del segundo.
Reset : indica si un control vuelve a su valor predeterminado.
ShowLabel: indica si se muestra una etiqueta de texto al lado del control de alternancia.
TabIndex : orden de navegación del teclado en relación con otros controles.
TextPosition: indica si la etiqueta está a la izquierda o la derecha del control de alternancia.
Información sobre herramientas : texto explicativo que aparece cuando el usuario mantiene el puntero
sobre un control.
TrueFill: color de relleno de alternancia cuando la alternancia está activada.
TrueHoverFill: color de relleno al mantener de alternancia cuando la alternancia está activada.
TrueText: el texto que se muestra cuando la alternancia está activada.
RellenoDeValor: color de fondo del rectángulo en un control Alternar cuando su valor es true o color de
la línea a la izquierda del identificador en un control deslizante.
RellenoValorAlMantenerPuntero: al mantener el puntero del mouse sobre un control Alternar o
Control deslizante, color de fondo del rectángulo del primero cuando su valor es true o color de la línea a
la izquierda del identificador del segundo.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario (la
pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario (la
pantalla si no hay un contenedor primario).

Funciones relacionadas
If( Condition; Result )

Ejemplo
1. Agregue un control Alternar y asígnele el nombre MemberDiscount.
¿No sabe cómo agregar, nombrar y configurar un control?

2. Agregue una etiqueta y establezca su propiedad Text en esta fórmula:


If(MemberDiscount.Value = true; "Price: $75"; "Price: $100")
¿Desea más información sobre la función If u otras funciones?
3. Presione F5 y cambie el valor de MemberDiscount.
La etiqueta muestra un precio distinto, en función de si MemberDiscount está activado o
desactivado.
4. Presione Esc para volver al área de trabajo predeterminada.

Directrices de accesibilidad
Contraste de color
Debe haber un contraste de color adecuado entre:
HandleFill y FalseFill
HandleFill y FalseHoverFill
HandleFill y TrueFill
HandleFill y TrueHoverFill
FalseFill y el color de fuera de control
FalseHoverFill y el color de fuera de control
TrueFill y el color de fuera de control
TrueHoverFill y el color de fuera de control
Y esto, además de los requisitos estándar de contraste de color.
Soporte técnico para el lector de pantalla
La propiedad AccessibleLabel debe estar presente.
La propiedad FalseText debe existir.
La propiedad TrueText debe existir.
Apoyo para deficiencia visual
Considere la posibilidad de configurar ShowLabel como true para que los usuarios puedan
determinar rápidamente el valor de alternancia.
Compatibilidad con el teclado
La propiedad TabIndex debe ser cero o superior para que los usuarios del teclado puedan
desplazarse hasta él.
Los indicadores de foco deben ser claramente visibles. Use FocusedBorderColor y
FocusedBorderThickness para conseguirlo.
Controles Audio y Vídeo en
PowerApps
06/11/2019 • 11 minutes to read

Un control que reproduce un archivo de audio, un archivo de vídeo o un vídeo en


YouTube.

Descripción
Un control Audio reproduce una secuencia de sonido de un archivo, una grabación de
un control Micrófono o el audio de una pista de audio de un archivo de vídeo.
Un control Vídeo reproduce una secuencia de vídeo de un archivo o de YouTube o
Azure Media Services. Opcionalmente, se pueden mostrar subtítulos cuando se
especifique.

Propiedades principales
Bucle: indica si una secuencia de audio o vídeo empieza de nuevo automáticamente en
cuanto termina de reproducirse.
Multimedia: un identificador de la secuencia que reproduce un control de audio o de
vídeo.
MostrarControles: indica si se muestra un reproductor de audio o vídeo, por ejemplo,
un botón de reproducción y un control deslizante de volumen, y un control de entrada
manuscrita muestra, por ejemplo, iconos para dibujar, borrar y borrar todo.

Propiedades adicionales
AccessibleLabel : etiqueta para lectores de pantalla. Debe ser el título de la secuencia
de vídeo o audio.
PausarAutomáticamente: indica si un clip de audio o vídeo se detiene
automáticamente si el usuario se desplaza a otra pantalla.
IniciarAutomáticamente: indica si un control de audio o vídeo empieza a reproducir
automáticamente un clip cuando el usuario navega a la pantalla que contiene ese
control.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
ClosedCaptionsUrl: solo control de vídeo. Dirección URL del archivo de los subtítulos
en formato de WebVTT. Ambas direcciones URL, la del vídeo y la de los subtítulos,
deben ser HTTPS. El servidor que hospede los archivos de vídeo y los subtítulos debe
tener CORS habilitado.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra
datos (View) o si está deshabilitado (Disabled).
Fill : el color de fondo de un control.
FocusedBorderColor : el color del borde de un control cuando el control recibe el
foco.
FocusedBorderThickness : el grosor del borde de un control cuando el control recibe
el foco.
Height : la distancia entre los bordes superior e inferior de un control.
Imagen : el nombre de la imagen que aparece en un control de imagen, audio o
micrófono.
PosiciónDeLaImagen : posición (Rellenar, Ajustar, Estirar, Icono o Centrar) de
una imagen en una pantalla o un control, si no tiene el mismo tamaño que la imagen.
AlFinalizar: indica cómo una aplicación responde cuando finaliza la reproducción de
una secuencia de audio o de vídeo.
AlPausar: indica cómo responde una aplicación cuando el usuario pausa la secuencia
que está reproduciendo un control de audio o de vídeo.
AlIniciar: indica cómo la aplicación responde cuando el usuario comienza a grabar
con un control de micrófono.
Paused: true si un control de reproducción multimedia está actualmente en pausa, de
lo contrario false.
Reset : indica si un control vuelve a su valor predeterminado.
Inicio: indica si se reproduce un clip de audio o vídeo.
HoraDeInicio: la hora después del inicio de una secuencia de audio o de vídeo
cuando la secuencia empieza a reproducirse.
Time: posición actual del control multimedia.
TabIndex : orden de navegación del teclado en relación con otros controles.
Información sobre herramientas : texto explicativo que aparece cuando el usuario
mantiene el puntero sobre un control.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su
contenedor primario (la pantalla si no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su
contenedor primario (la pantalla si no hay un contenedor primario).

Funciones relacionadas
First( TableName )

Ejemplos
Reproducir un archivo de audio o de vídeo
1. En el menú Archivo, pulse o haga clic en Multimedia, pulse o haga clic en
Vídeos o Audio y, luego, pulse o haga clic en Examinar.
2. Busque el archivo que desea usar, pulse o haga clic en él y, luego, pulse o haga
clic en Abrir.
3. Presione Esc para volver al área de trabajo predeterminada, agregue un control
Audio o Vídeo y establezca su propiedad Multimedia en el archivo que ha
agregado.
¿No sabe cómo agregar y configurar un control?

4. Presione F5 y, a continuación, reproduzca la secuencia haciendo clic o pulsando


en el botón de reproducción del control que ha agregado.

TIP
El botón de reproducción del control Vídeo aparece cuando mantiene el puntero
sobre el control.

5. Presione Esc para volver al área de trabajo predeterminada.


Reproducir un vídeo de YouTube
1. Agregue un control Vídeo y establezca su propiedad Multimedia en la dirección
URL del vídeo de YouTube entre comillas.
2. Presione F5 y, a continuación, reproduzca la secuencia haciendo clic o pulsando en
el botón de reproducción del control Vídeo.
3. Presione Esc para volver al área de trabajo predeterminada.
Reproducción de un vídeo desde Azure Media Services
1. Una vez que los vídeos se publiquen en AMS, copie la dirección URL del
manifiesto. Inicie el punto de conexión de streaming del servicio, si no lo ha hecho
todavía.
2. Agregue un control Vídeo y establezca su propiedad Multimedia en la dirección
URL del vídeo de AMS entre comillas.
3. Presione F5 y, a continuación, reproduzca la secuencia haciendo clic o pulsando en
el botón de reproducción del control Vídeo.
4. Presione Esc para volver al área de trabajo predeterminada.

Directrices de accesibilidad
Alternativas de audio y vídeo
ShowControls debe configurarse en true para que los usuarios puedan escuchar o
ver elementos multimedia a su propio ritmo. Esto también permite a los usuarios
activar o desactivar subtítulos y el modo de pantalla completa en los reproductores
de vídeo.
Deben proporcionarse subtítulos para los vídeos.
En el caso de los vídeos de YouTube, utilice las herramientas de creación
proporcionadas por YouTube para agregar subtítulos.
Para otros vídeos, cree subtítulos en formato WebVTT, cárguelos y configure
el valor ClosedCaptionsUrl con la ubicación de la dirección URL. Existen
varias limitaciones. Es necesario que los servidores que hospedan vídeo y
subtítulos estén habilitados para CORS y los controlen mediante el
protocolo HTTPS. Los subtítulos no funcionan en Internet Explorer.
Considere la posibilidad de proporcionar una transcripción de audio o vídeo con
uno de estos métodos:
1. Ponga el texto en un elemento Label y colóquelo junto al reproductor
multimedia. Opcionalmente, puede crear un elemento Button para alternar
la presentación del texto.
2. Coloque el texto en otra pantalla. Cree un elemento Button que vaya a la
pantalla y colóquelo junto al reproductor multimedia.
3. Si la descripción es breve, puede colocarse en AccessibleLabel .
Contraste de color
Debe haber un contraste de color adecuado entre:
FocusedBorderColor y el color exterior
Image y los controles del reproductor multimedia (si procede)
Fill y los controles del reproductor multimedia (si el relleno está visible)
Proporcione subtítulos o transcripción si el contenido de vídeo tiene problemas de
contraste de color.
Soporte técnico para el lector de pantalla
La propiedad AccessibleLabel debe estar presente.
Compatibilidad con el teclado
La propiedad TabIndex debe ser cero o superior para que los usuarios del teclado
puedan desplazarse hasta él.
Los indicadores de foco deben ser claramente visibles. Use FocusedBorderColor y
FocusedBorderThickness para conseguirlo.
AutoStart debe ser false porque puede ser difícil para los usuarios del teclado
detener la reproducción rápidamente.
Código de barras Web: control de escáner
(experimental) en PowerApps
12/11/2019 • 5 minutes to read

El control de exploración de código de barras heredado, que está obsoleto, pero podría ser útil para examinar
códigos en un explorador Web.

Descripción
El control muestra la fuente de la cámara en la aplicación para que los usuarios puedan examinar códigos de
barras en todos los dispositivos. El control está obsoleto debido a un rendimiento deficiente y el control de
escáner de código de barras móvil reemplaza a este control.

Propiedades principales
escáner de código de barras: en un dispositivo que tenga más de un escáner de códigos de barras, el
identificador numérico del escáner de códigos de barras que usa la aplicación.

Propiedades adicionales
AccessibleLabel : etiqueta para lectores de pantalla.
BorderColor : el color de un borde del control.
BorderStyle : si el borde del control es Solid, Dashed, Dotted o None.
BorderThickness : el grosor de un borde del control.
DisplayMode : indica si el control permite entradas de usuario (Edit), solo muestra datos (View) o si está
deshabilitado (Disabled).
Height : la distancia entre los bordes superior e inferior de un control.
ShowLiveBarcodeDetection: indica si se muestran indicaciones visuales para señalar el estado de la detección
de códigos de barras. Los rectángulos amarillos representan áreas que se van a examinar. Una línea verde que
atraviesa un rectángulo indica la identificación correcta del código de barras.
Stream: la imagen se actualiza automáticamente en la propiedad TasaSecuencia.
TasaSecuencia: la frecuencia de actualización de la imagen en la propiedad Stream, en milisegundos. Este valor
puede oscilar entre 100 (1/10 centésimas de segundo) y 3 600 000 (1 hora).
Text: valor del código de barras que el escáner identificó por última vez.
Información sobre herramientas : texto explicativo que aparece cuando el usuario mantiene el puntero sobre un
control.
Visible : indica si un control aparece o está oculto.
Width : la distancia entre los bordes derecho e izquierdo de un control.
X : la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario (la pantalla si
no hay un contenedor primario).
Y : la distancia entre el borde superior de un control y el borde superior de su contenedor primario (la pantalla si
no hay un contenedor primario).

Funciones relacionadas
Patch( DataSource; BaseRecord; ChangeRecord )

Ejemplo
Agregar fotos a un control Galería de imágenes
1. Agregue un control Escáner de código de barras y denomínelo Mybarcode scanner
¿No sabe cómo agregar, nombrar y configurar un control?

2. Agregue un control etiqueta y establezca su salida en la propiedad texto del escáner del código de barras.
3. Digitalice un código de barras del tipo establecido en la propiedad BarcodeType .
La etiqueta muestra el código de barras escaneado.

Directrices de accesibilidad
Alternativas de vídeo
Considere la posibilidad de agregar un control Etiqueta con su propiedad Text establecida en el texto del
escáner de código de barras. Puesto que el escáner de código de barras no muestra el valor de código de
barras identificado, al realizar el paso anterior el escáner se vuelve disponible para todos, y no solo para
aquellos con discapacidades visuales.
Soporte técnico para el lector de pantalla
La propiedad AccessibleLabel debe estar presente.

NOTE
Los lectores de pantalla anunciarán cuando se encuentre un nuevo código de barras. No se anunciará el valor.
Siempre que el código de barras esté a la vista, los lectores de pantalla recordarán al usuario cada cinco segundos
que todavía se está identificando el mismo código de barras.
Propiedades de
accesibilidad de
las aplicaciones
de Canvas
06/11/2019 • 7 minutes to read

Configuración de propiedades que


contribuyen a formas alternativas de
interacción con los controles adecuadas para
los usuarios con discapacidades.

Propiedades
AccessibleLabel: etiqueta para lectores de
pantalla. Un valor vacío para los controles
Imagen, Icono y Forma hará que el lector de
pantalla no los vea y los trate como adornos.
En directo : cómo los lectores de pantalla
deben anunciar cambios en el contenido.
Solo está disponible en el control etiqueta .
Cuando se establece en OFF, el lector de
pantalla no anuncia cambios.
Cuando se establece en educado, el
lector de pantalla termina de hablar antes
de anunciar los cambios que se
produjeron mientras estaba hablando el
lector de pantalla.
Cuando se establece en assertive, el
lector de pantalla se interrumpe para
anunciar los cambios que se produjeron
mientras estaba hablando el lector de
pantalla.
Obtenga información sobre cómo anunciar
cambios dinámicos con regiones activas.
TabIndex : determina si el control participa
en la navegación con el teclado.
La navegación mediante el teclado es un
aspecto importante de cualquier aplicación.
Para muchos, el teclado es más eficaz que
usar la función táctil o un mouse y permite
que los lectores de pantalla tengan
discapacidades visuales. El orden de
navegación debe:
Reflejar lo que se verá visualmente.
Solo tiene una tabulación en los
controles que son interactivos.
Siga un orden intuitivo y luego hacia
abajo "Z" o hacia abajo y después por
orden "inverso-N".
Los requisitos anteriores se cumplirán con
los valores de TabIndex predeterminados y
se recomienda que no los cambie. El valor
predeterminado es lo que la mayoría de los
usuarios esperan visualmente y funcionará
bien con un lector de pantalla. Sin embargo,
puede haber casos en los que desee
invalidar el valor predeterminado. Use la
propiedad TabIndex y el control de Grupo
mejorado (experimental) para realizar
ajustes en el orden de navegación.
La propiedad TabIndex tiene dos valores
recomendados:

VALOR
VALOR DE COMPORTAMI PREDETERMIN
TABINDEX ENTO ADO PARA

0 El control Botón,
participa en entrada de
la navegación texto,
con el cuadro
teclado. combinadoy
otros
controles
normalmente
interactivos.

−1 El control no Etiqueta,
participa en imagen,
la navegación iconoy otros
con el controles que
teclado. normalmente
no son
interactivos.

Generalmente, el orden de navegación va de


izquierda a derecha y de arriba abajo, en un
patrón "Z". El orden se basa en los valores
de las propiedades X e y de los controles.
Si los controles se mueven dinámicamente
en la pantalla (por ejemplo, al tener una
fórmula para X o Y basada en un
temporizador u otro control), el orden de
navegación también cambiará
dinámicamente.
Utilice el control de Grupo mejorado
(experimental) para agrupar los controles
que se deben navegar juntos o para crear
columnas en un patrón "inverso-N". En la
parte superior del ejemplo siguiente, los
campos de nombre están incluidos en un
control de grupo mejorado, lo que hace que
la navegación continúe antes de moverse. En
la parte inferior del ejemplo, no se usa
ningún control de grupo y la navegación
continúa hacia arriba y luego hacia abajo
como normal, lo que no es intuitivo dado las
agrupaciones de control.

Del mismo modo, la tabulación de los


contenedores, como los controles de
formulario y de Galería , navegará por
todos los elementos del contenedor antes de
continuar con el siguiente control fuera del
contenedor.
Los controles que tienen un valor de
propiedad visible de false o un valor de
propiedad DisplayMode de Disabled no
se incluyen en la navegación.
Al usar un explorador, el desplazamiento
desde el último control de la pantalla se
moverá a los controles integrados del
explorador, como la dirección URL.
WARNING
Evite valores de TabIndex mayores que 0. En
última instancia, los controles se representan
en HTML en los que incluso el W3C ha
advertido de que se recomienda
encarecidamente que los autores no utilicen
estos valores. Muchas herramientas HTML
avisan de valores mayores que 0, al igual que
el Comprobador de aplicaciones cuando
informa de la comprobación del orden de los
elementos de la pantalla. Todo por una buena
razón: el uso de TabIndex de esta manera
puede ser muy difícil de obtener y puede
hacer que las tecnologías de asistencia como
los lectores de pantalla no se puedan usar.
Cuando existen controles con TabIndex
mayor que 0, los usuarios navegarán a los
controles con valores de TabIndex cada vez
mayores (1, después 2, etc.). Cuando los
usuarios hayan navegado por todos los
controles con valores de TabIndex positivos,
finalmente navegarán a los controles con
TabIndex de 0, incluidos los controles
integrados del explorador. Cuando hay varios
controles con el mismo TabIndex, su
posición X e y determina su orden relativo.
Propiedades de imagen en PowerApps
07/10/2019 • 2 minutes to read

Configure elementos gráficos en su aplicación, incluyendo imágenes, fotos y elementos de un control


de lápiz.
BackgroundImage: nombre de un archivo de imagen que aparece en el fondo de una pantalla.
Se aplica al control Screen .
Image: el nombre de la imagen que aparece en un control de imagen, audio o micrófono.
Se aplica a los controles Audio , Image , Microphone y Video .
ImagePosition: la posición (Fill, Fit, Stretch, Tile o Center) de una imagen en una pantalla o un
control, si no tiene el mismo tamaño que la imagen.
Se aplica a los controles Audio , Image , Microphone , Screen y Video .
Propiedades
de tamaño y
ubicación en
PowerApps
07/10/2019 • 7 minutes to read

Información general
Configure el tamaño de un control
(o un elemento de control) y dónde
se encuentra en relación con la
pantalla en la que está.

Posición
X: la distancia entre el borde
izquierdo de un control y el borde
izquierdo de su contenedor primario
(la pantalla si no hay un contenedor
primario). Para un control Tarjeta
en un contenedor con varias
columnas, esta propiedad determina
la columna en la que aparece la
tarjeta.
Se aplica a los controles Agregar
imagen , Audio , Botón ,
Cámara , Tarjeta , Casilla ,
Gráfico de columnas , Selector
de fecha , Formulario de
presentación , Lista
desplegable , Formulario de
edición , Exportar , Galería ,
Texto HTML , Icono , Imagen ,
Importar , Etiqueta , Gráfico
de líneas , Cuadro de lista ,
Micrófono , Visor de PDF ,
Entrada manuscrita , Gráfico
circular , Botón de selección ,
Clasificación , Forma , Control
deslizante , Entrada de texto ,
Temporizador , Alternar y
Vídeo .
Y: la distancia entre el borde
superior de un control y el borde
superior de su contenedor primario
(la pantalla si no hay un contenedor
primario). Para un control Tarjeta
en un contenedor con varias filas,
esta propiedad determina la fila en
la que aparece la tarjeta.
Se aplica a los controles Agregar
imagen , Audio , Botón ,
Cámara , Tarjeta , Casilla ,
Gráfico de columnas , Selector
de fecha , Formulario de
presentación , Lista
desplegable , Formulario de
edición , Exportar , Galería ,
Texto HTML , Icono , Imagen ,
Importar , Etiqueta , Gráfico
de líneas , Cuadro de lista ,
Micrófono , Visor de PDF ,
Entrada manuscrita , Gráfico
circular , Botón de selección ,
Clasificación , Forma , Control
deslizante , Entrada de texto ,
Temporizador , Alternar y
Vídeo .

Tamaño
Height: la distancia entre los bordes
superior e inferior de un control.
Se aplica a los controles Agregar
imagen , Audio , Botón ,
Cámara , Tarjeta , Casilla ,
Gráfico de columnas , Selector
de fecha , Formulario de
presentación , Lista
desplegable , Formulario de
edición , Exportar , Galería ,
Texto HTML , Icono , Imagen ,
Importar , Etiqueta , Gráfico
de líneas , Cuadro de lista ,
Micrófono , Visor de PDF ,
Entrada manuscrita , Gráfico
circular , Botón de selección ,
Clasificación , Forma , Control
deslizante , Entrada de texto ,
Temporizador , Alternar y
Vídeo .
AutoHeight (AlturaAutomática):
indica si una etiqueta aumenta
automáticamente su altura si su
propiedad Texto contiene más
caracteres de los que el control
permite mostrar.
Se aplica a Etiqueta
Width: la distancia entre los bordes
derecho e izquierdo de un control.
Se aplica a los controles Agregar
imagen , Audio , Botón ,
Cámara , Tarjeta , Casilla ,
Gráfico de columnas , Selector
de fecha , Formulario de
presentación , Lista
desplegable , Formulario de
edición , Exportar , Galería ,
Texto HTML , Icono , Imagen ,
Etiqueta , Importar , Gráfico
de líneas , Cuadro de lista ,
Micrófono , Visor de PDF ,
Entrada manuscrita , Gráfico
circular , Botón de selección ,
Clasificación , Forma , Control
deslizante , Entrada de texto ,
Temporizador , Alternar y
Vídeo .
WidthFit (AjusteDeAncho): indica si
un control crece automáticamente
en la horizontal para llenar el
espacio vacío de un control de
contenedor, como un control
Formulario de edición . Si varias
tarjetas tienen esta propiedad
establecida en true, el espacio se
divide entre ellas. Para más
información, consulte Understand
data form layout in Microsoft
PowerApps (Introducción al diseño
de formularios de datos en
Microsoft PowerApps).
Se aplica a Tarjeta

Relleno
Padding: la distancia entre el texto
de un botón Exportar o Importar y
los bordes de ese botón.
Se aplica a los controles Add
picture , Export y Import .
PaddingBottom: distancia entre el
texto de un control y el borde
inferior de ese control.
Se aplica a los controles Botón ,
Casilla , Gráfico de columnas ,
Selector de fecha , Lista
desplegable , Texto HTML ,
Imagen , Gráfico de líneas ,
Cuadro de lista , Visor de PDF
, Botón de selección , Cuadro
de texto y Entrada de texto .
PaddingLeft: distancia entre el
texto de un control y el borde
izquierdo de ese control.
Se aplica a los controles Botón ,
Casilla , Gráfico de columnas ,
Selector de fecha , Lista
desplegable , Texto HTML ,
Imagen , Gráfico de líneas ,
Cuadro de lista , Visor de PDF
, Botón de selección , Cuadro
de texto y Entrada de texto .
PaddingRight: distancia entre el
texto de un control y el borde
derecho de ese control.
Se aplica a los controles Botón ,
Casilla , Gráfico de columnas ,
Selector de fecha , Lista
desplegable , Texto HTML ,
Imagen , Gráfico de líneas ,
Cuadro de lista , Visor de PDF
, Botón de selección , Cuadro
de texto y Entrada de texto .
PaddingTop: distancia entre el texto
de un control y el borde superior de
ese control.
Se aplica a los controles Botón ,
Casilla , Gráfico de columnas ,
Selector de fecha , Lista
desplegable , Texto HTML ,
Imagen , Gráfico de líneas ,
Cuadro de lista , Visor de PDF
, Botón de selección , Cuadro
de texto y Entrada de texto .

Radio
RadiusBottomLeft: el grado al que
se redondea la esquina inferior
izquierda de un control.
Se aplica a los controles Button ,
Export , Image , Import y Text
input .
RadiusBottomRight: el grado al
que se redondea la esquina inferior
derecha de un control.
Se aplica a los controles Button ,
Export , Image , Import y Text
input .
RadiusTopLeft: el grado al que se
redondea la esquina superior
izquierda de un control.
Se aplica a los controles Button ,
Export , Image , Import y Text
input .
RadiusTopRight: el grado al que se
redondea la esquina superior
derecha de un control.
Se aplica a los controles Button ,
Export , Image , Import y Text
input .
Propiedades de texto
en PowerApps
07/10/2019 • 3 minutes to read

Configure el texto que aparece en un control o en la


información sobre herramientas, como una
sugerencia cuando el usuario escribe datos, y
especifique otras características relacionadas con el
texto.

Apariencia del texto


Font: el nombre de la familia de fuentes en la que
aparece el texto.
Se aplica a los controles Agregar imagen , Botón
, Casilla , Gráfico de columnas , Selector de
fecha , Lista desplegable , Exportar , Texto
HTML , Importar , Gráfico de líneas , Cuadro
de lista , Gráfico circular , Radio , Cuadro de
texto , Entrada de texto y Temporizador .
FontWeight : el peso del texto en un control: Bold,
Semibold, normalo Lighter.
Se aplica a los controles Agregar imagen , Botón
, Casilla , Selector de fecha , Lista desplegable ,
Exportar , Importar , Cuadro de lista , Radio ,
Cuadro de texto , Entrada de texto y
Temporizador .
Italic: indica si el texto de un control está en cursiva.
Se aplica a los controles Agregar imagen , Botón
, Casilla , Selector de fecha , Lista desplegable ,
Exportar , Importar , Cuadro de lista , Radio ,
Cuadro de texto , Entrada de texto y
Temporizador .
Size: tamaño de la fuente del texto que aparece en un
control.
Se aplica a los controles Agregar imagen , Botón
, Casilla , Gráfico de columnas , Selector de
fecha , Lista desplegable , Exportar , Texto
HTML , Importar , Etiqueta , Gráfico de líneas ,
Cuadro de lista , Entrada manuscrita , Gráfico
circular , Radio y Entrada de texto y
Temporizador .
Strikethrough: indica si aparece una línea sobre el
texto de un control.
Se aplica a los controles Agregar imagen , Botón
, Casilla , Lista desplegable , Exportar ,
Importar , Cuadro de lista , Radio , Cuadro de
texto , Entrada de texto y Temporizador .
Underline: indica si aparece una línea debajo del
texto de un control.
Se aplica a los controles Agregar imagen , Botón
, Casilla , Lista desplegable , Exportar ,
Importar , Cuadro de lista , Radio , Cuadro de
texto , Entrada de texto y Temporizador .

Colocación del texto


Align: ubicación del texto respecto al centro
horizontal de su control.
Se aplica a los controles Agregar imagen , Botón
, Exportar , Importar , Radio , Cuadro de texto ,
Entrada de texto y Temporizador .
LineHeight: distancia entre, por ejemplo, líneas de
texto o elementos de una lista.
Se aplica a los controles Cuadro de lista ,
Etiqueta , Radio y Entrada de texto .
VerticalAlign: ubicación del texto en un control
respecto al centro vertical de ese control.
Se aplica a los controles Agregar imagen , Botón
, Casilla , Exportar , Importar y Cuadro de texto
.
Introducción a las fórmulas de aplicación de lienzo
en PowerApps
05/11/2019 • 15 minutes to read

Configure la aplicación de lienzo con fórmulas no solo para calcular valores y realizar otras tareas (como en
Excel), sino también para responder a la entrada del usuario (como una aplicación requiere).
En Excel, se crean fórmulas que, por ejemplo, rellenan celdas y crean tablas y gráficos.
En PowerApps, va a crear fórmulas parecidas al configurar controles en lugar de celdas. Además, va a crear
fórmulas que se aplican específicamente a aplicaciones en lugar de a hojas de cálculo.
Por ejemplo, puede crear una fórmula para determinar cómo responde la aplicación cuando los usuarios
seleccionan un botón, ajustan un control deslizante o proporcionan otra entrada. Estas fórmulas podrían mostrar
una pantalla diferente, actualizar un origen de datos externo a la aplicación o crear una tabla que contiene un
subconjunto de los datos de una tabla existente.
Puede usar fórmulas para una amplia variedad de escenarios. Por ejemplo, puede usar el GPS de su dispositivo,
un control de mapa y una fórmula que use Location.Latitude y Location.Longitude para mostrar su
ubicación actual. A medida que se desplaza, el mapa sigue automáticamente su ubicación.
En este tema se proporciona únicamente información general sobre cómo trabajar con fórmulas. Examine la
referencia sobre fórmulas para más información y la lista completa de funciones, operadores y otros bloques de
creación que puede usar.

Requisitos previos
Regístrese en PowerApps y, luego, inicie sesión con las mismas credenciales que usó para registrase.
Aprenda a configurar un control en PowerApps.

Mostrar un valor simple


En Excel, puede indicar un dato específico, como el número 42 o la frase Hello World, escribiéndolo en una
celda. Esa celda siempre mostrará el dato exactamente como lo escribió. En PowerApps, de forma similar, puede
especificar un dato que no cambia si establece la propiedad Text de una etiqueta en la secuencia exacta de
caracteres que desee, entre comillas dobles.
1. Seleccione Nuevo en el menú Archivo (cerca del borde izquierdo de la pantalla).
2. En Create an app (Crear aplicación), seleccione Diseño de teléfono en el icono Aplicación vacía.
La barra de fórmulas se encuentra en la parte superior de la pantalla.
Esta barra tiene dos partes:
Lista de propiedades: cada pantalla y control tienen un conjunto de propiedades. Use esta lista para
seleccionar una propiedad específica.
Fórmula: la fórmula que se calculará para esta propiedad, compuesta por valores, operadores y
funciones.
En la barra de fórmulas, puede ver y editar las propiedades del control seleccionado o de la
pantalla si no hay controles seleccionados. Se ve el nombre del control seleccionado en la pestaña
Contenido:

Puede cambiar el nombre del control seleccionado en la pestaña Contenido si hace clic en el
nombre.
3. Agregue un control Etiqueta a la pantalla.
Cuando se agrega una etiqueta, la lista de propiedades muestra automáticamente la propiedad Texto ,
que determina lo que se muestra en el control. De forma predeterminada, el valor de esta propiedad es
"Texto" .
4. Establezca el valor de la propiedad Text en "Hello World" escribiendo esa cadena, encerrada entre
comillas dobles, en la barra de fórmulas:

La etiqueta refleja este nuevo valor a medida que lo escribe. Es posible que aparezcan en pantalla iconos
de signos de exclamación amarillos mientras escriba. Estos iconos indican errores, pero desaparecerán
cuando termine de escribir un valor válido. Por ejemplo, una cadena no encerrada entre comillas dobles
no es válida.
En Excel, puede mostrar un número, como 42, escribiéndolo en una celda o escribiendo una fórmula que
se resuelve en ese número, como =SUMA (30;12) . En PowerApps, puede lograr el mismo efecto si
establece la propiedad Texto de un control, como una etiqueta, en 42 o Sum (30;12) . La celda y la
etiqueta mostrarán siempre dicho número, independientemente de los cambios que se produzcan en la
hoja de cálculo o en la aplicación.

NOTE
En PowerApps, no anteponga un signo igual o más a la fórmula como se hace en Excel. La barra de fórmulas trata
todo lo que escribe en ella como fórmula de forma predeterminada. Tampoco debe encerrar una fórmula entre
comillas dobles ("), como hizo antes para especificar una cadena de texto.
5. En la propiedad Texto de la etiqueta, reemplace "Hola mundo" por Sum (1;2;3) .

Mientras escribe, la barra de fórmulas lo ayuda mostrando la descripción y los argumentos esperados
para esta función. Al igual que con la comilla doble final en "Hello World" , la pantalla muestra los signos
de exclamación amarillos para indicar un error hasta que escriba el paréntesis final de esta fórmula:

Cambiar un valor en función de la entrada


En Excel, escriba = a1 + a2 en una celda para mostrar la suma de los valores que contienen las celdas a1 y a2 .
Si uno o ambos de esos valores cambian, la celda que contiene la fórmula muestra automáticamente el
resultado actualizado.

En PowerApps, puede lograr un resultado similar agregando controles a una pantalla y estableciendo sus
propiedades. En este ejemplo se muestra un control de etiqueta denominado Label1 y dos controles de entrada
de texto , denominados TextInput1 y TextInput2.

Con independencia de los números que escriba en los controles de entrada de texto, la etiqueta siempre muestra
la suma de esos números porque su propiedad Texto está establecida en esta fórmula:
TextInput1 + TextInput2

En Excel, puede usar fórmulas de formato condicional para mostrar, por ejemplo, valores negativos en rojo. En
PowerApps, puede usar fórmulas para determinar no solo el valor principal de un control, sino propiedades
como el formato. En el ejemplo siguiente, una fórmula para la propiedad color de la etiqueta muestra
automáticamente los valores negativos en rojo. El aspecto de la función If debería resultarle familiar de Excel:
If( Value(Label1.Text) < 0; Red; Black )
Cambiar un color en función de la entrada de usuario
Puede configurar la aplicación con fórmulas para que los usuarios puedan cambiar su apariencia o
comportamiento. Por ejemplo, puede crear un filtro para mostrar solo los datos que contengan una cadena de
texto especificada por el usuario o puede permitir que los usuarios ordenen un conjunto de datos por una
columna determinada del conjunto de datos. En este procedimiento, permitirá que los usuarios cambien el color
de la pantalla mediante uno o varios controles deslizantes.
1. Quite los controles de los procedimientos anteriores o cree una aplicación vacía como hizo antes y
agréguele tres controles deslizantes:

2. Organice los controles deslizantes de forma que no se superpongan, agregue tres etiquetas y configúrelas
para que muestren Rojo, Verde y Azul:
3. Establezca la propiedad Max de cada control deslizante en 255, que es el valor máximo de un
componente de color para la función RGBA .
Puede especificar la propiedad Max si la selecciona en la pestaña Contenido o en la lista de propiedades:

4. Haga clic fuera de cualquier control para seleccionar la pantalla y establezca la propiedad Fill de esta en
esta fórmula:
RGBA ( Slider1.Value; Slider2.Value; Slider3.Value; 1 )
Como ya se ha descrito, para acceder a las propiedades de un control, use el operador " . " . Slider1.Value
se refiere a la propiedad Value del control deslizante, que refleja el lugar donde el usuario ha colocado el
control deslizante entre los valores Min y Max. A medida que escribe esta fórmula, cada control que la
contenga se marca con un color entre la pantalla y la barra de fórmulas:

Al escribir el paréntesis de cierre, el fondo de la pantalla cambiará a gris oscuro basándose en el valor
predeterminado de cada control deslizante, que es 50. En cuanto termine de escribir la fórmula, se calcula
y se usa como valor del color de relleno de fondo. Puede interactuar con la aplicación en el área de
trabajo predeterminada sin necesidad de abrir Vista previa:
5. Ajuste los controles deslizantes y vea cómo los cambios afectan al color de fondo.
A medida que cambia cada control deslizante, la fórmula que contiene la función RGBA se vuelve a
calcular, lo que cambia inmediatamente la apariencia de la pantalla.
Administrar el comportamiento de la aplicación
Puede usar fórmulas no solo para realizar cálculos y cambiar la apariencia, sino también para llevar a cabo
acciones. Por ejemplo, puede establecer la propiedad OnSelect de un botón en una fórmula que incluya la
función Navigate . Cuando un usuario selecciona ese botón, aparece la pantalla que especifique en la fórmula.
Puede usar algunas funciones, como Navigate y Collect , solo en fórmulas de comportamiento. En la referencia
sobre fórmulas, se indica si una función se puede usar solo en este contexto.
Puede usar más de una acción en una fórmula de comportamiento si separa las funciones con un punto y coma
(;). Por ejemplo, podría actualizar una variable de contexto, insertar datos en un origen de datos y finalmente ir a
otra pantalla.

Ver una lista de propiedades por categoría


En la lista de propiedades, estas se muestran por orden alfabético, aunque también puede ver todas las
propiedades de un control, organizadas por categorías, si selecciona la opción Avanzada en la pestaña Vista:
Puede editar las fórmulas directamente en esta vista. Con el selector del control en la parte superior del panel,
puede buscar rápidamente un control con el que trabajar. Además, con la búsqueda de propiedades, puede
buscar rápidamente una propiedad de ese control.
En un principio, esta vista muestra las propiedades más importantes. Para mostrar todas, haga clic en la flecha
abajo de la parte inferior del panel. Cada control posee una larga lista de propiedades que controlan todos los
aspectos de su comportamiento y apariencia. Para buscar una propiedad, puede desplazarse por la lista o
escribir en el cuadro de la parte superior del panel.

Sintaxis de las fórmulas


A medida que escribe una fórmula en la barra de fórmulas, los elementos de sintaxis diferente aparecerán en
distintos colores para mejorar la legibilidad y ayudarle a comprender las fórmulas largas. Esta es la lista de
códigos de color de PowerApps.
Comprender las variables de aplicaciones de lienzo en PowerApps
05/11/2019 • 32 minutes to read

Si ha usado otra herramienta de programación como Visual Basic o JavaScript, probablemente se pregunte: ¿dónde están las variables? PowerApps es ligeramente
diferente y requiere otro enfoque. En lugar de buscar una variable al compilar una aplicación de lienzo, pregúntese lo siguiente: ¿qué haría en Excel?
En otras herramientas, lo más probable es que haya realizado explícitamente un cálculo y haya almacenado el resultado en una variable. Pero PowerApps y Excel recalculan
automáticamente las fórmulas cuando los datos de entrada cambian, por lo que normalmente no tendrá que crear ni actualizar las variables. Si adopta este enfoque siempre
que sea posible, podrá crear, comprender y mantener la aplicación más fácilmente.
En algunos casos deberá usar variables en PowerApps, que amplía el modelo de Excel mediante la adición de fórmulas de comportamiento. Estas fórmulas se ejecutan
cuando, por ejemplo, un usuario selecciona un botón. Dentro de una fórmula de comportamiento, a menudo resulta útil establecer una variable para su uso en otras fórmulas.
En general debe evitar el uso de variables, pero a veces solo una variable puede habilitar la experiencia que busca. Las variables se crean y se escriben implícitamente cuando
aparecen en funciones que establecen sus valores.

Traducir Excel a PowerApps


Excel
Revisemos el funcionamiento de Excel. Una celda puede contener un valor, como un número o una cadena, o una fórmula basada en los valores de otras celdas. Cuando el
usuario introduce un valor diferente en una celda, Excel recalcula automáticamente las fórmulas que dependen del valor nuevo. No hace falta realizar ningún tipo de
programación para habilitar este comportamiento.
En el ejemplo siguiente, la celda a3 se establece en la fórmula a1 + a2. Si a1 o a2 cambian, a3 se vuelve a calcular automáticamente para reflejar el cambio. Este
comportamiento no requiere codificación fuera de la propia fórmula.

Excel no tiene variables. El valor de una celda que contiene una fórmula cambia en función de su entrada, pero no es posible recordar el resultado de una fórmula y
almacenarlo en una celda o en otro lugar. Si cambia el valor de una celda, toda la hoja de cálculo podría cambiar y los valores calculados previamente se perderían. Un usuario
de Excel puede copiar y pegar las celdas, pero esto depende del control manual del usuario y no es posible hacerlo con las fórmulas.
PowerApps
Las aplicaciones que se crean en PowerApps se comportan de una manera muy parecida a Excel. En lugar de actualizar las celdas, puede agregar controles donde quiera en
una pantalla y asignarles un nombre para usarlos en fórmulas.
Por ejemplo, puede replicar el comportamiento de Excel en una aplicación agregando un control de etiqueta , denominado Label1, y dos controles de entrada de texto ,
denominados TextInput1 y TextInput2. Si después establece la propiedad Text de Label1 en TextInput1 + TextInput2, siempre mostrará la suma de los números que se
encuentren en TextInput1 y TextInput2 automáticamente.

Observe que el control Label1 está seleccionado y muestra su fórmula de texto en la barra de fórmulas en la parte superior de la pantalla. Aquí se encuentra la fórmula
TextInput1 + TextInput2. Esta fórmula crea una dependencia entre estos controles, del mismo modo que se crean las dependencias entre las celdas de un libro de Excel.
Vamos a cambiar el valor de TextInput1:
La fórmula de Label1 se ha recalculado automáticamente y muestra el nuevo valor.
En PowerApps, puede usar fórmulas para determinar no solo el valor principal de un control, sino propiedades como el formato. En el ejemplo siguiente, una fórmula para la
propiedad Color de la etiqueta mostrará automáticamente los valores negativos en rojo. El aspecto de la función If debería resultarle familiar de Excel:
If( Value(Label1.Text) < 0; Red; Black )

Puede usar fórmulas para una amplia variedad de escenarios:


Mediante el uso del GPS de su dispositivo, un control de mapa puede mostrar su ubicación actual con una fórmula que use Location.Latitude y Location.Longitude. A
medida que se desplaza, el mapa seguirá automáticamente su ubicación.
Otros usuarios pueden actualizar los orígenes de datos. Por ejemplo, otros miembros del equipo pueden actualizar los elementos de una lista de SharePoint. Al actualizar
un origen de datos, las fórmulas dependientes se recalculan automáticamente para que reflejen los datos actualizados. En este mismo ejemplo, puede establecer la
propiedad Items de una galería en la fórmula Filter( SharePointList ), que mostrará automáticamente el conjunto recién filtrado de registros.
Ventajas
El uso de fórmulas para compilar aplicaciones tiene muchas ventajas:
Si está familiarizado con Excel, sabrá usar PowerApps. El lenguaje de fórmulas y modelos es el mismo.
Si ha usado otras herramientas de programación, piense en la gran cantidad de código que sería necesario para llevar a cabo estos ejemplos. En Visual Basic, tendría que
escribir un controlador de eventos para el evento de cambio en cada control de entrada de texto. El código para realizar el cálculo de cada uno de ellos es redundante y
podría desincronizarse, o tendría que escribir una subrutina común. En PowerApps, todo esto se consigue con una única fórmula de una línea.
Para saber de dónde procede el texto de Label1, sabe exactamente dónde buscar: la fórmula en la propiedad Text . No hay otra manera de influir en el texto de este
control. En una herramienta de programación tradicional, cualquier controlador de eventos o subrutina puede cambiar el valor de la etiqueta desde cualquier lugar del
programa. Esto puede hacer que sea difícil detectar cuándo y dónde se ha cambiado una variable.
Si el usuario cambia un control deslizante pero después cambia de opinión, puede devolver el control deslizante a su valor original y es como si nunca hubiera cambiado
nada: la aplicación muestra los mismos valores de control que antes. No hay repercusiones si se experimenta y se comprueba qué sucede al cambiar algo, igual que en
Excel.
En general, si puede conseguir un efecto mediante una fórmula, lo mejor es que la use. Deje que el motor de fórmulas de PowerApps trabaje por usted.

Saber cuándo usar variables


Vamos a cambiar el sumador simple para que actúe como una máquina de sumar antigua, con un total acumulado. Si selecciona el botón Sumar, sumará un número al total
acumulado. Si selecciona el botón Borrar, restablecerá en cero el total acumulado.

MUESTRA DESCRIPCIÓN

Cuando se inicia la aplicación, el total en ejecución es 0.

El punto rojo representa el dedo del usuario en el cuadro de entrada de texto, donde el usuario
escribe 77.
MUESTRA DESCRIPCIÓN

El usuario selecciona el botón Agregar .

77 se agrega al total acumulado.

El usuario vuelve a seleccionar el botón Agregar .

77 se agrega de nuevo al total acumulado, lo que da como resultado 154.

El usuario selecciona el botón Borrar .

El total acumulado se restablece en 0.

Esta máquina de sumar usa algo que no existe en Excel: un botón. En esta aplicación, no puede usar solamente fórmulas para calcular el total acumulado, ya que su valor
depende de una serie de acciones que realiza el usuario. El total acumulado debe registrarse y actualizarse manualmente. La mayoría de las herramientas de programación
almacena esta información en una variable.
En ocasiones necesitará una variable para que la aplicación se comporte de la manera deseada, pero debe tener en cuenta una serie de advertencias:
Debe actualizar manualmente el total acumulado. El recálculo automático no lo hará por usted.
El total acumulado ya no se puede calcular en función de los valores de otros controles. Depende del número de veces que el usuario haya seleccionado el botón Sumar y
del valor que se encontrase en cada ocasión en el control de entrada de texto. ¿El usuario ha escrito 77 y ha seleccionado Sumar dos veces, o bien ha escrito 24 y 130 para
cada una de las sumas? No es posible determinarlo una vez que el total haya alcanzado 154.
Los cambios en el total pueden proceder de diferentes acciones. En este ejemplo, tanto el botón Sumar como el botón Borrar pueden actualizar el total. Si la aplicación no
se comporta de la manera esperada, ¿qué botón causa el problema?

Usar una variable global


Para crear la máquina de sumar, necesitamos una variable que contenga el total acumulado. Las variables más sencillas para trabajar con PowerApps son las variables
globales.
Cómo funcionan las variables globales:
Establezca el valor de la variable global con la función Set. Set( MyVar; 1 ) establece la variable global MyVar en un valor de 1.
Use la variable global mediante la referencia al nombre usado con la función Set. En este caso, MyVar devolverá 1.
Las variables globales pueden contener cualquier valor, como cadenas, números, registros y tablas.
Vamos a recompilar la máquina de sumar mediante el uso de una variable de global:
1. Agregue un control de entrada de texto, denominado TextInput1, y dos botones, denominados Button1 y Button2.
2. Establezca la propiedad Text de Button1 en "Sumar" y la propiedad Text de Button2 en "Borrar".
3. Para actualizar el total acumulado cada vez que un usuario seleccione el botón Sumar, establezca su propiedad OnSelect en esta fórmula:
Set (RunningTotal, RunningTotal + TextInput1)
La mera existencia de esta fórmula establece RunningTotal como una variable global que contiene un número debido al operador + . Puede hacer referencia a
RunningTotal en cualquier parte de la aplicación. Cada vez que el usuario abre esta aplicación, RunningTotal tiene un valor inicial de Blank.
La primera vez que un usuario selecciona el botón Agregar y establece ejecuciones, RunningTotal se establece en el valor RunningTotal + TextInput1.
4. Para establecer el total acumulado en 0 cada vez que el usuario seleccione el botón Borrar, establezca su propiedad OnSelect en esta fórmula:
Set( RunningTotal; 0 )

5. Agregue un control Etiqueta y establezca su propiedad Texto en RunningTotal (TotalAcumulado).


Esta fórmula se recalculará automáticamente y mostrará al usuario el valor de RunningTotal cuando cambie en función de los botones que el usuario seleccione.

6. Obtenga una vista previa de la aplicación y ya tiene la máquina de sumar, tal como se describió anteriormente. Escriba un número en el cuadro de texto y presione el
botón de suma varias veces. Cuando esté listo, vuelva a la experiencia de creación mediante la tecla Esc.

7. Para mostrar el valor de la variable global, seleccione el menú archivo y seleccione variables en el panel izquierdo.
8. Para mostrar todos los lugares donde se define y se usa la variable, selecciónela.

Tipos de variables
PowerApps tiene tres tipos de variables:

TIPO DE VARIABLE ÁMBITO DESCRIPCIÓN FUNCIONES QUE ESTABLECEN

Variables globales App Las más sencillas de utilizar. Contiene un Set


número, una cadena de texto, un valor
booleano, un registro, una tabla, etc. a los
que se puede hacer referencia desde
cualquier parte de la aplicación.
TIPO DE VARIABLE ÁMBITO DESCRIPCIÓN FUNCIONES QUE ESTABLECEN

Variables de contexto Pantalla Idóneas para pasar valores a una pantalla, de UpdateContext
forma parecida a como se pasan los Navegar
parámetros a un procedimiento en otros
lenguajes. Solo se puede hacer referencia
desde una pantalla.

Colecciones App Contiene una tabla a la que se puede hacer Collect


referencia desde cualquier lugar de la ClearCollect
aplicación. Permite que el contenido de la
tabla se pueda modificar en lugar de
establecerla como un todo. Se pueden
guardar en el dispositivo local para su uso
posterior.

Crear y quitar variables


Todas las variables se crean implícitamente cuando aparecen en una función set, UpdateContext, Navigate, Collecto ClearCollect . Para declarar una variable y su tipo,
solo tiene que incluirla en cualquiera de estas funciones en cualquier parte de la aplicación. Ninguna de estas funciones crea variables. solo rellenan las variables con valores.
Nunca se declaran variables explícitamente como se haría en otra herramienta de programación, y todo lo que se escribe es implícito en el uso.
Por ejemplo, podría tener un control de botón con una fórmula alseleccionar igual a set (X, 1). Esta fórmula establece X como variable con un tipo de número. Puede usar X
en las fórmulas como un número y esa variable tiene un valor en blanco después de abrir la aplicación, pero antes de seleccionar el botón. Cuando se selecciona el botón, se
asigna a X el valor 1.
Si agregó otro botón y establece su propiedad alseleccionar en set (X, "Hello"), se producirá un error porque el tipo (cadena de texto) no coincide con el tipo del conjunto
anterior (número). Todas las definiciones implícitas de la variable deben estar de acuerdo en el tipo. De nuevo, todo esto se produjo porque se mencionó X en fórmulas, no
porque ninguna de esas fórmulas se ejecutó realmente.
Quite una variable quitando todas las funciones set, UpdateContext, Navigate, Collecto ClearCollect que establezcan implícitamente la variable. Sin estas funciones, la
variable no existe. También debe quitar las referencias a la variable, ya que provocarán un error.

Duración de la variable y valor inicial


Todas las variables se mantienen en la memoria mientras se ejecuta la aplicación. Una vez que se cierra la aplicación, se pierden los valores que contienen las variables.
Puede almacenar el contenido de una variable en un origen de datos mediante las funciones patch o Collect . También puede almacenar valores en colecciones en el
dispositivo local mediante la función savedata .
Cuando el usuario abre la aplicación, todas las variables tienen el valor inicial en blanco.

Leer variables
Use el nombre de la variable para leer su valor. Por ejemplo, puede definir una variable con esta fórmula:
Set( Radius; 12 )

A continuación, puede usar simplemente RADIUS en cualquier lugar en el que pueda usar un número y se reemplazará por 12:
Pi() * Power( Radius; 2 )

Si asigna a una variable de contexto el mismo nombre que una variable global o una colección, la variable de contexto tiene prioridad. Sin embargo, todavía puede hacer
referencia a la variable global o colección si utiliza el operador de desambiguación @ [RADIUS].

Usar una variable de contexto


Veamos cómo se crearía la máquina de sumar mediante una variable de contexto en lugar de una variable global.
Cómo funcionan las variables de contexto:
Puede establecer y establecer implícitamente variables de contexto mediante la función UpdateContext o Navigate . Cuando se inicia la aplicación, el valor inicial de
todas las variables de contexto está en blanco.
Las variables de contexto se actualizan con registros. En otras herramientas de programación, normalmente se usa "=" para la asignación, como en "x = 1". En el caso de
las variables de contexto, se usa { x: 1 }. Cuando use una variable de contexto, use su nombre directamente sin la sintaxis de registro.
También puede establecer una variable de contexto al usar la función Navigate para mostrar una pantalla. Si piensa en una pantalla como un tipo de procedimiento o
subrutina, este enfoque se asemeja al paso de parámetros en otras herramientas de programación.
Excepto en el caso de Navigate, las variables de contexto están limitadas al contexto de una sola pantalla, que es donde obtienen su nombre. No puede usarlas ni
establecerlas fuera de este contexto.
Las variables de contexto pueden contener cualquier valor, como cadenas, números, registros, y tablas.
Vamos a volver a compilar la máquina de sumar mediante el uso de una variable de contexto:
1. Agregue un control de entrada de texto, denominado TextInput1, y dos botones, denominados Button1 y Button2.
2. Establezca la propiedad Text de Button1 en "Sumar" y la propiedad Text de Button2 en "Borrar".
3. Para actualizar el total acumulado cada vez que un usuario seleccione el botón Sumar, establezca su propiedad OnSelect en esta fórmula:
UpdateContext ({RunningTotal: RunningTotal + TextInput1})
La mera existencia de esta fórmula establece RunningTotal como una variable de contexto que contiene un número debido al operador + . Puede hacer referencia a
RunningTotal en cualquier parte de esta pantalla. Cada vez que el usuario abre esta aplicación, RunningTotal tiene un valor inicial de Blank.
La primera vez que el usuario selecciona el botón Agregar y se ejecuta UpdateContext , RunningTotal se establece en el valor RunningTotal + TextInput1.
4. Para establecer el total acumulado en 0 cada vez que el usuario seleccione el botón Borrar, establezca su propiedad OnSelect en esta fórmula:
UpdateContext( { RunningTotal: 0 } )
Una vez más, se usa UpdateContext con la fórmula UpdateContext( { RunningTotal: 0 } ).

5. Agregue un control Etiqueta y establezca su propiedad Texto en RunningTotal (TotalAcumulado).


Esta fórmula se recalculará automáticamente y mostrará al usuario el valor de RunningTotal cuando cambie en función de los botones que el usuario seleccione.

6. Obtenga una vista previa de la aplicación y ya tiene la máquina de sumar, tal como se describió anteriormente. Escriba un número en el cuadro de texto y presione el
botón de suma varias veces. Cuando esté listo, vuelva a la experiencia de creación mediante la tecla Esc.

7. Puede establecer el valor de una variable de contexto mientras se desplaza a una pantalla. Esto resulta útil a la hora de pasar "contexto" o "parámetros" de una pantalla
a otra. Para mostrar esta técnica, inserte una pantalla, inserte un botón y establezca su propiedad alseleccionar en esta fórmula:
Navegar( Screen1; None; { RunningTotal: -1000 } )
Mantenga presionada la tecla Alt mientras selecciona este botón para mostrar Screen1 y establezca la variable de contexto RunningTotal en-1000.

8. Para mostrar el valor de la variable de contexto, seleccione el menú archivo y, a continuación, seleccione variables en el panel izquierdo.

9. Para mostrar dónde se define y se usa la variable de contexto, selecciónela.


Usar una colección
Por último, veamos cómo crear la máquina de sumar con una colección. Puesto que una colección contiene una tabla que es fácil modificar, vamos a hacer que esta máquina
de sumar tenga un "registro" de todos los valores a medida que se escriben.
Cómo funcionan las colecciones:
Para crear y establecer colecciones, use la función ClearCollect. También puede usar la función Collect, pero requerirá otra variable en vez de reemplazar la anterior.
Una colección es una clase de origen de datos y, por lo tanto, una tabla. Para obtener acceso a un valor único de una colección, use la función First y extraiga un campo del
registro resultante. Si ha usado un solo valor con ClearCollect, este será el campo Value, como en este ejemplo:
First( VariableName ).Value
Vamos a recrear la máquina de sumar mediante una colección:
1. Agregue un control Text input, denominado TextInput1, y dos botones, denominados Button1 y Button2.
2. Establezca la propiedad Text de Button1 en "Sumar" y la propiedad Text de Button2 en "Borrar".
3. Para actualizar el total acumulado cada vez que un usuario seleccione el botón Sumar, establezca su propiedad OnSelect en esta fórmula:
Collect( PaperTape; TextInput1.Text )
La mera existencia de esta fórmula establece PaperTape como una colección que contiene una tabla de cadenas de texto de una sola columna. Puede hacer referencia
a PaperTape en cualquier parte de esta aplicación. Cada vez que un usuario abre esta aplicación, PaperTape es una tabla vacía.
Cuando se ejecuta esta fórmula, agrega el nuevo valor al final de la colección. Dado que estamos agregando un solo valor, Collect lo coloca automáticamente en una
tabla de una sola columna y el nombre de la columna es Value, que usará más adelante.

4. Para borrar la cinta papel cuando el usuario selecciona el botón Borrar , establezca su propiedad alseleccionar en esta fórmula:
Clear( PaperTape )
5. Para mostrar el total acumulado, agregue una etiqueta y establezca su propiedad Texto en esta fórmula:
Sum( PaperTape; Value )

6. Para ejecutar la máquina de sumar, presione F5 para abrir la vista previa, escriba números en el control de entrada de texto y seleccione botones.

7. Presione la tecla Esc para volver al área de trabajo predeterminada.


8. Para mostrar el registro, inserte un control Tabla de datos y establezca su propiedad Items en esta fórmula:
PaperTape
En el panel derecho, seleccione la columna valor para mostrarla.

9. Para ver los valores de la colección, seleccione Colecciones en el menú Archivo.


10. Para almacenar y recuperar la colección, agregue dos controles de botón adicionales y establezca sus propiedades de texto para cargar y Guardar. Establezca la
propiedad alseleccionar del botón cargar en esta fórmula:
Clear( PaperTape );; LoadData( PaperTape; "StoredPaperTape"; true )
Primero debe borrar la colección porque LoadData anexará los valores almacenados al final de la colección.

11. Establezca la propiedad alseleccionar del botón Guardar en esta fórmula:


SaveData( PaperTape; "StoredPaperTape" )
12. Vuelva a obtener la vista previa pulsando la tecla F5, escriba números en el control de entrada de texto y seleccione botones. Seleccione el botón Guardar. Cierre y
vuelva a cargar la aplicación y seleccione el botón cargar para volver a cargar la colección.

NOTE
La función savedata y LoadData de powerapps Mobile, pero no PowerApps Studio o el reproductor web para powerapps.
Comprender las fórmulas de comportamiento
de aplicaciones de lienzo en PowerApps
08/10/2019 • 2 minutes to read

La mayoría de las fórmulas calcula un valor. Al igual que una hoja de cálculo de Excel, el cálculo nuevo se
realiza automáticamente cuando cambian los valores. Por ejemplo, es posible que desee mostrar el valor
de un control Etiqueta en rojo si el valor es menor que cero o en blanco, si no es el caso. De este modo,
puede establecer la propiedad Color de ese control en esta fórmula:
If( Value(TextBox1.Text) >= 0; Color.Black; Color.Red )
En este contexto, ¿qué significa que el usuario seleccione un control Botón ? No ha cambiado ningún
valor, por lo que no es necesario hacer un cálculo nuevo. Excel no tiene un equivalente a un control
Botón .
Al seleccionar un control Botón , el usuario inicia una secuencia de acciones, o comportamientos, que
cambiará el estado de la aplicación:
Cambie la pantalla que se muestra: Funciones back y Navigate .
Control de una señal: Habilitar y deshabilitar funciones.
Actualizar, actualizar o quitar elementos de un origen de datos: Las funciones de actualización ,
actualización , UpdateIf , revisión , eliminación y RemoveIf .
Actualizar una variable de contexto: Función UpdateContext .
Crear, actualizar o quitar elementos de una colección: Funciones Collect , Clear y ClearCollect .
Como estas funciones cambian el estado de la aplicación, no se pueden volver a calcular
automáticamente. Puede usarlas en las fórmulas para las propiedades OnSelect , OnVisible ,
OnHidden , además de otras propiedades del tipo On... , que se llaman fórmulas de comportamiento.
Más de una acción
Use puntos y comas para crear una lista de acciones a realizar. Por ejemplo, es posible que desee
actualizar una variable de contexto y, luego, volver a la pantalla anterior:
UpdateContext ({x: 1});; Atrás ()
Las acciones se realizan en el orden en que aparecen en la fórmula. La función siguiente no se iniciará
hasta que se complete la función actual. Si se produce un error, no se iniciarán las funciones
subsiguientes.
Mostrar texto, fechas y horas en PowerApps
26/11/2019 • 17 minutes to read

En PowerApps, agregue fechas y horas a una aplicación de lienzo y asígneles formato para mostrar el nivel de
detalle adecuado o para reflejar la configuración regional. Calcule el tiempo entre dos fechas o calcule una
fecha que esté cierto tiempo antes o después de una fecha que especifique. Convierta fechas en y desde
valores independientes para días, meses y años, y convierta horas en y desde valores independientes para
horas, minutos y segundos.
Por ejemplo, agregue datos de usuarios sobre operaciones con acciones o reuniones con clientes, de un
origen externo o de otra aplicación creada en PowerApps. Si esos datos incluyen horas detalladas hasta el
milisegundo, redondéelas al minuto más cercano para simplificarlas. Calcule cuántos días quedan hasta un
hito importante. Si desea programar reuniones con los clientes cada cinco días, calcule esas fechas
automáticamente. Si el 10 de mayo de 1985 está almacenado en campos independientes para el día, el mes y
el año, consolide esos campos en un solo valor. También puede dividir cada fecha en valores independientes si
su aplicación los administra por separado.

Requisitos previos
Regístrese en PowerApps y, luego, inicie sesión con las mismas credenciales que usó para registrase.
Cree una aplicación o abra una existente en PowerApps.
Aprenda a configurar un control en PowerApps.

Mostrar texto en un control Etiqueta


Muestre texto en un control Etiqueta estableciendo el valor de su propiedad Texto . Establezca esta
propiedad escribiendo directamente en el control o escribiendo una expresión en la barra de fórmulas.
Si escribe directamente en el control, este muestra exactamente lo que escribe.
Si escribe una expresión en la barra de fórmulas, el control muestra el resultado de la expresión.
A continuación, se ofrecen algunos ejemplos.
1. Agregue un control Etiqueta denominado ShowText y establezca su propiedad Texto en esta
fórmula:
Now()
Si su equipo tiene establecida la configuración regional "en-us", la fecha y hora actuales aparecen en
este formato:
mm/dd/aaaa hh:mm AM/PM
Si su equipo tiene establecida la configuración regional "fr-fr", la fecha y hora actuales aparecen en este
formato:
dd/mm/aaaa hh:mm AM/PM
2. Establezca la propiedad Text de ShowText en esta fórmula:
DateDiff(Today(); DateValue("01/01/2020"))
El control muestra el número de días entre hoy y el 1 de enero de 2020. Para ello, usa estas funciones:
DateDiff, que calcula el número de días, trimestres o años entre dos fechas.
Today, que calcula el día actual como un valor.
DateValue, que convierte una cadena literal, como la que se muestra entre comillas dobles, en un
valor en el que se pueden realizar cálculos.
3. Agregue un control Text input denominado BirthDate y colóquelo bajo ShowText.
4. En BirthDate, escriba el mes y el día de su nacimiento (por ejemplo, 05/18).
5. Establezca la propiedad Text de ShowText en esta fórmula:
DateDiff(Today(); DateValue(BirthDate.Text))

ShowText muestra el número de días entre hoy y la fecha que haya escrito en BirthDate. Si la fecha
de su cumpleaños ya ha pasado este año, ShowText muestra un valor negativo.

Aplicar formato a fechas y horas mediante DateTimeValue


Convierta fechas y horas de cadenas de texto a valores, a los que puede dar formato de diversas maneras y
usarlos en los cálculos. Especifique el formato con las opciones integradas y personalizadas.

NOTE
Las funciones DateTimeValue y DateValue pueden convertir en valores fechas que estén en cualquiera de estos
formatos:
MM/DD/AAAA
DD/MM/AAAA
DD Mes AAAA
Mes DD, AAAA

1. Agregue un control Text input denominado ArrivalDateTime y escriba una fecha y una hora en este
formato:
5/10/85 6:15 AM
2. Agregue un control Etiqueta denominado ShowDate y establezca su propiedad Texto en esta
fórmula:
DateTimeValue(ArrivalDateTime.Text)
ShowDate muestra la misma información que ha escrito, pero se ha convertido de texto a un valor y
se le ha aplicado un formato distinto. Por ejemplo, el año aparece como cuatro dígitos en lugar de
simplemente dos.
3. Cambie la propiedad Text de ShowDate a esta fórmula:
DateTimeValue(ArrivalDateTime.Text; "fr")

ShowDate muestra el día antes del mes, tal y como esperaría un usuario francés.

TIP
Para mostrar una lista de otras configuraciones regionales en Intellisense, quite las comillas de cierre y fr de la
fórmula, pero conserve las comillas de apertura:

4. Para utilizar uno de los varios formatos integrados, cambie la propiedad Text de ShowDate a esta
fórmula:
Text(DateTimeValue(ArrivalDateTime.Text); DateTimeFormat.LongDateTime)

ShowDate muestra el día de la semana, la fecha y la hora.


TIP
El parámetro DateTimeFormat admite otros formatos integrados. Para mostrar esa lista, quite LongDateTime
de la fórmula.

5. Para usar un formato personalizado, cambie la propiedad Text de ShowDate a esta fórmula:
Text(DateTimeValue(ArrivalDateTime.Text); "mm/dd/yyyy hh:mm:ss.fff AM/PM")

ShowDate muestra el valor de fecha y hora en el formato que ha especificado, incluidos los
milisegundos.

TIP
Para redondear la hora a la décima o centésima de segundo más cercana, especifique hh:mm:ss.f o
hh:mm:ss.ff en la fórmula.

Aplicar formato a una fecha mediante DateValue


1. Agregue un control Text input denominado ArrivalDate y, luego, escriba una fecha en él (por
ejemplo, 5/10/85).
2. Agregue un control Etiqueta denominado FormatDate y establezca su propiedad Texto en esta
fórmula:
DateValue(ArrivalDate.Text)
FormatDate muestra la fecha que ha escrito, pero el año aparece con cuatro dígitos.
3. Establezca la propiedad Text de FormatDate en esta fórmula:
DateValue(ArrivalDate.Text; "fr")
FormatDate muestra el día antes del mes, tal y como esperaría un usuario francés.
4. Para usar uno de los varios formatos integrados, establezca la propiedad Text de FormatDate en esta
fórmula:
Text(DateValue(ArrivalDate.Text); DateTimeFormat.LongDate)
FormatDate muestra el día de la semana, el mes, el día y el año.
5. Para usar un formato personalizado, establezca la propiedad Text de FormatDate en esta fórmula:
Text(DateValue(ArrivalDate.Text); "yy/mm/dd")
FormatDate muestra la fecha en el formato especificado.

Dar formato a una hora mediante DateTimeValue


1. Agregue un control Text input denominado ArrivalTime y, luego, escriba 6:15 AM en él.
2. Agregue un control Etiqueta denominado ShowTime.
3. Para usar uno de los varios formatos integrados, establezca la propiedad Text de ShowTime en esta
fórmula:
Text(DateTimeValue(ArrivalTime.Text); DateTimeFormat.LongTime)
ShowTime muestra la hora que ha especificado, incluidos los segundos.
4. Para usar un formato personalizado, establezca la propiedad Text de ShowTime en esta fórmula:
Text(DateTimeValue(ArrivalTime.Text); "hh:mm:ss.fff AM/PM")
ShowTime muestra la hora que ha especificado, incluidos los segundos y los milisegundos.

TIP
Para redondear la hora a la décima o centésima de segundo más cercana, escriba hh:mm:ss.f o hh:mm:ss.ff en
la fórmula.

Mostrar el tiempo entre fechas


1. Agregue dos controles Text input denominados Start y End.
2. Escriba 4/1/2015 en Start y 1/1/2016 en End.
3. Agregue un control Cuadro de texto denominado DateDiff y establezca su propiedad Text en esta
fórmula:
DateDiff(DateValue(Start.Text); DateValue(End.Text))

DateDiff muestra 275, que es el número de días entre el 1 de abril de 2015 y el 1 de enero de 2016.
4. Establezca la propiedad Text de DateDiff en esta fórmula:
DateDiff(DateValue(Start.Text); DateValue(End.Text); Months)
DateDiff muestra 9, que es el número de meses entre el 1 de abril de 2015 y el 1 de enero de 2016.
Reemplace Months con Quarters o Years para mostrar el tiempo en trimestres o años.

Identificar una fecha antes o después de otra fecha


1. Agregue un control Text input denominado Start y escriba 5/10/1985 en él.
2. Agregue un control Etiqueta denominado DateAdd y establezca su propiedad Texto en esta fórmula:
DateAdd(DateValue(Start.Text); 3)
DateAdd muestra 5/13/1985, que es tres días después de la fecha establecida en Start.
3. Establezca la propiedad Text de DateAdd en esta fórmula:
DateAdd(DateValue(Start.Text); -3)

DateAdd muestra 5/7/1985, que es tres días antes de la fecha establecida en Start.
4. Cambie la propiedad Text de DateAdd a esta fórmula:
DateAdd(DateValue(Start.Text); 3; Months)

La etiqueta muestra 8/10/1985, que es tres meses después de la fecha establecida en Start. Reemplace
Months con Quarters o Years para identificar una fecha que tenga lugar el número especificado de
trimestres o años antes o después de la fecha establecida en Start.

Calcular fechas basándose en años, meses y días


1. Agregue tres controles Drop down denominados Year, Month y Day.
2. Establezca la propiedad Items de Year en esta fórmula:
Table({Year:"2014"}; {Year:"2015"}; {Year:"2016"})
3. Establezca la propiedad Items de Month en esta fórmula:
Table({Month:"1"}; {Month:"2"}; {Month:"3"}; {Month:"4"}; {Month:"5"}; {Month:"6"};
{Month:"7"}; {Month:"8"}; {Month:"9"}; {Month:"10"}; {Month:"11"}; {Month:"12"})
4. Establezca la propiedad Items de Day en esta fórmula:
Table({Day:"1"}; {Day:"2"}; {Day:"3"}; {Day:"4"}; {Day:"5"}; {Day:"6"}; {Day:"7"}; {Day:"8"};
{Day:"9"}; {Day:"10"}; {Day:"11"}; {Day:"12"}; {Day:"13"}; {Day:"14"}; {Day:"15"}; {Day:"16"};
{Day:"17"}; {Day:"18"}; {Day:"19"}; {Day:"20"}; {Day:"21"}; {Day:"22"}; {Day:"23"}; {Day:"24"};
{Day:"25"}; {Day:"26"}; {Day:"27"}; {Day:"28"}; {Day:"29"}; {Day:"30"}; {Day:"31"})
5. Agregue un control Etiqueta y establezca su propiedad Texto en esta fórmula:
Text(Date(Value(Year.Selected.Value); Value(Month.Selected.Value);
Value(Day.Selected.Value)); DateTimeFormat.LongDate)
La fecha miércoles, 1 de enero de 2014 aparece de forma predeterminada. Seleccione valores
diferentes en los controles Lista desplegable para cambiar la fecha en el control Etiqueta .
Es posible que deba convertir datos que no esperaba. Si agrega controles Text input en lugar de controles
Drop down , puede que un usuario escriba una fecha incorrecta, como 45 de mayo. La función Date se
encarga de los datos inusuales de las siguientes formas:
Si un valor de año está comprendido entre 0 y 1899 (ambos incluidos), la función agrega ese valor a 1900
para calcular el año.
Si un valor de año está comprendido entre 1900 y 9999 (ambos incluidos), la función usa ese valor como
el año.
Si un valor de año es menor que 0, o mayor o igual que 10000, la función devuelve un valor de error.
Si un valor de mes es mayor que 12, la función suma ese número de meses al primer mes del año
especificado.
Si un valor de mes es menor que 1, la función resta ese número de meses, más 1, del primer mes del año
especificado.
Si un valor de día es mayor que el número de días del mes especificado, la función sumará esos días al
primer día del mes y devolverá la fecha correspondiente de un mes posterior.
Si un valor de día es menor que 1, la función resta esa cantidad de días, más 1, del primer día del mes
especificado.

Calcular tiempos basándose en horas, minutos y segundos


1. Agregue dos listas Drop-down denominadas Hour y Minute.
2. Establezca la propiedad Items de Hour en esta fórmula:
Table({Hour:"9"}; {Hour:"10"}; {Hour:"11"}; {Hour:"12"}; {Hour:"13"}; {Hour:"14"};
{Hour:"15"}; {Hour:"16"}; {Hour:"17"})
3. Establezca la propiedad Items de Minute en esta fórmula:
Table({Minute:"0"}; {Minute:"15"}; {Minute:"30"}; {Minute:"45"})
4. Agregue un control Etiqueta y establezca su propiedad Texto en esta fórmula:

Text(Time(Value(Hour.Selected.Value); Value(Minute.Selected.Value); 0);


DateTimeFormat.ShortTime)
5. Seleccione 15 en Hour y 45 en Minute.
El control Etiqueta muestra 3:45 PM.
Puede agregar entradas a Hour y Minute para que los usuarios puedan seleccionar entre un intervalo
más amplio de horas y un número más preciso de minutos. También puede agregar un tercer control
Drop down para que los usuarios puedan especificar segundos. Si agrega una tercera lista, establezca
la propiedad Texto del control Etiqueta en la siguiente expresión:
Text(Time(Value(Hour.Selected.Value); Value(Minute.Selected.Value);
Value(Second.Selected.Value)); DateTimeFormat.LongTime)
Crear y actualizar una colección en una aplicación
de lienzo
05/11/2019 • 5 minutes to read

Use una colección para almacenar los datos que los usuarios pueden administrar en la aplicación. Una colección
es un grupo de elementos que son similares, como los productos de una lista de productos. Para obtener más
información sobre los distintos tipos de variables, como las colecciones: Descripción de las variables de la
aplicación Canvas.

Requisitos previos
Regístrese en PowerApps y, luego, inicie sesión con las mismas credenciales que usó para registrase.
Cree una aplicación o abra una existente en PowerApps.
Aprenda a configurar un control en PowerApps.

Crear una colección de varias columnas


1. En PowerApps Studio, agregue un control entrada de texto .

2. Cambie el nombre del control; para ello, seleccione sus puntos suspensivos en el panel de navegación
izquierdo, seleccione cambiar nombrey, a continuación, escriba ProductName.

3. Agregue un control lista desplegable.

4. Cambie el nombre de los coloresdel control desplegable y asegúrese de que la propiedad elementos
está seleccionada en la lista de propiedades.
5. En la barra de fórmulas, reemplace DropDownSample por esta expresión:
["Red";"Green";"Blue"]

6. Agregue un control botón , establezca su propiedad texto en "agregar" y establezca su propiedad


alseleccionar en esta fórmula:

Collect(
ProductList;
{
Product: ProductName.Text;
Color: Colors.Selected.Value
}
)

7. Presione F5, escriba el texto en NombreProducto, seleccione una opción en coloresy, a continuación,
seleccione Agregar.

8. Repita el paso anterior al menos dos veces más y, a continuación, presione ESC.
9. En el menú archivo , seleccione colecciones para mostrar la colección que ha creado.

Mostrar una colección


1. Agregue un control Galería vertical.

2. Establezca la propiedad elementos de la galería en productlist.


3. En el panel datos , establezca el campo subtítulo en colory establezca el campo título en producto.

4. Cierre el panel datos , seleccione la galería y, a continuación, establezca el campo diseño en título y
subtítulo.

La pantalla es similar a la de este ejemplo:

Quitar uno o todos los elementos


1. Seleccione la plantilla de la Galería haciendo clic o pulsando cerca de la parte inferior de la galería y
haciendo clic o pulsando en el icono de lápiz situado cerca de la esquina superior izquierda.
2. Agregue un icono de papelera a la plantilla de la galería.

3. Establezca la propiedad alseleccionar del icono en esta fórmula:


Remove(ProductList; ThisItem)

4. Fuera de la galería, agregue un botón, establezca su propiedad Text en "Clear" y establezca su propiedad
alseleccionar en esta fórmula:
Clear(ProductList)

5. Mientras mantiene presionada la tecla Alt, seleccione el icono de la papelera de un elemento para quitar
ese elemento de la colección o seleccione el botón Borrar para quitar todos los elementos de la colección.

Colocar una lista de SharePoint en una colección


1. Cree una conexión a una lista de SharePoint.
2. Agregue un botón y establezca su propiedad OnSelect en esta función, sustituyendo ListName por el
nombre de la lista de SharePoint:
Collect(MySPCollection; ListName)

Esta función crea una colección que se denomina MySPCollection y que contiene los mismos datos que
la lista de SharePoint.
3. Mientras mantiene presionada la tecla Alt, seleccione el botón.
4. opta Para obtener una vista previa de la colección que ha creado, seleccione colecciones en el menú
archivo .
Para obtener información sobre cómo mostrar los datos de una lista de SharePoint (como fechas, elecciones y
personas) en una galería: Mostrar las columnas de la lista en una galería. Para obtener información sobre cómo
mostrar los datos en un formulario (con listas desplegables, selectores de fechas y selectores de personas): Editar
formulario y mostrar controles de formulario.

Pasos siguientes
Revise el tema de referencia de la función Collect .
Obtenga información sobre cómo dar forma a los datos de una colección mediante las funciones
AddColumns, DropColumns, cambiarnombrecolumnas y mostrarcolumnas .
Mostrar información sobre un usuario de PowerApps
en una aplicación de lienzo
25/10/2019 • 2 minutes to read

En PowerApps, muestre el nombre completo, la dirección de correo electrónico y la imagen asociada al usuario que
inició sesión en una aplicación de lienzo. Puede utilizar esta información, por ejemplo, para rellenar
automáticamente un formulario.
Por ejemplo, puede utilizar esta característica para:
Crear una "hoja" de inicio de sesión para que los usuarios asistan al curso, ir como voluntario a eventos,
inscribirse en un quiosco, etc.
Mostrar el nombre completo en una aplicación de recursos humanos.
Especificar automáticamente una dirección de correo electrónico automáticamente al ponerse en contacto con
el departamento de soporte técnico.
Básicamente, puede usar la característica en cualquier lugar en el que los usuarios se beneficien de un formulario o
etiquetas que se rellenen automáticamente

Requisitos previos
1. Suscríbase a PowerApps.
2. Inicie sesión en con las mismas credenciales que usó para registrarse.
3. En Crear su propia aplicación, pase el puntero por la ventana Aplicación de lienzo desde cero, seleccione
el icono de teléfono y, a continuación, seleccione Crear esta aplicación.
4. Aprenda a agregar y configurar controles.

Mostrar los detalles del usuario


1. En la pestaña Insertar, haga clic o pulse en Multimedia y, a continuación, en Image.

2. Establezca la propiedad Image en esta fórmula:


User().Image

3. En la pestaña Insertar, haga clic o pulse en Texto y, a continuación, haga clic o pulse en Etiqueta:
4. Establezca la propiedad Text en esta fórmula:
User().FullName

Al hacerlo, la etiqueta se rellena automáticamente con su nombre completo. Mueva la etiqueta para que esté
bajo el control de imagen, de forma similar a la siguiente:

5. Agregue otra etiqueta y establezca su propiedad Text en esta fórmula:


User().Email

Al hacerlo, la etiqueta se rellena automáticamente con su dirección de correo electrónico. Mueva la etiqueta
para que esté bajo la primera etiqueta, de forma similar a la siguiente:
Cómo vincular listas de SharePoint mediante campos
de búsqueda en PowerApps
05/11/2019 • 9 minutes to read

En este tutorial se muestra cómo se pueden conectar dos listas de SharePoint con un campo de búsqueda en una
aplicación de lienzo.

Información general
SharePoint proporciona dos tipos de campos de búsqueda:
Búsqueda: vincula a otra lista: por ejemplo, una lista Orders puede tener un campo de búsqueda que vincule a
los clientes de una lista Customer;
Elección: al hacer clic o pulsar en el campo, se muestra un pequeño menú de elementos entre los que elegir.
En este tutorial, compilará una aplicación que usa estos tipos de campos de búsqueda.
¿Por qué usar un campo de búsqueda?
Los datos de una empresa son numerosos y complejos. Los datos de una lista de SharePoint a menudo están
relacionados con los de otra lista. Los campos de búsqueda son la principal forma de unir dichos datos
empresariales.
Por ejemplo, podría tener una lista Orders que tenga un campo de búsqueda que vincule a una lista Customers
para mostrar el cliente que realizó el pedido. El campo de búsqueda de la lista Orders también permite obtener
otros datos de la lista Customers. También podría usar un campo de búsqueda para conectar la lista Orders a una
lista Product y obtener la información necesaria sobre el producto pedido, como imágenes del producto,
especificaciones, detalles del fabricante, etc.
¿Para qué se usan los campos Elección?
Los campos Elección se usan para listas muy cortas, pero en lugar de crear realmente una lista independiente, se
incluyen los valores de la lista en un pequeño menú, que aparece al pulsar o hacer clic en el campo Elección, en el
que debe seleccionar uno de los valores.
Algunos ejemplos son datos como el código de estado de cliente, la disponibilidad de los productos, los códigos de
los estados y básicamente cualquier lista fija que sea relativamente corta. De hecho, estos datos se podrían
implementar como listas independientes y, luego, utilizar un campo Búsqueda para vincularlos, pero
normalmente resulta más fácil y rápido implementarlos como campos Elección.

Crear las listas en SharePoint


En este tutorial, se vinculan dos listas personalizadas de SharePoint, por ejemplo, Assets y RepairShop. La lista
Assets se usa para realizar un seguimiento de los equipos de hardware en un equipo. Puesto que el hardware se
estropea con el tiempo, usamos la lista RepairShop para realizar un seguimiento de las tiendas locales que
pueden arreglarlo.
Los campos de búsqueda usados en este ejemplo
La lista RepairShop usa el campo ContactEmail para identificar la tienda. Esta lista se define en primer lugar para
que cada fila de la lista Assets apunte a un algún elemento.
La lista Assets tiene dos campos de búsqueda:
uno denominado RepairShop, del tipo Búsqueda, que usa direcciones de correo electrónico para apuntar a las
entradas de la lista RepairShop;
uno denominado AssetType, del tipo Elección, en el que se enumeran los tipos de hardware que podría ser este
recurso.
Lo más probable es que defina campos adicionales en función de la información de la que necesite realizar un
seguimiento.
Definir la lista RepairShop y agregar datos
Esto se hace en primer lugar, para que cuando agregue datos a la lista Assets, haya entradas de RepairShop
disponibles para su elección en el campo de búsqueda Assets.RepairShop.
1. En el sitio de SharePoint, cree una nueva lista RepairShop.

2. Agregue un campo ContactEmail del tipo Una línea de texto.

3. Agregue los demás campos que necesite.


4. Pulse o haga clic en + Nuevo para escribir datos de ejemplo en la lista; al menos tres filas con distintos
valores de ContactEmail. Cuando resulte necesario reparar un recurso, elija uno de esos valores.

Definir la lista Assets


1. En el sitio de SharePoint, cree una nueva lista Assets.
2. Pulse o haga clic el signo más y elija Más.

3. Agregue un campo AssetType del tipo Elección y, en el cuadro de texto Escriba cada opción en una línea
distinta, escriba los valores que desee que aparezcan en el menú para elegir. Luego pulse o haga clic en
Aceptar.

4. Empiece a agregar otro campo. Al igual que en el paso 2, pulse o haga clic en el signo más y elija Más.
5. Agregue un campo RepairShop del tipo Búsqueda, elija RepairShop en el cuadro de texto Obtener
información de y elija ContactEmail en el cuadro de texto En esta columna. Luego pulse o haga clic en
Aceptar.
6. Agregue los campos adicionales que desee.

Crear una aplicación de la lista Assets


Puede usar esta aplicación para agregar datos a la lista Assets.
1. Inicie sesión en PowerApps Studio. Si no está familiarizado con PowerApps, regístrese gratuitamente
mediante la dirección de correo electrónico de la organización.
2. En el menú Archivo (en el borde izquierdo), pulse o haga clic en Nuevo y, luego, pulse o haga clic en
SharePoint.

3. Elija su sitio de SharePoint en la lista Sitios recientes o escriba la URL de su sitio directamente en el
cuadro de texto. Pulse o haga clic en Ir.
4. Elija la lista principal desde el sitio de SharePoint; en este ejemplo, Assets. Pulse o haga clic en el botón
Conectar, situado en la esquina inferior derecha.

Agregar datos a la lista Assets


Ahora puede ejecutar la aplicación y ver el aspecto de la pantalla para ver detalles de los campos de búsqueda.

1. Presione F5 o seleccione la vista previa ( ).


2. Pulse o haga clic en el símbolo + situado en la esquina superior derecha para agregar una entrada.
3. Escriba un Título para este recurso.
4. Pulse o haga clic en la flecha desplegable de AssetType. Los valores mostrados son aquellos que especificó
cuando creó este campo. Elija una de las entradas.

5. Pulse o haga clic en la flecha desplegable de RepairShop. Elija una de las entradas.
6. En la esquina superior derecha, pulse o haga clic en la marca de verificación para guardar la nueva entrada.
7. (Opcional) Repita este procedimiento para agregar tantos elementos a la lista como desee.
8. Presione Esc para volver al área de trabajo predeterminada.

Más información
Introducing support for lookups and a new sample app (Presentación del soporte técnico para búsquedas y una
nueva aplicación de ejemplo)
Performance, Refresh button, ForAll, and multiple field lookups (Rendimiento, botón Actualizar, ForAll y
búsquedas en varios campos)
Generate an app by using a Common Data Service database (Generar una aplicación mediante una base de
datos de Common Data Service)
Create an app from scratch using a Common Data Service database (Crear una aplicación desde cero mediante
una base de datos de Common Data Service)
Iniciar un flujo en una aplicación de lienzo
09/11/2019 • 5 minutes to read

Puede usar Power Automate para crear lógica que realice una o varias tareas cuando se produce un evento en una
aplicación de lienzo. Por ejemplo, configure un botón para que cuando un usuario lo seleccione, se cree un
elemento en una lista de SharePoint, se envíe un correo electrónico o una convocatoria de reunión, se agregue un
archivo a la nube o se realicen todas estas acciones. Puede configurar que el flujo pueda iniciarlo cualquier control
de la aplicación, que continúa ejecutándose aunque cierre PowerApps.

NOTE
Cuando un usuario ejecuta un flujo desde una aplicación, el usuario debe tener permiso para realizar las tareas que se
especifican en el flujo. De lo contrario, se producirá un error en el flujo.

Requisitos previos
Inicie sesión en PowerApps.
Tiene que saber configurar un control.

Creación de un flujo
1. Inicie sesión en PowerApps.
2. En la barra de navegación izquierda, seleccione lógica de negociosy, a continuación, seleccione flujos.
3. En la esquina superior izquierda de la página Mis flujos , seleccione nuevoy, a continuación, seleccione
crear desdecero.

4. Cerca de la parte inferior de la página que aparece, seleccione Buscar cientos de conexiones y
desencadenadores.
5. En el cuadro de búsqueda, escriba powerappsy, luego, seleccione el icono de powerapps .

6. En la página siguiente, vuelva a seleccionar el icono de PowerApps y, luego, seleccione nuevo paso.
7. En el cuadro que dice Buscar conectores y acciones, especifique una acción para el flujo, como en este
ejemplo:
a. Escriba SharePoint en el cuadro y, a continuación, seleccione crear elemento en la lista de
acciones.

b. Si se le solicita, especifique las credenciales para conectarse a SharePoint.


c. En el cuadro Dirección del sitio web, escriba o pegue la dirección URL de un sitio de SharePoint
Online que contenga una lista.

NOTE
No Anexe el nombre de la lista a la dirección URL.

d. En el cuadro nombre de lista , especifique la lista que desea utilizar.

e. Seleccione el cuadro de entrada de un campo en la lista (por ejemplo, título), seleccione Ver más en
el panel de contenido dinámico y, a continuación, seleccione preguntar en PowerApps.

8. opta Especifique uno o más pasos adicionales, como el envío de correo electrónico de aprobación a una
dirección que especifique o la creación de una entrada relacionada en otro origen de datos.
9. Cerca de la esquina superior izquierda, escriba o pegue un nombre para el flujo y, a continuación, seleccione
Guardar cerca de la esquina superior derecha.

Agregar un flujo a una aplicación


1. En la barra de navegación izquierda, seleccione crear.
2. Mantenga el puntero sobre la aplicación Canvas desde el icono en blanco y seleccione Make this App
(crear esta aplicación).
3. Agregue un control Entrada de texto y llámelo RecordTitle.
4. Agregue un control Botón y muévalo debajo de RecordTitle.
5. Con el control Botón seleccionado, seleccione Flujos en la pestaña Acción.

6. En el panel que aparece, seleccione el flujo que creó en el procedimiento anterior.

NOTE
Si el flujo que ha creado no está disponible, compruebe si PowerApps está establecido en el entorno en el que lo
creó.

7. En la barra de fórmulas, escriba o pegue RecordTitle.Text) al final de la fórmula que se han agregado
automáticamente.
Probar la aplicación
1. Haga doble clic en el control entrada de texto y escriba o pegue texto en él.
2. Mientras mantiene presionada la tecla Alt, seleccione el control de botón .
Se crea un elemento de SharePoint en la lista que especificó con el texto que especificó como título. Si la
lista estaba abierta cuando se ejecutó el flujo, tendrá que actualizar la ventana del explorador para mostrar
los cambios.
Creación de una regla en aplicaciones de lienzo
23/11/2019 • 5 minutes to read

Las reglas se crean para modificar automáticamente una aplicación en función de los criterios que se especifiquen.
Por ejemplo, mostrar los elementos de cada lista en rojo, amarillo o verde según su estado, o bien mostrar un
botón de aprobación sólo a determinados usuarios (por ejemplo, los administradores). Las reglas se pueden
agregar a varios controles. En este tema, agregará una regla para cambiar el color del texto de un control Etiqueta
si el valor de un control Control deslizante es mayor que 70.

IMPORTANT
A partir del 14 de octubre de 2019, la característica reglas de las aplicaciones de canvas está en desuso. Más información:
blog: las reglas de lienzoestán en desuso.

Adición de una regla


1. Seleccione un control (o agregue un control y déjelo seleccionado).
En este tema, agregue una etiqueta y un control deslizante, establezca la propiedad Texto de la etiqueta en
Slider1.Value y, después, seleccione el control deslizante.
2. En el panel derecho, pulse o haga clic en Reglasy, después, en Nueva regla.

Si selecciona un control para el que ya se han definido una o varias reglas, puede editar cualquiera de ellas
pulsándola o haciendo clic en ella.

Adición de una condición


Una condición es una expresión que se evalúa como true o false; por ejemplo, si un valor es mayor que 70. La
expresión se puede escribir a partir de una plantilla o empezar desde cero, y se puede personalizar en función de la
guía de la interfaz de usuario (Intellisense).
1. Pulse o haga clic en Agregar una condicióny, después, haga clic en una plantilla o en Condición
personalizada.
En este tema, pulse o haga clic en Mayor que.
2. Actualice la expresión para definir cuándo se aplica la regla.
Para este tema, cambie 0 por 70 para obtener esta expresión:
Slider1.Value > 70

Agregar una acción


Las acciones definen lo que sucede cuando se aplica la regla. PowerApps puede crear acciones automáticamente en
función de los cambios que se realicen en los controles.
1. Pulse o haga clic en Definir acciones.

2. En el cuadro de diálogo de confirmación, pulse o haga clic en Adelante para que PowerApps capture el
siguiente cambio (o los siguientes) como una o varias acciones.
3. Configure uno o varios controles para que cumplan sus expectativas cuando la condición sea true.
En este tema, cambie el color de la etiqueta.
4. (opcional) Revise los cambios, para lo que debe pulsar o hacer clic en Mostrar acciones.

5. Cuando termine de agregar acciones, pulse o haga clic en Listo.


6. Revise tanto la condición como las acciones de la regla.

Cambio de nombre de la regla


1. Mantenga el mouse sobre Rule1 y haga clic o pulse el botón de edición.

2. Escriba el nuevo nombre de la regla.


3. Haga clic o pulse Done (Listo) para descartar el editor.

Prueba de la regla
1. Para obtener una vista previa de la aplicación, presione F5 (o haga clic o pulse en el botón de reproducción
situado cerca de la esquina superior derecha).

2. Cree la condición que especificó como true y, después, confirme que las acciones funcionan como se espera
de ellas.
En este tema, establezca el control deslizante en un valor que sea mayor que 70 y confirme que el texto de la
etiqueta cambia de color.

Ver todas las reglas


De forma predeterminada, la pestaña Reglas muestra solo las reglas del control seleccionado y todos los controles
secundarios que se utilizan en una condición o acción de una regla. Para mostrar todas las reglas de la aplicación,
desactive la casilla Mostrar reglas solo para este control.

Limitaciones conocidas
En el momento de redactar este documento:
No se puede especificar la propiedad ThisItem de un formulario o una galería como parte de una condición.
Referencia sobre fórmulas para PowerApps
07/10/2019 • 20 minutes to read

Las fórmulas combinan numerosos elementos. A continuación se enumera lo siguiente:


Las funciones toman parámetros, realizar una operación y devuelven un valor. Por ejemplo,
Sqrt(25) devuelve 5. Las funciones se basan en las funciones de Microsoft Excel. Algunas
funciones tienen efectos secundarios, como SubmitForm, y solo son adecuadas en una
fórmula de comportamiento como Button.OnSelect.
Las señales devuelven información sobre el entorno. Por ejemplo, Location devuelve las
coordenadas GPS actuales del dispositivo. Las señales no toman parámetros ni tienen efectos
secundarios.
Las enumeraciones devuelven un valor constante predefinido. Por ejemplo, Color es una
enumeración que tiene valores predefinidos para Color.Red, Color.Blue, etc. Aquí se incluyen
enumeraciones comunes; las enumeraciones específicas de funciones se describen con la
función.
Los operadores con nombre, como ThisItem y Parent , proporcionan acceso a información
desde un contenedor.
Otros elementos incluyen:
Todos los operadores
Controles y sus propiedades
Tipos de datos

A
Abs : valor absoluto de un número.
Acceleration : lee el sensor de aceleración del dispositivo.
Acos : devuelve el arco coseno de un número, en radianes.
Acot : devuelve el arco tangente de un número, en radianes.
AddColumns : devuelve una tabla con columnas agregadas.
And : lógica booleana Y. Devuelve true si todos los argumentos son true. También puede usar el
operador && .
Aplicación : proporciona información sobre la aplicación que se está ejecutando actualmente y el
control sobre el comportamiento de la aplicación.
Asin : devuelve el arco seno de un número, en radianes.
Astype : trata una referencia de registro como un tipo de entidad específico.
Atan : devuelve el arco tangente de un número, en radianes.
Atan2 : devuelve el arco tangente en función de una coordenada (x,y), en radianes.
Average : calcula la media de una expresión de tabla o un conjunto de argumentos.

B
Back : muestra la pantalla anterior.
Blank : devuelve un valor en blanco que puede utilizarse para insertar un valor NULL en un
origen de datos.

C
Calendar : recupera información sobre el calendario para la configuración regional actual.
Char : traduce un código de carácter en una cadena.
Choices : devuelve una tabla de posibles valores para una columna de búsqueda.
Clear : elimina todos los datos de una colección.
ClearCollect : elimina todos los datos de una colección y, después, agrega un conjunto de
registros.
Clock : recupera información sobre el reloj para la configuración regional actual.
Coalesce : reemplaza valores blank y deja los valores que no son blank.
Collect : crea una colección o agrega datos a un origen de datos.
Color : establece una propiedad en un valor de color integrado.
ColorFade : atenúa un valor de color.
ColorValue : traduce un nombre de color CSS o un código hexadecimal en un valor de color.
Compass : devuelve el encabezado de brújula.
Concat : concatena cadenas en un origen de datos.
Concatenate : concatena cadenas.
Concurrent : evalúa varias fórmulas simultáneamente entre sí.
Connection : devuelve información sobre la conexión de red.
Count : cuenta los registros de la tabla que contienen números.
Cos : devuelve el coseno de un ángulo especificado en radianes.
Cot : devuelve la cotangente de un ángulo especificado en radianes.
CountA : cuenta los registros de la tabla que no están vacíos.
CountIf : cuenta los registros de la tabla que cumplen una condición.
CountRows : cuenta los registros de la tabla.

D
DataSourceInfo : proporciona información sobre un origen de datos.
Date : devuelve un valor de fecha y hora en función de los valores Year, Month y Day.
DateAdd : agrega días, meses, trimestres o años a un valor de fecha y hora.
DateDiff : resta dos valores de fecha y muestra el resultado en días, meses, trimestres o años.
DateTimeValue : convierte una cadena de fecha y hora en un valor de fecha y hora.
DateValue : convierte una cadena de fecha en un valor de fecha y hora.
Day : recupera la parte de día de un valor de fecha y hora.
Defaults : devuelve los valores predeterminados para un origen de datos.
Degrees : convierte radianes en grados.
Disable : deshabilita una señal, como Location para leer el GPS.
Distinct : resume los registros de una tabla, para lo que quita los duplicados.
Download : descarga un archivo de la Web en el dispositivo local.
DropColumns : devuelve una tabla a la que se han quitado una o varias columnas.

E
EditForm : restablece un control de formulario para la edición de un elemento.
Enable : habilita una señal, como Location para leer el GPS.
EndsWith : comprueba si una cadena de texto termina con otra cadena de texto.
Errors : proporciona información de error para los cambios anteriores en un origen de datos.
EncodeUrl : codifica caracteres especiales mediante la codificación de la dirección URL.
Exit : sale de la aplicación que se está ejecutando.
Exp : devuelve e elevado a una potencia.

F
Filter : devuelve una tabla filtrada en función de uno o varios criterios.
Find : comprueba si una cadena aparece dentro de otra y devuelve la ubicación.
First : devuelve el primer registro de una tabla.
FirstN : devuelve el primer conjunto de registros (registros N ) de una tabla.
ForAll : calcula valores y realiza acciones para todos los registros de una tabla.

G
GroupBy : devuelve una tabla con los registros agrupados.
GUID : convierte una cadena de GUID en un valor GUID o crea un valor GUID.

H
HashTags : extrae los hashtags (#cadenas) de una cadena.
Hour : devuelve la parte de hora de un valor de fecha y hora.

I
If : devuelve un valor si una condición es true y otro valor si no lo es.
IfError : detecta errores y proporciona un valor alternativo o lleva a cabo una acción.
IsBlank : busca un valor en blanco.
IsEmpty : busca una tabla vacía.
IsMatch : comprueba una cadena con un patrón. Se pueden usar expresiones regulares.
IsNumeric : busca un valor numérico.
IsToday : comprueba si un valor de fecha y hora coincide con algún momento del día actual.
IsType : comprueba si una referencia de registro hace referencia a un tipo de entidad específico.

J
JSON : genera una cadena de texto JSON para una tabla, un registro o un valor.

Grande
Language : devuelve la etiqueta de idioma del usuario actual.
Last : devuelve el último registro de una tabla.
LastN : devuelve el último conjunto de registros (registros N ) de una tabla.
Launch : inicia una dirección web o una aplicación.
Left : devuelve la parte del extremo izquierdo de una cadena.
Len : devuelve la longitud de una cadena.
Ln : devuelve el logaritmo natural.
LoadData : carga una colección del almacenamiento privado de PowerApps.
Location : devuelve la ubicación como una coordinada de mapa mediante el sistema de
posicionamiento global (GPS ) y otra información.
LookUp : busca un único registro en una tabla en función de uno o varios criterios.
Lower : convierte todas las letras de una cadena de texto en minúsculas.

Mediana
Match : extrae una subcadena basada en un patrón. Se pueden usar expresiones regulares.
MatchAll : extrae varias subcadenas basadas en un patrón. Se pueden usar expresiones regulares.
Max : valor máximo de una expresión de tabla o un conjunto de argumentos.
Mid : devuelve la parte media de una cadena.
Min : valor mínimo de una expresión de tabla o un conjunto de argumentos.
Minute : recupera la parte de minuto de un valor de fecha y hora.
Mod : devuelve el resto después de que un dividendo se divida entre un divisor.
Month : recupera la parte de mes de un valor de fecha y hora.

N
Navigate : cambia la pantalla que se muestra.
NewForm : restablece un control de formulario para la creación de un elemento.
Not : lógica booleana NO. Devuelve true si su argumento es false y devuelve false si su
argumento es true. También puede usar el operador ! .
Notify : muestra un mensaje de pancarta al usuario.
Now : devuelve el valor de fecha y hora actual.

O
Or : lógica booleana O. Devuelve true si alguno de sus argumentos es true. También puede usar el
operador || .

P
Param : proporciona acceso a los parámetros pasados a la aplicación al abrirla el usuario.
Parent : proporciona acceso a las propiedades de un control contenedor.
Patch : modifica o crea un registro en un origen de datos, o bien combina registros fuera de un
origen de datos.
Pi : devuelve el número π.
PlainText : quita las etiquetas HTML y XML de una cadena.
Power : devuelve un número elevado a una potencia. También puede usar el operador ^ .
Proper : convierte la primera letra de cada palabra de una cadena en mayúsculas y el resto en
minúsculas.

R
Radians : convierte grados en radianes.
Rand : devuelve un número pseudoaleatorio.
Refresh : actualiza los registros de un origen de datos.
Relacionar : relaciona los registros de dos entidades a través de una relación de uno a varios o de
varios a varios.
Remove : quita uno o más registros específicos de un origen de datos.
RemoveIf : elimina los registros de un origen de datos en función de una condición.
RenameColumns : cambia el nombre de las columnas de una tabla.
Replace : reemplaza parte de una cadena por otra cadena, por posición inicial de la cadena.
Reset : restablece un control de entrada al valor predeterminado, descartando cualquier
modificación del usuario.
ResetForm : restablece un control de formulario para la edición de un elemento existente.
Revert : recarga y borra errores para los registros de un origen de datos.
RGBA : devuelve un valor de color para un conjunto de componentes rojo, verde, azul y alfabético.
Right : devuelve la parte del extremo derecho de una cadena.
Round : redondea al número más cercano.
RoundDown : redondea hacia abajo al número anterior más grande.
RoundUp : redondea hacia arriba al siguiente número más pequeño.

S
SaveData : guarda una colección en el almacenamiento privado de PowerApps.
Search : busca registros en una tabla que contengan una cadena en una de sus columnas.
Second : recupera la parte de segundo de un valor de fecha y hora.
Select : simula una acción de selección en un control, lo que provoca la evaluación de la fórmula
OnSelect.
Set : establece el valor de una variable global.
SetFocus : mueve el foco de entrada a un control concreto.
ShowColumns : devuelve una tabla exclusivamente con las columnas seleccionadas.
Shuffle : reordena aleatoriamente los registros de una tabla.
Sin : devuelve el seno de un ángulo especificado en radianes.
Sort : devuelve una tabla ordenada en función de una fórmula.
SortByColumns : devuelve una tabla ordenada en función de una o varias columnas.
Split : divide una cadena de texto en una tabla de subcadenas.
Sqrt : devuelve la raíz cuadrada de un número.
StartsWith : comprueba si una cadena de texto comienza con otra cadena de texto.
StdevP : devuelve la desviación estándar de sus argumentos.
Substitute : reemplaza parte de una cadena por otra cadena, por coincidencia de cadenas.
SubmitForm : guarda el elemento en un control de formulario para el origen de datos.
Sum : calcula la suma de una expresión de tabla o un conjunto de argumentos.
Switch : busca la coincidencia con un conjunto de valores y luego evalúa una fórmula
correspondiente.

T
Table : crea una tabla temporal.
Tan : devuelve la tangente de un ángulo especificado en radianes.
Texto : convierte cualquier valor y da formato a un número o un valor de fecha y hora a una
cadena de texto.
ThisItem : cuando se está en una galería o un formulario, devuelve los datos para el elemento
actual del contenedor.
Time : devuelve un valor de fecha y hora, en función de los valores Hour, Minute y Second.
TimeValue : convierte una cadena de hora en un valor de fecha y hora.
TimeZoneOffset : devuelve la diferencia entre la hora UTC y la hora local del usuario en minutos.
Today : devuelve el valor de fecha y hora actual.
Trim : quita los espacios adicionales de los extremos y el interior de una cadena de texto.
TrimEnds : quita los espacios adicionales únicamente de los extremos de una cadena de texto.

U
Ungroup : quita una agrupación.
No relacionar : no relaciona los registros de dos entidades de una relación de uno a varios o de
varios a varios.
Update : reemplaza un registro en un origen de datos.
UpdateContext : establece el valor de una o varias variables de contexto de la pantalla actual.
UpdateIf : modifica un conjunto de registros en un origen de datos en función de una condición.
Upper : convierte todas las letras de una cadena de texto en mayúsculas.
User : devuelve información sobre el usuario actual.

V
Validate : comprueba si el valor de una sola columna o un registro completo es válido para un
origen de datos.
Value : convierte una cadena en un número.
VarP : devuelve la varianza de sus argumentos.
ViewForm : restablece un control de formulario para la visualización de un elemento existente.

W
Weekday : recupera la parte de día de la semana de un valor de fecha y hora.
With : calcula valores y realiza acciones para un único registro, incluidos los registros insertados
de valores con nombre.

Y
Year : recupera la parte de año de un valor de fecha y hora.
Funciones Abs, Exp, Ln, Power y Sqrt en PowerApps
08/10/2019 • 4 minutes to read

Calcula valores absolutos, logaritmos naturales, raíces cuadradas y los resultados de elevar e o cualquier número a
una potencia especificada.

Descripción
La función Abs muestra el valor no negativo de su argumento. Si el número es negativo, Abs muestra el
equivalente positivo.
La función Exp muestra e elevado a la potencia de su argumento. El número trascendente e comienza con
2,7182818...
La función Ln muestra el argumento natural (e base) de su argumento.
La función Power muestra un número elevado a una potencia. Es equivalente a usar el operador ^ .
La función Sqrt muestra el número que, cuando se multiplica por sí mismo, es igual a su argumento.
Si pasa un solo número, el valor que se muestra es un resultado único basado en la función llamada. Si pasa una
tabla de una sola columna que contiene números, el valor que se muestra es una tabla de resultados de una sola
columna, un resultado para cada registro en la tabla del argumento. Si tiene una tabla con varias columnas, puede
convertirla en una tabla de una sola columna, como se describe en cómo trabajar con tablas.
Si algún argumento pudiera mostrar un valor no definido, el resultado queda en blanco. Por ejemplo, esto puede
pasar con las raíces cuadradas y los logaritmos de números negativos.

Sintaxis
Abs( Number )
Exp( Number )
Ln( Number )
Sqrt( Number )
Number: requerido. El número sobre el cual operar.
Power( Base; Exponente )
Base: requerido. Número base que se va a elevar.
Exponent: requerido. El exponente al que se eleva el número base.
Abs( SingleColumnTable )
Exp( SingleColumnTable )
Ln( SingleColumnTable )
Sqrt( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de números de una sola columna sobre la cual operar.

Ejemplos
Número único
FÓRMULA DESCRIPCIÓN RESULTADO

Abs( -55 ) Muestra el número sin el signo 55


negativo.

Exp( 2 ) Muestra e elevado a la potencia de 2, o 7,389056...


e * e.

Ln( 100 ) Muestra el algoritmo natural (e base) 4,605170...


del número 100.

Power( 5; 3 ) Muestra 5 elevado a la potencia de 3, o 125


5 * 5 * 5.

Sqrt( 9 ) Muestra el número que, cuando se 3


multiplica por sí mismo, da como
resultado 9.

Tabla de una sola columna


Los ejemplos de esta sección usan un origen de datos denominado ValueTable que contiene estos datos:

FÓRMULA DESCRIPCIÓN RESULTADO

Abs( ValueTable ) Muestra el valor absoluto de cada


número en la tabla.

Exp( ValueTable ) Muestra e elevado a la potencia de cada


número en la tabla.

Ln( ValueTable ) Muestra el logaritmo natural de cada


número en la tabla.

Sqrt( ValueTable ) Muestra la raíz cuadrada de cada


número en la tabla.

Ejemplo paso a paso


1. Agregue un control Entrada de texto y denomínelo Origen.
2. Agregue un control Label y establezca su propiedad Text en esta fórmula:
Sqrt( Value( Source.Text ) )
3. Escriba un número en Origen y confirme que el control Etiqueta muestra la raíz cuadrada del número que
escribió.
Señales Acceleration, App, Compass, Connection y
Location en PowerApps
07/10/2019 • 9 minutes to read

Devuelve información sobre el entorno de la aplicación, como dónde se encuentra el usuario en el mundo y la
pantalla que se muestra.

Descripción y sintaxis
Las señales son valores que pueden cambiar en cualquier momento, independientemente de cómo el usuario
pueda interactuar con la aplicación. Las fórmulas que se basan en señales se recalculan automáticamente a medida
que estos valores cambian.
Normalmente, las señales devuelven un registro de información. Puede usar y almacenar esta información como
un registro, o puede extraer propiedades individuales mediante el operador .

NOTE
Las funciones Acceleration y Compass devuelven valores precisos en un reproductor nativo, como en iOS o Android, pero
esas funciones devuelven valores cero a medida que crea o modifica una aplicación en el explorador.

Acceleration
La señal Acceleration devuelve la aceleración del dispositivo en tres dimensiones en relación con la pantalla del
dispositivo. La aceleración se mide en unidades g de 9,81 m/s2 o 32,2 ft/s2 (la aceleración que imparte la Tierra en
los objetos en su superficie debida a la gravedad).

PROPIEDAD DESCRIPCIÓN

Acceleration.X Derecha e izquierda. El valor de la derecha es un número


positivo.

Acceleration.Y Hacia delante y atrás. El valor hacia delante es un número


positivo.

Acceleration.Z Arriba y abajo. El valor de arriba es un número positivo.

App
Entre otras propiedades, el objeto de aplicación incluye una señal que indica la pantalla que se muestra.

PROPIEDAD DESCRIPCIÓN

App.ActiveScreen Pantalla que se muestra. Devuelve un objeto de pantalla, que


puede usar para hacer referencia a las propiedades de la
pantalla o comparar con otra pantalla para determinar la
pantalla que se muestra. Puede usar la función back o
Navigate para cambiar la pantalla que se muestra.

Más información: Documentación del objeto de aplicación .


Compass
La señal Compass devuelve el encabezado de brújula de la parte superior de la pantalla. El encabezado se basa en
el norte magnético.

PROPIEDAD DESCRIPCIÓN

Compass.Heading Encabezado en grados. Devuelve que un número de 0 a 360, y


0 es el norte.

Conexión
La señal Connection devuelve información acerca de la conexión de red. Cuando está en una conexión medida,
puede que desee limitar la cantidad de datos que envíe o reciba a través de la red.

PROPIEDAD DESCRIPCIÓN

Connection.Connected Devuelve un valor booleano true o false que indica si el


dispositivo está conectado a una red.

Connection.Metered Devuelve un valor booleano true o false que indica si la se


mide la conexión.

Location
La señal Location devuelve la ubicación del dispositivo según el sistema GPS (Global Positioning System) y otra
información de dispositivo, como las comunicaciones de la torre de telefonía móvil y la dirección IP.
Cuando un usuario tiene acceso a la información de ubicación por primera vez, el dispositivo puede solicitar que el
usuario permita el acceso a esta información.
A medida que cambia la ubicación, las dependencias de la ubicación se recalcularán continuamente, lo que
consumirá corriente de la batería del dispositivo. Para conservar la vida útil de la batería, puede usar las funciones
Enable y Disable para activar y desactivar las actualizaciones de la ubicación. La ubicación se desactiva
automáticamente si la pantalla mostrada no depende de la información de la ubicación.

PROPIEDAD DESCRIPCIÓN

Location.Altitude Devuelve un número que indica la altitud, medida en metros,


por encima del nivel del mar.

Location.Latitude Devuelve un número, de -90 y 90, que indica la latitud, que se


mide en grados desde el Ecuador. Un número positivo indica
una ubicación que sea al norte del ecuador.

Location.Longitude Devuelve un número, de 0 y 180, que indica la longitud, que


se mide en grados oeste desde Greenwich, Inglaterra.

Ejemplos
En un campo de béisbol, un lanzador lanza un teléfono desde el montículo del jarra a un captador en la placa de
inicio. El teléfono se encuentra situado horizontalmente con respecto a la tierra, la parte superior de la pantalla está
orientada al lanzador, y el lanzador no hace ningún giro. En esta ubicación, el teléfono tiene una cobertura medida,
pero no tiene Wi-Fi. Se muestra la pantalla PlayBall.

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

Location.Latitude Devuelve la latitud de la ubicación 47.591


actual. El campo se encuentra en las
coordenadas de mapa 47,591 N, La latitud cambiará continuamente a
122,333 W. medida que la pelota se mueva entre el
lanzador y el receptor.

Location.Longitude Devuelve la longitud de la ubicación 122.333


actual.
La longitud cambiará continuamente a
medida que la pelota se mueva entre el
lanzador y el receptor.

Location Devuelve la latitud y longitud de la { Latitud: 47.591, Longitud: 122.333 }


ubicación actual, como un registro.

Compass.Heading Devuelve el encabezado de brújula de la 230.25


parte superior de la pantalla. En este
campo, la placa de inicio es
aproximadamente suroeste del
montículo del jarra.

Acceleration.X Devuelve la aceleración del dispositivo 0


de lado a lado. El lanzador está lanzando
el teléfono en línea recta con respecto a
la parte superior de la pantalla, por lo
que el dispositivo no cuenta con una
aceleración de lado a lado.

Acceleration.Y Devuelve la aceleración del dispositivo 8,2, cuando el lanzador lanza el


de la parte delantera a la trasera. El dispositivo.
lanzador inicialmente ofrece al
dispositivo una gran aceleración al 0, cuando el dispositivo está en el aire.
lanzar el dispositivo, que pasa de 0 a
144 km por hora (40 metros por -8,2, cuando el receptor atrapa el
segundo) en medio segundo. Después dispositivo.
de que el dispositivo esté en el aire, sin
tener en cuenta la fricción del aire, no se
acelera más. El dispositivo deja de
acelerarse cuando el receptor lo atrapa,
hasta que para.

Acceleration.Z Devuelve la aceleración del dispositivo 0, antes de que el lanzador lace el


de arriba a abajo. Mientras está en el dispositivo.
aire, el dispositivo experimenta los
efectos de la gravedad. 1, cuando el dispositivo está en el aire.

0, cuando el receptor atrapa el


dispositivo.

Acceleration Devuelve la aceleración como registro. X1 0, Y: 264, Z: 0} cuando el lanzador


lanza el dispositivo.

Connection.Connected Devuelve un valor booleano que indica true


si el dispositivo está conectado a una
red.
FÓRMULA DESCRIPCIÓN RESULTADO

Connection.Metered Devuelve un valor booleano que indica true


si la se mide la conexión.

App.ActiveScreen = PlayBall Devuelve un valor booleano que indica true


si se muestra PlayBall.

App.ActiveScreen.Fill Devuelve el color de fondo de la Color.Green


pantalla mostrada.
Funciones Acos, Acot, Asin, Atan, Atan2, Cos, Cot,
Degrees, Pi, Radians, Sin y Tan en PowerApps
08/10/2019 • 9 minutes to read

Calcula valores trigonométricos.

Descripción
Funciones principales
La función Cos devuelve el coseno de su argumento, un ángulo especificado en radianes.
La función Cot devuelve la cotangente de su argumento, un ángulo especificado en radianes.
La función Sin devuelve el seno de su argumento, un ángulo especificado en radianes.
La función Tan devuelve la tangente de su argumento, un ángulo especificado en radianes.
Funciones inversas
El Acos función devuelve el arcocoseno, o coseno inverso, de su argumento. El arcocoseno es el ángulo cuyo
coseno es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Acot devuelve el valor principal de la arcocotangente, o cotangente inversa, de su argumento. El ángulo
devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Asin devuelve el arcoseno, o seno inverso, de su argumento. El arcoseno es el ángulo cuyo seno es el
argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a π/2.
La función Atan devuelve la arcotangente, o tangente inversa, de su argumento. La arcotangente es el ángulo cuya
tangente es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a π/2.
La función Atan2 devuelve la arcotangente, o tangente inversa, de las coordenadas x e y especificadas como
argumentos. La arcotangente es el ángulo desde el eje x a una línea que contiene el origen (0, 0) y un punto con las
coordenadas (x, y). El ángulo se expresa en radianes entre -π y π, excluyendo -π. Un resultado positivo representa
un ángulo con rotación levógira (hacia la izquierda) desde el eje x; un resultado negativo representa un ángulo con
rotación dextrógira (hacia la derecha). Atan2( a; b ) es igual a Atan( b/a ) , excepto que a puede ser igual a 0 (cero)
con la función Atan2.
Funciones auxiliares
La función Degrees convierte radianes en grados. π radianes equivalen a 180 grados.
La función Pi devuelve el número transcendente π, que comienza 3,141592...
La función Radians convierte grados en radianes.
Notas
Si pasa un solo número a estas funciones, el valor que se devuelve es un resultado único. Si pasa una tabla de una
sola columna que contiene números, el valor que se muestra es una tabla de resultados de una sola columna, un
resultado para cada registro en la tabla del argumento. Si tiene una tabla con varias columnas, puede convertirla en
una tabla de una sola columna, como se describe en cómo trabajar con tablas.
Si algún argumento resultase en un valor no definido, el resultado es blank. Esto puede ocurrir, por ejemplo, al
utilizar las funciones inversas con argumentos que están fuera del intervalo.
Sintaxis
Funciones principales
Cos( Radians )
Cot( Radians )
Sin( Radians )
Tan( Radians )
Radians: requerido. Ángulo sobre el cual operar.
Cos( SingleColumnTable )
Cot( SingleColumnTable )
Sin( SingleColumnTable )
Tan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de ángulos de una sola columna sobre la que se va a actuar.
Funciones inversas
Acos( Number )
Acot( Number )
Asin( Number )
Atan( Number )
Number: requerido. El número sobre el cual operar.
Acos( SingleColumnTable )
Acot( SingleColumnTable )
Asin( SingleColumnTable )
Atan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de números de una sola columna sobre la cual operar.
Atan2( X; Y )
X: requerido. coordenadas del eje X.
Y: requerido. coordenadas del eje Y.
Funciones del asistente
Degrees( Radians )
Radians: requerido. Ángulo en radianes para convertir en grados.
Pi()
Radians( Degrees )
Degrees: requerido. Ángulo en grados para convertir en radianes.

Ejemplos
Número único
FÓRMULA DESCRIPCIÓN RESULTADO

Cos( 1;047197 ) Devuelve el coseno de 1,047197 0,5


radianes o 60 grados.
FÓRMULA DESCRIPCIÓN RESULTADO

Cot( Pi()/4 ) Devuelve la cotangente de 0,785398... 1


radianes o 45 grados.

Sin( Pi()/2 ) Devuelve el seno de 1,570796 radianes 1


o 90 grados.

Tan ( Radians(60) ) Devuelve la tangente de 1,047197 1,732050...


radianes o 60 grados.

Acos( 0;5 ) Devuelve el arcocoseno de 0,5 en 1,047197...


radianes.

Acot( 1 ) Devuelve la arcocotangente de 1, en 0,785398...


radianes.

Asin( 1 ) Devuelve el arcoseno de 1, en radianes. 1,570796...

Atan ( 1,732050 ) Devuelve la arcotangente de 1,732050, 1,047197...


en radianes.

Atan2( 5; 3 ) Devuelve la arcotangente del ángulo del 0,540419...


eje x de la línea que contiene el origen
(0,0) y la coordenada (5,3), que es
aproximadamente 31 grados.

Atan2( 4; 4 ) Devuelve la arcotangente del ángulo del 0,785398...


eje x de la línea que contiene el origen
(0,0) y la coordenada (4,4), que es
exactamente π/4 radianes o 45 grados.

Degrees ( 1,047197 ) Devuelve el número equivalente de 60


grados de 1,047197 radianes.

Pi() El número trascendente π. 3,141592...

Radians ( 15 ) Devuelve el número equivalente de 0,261799...


radianes para 15 grados.

Tabla de una sola columna


Los ejemplos de esta sección usan un origen de datos denominado ValueTable que contiene los siguientes datos:
El último registro en la tabla es π/2 radianes o 90 grados.

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

Cos( ValueTable ) Devuelve el coseno de cada número en


la tabla.

Cot( ValueTable ) Devuelve la cotangente de cada número


en la tabla.

Sin( ValueTable ) Devuelve el seno de cada número en la


tabla.

Tan( ValueTable ) Devuelve la tangente de cada número


en la tabla.

Acos( ValueTable ) Devuelve el arcocoseno de cada número


en la tabla.

Acot( ValueTable ) Devuelve la arcocotangente de cada


número en la tabla.

Asin( ValueTable ) Devuelve el arcoseno de cada número


en la tabla.

Atan( ValueTable ) Devuelve la arcotangente de cada


número en la tabla.
FÓRMULA DESCRIPCIÓN RESULTADO

Degrees( ValueTable ) Devuelve el número equivalente de


grados para cada número de la tabla,
supone que son ángulos en radianes.

Radians( ValueTable ) Devuelve el número equivalente de


radianes para cada número de la tabla,
supone que son ángulos en grados.
Funciones Acos, Acot, Asin, Atan, Atan2, Cos, Cot,
Degrees, Pi, Radians, Sin y Tan en PowerApps
08/10/2019 • 9 minutes to read

Calcula valores trigonométricos.

Descripción
Funciones principales
La función Cos devuelve el coseno de su argumento, un ángulo especificado en radianes.
La función Cot devuelve la cotangente de su argumento, un ángulo especificado en radianes.
La función Sin devuelve el seno de su argumento, un ángulo especificado en radianes.
La función Tan devuelve la tangente de su argumento, un ángulo especificado en radianes.
Funciones inversas
El Acos función devuelve el arcocoseno, o coseno inverso, de su argumento. El arcocoseno es el ángulo cuyo
coseno es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Acot devuelve el valor principal de la arcocotangente, o cotangente inversa, de su argumento. El ángulo
devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Asin devuelve el arcoseno, o seno inverso, de su argumento. El arcoseno es el ángulo cuyo seno es el
argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a π/2.
La función Atan devuelve la arcotangente, o tangente inversa, de su argumento. La arcotangente es el ángulo cuya
tangente es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a π/2.
La función Atan2 devuelve la arcotangente, o tangente inversa, de las coordenadas x e y especificadas como
argumentos. La arcotangente es el ángulo desde el eje x a una línea que contiene el origen (0, 0) y un punto con las
coordenadas (x, y). El ángulo se expresa en radianes entre -π y π, excluyendo -π. Un resultado positivo representa
un ángulo con rotación levógira (hacia la izquierda) desde el eje x; un resultado negativo representa un ángulo con
rotación dextrógira (hacia la derecha). Atan2( a; b ) es igual a Atan( b/a ) , excepto que a puede ser igual a 0 (cero)
con la función Atan2.
Funciones auxiliares
La función Degrees convierte radianes en grados. π radianes equivalen a 180 grados.
La función Pi devuelve el número transcendente π, que comienza 3,141592...
La función Radians convierte grados en radianes.
Notas
Si pasa un solo número a estas funciones, el valor que se devuelve es un resultado único. Si pasa una tabla de una
sola columna que contiene números, el valor que se muestra es una tabla de resultados de una sola columna, un
resultado para cada registro en la tabla del argumento. Si tiene una tabla con varias columnas, puede convertirla en
una tabla de una sola columna, como se describe en cómo trabajar con tablas.
Si algún argumento resultase en un valor no definido, el resultado es blank. Esto puede ocurrir, por ejemplo, al
utilizar las funciones inversas con argumentos que están fuera del intervalo.
Sintaxis
Funciones principales
Cos( Radians )
Cot( Radians )
Sin( Radians )
Tan( Radians )
Radians: requerido. Ángulo sobre el cual operar.
Cos( SingleColumnTable )
Cot( SingleColumnTable )
Sin( SingleColumnTable )
Tan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de ángulos de una sola columna sobre la que se va a actuar.
Funciones inversas
Acos( Number )
Acot( Number )
Asin( Number )
Atan( Number )
Number: requerido. El número sobre el cual operar.
Acos( SingleColumnTable )
Acot( SingleColumnTable )
Asin( SingleColumnTable )
Atan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de números de una sola columna sobre la cual operar.
Atan2( X; Y )
X: requerido. coordenadas del eje X.
Y: requerido. coordenadas del eje Y.
Funciones del asistente
Degrees( Radians )
Radians: requerido. Ángulo en radianes para convertir en grados.
Pi()
Radians( Degrees )
Degrees: requerido. Ángulo en grados para convertir en radianes.

Ejemplos
Número único
FÓRMULA DESCRIPCIÓN RESULTADO

Cos( 1;047197 ) Devuelve el coseno de 1,047197 0,5


radianes o 60 grados.
FÓRMULA DESCRIPCIÓN RESULTADO

Cot( Pi()/4 ) Devuelve la cotangente de 0,785398... 1


radianes o 45 grados.

Sin( Pi()/2 ) Devuelve el seno de 1,570796 radianes 1


o 90 grados.

Tan ( Radians(60) ) Devuelve la tangente de 1,047197 1,732050...


radianes o 60 grados.

Acos( 0;5 ) Devuelve el arcocoseno de 0,5 en 1,047197...


radianes.

Acot( 1 ) Devuelve la arcocotangente de 1, en 0,785398...


radianes.

Asin( 1 ) Devuelve el arcoseno de 1, en radianes. 1,570796...

Atan ( 1,732050 ) Devuelve la arcotangente de 1,732050, 1,047197...


en radianes.

Atan2( 5; 3 ) Devuelve la arcotangente del ángulo del 0,540419...


eje x de la línea que contiene el origen
(0,0) y la coordenada (5,3), que es
aproximadamente 31 grados.

Atan2( 4; 4 ) Devuelve la arcotangente del ángulo del 0,785398...


eje x de la línea que contiene el origen
(0,0) y la coordenada (4,4), que es
exactamente π/4 radianes o 45 grados.

Degrees ( 1,047197 ) Devuelve el número equivalente de 60


grados de 1,047197 radianes.

Pi() El número trascendente π. 3,141592...

Radians ( 15 ) Devuelve el número equivalente de 0,261799...


radianes para 15 grados.

Tabla de una sola columna


Los ejemplos de esta sección usan un origen de datos denominado ValueTable que contiene los siguientes datos:
El último registro en la tabla es π/2 radianes o 90 grados.

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

Cos( ValueTable ) Devuelve el coseno de cada número en


la tabla.

Cot( ValueTable ) Devuelve la cotangente de cada número


en la tabla.

Sin( ValueTable ) Devuelve el seno de cada número en la


tabla.

Tan( ValueTable ) Devuelve la tangente de cada número


en la tabla.

Acos( ValueTable ) Devuelve el arcocoseno de cada número


en la tabla.

Acot( ValueTable ) Devuelve la arcocotangente de cada


número en la tabla.

Asin( ValueTable ) Devuelve el arcoseno de cada número


en la tabla.

Atan( ValueTable ) Devuelve la arcotangente de cada


número en la tabla.
FÓRMULA DESCRIPCIÓN RESULTADO

Degrees( ValueTable ) Devuelve el número equivalente de


grados para cada número de la tabla,
supone que son ángulos en radianes.

Radians( ValueTable ) Devuelve el número equivalente de


radianes para cada número de la tabla,
supone que son ángulos en grados.
Funciones AddColumns, DropColumns, RenameColumns y
ShowColumns en PowerApps
08/10/2019 • 13 minutes to read

Forma una tabla agregando, quitando, cambiando el nombre y seleccionando sus columnas.

Información general
Estas funciones dan forma a una tabla mediante el ajuste de sus columnas:
Reducción de una tabla que contiene varias columnas a una sola columna para su uso con las funciones de columna única, como
Lower o Abs .
Incorporación de una columna calculada a una tabla (por ejemplo, una columna Total Price que muestre el resultado de multiplicar
Quantity por Unit Price).
Cambio del nombre de una columna a algo más significativo, para mostrarla a los usuarios o para su uso en las fórmulas.
Una tabla es un valor en PowerApps, como una cadena o un número. Puede especificar una tabla como un argumento en una fórmula, y
las funciones pueden devolver una tabla como resultado.

NOTE
Las funciones que se describen en este tema no modifican la tabla original. En su lugar, toman esa tabla como argumento y devuelven una nueva
tabla con una transformación aplicada. Consulte cómo trabajar con tablas para más detalles.

No se pueden modificar las columnas de un origen de datos mediante el uso de estas funciones. Tiene que modificar los datos en su
origen. Puede agregar columnas a una colección con la función Collect . Consulte cómo trabajar con fuentes de datos para más detalles.

Descripción
La función AddColumns agrega una columna a una tabla y una fórmula define los valores de esa columna. Las columnas existentes
permanecen sin modificar.
La fórmula se evalúa para cada registro de la tabla.
Los campos de registro que se están procesando actualmente estarán disponibles en la formula. Solo tiene que hacer referencia a los
campos por su nombre, como con cualquier otro valor. También puede hacer referencia a propiedades de control y a otros valores desde
toda la aplicación. Para obtener más detalles, vea los ejemplos siguientes y trabajar con el ámbito de registros.
La función DropColumns excluye las columnas de una tabla. El resto de las columnas permanece sin modificar. DropColumns excluye
las columnas y ShowColumns las incluye.
Use la función RenameColumns para cambiar el nombre de una o varias columnas de una tabla al proporcionar al menos un par de
argumentos que especifiquen el nombre de una columna que contiene la tabla (el nombre antiguo, que se quiere reemplazar) y el
nombre de una columna que la tabla no contiene (el nombre nuevo, que se quiere usar). El nombre antiguo ya debe existir en la tabla y
el nuevo nombre no. Cada nombre de columna puede aparecer solo una vez en la lista de argumentos como un nombre de columna
antiguo o nuevo. Para cambiar el nombre de una columna por un nombre de columna existente, primero quite la columna existente con
DropColumns o cambie el nombre de la columna existente al anidar una función RenameColumns dentro de otra.
La función ShowColumns incluye columnas de una tabla y quita todas las demás columnas. Puede usar ShowColumns para crear una
tabla de una sola columna a partir de una tabla de varias columnas. ShowColumns incluye columnas y DropColumns las excluye.
Para todas estas funciones, el resultado es una nueva tabla con la transformación aplicada. La tabla original no se modifica. No se puede
modificar una tabla existente con una fórmula. SharePoint, Common Data Service, SQL Server y otros orígenes de datos proporcionan
herramientas para modificar las columnas de listas, entidades y tablas, a las que se suele hacer referencia como esquema. Las funciones
de este tema solo transforman una tabla de entrada, sin modificar la original, en una tabla de salida para su uso posterior.
Los argumentos de estas funciones admiten la delegación. Por ejemplo, una función de filtro que se usa como argumento para extraer
los registros relacionados realiza búsquedas en todas las listas, incluso si el ' [dbo]. [ AllListings] ' el origen de datos contiene un
millón de filas:
AddColumns( RealEstateAgents;
"Listings";
Filter( '[dbo].[AllListings]'; ListingAgentName = AgentName )
)

Sin embargo, el resultado de estas funciones está sujeto al límite de registros que no son de delegación. En este ejemplo, solo se
devuelven los registros 500, incluso si el origen de datos RealEstateAgents tiene 501 o más registros.
Si utiliza AddColumns de esta manera, el filtro debe realizar llamadas independientes en el origen de datos para cada uno de esos
primeros registros en RealEstateAgents, lo que provoca una gran cantidad de chatter de red. Si [dbo]. [ AllListings] es lo
suficientemente pequeño y no cambia con frecuencia, puede llamar a la función Collect en OnStart para almacenar en caché el origen
de datos en la aplicación cuando se inicia. Como alternativa, puede reestructurar la aplicación para que extraiga los registros
relacionados solo cuando el usuario los solicite.

Sintaxis
AddColumns( Table; ColumnName1; Formula1 [; ColumnName2; Formula2; ... ] )
Table: requerido. La tabla sobre la cual se opera.
ColumnName(s) : requerido. Nombres de las columnas para agregar. Tiene que especificar una cadena (por ejemplo, "Name" entre
comillas dobles incluidas) para este argumento.
Formula (s) : requerido. La fórmula o fórmulas para evaluar para cada registro. Se agregará el resultado como el valor de la nueva
columna correspondiente. Puede hacer referencia a otras columnas de la tabla en esta fórmula.
DropColumns( Table; ColumnName1 [; ColumnName2; ... ] )
Table: requerido. La tabla sobre la cual se opera.
ColumnName(s) : requerido. Nombres de las columnas para excluir. Tiene que especificar una cadena (por ejemplo, "Name" entre
comillas dobles incluidas) para este argumento.
Cambiarnombrecolumnas( TABLE; OldColumnName1; NewColumnName1 [; OldColumnName2; NewColumnName2;...])
Table: requerido. La tabla sobre la cual se opera.
OldColumnName: requerido. Nombre de una columna de la tabla original cuyo nombre se va a cambiar. Este elemento aparece en
primer lugar en el par de argumentos (o en primer lugar en cada par de argumentos si la fórmula incluye más de un par). Este
nombre tiene que ser una cadena (por ejemplo, "Name" con comillas dobles incluidas).
NewColumnName: requerido. Nombre de reemplazo. Este elemento aparece por último lugar en el par de argumentos (o por último
lugar en cada par de argumentos si la fórmula incluye más de un par). Tiene que especificar una cadena (por ejemplo, "Customer
Name" con comillas dobles incluidas) para este argumento.
ShowColumns( Table; ColumnName1 [; ColumnName2; ... ] )
Table: requerido. La tabla sobre la cual se opera.
ColumnName(s) : requerido. Nombres de las columnas para incluir. Tiene que especificar una cadena (por ejemplo, "Name" entre
comillas dobles incluidas) para este argumento.

Ejemplos
En los ejemplos en esta sección, use el origen de datos IceCreamSales, que contiene los datos de esta tabla:

Ninguno de estos ejemplos modificar el origen de datos IceCreamSales. Cada función transforma el valor del origen de datos como
una tabla y devuelve ese valor como resultado.

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

AddColumns (IceCreamSales, "Revenue", Agrega una columna Revenue al resultado. Para


UnitPrice * QuantitySold) cada registro, se evalúa UnitPrice *
QuantitySold, y el resultado se coloca en la
nueva columna.

DropColumns (IceCreamSales, "UnitPrice") Excluye la columna UnitPrice del resultado. Use


esta función para excluir columnas y usar
ShowColumns para incluirlas.

ShowColumns( IceCreamSales; "Flavor" ) Incluye solamente la columna Flavor en el


resultado. Use esta función para incluir
columnas y DropColumns para excluirlas.

RenameColumns( IceCreamSales; Cambia el nombre de la columna UnitPrice en


"UnitPrice"; "Price") el resultado.

RenameColumns( IceCreamSales; Cambia el nombre de las columnas UnitPrice y


"UnitPrice"; "Price"; "QuantitySold"; QuantitySold en el resultado.
"Number")

DropColumns( Realiza las siguientes transformaciones de tabla


RenameColumns( en orden, comenzando desde el interior de la
AddColumns( IceCreamSales; "Revenue"; fórmula:
UnitPrice * QuantitySold ); 1. Agrega una columna Revenue basada
"UnitPrice"; "Price" ); en el cálculo por registro de UnitPrice *
"Quantity" ) Quantity.
2. Cambia el nombre de UnitPrice a Price.
3. Excluye la columna Quantity.
Tenga en cuenta que el orden es importante.
Por ejemplo, no se puede calcular con UnitPrice
después de que se le haya cambiado el nombre.

Paso a paso
Vamos a probar algunos de los ejemplos anteriores de este tema.
1. Cree una colección agregando un control de botón y estableciendo su propiedad alseleccionar en esta fórmula:

ClearCollect( IceCreamSales;
Table(
{ Flavor: "Strawberry"; UnitPrice: 1,99; QuantitySold: 20 };
{ Flavor: "Chocolate"; UnitPrice: 2,99; QuantitySold: 45 };
{ Flavor: "Vanilla"; UnitPrice: 1,50; QuantitySold: 35 }
)
)

2. Ejecute la fórmula seleccionando el botón mientras mantiene presionada la tecla Alt.


3. Agregue un segundo control botón , establezca su propiedad alseleccionar en esta fórmula y, a continuación, ejecútelo:

ClearCollect( FirstExample;
AddColumns( IceCreamSales; "Revenue"; UnitPrice * QuantitySold )
)

4. En el menú archivo , seleccione coleccionesy, a continuación, seleccione IceCreamSales para mostrar esa recopilación.
Como se muestra en este gráfico, la segunda fórmula no modificó esta colección. La función AddColumns usó IceCreamSales
como argumento de solo lectura; la función no modificó la tabla a la que hace referencia ese argumento.

5. Seleccione FirstExample.
Como se muestra en este gráfico, la segunda fórmula devolvió una nueva tabla con la columna agregada. La función
ClearCollect capturó la nueva tabla en la colección FirstExample , agregando algo a la tabla original a medida que fluye a través
de la función sin modificar el origen:
Funciones And, Or y Not en PowerApps
26/11/2019 • 5 minutes to read

Funciones de lógica booleana usadas comúnmente para manipular los resultados de pruebas y comparaciones.

Descripción
La función And devuelve true si todos los argumentos son verdaderos.
La función Or devuelve true si todos sus argumentos son verdaderos.
La función Not devuelve true si su argumento es falso y devuelve false si su argumento es verdadero.
Estas funciones funcionan de la misma manera que en Excel. También puede usar operadores para realizar estas
mismas operaciones, usando la sintaxis de Visual Basic o JavaScript:

NOTACIÓN DE FUNCIÓN VISUAL BASIC NOTACIÓN DE OPERADOR NOTACIÓN DEL OPERADOR DE JAVASCRIPT

And (x, y) xey x&&y

O (x, y) xoy x||y

Not (x) No x ! x1

Estas funciones trabajan con valores lógicos. No se pueden pasar un número o una cadena directamente. en su
lugar, debe realizar una comparación o una prueba. Por ejemplo, esta fórmula lógica x > 1 se evalúa como el valor
booleano true si x es mayor que 1. Si x es menor que 1, la fórmula se evalúa como false.

Sintaxis
And( LogicalFormula1; LogicalFormula2 [; LogicalFormula3; ... ] )
Or( LogicalFormula1; LogicalFormula2 [; LogicalFormula3; ... ] )
Not( LogicalFormula )
LogicalFormula (s) : requerido. Fórmulas lógicas para evaluar y con las que operar.

Ejemplos
En los ejemplos de esta sección se usan estas variables globales:
un = false
b = true
x = 10
y = 100
s = "Hola mundo"
Para crear estas variables globales en una aplicación, inserte un control de botón y establezca su propiedad
alseleccionar en esta fórmula:

Set( a; false );; Set( b; true );; Set( x; 10 );; Set( y; 100 );; Set( s; "Hello World" )
Seleccione el botón (haciendo clic en él mientras mantiene presionada la tecla Alt) y, a continuación, establezca la
propiedad texto de un control etiqueta en una fórmula de la primera columna de la tabla siguiente.

FÓRMULA DESCRIPCIÓN RESULTADO

Y (a, b) Comprueba los valores de a y b. Uno de false


los argumentos es false, por lo que la
función devuelve false.

ayb Igual que el ejemplo anterior, utilizando false


Visual Basic notación.

un & & b Igual que en el ejemplo anterior, con la false


notación JavaScript.

O (a, b) Comprueba los valores de a y b. Uno de true


los argumentos es true, por lo que la
función devuelve true.

aob Igual que el ejemplo anterior, utilizando true


Visual Basic notación.

a||b Igual que en el ejemplo anterior, con la true


notación JavaScript.

No (a) Comprueba el valor de un. El true


argumento es false, por lo que la
función devuelve el resultado opuesto.

No es un Igual que el ejemplo anterior, utilizando true


Visual Basic notación.

! un Igual que en el ejemplo anterior, con la true


notación JavaScript.

Len ( s ) < 20 y no esblanco ( s ) Comprueba si la longitud de s es menor true


que 20 y si no es un valor en blanco .
La longitud es menor que 20 y el valor
no está en blanco. Por lo tanto, el
resultado es true.

Or ( Len ( s ) < 10, x < 100, y < 100 ) Comprueba si la longitud de s es menor true
que 10, si x es menor que 100 y si y es
menor que 100. El primer y el tercer
argumento son false, pero el segundo
es true. Por lo tanto, la función devuelve
true.

No esblanco ( s ) Comprueba si s está en blanco, lo que true


devuelve false. No devuelve el opuesto
de este resultado, que es true.
Objeto App en PowerApps
05/11/2019 • 8 minutes to read

Proporciona información sobre la aplicación que se está ejecutando actualmente y el control sobre el
comportamiento de la aplicación.

Descripción
Al igual que un control, el objeto de aplicación proporciona propiedades que identifican la pantalla que se
muestra y que solicitan al usuario que guarde los cambios para que no se pierdan. Cada aplicación tiene un
objeto de aplicación .
Puede escribir fórmulas para algunas propiedades del objeto de aplicación . En la parte superior del panel de
vista de árbol , seleccione el objeto de la aplicación como lo haría con cualquier otro control o pantalla. Para
ver y editar una de las propiedades del objeto, selecciónela en la lista desplegable situada a la izquierda de la
barra de fórmulas.

Propiedad ActiveScreen
La propiedad ActiveScreen identifica la pantalla que se muestra.
Esta propiedad devuelve un objeto de pantalla, que puede usar para hacer referencia a las propiedades de la
pantalla o comparar con otra pantalla para determinar la pantalla que se muestra. También puede usar la
expresión app.ActiveScreen.Name para recuperar el nombre de la pantalla que se muestra.
Utilice la función back o Navigate para cambiar la pantalla que se muestra.

OnStart (propiedad)
La propiedad OnStart se ejecuta cuando el usuario inicia la aplicación. A menudo, los responsables de
aplicaciones usan esta propiedad para realizar estas tareas:
Recupere y almacene en caché los datos en colecciones mediante la función Collect .
Configure variables globales mediante la función set .
Navegue a una pantalla inicial mediante la función Navigate .
Esta fórmula se evalúa antes de que aparezca la primera pantalla. No se carga ninguna pantalla, por lo que no se
pueden establecer variables de contexto con la función UpdateContext . Sin embargo, puede pasar las variables
de contexto con la función Navigate .
Después de cambiar la propiedad OnStart , pruébelo manteniendo el mouse sobre el objeto App en el panel
vista de árbol , seleccionando los puntos suspensivos (...) que aparece y seleccionando Ejecutar OnStart. A
diferencia de la primera vez que se carga la aplicación, ya se establecerán las colecciones y variables existentes.
Para empezar con colecciones vacías, utilice la función ClearCollect en lugar de la función Collect .

Propiedades de ConfirmExit
Nadie desea perder los cambios no guardados. Use las propiedades ConfirmExit y ConfirmExitMessage para
avisar al usuario antes de cerrar la aplicación.

NOTE
ConfirmExit no funciona en aplicaciones que están incrustadas en, por ejemplo, Power BI y SharePoint.

NOTE
En la actualidad, estas propiedades solo pueden hacer referencia a los controles de la primera pantalla si está habilitada la
característica de vista previa de carga retrasada (que es de forma predeterminada para las nuevas aplicaciones). Si se
realizan referencias, PowerApps Studio no muestra un error, pero la aplicación publicada resultante no se abre en
PowerApps Mobile o en un explorador. Estamos trabajando activamente para levantar esta limitación. Mientras tanto,
puede desactivar la carga retrasada en la configuración de laaplicación de archivo > > Configuración avanzada (en
características de vista previa).

ConfirmExit
ConfirmExit es una propiedad booleana que, cuando es true, abre un cuadro de diálogo de confirmación antes
de que se cierre la aplicación. De forma predeterminada, esta propiedad es falsey no aparece ningún cuadro de
diálogo.
Utilice esta propiedad para mostrar un cuadro de diálogo de confirmación si el usuario ha realizado cambios
pero no los ha guardado. Use una fórmula que pueda comprobar variables y propiedades de control (por
ejemplo, la propiedad no guardada del control Editar formulario ).
El cuadro de diálogo de confirmación aparece en cualquier situación en la que se puedan perder los datos, como
en estos ejemplos:
Ejecutar la función Exit .
Si la aplicación se ejecuta en un explorador:
Cierre del explorador o de la pestaña del explorador en el que se ejecuta la aplicación.
Seleccionar el botón atrás del explorador.
Si la aplicación se ejecuta en PowerApps Mobile (iOS o Android):
Ejecutar la función Launch .
La función Launch no desencadena el cuadro de diálogo en un explorador porque se abre otra pestaña
para que no se pierdan los datos.
Deslizar rápidamente para cambiar a otra aplicación en PowerApps Mobile.
Seleccionar el botón atrás en un dispositivo Android.
La apariencia exacta del cuadro de diálogo de confirmación puede variar en los dispositivos y las versiones de
PowerApps.
El cuadro de diálogo de confirmación no aparece en PowerApps Studio.
ConfirmExitMessage
De forma predeterminada, el cuadro de diálogo de confirmación muestra un mensaje genérico, como "es
posible que tenga cambios sin guardar". en el idioma del usuario.
Use ConfirmExitMessage para proporcionar un mensaje personalizado en el cuadro de diálogo de
confirmación. Si esta propiedad está en blanco, se usa el valor predeterminado. Los mensajes personalizados se
truncan según sea necesario para que quepan en el cuadro de diálogo de confirmación, por lo que debe
mantener el mensaje a unas cuantas líneas como máximo.
En un explorador, el cuadro de diálogo de confirmación podría aparecer con un mensaje genérico del explorador.
Ejemplo
1. Cree una aplicación que contenga dos controles de formulario, AccountForm y ContactForm.
2. Establezca la propiedad ConfirmExit del objeto de aplicación en esta expresión:

AccountForm.Unsaved Or ContactForm.Unsaved

Este cuadro de diálogo aparece si el usuario cambia los datos de cualquier forma y, a continuación, intenta
cerrar la aplicación sin guardar los cambios.

3. Establezca la propiedad ConfirmExitMessage del objeto de aplicación en esta fórmula:

If( AccountsForm.Unsaved;
"Accounts form has unsaved changes.";
"Contacts form has unsaved changes."
)

Este cuadro de diálogo aparece si el usuario cambia los datos en el formulario de la cuenta y, a
continuación, intenta cerrar la aplicación sin guardar los cambios.
Funciones Acos, Acot, Asin, Atan, Atan2, Cos, Cot,
Degrees, Pi, Radians, Sin y Tan en PowerApps
08/10/2019 • 9 minutes to read

Calcula valores trigonométricos.

Descripción
Funciones principales
La función Cos devuelve el coseno de su argumento, un ángulo especificado en radianes.
La función Cot devuelve la cotangente de su argumento, un ángulo especificado en radianes.
La función Sin devuelve el seno de su argumento, un ángulo especificado en radianes.
La función Tan devuelve la tangente de su argumento, un ángulo especificado en radianes.
Funciones inversas
El Acos función devuelve el arcocoseno, o coseno inverso, de su argumento. El arcocoseno es el ángulo cuyo
coseno es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Acot devuelve el valor principal de la arcocotangente, o cotangente inversa, de su argumento. El ángulo
devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Asin devuelve el arcoseno, o seno inverso, de su argumento. El arcoseno es el ángulo cuyo seno es el
argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a π/2.
La función Atan devuelve la arcotangente, o tangente inversa, de su argumento. La arcotangente es el ángulo cuya
tangente es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a π/2.
La función Atan2 devuelve la arcotangente, o tangente inversa, de las coordenadas x e y especificadas como
argumentos. La arcotangente es el ángulo desde el eje x a una línea que contiene el origen (0, 0) y un punto con las
coordenadas (x, y). El ángulo se expresa en radianes entre -π y π, excluyendo -π. Un resultado positivo representa
un ángulo con rotación levógira (hacia la izquierda) desde el eje x; un resultado negativo representa un ángulo con
rotación dextrógira (hacia la derecha). Atan2( a; b ) es igual a Atan( b/a ) , excepto que a puede ser igual a 0 (cero)
con la función Atan2.
Funciones auxiliares
La función Degrees convierte radianes en grados. π radianes equivalen a 180 grados.
La función Pi devuelve el número transcendente π, que comienza 3,141592...
La función Radians convierte grados en radianes.
Notas
Si pasa un solo número a estas funciones, el valor que se devuelve es un resultado único. Si pasa una tabla de una
sola columna que contiene números, el valor que se muestra es una tabla de resultados de una sola columna, un
resultado para cada registro en la tabla del argumento. Si tiene una tabla con varias columnas, puede convertirla en
una tabla de una sola columna, como se describe en cómo trabajar con tablas.
Si algún argumento resultase en un valor no definido, el resultado es blank. Esto puede ocurrir, por ejemplo, al
utilizar las funciones inversas con argumentos que están fuera del intervalo.
Sintaxis
Funciones principales
Cos( Radians )
Cot( Radians )
Sin( Radians )
Tan( Radians )
Radians: requerido. Ángulo sobre el cual operar.
Cos( SingleColumnTable )
Cot( SingleColumnTable )
Sin( SingleColumnTable )
Tan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de ángulos de una sola columna sobre la que se va a actuar.
Funciones inversas
Acos( Number )
Acot( Number )
Asin( Number )
Atan( Number )
Number: requerido. El número sobre el cual operar.
Acos( SingleColumnTable )
Acot( SingleColumnTable )
Asin( SingleColumnTable )
Atan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de números de una sola columna sobre la cual operar.
Atan2( X; Y )
X: requerido. coordenadas del eje X.
Y: requerido. coordenadas del eje Y.
Funciones del asistente
Degrees( Radians )
Radians: requerido. Ángulo en radianes para convertir en grados.
Pi()
Radians( Degrees )
Degrees: requerido. Ángulo en grados para convertir en radianes.

Ejemplos
Número único
FÓRMULA DESCRIPCIÓN RESULTADO

Cos( 1;047197 ) Devuelve el coseno de 1,047197 0,5


radianes o 60 grados.
FÓRMULA DESCRIPCIÓN RESULTADO

Cot( Pi()/4 ) Devuelve la cotangente de 0,785398... 1


radianes o 45 grados.

Sin( Pi()/2 ) Devuelve el seno de 1,570796 radianes 1


o 90 grados.

Tan ( Radians(60) ) Devuelve la tangente de 1,047197 1,732050...


radianes o 60 grados.

Acos( 0;5 ) Devuelve el arcocoseno de 0,5 en 1,047197...


radianes.

Acot( 1 ) Devuelve la arcocotangente de 1, en 0,785398...


radianes.

Asin( 1 ) Devuelve el arcoseno de 1, en radianes. 1,570796...

Atan ( 1,732050 ) Devuelve la arcotangente de 1,732050, 1,047197...


en radianes.

Atan2( 5; 3 ) Devuelve la arcotangente del ángulo del 0,540419...


eje x de la línea que contiene el origen
(0,0) y la coordenada (5,3), que es
aproximadamente 31 grados.

Atan2( 4; 4 ) Devuelve la arcotangente del ángulo del 0,785398...


eje x de la línea que contiene el origen
(0,0) y la coordenada (4,4), que es
exactamente π/4 radianes o 45 grados.

Degrees ( 1,047197 ) Devuelve el número equivalente de 60


grados de 1,047197 radianes.

Pi() El número trascendente π. 3,141592...

Radians ( 15 ) Devuelve el número equivalente de 0,261799...


radianes para 15 grados.

Tabla de una sola columna


Los ejemplos de esta sección usan un origen de datos denominado ValueTable que contiene los siguientes datos:
El último registro en la tabla es π/2 radianes o 90 grados.

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

Cos( ValueTable ) Devuelve el coseno de cada número en


la tabla.

Cot( ValueTable ) Devuelve la cotangente de cada número


en la tabla.

Sin( ValueTable ) Devuelve el seno de cada número en la


tabla.

Tan( ValueTable ) Devuelve la tangente de cada número


en la tabla.

Acos( ValueTable ) Devuelve el arcocoseno de cada número


en la tabla.

Acot( ValueTable ) Devuelve la arcocotangente de cada


número en la tabla.

Asin( ValueTable ) Devuelve el arcoseno de cada número


en la tabla.

Atan( ValueTable ) Devuelve la arcotangente de cada


número en la tabla.
FÓRMULA DESCRIPCIÓN RESULTADO

Degrees( ValueTable ) Devuelve el número equivalente de


grados para cada número de la tabla,
supone que son ángulos en radianes.

Radians( ValueTable ) Devuelve el número equivalente de


radianes para cada número de la tabla,
supone que son ángulos en grados.
Funciones astype y IsType en aplicaciones de Canvas
29/10/2019 • 8 minutes to read

Comprueba una referencia de registro para un tipo de entidad específico (IsType) y trata la referencia como un tipo
específico (astype).

Descripción
Lea comprender las referencias de registros y las búsquedas polimórficas para obtener una introducción más
amplia y más detalles.
Normalmente, un campo de búsqueda hace referencia a los registros de una entidad determinada. Dado que el tipo
de entidad está bien establecido, puede tener acceso a los campos de la búsqueda mediante una notación de
puntos simple. Por ejemplo, primero (cuentas). Contacto principal '. ' Nombre completo ' se dirige de la
entidad accounts al registro de contacto principal de la entidad Contacts y extrae el campo de nombre
completo .
Common Data Service también admite campos de búsqueda polimórficos, que pueden hacer referencia a los
registros de un conjunto de entidades, como en estos ejemplos.

CAMPO DE BÚSQUEDA PUEDE HACER REFERENCIA A

Propietario Usuarios o equipos

Customer Cuentas o contactos

Sobre Cuentas, contactos, artículos de conocimientos, etc.

En las fórmulas de canvas-App, puede usar referencias de registros para trabajar con búsquedas polimórficas.
Dado que una referencia de registro puede hacer referencia a distintas entidades, no sabe qué campos estarán
disponibles cuando escriba una fórmula. El . La notación de campo no está disponible. Dichas fórmulas se deben
adaptar a los registros que encuentra la aplicación cuando se ejecuta.
La función IsType comprueba si una referencia de registro hace referencia a un tipo de entidad concreto. La
función devuelve un valor booleano TRUE o FALSE.
La función astype trata una referencia de registro como un tipo de entidad concreto, que a veces se conoce como
conversión. Puede usar el resultado como si fuera un registro de la entidad y, de nuevo, usar . Notación de campo
para tener acceso a todos los campos de ese registro. Se produce un error si la referencia no es del tipo específico.
Use estas funciones juntas para probar primero el tipo de entidad de un registro y, a continuación, tratarlo como un
registro de ese tipo para que los campos estén disponibles:

If( IsType( First( Accounts ).Owner; Users );


AsType( First( Accounts ).Owner; Users ).'Full Name';
AsType( First( Accounts ).Owner; Teams ).'Team Name'
)

Solo necesita estas funciones si tiene acceso a los campos de una referencia de registro. Por ejemplo, puede usar
referencias de registros en la función de filtro sin IsType o astype:
Filter( Accounts; Owner = First( Users ) )

Del mismo modo, puede usar referencias de registros con la función patch :

Patch( Accounts; First( Accounts ); { Owner: First( Teams ) } )

Si se usa en un contexto de registro, como en un control de Galería o de edición de formulario , puede que tenga
que usar el operador de desambiguación global para hacer referencia al tipo de entidad. Por ejemplo, esta fórmula
sería efectiva en una galería que muestre una lista de contactos en la que el nombre de la compañía es una
búsqueda de clientes :

If( IsType( ThisItem.'Company Name'; [@Accounts] );


AsType( ThisItem.'Company Name'; [@Accounts] ).'Account Name';
AsType( ThisItem.'Company Name'; [@Contacts] ).'Full Name'
)

En ambas funciones, se especifica el tipo mediante el nombre del origen de datos que está conectado a la entidad.
Para que la fórmula funcione, también debe agregar un origen de datos a la aplicación para cualquier tipo que
desee probar o convertir. Por ejemplo, debe agregar la entidad users como origen de datos si desea usar IsType y
astype con una búsqueda de propietario y registros de esa entidad. Solo puede Agregar los orígenes de datos
que usa realmente en la aplicación; no es necesario agregar todas las entidades a las que podría hacer referencia
una búsqueda.
Si la referencia del registro está en blanco, IsType devuelve false y astype devuelve Blank. Todos los campos de un
registro en blanco estarán en blanco.

Sintaxis
Astype( RecordReference; EntityType )
RecordReference : requerido. Una referencia de registro, a menudo un campo de búsqueda que puede hacer
referencia a un registro en cualquiera de las varias entidades.
EntityType : requerido. Entidad específica que se va a probar.
IsType( RecordReference; EntityType )
RecordReference : requerido. Una referencia de registro, a menudo un campo de búsqueda que puede hacer
referencia a un registro en cualquiera de las varias entidades.
EntityType : requerido. La entidad específica a la que se debe convertir el registro.

Ejemplo
Comprender las referencias de registros y las búsquedas polimórficas contiene extensos ejemplos.
1. Cree una aplicación de lienzo en blanco para tabletas.
2. En la pestaña Ver , seleccione orígenes de datosy, a continuación, agregue las entidades contactos y
cuentas como orígenes de datos.
3. Inserte un control Galería con una orientación vertical en blanco .

4. En la pestaña propiedades situada cerca del lado derecho de la pantalla, establezca la propiedad
elementos de la galería en contactos.

5. Establezca el diseño de la galería en título y subtítulo.


6. En el panel datos , abra la lista Title1 y, a continuación, seleccione nombre completo.

7. Seleccione el control etiqueta Subtitle1 .


8. Establezca la propiedad Text de Subtitle1 en esta fórmula:

If( IsBlank( ThisItem.'Company Name' ); "--";


IsType( ThisItem.'Company Name'; [@Accounts] );
"Account: " & AsType( ThisItem.'Company Name'; [@Accounts] ).'Account Name';
"Contact: " & AsType( ThisItem.'Company Name'; [@Contacts] ).'Full Name'
)

El subtítulo de la galería muestra estos valores:


"--" si el valor de "Company name" está en blanco.
"Cuenta:" y, a continuación, el campo nombre de cuenta de la entidad cuentas si el campo Nombre de
la compañía hace referencia a una cuenta.
"Contacto:" y, a continuación, el campo nombre completo de la entidad contactos si el campo Nombre
de la compañía hace referencia a un contacto.
Los resultados pueden diferir de los de este tema, ya que usa datos de ejemplo que se modificaron para
mostrar tipos adicionales de resultados.
Funciones Acos, Acot, Asin, Atan, Atan2, Cos, Cot,
Degrees, Pi, Radians, Sin y Tan en PowerApps
08/10/2019 • 9 minutes to read

Calcula valores trigonométricos.

Descripción
Funciones principales
La función Cos devuelve el coseno de su argumento, un ángulo especificado en radianes.
La función Cot devuelve la cotangente de su argumento, un ángulo especificado en radianes.
La función Sin devuelve el seno de su argumento, un ángulo especificado en radianes.
La función Tan devuelve la tangente de su argumento, un ángulo especificado en radianes.
Funciones inversas
El Acos función devuelve el arcocoseno, o coseno inverso, de su argumento. El arcocoseno es el ángulo cuyo
coseno es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Acot devuelve el valor principal de la arcocotangente, o cotangente inversa, de su argumento. El ángulo
devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Asin devuelve el arcoseno, o seno inverso, de su argumento. El arcoseno es el ángulo cuyo seno es el
argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a π/2.
La función Atan devuelve la arcotangente, o tangente inversa, de su argumento. La arcotangente es el ángulo cuya
tangente es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a π/2.
La función Atan2 devuelve la arcotangente, o tangente inversa, de las coordenadas x e y especificadas como
argumentos. La arcotangente es el ángulo desde el eje x a una línea que contiene el origen (0, 0) y un punto con las
coordenadas (x, y). El ángulo se expresa en radianes entre -π y π, excluyendo -π. Un resultado positivo representa
un ángulo con rotación levógira (hacia la izquierda) desde el eje x; un resultado negativo representa un ángulo con
rotación dextrógira (hacia la derecha). Atan2( a; b ) es igual a Atan( b/a ) , excepto que a puede ser igual a 0 (cero)
con la función Atan2.
Funciones auxiliares
La función Degrees convierte radianes en grados. π radianes equivalen a 180 grados.
La función Pi devuelve el número transcendente π, que comienza 3,141592...
La función Radians convierte grados en radianes.
Notas
Si pasa un solo número a estas funciones, el valor que se devuelve es un resultado único. Si pasa una tabla de una
sola columna que contiene números, el valor que se muestra es una tabla de resultados de una sola columna, un
resultado para cada registro en la tabla del argumento. Si tiene una tabla con varias columnas, puede convertirla en
una tabla de una sola columna, como se describe en cómo trabajar con tablas.
Si algún argumento resultase en un valor no definido, el resultado es blank. Esto puede ocurrir, por ejemplo, al
utilizar las funciones inversas con argumentos que están fuera del intervalo.
Sintaxis
Funciones principales
Cos( Radians )
Cot( Radians )
Sin( Radians )
Tan( Radians )
Radians: requerido. Ángulo sobre el cual operar.
Cos( SingleColumnTable )
Cot( SingleColumnTable )
Sin( SingleColumnTable )
Tan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de ángulos de una sola columna sobre la que se va a actuar.
Funciones inversas
Acos( Number )
Acot( Number )
Asin( Number )
Atan( Number )
Number: requerido. El número sobre el cual operar.
Acos( SingleColumnTable )
Acot( SingleColumnTable )
Asin( SingleColumnTable )
Atan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de números de una sola columna sobre la cual operar.
Atan2( X; Y )
X: requerido. coordenadas del eje X.
Y: requerido. coordenadas del eje Y.
Funciones del asistente
Degrees( Radians )
Radians: requerido. Ángulo en radianes para convertir en grados.
Pi()
Radians( Degrees )
Degrees: requerido. Ángulo en grados para convertir en radianes.

Ejemplos
Número único
FÓRMULA DESCRIPCIÓN RESULTADO

Cos( 1;047197 ) Devuelve el coseno de 1,047197 0,5


radianes o 60 grados.
FÓRMULA DESCRIPCIÓN RESULTADO

Cot( Pi()/4 ) Devuelve la cotangente de 0,785398... 1


radianes o 45 grados.

Sin( Pi()/2 ) Devuelve el seno de 1,570796 radianes 1


o 90 grados.

Tan ( Radians(60) ) Devuelve la tangente de 1,047197 1,732050...


radianes o 60 grados.

Acos( 0;5 ) Devuelve el arcocoseno de 0,5 en 1,047197...


radianes.

Acot( 1 ) Devuelve la arcocotangente de 1, en 0,785398...


radianes.

Asin( 1 ) Devuelve el arcoseno de 1, en radianes. 1,570796...

Atan ( 1,732050 ) Devuelve la arcotangente de 1,732050, 1,047197...


en radianes.

Atan2( 5; 3 ) Devuelve la arcotangente del ángulo del 0,540419...


eje x de la línea que contiene el origen
(0,0) y la coordenada (5,3), que es
aproximadamente 31 grados.

Atan2( 4; 4 ) Devuelve la arcotangente del ángulo del 0,785398...


eje x de la línea que contiene el origen
(0,0) y la coordenada (4,4), que es
exactamente π/4 radianes o 45 grados.

Degrees ( 1,047197 ) Devuelve el número equivalente de 60


grados de 1,047197 radianes.

Pi() El número trascendente π. 3,141592...

Radians ( 15 ) Devuelve el número equivalente de 0,261799...


radianes para 15 grados.

Tabla de una sola columna


Los ejemplos de esta sección usan un origen de datos denominado ValueTable que contiene los siguientes datos:
El último registro en la tabla es π/2 radianes o 90 grados.

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

Cos( ValueTable ) Devuelve el coseno de cada número en


la tabla.

Cot( ValueTable ) Devuelve la cotangente de cada número


en la tabla.

Sin( ValueTable ) Devuelve el seno de cada número en la


tabla.

Tan( ValueTable ) Devuelve la tangente de cada número


en la tabla.

Acos( ValueTable ) Devuelve el arcocoseno de cada número


en la tabla.

Acot( ValueTable ) Devuelve la arcocotangente de cada


número en la tabla.

Asin( ValueTable ) Devuelve el arcoseno de cada número


en la tabla.

Atan( ValueTable ) Devuelve la arcotangente de cada


número en la tabla.
FÓRMULA DESCRIPCIÓN RESULTADO

Degrees( ValueTable ) Devuelve el número equivalente de


grados para cada número de la tabla,
supone que son ángulos en radianes.

Radians( ValueTable ) Devuelve el número equivalente de


radianes para cada número de la tabla,
supone que son ángulos en grados.
Funciones Acos, Acot, Asin, Atan, Atan2, Cos, Cot,
Degrees, Pi, Radians, Sin y Tan en PowerApps
08/10/2019 • 9 minutes to read

Calcula valores trigonométricos.

Descripción
Funciones principales
La función Cos devuelve el coseno de su argumento, un ángulo especificado en radianes.
La función Cot devuelve la cotangente de su argumento, un ángulo especificado en radianes.
La función Sin devuelve el seno de su argumento, un ángulo especificado en radianes.
La función Tan devuelve la tangente de su argumento, un ángulo especificado en radianes.
Funciones inversas
El Acos función devuelve el arcocoseno, o coseno inverso, de su argumento. El arcocoseno es el ángulo cuyo
coseno es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Acot devuelve el valor principal de la arcocotangente, o cotangente inversa, de su argumento. El ángulo
devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Asin devuelve el arcoseno, o seno inverso, de su argumento. El arcoseno es el ángulo cuyo seno es el
argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a π/2.
La función Atan devuelve la arcotangente, o tangente inversa, de su argumento. La arcotangente es el ángulo cuya
tangente es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a π/2.
La función Atan2 devuelve la arcotangente, o tangente inversa, de las coordenadas x e y especificadas como
argumentos. La arcotangente es el ángulo desde el eje x a una línea que contiene el origen (0, 0) y un punto con las
coordenadas (x, y). El ángulo se expresa en radianes entre -π y π, excluyendo -π. Un resultado positivo representa
un ángulo con rotación levógira (hacia la izquierda) desde el eje x; un resultado negativo representa un ángulo con
rotación dextrógira (hacia la derecha). Atan2( a; b ) es igual a Atan( b/a ) , excepto que a puede ser igual a 0 (cero)
con la función Atan2.
Funciones auxiliares
La función Degrees convierte radianes en grados. π radianes equivalen a 180 grados.
La función Pi devuelve el número transcendente π, que comienza 3,141592...
La función Radians convierte grados en radianes.
Notas
Si pasa un solo número a estas funciones, el valor que se devuelve es un resultado único. Si pasa una tabla de una
sola columna que contiene números, el valor que se muestra es una tabla de resultados de una sola columna, un
resultado para cada registro en la tabla del argumento. Si tiene una tabla con varias columnas, puede convertirla en
una tabla de una sola columna, como se describe en cómo trabajar con tablas.
Si algún argumento resultase en un valor no definido, el resultado es blank. Esto puede ocurrir, por ejemplo, al
utilizar las funciones inversas con argumentos que están fuera del intervalo.
Sintaxis
Funciones principales
Cos( Radians )
Cot( Radians )
Sin( Radians )
Tan( Radians )
Radians: requerido. Ángulo sobre el cual operar.
Cos( SingleColumnTable )
Cot( SingleColumnTable )
Sin( SingleColumnTable )
Tan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de ángulos de una sola columna sobre la que se va a actuar.
Funciones inversas
Acos( Number )
Acot( Number )
Asin( Number )
Atan( Number )
Number: requerido. El número sobre el cual operar.
Acos( SingleColumnTable )
Acot( SingleColumnTable )
Asin( SingleColumnTable )
Atan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de números de una sola columna sobre la cual operar.
Atan2( X; Y )
X: requerido. coordenadas del eje X.
Y: requerido. coordenadas del eje Y.
Funciones del asistente
Degrees( Radians )
Radians: requerido. Ángulo en radianes para convertir en grados.
Pi()
Radians( Degrees )
Degrees: requerido. Ángulo en grados para convertir en radianes.

Ejemplos
Número único
FÓRMULA DESCRIPCIÓN RESULTADO

Cos( 1;047197 ) Devuelve el coseno de 1,047197 0,5


radianes o 60 grados.
FÓRMULA DESCRIPCIÓN RESULTADO

Cot( Pi()/4 ) Devuelve la cotangente de 0,785398... 1


radianes o 45 grados.

Sin( Pi()/2 ) Devuelve el seno de 1,570796 radianes 1


o 90 grados.

Tan ( Radians(60) ) Devuelve la tangente de 1,047197 1,732050...


radianes o 60 grados.

Acos( 0;5 ) Devuelve el arcocoseno de 0,5 en 1,047197...


radianes.

Acot( 1 ) Devuelve la arcocotangente de 1, en 0,785398...


radianes.

Asin( 1 ) Devuelve el arcoseno de 1, en radianes. 1,570796...

Atan ( 1,732050 ) Devuelve la arcotangente de 1,732050, 1,047197...


en radianes.

Atan2( 5; 3 ) Devuelve la arcotangente del ángulo del 0,540419...


eje x de la línea que contiene el origen
(0,0) y la coordenada (5,3), que es
aproximadamente 31 grados.

Atan2( 4; 4 ) Devuelve la arcotangente del ángulo del 0,785398...


eje x de la línea que contiene el origen
(0,0) y la coordenada (4,4), que es
exactamente π/4 radianes o 45 grados.

Degrees ( 1,047197 ) Devuelve el número equivalente de 60


grados de 1,047197 radianes.

Pi() El número trascendente π. 3,141592...

Radians ( 15 ) Devuelve el número equivalente de 0,261799...


radianes para 15 grados.

Tabla de una sola columna


Los ejemplos de esta sección usan un origen de datos denominado ValueTable que contiene los siguientes datos:
El último registro en la tabla es π/2 radianes o 90 grados.

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

Cos( ValueTable ) Devuelve el coseno de cada número en


la tabla.

Cot( ValueTable ) Devuelve la cotangente de cada número


en la tabla.

Sin( ValueTable ) Devuelve el seno de cada número en la


tabla.

Tan( ValueTable ) Devuelve la tangente de cada número


en la tabla.

Acos( ValueTable ) Devuelve el arcocoseno de cada número


en la tabla.

Acot( ValueTable ) Devuelve la arcocotangente de cada


número en la tabla.

Asin( ValueTable ) Devuelve el arcoseno de cada número


en la tabla.

Atan( ValueTable ) Devuelve la arcotangente de cada


número en la tabla.
FÓRMULA DESCRIPCIÓN RESULTADO

Degrees( ValueTable ) Devuelve el número equivalente de


grados para cada número de la tabla,
supone que son ángulos en radianes.

Radians( ValueTable ) Devuelve el número equivalente de


radianes para cada número de la tabla,
supone que son ángulos en grados.
Funciones Average, Max, Min, StdevP, Sum y VarP de
PowerApps
08/10/2019 • 4 minutes to read

Funciones de agregado que resumen un conjunto de números.

Descripción
La función Average calcula el promedio, o media aritmética, de los argumentos.
La función Max encuentra el valor máximo.
La función Min encuentra el valor mínimo.
La función Sum calcula la suma de los argumentos.
La función StdevP calcula la desviación estándar de los argumentos.
La función VarP calcula la varianza de los argumentos.
Puede proporcionar los valores de estas funciones como:
Argumentos independientes. Por ejemplo, Sum ( 1; 2; 3 ) da 6 como resultado.
Una tabla y una fórmula para operar sobre esa tabla. La suma total se calculará según los valores de la fórmula
para cada registro.
Los campos de registro que se están procesando actualmente estarán disponibles en la formula. Solo tiene que
hacer referencia a los campos por su nombre, como con cualquier otro valor. También puede hacer referencia a
propiedades de control y a otros valores desde toda la aplicación. Para obtener más detalles, vea los ejemplos
siguientes y trabajar con el ámbito de registros.
Estas funciones solo operan sobre valores numéricos. Se omiten otros tipos de valores, como cadenas o registros.
Use la función Value para convertir en número una cadena.
Las funciones Average, Max, Min y Sum se pueden delegar cuando se usan con un origen de datos que admite la
delegación de dichas funciones. Sin embargo, StdevP y VarP no se puede delegar en ningún origen de datos. Si no
se admite la delegación, solo se recuperará la primera parte de los datos y, después, la función se aplicará
localmente. Es posible que el resultado no represente la situación completa. Aparece una advertencia de delegación
durante la creación para recordarle esta limitación y sugerirle que cambie a alternativas que puedan delegarse
siempre que sea posible. Para más información, consulte la introducción a la delegación.

Sintaxis
Average( NumericalFormula1; [ NumericalFormula2; ... ] )
Max( NumericalFormula1; [ NumericalFormula2; ... ] )
Min( NumericalFormula1; [ NumericalFormula2; ... ] )
Sum ( NumericalFormula1; [ NumericalFormula2; ... ] )
StdevP ( NumericalFormula1; [ NumericalFormula2; ... ] )
VarP ( NumericalFormula1; [ NumericalFormula2; ... ] )
NumericalFormula (s) : requerido. Los valores numéricos en que se va a operar.
Average( Table; NumericalFormula )
Max( Table; NumericalFormula )
Min( Table; NumericalFormula )
Sum ( Table; NumericalFormula )
StdevP ( Table; NumericalFormula )
VarP ( Table; NumericalFormula )
Table: requerido. La tabla sobre la cual se opera.
NumericalFormula: requerido. La fórmula que se evalúa en cada registro. El resultado de esta fórmula se usa
para la agregación. Puede usar columnas de la tabla en la fórmula.

Ejemplos
Paso a paso
Imaginemos que tiene un origen de datos llamado Sales que contiene una columna CostPerUnit y una columna
UnitsSold, y establece la propiedad Text de una etiqueta en esta función:
Sum (Sales; CostPerUnit * UnitsSold)
Para mostrar las ventas totales, la etiqueta multiplicaría los valores de esas columnas para cada registro y luego
agregaría juntos los resultados de todos los registros:

Pongamos otro ejemplo: imaginemos que tiene controles deslizantes llamados Slider1, Slider2 y Slider3 y una
etiqueta con la propiedad Text establecida en esta fórmula:
Sum (Slider1.Value; Slider2.Value; Slider3.Value)
La etiqueta mostraría la suma de todos los valores en los que se establecieron los controles deslizantes.
Funciones Back y Navigate en PowerApps
08/10/2019 • 11 minutes to read

Cambia la pantalla que se muestra.

Información general
La mayoría de las aplicaciones contienen varias pantallas. Use las funciones Back y Navigate para cambiar la
pantalla que se muestra. Por ejemplo, establezca la propiedad OnSelect de un botón en una fórmula que incluya
una función Navigate si desea mostrar una pantalla diferente cuando un usuario selecciona ese botón. En esta
fórmula, puede especificar una transición visual, como Fade, para controlar cómo se cambia de una pantalla a otra.
Back y Navigate cambian solo la pantalla que se muestra. Las pantallas que no se muestran actualmente siguen
funcionando en segundo plano. Puede crear fórmulas que hagan referencia a propiedades de controles en otras
pantallas. Por ejemplo, un usuario puede cambiar el valor de un control deslizante en una pantalla, navegar a una
pantalla diferente que use ese valor en una fórmula y determinar cómo afecta a lo que ocurre en la nueva pantalla.
El usuario puede volver a navegar a la pantalla original y confirmar que el control deslizante ha conservado su
valor.
Las variables de contexto también se conservan cuando un usuario navega entre pantallas. Puede usar Navigate
para establecer una o varias variables de contexto para la pantalla que mostrará la fórmula, que es la única manera
de establecer una variable de contexto desde fuera de la pantalla. Este enfoque se puede usar para pasar
parámetros a una pantalla. Si ha usado otra herramienta de programación, este enfoque es similar a pasar
parámetros a procedimientos.
Puede utilizar cualquiera de las funciones solo dentro de una fórmula de comportamiento.

Navigate
En el primer argumento, especifique el nombre de la pantalla para mostrar.
En el segundo argumento, especifique cómo se cambia la pantalla anterior a la nueva pantalla:

ARGUMENTO DE TRANSICIÓN DESCRIPCIÓN DEMOSTRACIÓN

ScreenTransition.Cover La nueva pantalla se desplaza a la vista,


de derecha a izquierda, para cubrir la
pantalla actual.

ScreenTransition. CoverRight La nueva pantalla se desplaza a la vista,


de izquierda a derecha, para cubrir la
pantalla actual.
ARGUMENTO DE TRANSICIÓN DESCRIPCIÓN DEMOSTRACIÓN

ScreenTransition.Fade La pantalla actual desaparece para


mostrar la nueva pantalla.

ScreenTransition. None (valor La nueva pantalla reemplaza


predeterminado) rápidamente la pantalla actual.

ScreenTransition.UnCover La pantalla actual se desplaza fuera de la


vista, de derecha a izquierda, para
descubrir la nueva pantalla.

ScreenTransition. UnCoverRight La pantalla actual se desplaza fuera de la


vista, de izquierda a derecha, para
descubrir la nueva pantalla.

Puede usar Navigate para crear o actualizar las variables de contexto de la nueva pantalla. Como tercer
argumento opcional, pase un registro que contenga el nombre de la variable de contexto como un nombre de
columna y el nuevo valor para la variable de contexto. Este registro es el mismo que el registro que se usa con la
función UpdateContext .
Establezca la propiedad OnHidden de la pantalla anterior, la propiedad OnVisible de la nueva pantalla o ambas
para realizar cambios adicionales durante la transición. La propiedad App.ActiveScreen se actualizará para
reflejar el cambio.
Navigate normalmente devuelve true , pero devolverá false si se produce un error.

Back
La función atrás vuelve a la pantalla que se mostró más recientemente.
Para cada llamada a Navigate , la aplicación realiza un seguimiento de la pantalla que apareció y la transición.
Puede usar llamadas sucesivas hacia atrás para volver a la pantalla que aparecía cuando el usuario inició la
aplicación.
Cuando se ejecuta la función back , se usa de forma predeterminada la transición inversa. Por ejemplo, si aparece
una pantalla a través de la transición CoverRight , el retroceso usa la descubierta (que a la izquierda) para volver.
Desvanecer y ninguno son sus propios inversos. Pase un argumento opcional al de vuelta para forzar una
transición específica.
Back devuelve normalmente true , pero devuelve false si el usuario no ha navegado a otra pantalla desde el inicio
de la aplicación.

Sintaxis
Atrás([ transición ])
Transición : opcional. Transición visual que se va a usar entre la pantalla actual y la pantalla anterior. Consulte la
lista de valores válidos para este argumento anteriormente en este tema. De forma predeterminada, la
transición a través de la que se devuelve una pantalla es el inverso de la transición a través de la cual apareció.
Navegar( pantalla [; transición [; UpdateContextRecord ]])
Screen: requerido. La pantalla que se va a mostrar.
Transición : opcional. La transición visual usada entre la pantalla actual y la siguiente pantalla. Consulte la lista de
valores válidos para este argumento anteriormente en este tema. El valor predeterminado es None.
UpdateContextRecord: valor opcional. Un registro que contiene el nombre de al menos una columna y un valor
para cada columna. Este registro actualiza las variables de contexto de la pantalla nueva como si se pasaran a la
función UpdateContext .

Ejemplos
FÓRMULA DESCRIPCIÓN RESULTADO

Navegar (detalles) Muestra la pantalla Details sin La pantalla Details aparece


transición o cambio en el valor de una rápidamente.
variable de contexto.

Navigate( Details; Muestra la pantalla Details con una La pantalla actual desaparece para
ScreenTransition.Fade ) transición Fade. No se cambia ningún mostrar la pantalla Details.
valor de una variable de contexto.

Navigate( Details; Muestra la pantalla Details con una La pantalla actual desaparece para
ScreenTransition.Fade; { ID: 12 } ) transición Fade y actualiza el valor de la mostrar la pantalla Details y la variable
variable de contexto ID a 12. de contexto ID de esa pantalla se
establece en 12.

Navigate( Details; Muestra la pantalla Details con una La pantalla actual desaparece para
ScreenTransition.Fade; transición Fade. Actualiza el valor de la mostrar la pantalla Details. La variable
{ ID: 12 ; Shade: Color.Red } ) variable de contexto ID a 12 y actualiza de contexto ID en la pantalla Details
el valor de la variable de contexto está establecida en 12 y la variable de
Shade a Color.Red. contexto Shade está establecida en
Color.Red. Si establece la propiedad Fill
de un control de la pantalla Details en
Shade, ese control se muestra en rojo.

Back() Muestra la pantalla anterior con la Muestra la pantalla anterior a través de


transición de devolución la transición inversa de la transición a
predeterminada. través de la que apareció la pantalla
actual.

Atrás (ScreenTransition. Cover) Muestra la pantalla anterior con la Muestra la pantalla anterior a través de
transición de portada . la transición de la portada ,
independientemente de la transición a
través de la que apareció la pantalla
actual.

Paso a paso
1. Cree una aplicación vacía.
2. Agregue una segunda pantalla a ella.
La aplicación contiene dos pantallas en blanco: Screen1 y Screen2.
3. Establezca la propiedad Fill de Screen2 en el valor Gray .
4. En Screen2, agregue un botón y establezca su propiedad alseleccionar en esta fórmula:

Navigate( Screen1; ScreenTransition.Cover )

5. Mientras mantiene presionada la tecla Alt , seleccione el botón.


Screen1 aparece con un fondo blanco a través de una transición que se cubre hacia la izquierda.
6. En Screen1, agregue un botón y establezca su propiedad alseleccionar en esta fórmula:

Back()

7. Mientras mantiene presionada la tecla Alt , seleccione el botón.


La segunda pantalla aparece con un fondo gris a través de una transición que se descubre hacia la derecha
(la inversa de la portada).
8. Seleccione el botón de cada pantalla varias veces para rebotar hacia atrás y hacia delante.
Otro ejemplo
Funciones Blank, Coalesce, IsBlank e IsEmpty en
PowerApps
26/11/2019 • 16 minutes to read

Comprueba si un valor está en blanco o una tabla no contiene registros, y proporciona una manera de crear valores
blank.

Información general
Blank es un marcador de posición para "sin valor" o "valor desconocido". Por ejemplo, la propiedad seleccionada
de un control de cuadro combinado está en blanco si el usuario no ha realizado una selección. Muchos orígenes
de datos pueden almacenar y devolver valores NULL, que se representan en PowerApps como en blanco.
Cualquier propiedad o valor calculado en PowerApps puede estar en blanco. Por ejemplo, un valor booleano
normalmente tiene uno de dos valores: true o false. Pero además de estos dos, también puede estar en blanco , lo
que indica que no se conoce el estado. Esto es similar a Microsoft Excel, donde una celda de hoja de cálculo empieza
en blanco sin contenido, pero puede contener los valores true o false (entre otros). En cualquier momento, se
puede volver a borrar el contenido de la celda y devolverlo a un estado en blanco .
Una cadena vacía hace referencia a una cadena que no contiene ningún carácter. La función Len devuelve cero para
este tipo de cadena y se puede escribir en una fórmula como dos comillas dobles sin nada entre "" . Algunos
controles y orígenes de datos usan una cadena vacía para indicar una condición de "sin valor". Para simplificar la
creación de aplicaciones , las funciones esblanco y Coalesce comprueban si hay valores en blanco o cadenas
vacías.
En el contexto de la función IsEmpty , Empty es específico de las tablas que no contienen registros. La estructura
de tabla puede estar intacta, con nombres de columna, pero ningún dato en la tabla. Una tabla puede comenzar
como vacía, obtener registros y ya no estar vacía y luego quitarse los registros y estar de nuevo vacía.

NOTE
Estamos en un período de transición. Hasta ahora, el espacio en blanco también se ha utilizado para notificar los errores, lo
que impide que se diferencie un "valor" no válido de un error. Por esta razón, en este momento, solo se admite el
almacenamiento de valores en blanco para las colecciones locales. Puede almacenar valores en blanco en otros orígenes de
datos si activa la característica experimental "administración de errores de nivel de fórmulas" en el menú Archivo,
configuración de la aplicación, configuración avanzada, características experimentales. Estamos trabajando activamente para
finalizar esta característica y completar la separación adecuada de los valores en blanco de los errores.

Descripción
La función Blank devuelve un valor blank. Use esta función para almacenar un valor NULL en un origen de datos
que admita estos valores, de forma que se quiten en la práctica todos los valores del campo.
La función esblanco comprueba un valor en blanco o una cadena vacía. La prueba incluye cadenas vacías para
facilitar la creación de aplicaciones, ya que algunos orígenes de datos y controles usan una cadena vacía cuando no
hay ningún valor. Para probar específicamente si hay un valor en blanco , use if( Value = Blank(); ... en lugar de
esblanco.
La función Coalesce evalúa sus argumentos en orden y devuelve el primer valor que no está en blanco ni una
cadena vacía. Utilice esta función para reemplazar un valor en blanco o una cadena vacía con un valor diferente,
pero sin modificar los valores de cadena que no esténen blanco y que no estén vacíos. Si todos los argumentos
están en blanco o cadenas vacías, la función devuelve un valor enblanco, lo que permite que la combinación sea
una buena manera de convertir cadenas vacías en valores en blanco . Todos los argumentos de Coalesce debe ser
del mismo tipo; por ejemplo, no puede combinar números con cadenas de texto.
Coalesce( value1; value2 ) es el equivalente más conciso de
If( Not IsBlank( value1 ); value1; Not IsBlank( value2 ); value2 ) y no requiere que value1 y value2 se evalúen
dos veces. La función If devuelve un valor en blanco si no hay ninguna fórmula "Else", como es el caso.
La función IsEmpty comprueba si una tabla contiene registros. Es equivalente a usar la función CountRows y la
comprobación de cero. Puede usar IsEmpty para comprobar errores de origen de datos en combinación con la
función Errors .
El valor devuelto para IsBlank e IsEmpty es un valor booleano true o false.

Sintaxis
En blanco()
Coalesce( Valor1 [; Valor2; ... ] )
Valores: requerido. Valores que se van a comprobar. Cada valor se evalúa en orden hasta que se encuentra un
valor que no está en blanco y no es una cadena vacía. Los valores después de este punto no se evalúan.
IsBlank( Value )
Value: requerido. Valor que se va a comprobar para un valor en blanco o una cadena vacía.
IsEmpty( Table )
Table: requerido. Tabla en la que se van a comprobar registros.

Ejemplos
En blanco

NOTE
Actualmente, el siguiente ejemplo solo funciona en colecciones locales. Puede almacenar valores en blanco en otros orígenes
de datos si activa la característica experimental "administración de errores de nivel de fórmulas" en el menú Archivo,
configuración de la aplicación, configuración avanzada, características experimentales. Estamos trabajando activamente para
finalizar esta característica y completar la separación de los valores en blanco de los errores.

1. Cree una aplicación desde el principio y agregue un control Botón.


2. Establezca la propiedad OnSelect del botón en esta fórmula:

ClearCollect( Cities; { Name: "Seattle"; Weather: "Rainy" } )

3. Obtenga una vista previa de la aplicación, haga clic o pulse en el botón que agregó y luego cierre la vista
previa.
4. En el menú Archivo, haga clic o pulse en Colecciones.
Aparece la colección Cities, que muestra un registro con "Seattle" y "Rainy":
5. Haga clic o pulse en la flecha Atrás para volver al área de trabajo predeterminada.
6. Agregue un control Label y establezca su propiedad Text en esta fórmula:

IsBlank( First( Cities ).Weather )

La etiqueta muestra false porque el campo Weather contiene un valor ("Rainy").


7. Agregue un segundo botón y establezca su propiedad OnSelect en esta fórmula:

Patch( Cities; First( Cities ); { Weather: Blank() } )

8. Obtenga una vista previa de la aplicación, haga clic o pulse en el botón que agregó y luego cierre la vista
previa.
El campo Weather del primer registro de Cities se sustituye por un valor blank, de forma que se reemplaza
el valor inicial "Rainy" que estaba ahí anteriormente.

La etiqueta muestra true porque el campo Weather ya no contiene ningún valor.


Coalesce
FÓRMULA DESCRIPCIÓN RESULTADO

Coalesce ( en blanco (), 1 ) Comprueba el valor devuelto por la 1


función Blank, que siempre devuelve un
valor blank. Dado que el primer
argumento está en blanco, la evaluación
continúa con el argumento siguiente
hasta que se encuentre un valor que no
estéen blanco y una cadena que no esté
vacía.
FÓRMULA DESCRIPCIÓN RESULTADO

Coalesce ("", 2) Comprueba el primer argumento, que 2


es una cadena vacía. Dado que el primer
argumento es una cadena vacía, la
evaluación continúa con el argumento
siguiente hasta que se encuentre un
valor que no estéen blanco y una
cadena que no esté vacía.

Coalesce (Blank (), "", Blank (), "", 3, Coalesce comienza al principio de la 3
4) lista de argumentos y evalúa cada
argumento a su vez hasta que se
encuentra un valor que no estáen
blanco y una cadena no vacía. En este
caso, los cuatro primeros argumentos
devuelven un valor en blanco o una
cadena vacía, por lo que la evaluación
continúa hasta el quinto argumento. El
quinto argumento es una cadena que
no estáen blanco y no está vacía, por lo
que la evaluación se detiene aquí. Se
devuelve el valor del quinto argumento
y no se evalúa el sexto argumento.

Coalesce ("") Comprueba el primer argumento, que blank


es una cadena vacía. Dado que el primer
argumento es una cadena vacía y no
hay más argumentos, la función
devuelve Blank.

IsBlank
1. Cree una aplicación desde el principio, agregue un control de entrada de texto y llámelo FirstName.
2. Agregue una etiqueta y establezca su propiedad Texto en esta fórmula:

If( IsBlank( FirstName.Text ); "First Name is a required field." )

De forma predeterminada, la propiedad Text de un control de entrada de texto se establece en "Entrada de


texto" . Como la propiedad contiene un valor, no está en blanco, y la etiqueta no muestra ningún mensaje.
3. Quite todos los caracteres del control de entrada de texto, espacios incluidos.
Dado que la propiedad Text ya no contiene ningún carácter, es una cadena vacía y esblanco (FirstName.
Text) será true. Se muestra el mensaje de campo requerido.
Para más información sobre cómo realizar la validación mediante otras herramientas, consulte la función Validate
y el uso de orígenes de datos.
Otros ejemplos:

FÓRMULA DESCRIPCIÓN RESULTADO

Esblanco ( en blanco () ) Comprueba el valor devuelto por la true


función Blank, que siempre devuelve un
valor blank.
FÓRMULA DESCRIPCIÓN RESULTADO

IsBlank( "" ) Una cadena que no contiene ningún true


carácter.

IsBlank( "Hello" ) Una cadena que contiene uno o más false


caracteres.

IsBlank( AnyCollection ) Como la colección existe, no está en false


blanco, incluso si no contiene ningún
registro. Para comprobar si existe una
colección vacía, use IsEmpty en su lugar.

IsBlank( Mid( "Hello"; 17; 2 ) ) El carácter inicial de Mid está más allá true
del final de la cadena. El resultado es una
cadena vacía.

IsBlank( If( false; false ) ) Una función If sin ElseResult. Como la true
condición es siempre false, esta función
If siempre devuelve blank.

IsEmpty
1. Cree una aplicación desde el principio y agregue un control Botón.
2. Establezca la propiedad OnSelect del botón en esta fórmula:
Collect( IceCream; { Flavor: "Strawberry"; Quantity: 300 }; { Flavor: "Chocolate"; Quantity: 100 } )
3. Obtenga una vista previa de la aplicación, haga clic o pulse en el botón que agregó y luego cierre la vista
previa.
Se crea una colección denominada IceCream con estos datos:

Esta colección tiene dos registros y no está vacía. IsEmpty( IceCream ) devuelve false y CountRows(
IceCream ) devuelve 2.
4. Agregue un segundo botón y establezca su propiedad OnSelect en esta fórmula:
Clear( IceCream )
5. Obtener una vista previa de la aplicación, haga clic o pulse en el segundo botón y luego cierre la vista previa.
Ahora, la colección está vacía:

La función Clear quita todos los registros de una colección, lo que da lugar a una colección vacía. IsEmpty(
IceCream ) devuelve true y CountRows( IceCream ) devuelve 0.
También puede usar IsEmpty para comprobar si una tabla calculada está vacía, como muestran estos ejemplos:

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

IsEmpty( [ 1; 2; 3 ] ) La tabla de una columna contiene tres false


registros y, por lo tanto, no está vacía.

IsEmpty( [ ] ) La tabla de una columna no contiene true


registros y está vacía.

IsEmpty( Filter( [ 1; 2; 3 ]; Value > 5 ) La tabla de una columna no contiene true


) valores que sean mayores que 5. El
resultado del filtro no contiene ningún
registro y está vacío.
Funciones Calendar y Clock en PowerApps
07/10/2019 • 4 minutes to read

Recupera información de calendario y reloj de la configuración regional actual.

Descripción
Las funciones Calendar y Clock son un conjunto de funciones que recuperan información sobre la configuración
regional actual.
Puede usar estas funciones para mostrar las fechas y las horas en el idioma del usuario actual. Las tablas de una
sola columna devueltas por las funciones Calendar y Clock pueden usarse directamente con la propiedad Items
de los controles de lista desplegable y cuadro de lista.

FUNCIÓN DESCRIPCIÓN

Calendar.MonthsLong() Tabla de una sola columna que contiene los nombres


completos de cada mes, empezando por "January".

Calendar.MonthsShort() Tabla de una sola columna que contiene los nombres


abreviados de cada mes, empezando por "Jan" para "January".

Calendar.WeekdaysLong() Tabla de una sola columna que contiene los nombres


completos de cada día de la semana empezando por "Sunday".

Calendar.WeekdaysShort() Tabla de una sola columna que contiene los nombres


abreviados de cada día de la semana empezando por "Sun"
para Sunday.

Clock.AmPm() Tabla de una sola columna que contiene las designaciones


largas de "AM" y "PM" en mayúsculas. Si en el idioma se usa un
reloj de 24 horas, la tabla estará vacía.

Clock.AmPmShort() Tabla de una sola columna que contiene las designaciones


cortas de "A" y "P" en mayúsculas. Si en el idioma se usa un
reloj de 24 horas, la tabla estará vacía.

Clock.IsClock24() Booleano que indica si se usa un reloj de 24 horas en esta


configuración regional.

Use la función Text para dar formato a valores de fecha y hora con esta misma información. La función Language
devuelve el código de idioma y región actual.

Sintaxis
Calendar.MonthsLong()
Calendar.MonthsShort()
Calendar.WeekdaysLong()
Calendar.WeekdaysShort()
Clock.AmPm ()
Clock.AmPmShort()
Clock.IsClock24()

Ejemplos
1. Inserte un control desplegable.
2. Establezca la fórmula de la propiedad Items en:
Calendar.MonthsLong()
3. Los usuarios de la aplicación ahora pueden seleccionar un mes en su propio idioma. Se puede reemplazar
MonthsLong por cualquiera de las tablas de una sola columna devueltas por Calendar para crear
selectores de día de la semana y hora.
En los Estados Unidos, donde Language devuelve "en-US", las funciones Calendar devuelven lo siguiente:

FÓRMULA DESCRIPCIÓN RESULTADO

Calendar.MonthsLong() El valor devuelto contiene el nombre [ "January", "February", "March", "April",


completo de cada mes, empezando por "May", "June", "July", "August",
"January". "September", "October", "November",
"December" ]

Calendar.MonthsShort() El valor devuelto contiene el nombre [ "Jan", "Feb", "Mar", "Apr", "May", "Jun",
abreviado de cada mes, empezando por "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]
"January".

Calendar.WeekdaysLong() El valor devuelto contiene el nombre [ "Sunday", "Monday", "Tuesday",


completo de cada día, empezando por "Wednesday", "Thursday", "Friday",
"Sunday". "Saturday" ]

Calendar.WeekdaysShort() El valor devuelto contiene el nombre [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri",
abreviado de cada día, empezando por "Sat" ]
"Sunday".

Clock.AmPm() En este idioma se usa un reloj de 12 [ "AM", "PM" ]


horas. El valor devuelto contiene las
versiones en mayúsculas de las
designaciones completas de AM y PM.

Clock.AmPmShort() En este idioma se usa un reloj de 12 [ "A", "P" ]


horas. El valor devuelto contiene las
versiones en mayúsculas de las
designaciones cortas de AM y PM.

Clock.IsClock24() En este idioma se usa un reloj de 12 false


horas.
Función Char en PowerApps
08/10/2019 • 3 minutes to read

Traduce un código de carácter en una cadena.

Descripción
La función Char convierte un número en una cadena con el carácter ASCII correspondiente.

Sintaxis
Char( CharacterCode )
CharacterCode: requerido. Código de carácter ASCII que se va a traducir.

Ejemplos
FÓRMULA DESCRIPCIÓN RESULTADO

Char( 65 ) Devuelve el carácter que corresponde al UN


código ASCII 65.

Char( 105 ) Devuelve el carácter que corresponde al Configur


código ASCII 105.

Char( 35 ) Devuelve el carácter que corresponde al "#"


código ASCII 35.

Mostrar un mapa de caracteres


1. En una pantalla vacía de una aplicación de Tablet PC, agregue un control Galería con un diseño horizontal
en blanco y, a continuación, establezca estas propiedades:
Elementos: [0;1;2;3;4;5;6;7]
Ancho: 800
Alto: 500
Plantillas: 100
Espaciadointernodeplantilla: 0
2. Dentro de esa Galería, agregue un control Galería con un diseño vertical en blanco y, a continuación,
establezca estas propiedades:
Elementos: ForAll( [0;2;3;4;5;6;7;8;9;10;11;12;13;14;15]; Value + ThisItem.Value * 16 )
Ancho: 100
Alto: 500
Plantillas: 30
Espaciadointernodeplantilla: 0
El valor de la propiedad Items multiplica 16 por el número de columna proporcionado por la columna
valor de la propiedad Items de la primera galería (0-7 en ThisItem.Value ). A continuación, la fórmula
agrega el resultado a uno de los números de fila de la segunda galería (0-15 en el ámbito de registro que
proporciona la función forall ).
3. Dentro de la segunda galería (vertical), agregue un control etiqueta y establezca estas propiedades:
Texto: ThisItem.Value
Ancho: 50
4. Dentro de la segunda galería (vertical), agregue otro control etiqueta y establezca estas propiedades:
Texto: Char( ThisItem.Value )
Ancho: 50
X: 50
Ha creado un gráfico con los primeros 128 caracteres ASCII. Los caracteres que aparecen como un cuadrado
pequeño no se pueden imprimir.

Para mostrar los caracteres ASCII extendidos, establezca la propiedad Items de la segunda galería en esta
fórmula, que agrega 128 a cada valor de carácter:
ForAll( [0;2;3;4;5;6;7;8;9;10;11;12;13;14;15]; Value + ThisItem.Value * 16 + 128)

Para mostrar los caracteres en una fuente diferente, establezca la propiedad Font de la segunda etiqueta en un
valor como "script baile" .
Función Choices de PowerApps
05/11/2019 • 6 minutes to read

Devuelve una tabla de posibles valores para una columna de búsqueda.

Descripción
La función Choices devuelve una tabla de posibles valores para una columna de búsqueda.
Use la función Choices para proporcionar una lista de opciones entre las que el usuario pueda seleccionar. Esta
función se usa normalmente con el control Cuadro combinado en formularios de edición.
En una búsqueda, la tabla que devuelve Choices coincide con la tabla externa asociada con la búsqueda. Si se usa
Choices, ya no es necesario agregar la tabla externa como un origen de datos adicional. Choices devuelve todas
las columnas de la tabla externa.
Dado que Choices devuelve una tabla, puede usar Filter, Sort, AddColumns y todas las demás funciones de
manipulación de tablas para filtrar, ordenar y dar forma a la tabla.
De momento no es posible delegar Choices. Si esta limitación plantea un problema en la aplicación, agregue la
entidad externa como origen de datos y úsela directamente.
Choices no exige que los nombres de columna sean cadenas ni se incluyan entre comillas dobles, a diferencia de
ShowColumns, Search y otras funciones de tabla. Proporcione la fórmula como si estuviera haciendo referencia
a la columna directamente.
Las referencias de columna deben ser directas al origen de datos. Por ejemplo, si el origen de datos es Accounts y
la búsqueda es SLA, la referencia de columna sería Accounts.SLA. La referencia no se puede pasar a través de
una función, una variable o un control. Para profundizar en este ejemplo, si Accounts se agrega a un control
Galería, use la fórmula Gallery.Selected.SLA para hacer referencia al SLA de la cuenta seleccionada. Pero esta
referencia se ha pasado a través de un control, por lo que no se puede pasar a la función Columns, sino que se
debe seguir usando Accounts.SLA.
En este momento, solo puede usar las columnas de búsqueda con SharePoint y Common Data Service.

Sintaxis
Choices( column-reference )
column-reference: requerido. Columna de búsqueda de un origen de datos. No incluya el nombre de columna
entre comillas dobles. La referencia debe ser directa a la columna del origen de datos y no pasarse a través de
una función o un control.

Ejemplos
Choices para una búsqueda
1. Cree una base de datos en Common Data Service y seleccione el cuadro incluir aplicaciones y datos de
ejemplo .
Se crean muchas entidades, como Accounts.
Nota: los nombres de entidad son singulares en make.powerapps.com y plural en PowerApps Studio.
La entidad Accounts tiene una columna Primary Contact que es una búsqueda en la entidad Contacts.

En cada cuenta se designa un contacto como contacto principal o este está blank.
2. Genere una aplicación desde la entidad Accounts.
3. En la lista de pantallas y controles junto al borde izquierdo, desplácese hacia abajo hasta que aparezca
EditScreen1 y luego seleccione EditForm1 justo debajo.

4. En la pestaña propiedades del panel derecho, seleccione Editar campos.

5. En el panel campos , seleccione Agregar campo.


6. Busque el campo de contacto principal , Active su casilla y, a continuación, seleccione Agregar.
El campo contacto principal aparece en la parte inferior del formulario. Si el campo muestra un error,
seleccione orígenes de datos en la pestaña Ver , seleccione los puntos suspensivos (...) para el origen de
datos cuentas y, a continuación, seleccione Actualizar.
7. (Opcional) Arrastre el campo Primary Contact desde la parte inferior a la parte superior de la lista de
campos.
8. En la tarjeta de Primary Contact, seleccione el control Cuadro combinado.
La propiedad Items de ese control se establece en una fórmula que identifica la columna por su nombre
para mostrar, como en el primer ejemplo, o su nombre lógico, como en el segundo ejemplo:
Choices( Accounts.'Primary Contact' )
Choices( Accounts.primarycontactid )
9. En la pestaña Inicio, seleccione Nueva pantalla y luego En blanco.
10. En la pestaña Insertar, seleccione Tabla de datos.
11. Establezca la propiedad elementos del control tabla de datos en esta fórmula:
Choices( Accounts.'Primary Contact' )
12. En el centro del control tabla de datos , seleccione el vínculo que comienza a elegir los campos... y, a
continuación, active las casillas correspondientes al campo o los campos que desea mostrar (por ejemplo,
FirstName y LastName).
Funciones Collect, Clear y ClearCollect en PowerApps
29/10/2019 • 7 minutes to read

Crea y borra colecciones y agrega registros a cualquier origen de datos.

Descripción
Collect
La función Collect agrega registros a un origen de datos. Los elementos que se pueden agregar son:
Un valor único: el valor se coloca en el campo Value de un nuevo registro. Todas las demás propiedades se dejan
blank.
Un registro: cada propiedad con nombre se coloca en la propiedad correspondiente de un nuevo registro. Todas
las demás propiedades se dejan en blanco.
Una tabla: cada registro de la tabla se agrega como un registro independiente del origen de datos, como se ha
descrito anteriormente. La tabla no se agrega como una tabla anidada a un registro. Para lograrlo, primero
ajuste la tabla en un registro.
Cuando se usa con una colección, se crearán columnas adicionales según sea necesario. Las columnas de otros
orígenes de datos están determinadas por el origen de datos y no se pueden agregar nuevas columnas.
Si el origen de datos todavía no existe, se crea una colección.
Las colecciones a veces se usan para almacenar variables globales o realizar una copia temporal de un origen de
datos. PowerApps se basa en fórmulas que se recalculan automáticamente a medida que el usuario interactúa con
una aplicación. Las colecciones no tienen esta ventaja y su uso puede hacer que la aplicación sea más difícil de crear
y comprender. Antes de usar una colección de esta manera, revise el trabajo con variables.
También puede usar la función Patch para crear registros en un origen de datos.
Collect devuelve el origen de datos modificado como una tabla. Collect solo se puede usar en una fórmula de
comportamiento.
Clear
La función Clear elimina todos los registros de una colección. Las columnas de la colección se conservarán.
Tenga en cuenta que Clear solo funciona en colecciones y no en otros orígenes de datos. Puede usar RemoveIf(
DataSource; true ) para este propósito. Tenga cuidado, ya que esto quitará todos los registros del almacenamiento
del origen de datos y puede afectar a otros usuarios.
Puede usar la función Remove para quitar registros de forma selectiva.
Clear no tiene ningún valor devuelto. Solo se puede usar en una fórmula de comportamiento.
ClearCollect
La función ClearCollect elimina todos los registros de una colección y, después, agrega un conjunto de registros
diferente a la misma colección. Con una sola función, ClearCollect ofrece la combinación de Clear y Collect.
ClearCollect devuelve la colección modificada como una tabla. ClearCollect solo se puede usar en una fórmula de
comportamiento.

Sintaxis
Collect( DataSource; Elemento; ... )
DataSource: requerido. Origen de datos al que quiere agregar datos. Si todavía no existe, se crea una colección.
Item (s) : requerido. Uno o varios registros o tablas que se van a agregar al origen de datos.
Clear( Colección )
Collection: requerido. Colección que quiere borrar.
ClearCollect( Colección; Elemento; ... )
Collection: requerido. Colección que quiere borrar, a la que después va a agregar datos.
Item (s) : requerido. Uno o varios registros o tablas que se van a agregar al origen de datos.

Ejemplos
Borrar y agregar registros a un origen de datos
En estos ejemplos, borrará y agregará registros a una colección denominada IceCream. El origen de datos
comienza con este contenido:

FÓRMULA DESCRIPCIÓN RESULTADO

ClearCollect( IceCream; Borra todos los datos de la colección


{ Flavor: "Strawberry"; Quantity: 300 IceCream y, después, agrega un
}) registro que incluye una cantidad de
helado de fresa.
La colección icecream también se ha
modificado.

Collect( IceCream; Agrega dos registros a la colección


{ Flavor: "Pistachio"; Quantity: 40 }; icecream que incluye una cantidad de
{ Flavor: "Orange"; Quantity: 200 } ) pistacho y una nata de hielo naranja.

La colección icecream también se ha


modificado.

Clear( IceCream ) Quita todos los registros de la colección


IceCream.
La colección icecream también se ha
modificado.

Para obtener ejemplos paso a paso de cómo crear una colección, vea crear y actualizar una colección.
Registros y tablas
En estos ejemplos se examina cómo se administran los argumentos de registro y tabla para recopilar y
ClearCollect .
FÓRMULA DESCRIPCIÓN RESULTADO

ClearCollect (IceCream; Borre todos los datos y, a continuación,


{ Flavor: "chocolate"; Quantity: 100 } agregue dos registros a la colección
; { Flavor: "vainilla"; Quantity: 200 }) icecream , que incluye una cantidad de
chocolate y una nata de hielo de vainilla.
Los registros que se van a agregar se
proporcionan como argumentos La colección icecream también se ha
individuales para la función. modificado.

ClearCollect (IceCream; tabla Igual que el ejemplo anterior, salvo que


({ Flavor: "chocolate"; Quantity: 100 los registros se combinan en una tabla y
}; se pasan a través de un único
{ Flavor: "vainilla"; Quantity: 200 })) argumento. El contenido de la tabla se
extrae registro por registro antes de
agregarse a la colección icecream . La colección icecream también se ha
modificado.

ClearCollect (IceCream; Igual que el ejemplo anterior, salvo que


{ Favorites: tabla la tabla se ajusta en un registro. Los
({ Flavor: "chocolate"; Quantity: 100 registros de la tabla no se extraen y, en
}; su lugar, se agrega toda la tabla como
{ Flavor: "vainilla"; Quantity: 200 })}) una subtabla del registro.

La colección icecream también se ha


modificado.
Funciones Collect, Clear y ClearCollect en PowerApps
29/10/2019 • 7 minutes to read

Crea y borra colecciones y agrega registros a cualquier origen de datos.

Descripción
Collect
La función Collect agrega registros a un origen de datos. Los elementos que se pueden agregar son:
Un valor único: el valor se coloca en el campo Value de un nuevo registro. Todas las demás propiedades se dejan
blank.
Un registro: cada propiedad con nombre se coloca en la propiedad correspondiente de un nuevo registro. Todas
las demás propiedades se dejan en blanco.
Una tabla: cada registro de la tabla se agrega como un registro independiente del origen de datos, como se ha
descrito anteriormente. La tabla no se agrega como una tabla anidada a un registro. Para lograrlo, primero
ajuste la tabla en un registro.
Cuando se usa con una colección, se crearán columnas adicionales según sea necesario. Las columnas de otros
orígenes de datos están determinadas por el origen de datos y no se pueden agregar nuevas columnas.
Si el origen de datos todavía no existe, se crea una colección.
Las colecciones a veces se usan para almacenar variables globales o realizar una copia temporal de un origen de
datos. PowerApps se basa en fórmulas que se recalculan automáticamente a medida que el usuario interactúa con
una aplicación. Las colecciones no tienen esta ventaja y su uso puede hacer que la aplicación sea más difícil de crear
y comprender. Antes de usar una colección de esta manera, revise el trabajo con variables.
También puede usar la función Patch para crear registros en un origen de datos.
Collect devuelve el origen de datos modificado como una tabla. Collect solo se puede usar en una fórmula de
comportamiento.
Clear
La función Clear elimina todos los registros de una colección. Las columnas de la colección se conservarán.
Tenga en cuenta que Clear solo funciona en colecciones y no en otros orígenes de datos. Puede usar RemoveIf(
DataSource; true ) para este propósito. Tenga cuidado, ya que esto quitará todos los registros del almacenamiento
del origen de datos y puede afectar a otros usuarios.
Puede usar la función Remove para quitar registros de forma selectiva.
Clear no tiene ningún valor devuelto. Solo se puede usar en una fórmula de comportamiento.
ClearCollect
La función ClearCollect elimina todos los registros de una colección y, después, agrega un conjunto de registros
diferente a la misma colección. Con una sola función, ClearCollect ofrece la combinación de Clear y Collect.
ClearCollect devuelve la colección modificada como una tabla. ClearCollect solo se puede usar en una fórmula de
comportamiento.

Sintaxis
Collect( DataSource; Elemento; ... )
DataSource: requerido. Origen de datos al que quiere agregar datos. Si todavía no existe, se crea una colección.
Item (s) : requerido. Uno o varios registros o tablas que se van a agregar al origen de datos.
Clear( Colección )
Collection: requerido. Colección que quiere borrar.
ClearCollect( Colección; Elemento; ... )
Collection: requerido. Colección que quiere borrar, a la que después va a agregar datos.
Item (s) : requerido. Uno o varios registros o tablas que se van a agregar al origen de datos.

Ejemplos
Borrar y agregar registros a un origen de datos
En estos ejemplos, borrará y agregará registros a una colección denominada IceCream. El origen de datos
comienza con este contenido:

FÓRMULA DESCRIPCIÓN RESULTADO

ClearCollect( IceCream; Borra todos los datos de la colección


{ Flavor: "Strawberry"; Quantity: 300 IceCream y, después, agrega un
}) registro que incluye una cantidad de
helado de fresa.
La colección icecream también se ha
modificado.

Collect( IceCream; Agrega dos registros a la colección


{ Flavor: "Pistachio"; Quantity: 40 }; icecream que incluye una cantidad de
{ Flavor: "Orange"; Quantity: 200 } ) pistacho y una nata de hielo naranja.

La colección icecream también se ha


modificado.

Clear( IceCream ) Quita todos los registros de la colección


IceCream.
La colección icecream también se ha
modificado.

Para obtener ejemplos paso a paso de cómo crear una colección, vea crear y actualizar una colección.
Registros y tablas
En estos ejemplos se examina cómo se administran los argumentos de registro y tabla para recopilar y
ClearCollect .
FÓRMULA DESCRIPCIÓN RESULTADO

ClearCollect (IceCream; Borre todos los datos y, a continuación,


{ Flavor: "chocolate"; Quantity: 100 } agregue dos registros a la colección
; { Flavor: "vainilla"; Quantity: 200 }) icecream , que incluye una cantidad de
chocolate y una nata de hielo de vainilla.
Los registros que se van a agregar se
proporcionan como argumentos La colección icecream también se ha
individuales para la función. modificado.

ClearCollect (IceCream; tabla Igual que el ejemplo anterior, salvo que


({ Flavor: "chocolate"; Quantity: 100 los registros se combinan en una tabla y
}; se pasan a través de un único
{ Flavor: "vainilla"; Quantity: 200 })) argumento. El contenido de la tabla se
extrae registro por registro antes de
agregarse a la colección icecream . La colección icecream también se ha
modificado.

ClearCollect (IceCream; Igual que el ejemplo anterior, salvo que


{ Favorites: tabla la tabla se ajusta en un registro. Los
({ Flavor: "chocolate"; Quantity: 100 registros de la tabla no se extraen y, en
}; su lugar, se agrega toda la tabla como
{ Flavor: "vainilla"; Quantity: 200 })}) una subtabla del registro.

La colección icecream también se ha


modificado.
Funciones Calendar y Clock en PowerApps
07/10/2019 • 4 minutes to read

Recupera información de calendario y reloj de la configuración regional actual.

Descripción
Las funciones Calendar y Clock son un conjunto de funciones que recuperan información sobre la
configuración regional actual.
Puede usar estas funciones para mostrar las fechas y las horas en el idioma del usuario actual. Las tablas de una
sola columna devueltas por las funciones Calendar y Clock pueden usarse directamente con la propiedad
Items de los controles de lista desplegable y cuadro de lista.

FUNCIÓN DESCRIPCIÓN

Calendar.MonthsLong() Tabla de una sola columna que contiene los nombres


completos de cada mes, empezando por "January".

Calendar.MonthsShort() Tabla de una sola columna que contiene los nombres


abreviados de cada mes, empezando por "Jan" para
"January".

Calendar.WeekdaysLong() Tabla de una sola columna que contiene los nombres


completos de cada día de la semana empezando por
"Sunday".

Calendar.WeekdaysShort() Tabla de una sola columna que contiene los nombres


abreviados de cada día de la semana empezando por "Sun"
para Sunday.

Clock.AmPm() Tabla de una sola columna que contiene las designaciones


largas de "AM" y "PM" en mayúsculas. Si en el idioma se usa
un reloj de 24 horas, la tabla estará vacía.

Clock.AmPmShort() Tabla de una sola columna que contiene las designaciones


cortas de "A" y "P" en mayúsculas. Si en el idioma se usa un
reloj de 24 horas, la tabla estará vacía.

Clock.IsClock24() Booleano que indica si se usa un reloj de 24 horas en esta


configuración regional.

Use la función Text para dar formato a valores de fecha y hora con esta misma información. La función
Language devuelve el código de idioma y región actual.

Sintaxis
Calendar.MonthsLong()
Calendar.MonthsShort()
Calendar.WeekdaysLong()
Calendar.WeekdaysShort()
Clock.AmPm ()
Clock.AmPmShort()
Clock.IsClock24()

Ejemplos
1. Inserte un control desplegable.
2. Establezca la fórmula de la propiedad Items en:
Calendar.MonthsLong()
3. Los usuarios de la aplicación ahora pueden seleccionar un mes en su propio idioma. Se puede reemplazar
MonthsLong por cualquiera de las tablas de una sola columna devueltas por Calendar para crear
selectores de día de la semana y hora.
En los Estados Unidos, donde Language devuelve "en-US", las funciones Calendar devuelven lo siguiente:

FÓRMULA DESCRIPCIÓN RESULTADO

Calendar.MonthsLong() El valor devuelto contiene el nombre [ "January", "February", "March", "April",


completo de cada mes, empezando por "May", "June", "July", "August",
"January". "September", "October", "November",
"December" ]

Calendar.MonthsShort() El valor devuelto contiene el nombre [ "Jan", "Feb", "Mar", "Apr", "May",
abreviado de cada mes, empezando "Jun", "Jul", "Aug", "Sep", "Oct", "Nov",
por "January". "Dec" ]

Calendar.WeekdaysLong() El valor devuelto contiene el nombre [ "Sunday", "Monday", "Tuesday",


completo de cada día, empezando por "Wednesday", "Thursday", "Friday",
"Sunday". "Saturday" ]

Calendar.WeekdaysShort() El valor devuelto contiene el nombre [ "Sun", "Mon", "Tue", "Wed", "Thu",
abreviado de cada día, empezando por "Fri", "Sat" ]
"Sunday".

Clock.AmPm() En este idioma se usa un reloj de 12 [ "AM", "PM" ]


horas. El valor devuelto contiene las
versiones en mayúsculas de las
designaciones completas de AM y PM.

Clock.AmPmShort() En este idioma se usa un reloj de 12 [ "A", "P" ]


horas. El valor devuelto contiene las
versiones en mayúsculas de las
designaciones cortas de AM y PM.

Clock.IsClock24() En este idioma se usa un reloj de 12 false


horas.
Funciones Blank, Coalesce, IsBlank e IsEmpty en
PowerApps
26/11/2019 • 16 minutes to read

Comprueba si un valor está en blanco o una tabla no contiene registros, y proporciona una manera de crear valores
blank.

Información general
Blank es un marcador de posición para "sin valor" o "valor desconocido". Por ejemplo, la propiedad seleccionada
de un control de cuadro combinado está en blanco si el usuario no ha realizado una selección. Muchos orígenes
de datos pueden almacenar y devolver valores NULL, que se representan en PowerApps como en blanco.
Cualquier propiedad o valor calculado en PowerApps puede estar en blanco. Por ejemplo, un valor booleano
normalmente tiene uno de dos valores: true o false. Pero además de estos dos, también puede estar en blanco , lo
que indica que no se conoce el estado. Esto es similar a Microsoft Excel, donde una celda de hoja de cálculo empieza
en blanco sin contenido, pero puede contener los valores true o false (entre otros). En cualquier momento, se
puede volver a borrar el contenido de la celda y devolverlo a un estado en blanco .
Una cadena vacía hace referencia a una cadena que no contiene ningún carácter. La función Len devuelve cero para
este tipo de cadena y se puede escribir en una fórmula como dos comillas dobles sin nada entre "" . Algunos
controles y orígenes de datos usan una cadena vacía para indicar una condición de "sin valor". Para simplificar la
creación de aplicaciones , las funciones esblanco y Coalesce comprueban si hay valores en blanco o cadenas
vacías.
En el contexto de la función IsEmpty , Empty es específico de las tablas que no contienen registros. La estructura
de tabla puede estar intacta, con nombres de columna, pero ningún dato en la tabla. Una tabla puede comenzar
como vacía, obtener registros y ya no estar vacía y luego quitarse los registros y estar de nuevo vacía.

NOTE
Estamos en un período de transición. Hasta ahora, el espacio en blanco también se ha utilizado para notificar los errores, lo
que impide que se diferencie un "valor" no válido de un error. Por esta razón, en este momento, solo se admite el
almacenamiento de valores en blanco para las colecciones locales. Puede almacenar valores en blanco en otros orígenes de
datos si activa la característica experimental "administración de errores de nivel de fórmulas" en el menú Archivo,
configuración de la aplicación, configuración avanzada, características experimentales. Estamos trabajando activamente para
finalizar esta característica y completar la separación adecuada de los valores en blanco de los errores.

Descripción
La función Blank devuelve un valor blank. Use esta función para almacenar un valor NULL en un origen de datos
que admita estos valores, de forma que se quiten en la práctica todos los valores del campo.
La función esblanco comprueba un valor en blanco o una cadena vacía. La prueba incluye cadenas vacías para
facilitar la creación de aplicaciones, ya que algunos orígenes de datos y controles usan una cadena vacía cuando no
hay ningún valor. Para probar específicamente si hay un valor en blanco , use if( Value = Blank(); ... en lugar de
esblanco.
La función Coalesce evalúa sus argumentos en orden y devuelve el primer valor que no está en blanco ni una
cadena vacía. Utilice esta función para reemplazar un valor en blanco o una cadena vacía con un valor diferente,
pero sin modificar los valores de cadena que no esténen blanco y que no estén vacíos. Si todos los argumentos
están en blanco o cadenas vacías, la función devuelve un valor enblanco, lo que permite que la combinación sea
una buena manera de convertir cadenas vacías en valores en blanco . Todos los argumentos de Coalesce debe ser
del mismo tipo; por ejemplo, no puede combinar números con cadenas de texto.
Coalesce( value1; value2 ) es el equivalente más conciso de
If( Not IsBlank( value1 ); value1; Not IsBlank( value2 ); value2 ) y no requiere que value1 y value2 se evalúen
dos veces. La función If devuelve un valor en blanco si no hay ninguna fórmula "Else", como es el caso.
La función IsEmpty comprueba si una tabla contiene registros. Es equivalente a usar la función CountRows y la
comprobación de cero. Puede usar IsEmpty para comprobar errores de origen de datos en combinación con la
función Errors .
El valor devuelto para IsBlank e IsEmpty es un valor booleano true o false.

Sintaxis
En blanco()
Coalesce( Valor1 [; Valor2; ... ] )
Valores: requerido. Valores que se van a comprobar. Cada valor se evalúa en orden hasta que se encuentra un
valor que no está en blanco y no es una cadena vacía. Los valores después de este punto no se evalúan.
IsBlank( Value )
Value: requerido. Valor que se va a comprobar para un valor en blanco o una cadena vacía.
IsEmpty( Table )
Table: requerido. Tabla en la que se van a comprobar registros.

Ejemplos
En blanco

NOTE
Actualmente, el siguiente ejemplo solo funciona en colecciones locales. Puede almacenar valores en blanco en otros orígenes
de datos si activa la característica experimental "administración de errores de nivel de fórmulas" en el menú Archivo,
configuración de la aplicación, configuración avanzada, características experimentales. Estamos trabajando activamente para
finalizar esta característica y completar la separación de los valores en blanco de los errores.

1. Cree una aplicación desde el principio y agregue un control Botón.


2. Establezca la propiedad OnSelect del botón en esta fórmula:

ClearCollect( Cities; { Name: "Seattle"; Weather: "Rainy" } )

3. Obtenga una vista previa de la aplicación, haga clic o pulse en el botón que agregó y luego cierre la vista
previa.
4. En el menú Archivo, haga clic o pulse en Colecciones.
Aparece la colección Cities, que muestra un registro con "Seattle" y "Rainy":
5. Haga clic o pulse en la flecha Atrás para volver al área de trabajo predeterminada.
6. Agregue un control Label y establezca su propiedad Text en esta fórmula:

IsBlank( First( Cities ).Weather )

La etiqueta muestra false porque el campo Weather contiene un valor ("Rainy").


7. Agregue un segundo botón y establezca su propiedad OnSelect en esta fórmula:

Patch( Cities; First( Cities ); { Weather: Blank() } )

8. Obtenga una vista previa de la aplicación, haga clic o pulse en el botón que agregó y luego cierre la vista
previa.
El campo Weather del primer registro de Cities se sustituye por un valor blank, de forma que se reemplaza
el valor inicial "Rainy" que estaba ahí anteriormente.

La etiqueta muestra true porque el campo Weather ya no contiene ningún valor.


Coalesce
FÓRMULA DESCRIPCIÓN RESULTADO

Coalesce ( en blanco (), 1 ) Comprueba el valor devuelto por la 1


función Blank, que siempre devuelve un
valor blank. Dado que el primer
argumento está en blanco, la evaluación
continúa con el argumento siguiente
hasta que se encuentre un valor que no
estéen blanco y una cadena que no esté
vacía.
FÓRMULA DESCRIPCIÓN RESULTADO

Coalesce ("", 2) Comprueba el primer argumento, que 2


es una cadena vacía. Dado que el primer
argumento es una cadena vacía, la
evaluación continúa con el argumento
siguiente hasta que se encuentre un
valor que no estéen blanco y una
cadena que no esté vacía.

Coalesce (Blank (), "", Blank (), "", 3, Coalesce comienza al principio de la 3
4) lista de argumentos y evalúa cada
argumento a su vez hasta que se
encuentra un valor que no estáen
blanco y una cadena no vacía. En este
caso, los cuatro primeros argumentos
devuelven un valor en blanco o una
cadena vacía, por lo que la evaluación
continúa hasta el quinto argumento. El
quinto argumento es una cadena que
no estáen blanco y no está vacía, por lo
que la evaluación se detiene aquí. Se
devuelve el valor del quinto argumento
y no se evalúa el sexto argumento.

Coalesce ("") Comprueba el primer argumento, que blank


es una cadena vacía. Dado que el primer
argumento es una cadena vacía y no
hay más argumentos, la función
devuelve Blank.

IsBlank
1. Cree una aplicación desde el principio, agregue un control de entrada de texto y llámelo FirstName.
2. Agregue una etiqueta y establezca su propiedad Texto en esta fórmula:

If( IsBlank( FirstName.Text ); "First Name is a required field." )

De forma predeterminada, la propiedad Text de un control de entrada de texto se establece en "Entrada de


texto" . Como la propiedad contiene un valor, no está en blanco, y la etiqueta no muestra ningún mensaje.
3. Quite todos los caracteres del control de entrada de texto, espacios incluidos.
Dado que la propiedad Text ya no contiene ningún carácter, es una cadena vacía y esblanco (FirstName.
Text) será true. Se muestra el mensaje de campo requerido.
Para más información sobre cómo realizar la validación mediante otras herramientas, consulte la función Validate
y el uso de orígenes de datos.
Otros ejemplos:

FÓRMULA DESCRIPCIÓN RESULTADO

Esblanco ( en blanco () ) Comprueba el valor devuelto por la true


función Blank, que siempre devuelve un
valor blank.
FÓRMULA DESCRIPCIÓN RESULTADO

IsBlank( "" ) Una cadena que no contiene ningún true


carácter.

IsBlank( "Hello" ) Una cadena que contiene uno o más false


caracteres.

IsBlank( AnyCollection ) Como la colección existe, no está en false


blanco, incluso si no contiene ningún
registro. Para comprobar si existe una
colección vacía, use IsEmpty en su lugar.

IsBlank( Mid( "Hello"; 17; 2 ) ) El carácter inicial de Mid está más allá true
del final de la cadena. El resultado es una
cadena vacía.

IsBlank( If( false; false ) ) Una función If sin ElseResult. Como la true
condición es siempre false, esta función
If siempre devuelve blank.

IsEmpty
1. Cree una aplicación desde el principio y agregue un control Botón.
2. Establezca la propiedad OnSelect del botón en esta fórmula:
Collect( IceCream; { Flavor: "Strawberry"; Quantity: 300 }; { Flavor: "Chocolate"; Quantity: 100 } )
3. Obtenga una vista previa de la aplicación, haga clic o pulse en el botón que agregó y luego cierre la vista
previa.
Se crea una colección denominada IceCream con estos datos:

Esta colección tiene dos registros y no está vacía. IsEmpty( IceCream ) devuelve false y CountRows(
IceCream ) devuelve 2.
4. Agregue un segundo botón y establezca su propiedad OnSelect en esta fórmula:
Clear( IceCream )
5. Obtener una vista previa de la aplicación, haga clic o pulse en el segundo botón y luego cierre la vista previa.
Ahora, la colección está vacía:

La función Clear quita todos los registros de una colección, lo que da lugar a una colección vacía. IsEmpty(
IceCream ) devuelve true y CountRows( IceCream ) devuelve 0.
También puede usar IsEmpty para comprobar si una tabla calculada está vacía, como muestran estos ejemplos:

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

IsEmpty( [ 1; 2; 3 ] ) La tabla de una columna contiene tres false


registros y, por lo tanto, no está vacía.

IsEmpty( [ ] ) La tabla de una columna no contiene true


registros y está vacía.

IsEmpty( Filter( [ 1; 2; 3 ]; Value > 5 ) La tabla de una columna no contiene true


) valores que sean mayores que 5. El
resultado del filtro no contiene ningún
registro y está vacío.
Funciones Collect, Clear y ClearCollect
en PowerApps
29/10/2019 • 7 minutes to read

Crea y borra colecciones y agrega registros a cualquier origen de datos.

Descripción
Collect
La función Collect agrega registros a un origen de datos. Los elementos que se pueden
agregar son:
Un valor único: el valor se coloca en el campo Value de un nuevo registro. Todas las
demás propiedades se dejan blank.
Un registro: cada propiedad con nombre se coloca en la propiedad correspondiente de
un nuevo registro. Todas las demás propiedades se dejan en blanco.
Una tabla: cada registro de la tabla se agrega como un registro independiente del
origen de datos, como se ha descrito anteriormente. La tabla no se agrega como una
tabla anidada a un registro. Para lograrlo, primero ajuste la tabla en un registro.
Cuando se usa con una colección, se crearán columnas adicionales según sea necesario.
Las columnas de otros orígenes de datos están determinadas por el origen de datos y no
se pueden agregar nuevas columnas.
Si el origen de datos todavía no existe, se crea una colección.
Las colecciones a veces se usan para almacenar variables globales o realizar una copia
temporal de un origen de datos. PowerApps se basa en fórmulas que se recalculan
automáticamente a medida que el usuario interactúa con una aplicación. Las colecciones
no tienen esta ventaja y su uso puede hacer que la aplicación sea más difícil de crear y
comprender. Antes de usar una colección de esta manera, revise el trabajo con variables.
También puede usar la función Patch para crear registros en un origen de datos.
Collect devuelve el origen de datos modificado como una tabla. Collect solo se puede
usar en una fórmula de comportamiento.
Clear
La función Clear elimina todos los registros de una colección. Las columnas de la
colección se conservarán.
Tenga en cuenta que Clear solo funciona en colecciones y no en otros orígenes de datos.
Puede usar RemoveIf( DataSource; true ) para este propósito. Tenga cuidado, ya que
esto quitará todos los registros del almacenamiento del origen de datos y puede afectar a
otros usuarios.
Puede usar la función Remove para quitar registros de forma selectiva.
Clear no tiene ningún valor devuelto. Solo se puede usar en una fórmula de
comportamiento.
ClearCollect
La función ClearCollect elimina todos los registros de una colección y, después, agrega
un conjunto de registros diferente a la misma colección. Con una sola función,
ClearCollect ofrece la combinación de Clear y Collect.
ClearCollect devuelve la colección modificada como una tabla. ClearCollect solo se
puede usar en una fórmula de comportamiento.

Sintaxis
Collect( DataSource; Elemento; ... )
DataSource: requerido. Origen de datos al que quiere agregar datos. Si todavía no
existe, se crea una colección.
Item (s) : requerido. Uno o varios registros o tablas que se van a agregar al origen de
datos.
Clear( Colección )
Collection: requerido. Colección que quiere borrar.
ClearCollect( Colección; Elemento; ... )
Collection: requerido. Colección que quiere borrar, a la que después va a agregar
datos.
Item (s) : requerido. Uno o varios registros o tablas que se van a agregar al origen de
datos.

Ejemplos
Borrar y agregar registros a un origen de datos
En estos ejemplos, borrará y agregará registros a una colección denominada IceCream.
El origen de datos comienza con este contenido:

FÓRMULA DESCRIPCIÓN RESULTADO

ClearCollect( IceCream; Borra todos los datos de la


{ Flavor: "Strawberry"; Qua colección IceCream y,
ntity: 300 } ) después, agrega un registro
que incluye una cantidad de
helado de fresa. La colección icecream
también se ha modificado.

Collect( IceCream; Agrega dos registros a la


{ Flavor: "Pistachio"; Quanti colección icecream que
ty: 40 }; incluye una cantidad de
{ Flavor: "Orange"; Quantit pistacho y una nata de hielo
y: 200 } ) naranja.

La colección icecream
también se ha modificado.
FÓRMULA DESCRIPCIÓN RESULTADO

Clear( IceCream ) Quita todos los registros de la


colección IceCream.
La colección icecream
también se ha modificado.

Para obtener ejemplos paso a paso de cómo crear una colección, vea crear y actualizar
una colección.
Registros y tablas
En estos ejemplos se examina cómo se administran los argumentos de registro y tabla
para recopilar y ClearCollect .

FÓRMULA DESCRIPCIÓN RESULTADO

ClearCollect (IceCream; Borre todos los datos y, a


{ Flavor: "chocolate"; Quant continuación, agregue dos
ity: 100 }; registros a la colección
{ Flavor: "vainilla"; Quantity icecream , que incluye una
: 200 }) cantidad de chocolate y una
nata de hielo de vainilla. Los La colección icecream
registros que se van a agregar también se ha modificado.
se proporcionan como
argumentos individuales para
la función.

ClearCollect (IceCream; Igual que el ejemplo anterior,


tabla salvo que los registros se
({ Flavor: "chocolate"; Quan combinan en una tabla y se
tity: 100 }; pasan a través de un único
{ Flavor: "vainilla"; Quantity argumento. El contenido de la
: 200 })) tabla se extrae registro por La colección icecream
registro antes de agregarse a también se ha modificado.
la colección icecream .

ClearCollect (IceCream; Igual que el ejemplo anterior,


{ Favorites: tabla salvo que la tabla se ajusta en
({ Flavor: "chocolate"; Quan un registro. Los registros de la
tity: 100 }; tabla no se extraen y, en su
{ Flavor: "vainilla"; Quantity lugar, se agrega toda la tabla
: 200 })}) como una subtabla del
registro.

La colección icecream
también se ha modificado.
Enumeración de color y las funciones ColorFade,
ColorValue y RGBA en PowerApps
05/11/2019 • 18 minutes to read

Usar valores de color integrados, definir colores personalizados y usar el canal alfa.

Descripción
Mediante el uso de la enumeración de color , puede tener acceso fácilmente a los colores definidos por hojas de
estilo CSS de HTML (CSS ). Por ejemplo, color. red devuelve rojo puro. Puede encontrar una lista de estos colores
al final de este tema.
La función ColorValue devuelve un color basado en una cadena de color de una CSS. La cadena puede adoptar
cualquiera de estas formas:
El nombre de color de CSS: "RoxyBrown" y "OliveDrab" son ejemplos. Estos nombres no incluyen
espacios. La lista de colores admitidos aparece más adelante en este tema.
valor hexadecimal de 6 dígitos: Como ejemplo "#ffd700" es igual que "Gold". La cadena tiene el formato
"#RRGGBB", donde RR es la parte roja en dos dígitos hexadecimales, GG es el verde y BB es el azul.
valor hexadecimal de 8 dígitos: Por ejemplo, "#ff7f5080" es igual que "Coral" con un canal alfa 50%. La
cadena tiene el formato "#RRGGBBAA", donde RR, GGy BB son idénticos al formato de 6 dígitos. El canal alfa se
representa mediante AA: 00 representa completamente transparente y FF representa totalmente opaco.
La función RGBA devuelve un color basado en los componentes rojo, verde y azul. La función también incluye un
canal alfa para mezclar colores de controles que están superpuestos entre sí. Un canal alfa varía desde 0 o 0% (que
es completamente transparente e invisible) hasta 1 o 100% (que es completamente opaco y se bloquea
completamente cualquier capa detrás de un control).
La función ColorFade devuelve una versión más clara o más oscura de un color. La cantidad de desvanecimiento
varía entre-1 (que oscurece completamente un color hasta el negro) hasta 0 (que no afecta al color) a 1 (que
ilumina completamente un color a blanco).

Canal alfa
En una aplicación de lienzo, puede capas de controles de un lado a otro y especificar la transparencia de un control
para todos los controles que están detrás. Como resultado, los colores se fusionarán a través de las capas. Por
ejemplo, en este diagrama se muestra cómo se mezclan los tres colores primarios con una configuración alfa de
50%:
También puede mezclar imágenes en formatos de archivo que admiten canales alfa. Por ejemplo, no puede mezclar
archivos. JPEG, pero puede mezclar archivos. png. En el gráfico siguiente se muestran los mismos colores rojo,
verde y azul del ejemplo anterior, pero el color rojo aparece como una línea ondulada (en lugar de un círculo) en un
archivo. png con un canal alfa 50%:

Si especifica un valor de enumeración de color o crea una fórmula de ColorValue con un nombre de color o un
valor hexadecimal de 6 dígitos, el valor de alfa es 100%, que es completamente opaco.

Sintaxis
Color.ColorName
ColorName: requerido. El nombre de un color de hoja de estilo CSS. La lista de posibles valores de enumeración
aparece al final de este tema.
ColorValue( CSSColor )
CSSColor: requerido. La definición de un color de hoja de estilo CSS. Puede especificar un nombre, como
OliveDrab, o un valor hexadecimal, como #6b8e23 o #7fffd420. Los valores hexadecimales pueden adoptar la
forma de #RRGGBB o #RRGGBBAA.
RGBA ( Red; Green; Blue; Alpha )
Red, Green, Blue: requerido. Valores de componente de color, que van desde 0 (sin saturación) hasta 255
(saturación completa).
Alpha: requerido. Componente alfa, que va de 0 (totalmente transparente) a 1 (totalmente opaco). También
puede usar un porcentaje, de 0 % a 100 %.
ColorFade( Color; FadeAmount )
Color: requerido. Un valor de color como Color.Red o el resultado de ColorValue o RGBA.
FadeAmount: requerido. Número entre -1 y 1. -1 oscurece completamente un color a negro, 0 no afecta al color
y 1 ilumina completamente un color a blanco. También puede usar un porcentaje entre-100% y 100%.

Colores integrados
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.AliceBlue ColorValue ("#f0f8ff" ) RGBA ( 240, 248, 255, 1


ColorValue ("AliceBlue" ) )

Color.AntiqueWhite ColorValue ("#faebd7" ) RGBA ( 250, 235, 215, 1


ColorValue )
("AntiqueWhite" )

Color.Aqua ColorValue ("#00ffff" ) RGBA ( 0, 255, 255, 1 )


ColorValue ("aguamarina"
)

Color.Aquamarine ColorValue ("#7fffd4" ) RGBA ( 127, 255, 212, 1


ColorValue ("color )
aguamarina" )

Color.Azure ColorValue ("#f0ffff" ) RGBA ( 240, 255, 255, 1


ColorValue ("Azure" ) )

Color.Beige ColorValue ("#f5f5dc" ) RGBA ( 245, 245, 220, 1


ColorValue ("Beige" ) )

Color.Bisque ColorValue ("#ffe4c4" ) RGBA ( 255, 228, 196, 1


ColorValue ("BISQUE" ) )

Color.Black ColorValue ("#000000" ) RGBA ( 0, 0, 0, 1 )


ColorValue ("Black" )

Color.BlanchedAlmond ColorValue ("#ffebcd" ) RGBA ( 255, 235, 205, 1


ColorValue )
("BlanchedAlmond" )

Color.Blue ColorValue ("#0000ff" ) RGBA ( 0, 0, 255, 1 )


ColorValue ("Blue" )

Color.BlueViolet ColorValue ("#8a2be2" ) RGBA ( 138, 43, 226, 1 )


ColorValue ("BLUEVIOLET"
)

Color.Brown ColorValue ("#a52a2a" ) RGBA ( 165, 42, 42, 1 )


ColorValue ("marrón" )

Color.Burlywood ColorValue ("#deb887" ) RGBA ( 222, 184, 135, 1


ColorValue ("burlywood" )
)
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.CadetBlue ColorValue ("#5f9ea0" ) RGBA ( 95, 158, 160, 1 )


ColorValue ("CadetBlue" )

Color.Chartreuse ColorValue ("#7fff00" ) RGBA ( 127, 255, 0, 1 )


ColorValue
("CHARTREUSE" )

Color.Chocolate ColorValue ("#d2691e" ) RGBA ( 210, 105, 30, 1 )


ColorValue ("chocolate" )

Color.Coral ColorValue ("#ff7f50" ) RGBA ( 255, 127, 80, 1 )


ColorValue ("Coral" )

Color.CornflowerBlue ColorValue ("#6495ed" ) RGBA ( 100, 149, 237, 1


ColorValue )
("CornflowerBlue" )

Color.Cornsilk ColorValue ("#fff8dc" ) RGBA ( 255, 248, 220, 1


ColorValue ("CORNSILK" ) )

Color.Crimson ColorValue ("#dc143c" ) RGBA ( 220, 20, 60, 1 )


ColorValue ("Crimson" )

Color.Cyan ColorValue ("#00ffff" ) RGBA ( 0, 255, 255, 1 )


ColorValue ("aguamarina"
)

Color.DarkBlue ColorValue ("#00008b" ) RGBA ( 0, 0, 139, 1 )


ColorValue ("DarkBlue" )

Color.DarkCyan ColorValue ("#008b8b" ) RGBA ( 0, 139, 139, 1 )


ColorValue ("DARKCYAN"
)

Color.DarkGoldenRod ColorValue ("#b8860b" ) RGBA ( 184, 134, 11, 1 )


ColorValue
("DarkGoldenRod" )

Color.DarkGray ColorValue ("#a9a9a9" ) RGBA ( 169, 169, 169, 1


ColorValue ("grisoscuro" ) )

Color.DarkGreen ColorValue ("#006400" ) RGBA ( 0, 100, 0, 1 )


ColorValue ("DarkGreen"
)

Color.DarkGrey ColorValue ("#a9a9a9" ) RGBA ( 169, 169, 169, 1


ColorValue ("DARKGREY" )
)
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.DarkKhaki ColorValue ("#bdb76b" ) RGBA ( 189, 183, 107, 1


ColorValue ("DarkKhaki" ) )

Color.DarkMagenta ColorValue ("#8b008b" ) RGBA ( 139, 0, 139, 1 )


ColorValue
("darkmagenta" )

Color.DarkOliveGreen ColorValue ("#556b2f" ) RGBA ( 85, 107, 47, 1 )


ColorValue
("DarkOliveGreen" )

Color.DarkOrange ColorValue ("#ff8c00" ) RGBA ( 255, 140, 0, 1 )


ColorValue
("DARKORANGE" )

Color.DarkOrchid ColorValue ("#9932cc" ) RGBA ( 153, 50, 204, 1 )


ColorValue ("DarkOrchid"
)

Color.DarkRed ColorValue ("#8b0000" ) RGBA ( 139, 0, 0, 1 )


ColorValue ("Darkred" )

Color.DarkSalmon ColorValue ("#e9967a" ) RGBA ( 233, 150, 122, 1


ColorValue ("DarkSalmon" )
)

Color.DarkSeaGreen ColorValue ("#8fbc8f" ) RGBA ( 143, 188, 143, 1


ColorValue )
("DARKSEAGREEN" )

Color.DarkSlateBlue ColorValue ("#483d8b" ) RGBA ( 72, 61, 139, 1 )


ColorValue
("DarkSlateBlue" )

Color.DarkSlateGray ColorValue ("#2f4f4f" ) RGBA ( 47, 79, 79, 1 )


ColorValue
("DarkSlateGray" )

Color.DarkSlateGrey ColorValue ("#2f4f4f" ) RGBA ( 47, 79, 79, 1 )


ColorValue
("DarkSlateGrey" )

Color.DarkTurquoise ColorValue ("#00ced1" ) RGBA ( 0, 206, 209, 1 )


ColorValue
("DARKTURQUOISE" )

Color.DarkViolet ColorValue ("#9400d3" ) RGBA ( 148, 0, 211, 1 )


ColorValue ("DarkViolet"
)

Color.DeepPink ColorValue ("#ff1493" ) RGBA ( 255, 20, 147, 1 )


ColorValue ("deeppink" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.DeepSkyBlue ColorValue ("#00bfff" ) RGBA ( 0, 191, 255, 1 )


ColorValue
("DeepSkyBlue" )

Color.DimGray ColorValue ("#696969" ) RGBA ( 105, 105, 105, 1


ColorValue ("DIMGRAY" ) )

Color.DimGrey ColorValue ("#696969" ) RGBA ( 105, 105, 105, 1


ColorValue ("DimGrey" ) )

Color.DodgerBlue ColorValue ("#1e90ff" ) RGBA ( 30, 144, 255, 1 )


ColorValue ("dodgerblue"
)

Color.FireBrick ColorValue ("#b22222" ) RGBA ( 178, 34, 34, 1 )


ColorValue ("FireBrick" )

Color.FloralWhite ColorValue ("#fffaf0" ) RGBA ( 255, 250, 240, 1


ColorValue )
("FLORALWHITE" )

Color.ForestGreen ColorValue ("#228b22" ) RGBA ( 34, 139, 34, 1 )


ColorValue ("ForestGreen"
)

Color.Fuchsia ColorValue ("#ff00ff" ) RGBA ( 255, 0, 255, 1 )


ColorValue ("Fuchsia" )

Color.Gainsboro ColorValue ("#dcdcdc" ) RGBA ( 220, 220, 220, 1


ColorValue ("Gainsboro" ) )

Color.GhostWhite ColorValue ("#f8f8ff" ) RGBA ( 248, 248, 255, 1


ColorValue )
("GHOSTWHITE" )

Color.Gold ColorValue ("#ffd700" ) RGBA ( 255, 215, 0, 1 )


ColorValue ( "Gold")

Color.GoldenRod ColorValue ("#daa520" ) RGBA ( 218, 165, 32, 1 )


ColorValue ("ocre" )

Color.Gray ColorValue ("#808080" ) RGBA ( 128, 128, 128, 1


ColorValue ("gris" ) )

Color.Green ColorValue ("#008000" ) RGBA ( 0, 128, 0, 1 )


ColorValue ("verde" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.GreenYellow ColorValue ("#adff2f" ) RGBA ( 173, 255, 47, 1 )


ColorValue
("GreenYellow" )

Color.Grey ColorValue ("#808080" ) RGBA ( 128, 128, 128, 1


ColorValue ("gris" ) )

Color.Honeydew ColorValue ("#f0fff0" ) RGBA ( 240, 255, 240, 1


ColorValue ("Rocío" ) )

Color.HotPink ColorValue ("#ff69b4" ) RGBA ( 255, 105, 180, 1


ColorValue ("HOTPINK" ) )

Color.IndianRed ColorValue ("#cd5c5c" ) RGBA ( 205, 92, 92, 1 )


ColorValue ("IndianRed" )

Color.Indigo ColorValue ("#4b0082" ) RGBA ( 75, 0, 130, 1 )


ColorValue ("Indigo" )

Color.Ivory ColorValue ("#fffff0" ) RGBA ( 255, 255, 240, 1


ColorValue ("marfil" ) )

Color.Khaki ColorValue ("#f0e68c" ) RGBA ( 240, 230, 140, 1


ColorValue ("caqui" ) )

Color.Lavender ColorValue ("#e6e6fa" ) RGBA ( 230, 230, 250, 1


ColorValue ("lavanda" ) )

Color.LavenderBlush ColorValue ("#fff0f5" ) RGBA ( 255, 240, 245, 1


ColorValue )
("lavenderblush" )

Color.LawnGreen ColorValue ("#7cfc00" ) RGBA ( 124, 252, 0, 1 )


ColorValue ("LawnGreen"
)

Color.LemonChiffon ColorValue ("#fffacd" ) RGBA ( 255, 250, 205, 1


ColorValue )
("LEMONCHIFFON" )

Color.LightBlue ColorValue ("#add8e6" ) RGBA ( 173, 216, 230, 1


ColorValue ("LightBlue" ) )

Color.LightCoral ColorValue ("#f08080" ) RGBA ( 240, 128, 128, 1


ColorValue ("LightCoral" ) )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.LightCyan ColorValue ("#e0ffff" ) RGBA ( 224, 255, 255, 1


ColorValue ("Ciánclaro" ) )

Color.LightGoldenRodYell ColorValue ("#fafad2" ) RGBA ( 250, 250, 210, 1


ow ColorValue )
("lightgoldenrodyellow" )

Color.LightGray ColorValue ("#d3d3d3" ) RGBA ( 211, 211, 211, 1


ColorValue ("LightGray" ) )

Color.LightGreen ColorValue ("#90ee90" ) RGBA ( 144, 238, 144, 1


ColorValue ("lightgreen" ) )

Color.LightGrey ColorValue ("#d3d3d3" ) RGBA ( 211, 211, 211, 1


ColorValue ("LightGrey" ) )

Color.LightPink ColorValue ("#ffb6c1" ) RGBA ( 255, 182, 193, 1


ColorValue ("LIGHTPINK" )
)

Color.LightSalmon ColorValue ("#ffa07a" ) RGBA ( 255, 160, 122, 1


ColorValue ("LightSalmon" )
)

Color.LightSeaGreen ColorValue ("#20b2aa" ) RGBA ( 32, 178, 170, 1 )


ColorValue
("lightseagreen" )

Color.LightSkyBlue ColorValue ("#87cefa" ) RGBA ( 135, 206, 250, 1


ColorValue )
("LightSkyBlue" )

Color.LightSlateGray ColorValue ("#778899" ) RGBA ( 119, 136, 153, 1


ColorValue )
("LIGHTSLATEGRAY" )

Color.LightSlateGrey ColorValue ("#778899" ) RGBA ( 119, 136, 153, 1


ColorValue )
("LightSlateGrey" )

Color.LightSteelBlue ColorValue ("#b0c4de" ) RGBA ( 176, 196, 222, 1


ColorValue )
("lightsteelblue" )

Color.LightYellow ColorValue ("#ffffe0" ) RGBA ( 255, 255, 224, 1


ColorValue ("LightYellow" )
)

Color.Lime ColorValue ("#00ff00" ) RGBA ( 0, 255, 0, 1 )


ColorValue ("Lima" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.LimeGreen ColorValue ("#32cd32" ) RGBA ( 50, 205, 50, 1 )


ColorValue ("LimeGreen"
)

Color.Linen ColorValue ("#faf0e6" ) RGBA ( 250, 240, 230, 1


ColorValue ("ropa" ) )

Color.Magenta ColorValue ("#ff00ff" ) RGBA ( 255, 0, 255, 1 )


ColorValue ("magenta" )

Color.Maroon ColorValue ("#800000" ) RGBA ( 128, 0, 0, 1 )


ColorValue ("granate" )

Color.MediumAquamarine ColorValue ("#66cdaa" ) RGBA ( 102, 205, 170, 1


ColorValue )
("MediumAquamarine" )

Color.MediumBlue ColorValue ("#0000cd" ) RGBA ( 0, 0, 205, 1 )


ColorValue
("mediumblue" )

Color.MediumOrchid ColorValue ("#ba55d3" ) RGBA ( 186, 85, 211, 1 )


ColorValue
("MediumOrchid" )

Color.MediumPurple ColorValue ("#9370db" ) RGBA ( 147, 112, 219, 1


ColorValue )
("MEDIUMPURPLE" )

Color.MediumSeaGreen ColorValue ("#3cb371" ) RGBA ( 60, 179, 113, 1 )


ColorValue
("MediumSeaGreen" )

Color.MediumSlateBlue ColorValue ("#7b68ee" ) RGBA ( 123, 104, 238, 1


ColorValue )
("mediumslateblue" )

Color.MediumSpringGree ColorValue ("#00fa9a" ) RGBA ( 0, 250, 154, 1 )


n ColorValue
("MediumSpringGreen" )

Color.MediumTurquoise ColorValue ("#48d1cc" ) RGBA ( 72, 209, 204, 1 )


ColorValue
("MEDIUMTURQUOISE" )

Color.MediumVioletRed ColorValue ("#c71585" ) RGBA ( 199, 21, 133, 1 )


ColorValue
("MediumVioletRed" )

Color.MidnightBlue ColorValue ("#191970" ) RGBA ( 25, 25, 112, 1 )


ColorValue
("Midnightblue" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.MintCream ColorValue ("#f5fffa" ) RGBA ( 245, 255, 250, 1


ColorValue ("MintCream" )
)

Color.MistyRose ColorValue ("#ffe4e1" ) RGBA ( 255, 228, 225, 1


ColorValue )
("ROSADIFUMINADO" )

Color.Moccasin ColorValue ("#ffe4b5" ) RGBA ( 255, 228, 181, 1


ColorValue ("Moccasin" ) )

Color.NavajoWhite ColorValue ("#ffdead" ) RGBA ( 255, 222, 173, 1


ColorValue ("navajowhite" )
)

Color.Navy ColorValue ("#000080" ) RGBA ( 0, 0, 128, 1 )


ColorValue ("Navy" )

Color.OldLace ColorValue ("#fdf5e6" ) RGBA ( 253, 245, 230, 1


ColorValue ("OLDLACE" ) )

Color.Olive ColorValue ("#808000" ) RGBA ( 128, 128, 0, 1 )


ColorValue ("oliva" )

Color.OliveDrab ColorValue ("#6b8e23" ) RGBA ( 107, 142, 35, 1 )


ColorValue ("Olivedrab" )

Color.Orange ColorValue ("#ffa500" ) RGBA ( 255, 165, 0, 1 )


ColorValue ("naranja" )

Color.OrangeRed ColorValue ("#ff4500" ) RGBA ( 255, 69, 0, 1 )


ColorValue
("ORANGERED" )

Color.Orchid ColorValue ("#da70d6" ) RGBA ( 218, 112, 214, 1


ColorValue ("orquídea" ) )

Color.PaleGoldenRod ColorValue ("#eee8aa" ) RGBA ( 238, 232, 170, 1


ColorValue )
("palegoldenrod" )

Color.PaleGreen ColorValue ("#98fb98" ) RGBA ( 152, 251, 152, 1


ColorValue )
("Verdepálido." )

Color.PaleTurquoise ColorValue ("#afeeee" ) RGBA ( 175, 238, 238, 1


ColorValue )
("PALETURQUOISE" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.PaleVioletRed ColorValue ("#db7093" ) RGBA ( 219, 112, 147, 1


ColorValue )
("PaleVioletRed" )

Color.PapayaWhip ColorValue ("#ffefd5" ) RGBA ( 255, 239, 213, 1


ColorValue ("papayawhip" )
)

Color.PeachPuff ColorValue ("#ffdab9" ) RGBA ( 255, 218, 185, 1


ColorValue ("PeachPuff" ) )

Color.Peru ColorValue ("#cd853f" ) RGBA ( 205, 133, 63, 1 )


ColorValue ("Perú" )

Color.Pink ColorValue ("#ffc0cb" ) RGBA ( 255, 192, 203, 1


ColorValue ("Rosa" ) )

Color.Plum ColorValue ("#dda0dd" ) RGBA ( 221, 160, 221, 1


ColorValue ("ciruela" ) )

Color.PowderBlue ColorValue ("#b0e0e6" ) RGBA ( 176, 224, 230, 1


ColorValue ("PowderBlue" )
)

Color.Purple ColorValue ("#800080" ) RGBA ( 128, 0, 128, 1 )


ColorValue ("púrpura" )

Color.Red ColorValue ("#ff0000" ) RGBA ( 255, 0, 0, 1 )


ColorValue ("rojo" )

Color.RosyBrown ColorValue ("#bc8f8f" ) RGBA ( 188, 143, 143, 1


ColorValue ("Rosybrown" )
)

Color.RoyalBlue ColorValue ("#4169e1" ) RGBA ( 65, 105, 225, 1 )


ColorValue ("RoyalBlue" )

Color.SaddleBrown ColorValue ("#8b4513" ) RGBA ( 139, 69, 19, 1 )


ColorValue
("SADDLEBROWN" )

Color.Salmon ColorValue ("#fa8072" ) RGBA ( 250, 128, 114, 1


ColorValue ("salmón" ) )

Color.SandyBrown ColorValue ("#f4a460" ) RGBA ( 244, 164, 96, 1 )


ColorValue ("sandybrown"
)
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.SeaGreen ColorValue ("#2e8b57" ) RGBA ( 46, 139, 87, 1 )


ColorValue ("SeaGreen" )

Color.SeaShell ColorValue ("#fff5ee" ) RGBA ( 255, 245, 238, 1


ColorValue ("SEASHELL" ) )

Color.Sienna ColorValue ("#a0522d" ) RGBA ( 160, 82, 45, 1 )


ColorValue ("Sienna" )

Color.Silver ColorValue ("#c0c0c0" ) RGBA ( 192, 192, 192, 1


ColorValue ("Silver" ) )

Color.SkyBlue ColorValue ("#87ceeb" ) RGBA ( 135, 206, 235, 1


ColorValue ("SkyBlue" ) )

Color.SlateBlue ColorValue ("#6a5acd" ) RGBA ( 106, 90, 205, 1 )


ColorValue ("SLATEBLUE"
)

Color.SlateGray ColorValue ("#708090" ) RGBA ( 112, 128, 144, 1


ColorValue ("gris pizarra" )
)

Color.SlateGrey ColorValue ("#708090" ) RGBA ( 112, 128, 144, 1


ColorValue ("slategrey" ) )

Color.Snow ColorValue ("#fffafa" ) RGBA ( 255, 250, 250, 1


ColorValue ("nieve" ) )

Color.SpringGreen ColorValue ("#00ff7f" ) RGBA ( 0, 255, 127, 1 )


ColorValue
("SPRINGGREEN" )

Color.SteelBlue ColorValue ("#4682b4" ) RGBA ( 70, 130, 180, 1 )


ColorValue ("SteelBlue" )

Color.Tan ColorValue ("#d2b48c" ) RGBA ( 210, 180, 140, 1


ColorValue ("tan" ) )

Color.Teal ColorValue ("#008080" ) RGBA ( 0, 128, 128, 1 )


ColorValue ("verde
azulado" )

Color.Thistle ColorValue ("#d8bfd8" ) RGBA ( 216, 191, 216, 1


ColorValue ("THISTLE" ) )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.Tomato ColorValue ("#ff6347" ) RGBA ( 255, 99, 71, 1 )


ColorValue ("tomate" )

Color. Transparent ColorValue ("#00000000" RGBA ( 0, 0, 0, 0 )


)
ColorValue
("transparente" )

Color.Turquoise ColorValue ("#40e0d0" ) RGBA ( 64, 224, 208, 1 )


ColorValue ("turquesa" )

Color.Violet ColorValue ("#ee82ee" ) RGBA ( 238, 130, 238, 1


ColorValue ("violeta" ) )

Color.Wheat ColorValue ("#f5deb3" ) RGBA ( 245, 222, 179, 1


ColorValue ("trigo" ) )

Color.White ColorValue ("#ffffff" ) RGBA ( 255, 255, 255, 1


ColorValue ("blanco" ) )

Color.WhiteSmoke ColorValue ("#f5f5f5" ) RGBA ( 245, 245, 245, 1


ColorValue )
("WhiteSmoke" )

Color.Yellow ColorValue ("#ffff00" ) RGBA ( 255, 255, 0, 1 )


ColorValue ("amarillo" )

Color.YellowGreen ColorValue ("#9acd32" ) RGBA ( 154, 205, 50, 1 )


ColorValue
("YELLOWGREEN" )
Enumeración de color y las funciones ColorFade,
ColorValue y RGBA en PowerApps
05/11/2019 • 18 minutes to read

Usar valores de color integrados, definir colores personalizados y usar el canal alfa.

Descripción
Mediante el uso de la enumeración de color , puede tener acceso fácilmente a los colores definidos por hojas de
estilo CSS de HTML (CSS ). Por ejemplo, color. red devuelve rojo puro. Puede encontrar una lista de estos colores
al final de este tema.
La función ColorValue devuelve un color basado en una cadena de color de una CSS. La cadena puede adoptar
cualquiera de estas formas:
El nombre de color de CSS: "RoxyBrown" y "OliveDrab" son ejemplos. Estos nombres no incluyen
espacios. La lista de colores admitidos aparece más adelante en este tema.
valor hexadecimal de 6 dígitos: Como ejemplo "#ffd700" es igual que "Gold". La cadena tiene el formato
"#RRGGBB", donde RR es la parte roja en dos dígitos hexadecimales, GG es el verde y BB es el azul.
valor hexadecimal de 8 dígitos: Por ejemplo, "#ff7f5080" es igual que "Coral" con un canal alfa 50%. La
cadena tiene el formato "#RRGGBBAA", donde RR, GGy BB son idénticos al formato de 6 dígitos. El canal alfa se
representa mediante AA: 00 representa completamente transparente y FF representa totalmente opaco.
La función RGBA devuelve un color basado en los componentes rojo, verde y azul. La función también incluye un
canal alfa para mezclar colores de controles que están superpuestos entre sí. Un canal alfa varía desde 0 o 0% (que
es completamente transparente e invisible) hasta 1 o 100% (que es completamente opaco y se bloquea
completamente cualquier capa detrás de un control).
La función ColorFade devuelve una versión más clara o más oscura de un color. La cantidad de desvanecimiento
varía entre-1 (que oscurece completamente un color hasta el negro) hasta 0 (que no afecta al color) a 1 (que
ilumina completamente un color a blanco).

Canal alfa
En una aplicación de lienzo, puede capas de controles de un lado a otro y especificar la transparencia de un control
para todos los controles que están detrás. Como resultado, los colores se fusionarán a través de las capas. Por
ejemplo, en este diagrama se muestra cómo se mezclan los tres colores primarios con una configuración alfa de
50%:
También puede mezclar imágenes en formatos de archivo que admiten canales alfa. Por ejemplo, no puede mezclar
archivos. JPEG, pero puede mezclar archivos. png. En el gráfico siguiente se muestran los mismos colores rojo,
verde y azul del ejemplo anterior, pero el color rojo aparece como una línea ondulada (en lugar de un círculo) en un
archivo. png con un canal alfa 50%:

Si especifica un valor de enumeración de color o crea una fórmula de ColorValue con un nombre de color o un
valor hexadecimal de 6 dígitos, el valor de alfa es 100%, que es completamente opaco.

Sintaxis
Color.ColorName
ColorName: requerido. El nombre de un color de hoja de estilo CSS. La lista de posibles valores de enumeración
aparece al final de este tema.
ColorValue( CSSColor )
CSSColor: requerido. La definición de un color de hoja de estilo CSS. Puede especificar un nombre, como
OliveDrab, o un valor hexadecimal, como #6b8e23 o #7fffd420. Los valores hexadecimales pueden adoptar la
forma de #RRGGBB o #RRGGBBAA.
RGBA ( Red; Green; Blue; Alpha )
Red, Green, Blue: requerido. Valores de componente de color, que van desde 0 (sin saturación) hasta 255
(saturación completa).
Alpha: requerido. Componente alfa, que va de 0 (totalmente transparente) a 1 (totalmente opaco). También
puede usar un porcentaje, de 0 % a 100 %.
ColorFade( Color; FadeAmount )
Color: requerido. Un valor de color como Color.Red o el resultado de ColorValue o RGBA.
FadeAmount: requerido. Número entre -1 y 1. -1 oscurece completamente un color a negro, 0 no afecta al color
y 1 ilumina completamente un color a blanco. También puede usar un porcentaje entre-100% y 100%.

Colores integrados
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.AliceBlue ColorValue ("#f0f8ff" ) RGBA ( 240, 248, 255, 1


ColorValue ("AliceBlue" ) )

Color.AntiqueWhite ColorValue ("#faebd7" ) RGBA ( 250, 235, 215, 1


ColorValue )
("AntiqueWhite" )

Color.Aqua ColorValue ("#00ffff" ) RGBA ( 0, 255, 255, 1 )


ColorValue ("aguamarina"
)

Color.Aquamarine ColorValue ("#7fffd4" ) RGBA ( 127, 255, 212, 1


ColorValue ("color )
aguamarina" )

Color.Azure ColorValue ("#f0ffff" ) RGBA ( 240, 255, 255, 1


ColorValue ("Azure" ) )

Color.Beige ColorValue ("#f5f5dc" ) RGBA ( 245, 245, 220, 1


ColorValue ("Beige" ) )

Color.Bisque ColorValue ("#ffe4c4" ) RGBA ( 255, 228, 196, 1


ColorValue ("BISQUE" ) )

Color.Black ColorValue ("#000000" ) RGBA ( 0, 0, 0, 1 )


ColorValue ("Black" )

Color.BlanchedAlmond ColorValue ("#ffebcd" ) RGBA ( 255, 235, 205, 1


ColorValue )
("BlanchedAlmond" )

Color.Blue ColorValue ("#0000ff" ) RGBA ( 0, 0, 255, 1 )


ColorValue ("Blue" )

Color.BlueViolet ColorValue ("#8a2be2" ) RGBA ( 138, 43, 226, 1 )


ColorValue ("BLUEVIOLET"
)

Color.Brown ColorValue ("#a52a2a" ) RGBA ( 165, 42, 42, 1 )


ColorValue ("marrón" )

Color.Burlywood ColorValue ("#deb887" ) RGBA ( 222, 184, 135, 1


ColorValue ("burlywood" )
)
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.CadetBlue ColorValue ("#5f9ea0" ) RGBA ( 95, 158, 160, 1 )


ColorValue ("CadetBlue" )

Color.Chartreuse ColorValue ("#7fff00" ) RGBA ( 127, 255, 0, 1 )


ColorValue
("CHARTREUSE" )

Color.Chocolate ColorValue ("#d2691e" ) RGBA ( 210, 105, 30, 1 )


ColorValue ("chocolate" )

Color.Coral ColorValue ("#ff7f50" ) RGBA ( 255, 127, 80, 1 )


ColorValue ("Coral" )

Color.CornflowerBlue ColorValue ("#6495ed" ) RGBA ( 100, 149, 237, 1


ColorValue )
("CornflowerBlue" )

Color.Cornsilk ColorValue ("#fff8dc" ) RGBA ( 255, 248, 220, 1


ColorValue ("CORNSILK" ) )

Color.Crimson ColorValue ("#dc143c" ) RGBA ( 220, 20, 60, 1 )


ColorValue ("Crimson" )

Color.Cyan ColorValue ("#00ffff" ) RGBA ( 0, 255, 255, 1 )


ColorValue ("aguamarina"
)

Color.DarkBlue ColorValue ("#00008b" ) RGBA ( 0, 0, 139, 1 )


ColorValue ("DarkBlue" )

Color.DarkCyan ColorValue ("#008b8b" ) RGBA ( 0, 139, 139, 1 )


ColorValue ("DARKCYAN"
)

Color.DarkGoldenRod ColorValue ("#b8860b" ) RGBA ( 184, 134, 11, 1 )


ColorValue
("DarkGoldenRod" )

Color.DarkGray ColorValue ("#a9a9a9" ) RGBA ( 169, 169, 169, 1


ColorValue ("grisoscuro" ) )

Color.DarkGreen ColorValue ("#006400" ) RGBA ( 0, 100, 0, 1 )


ColorValue ("DarkGreen"
)

Color.DarkGrey ColorValue ("#a9a9a9" ) RGBA ( 169, 169, 169, 1


ColorValue ("DARKGREY" )
)
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.DarkKhaki ColorValue ("#bdb76b" ) RGBA ( 189, 183, 107, 1


ColorValue ("DarkKhaki" ) )

Color.DarkMagenta ColorValue ("#8b008b" ) RGBA ( 139, 0, 139, 1 )


ColorValue
("darkmagenta" )

Color.DarkOliveGreen ColorValue ("#556b2f" ) RGBA ( 85, 107, 47, 1 )


ColorValue
("DarkOliveGreen" )

Color.DarkOrange ColorValue ("#ff8c00" ) RGBA ( 255, 140, 0, 1 )


ColorValue
("DARKORANGE" )

Color.DarkOrchid ColorValue ("#9932cc" ) RGBA ( 153, 50, 204, 1 )


ColorValue ("DarkOrchid"
)

Color.DarkRed ColorValue ("#8b0000" ) RGBA ( 139, 0, 0, 1 )


ColorValue ("Darkred" )

Color.DarkSalmon ColorValue ("#e9967a" ) RGBA ( 233, 150, 122, 1


ColorValue ("DarkSalmon" )
)

Color.DarkSeaGreen ColorValue ("#8fbc8f" ) RGBA ( 143, 188, 143, 1


ColorValue )
("DARKSEAGREEN" )

Color.DarkSlateBlue ColorValue ("#483d8b" ) RGBA ( 72, 61, 139, 1 )


ColorValue
("DarkSlateBlue" )

Color.DarkSlateGray ColorValue ("#2f4f4f" ) RGBA ( 47, 79, 79, 1 )


ColorValue
("DarkSlateGray" )

Color.DarkSlateGrey ColorValue ("#2f4f4f" ) RGBA ( 47, 79, 79, 1 )


ColorValue
("DarkSlateGrey" )

Color.DarkTurquoise ColorValue ("#00ced1" ) RGBA ( 0, 206, 209, 1 )


ColorValue
("DARKTURQUOISE" )

Color.DarkViolet ColorValue ("#9400d3" ) RGBA ( 148, 0, 211, 1 )


ColorValue ("DarkViolet"
)

Color.DeepPink ColorValue ("#ff1493" ) RGBA ( 255, 20, 147, 1 )


ColorValue ("deeppink" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.DeepSkyBlue ColorValue ("#00bfff" ) RGBA ( 0, 191, 255, 1 )


ColorValue
("DeepSkyBlue" )

Color.DimGray ColorValue ("#696969" ) RGBA ( 105, 105, 105, 1


ColorValue ("DIMGRAY" ) )

Color.DimGrey ColorValue ("#696969" ) RGBA ( 105, 105, 105, 1


ColorValue ("DimGrey" ) )

Color.DodgerBlue ColorValue ("#1e90ff" ) RGBA ( 30, 144, 255, 1 )


ColorValue ("dodgerblue"
)

Color.FireBrick ColorValue ("#b22222" ) RGBA ( 178, 34, 34, 1 )


ColorValue ("FireBrick" )

Color.FloralWhite ColorValue ("#fffaf0" ) RGBA ( 255, 250, 240, 1


ColorValue )
("FLORALWHITE" )

Color.ForestGreen ColorValue ("#228b22" ) RGBA ( 34, 139, 34, 1 )


ColorValue ("ForestGreen"
)

Color.Fuchsia ColorValue ("#ff00ff" ) RGBA ( 255, 0, 255, 1 )


ColorValue ("Fuchsia" )

Color.Gainsboro ColorValue ("#dcdcdc" ) RGBA ( 220, 220, 220, 1


ColorValue ("Gainsboro" ) )

Color.GhostWhite ColorValue ("#f8f8ff" ) RGBA ( 248, 248, 255, 1


ColorValue )
("GHOSTWHITE" )

Color.Gold ColorValue ("#ffd700" ) RGBA ( 255, 215, 0, 1 )


ColorValue ( "Gold")

Color.GoldenRod ColorValue ("#daa520" ) RGBA ( 218, 165, 32, 1 )


ColorValue ("ocre" )

Color.Gray ColorValue ("#808080" ) RGBA ( 128, 128, 128, 1


ColorValue ("gris" ) )

Color.Green ColorValue ("#008000" ) RGBA ( 0, 128, 0, 1 )


ColorValue ("verde" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.GreenYellow ColorValue ("#adff2f" ) RGBA ( 173, 255, 47, 1 )


ColorValue
("GreenYellow" )

Color.Grey ColorValue ("#808080" ) RGBA ( 128, 128, 128, 1


ColorValue ("gris" ) )

Color.Honeydew ColorValue ("#f0fff0" ) RGBA ( 240, 255, 240, 1


ColorValue ("Rocío" ) )

Color.HotPink ColorValue ("#ff69b4" ) RGBA ( 255, 105, 180, 1


ColorValue ("HOTPINK" ) )

Color.IndianRed ColorValue ("#cd5c5c" ) RGBA ( 205, 92, 92, 1 )


ColorValue ("IndianRed" )

Color.Indigo ColorValue ("#4b0082" ) RGBA ( 75, 0, 130, 1 )


ColorValue ("Indigo" )

Color.Ivory ColorValue ("#fffff0" ) RGBA ( 255, 255, 240, 1


ColorValue ("marfil" ) )

Color.Khaki ColorValue ("#f0e68c" ) RGBA ( 240, 230, 140, 1


ColorValue ("caqui" ) )

Color.Lavender ColorValue ("#e6e6fa" ) RGBA ( 230, 230, 250, 1


ColorValue ("lavanda" ) )

Color.LavenderBlush ColorValue ("#fff0f5" ) RGBA ( 255, 240, 245, 1


ColorValue )
("lavenderblush" )

Color.LawnGreen ColorValue ("#7cfc00" ) RGBA ( 124, 252, 0, 1 )


ColorValue ("LawnGreen"
)

Color.LemonChiffon ColorValue ("#fffacd" ) RGBA ( 255, 250, 205, 1


ColorValue )
("LEMONCHIFFON" )

Color.LightBlue ColorValue ("#add8e6" ) RGBA ( 173, 216, 230, 1


ColorValue ("LightBlue" ) )

Color.LightCoral ColorValue ("#f08080" ) RGBA ( 240, 128, 128, 1


ColorValue ("LightCoral" ) )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.LightCyan ColorValue ("#e0ffff" ) RGBA ( 224, 255, 255, 1


ColorValue ("Ciánclaro" ) )

Color.LightGoldenRodYell ColorValue ("#fafad2" ) RGBA ( 250, 250, 210, 1


ow ColorValue )
("lightgoldenrodyellow" )

Color.LightGray ColorValue ("#d3d3d3" ) RGBA ( 211, 211, 211, 1


ColorValue ("LightGray" ) )

Color.LightGreen ColorValue ("#90ee90" ) RGBA ( 144, 238, 144, 1


ColorValue ("lightgreen" ) )

Color.LightGrey ColorValue ("#d3d3d3" ) RGBA ( 211, 211, 211, 1


ColorValue ("LightGrey" ) )

Color.LightPink ColorValue ("#ffb6c1" ) RGBA ( 255, 182, 193, 1


ColorValue ("LIGHTPINK" )
)

Color.LightSalmon ColorValue ("#ffa07a" ) RGBA ( 255, 160, 122, 1


ColorValue ("LightSalmon" )
)

Color.LightSeaGreen ColorValue ("#20b2aa" ) RGBA ( 32, 178, 170, 1 )


ColorValue
("lightseagreen" )

Color.LightSkyBlue ColorValue ("#87cefa" ) RGBA ( 135, 206, 250, 1


ColorValue )
("LightSkyBlue" )

Color.LightSlateGray ColorValue ("#778899" ) RGBA ( 119, 136, 153, 1


ColorValue )
("LIGHTSLATEGRAY" )

Color.LightSlateGrey ColorValue ("#778899" ) RGBA ( 119, 136, 153, 1


ColorValue )
("LightSlateGrey" )

Color.LightSteelBlue ColorValue ("#b0c4de" ) RGBA ( 176, 196, 222, 1


ColorValue )
("lightsteelblue" )

Color.LightYellow ColorValue ("#ffffe0" ) RGBA ( 255, 255, 224, 1


ColorValue ("LightYellow" )
)

Color.Lime ColorValue ("#00ff00" ) RGBA ( 0, 255, 0, 1 )


ColorValue ("Lima" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.LimeGreen ColorValue ("#32cd32" ) RGBA ( 50, 205, 50, 1 )


ColorValue ("LimeGreen"
)

Color.Linen ColorValue ("#faf0e6" ) RGBA ( 250, 240, 230, 1


ColorValue ("ropa" ) )

Color.Magenta ColorValue ("#ff00ff" ) RGBA ( 255, 0, 255, 1 )


ColorValue ("magenta" )

Color.Maroon ColorValue ("#800000" ) RGBA ( 128, 0, 0, 1 )


ColorValue ("granate" )

Color.MediumAquamarine ColorValue ("#66cdaa" ) RGBA ( 102, 205, 170, 1


ColorValue )
("MediumAquamarine" )

Color.MediumBlue ColorValue ("#0000cd" ) RGBA ( 0, 0, 205, 1 )


ColorValue
("mediumblue" )

Color.MediumOrchid ColorValue ("#ba55d3" ) RGBA ( 186, 85, 211, 1 )


ColorValue
("MediumOrchid" )

Color.MediumPurple ColorValue ("#9370db" ) RGBA ( 147, 112, 219, 1


ColorValue )
("MEDIUMPURPLE" )

Color.MediumSeaGreen ColorValue ("#3cb371" ) RGBA ( 60, 179, 113, 1 )


ColorValue
("MediumSeaGreen" )

Color.MediumSlateBlue ColorValue ("#7b68ee" ) RGBA ( 123, 104, 238, 1


ColorValue )
("mediumslateblue" )

Color.MediumSpringGree ColorValue ("#00fa9a" ) RGBA ( 0, 250, 154, 1 )


n ColorValue
("MediumSpringGreen" )

Color.MediumTurquoise ColorValue ("#48d1cc" ) RGBA ( 72, 209, 204, 1 )


ColorValue
("MEDIUMTURQUOISE" )

Color.MediumVioletRed ColorValue ("#c71585" ) RGBA ( 199, 21, 133, 1 )


ColorValue
("MediumVioletRed" )

Color.MidnightBlue ColorValue ("#191970" ) RGBA ( 25, 25, 112, 1 )


ColorValue
("Midnightblue" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.MintCream ColorValue ("#f5fffa" ) RGBA ( 245, 255, 250, 1


ColorValue ("MintCream" )
)

Color.MistyRose ColorValue ("#ffe4e1" ) RGBA ( 255, 228, 225, 1


ColorValue )
("ROSADIFUMINADO" )

Color.Moccasin ColorValue ("#ffe4b5" ) RGBA ( 255, 228, 181, 1


ColorValue ("Moccasin" ) )

Color.NavajoWhite ColorValue ("#ffdead" ) RGBA ( 255, 222, 173, 1


ColorValue ("navajowhite" )
)

Color.Navy ColorValue ("#000080" ) RGBA ( 0, 0, 128, 1 )


ColorValue ("Navy" )

Color.OldLace ColorValue ("#fdf5e6" ) RGBA ( 253, 245, 230, 1


ColorValue ("OLDLACE" ) )

Color.Olive ColorValue ("#808000" ) RGBA ( 128, 128, 0, 1 )


ColorValue ("oliva" )

Color.OliveDrab ColorValue ("#6b8e23" ) RGBA ( 107, 142, 35, 1 )


ColorValue ("Olivedrab" )

Color.Orange ColorValue ("#ffa500" ) RGBA ( 255, 165, 0, 1 )


ColorValue ("naranja" )

Color.OrangeRed ColorValue ("#ff4500" ) RGBA ( 255, 69, 0, 1 )


ColorValue
("ORANGERED" )

Color.Orchid ColorValue ("#da70d6" ) RGBA ( 218, 112, 214, 1


ColorValue ("orquídea" ) )

Color.PaleGoldenRod ColorValue ("#eee8aa" ) RGBA ( 238, 232, 170, 1


ColorValue )
("palegoldenrod" )

Color.PaleGreen ColorValue ("#98fb98" ) RGBA ( 152, 251, 152, 1


ColorValue )
("Verdepálido." )

Color.PaleTurquoise ColorValue ("#afeeee" ) RGBA ( 175, 238, 238, 1


ColorValue )
("PALETURQUOISE" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.PaleVioletRed ColorValue ("#db7093" ) RGBA ( 219, 112, 147, 1


ColorValue )
("PaleVioletRed" )

Color.PapayaWhip ColorValue ("#ffefd5" ) RGBA ( 255, 239, 213, 1


ColorValue ("papayawhip" )
)

Color.PeachPuff ColorValue ("#ffdab9" ) RGBA ( 255, 218, 185, 1


ColorValue ("PeachPuff" ) )

Color.Peru ColorValue ("#cd853f" ) RGBA ( 205, 133, 63, 1 )


ColorValue ("Perú" )

Color.Pink ColorValue ("#ffc0cb" ) RGBA ( 255, 192, 203, 1


ColorValue ("Rosa" ) )

Color.Plum ColorValue ("#dda0dd" ) RGBA ( 221, 160, 221, 1


ColorValue ("ciruela" ) )

Color.PowderBlue ColorValue ("#b0e0e6" ) RGBA ( 176, 224, 230, 1


ColorValue ("PowderBlue" )
)

Color.Purple ColorValue ("#800080" ) RGBA ( 128, 0, 128, 1 )


ColorValue ("púrpura" )

Color.Red ColorValue ("#ff0000" ) RGBA ( 255, 0, 0, 1 )


ColorValue ("rojo" )

Color.RosyBrown ColorValue ("#bc8f8f" ) RGBA ( 188, 143, 143, 1


ColorValue ("Rosybrown" )
)

Color.RoyalBlue ColorValue ("#4169e1" ) RGBA ( 65, 105, 225, 1 )


ColorValue ("RoyalBlue" )

Color.SaddleBrown ColorValue ("#8b4513" ) RGBA ( 139, 69, 19, 1 )


ColorValue
("SADDLEBROWN" )

Color.Salmon ColorValue ("#fa8072" ) RGBA ( 250, 128, 114, 1


ColorValue ("salmón" ) )

Color.SandyBrown ColorValue ("#f4a460" ) RGBA ( 244, 164, 96, 1 )


ColorValue ("sandybrown"
)
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.SeaGreen ColorValue ("#2e8b57" ) RGBA ( 46, 139, 87, 1 )


ColorValue ("SeaGreen" )

Color.SeaShell ColorValue ("#fff5ee" ) RGBA ( 255, 245, 238, 1


ColorValue ("SEASHELL" ) )

Color.Sienna ColorValue ("#a0522d" ) RGBA ( 160, 82, 45, 1 )


ColorValue ("Sienna" )

Color.Silver ColorValue ("#c0c0c0" ) RGBA ( 192, 192, 192, 1


ColorValue ("Silver" ) )

Color.SkyBlue ColorValue ("#87ceeb" ) RGBA ( 135, 206, 235, 1


ColorValue ("SkyBlue" ) )

Color.SlateBlue ColorValue ("#6a5acd" ) RGBA ( 106, 90, 205, 1 )


ColorValue ("SLATEBLUE"
)

Color.SlateGray ColorValue ("#708090" ) RGBA ( 112, 128, 144, 1


ColorValue ("gris pizarra" )
)

Color.SlateGrey ColorValue ("#708090" ) RGBA ( 112, 128, 144, 1


ColorValue ("slategrey" ) )

Color.Snow ColorValue ("#fffafa" ) RGBA ( 255, 250, 250, 1


ColorValue ("nieve" ) )

Color.SpringGreen ColorValue ("#00ff7f" ) RGBA ( 0, 255, 127, 1 )


ColorValue
("SPRINGGREEN" )

Color.SteelBlue ColorValue ("#4682b4" ) RGBA ( 70, 130, 180, 1 )


ColorValue ("SteelBlue" )

Color.Tan ColorValue ("#d2b48c" ) RGBA ( 210, 180, 140, 1


ColorValue ("tan" ) )

Color.Teal ColorValue ("#008080" ) RGBA ( 0, 128, 128, 1 )


ColorValue ("verde
azulado" )

Color.Thistle ColorValue ("#d8bfd8" ) RGBA ( 216, 191, 216, 1


ColorValue ("THISTLE" ) )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.Tomato ColorValue ("#ff6347" ) RGBA ( 255, 99, 71, 1 )


ColorValue ("tomate" )

Color. Transparent ColorValue ("#00000000" RGBA ( 0, 0, 0, 0 )


)
ColorValue
("transparente" )

Color.Turquoise ColorValue ("#40e0d0" ) RGBA ( 64, 224, 208, 1 )


ColorValue ("turquesa" )

Color.Violet ColorValue ("#ee82ee" ) RGBA ( 238, 130, 238, 1


ColorValue ("violeta" ) )

Color.Wheat ColorValue ("#f5deb3" ) RGBA ( 245, 222, 179, 1


ColorValue ("trigo" ) )

Color.White ColorValue ("#ffffff" ) RGBA ( 255, 255, 255, 1


ColorValue ("blanco" ) )

Color.WhiteSmoke ColorValue ("#f5f5f5" ) RGBA ( 245, 245, 245, 1


ColorValue )
("WhiteSmoke" )

Color.Yellow ColorValue ("#ffff00" ) RGBA ( 255, 255, 0, 1 )


ColorValue ("amarillo" )

Color.YellowGreen ColorValue ("#9acd32" ) RGBA ( 154, 205, 50, 1 )


ColorValue
("YELLOWGREEN" )
Enumeración de color y las funciones ColorFade,
ColorValue y RGBA en PowerApps
05/11/2019 • 18 minutes to read

Usar valores de color integrados, definir colores personalizados y usar el canal alfa.

Descripción
Mediante el uso de la enumeración de color , puede tener acceso fácilmente a los colores definidos por hojas de
estilo CSS de HTML (CSS ). Por ejemplo, color. red devuelve rojo puro. Puede encontrar una lista de estos colores
al final de este tema.
La función ColorValue devuelve un color basado en una cadena de color de una CSS. La cadena puede adoptar
cualquiera de estas formas:
El nombre de color de CSS: "RoxyBrown" y "OliveDrab" son ejemplos. Estos nombres no incluyen
espacios. La lista de colores admitidos aparece más adelante en este tema.
valor hexadecimal de 6 dígitos: Como ejemplo "#ffd700" es igual que "Gold". La cadena tiene el formato
"#RRGGBB", donde RR es la parte roja en dos dígitos hexadecimales, GG es el verde y BB es el azul.
valor hexadecimal de 8 dígitos: Por ejemplo, "#ff7f5080" es igual que "Coral" con un canal alfa 50%. La
cadena tiene el formato "#RRGGBBAA", donde RR, GGy BB son idénticos al formato de 6 dígitos. El canal alfa se
representa mediante AA: 00 representa completamente transparente y FF representa totalmente opaco.
La función RGBA devuelve un color basado en los componentes rojo, verde y azul. La función también incluye un
canal alfa para mezclar colores de controles que están superpuestos entre sí. Un canal alfa varía desde 0 o 0% (que
es completamente transparente e invisible) hasta 1 o 100% (que es completamente opaco y se bloquea
completamente cualquier capa detrás de un control).
La función ColorFade devuelve una versión más clara o más oscura de un color. La cantidad de desvanecimiento
varía entre-1 (que oscurece completamente un color hasta el negro) hasta 0 (que no afecta al color) a 1 (que
ilumina completamente un color a blanco).

Canal alfa
En una aplicación de lienzo, puede capas de controles de un lado a otro y especificar la transparencia de un control
para todos los controles que están detrás. Como resultado, los colores se fusionarán a través de las capas. Por
ejemplo, en este diagrama se muestra cómo se mezclan los tres colores primarios con una configuración alfa de
50%:
También puede mezclar imágenes en formatos de archivo que admiten canales alfa. Por ejemplo, no puede mezclar
archivos. JPEG, pero puede mezclar archivos. png. En el gráfico siguiente se muestran los mismos colores rojo,
verde y azul del ejemplo anterior, pero el color rojo aparece como una línea ondulada (en lugar de un círculo) en un
archivo. png con un canal alfa 50%:

Si especifica un valor de enumeración de color o crea una fórmula de ColorValue con un nombre de color o un
valor hexadecimal de 6 dígitos, el valor de alfa es 100%, que es completamente opaco.

Sintaxis
Color.ColorName
ColorName: requerido. El nombre de un color de hoja de estilo CSS. La lista de posibles valores de enumeración
aparece al final de este tema.
ColorValue( CSSColor )
CSSColor: requerido. La definición de un color de hoja de estilo CSS. Puede especificar un nombre, como
OliveDrab, o un valor hexadecimal, como #6b8e23 o #7fffd420. Los valores hexadecimales pueden adoptar la
forma de #RRGGBB o #RRGGBBAA.
RGBA ( Red; Green; Blue; Alpha )
Red, Green, Blue: requerido. Valores de componente de color, que van desde 0 (sin saturación) hasta 255
(saturación completa).
Alpha: requerido. Componente alfa, que va de 0 (totalmente transparente) a 1 (totalmente opaco). También
puede usar un porcentaje, de 0 % a 100 %.
ColorFade( Color; FadeAmount )
Color: requerido. Un valor de color como Color.Red o el resultado de ColorValue o RGBA.
FadeAmount: requerido. Número entre -1 y 1. -1 oscurece completamente un color a negro, 0 no afecta al color
y 1 ilumina completamente un color a blanco. También puede usar un porcentaje entre-100% y 100%.

Colores integrados
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.AliceBlue ColorValue ("#f0f8ff" ) RGBA ( 240, 248, 255, 1


ColorValue ("AliceBlue" ) )

Color.AntiqueWhite ColorValue ("#faebd7" ) RGBA ( 250, 235, 215, 1


ColorValue )
("AntiqueWhite" )

Color.Aqua ColorValue ("#00ffff" ) RGBA ( 0, 255, 255, 1 )


ColorValue ("aguamarina"
)

Color.Aquamarine ColorValue ("#7fffd4" ) RGBA ( 127, 255, 212, 1


ColorValue ("color )
aguamarina" )

Color.Azure ColorValue ("#f0ffff" ) RGBA ( 240, 255, 255, 1


ColorValue ("Azure" ) )

Color.Beige ColorValue ("#f5f5dc" ) RGBA ( 245, 245, 220, 1


ColorValue ("Beige" ) )

Color.Bisque ColorValue ("#ffe4c4" ) RGBA ( 255, 228, 196, 1


ColorValue ("BISQUE" ) )

Color.Black ColorValue ("#000000" ) RGBA ( 0, 0, 0, 1 )


ColorValue ("Black" )

Color.BlanchedAlmond ColorValue ("#ffebcd" ) RGBA ( 255, 235, 205, 1


ColorValue )
("BlanchedAlmond" )

Color.Blue ColorValue ("#0000ff" ) RGBA ( 0, 0, 255, 1 )


ColorValue ("Blue" )

Color.BlueViolet ColorValue ("#8a2be2" ) RGBA ( 138, 43, 226, 1 )


ColorValue ("BLUEVIOLET"
)

Color.Brown ColorValue ("#a52a2a" ) RGBA ( 165, 42, 42, 1 )


ColorValue ("marrón" )

Color.Burlywood ColorValue ("#deb887" ) RGBA ( 222, 184, 135, 1


ColorValue ("burlywood" )
)
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.CadetBlue ColorValue ("#5f9ea0" ) RGBA ( 95, 158, 160, 1 )


ColorValue ("CadetBlue" )

Color.Chartreuse ColorValue ("#7fff00" ) RGBA ( 127, 255, 0, 1 )


ColorValue
("CHARTREUSE" )

Color.Chocolate ColorValue ("#d2691e" ) RGBA ( 210, 105, 30, 1 )


ColorValue ("chocolate" )

Color.Coral ColorValue ("#ff7f50" ) RGBA ( 255, 127, 80, 1 )


ColorValue ("Coral" )

Color.CornflowerBlue ColorValue ("#6495ed" ) RGBA ( 100, 149, 237, 1


ColorValue )
("CornflowerBlue" )

Color.Cornsilk ColorValue ("#fff8dc" ) RGBA ( 255, 248, 220, 1


ColorValue ("CORNSILK" ) )

Color.Crimson ColorValue ("#dc143c" ) RGBA ( 220, 20, 60, 1 )


ColorValue ("Crimson" )

Color.Cyan ColorValue ("#00ffff" ) RGBA ( 0, 255, 255, 1 )


ColorValue ("aguamarina"
)

Color.DarkBlue ColorValue ("#00008b" ) RGBA ( 0, 0, 139, 1 )


ColorValue ("DarkBlue" )

Color.DarkCyan ColorValue ("#008b8b" ) RGBA ( 0, 139, 139, 1 )


ColorValue ("DARKCYAN"
)

Color.DarkGoldenRod ColorValue ("#b8860b" ) RGBA ( 184, 134, 11, 1 )


ColorValue
("DarkGoldenRod" )

Color.DarkGray ColorValue ("#a9a9a9" ) RGBA ( 169, 169, 169, 1


ColorValue ("grisoscuro" ) )

Color.DarkGreen ColorValue ("#006400" ) RGBA ( 0, 100, 0, 1 )


ColorValue ("DarkGreen"
)

Color.DarkGrey ColorValue ("#a9a9a9" ) RGBA ( 169, 169, 169, 1


ColorValue ("DARKGREY" )
)
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.DarkKhaki ColorValue ("#bdb76b" ) RGBA ( 189, 183, 107, 1


ColorValue ("DarkKhaki" ) )

Color.DarkMagenta ColorValue ("#8b008b" ) RGBA ( 139, 0, 139, 1 )


ColorValue
("darkmagenta" )

Color.DarkOliveGreen ColorValue ("#556b2f" ) RGBA ( 85, 107, 47, 1 )


ColorValue
("DarkOliveGreen" )

Color.DarkOrange ColorValue ("#ff8c00" ) RGBA ( 255, 140, 0, 1 )


ColorValue
("DARKORANGE" )

Color.DarkOrchid ColorValue ("#9932cc" ) RGBA ( 153, 50, 204, 1 )


ColorValue ("DarkOrchid"
)

Color.DarkRed ColorValue ("#8b0000" ) RGBA ( 139, 0, 0, 1 )


ColorValue ("Darkred" )

Color.DarkSalmon ColorValue ("#e9967a" ) RGBA ( 233, 150, 122, 1


ColorValue ("DarkSalmon" )
)

Color.DarkSeaGreen ColorValue ("#8fbc8f" ) RGBA ( 143, 188, 143, 1


ColorValue )
("DARKSEAGREEN" )

Color.DarkSlateBlue ColorValue ("#483d8b" ) RGBA ( 72, 61, 139, 1 )


ColorValue
("DarkSlateBlue" )

Color.DarkSlateGray ColorValue ("#2f4f4f" ) RGBA ( 47, 79, 79, 1 )


ColorValue
("DarkSlateGray" )

Color.DarkSlateGrey ColorValue ("#2f4f4f" ) RGBA ( 47, 79, 79, 1 )


ColorValue
("DarkSlateGrey" )

Color.DarkTurquoise ColorValue ("#00ced1" ) RGBA ( 0, 206, 209, 1 )


ColorValue
("DARKTURQUOISE" )

Color.DarkViolet ColorValue ("#9400d3" ) RGBA ( 148, 0, 211, 1 )


ColorValue ("DarkViolet"
)

Color.DeepPink ColorValue ("#ff1493" ) RGBA ( 255, 20, 147, 1 )


ColorValue ("deeppink" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.DeepSkyBlue ColorValue ("#00bfff" ) RGBA ( 0, 191, 255, 1 )


ColorValue
("DeepSkyBlue" )

Color.DimGray ColorValue ("#696969" ) RGBA ( 105, 105, 105, 1


ColorValue ("DIMGRAY" ) )

Color.DimGrey ColorValue ("#696969" ) RGBA ( 105, 105, 105, 1


ColorValue ("DimGrey" ) )

Color.DodgerBlue ColorValue ("#1e90ff" ) RGBA ( 30, 144, 255, 1 )


ColorValue ("dodgerblue"
)

Color.FireBrick ColorValue ("#b22222" ) RGBA ( 178, 34, 34, 1 )


ColorValue ("FireBrick" )

Color.FloralWhite ColorValue ("#fffaf0" ) RGBA ( 255, 250, 240, 1


ColorValue )
("FLORALWHITE" )

Color.ForestGreen ColorValue ("#228b22" ) RGBA ( 34, 139, 34, 1 )


ColorValue ("ForestGreen"
)

Color.Fuchsia ColorValue ("#ff00ff" ) RGBA ( 255, 0, 255, 1 )


ColorValue ("Fuchsia" )

Color.Gainsboro ColorValue ("#dcdcdc" ) RGBA ( 220, 220, 220, 1


ColorValue ("Gainsboro" ) )

Color.GhostWhite ColorValue ("#f8f8ff" ) RGBA ( 248, 248, 255, 1


ColorValue )
("GHOSTWHITE" )

Color.Gold ColorValue ("#ffd700" ) RGBA ( 255, 215, 0, 1 )


ColorValue ( "Gold")

Color.GoldenRod ColorValue ("#daa520" ) RGBA ( 218, 165, 32, 1 )


ColorValue ("ocre" )

Color.Gray ColorValue ("#808080" ) RGBA ( 128, 128, 128, 1


ColorValue ("gris" ) )

Color.Green ColorValue ("#008000" ) RGBA ( 0, 128, 0, 1 )


ColorValue ("verde" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.GreenYellow ColorValue ("#adff2f" ) RGBA ( 173, 255, 47, 1 )


ColorValue
("GreenYellow" )

Color.Grey ColorValue ("#808080" ) RGBA ( 128, 128, 128, 1


ColorValue ("gris" ) )

Color.Honeydew ColorValue ("#f0fff0" ) RGBA ( 240, 255, 240, 1


ColorValue ("Rocío" ) )

Color.HotPink ColorValue ("#ff69b4" ) RGBA ( 255, 105, 180, 1


ColorValue ("HOTPINK" ) )

Color.IndianRed ColorValue ("#cd5c5c" ) RGBA ( 205, 92, 92, 1 )


ColorValue ("IndianRed" )

Color.Indigo ColorValue ("#4b0082" ) RGBA ( 75, 0, 130, 1 )


ColorValue ("Indigo" )

Color.Ivory ColorValue ("#fffff0" ) RGBA ( 255, 255, 240, 1


ColorValue ("marfil" ) )

Color.Khaki ColorValue ("#f0e68c" ) RGBA ( 240, 230, 140, 1


ColorValue ("caqui" ) )

Color.Lavender ColorValue ("#e6e6fa" ) RGBA ( 230, 230, 250, 1


ColorValue ("lavanda" ) )

Color.LavenderBlush ColorValue ("#fff0f5" ) RGBA ( 255, 240, 245, 1


ColorValue )
("lavenderblush" )

Color.LawnGreen ColorValue ("#7cfc00" ) RGBA ( 124, 252, 0, 1 )


ColorValue ("LawnGreen"
)

Color.LemonChiffon ColorValue ("#fffacd" ) RGBA ( 255, 250, 205, 1


ColorValue )
("LEMONCHIFFON" )

Color.LightBlue ColorValue ("#add8e6" ) RGBA ( 173, 216, 230, 1


ColorValue ("LightBlue" ) )

Color.LightCoral ColorValue ("#f08080" ) RGBA ( 240, 128, 128, 1


ColorValue ("LightCoral" ) )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.LightCyan ColorValue ("#e0ffff" ) RGBA ( 224, 255, 255, 1


ColorValue ("Ciánclaro" ) )

Color.LightGoldenRodYell ColorValue ("#fafad2" ) RGBA ( 250, 250, 210, 1


ow ColorValue )
("lightgoldenrodyellow" )

Color.LightGray ColorValue ("#d3d3d3" ) RGBA ( 211, 211, 211, 1


ColorValue ("LightGray" ) )

Color.LightGreen ColorValue ("#90ee90" ) RGBA ( 144, 238, 144, 1


ColorValue ("lightgreen" ) )

Color.LightGrey ColorValue ("#d3d3d3" ) RGBA ( 211, 211, 211, 1


ColorValue ("LightGrey" ) )

Color.LightPink ColorValue ("#ffb6c1" ) RGBA ( 255, 182, 193, 1


ColorValue ("LIGHTPINK" )
)

Color.LightSalmon ColorValue ("#ffa07a" ) RGBA ( 255, 160, 122, 1


ColorValue ("LightSalmon" )
)

Color.LightSeaGreen ColorValue ("#20b2aa" ) RGBA ( 32, 178, 170, 1 )


ColorValue
("lightseagreen" )

Color.LightSkyBlue ColorValue ("#87cefa" ) RGBA ( 135, 206, 250, 1


ColorValue )
("LightSkyBlue" )

Color.LightSlateGray ColorValue ("#778899" ) RGBA ( 119, 136, 153, 1


ColorValue )
("LIGHTSLATEGRAY" )

Color.LightSlateGrey ColorValue ("#778899" ) RGBA ( 119, 136, 153, 1


ColorValue )
("LightSlateGrey" )

Color.LightSteelBlue ColorValue ("#b0c4de" ) RGBA ( 176, 196, 222, 1


ColorValue )
("lightsteelblue" )

Color.LightYellow ColorValue ("#ffffe0" ) RGBA ( 255, 255, 224, 1


ColorValue ("LightYellow" )
)

Color.Lime ColorValue ("#00ff00" ) RGBA ( 0, 255, 0, 1 )


ColorValue ("Lima" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.LimeGreen ColorValue ("#32cd32" ) RGBA ( 50, 205, 50, 1 )


ColorValue ("LimeGreen"
)

Color.Linen ColorValue ("#faf0e6" ) RGBA ( 250, 240, 230, 1


ColorValue ("ropa" ) )

Color.Magenta ColorValue ("#ff00ff" ) RGBA ( 255, 0, 255, 1 )


ColorValue ("magenta" )

Color.Maroon ColorValue ("#800000" ) RGBA ( 128, 0, 0, 1 )


ColorValue ("granate" )

Color.MediumAquamarine ColorValue ("#66cdaa" ) RGBA ( 102, 205, 170, 1


ColorValue )
("MediumAquamarine" )

Color.MediumBlue ColorValue ("#0000cd" ) RGBA ( 0, 0, 205, 1 )


ColorValue
("mediumblue" )

Color.MediumOrchid ColorValue ("#ba55d3" ) RGBA ( 186, 85, 211, 1 )


ColorValue
("MediumOrchid" )

Color.MediumPurple ColorValue ("#9370db" ) RGBA ( 147, 112, 219, 1


ColorValue )
("MEDIUMPURPLE" )

Color.MediumSeaGreen ColorValue ("#3cb371" ) RGBA ( 60, 179, 113, 1 )


ColorValue
("MediumSeaGreen" )

Color.MediumSlateBlue ColorValue ("#7b68ee" ) RGBA ( 123, 104, 238, 1


ColorValue )
("mediumslateblue" )

Color.MediumSpringGree ColorValue ("#00fa9a" ) RGBA ( 0, 250, 154, 1 )


n ColorValue
("MediumSpringGreen" )

Color.MediumTurquoise ColorValue ("#48d1cc" ) RGBA ( 72, 209, 204, 1 )


ColorValue
("MEDIUMTURQUOISE" )

Color.MediumVioletRed ColorValue ("#c71585" ) RGBA ( 199, 21, 133, 1 )


ColorValue
("MediumVioletRed" )

Color.MidnightBlue ColorValue ("#191970" ) RGBA ( 25, 25, 112, 1 )


ColorValue
("Midnightblue" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.MintCream ColorValue ("#f5fffa" ) RGBA ( 245, 255, 250, 1


ColorValue ("MintCream" )
)

Color.MistyRose ColorValue ("#ffe4e1" ) RGBA ( 255, 228, 225, 1


ColorValue )
("ROSADIFUMINADO" )

Color.Moccasin ColorValue ("#ffe4b5" ) RGBA ( 255, 228, 181, 1


ColorValue ("Moccasin" ) )

Color.NavajoWhite ColorValue ("#ffdead" ) RGBA ( 255, 222, 173, 1


ColorValue ("navajowhite" )
)

Color.Navy ColorValue ("#000080" ) RGBA ( 0, 0, 128, 1 )


ColorValue ("Navy" )

Color.OldLace ColorValue ("#fdf5e6" ) RGBA ( 253, 245, 230, 1


ColorValue ("OLDLACE" ) )

Color.Olive ColorValue ("#808000" ) RGBA ( 128, 128, 0, 1 )


ColorValue ("oliva" )

Color.OliveDrab ColorValue ("#6b8e23" ) RGBA ( 107, 142, 35, 1 )


ColorValue ("Olivedrab" )

Color.Orange ColorValue ("#ffa500" ) RGBA ( 255, 165, 0, 1 )


ColorValue ("naranja" )

Color.OrangeRed ColorValue ("#ff4500" ) RGBA ( 255, 69, 0, 1 )


ColorValue
("ORANGERED" )

Color.Orchid ColorValue ("#da70d6" ) RGBA ( 218, 112, 214, 1


ColorValue ("orquídea" ) )

Color.PaleGoldenRod ColorValue ("#eee8aa" ) RGBA ( 238, 232, 170, 1


ColorValue )
("palegoldenrod" )

Color.PaleGreen ColorValue ("#98fb98" ) RGBA ( 152, 251, 152, 1


ColorValue )
("Verdepálido." )

Color.PaleTurquoise ColorValue ("#afeeee" ) RGBA ( 175, 238, 238, 1


ColorValue )
("PALETURQUOISE" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.PaleVioletRed ColorValue ("#db7093" ) RGBA ( 219, 112, 147, 1


ColorValue )
("PaleVioletRed" )

Color.PapayaWhip ColorValue ("#ffefd5" ) RGBA ( 255, 239, 213, 1


ColorValue ("papayawhip" )
)

Color.PeachPuff ColorValue ("#ffdab9" ) RGBA ( 255, 218, 185, 1


ColorValue ("PeachPuff" ) )

Color.Peru ColorValue ("#cd853f" ) RGBA ( 205, 133, 63, 1 )


ColorValue ("Perú" )

Color.Pink ColorValue ("#ffc0cb" ) RGBA ( 255, 192, 203, 1


ColorValue ("Rosa" ) )

Color.Plum ColorValue ("#dda0dd" ) RGBA ( 221, 160, 221, 1


ColorValue ("ciruela" ) )

Color.PowderBlue ColorValue ("#b0e0e6" ) RGBA ( 176, 224, 230, 1


ColorValue ("PowderBlue" )
)

Color.Purple ColorValue ("#800080" ) RGBA ( 128, 0, 128, 1 )


ColorValue ("púrpura" )

Color.Red ColorValue ("#ff0000" ) RGBA ( 255, 0, 0, 1 )


ColorValue ("rojo" )

Color.RosyBrown ColorValue ("#bc8f8f" ) RGBA ( 188, 143, 143, 1


ColorValue ("Rosybrown" )
)

Color.RoyalBlue ColorValue ("#4169e1" ) RGBA ( 65, 105, 225, 1 )


ColorValue ("RoyalBlue" )

Color.SaddleBrown ColorValue ("#8b4513" ) RGBA ( 139, 69, 19, 1 )


ColorValue
("SADDLEBROWN" )

Color.Salmon ColorValue ("#fa8072" ) RGBA ( 250, 128, 114, 1


ColorValue ("salmón" ) )

Color.SandyBrown ColorValue ("#f4a460" ) RGBA ( 244, 164, 96, 1 )


ColorValue ("sandybrown"
)
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.SeaGreen ColorValue ("#2e8b57" ) RGBA ( 46, 139, 87, 1 )


ColorValue ("SeaGreen" )

Color.SeaShell ColorValue ("#fff5ee" ) RGBA ( 255, 245, 238, 1


ColorValue ("SEASHELL" ) )

Color.Sienna ColorValue ("#a0522d" ) RGBA ( 160, 82, 45, 1 )


ColorValue ("Sienna" )

Color.Silver ColorValue ("#c0c0c0" ) RGBA ( 192, 192, 192, 1


ColorValue ("Silver" ) )

Color.SkyBlue ColorValue ("#87ceeb" ) RGBA ( 135, 206, 235, 1


ColorValue ("SkyBlue" ) )

Color.SlateBlue ColorValue ("#6a5acd" ) RGBA ( 106, 90, 205, 1 )


ColorValue ("SLATEBLUE"
)

Color.SlateGray ColorValue ("#708090" ) RGBA ( 112, 128, 144, 1


ColorValue ("gris pizarra" )
)

Color.SlateGrey ColorValue ("#708090" ) RGBA ( 112, 128, 144, 1


ColorValue ("slategrey" ) )

Color.Snow ColorValue ("#fffafa" ) RGBA ( 255, 250, 250, 1


ColorValue ("nieve" ) )

Color.SpringGreen ColorValue ("#00ff7f" ) RGBA ( 0, 255, 127, 1 )


ColorValue
("SPRINGGREEN" )

Color.SteelBlue ColorValue ("#4682b4" ) RGBA ( 70, 130, 180, 1 )


ColorValue ("SteelBlue" )

Color.Tan ColorValue ("#d2b48c" ) RGBA ( 210, 180, 140, 1


ColorValue ("tan" ) )

Color.Teal ColorValue ("#008080" ) RGBA ( 0, 128, 128, 1 )


ColorValue ("verde
azulado" )

Color.Thistle ColorValue ("#d8bfd8" ) RGBA ( 216, 191, 216, 1


ColorValue ("THISTLE" ) )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.Tomato ColorValue ("#ff6347" ) RGBA ( 255, 99, 71, 1 )


ColorValue ("tomate" )

Color. Transparent ColorValue ("#00000000" RGBA ( 0, 0, 0, 0 )


)
ColorValue
("transparente" )

Color.Turquoise ColorValue ("#40e0d0" ) RGBA ( 64, 224, 208, 1 )


ColorValue ("turquesa" )

Color.Violet ColorValue ("#ee82ee" ) RGBA ( 238, 130, 238, 1


ColorValue ("violeta" ) )

Color.Wheat ColorValue ("#f5deb3" ) RGBA ( 245, 222, 179, 1


ColorValue ("trigo" ) )

Color.White ColorValue ("#ffffff" ) RGBA ( 255, 255, 255, 1


ColorValue ("blanco" ) )

Color.WhiteSmoke ColorValue ("#f5f5f5" ) RGBA ( 245, 245, 245, 1


ColorValue )
("WhiteSmoke" )

Color.Yellow ColorValue ("#ffff00" ) RGBA ( 255, 255, 0, 1 )


ColorValue ("amarillo" )

Color.YellowGreen ColorValue ("#9acd32" ) RGBA ( 154, 205, 50, 1 )


ColorValue
("YELLOWGREEN" )
Señales Acceleration, App, Compass, Connection y
Location en PowerApps
07/10/2019 • 9 minutes to read

Devuelve información sobre el entorno de la aplicación, como dónde se encuentra el usuario en el mundo y la
pantalla que se muestra.

Descripción y sintaxis
Las señales son valores que pueden cambiar en cualquier momento, independientemente de cómo el usuario
pueda interactuar con la aplicación. Las fórmulas que se basan en señales se recalculan automáticamente a medida
que estos valores cambian.
Normalmente, las señales devuelven un registro de información. Puede usar y almacenar esta información como
un registro, o puede extraer propiedades individuales mediante el operador .

NOTE
Las funciones Acceleration y Compass devuelven valores precisos en un reproductor nativo, como en iOS o Android, pero
esas funciones devuelven valores cero a medida que crea o modifica una aplicación en el explorador.

Acceleration
La señal Acceleration devuelve la aceleración del dispositivo en tres dimensiones en relación con la pantalla del
dispositivo. La aceleración se mide en unidades g de 9,81 m/s2 o 32,2 ft/s2 (la aceleración que imparte la Tierra en
los objetos en su superficie debida a la gravedad).

PROPIEDAD DESCRIPCIÓN

Acceleration.X Derecha e izquierda. El valor de la derecha es un número


positivo.

Acceleration.Y Hacia delante y atrás. El valor hacia delante es un número


positivo.

Acceleration.Z Arriba y abajo. El valor de arriba es un número positivo.

App
Entre otras propiedades, el objeto de aplicación incluye una señal que indica la pantalla que se muestra.

PROPIEDAD DESCRIPCIÓN

App.ActiveScreen Pantalla que se muestra. Devuelve un objeto de pantalla, que


puede usar para hacer referencia a las propiedades de la
pantalla o comparar con otra pantalla para determinar la
pantalla que se muestra. Puede usar la función back o
Navigate para cambiar la pantalla que se muestra.

Más información: Documentación del objeto de aplicación .


Compass
La señal Compass devuelve el encabezado de brújula de la parte superior de la pantalla. El encabezado se basa en
el norte magnético.

PROPIEDAD DESCRIPCIÓN

Compass.Heading Encabezado en grados. Devuelve que un número de 0 a 360, y


0 es el norte.

Conexión
La señal Connection devuelve información acerca de la conexión de red. Cuando está en una conexión medida,
puede que desee limitar la cantidad de datos que envíe o reciba a través de la red.

PROPIEDAD DESCRIPCIÓN

Connection.Connected Devuelve un valor booleano true o false que indica si el


dispositivo está conectado a una red.

Connection.Metered Devuelve un valor booleano true o false que indica si la se


mide la conexión.

Location
La señal Location devuelve la ubicación del dispositivo según el sistema GPS (Global Positioning System) y otra
información de dispositivo, como las comunicaciones de la torre de telefonía móvil y la dirección IP.
Cuando un usuario tiene acceso a la información de ubicación por primera vez, el dispositivo puede solicitar que el
usuario permita el acceso a esta información.
A medida que cambia la ubicación, las dependencias de la ubicación se recalcularán continuamente, lo que
consumirá corriente de la batería del dispositivo. Para conservar la vida útil de la batería, puede usar las funciones
Enable y Disable para activar y desactivar las actualizaciones de la ubicación. La ubicación se desactiva
automáticamente si la pantalla mostrada no depende de la información de la ubicación.

PROPIEDAD DESCRIPCIÓN

Location.Altitude Devuelve un número que indica la altitud, medida en metros,


por encima del nivel del mar.

Location.Latitude Devuelve un número, de -90 y 90, que indica la latitud, que se


mide en grados desde el Ecuador. Un número positivo indica
una ubicación que sea al norte del ecuador.

Location.Longitude Devuelve un número, de 0 y 180, que indica la longitud, que


se mide en grados oeste desde Greenwich, Inglaterra.

Ejemplos
En un campo de béisbol, un lanzador lanza un teléfono desde el montículo del jarra a un captador en la placa de
inicio. El teléfono se encuentra situado horizontalmente con respecto a la tierra, la parte superior de la pantalla está
orientada al lanzador, y el lanzador no hace ningún giro. En esta ubicación, el teléfono tiene una cobertura medida,
pero no tiene Wi-Fi. Se muestra la pantalla PlayBall.

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

Location.Latitude Devuelve la latitud de la ubicación 47.591


actual. El campo se encuentra en las
coordenadas de mapa 47,591 N, La latitud cambiará continuamente a
122,333 W. medida que la pelota se mueva entre el
lanzador y el receptor.

Location.Longitude Devuelve la longitud de la ubicación 122.333


actual.
La longitud cambiará continuamente a
medida que la pelota se mueva entre el
lanzador y el receptor.

Location Devuelve la latitud y longitud de la { Latitud: 47.591, Longitud: 122.333 }


ubicación actual, como un registro.

Compass.Heading Devuelve el encabezado de brújula de la 230.25


parte superior de la pantalla. En este
campo, la placa de inicio es
aproximadamente suroeste del
montículo del jarra.

Acceleration.X Devuelve la aceleración del dispositivo 0


de lado a lado. El lanzador está lanzando
el teléfono en línea recta con respecto a
la parte superior de la pantalla, por lo
que el dispositivo no cuenta con una
aceleración de lado a lado.

Acceleration.Y Devuelve la aceleración del dispositivo 8,2, cuando el lanzador lanza el


de la parte delantera a la trasera. El dispositivo.
lanzador inicialmente ofrece al
dispositivo una gran aceleración al 0, cuando el dispositivo está en el aire.
lanzar el dispositivo, que pasa de 0 a
144 km por hora (40 metros por -8,2, cuando el receptor atrapa el
segundo) en medio segundo. Después dispositivo.
de que el dispositivo esté en el aire, sin
tener en cuenta la fricción del aire, no se
acelera más. El dispositivo deja de
acelerarse cuando el receptor lo atrapa,
hasta que para.

Acceleration.Z Devuelve la aceleración del dispositivo 0, antes de que el lanzador lace el


de arriba a abajo. Mientras está en el dispositivo.
aire, el dispositivo experimenta los
efectos de la gravedad. 1, cuando el dispositivo está en el aire.

0, cuando el receptor atrapa el


dispositivo.

Acceleration Devuelve la aceleración como registro. X1 0, Y: 264, Z: 0} cuando el lanzador


lanza el dispositivo.

Connection.Connected Devuelve un valor booleano que indica true


si el dispositivo está conectado a una
red.
FÓRMULA DESCRIPCIÓN RESULTADO

Connection.Metered Devuelve un valor booleano que indica true


si la se mide la conexión.

App.ActiveScreen = PlayBall Devuelve un valor booleano que indica true


si se muestra PlayBall.

App.ActiveScreen.Fill Devuelve el color de fondo de la Color.Green


pantalla mostrada.
Funciones Concat y Concatenate de PowerApps
05/11/2019 • 8 minutes to read

Concatena cadenas de texto individuales y cadenas en tablas.

Descripción
La función Concatenate concatena una combinación de cadenas individuales y una tabla de cadenas con una sola
columna. Cuando se usa esta función con cadenas individuales, es equivalente a usar el operador & .
La función Concat concatena el resultado de una fórmula que se aplica en todos los registros de una tabla, lo que
genera una sola cadena. Use esta función para resumir las cadenas de una tabla, tal como hace la función Sum para
los números.
Los campos de registro que se están procesando actualmente estarán disponibles en la formula. Solo tiene que
hacer referencia a los campos por su nombre, como con cualquier otro valor. También puede hacer referencia a
propiedades de control y a otros valores desde toda la aplicación. Para obtener más detalles, vea los ejemplos
siguientes y trabajar con el ámbito de registros.
Use la función Split o MatchAll para dividir una cadena en una tabla de subcadenas.

Sintaxis
Concat( Table; Formula )
Table: requerido. La tabla sobre la cual se opera.
Formula: requerido. Fórmula para aplicar en todos los registros de la tabla.
Concatenate( String1 [; String2; ...] )
String (s) : requerido. Combinación de cadenas individuales o una tabla de cadenas de una columna.

Ejemplos
En los ejemplos de esta sección se usan estas variables globales:
FirstName = "Julia"
LastName = "DOE"

Products =
Para crear estas variables globales en una aplicación, inserte un control de botón y establezca su propiedad
alseleccionar en esta fórmula:
Set( FirstName; "Jane" );; Set( LastName; "Doe" );;
Set( Products;
Table(
{ Name: "Violin"; Type: "String" };
{ Name: "Cello"; Type: "String" };
{ Name: "Trumpet"; Type: "Wind" }
)
)

Seleccione el botón (haciendo clic en él mientras mantiene presionada la tecla Alt).


Función Concatenate y el operador &
En estos ejemplos, establezca la propiedad texto de un control etiqueta en una fórmula de la primera columna de
la tabla siguiente.

FÓRMULA DESCRIPCIÓN RESULTADO

Concatenate Concatena el valor de LastName, la "Doe, Jane"


( LastName, ", ", FirstName ) cadena "," (una coma seguida de un
espacio) y el valor en FirstName.

LastName & ", " & FirstName Igual que el ejemplo anterior, excepto "Doe, Jane"
mediante el operador & en lugar de la
función.

Concatenate Concatena el valor de FirstName, la "Jane DOE"


( FirstName, " " LastName ) cadena "" (un solo espacio) y el valor de
LastName.

FirstName & " " & LastName Igual que en el ejemplo anterior, con el "Jane DOE"
operador & en lugar de la función.

Concatenar con una tabla de una sola columna


En este ejemplo, agregue un control Galería vertical en blanco, establezca la propiedad elementos en la fórmula
de la siguiente tabla y, a continuación, agregue una etiqueta en la plantilla de la galería.

FÓRMULA DESCRIPCIÓN RESULTADO

Concatenate ("Name: ", Para cada registro de la tabla Products ,


Products.Name, ", Type: ", concatena la cadena "Name:" , el
Products. Type) nombre del producto, la cadena ",
Type:" y el tipo del producto.

Concat (función)
En estos ejemplos, establezca la propiedad texto de una etiqueta en una fórmula de la primera columna de la tabla
siguiente.

FÓRMULA DESCRIPCIÓN RESULTADO

Concat (productos, nombre & ",") Evalúa el nombre de la expresión & "," "Violin, Cello, Trumpet, "
para cada registro de productos y
concatena los resultados en una sola
cadena de texto.
FÓRMULA DESCRIPCIÓN RESULTADO

Concat (filtrar ( productos, tipo Evalúa el nombre de la fórmula & "," "Violin, Cello, "
de = "cadena" ), nombre & ",") para cada registro de productos que
satisface el tipo de filtro = "String" y
concatena los resultados en una sola
cadena de texto.

Recortar el final
Los dos últimos ejemplos incluyen un "," extra al final del resultado. La función anexa una coma y un espacio al
valor de nombre de cada registro de la tabla, incluido el último registro.
En algunos casos, estos caracteres adicionales no importan. Por ejemplo, un separador de espacio único no aparece
si se muestra el resultado en una etiqueta. Si desea quitar estos caracteres adicionales, utilice la función left o
Match .
En estos ejemplos, establezca la propiedad texto de una etiqueta en una fórmula de la primera columna de la tabla
siguiente.

FÓRMULA DESCRIPCIÓN RESULTADO

Left (CONCAT Devuelve el resultado de concat , pero "Violin, Cello, Trumpet"


( Products, Name & ", " ), Len quita los dos últimos caracteres, que
( concat ( Products, Name & " forman el separador extraño.
, " ) ) - 2)

*Match (CONCAT Devuelve los caracteres de concat "Violin, Cello, Trumpet"


( Products, Name & ", " ), "^ (?<Trim>. desde el principio de la cadena de texto
), $ "). Trim (^) al final ($), pero no incluye la coma y
el espacio no deseados al final.

Split y MatchAll
Si usó concat con un separador, puede invertir la operación combinando las funciones Split y MatchAll .
En estos ejemplos, agregue una galería vertical en blanco, establezca la propiedad elementos en una fórmula de la
tabla siguiente y, a continuación, agregue una etiqueta a la plantilla de la galería.

FÓRMULA DESCRIPCIÓN RESULTADO

Split (CONCAT Divide la cadena de texto con el


( productos, nombre & ", " ), ",") separador "," . La cadena finaliza con
una coma y un espacio, por lo que la
última fila del resultado es una cadena
vacía.

MatchAll (CONCAT Divide la cadena de texto basándose en


( Products; Name & ", " ); "[^ \s,] caracteres que no son espacios ni
+"). FullMatch comas. Esta fórmula quita la coma y el
espacio adicionales al final de la cadena.
Funciones Concat y Concatenate de PowerApps
05/11/2019 • 8 minutes to read

Concatena cadenas de texto individuales y cadenas en tablas.

Descripción
La función Concatenate concatena una combinación de cadenas individuales y una tabla de cadenas con una
sola columna. Cuando se usa esta función con cadenas individuales, es equivalente a usar el operador & .
La función Concat concatena el resultado de una fórmula que se aplica en todos los registros de una tabla, lo
que genera una sola cadena. Use esta función para resumir las cadenas de una tabla, tal como hace la función
Sum para los números.
Los campos de registro que se están procesando actualmente estarán disponibles en la formula. Solo tiene que
hacer referencia a los campos por su nombre, como con cualquier otro valor. También puede hacer referencia a
propiedades de control y a otros valores desde toda la aplicación. Para obtener más detalles, vea los ejemplos
siguientes y trabajar con el ámbito de registros.
Use la función Split o MatchAll para dividir una cadena en una tabla de subcadenas.

Sintaxis
Concat( Table; Formula )
Table: requerido. La tabla sobre la cual se opera.
Formula: requerido. Fórmula para aplicar en todos los registros de la tabla.
Concatenate( String1 [; String2; ...] )
String (s) : requerido. Combinación de cadenas individuales o una tabla de cadenas de una columna.

Ejemplos
En los ejemplos de esta sección se usan estas variables globales:
FirstName = "Julia"
LastName = "DOE"

Products =
Para crear estas variables globales en una aplicación, inserte un control de botón y establezca su propiedad
alseleccionar en esta fórmula:
Set( FirstName; "Jane" );; Set( LastName; "Doe" );;
Set( Products;
Table(
{ Name: "Violin"; Type: "String" };
{ Name: "Cello"; Type: "String" };
{ Name: "Trumpet"; Type: "Wind" }
)
)

Seleccione el botón (haciendo clic en él mientras mantiene presionada la tecla Alt).


Función Concatenate y el operador &
En estos ejemplos, establezca la propiedad texto de un control etiqueta en una fórmula de la primera columna
de la tabla siguiente.

FÓRMULA DESCRIPCIÓN RESULTADO

Concatenate Concatena el valor de LastName, la "Doe, Jane"


( LastName, ", ", FirstName ) cadena "," (una coma seguida de un
espacio) y el valor en FirstName.

LastName & ", " & FirstName Igual que el ejemplo anterior, excepto "Doe, Jane"
mediante el operador & en lugar de la
función.

Concatenate Concatena el valor de FirstName, la "Jane DOE"


( FirstName, " " LastName ) cadena "" (un solo espacio) y el valor
de LastName.

FirstName & " " & LastName Igual que en el ejemplo anterior, con el "Jane DOE"
operador & en lugar de la función.

Concatenar con una tabla de una sola columna


En este ejemplo, agregue un control Galería vertical en blanco, establezca la propiedad elementos en la
fórmula de la siguiente tabla y, a continuación, agregue una etiqueta en la plantilla de la galería.

FÓRMULA DESCRIPCIÓN RESULTADO

Concatenate ("Name: ", Para cada registro de la tabla


Products.Name, ", Type: ", Products , concatena la cadena
Products. Type) "Name:" , el nombre del producto, la
cadena ", Type:" y el tipo del
producto.

Concat (función)
En estos ejemplos, establezca la propiedad texto de una etiqueta en una fórmula de la primera columna de la
tabla siguiente.

FÓRMULA DESCRIPCIÓN RESULTADO

Concat (productos, nombre & ",") Evalúa el nombre de la expresión & "," "Violin, Cello, Trumpet, "
para cada registro de productos y
concatena los resultados en una sola
cadena de texto.
FÓRMULA DESCRIPCIÓN RESULTADO

Concat (filtrar ( productos, tipo Evalúa el nombre de la fórmula & "," "Violin, Cello, "
de = "cadena" ), nombre & ",") para cada registro de productos que
satisface el tipo de filtro = "String" y
concatena los resultados en una sola
cadena de texto.

Recortar el final
Los dos últimos ejemplos incluyen un "," extra al final del resultado. La función anexa una coma y un espacio al
valor de nombre de cada registro de la tabla, incluido el último registro.
En algunos casos, estos caracteres adicionales no importan. Por ejemplo, un separador de espacio único no
aparece si se muestra el resultado en una etiqueta. Si desea quitar estos caracteres adicionales, utilice la función
left o Match .
En estos ejemplos, establezca la propiedad texto de una etiqueta en una fórmula de la primera columna de la
tabla siguiente.

FÓRMULA DESCRIPCIÓN RESULTADO

Left (CONCAT Devuelve el resultado de concat , pero "Violin, Cello, Trumpet"


( Products, Name & ", " ), Len quita los dos últimos caracteres, que
( concat ( Products, Name & " forman el separador extraño.
, " ) ) - 2)

*Match (CONCAT Devuelve los caracteres de concat "Violin, Cello, Trumpet"


( Products, Name & ", " ), "^ (?<Trim>. desde el principio de la cadena de
), $ "). Trim texto (^) al final ($), pero no incluye la
coma y el espacio no deseados al final.

Split y MatchAll
Si usó concat con un separador, puede invertir la operación combinando las funciones Split y MatchAll .
En estos ejemplos, agregue una galería vertical en blanco, establezca la propiedad elementos en una fórmula
de la tabla siguiente y, a continuación, agregue una etiqueta a la plantilla de la galería.

FÓRMULA DESCRIPCIÓN RESULTADO

Split (CONCAT Divide la cadena de texto con el


( productos, nombre & ", " ), ",") separador "," . La cadena finaliza con
una coma y un espacio, por lo que la
última fila del resultado es una cadena
vacía.

MatchAll (CONCAT Divide la cadena de texto basándose


( Products; Name & ", " ); "[^ \s,] en caracteres que no son espacios ni
+"). FullMatch comas. Esta fórmula quita la coma y el
espacio adicionales al final de la
cadena.
Función Concurrent de PowerApps
08/10/2019 • 10 minutes to read

Evalúa varias fórmulas simultáneamente entre sí.

Descripción
La función Concurrent evalúa varias fórmulas al mismo tiempo. Normalmente, se evalúan varias fórmulas
mediante su encadenamiento junto con el operador ; , que evalúa cada secuencialmente en orden. Cuando la
aplicación realiza operaciones de forma simultánea, los usuarios esperan menos para el mismo resultado.
En la propiedad OnStart de la aplicación, use Concurrent para mejorar el rendimiento cuando la aplicación carga
los datos. Si las llamadas de datos no se inician hasta que terminan las llamadas anteriores, la aplicación debe
esperar la suma de todos los tiempos de solicitud. Si las llamadas de datos se inician al mismo tiempo, la
aplicación solo debe esperar el tiempo de solicitud más largo. Los exploradores web suelen mejorar el
rendimiento al realizar las operaciones de datos de forma simultánea.
No se puede predecir el orden en que las fórmulas de la función Concurrent inician y terminan la evaluación. Las
fórmulas de la función Concurrent no deben contener dependencias en otras fórmulas de la misma función
Concurrent y, si se intenta, PowerApps muestra un error. Desde dentro, es posible tomar dependencias en
fórmulas de fuera de la función Concurrent con seguridad, puesto que se completan antes de que se inicie la
función Concurrent. Las fórmulas posteriores a la función simultánea pueden tomar dependencias de las
fórmulas en: todas se completarán antes de que finalice la función simultánea y se desplacen a la siguiente
fórmula de una cadena (si usa el operador ; ). Esté atento a las dependencias de orden sutiles si está llamando a
funciones o métodos de servicio con efectos secundarios.
Puede encadenar fórmulas junto con el operador ; dentro de un argumento a simultáneo. Por ejemplo,
Concurrent( Set( a; 1 );; Set( b; a+1 ); Set( x; 2 );; Set( y; x+2 ) ) evalúa Set( a; 1 );; Set( b; a+1 )
simultáneamente con Set( x; 2 );; Set( y; x+2 ) . En este caso, las dependencias dentro de las fórmulas están bien:
a se establece antes de b y x se establece antes de y.
Según el dispositivo o explorador en el que se ejecute la aplicación, es posible que solo un puñado de fórmulas se
evalúen realmente de forma simultánea. Concurrent usa las capacidades disponibles y no finaliza hasta que se
han evaluado todas las fórmulas.
Si habilita Administración de errores a nivel de fórmula (en Configuración avanzada), se devuelve el primer
error detectado en el orden de los argumentos de Concurrent; en caso contrario, se devuelve blank. Si todas las
fórmulas son correctas, se devuelve true. Si se produce un error en una fórmula, se detiene el resto de la fórmula,
pero las demás fórmulas se siguen evaluando.
Solo puede usar Concurrent en fórmulas de comportamiento.

Sintaxis
Concurrent( Formula1; Formula2 [; ...] )
Formula (s) : requerido. Fórmulas que se van a evaluar de forma simultánea. Se deben proporcionar al menos
dos fórmulas.

Ejemplos
Carga de datos más rápida
1. Cree una aplicación y agregue cuatro orígenes de datos de Common Data Service, SQL Server o
SharePoint.
En este ejemplo se usan cuatro tablas de la base de datos de ejemplo Adventure Works en SQL Azure.
Después de crear la base de datos, conéctese a ella desde PowerApps con el nombre de servidor completo
(por ejemplo, srvname.database.windows.net):

2. Agregue un control Botón y establezca su propiedad OnSelect en esta fórmula:

ClearCollect( Product; '[SalesLT].[Product]' );;


ClearCollect( Customer; '[SalesLT].[Customer]' );;
ClearCollect( SalesOrderDetail; '[SalesLT].[SalesOrderDetail]' );;
ClearCollect( SalesOrderHeader; '[SalesLT].[SalesOrderHeader]' )

3. En Microsoft Edge o Google Chrome, active las herramientas de desarrollador para supervisar el tráfico de
red mientras se ejecuta la aplicación.
4. (Opcional) Active el límite de red para exagerar los efectos de esta comparación.
5. Mientras mantiene presionada la tecla Alt, seleccione el botón y luego observe el tráfico de red.
Las herramientas muestran cuatro solicitudes realizadas en serie similares a este ejemplo. Se han quitado
los tiempos reales, ya que van a variar mucho. El gráfico muestra que cada llamada se inicia una vez
finalizada la última:

6. Guarde, cierre y vuelva a abrir la aplicación.


PowerApps almacena los datos en caché, por lo que al volver a seleccionar el botón no se realizan
necesariamente cuatro nuevas solicitudes. Cada vez que quiera probar el rendimiento, cierre y vuelva a
abrir la aplicación. Si ha activado el límite de red, puede desactivarlo hasta que esté listo para otra prueba.
7. Agregue un segundo control Botón y establezca su propiedad OnSelect en esta fórmula:

Concurrent(
ClearCollect( Product; '[SalesLT].[Product]' );
ClearCollect( Customer; '[SalesLT].[Customer]' );
ClearCollect( SalesOrderDetail; '[SalesLT].[SalesOrderDetail]' );
ClearCollect( SalesOrderHeader; '[SalesLT].[SalesOrderHeader]' )
)

Observe que ha agregado las mismas llamadas ClearCollect al primer botón, pero que esta vez están
encapsuladas en una función Concurrent y separadas por comas.
8. Desactive la supervisión de red en el explorador.
9. Si antes estaba usando el límite de red, vuelva a activarlo.
10. Mientras mantiene presionada la tecla Alt, seleccione el segundo botón y luego observe el tráfico de red.
Las herramientas muestran cuatro solicitudes realizadas de forma simultánea similares a este ejemplo. Una
vez más, se han quitado los tiempos reales, ya que van a variar mucho. El gráfico muestra que todas las
llamadas se inician aproximadamente al mismo tiempo y no esperan a que finalice la anterior:

Estos gráficos se basan en la misma escala. Al usar Concurrent, se ha reducido a la mitad la cantidad total
de tiempo que estas operaciones han tardado en terminar.
11. Guarde, cierre y vuelva a abrir la aplicación.
Condición de carrera
1. Agregue una conexión al servicio Microsoft Translator a la aplicación.
2. Agregue un control Entrada de texto y, si tiene otro nombre, cámbielo a TextInput1.
3. Agregue un control Botón y establezca su propiedad OnSelect en esta fórmula:

Set( StartTime; Value( Now() ) );;


Concurrent(
Set( FRTrans; MicrosoftTranslator.Translate( TextInput1.Text; "fr" ) );;
Set( FRTransTime; Value( Now() ) );
Set( DETrans; MicrosoftTranslator.Translate( TextInput1.Text; "de" ) );;
Set( DETransTime; Value( Now() ) )
);;
Collect( Results;
{
Input: TextInput1.Text;
French: FRTrans; FrenchTime: FRTransTime - StartTime;
German: DETrans; GermanTime: DETransTime - StartTime;
FrenchFaster: FRTransTime < DETransTime
}
)

4. Agregue un control Tabla de datos y establezca su propiedad Items en Results.


5. En la pestaña propiedades del panel derecho, seleccione Editar campos para abrir el panel campos .
6. En la lista de campos, active la casilla de cada campo para mostrarlos todos en la tabla de datos.
7. (Opcional) Arrastre el campo Input a la parte superior de la lista y el campo FrenchFaster a la parte
inferior.

8. En el control Entrada de texto, escriba o pegue una frase que quiera traducir.
9. Mientras mantiene presionada la tecla Alt, seleccione el botón varias veces para rellenar la tabla.
Las horas se muestran en milisegundos.

En algunos casos, la traducción al francés es más rápida que la traducción al alemán y viceversa. Ambas se
inician al mismo tiempo, pero una se devuelve antes que la otra por diversos motivos, incluidos el
procesamiento de servidor y la latencia de red.
Se produce una condición de carrera si la aplicación dependía de que una traducción terminara primero.
Afortunadamente, PowerApps marca la mayoría de las dependencias de tiempo que puede detectar.
Señales Acceleration, App, Compass, Connection y
Location en PowerApps
07/10/2019 • 9 minutes to read

Devuelve información sobre el entorno de la aplicación, como dónde se encuentra el usuario en el mundo y la
pantalla que se muestra.

Descripción y sintaxis
Las señales son valores que pueden cambiar en cualquier momento, independientemente de cómo el usuario
pueda interactuar con la aplicación. Las fórmulas que se basan en señales se recalculan automáticamente a medida
que estos valores cambian.
Normalmente, las señales devuelven un registro de información. Puede usar y almacenar esta información como
un registro, o puede extraer propiedades individuales mediante el operador .

NOTE
Las funciones Acceleration y Compass devuelven valores precisos en un reproductor nativo, como en iOS o Android, pero
esas funciones devuelven valores cero a medida que crea o modifica una aplicación en el explorador.

Acceleration
La señal Acceleration devuelve la aceleración del dispositivo en tres dimensiones en relación con la pantalla del
dispositivo. La aceleración se mide en unidades g de 9,81 m/s2 o 32,2 ft/s2 (la aceleración que imparte la Tierra en
los objetos en su superficie debida a la gravedad).

PROPIEDAD DESCRIPCIÓN

Acceleration.X Derecha e izquierda. El valor de la derecha es un número


positivo.

Acceleration.Y Hacia delante y atrás. El valor hacia delante es un número


positivo.

Acceleration.Z Arriba y abajo. El valor de arriba es un número positivo.

App
Entre otras propiedades, el objeto de aplicación incluye una señal que indica la pantalla que se muestra.

PROPIEDAD DESCRIPCIÓN

App.ActiveScreen Pantalla que se muestra. Devuelve un objeto de pantalla, que


puede usar para hacer referencia a las propiedades de la
pantalla o comparar con otra pantalla para determinar la
pantalla que se muestra. Puede usar la función back o
Navigate para cambiar la pantalla que se muestra.

Más información: Documentación del objeto de aplicación .


Compass
La señal Compass devuelve el encabezado de brújula de la parte superior de la pantalla. El encabezado se basa en
el norte magnético.

PROPIEDAD DESCRIPCIÓN

Compass.Heading Encabezado en grados. Devuelve que un número de 0 a 360, y


0 es el norte.

Conexión
La señal Connection devuelve información acerca de la conexión de red. Cuando está en una conexión medida,
puede que desee limitar la cantidad de datos que envíe o reciba a través de la red.

PROPIEDAD DESCRIPCIÓN

Connection.Connected Devuelve un valor booleano true o false que indica si el


dispositivo está conectado a una red.

Connection.Metered Devuelve un valor booleano true o false que indica si la se


mide la conexión.

Location
La señal Location devuelve la ubicación del dispositivo según el sistema GPS (Global Positioning System) y otra
información de dispositivo, como las comunicaciones de la torre de telefonía móvil y la dirección IP.
Cuando un usuario tiene acceso a la información de ubicación por primera vez, el dispositivo puede solicitar que el
usuario permita el acceso a esta información.
A medida que cambia la ubicación, las dependencias de la ubicación se recalcularán continuamente, lo que
consumirá corriente de la batería del dispositivo. Para conservar la vida útil de la batería, puede usar las funciones
Enable y Disable para activar y desactivar las actualizaciones de la ubicación. La ubicación se desactiva
automáticamente si la pantalla mostrada no depende de la información de la ubicación.

PROPIEDAD DESCRIPCIÓN

Location.Altitude Devuelve un número que indica la altitud, medida en metros,


por encima del nivel del mar.

Location.Latitude Devuelve un número, de -90 y 90, que indica la latitud, que se


mide en grados desde el Ecuador. Un número positivo indica
una ubicación que sea al norte del ecuador.

Location.Longitude Devuelve un número, de 0 y 180, que indica la longitud, que


se mide en grados oeste desde Greenwich, Inglaterra.

Ejemplos
En un campo de béisbol, un lanzador lanza un teléfono desde el montículo del jarra a un captador en la placa de
inicio. El teléfono se encuentra situado horizontalmente con respecto a la tierra, la parte superior de la pantalla está
orientada al lanzador, y el lanzador no hace ningún giro. En esta ubicación, el teléfono tiene una cobertura medida,
pero no tiene Wi-Fi. Se muestra la pantalla PlayBall.

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

Location.Latitude Devuelve la latitud de la ubicación 47.591


actual. El campo se encuentra en las
coordenadas de mapa 47,591 N, La latitud cambiará continuamente a
122,333 W. medida que la pelota se mueva entre el
lanzador y el receptor.

Location.Longitude Devuelve la longitud de la ubicación 122.333


actual.
La longitud cambiará continuamente a
medida que la pelota se mueva entre el
lanzador y el receptor.

Location Devuelve la latitud y longitud de la { Latitud: 47.591, Longitud: 122.333 }


ubicación actual, como un registro.

Compass.Heading Devuelve el encabezado de brújula de la 230.25


parte superior de la pantalla. En este
campo, la placa de inicio es
aproximadamente suroeste del
montículo del jarra.

Acceleration.X Devuelve la aceleración del dispositivo 0


de lado a lado. El lanzador está lanzando
el teléfono en línea recta con respecto a
la parte superior de la pantalla, por lo
que el dispositivo no cuenta con una
aceleración de lado a lado.

Acceleration.Y Devuelve la aceleración del dispositivo 8,2, cuando el lanzador lanza el


de la parte delantera a la trasera. El dispositivo.
lanzador inicialmente ofrece al
dispositivo una gran aceleración al 0, cuando el dispositivo está en el aire.
lanzar el dispositivo, que pasa de 0 a
144 km por hora (40 metros por -8,2, cuando el receptor atrapa el
segundo) en medio segundo. Después dispositivo.
de que el dispositivo esté en el aire, sin
tener en cuenta la fricción del aire, no se
acelera más. El dispositivo deja de
acelerarse cuando el receptor lo atrapa,
hasta que para.

Acceleration.Z Devuelve la aceleración del dispositivo 0, antes de que el lanzador lace el


de arriba a abajo. Mientras está en el dispositivo.
aire, el dispositivo experimenta los
efectos de la gravedad. 1, cuando el dispositivo está en el aire.

0, cuando el receptor atrapa el


dispositivo.

Acceleration Devuelve la aceleración como registro. X1 0, Y: 264, Z: 0} cuando el lanzador


lanza el dispositivo.

Connection.Connected Devuelve un valor booleano que indica true


si el dispositivo está conectado a una
red.
FÓRMULA DESCRIPCIÓN RESULTADO

Connection.Metered Devuelve un valor booleano que indica true


si la se mide la conexión.

App.ActiveScreen = PlayBall Devuelve un valor booleano que indica true


si se muestra PlayBall.

App.ActiveScreen.Fill Devuelve el color de fondo de la Color.Green


pantalla mostrada.
Funciones Count, CountA, CountIf y CountRows en
PowerApps
08/10/2019 • 3 minutes to read

Cuenta todos los registros de una tabla o todos los registros que cumplen una condición.

Descripción
La función Count cuenta el número de registros que contienen un número en una tabla de una sola columna.
La función CountA cuenta el número de registros que no están blank en una tabla de una sola columna. Esta
función incluye texto vacío ("") en el recuento.
La función CountIf cuenta el número de registros de una tabla que son true para una fórmula lógica. La fórmula
puede hacer referencia a columnas de la tabla.
La función CountRows cuenta el número de registros de una tabla.
Cada una de estas funciones devuelve un número.
Cuando se usan con un origen de datos, estas funciones no se pueden delegar. Solo se recuperará la primera parte
del origen de datos, y después se aplicará la función. Es posible que el resultado no represente la historia completa.
Aparecerá una advertencia en el momento de la creación para recordarle esta limitación y para sugerirle un cambio
a alternativas delegables siempre que sea posible. Para obtener más información, consulte la información general
sobre delegación

Sintaxis
Count( SingleColumnTable )
CountA ( SingleColumnTable )
SingleColumnTable: requerido. Columna de registros que se van a contar.
CountIf( Table; LogicalFormula )
Table: requerido. Tabla de registros que se van a contar.
LogicalFormula: requerido. Fórmula que se evalúa para cada registro de la tabla. Se cuentan los registros que
devuelven el valor true para esta fórmula. La fórmula puede hacer referencia a columnas de la tabla.
CountRows( Table )
Table: requerido. Tabla de registros que se van a contar.

Ejemplo
1. Importe o cree una colección denominada Inventory, como se describe en el primer subprocedimiento de
Show images and text in a gallery (Mostrar imágenes y texto en una galería).
2. Agregue una etiqueta y establezca su propiedad Text en esta fórmula:
CountIf(Inventory; UnitsInStock < 30)
La etiqueta muestra el valor 2 porque dos productos (Ganymede y Callisto) tienen menos de 30 unidades en
existencias.
3. Agregue otra etiqueta y establezca su propiedad Text en esta fórmula:
CountA (Inventory.UnitsInStock)
La etiqueta muestra el valor 5, el número de celdas no vacías en la columna UnitsInStock.
4. Agregue otra etiqueta y establezca su propiedad Text en esta fórmula:
CountRows(Inventory)
La etiqueta muestra el valor 5 porque la colección contiene cinco filas.
Funciones Acos, Acot, Asin, Atan, Atan2, Cos, Cot,
Degrees, Pi, Radians, Sin y Tan en PowerApps
08/10/2019 • 9 minutes to read

Calcula valores trigonométricos.

Descripción
Funciones principales
La función Cos devuelve el coseno de su argumento, un ángulo especificado en radianes.
La función Cot devuelve la cotangente de su argumento, un ángulo especificado en radianes.
La función Sin devuelve el seno de su argumento, un ángulo especificado en radianes.
La función Tan devuelve la tangente de su argumento, un ángulo especificado en radianes.
Funciones inversas
El Acos función devuelve el arcocoseno, o coseno inverso, de su argumento. El arcocoseno es el ángulo cuyo
coseno es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Acot devuelve el valor principal de la arcocotangente, o cotangente inversa, de su argumento. El ángulo
devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Asin devuelve el arcoseno, o seno inverso, de su argumento. El arcoseno es el ángulo cuyo seno es el
argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a π/2.
La función Atan devuelve la arcotangente, o tangente inversa, de su argumento. La arcotangente es el ángulo cuya
tangente es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a π/2.
La función Atan2 devuelve la arcotangente, o tangente inversa, de las coordenadas x e y especificadas como
argumentos. La arcotangente es el ángulo desde el eje x a una línea que contiene el origen (0, 0) y un punto con las
coordenadas (x, y). El ángulo se expresa en radianes entre -π y π, excluyendo -π. Un resultado positivo representa
un ángulo con rotación levógira (hacia la izquierda) desde el eje x; un resultado negativo representa un ángulo con
rotación dextrógira (hacia la derecha). Atan2( a; b ) es igual a Atan( b/a ) , excepto que a puede ser igual a 0 (cero)
con la función Atan2.
Funciones auxiliares
La función Degrees convierte radianes en grados. π radianes equivalen a 180 grados.
La función Pi devuelve el número transcendente π, que comienza 3,141592...
La función Radians convierte grados en radianes.
Notas
Si pasa un solo número a estas funciones, el valor que se devuelve es un resultado único. Si pasa una tabla de una
sola columna que contiene números, el valor que se muestra es una tabla de resultados de una sola columna, un
resultado para cada registro en la tabla del argumento. Si tiene una tabla con varias columnas, puede convertirla en
una tabla de una sola columna, como se describe en cómo trabajar con tablas.
Si algún argumento resultase en un valor no definido, el resultado es blank. Esto puede ocurrir, por ejemplo, al
utilizar las funciones inversas con argumentos que están fuera del intervalo.
Sintaxis
Funciones principales
Cos( Radians )
Cot( Radians )
Sin( Radians )
Tan( Radians )
Radians: requerido. Ángulo sobre el cual operar.
Cos( SingleColumnTable )
Cot( SingleColumnTable )
Sin( SingleColumnTable )
Tan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de ángulos de una sola columna sobre la que se va a actuar.
Funciones inversas
Acos( Number )
Acot( Number )
Asin( Number )
Atan( Number )
Number: requerido. El número sobre el cual operar.
Acos( SingleColumnTable )
Acot( SingleColumnTable )
Asin( SingleColumnTable )
Atan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de números de una sola columna sobre la cual operar.
Atan2( X; Y )
X: requerido. coordenadas del eje X.
Y: requerido. coordenadas del eje Y.
Funciones del asistente
Degrees( Radians )
Radians: requerido. Ángulo en radianes para convertir en grados.
Pi()
Radians( Degrees )
Degrees: requerido. Ángulo en grados para convertir en radianes.

Ejemplos
Número único
FÓRMULA DESCRIPCIÓN RESULTADO

Cos( 1;047197 ) Devuelve el coseno de 1,047197 0,5


radianes o 60 grados.
FÓRMULA DESCRIPCIÓN RESULTADO

Cot( Pi()/4 ) Devuelve la cotangente de 0,785398... 1


radianes o 45 grados.

Sin( Pi()/2 ) Devuelve el seno de 1,570796 radianes 1


o 90 grados.

Tan ( Radians(60) ) Devuelve la tangente de 1,047197 1,732050...


radianes o 60 grados.

Acos( 0;5 ) Devuelve el arcocoseno de 0,5 en 1,047197...


radianes.

Acot( 1 ) Devuelve la arcocotangente de 1, en 0,785398...


radianes.

Asin( 1 ) Devuelve el arcoseno de 1, en radianes. 1,570796...

Atan ( 1,732050 ) Devuelve la arcotangente de 1,732050, 1,047197...


en radianes.

Atan2( 5; 3 ) Devuelve la arcotangente del ángulo del 0,540419...


eje x de la línea que contiene el origen
(0,0) y la coordenada (5,3), que es
aproximadamente 31 grados.

Atan2( 4; 4 ) Devuelve la arcotangente del ángulo del 0,785398...


eje x de la línea que contiene el origen
(0,0) y la coordenada (4,4), que es
exactamente π/4 radianes o 45 grados.

Degrees ( 1,047197 ) Devuelve el número equivalente de 60


grados de 1,047197 radianes.

Pi() El número trascendente π. 3,141592...

Radians ( 15 ) Devuelve el número equivalente de 0,261799...


radianes para 15 grados.

Tabla de una sola columna


Los ejemplos de esta sección usan un origen de datos denominado ValueTable que contiene los siguientes datos:
El último registro en la tabla es π/2 radianes o 90 grados.

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

Cos( ValueTable ) Devuelve el coseno de cada número en


la tabla.

Cot( ValueTable ) Devuelve la cotangente de cada número


en la tabla.

Sin( ValueTable ) Devuelve el seno de cada número en la


tabla.

Tan( ValueTable ) Devuelve la tangente de cada número


en la tabla.

Acos( ValueTable ) Devuelve el arcocoseno de cada número


en la tabla.

Acot( ValueTable ) Devuelve la arcocotangente de cada


número en la tabla.

Asin( ValueTable ) Devuelve el arcoseno de cada número


en la tabla.

Atan( ValueTable ) Devuelve la arcotangente de cada


número en la tabla.
FÓRMULA DESCRIPCIÓN RESULTADO

Degrees( ValueTable ) Devuelve el número equivalente de


grados para cada número de la tabla,
supone que son ángulos en radianes.

Radians( ValueTable ) Devuelve el número equivalente de


radianes para cada número de la tabla,
supone que son ángulos en grados.
Funciones Acos, Acot, Asin, Atan, Atan2, Cos, Cot,
Degrees, Pi, Radians, Sin y Tan en PowerApps
08/10/2019 • 9 minutes to read

Calcula valores trigonométricos.

Descripción
Funciones principales
La función Cos devuelve el coseno de su argumento, un ángulo especificado en radianes.
La función Cot devuelve la cotangente de su argumento, un ángulo especificado en radianes.
La función Sin devuelve el seno de su argumento, un ángulo especificado en radianes.
La función Tan devuelve la tangente de su argumento, un ángulo especificado en radianes.
Funciones inversas
El Acos función devuelve el arcocoseno, o coseno inverso, de su argumento. El arcocoseno es el ángulo cuyo
coseno es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Acot devuelve el valor principal de la arcocotangente, o cotangente inversa, de su argumento. El ángulo
devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Asin devuelve el arcoseno, o seno inverso, de su argumento. El arcoseno es el ángulo cuyo seno es el
argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a π/2.
La función Atan devuelve la arcotangente, o tangente inversa, de su argumento. La arcotangente es el ángulo cuya
tangente es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a π/2.
La función Atan2 devuelve la arcotangente, o tangente inversa, de las coordenadas x e y especificadas como
argumentos. La arcotangente es el ángulo desde el eje x a una línea que contiene el origen (0, 0) y un punto con las
coordenadas (x, y). El ángulo se expresa en radianes entre -π y π, excluyendo -π. Un resultado positivo representa
un ángulo con rotación levógira (hacia la izquierda) desde el eje x; un resultado negativo representa un ángulo con
rotación dextrógira (hacia la derecha). Atan2( a; b ) es igual a Atan( b/a ) , excepto que a puede ser igual a 0 (cero)
con la función Atan2.
Funciones auxiliares
La función Degrees convierte radianes en grados. π radianes equivalen a 180 grados.
La función Pi devuelve el número transcendente π, que comienza 3,141592...
La función Radians convierte grados en radianes.
Notas
Si pasa un solo número a estas funciones, el valor que se devuelve es un resultado único. Si pasa una tabla de una
sola columna que contiene números, el valor que se muestra es una tabla de resultados de una sola columna, un
resultado para cada registro en la tabla del argumento. Si tiene una tabla con varias columnas, puede convertirla en
una tabla de una sola columna, como se describe en cómo trabajar con tablas.
Si algún argumento resultase en un valor no definido, el resultado es blank. Esto puede ocurrir, por ejemplo, al
utilizar las funciones inversas con argumentos que están fuera del intervalo.
Sintaxis
Funciones principales
Cos( Radians )
Cot( Radians )
Sin( Radians )
Tan( Radians )
Radians: requerido. Ángulo sobre el cual operar.
Cos( SingleColumnTable )
Cot( SingleColumnTable )
Sin( SingleColumnTable )
Tan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de ángulos de una sola columna sobre la que se va a actuar.
Funciones inversas
Acos( Number )
Acot( Number )
Asin( Number )
Atan( Number )
Number: requerido. El número sobre el cual operar.
Acos( SingleColumnTable )
Acot( SingleColumnTable )
Asin( SingleColumnTable )
Atan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de números de una sola columna sobre la cual operar.
Atan2( X; Y )
X: requerido. coordenadas del eje X.
Y: requerido. coordenadas del eje Y.
Funciones del asistente
Degrees( Radians )
Radians: requerido. Ángulo en radianes para convertir en grados.
Pi()
Radians( Degrees )
Degrees: requerido. Ángulo en grados para convertir en radianes.

Ejemplos
Número único
FÓRMULA DESCRIPCIÓN RESULTADO

Cos( 1;047197 ) Devuelve el coseno de 1,047197 0,5


radianes o 60 grados.
FÓRMULA DESCRIPCIÓN RESULTADO

Cot( Pi()/4 ) Devuelve la cotangente de 0,785398... 1


radianes o 45 grados.

Sin( Pi()/2 ) Devuelve el seno de 1,570796 radianes 1


o 90 grados.

Tan ( Radians(60) ) Devuelve la tangente de 1,047197 1,732050...


radianes o 60 grados.

Acos( 0;5 ) Devuelve el arcocoseno de 0,5 en 1,047197...


radianes.

Acot( 1 ) Devuelve la arcocotangente de 1, en 0,785398...


radianes.

Asin( 1 ) Devuelve el arcoseno de 1, en radianes. 1,570796...

Atan ( 1,732050 ) Devuelve la arcotangente de 1,732050, 1,047197...


en radianes.

Atan2( 5; 3 ) Devuelve la arcotangente del ángulo del 0,540419...


eje x de la línea que contiene el origen
(0,0) y la coordenada (5,3), que es
aproximadamente 31 grados.

Atan2( 4; 4 ) Devuelve la arcotangente del ángulo del 0,785398...


eje x de la línea que contiene el origen
(0,0) y la coordenada (4,4), que es
exactamente π/4 radianes o 45 grados.

Degrees ( 1,047197 ) Devuelve el número equivalente de 60


grados de 1,047197 radianes.

Pi() El número trascendente π. 3,141592...

Radians ( 15 ) Devuelve el número equivalente de 0,261799...


radianes para 15 grados.

Tabla de una sola columna


Los ejemplos de esta sección usan un origen de datos denominado ValueTable que contiene los siguientes datos:
El último registro en la tabla es π/2 radianes o 90 grados.

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

Cos( ValueTable ) Devuelve el coseno de cada número en


la tabla.

Cot( ValueTable ) Devuelve la cotangente de cada número


en la tabla.

Sin( ValueTable ) Devuelve el seno de cada número en la


tabla.

Tan( ValueTable ) Devuelve la tangente de cada número


en la tabla.

Acos( ValueTable ) Devuelve el arcocoseno de cada número


en la tabla.

Acot( ValueTable ) Devuelve la arcocotangente de cada


número en la tabla.

Asin( ValueTable ) Devuelve el arcoseno de cada número


en la tabla.

Atan( ValueTable ) Devuelve la arcotangente de cada


número en la tabla.
FÓRMULA DESCRIPCIÓN RESULTADO

Degrees( ValueTable ) Devuelve el número equivalente de


grados para cada número de la tabla,
supone que son ángulos en radianes.

Radians( ValueTable ) Devuelve el número equivalente de


radianes para cada número de la tabla,
supone que son ángulos en grados.
Funciones Count, CountA, CountIf y CountRows en
PowerApps
08/10/2019 • 3 minutes to read

Cuenta todos los registros de una tabla o todos los registros que cumplen una condición.

Descripción
La función Count cuenta el número de registros que contienen un número en una tabla de una sola columna.
La función CountA cuenta el número de registros que no están blank en una tabla de una sola columna. Esta
función incluye texto vacío ("") en el recuento.
La función CountIf cuenta el número de registros de una tabla que son true para una fórmula lógica. La fórmula
puede hacer referencia a columnas de la tabla.
La función CountRows cuenta el número de registros de una tabla.
Cada una de estas funciones devuelve un número.
Cuando se usan con un origen de datos, estas funciones no se pueden delegar. Solo se recuperará la primera parte
del origen de datos, y después se aplicará la función. Es posible que el resultado no represente la historia completa.
Aparecerá una advertencia en el momento de la creación para recordarle esta limitación y para sugerirle un cambio
a alternativas delegables siempre que sea posible. Para obtener más información, consulte la información general
sobre delegación

Sintaxis
Count( SingleColumnTable )
CountA ( SingleColumnTable )
SingleColumnTable: requerido. Columna de registros que se van a contar.
CountIf( Table; LogicalFormula )
Table: requerido. Tabla de registros que se van a contar.
LogicalFormula: requerido. Fórmula que se evalúa para cada registro de la tabla. Se cuentan los registros que
devuelven el valor true para esta fórmula. La fórmula puede hacer referencia a columnas de la tabla.
CountRows( Table )
Table: requerido. Tabla de registros que se van a contar.

Ejemplo
1. Importe o cree una colección denominada Inventory, como se describe en el primer subprocedimiento de
Show images and text in a gallery (Mostrar imágenes y texto en una galería).
2. Agregue una etiqueta y establezca su propiedad Text en esta fórmula:
CountIf(Inventory; UnitsInStock < 30)
La etiqueta muestra el valor 2 porque dos productos (Ganymede y Callisto) tienen menos de 30 unidades en
existencias.
3. Agregue otra etiqueta y establezca su propiedad Text en esta fórmula:
CountA (Inventory.UnitsInStock)
La etiqueta muestra el valor 5, el número de celdas no vacías en la columna UnitsInStock.
4. Agregue otra etiqueta y establezca su propiedad Text en esta fórmula:
CountRows(Inventory)
La etiqueta muestra el valor 5 porque la colección contiene cinco filas.
Funciones Count, CountA, CountIf y CountRows en
PowerApps
08/10/2019 • 3 minutes to read

Cuenta todos los registros de una tabla o todos los registros que cumplen una condición.

Descripción
La función Count cuenta el número de registros que contienen un número en una tabla de una sola columna.
La función CountA cuenta el número de registros que no están blank en una tabla de una sola columna. Esta
función incluye texto vacío ("") en el recuento.
La función CountIf cuenta el número de registros de una tabla que son true para una fórmula lógica. La fórmula
puede hacer referencia a columnas de la tabla.
La función CountRows cuenta el número de registros de una tabla.
Cada una de estas funciones devuelve un número.
Cuando se usan con un origen de datos, estas funciones no se pueden delegar. Solo se recuperará la primera parte
del origen de datos, y después se aplicará la función. Es posible que el resultado no represente la historia completa.
Aparecerá una advertencia en el momento de la creación para recordarle esta limitación y para sugerirle un cambio
a alternativas delegables siempre que sea posible. Para obtener más información, consulte la información general
sobre delegación

Sintaxis
Count( SingleColumnTable )
CountA ( SingleColumnTable )
SingleColumnTable: requerido. Columna de registros que se van a contar.
CountIf( Table; LogicalFormula )
Table: requerido. Tabla de registros que se van a contar.
LogicalFormula: requerido. Fórmula que se evalúa para cada registro de la tabla. Se cuentan los registros que
devuelven el valor true para esta fórmula. La fórmula puede hacer referencia a columnas de la tabla.
CountRows( Table )
Table: requerido. Tabla de registros que se van a contar.

Ejemplo
1. Importe o cree una colección denominada Inventory, como se describe en el primer subprocedimiento de
Show images and text in a gallery (Mostrar imágenes y texto en una galería).
2. Agregue una etiqueta y establezca su propiedad Text en esta fórmula:
CountIf(Inventory; UnitsInStock < 30)
La etiqueta muestra el valor 2 porque dos productos (Ganymede y Callisto) tienen menos de 30 unidades en
existencias.
3. Agregue otra etiqueta y establezca su propiedad Text en esta fórmula:
CountA (Inventory.UnitsInStock)
La etiqueta muestra el valor 5, el número de celdas no vacías en la columna UnitsInStock.
4. Agregue otra etiqueta y establezca su propiedad Text en esta fórmula:
CountRows(Inventory)
La etiqueta muestra el valor 5 porque la colección contiene cinco filas.
Funciones Count, CountA, CountIf y CountRows
en PowerApps
08/10/2019 • 3 minutes to read

Cuenta todos los registros de una tabla o todos los registros que cumplen una condición.

Descripción
La función Count cuenta el número de registros que contienen un número en una tabla de una sola
columna.
La función CountA cuenta el número de registros que no están blank en una tabla de una sola columna.
Esta función incluye texto vacío ("") en el recuento.
La función CountIf cuenta el número de registros de una tabla que son true para una fórmula lógica. La
fórmula puede hacer referencia a columnas de la tabla.
La función CountRows cuenta el número de registros de una tabla.
Cada una de estas funciones devuelve un número.
Cuando se usan con un origen de datos, estas funciones no se pueden delegar. Solo se recuperará la primera
parte del origen de datos, y después se aplicará la función. Es posible que el resultado no represente la
historia completa. Aparecerá una advertencia en el momento de la creación para recordarle esta limitación y
para sugerirle un cambio a alternativas delegables siempre que sea posible. Para obtener más información,
consulte la información general sobre delegación

Sintaxis
Count( SingleColumnTable )
CountA ( SingleColumnTable )
SingleColumnTable: requerido. Columna de registros que se van a contar.
CountIf( Table; LogicalFormula )
Table: requerido. Tabla de registros que se van a contar.
LogicalFormula: requerido. Fórmula que se evalúa para cada registro de la tabla. Se cuentan los registros
que devuelven el valor true para esta fórmula. La fórmula puede hacer referencia a columnas de la tabla.
CountRows( Table )
Table: requerido. Tabla de registros que se van a contar.

Ejemplo
1. Importe o cree una colección denominada Inventory, como se describe en el primer
subprocedimiento de Show images and text in a gallery (Mostrar imágenes y texto en una galería).
2. Agregue una etiqueta y establezca su propiedad Text en esta fórmula:
CountIf(Inventory; UnitsInStock < 30)
La etiqueta muestra el valor 2 porque dos productos (Ganymede y Callisto) tienen menos de 30
unidades en existencias.
3. Agregue otra etiqueta y establezca su propiedad Text en esta fórmula:
CountA (Inventory.UnitsInStock)
La etiqueta muestra el valor 5, el número de celdas no vacías en la columna UnitsInStock.
4. Agregue otra etiqueta y establezca su propiedad Text en esta fórmula:
CountRows(Inventory)
La etiqueta muestra el valor 5 porque la colección contiene cinco filas.
Tipos de datos en aplicaciones de lienzo
26/11/2019 • 31 minutes to read

La información fluye a través de una aplicación en pequeños valores discretos, muy parecidos a las celdas de una
hoja de cálculo. Por ejemplo, los datos de un campo de cumpleaños y un campo de aniversario fluyen como un
valor de fecha que incluye el año, el mes y el día. La aplicación sabe cómo dar formato a estos valores, restringir la
entrada a lo apropiado para cada uno y compartir los valores con una base de datos. Los cumpleaños difieren de
los aniversarios a los usuarios, pero el sistema los controla exactamente de la misma manera. En este caso, Date
es un ejemplo de un tipo de datos.
En este artículo se proporcionan detalles sobre los tipos de datos que admiten las aplicaciones de canvas. Cuando
una aplicación se conecta a un origen de datos externo, cada tipo de datos de ese origen se asigna a un tipo de
datos para las aplicaciones de canvas.

TIPO DE DATOS DESCRIPCIÓN EJEMPLOS

Booleano Valor true o false . Se puede usar true


directamente en si, filtrar y otras
funciones sin una comparación.

Color Especificación de color, incluido un canal Color.Red


alfa. ColorValue ("#102030")
RGBA (255, 128, 0, 0,5)

Moneda Valor de moneda que se almacena en 123


un número de punto flotante. Los 4,56
valores de moneda son los mismos que
los valores numéricos con opciones de
formato de moneda.

Posteriormente Una fecha sin una hora, en la zona Fecha (2019, 5, 16)
horaria del usuario de la aplicación.

DateTime Una fecha con una hora, en la zona Fechahoranumero ("May 16, 2019
horaria del usuario de la aplicación. 1:23:09 PM")

VOLUMEN Identificador único global. GUID ()


GUID ("123e4567-e89b-12d3-A456-
426655440000")

Hipervínculo Cadena de texto que contiene un "https://powerapps.microsoft.com"


hipervínculo.

Imagen Una cadena de texto de identificador de Mi imagen se ha agregado como un


recursos universal (URI) a una imagen recurso de la aplicación
de. JPEG,. png,. SVG,. gif u otro formato "https://northwindtraders.com/logo
de imagen web común. .jpg"
"appres://blobmanager/7b12ffa2..."
TIPO DE DATOS DESCRIPCIÓN EJEMPLOS

Multimedia Una cadena de texto de URI en una El vídeo se ha agregado como un


grabación de vídeo o audio. recurso de la aplicación
"https://northwindtraders.com/intro
.mp4"
"appres://blobmanager/3ba411c..."

Números Número de punto flotante. 123


-4,567
8.903e121

Conjunto de opciones Una opción de un conjunto de ThisItem. OrderStatus


opciones, respaldado por un número.
Este tipo de datos combina una
etiqueta de texto traducible con un
valor numérico. La etiqueta aparece en
la aplicación y el valor numérico se
almacena y se usa para las
comparaciones.

Record Un registro de valores de datos. Este {Company: "Northwind Traders";


tipo de datos compuesto contiene personal: 35;
instancias de otros tipos de datos que sin ánimo de lucro: false}
se enumeran en este tema. Más
información: trabajar con tablas.

Referencia de registro Referencia a un registro de una entidad. Primero (cuentas). Propietario


Estas referencias se suelen usar con
búsquedas polimórficas. Más
información: trabajar con referencias.

Cuadro Una tabla de registros. Todos los Tabla ({FirstName: "Sidney";


registros deben tener los mismos LastName: "Higa"};
nombres para sus campos con los {FirstName: "Nancy";
mismos tipos de datos y los campos LastName: "Anderson"})
omitidos se tratan como en blanco.
Este tipo de datos compuesto contiene
instancias de otros tipos de datos que
se enumeran en este tema. Más
información: trabajar con tablas.

Texto Cadena de texto Unicode. "Hello, World"

Tiempo Una hora sin fecha, en la zona horaria Hora (11, 23, 45)
del usuario de la aplicación.

Dos opciones Una opción de un conjunto de dos ThisItem. gravable


opciones, respaldada por un valor
booleano. Este tipo de datos combina
una etiqueta de texto traducible con un
valor booleano. La etiqueta aparece en
la aplicación y el valor booleano se
almacena y se usa para las
comparaciones.

Muchos de estos tipos de datos son similares y tienen la misma representación subyacente, como un campo de
hipervínculo que se trata como texto. Los tipos de datos adicionales proporcionan mejores experiencias
predeterminadas en formularios y otros controles.
En blanco
Todos los tipos de datos pueden tener un valor en blanco (es decir, ningún valor). El término "null" se usa a
menudo en las bases de datos para este concepto.
Utilice la función Blank con la función set o patch para establecer una variable o un campo en blanco. Por
ejemplo, set (x, Blank ()) quita cualquier valor de la variable global x.
Compruebe si hay un valor en blanco mediante la función esblanco. Reemplace los valores en blanco posibles
por valores que no esténen blanco mediante la función Coalesce .
Dado que todos los tipos de datos admiten valores en blanco, los tipos de datos booleanos y dos opciones
tienen eficazmente tres valores posibles.

Texto, hipervínculo, imagen y multimedia


Los cuatro tipos de datos se basan en una cadena de texto Unicode .
Recursos multimedia y de imagen
Mediante el menú archivo , puede Agregar archivos de imagen, vídeo y audio como recursos de la aplicación. El
nombre del archivo importado se convierte en el nombre del recurso en la aplicación. En este gráfico, el logotipo
de Northwind Traders, denominado nwindlogo, se ha agregado a una aplicación:

Para usar este recurso en una aplicación, especifíquelo en la propiedad imagen de un control imagen :

URI para imágenes y otros medios


Puede profundizar un poco más en ese último ejemplo si establece la propiedad texto de un control etiqueta en
nwindlogo. La etiqueta muestra una cadena de texto:
Las aplicaciones de lienzo hacen referencia a cada imagen u otro archivo multimedia, ya sea en la nube o se
agregan como un recurso de la aplicación, mediante una cadena de texto de URI.
Por ejemplo, la propiedad imagen de un control imagen acepta no solo los recursos de la aplicación, sino también
los vínculos a las imágenes en la web, como "https://northwindtraders.com/logo.jpg". La propiedad también
acepta imágenes insertadas que usan el esquema de URI de datos, como en este ejemplo:

"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAFAQMAAACtnVQoAAAABlBMVEUAAAB0J3UMNU6VAAAAAXRSTlMAQObYZgA
AABRJREFUCNdjUGJgCGVg6GgAkkA2AA8/AffqCEBsAAAAAElFTkSuQmCC"

Ese URI muestra una versión escalada de dos diamantes púrpura:

Puede mostrar la imagen más reciente capturada en un control de cámara si establece la propiedad imagen de
un control imagen en la propiedad foto del control cámara. La aplicación contiene la imagen en memoria y la
propiedad Photo del control de cámara devuelve una referencia de URI a la imagen. Por ejemplo, puede tomar
una foto y la propiedad Photo de la cámara podría devolver
"appres://blobmanager/7b12ffa2ea4547e5b3812cb1c7b0a2a0/1" .
El URI se usa para hacer referencia a una imagen u otro archivo multimedia almacenado en una base de datos. De
este modo, la aplicación no recupera los datos reales hasta que realmente se necesita. Por ejemplo, los datos
adjuntos de una entidad Common Data Service podrían devolver "appres://datasources/Contacts/Table/..."
como en el ejemplo de cámara, puede mostrar esta imagen estableciendo la propiedad imagen de un control
imagen en esta referencia, que recupera los datos binarios.
Al guardar un tipo de datos multimedia, como una imagen, en una base de datos, la aplicación envía la imagen o
los datos multimedia reales, no la referencia de URI.
Límites de tamaño
Como cadenas de texto y URI, estos tipos de datos no tienen ningún límite preestablecido para su longitud.
Los datos binarios a los que hacen referencia estos tipos de datos tampoco tienen un límite preestablecido en el
tamaño. Por ejemplo, una imagen capturada a través del control de la cámara a la que se hace referencia ahora
como "appres://..." puede ser tan grande y alta como para la cámara del dispositivo. La resolución, la velocidad
de fotogramas y otros atributos de archivos multimedia no están limitados por el tipo de datos, pero los controles
específicos para reproducir y capturar medios pueden tener sus propias limitaciones.
Sin embargo, todos los tamaños de datos están sujetos a la cantidad de memoria disponible en la aplicación. Los
exploradores que se ejecutan en un equipo de escritorio suelen admitir más de 100 megabytes de datos. Sin
embargo, la cantidad de memoria disponible en un dispositivo, como un teléfono, puede ser mucho menor,
normalmente en el intervalo de 30-70 megabytes. Para determinar si la aplicación se ejecutará dentro de estos
límites, pruebe los escenarios comunes en todos los dispositivos en los que se debe ejecutar.
Como procedimiento recomendado, conserve los datos en la memoria solo cuando sea necesario. Cargar
imágenes en una base de datos tan pronto como pueda; Descargue imágenes solo cuando el usuario de la
aplicación las solicite.

Número y moneda
Los tipos de datos Number y Currency usan el estándar de punto flotante de doble precisión IEEE 754. Este
estándar proporciona un gran número de números en los que trabajar, desde – 1,79769 x 10308 hasta 1,79769 x
10308. El valor más pequeño que se puede representar es 5 x 10– 324.
Las aplicaciones de lienzo pueden representar exactamente números enteros (o enteros) entre –
9.007.199.254.740.991 (– (253 – 1)) y 9.007.199.254.740.991 (253 – 1), ambos incluidos. Este intervalo es mayor
que los tipos de datos enteros de 32 bits (o 4 bytes) que usan habitualmente las bases de datos. Sin embargo, las
aplicaciones de canvas no pueden representar tipos de datos enteros de 64 bits (o 8 bytes). Es posible que quiera
almacenar el número en un campo de texto o usar una columna calculada para crear una copia del número en un
campo de texto, de modo que se asigne a un tipo de datos de texto en la aplicación Canvas. De esta manera,
puede mantener, mostrar y escribir estos valores, así como compararlos para determinar si son iguales; sin
embargo, en este formulario no se pueden realizar cálculos numéricos.
La aritmética de punto flotante es aproximada, por lo que a veces puede proporcionar resultados inesperados con
muchos ejemplos documentados. Podría esperar que la fórmula 55/100 * 100 devuelva exactamente 55 y (55/100
* 100)-55 para que se devuelva exactamente cero. Sin embargo, la última fórmula devuelve 7,1054 x 10– 15, que es
muy pequeño pero no cero. Esta pequeña diferencia no provoca normalmente un problema y la aplicación la
redondea al mostrar el resultado. Sin embargo, las pequeñas diferencias pueden componerse en cálculos
posteriores y parecen dar la respuesta equivocada.
Los sistemas de base de datos suelen almacenar monedas y realizar cálculos mediante el uso de matemáticas
decimales, que ofrece un intervalo menor pero mayor control sobre la precisión. De forma predeterminada, las
aplicaciones de canvas asignan divisas dentro y fuera de los valores de punto flotante; por consiguiente, el
resultado podría diferir de los cálculos que se realizan en un tipo de datos decimal nativo. Si este tipo de
discrepancia causa problemas, puede que desee trabajar con estos valores como texto, del mismo modo que con
los enteros grandes descritos anteriormente en esta sección.

Fecha, hora y fecha y hora


Zonas horarias
Los valores de fecha y hora se encuentran en estas categorías:
Local del usuario: estos valores se almacenan en UTC (hora universal coordinada), pero la zona horaria del
usuario de la aplicación afecta a cómo la aplicación muestra estos valores y cómo los especifica el usuario de la
aplicación. Por ejemplo, el mismo momento aparece de manera diferente para un usuario en Canadá que para
un usuario de Japón.
Independiente de la zona horaria: la aplicación muestra estos valores de la misma manera y el usuario de la
aplicación los especifica de la misma manera, independientemente de la zona horaria. El mismo momento
aparece de la misma manera para un usuario en Canadá que para un usuario de Japón. Los autores de
aplicaciones que no esperan que sus aplicaciones se ejecuten en distintas zonas horarias usan estos valores, ya
que son más sencillos.
En esta tabla se muestran algunos ejemplos:

VALOR QUE SE MUESTRA Y SE


VALOR ALMACENADO EN LA ESPECIFICAN 7 HORAS OESTE VALOR QUE SE MUESTRA Y SE
TIPO DE FECHA Y HORA BASE DE DATOS DE UTC ESCRIBE 4 HORAS ESTE DE UTC

Usuario local Domingo, puede 19 2019 Sábado, puede 18 2019 Domingo, puede 19 2019
4:00 AM 9:00 PM 8:00 AM

Independiente de la zona Domingo, puede 19 2019 Domingo, puede 19 2019 Domingo, puede 19 2019
horaria 4:00 AM 4:00 AM 4:00 AM

En el caso de la fecha y hora locales del usuario , las aplicaciones de lienzo usan la zona horaria del explorador o
el dispositivo, pero las aplicaciones controladas por modelos usan la configuración del usuario en Common Data
Service. Estos valores suelen coincidir, pero los resultados variarán si esta configuración es diferente.
Utilice las funciones DateAdd y TimeZoneInformation para volver a convertir la hora local a UTC y viceversa.
Vea los ejemplos al final de la documentación de estas funciones.
Equivalentes numéricos
Las aplicaciones de lienzo contienen y calculan todos los valores de fecha y hora, ya sean locales o de zona
horaria independientes de la hora UTC. La aplicación traduce los valores en función de la zona horaria del
usuario de la aplicación cuando los muestra y cuando el usuario de la aplicación los especifica.
Cuando una aplicación de lienzo Lee un valor independiente de la zona horaria de un origen de datos o escribe
este valor en un origen de datos, la aplicación ajusta automáticamente el valor para compensar la zona horaria del
usuario de la aplicación. A continuación, la aplicación trata el valor como un valor UTC, coherente con todos los
demás valores de fecha y hora de la aplicación. Debido a esta compensación, el valor independiente de la zona
horaria original aparece cuando la aplicación ajusta el valor UTC de la zona horaria del usuario de la aplicación.
Puede observar este comportamiento más detenidamente mediante el uso de la función Value para tener acceso
al valor numérico subyacente de un valor de fecha y hora. Esta función devuelve el valor de fecha y hora como el
número de milisegundos transcurridos desde el 1 de enero de 1970 00:00:00.000 UTC.
Dado que cada valor de fecha y hora se mantiene en UTC, el valor de la fórmula (fecha (1970; 1; 1)) no devolverá
cero en la mayoría de las partes del mundo porque la función Date devuelve una fecha en formato UTC. Por
ejemplo, la fórmula devolverá 28,8 millones en una zona horaria en la que se desplace la hora UTC en ocho horas.
Ese número refleja el número de milisegundos en ocho horas.
Volviendo al ejemplo anterior:

VALOR QUE SE MUESTRA Y SE


VALOR ALMACENADO EN LA ESPECIFICAN 7 HORAS OESTE
TIPO DE FECHA Y HORA BASE DE DATOS DE UTC LA FUNCIÓN VALUE DEVUELVE

Usuario local Domingo, puede 19 2019 Sábado, puede 18 2019 1.558.238.400.000


4:00 AM 9:00 PM (Domingo, puede 19 2019
4:00 AM UTC)

Independiente de la zona Domingo, puede 19 2019 Domingo, puede 19 2019 1.558.263.600.000


horaria 4:00 AM 4:00 AM (Domingo, puede 19 2019
11:00 AM UTC)

Convertir horas UNIX


Los tiempos UNIX reflejan el número de segundos transcurridos desde el 1 de enero de 1970 00:00:00 UTC. Dado
que las aplicaciones de canvas usan milisegundos en lugar de segundos, puede convertir entre los dos
multiplicando o dividiendo por 1.000.
Por ejemplo, la hora de UNIX muestra el 9 de septiembre de 2001, a las 01:46:40 UTC como 1 mil millones. Para
mostrar ese valor de fecha y hora en una aplicación de lienzo, multiplique ese número por 1.000 para convertirlo
en milisegundos y usarlo en una función de texto . El texto de la fórmula (1 mil millones * 1000;
DateTimeFormat. UTC ) devuelve la cadena 2001-09-09T01:46:40.000 z.
Sin embargo, esa función devuelve el sábado, 8 de septiembre de 2001 18:46:40 si usa el formato
DateTimeFormat. LongDateTime24 en una zona horaria con una diferencia de 7 horas con respecto a la hora
UTC (7 horas oeste de UTC ). Este resultado muestra el valor DateTime correctamente basado en la zona horaria
local.
Para convertir a una hora de UNIX, divida el resultado de Value por 1.000:
Redondear (valor (UnixTime)/1000, 0)
Si necesita la hora de UNIX en un valor de fecha para obtener más cálculos o Mostrar en PowerApps, use esta
fórmula:
DateAdd (fecha (1970, 1, 1), UnixTime, segundos)
SQL Server
SQL Server tiene DateTime, Datetime2y otros tipos de datos de fecha y hora que no incluyen un
desplazamiento de zona horaria y no indican la zona horaria en la que se encuentran. Las aplicaciones de canvas
suponen que estos valores se almacenan en UTC y los tratan como usuario local. Si los valores están diseñados
para ser independientes de la zona horaria, corrija las traducciones UTC mediante la función TimeZoneOffset .
Las aplicaciones de lienzo usan la información de zona horaria incluida en campos DateTimeOffset al convertir
un valor en la representación UTC interna de la aplicación. Las aplicaciones siempre usan la hora UTC como zona
horaria (cero desplazamiento de zona horaria) cuando escriben datos.
Las aplicaciones de lienzo leen y escriben los valores del tipo de datos Time en SQL Server como cadenas de
texto en el formato de duración ISO 8601. Por ejemplo, debe analizar este formato de cadena y usar la función
Time para convertir la cadena de texto "PT2H1M39S" en un valor de hora :

First(
ForAll(
MatchAll( "PT2H1M39S"; "PT(?:(?<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" );
Time( Value( hours ); Value( minutes ); Value( seconds ) )
)
).Value

Mezclar información de fecha y hora


Date, Timey DateTime tienen nombres diferentes, pero todos contienen la misma información sobre las fechas y
horas.
Un valor de fecha puede incluir información de hora con él, que normalmente es la medianoche. Un valor de hora
puede contener información de fecha, que suele ser el 1 de enero de 1970. Common Data Service también
almacena información de hora con un campo de fecha solo , pero muestra solo la información de fecha de forma
predeterminada. Del mismo modo, las aplicaciones de canvas distinguen a veces estos tipos de datos para
determinar los formatos y controles predeterminados.
No se recomienda agregar y restar los valores de fecha y hora directamente porque la zona horaria y otras
conversiones podrían producir resultados confusos. Use la función Value para convertir los valores de fecha y
hora en milisegundos en primer lugar y tener en cuenta la zona horaria del usuario de la aplicación, o use las
funciones DateAdd y DateDiff para sumar o restar de uno de estos valores.

Conjuntos de opciones y dos opciones


Los conjuntos de opciones y los tipos de datos de dos opciones proporcionan dos o más opciones para que un
usuario de la aplicación seleccione. Por ejemplo, un conjunto de opciones de Estado de pedido podría ofrecer las
opciones nuevas, enviadas, facturadasy cerradas. El tipo de datos de dos opciones solo ofrece dos opciones.
Ambos tipos de datos muestran sus etiquetas en un contexto de cadena de texto. Por ejemplo, un control etiqueta
muestra una de las opciones de estado de orden si la propiedad texto del control se establece en una fórmula que
hace referencia a ese conjunto de opciones. Las etiquetas de opción se pueden localizar para los usuarios de
aplicaciones en ubicaciones diferentes.
Cuando un usuario de la aplicación selecciona una opción y guarda ese cambio, la aplicación transmite los datos a
la base de datos, que almacena esos datos en una representación independiente del lenguaje. Una opción en un
conjunto de opciones se transmite y almacena como un número, y una opción en un tipo de datos de dos opciones
se transmite y se almacena como un valor booleano.
Las etiquetas solo son para fines de presentación. No se pueden realizar comparaciones directas con las etiquetas
porque son específicas de un idioma. En su lugar, cada conjunto de opciones tiene una enumeración que funciona
con el número o valor booleano subyacente. Por ejemplo, no puede usar esta fórmula:
If( ThisItem.OrderStatus = "Active"; ...

Pero puede usar esta fórmula:


If( ThisItem.OrderStatus = OrderStatus.Active; ...

En el caso de los conjuntos de opciones globales (que comparten las entidades), el nombre de la enumeración de
conjuntos de opciones coincide con el nombre del conjunto de opciones global. En el caso de los conjuntos de
opciones locales (cuyo ámbito es una entidad), el nombre puede contener el nombre de la entidad. Este
comportamiento evita conflictos si varias entidades tienen conjuntos de opciones con el mismo nombre. Por
ejemplo, la entidad accounts puede tener una opción OrderStatus establecida y su nombre podría ser
OrderStatus (accounts) . Ese nombre contiene uno o varios espacios y paréntesis, por lo que debe encerrarlo con
comillas simples si hace referencia a él en una fórmula.
Además, los valores de dos opciones también pueden comportarse como valores booleanos. Por ejemplo, un valor
de dos opciones denominado TaxStatus podría tener las etiquetas gravable y No gravable, que corresponden a
true y false respectivamente. Para mostrarlo, puede usar esta fórmula:
If( ThisItem.Taxable = TaxStatus.Taxable; ...

También puede usar esta fórmula equivalente:


If( ThisItem.Taxable; ...
Función DataSourceInfo en PowerApps
08/10/2019 • 7 minutes to read

Proporciona información sobre un origen de datos.

Información general
Los orígenes de datos pueden proporcionar una gran cantidad de información para optimizar la experiencia
del usuario.
Puede usar información de nivel de columna para validar entradas de usuario y proporcionar una respuesta
inmediata al usuario antes de usar la función Patch . La función Validate usa esta misma información.
Puede usar información en el nivel de origen de datos para, por ejemplo, deshabilitar u ocultar los botones
Editar y Nuevo de los usuarios que no tienen permisos para editar y crear registros.
Los orígenes de datos varían en la cantidad de información que proporcionan; incluso pueden no ofrecer
ninguna. Las colecciones no proporcionan ninguna información. Si no se proporciona una parte de la
información, se utilizará el valor predeterminado o se devolverá blank.

Descripción
Información de columna
Puede usar DataSourceInfo para obtener información sobre una columna concreta de un origen de datos:

ARGUMENTO DE INFORMACIÓN TIPO DE RESULTADO DESCRIPCIÓN

DataSourceInfo.DisplayName Cadena Nombre para mostrar de la columna.


Si no se ha definido ningún nombre
para mostrar, devolverá el nombre de
la columna.

DataSourceInfo.MaxLength Número Número máximo de caracteres que


puede contener la columna. Solo se
aplica a las columnas que contienen
cadenas. Si no se configura un
máximo, devuelve blank.

DataSourceInfo.MaxValue Número Valor numérico máximo que puede


contener una columna. Solo se aplica
a las columnas que contienen
números. Si no se configura un
máximo, devuelve blank.

DataSourceInfo.MinValue Número Valor numérico mínimo que puede


contener una columna. Solo se aplica
a las columnas que contienen
números. Si no se configura un
mínimo, devuelve blank.

DataSourceInfo.Required Booleano ¿Es un valor requerido para esta


columna? Si no se establece mediante
el origen de datos devuelve false.
El tercer argumento es el nombre de una columna como una cadena. Por ejemplo, la columna Teléfono de la
colección Personas se pasaría como "Teléfono" incluidas las comillas dobles.
Información de origen de datos
Puede usar DataSourceInfo para obtener información sobre un origen de datos como un todo:

ARGUMENTO DE INFORMACIÓN TIPO DE RESULTADO DESCRIPCIÓN

DataSourceInfo.AllowedValues Booleano ¿Qué tipos de permisos se les pueden


conceder a los usuarios para este
origen de datos? Si no se establecen
mediante el origen de datos, se
devuelve blank.

DataSourceInfo.CreatePermission Booleano ¿Tiene permiso el usuario actual para


crear registros en este origen de
datos? Si no se establece mediante el
origen de datos, devuelve true.

DataSourceInfo.DeletePermission Booleano ¿Tiene permiso el usuario actual para


eliminar registros en este origen de
datos? Si no se establece mediante el
origen de datos, devuelve true.

DataSourceInfo.EditPermission Booleano ¿Tiene permiso el usuario actual para


editar registros en este origen de
datos? Si no se establece mediante el
origen de datos, devuelve true.

DataSourceInfo.ReadPermission Booleano ¿Tiene permiso el usuario actual para


leer registros en este origen de datos?
Si no se establece mediante el origen
de datos, devuelve true.

Sintaxis
DataSourceInfo( DataSource; Information; ColumnName )
DataSource: requerido. El origen de datos que se va a usar.
Information: requerido. El tipo de información que desea recuperar.
ColumnName: opcional. Para la información en el nivel de columna, el nombre de columna como una
cadena. La columna Teléfono se pasaría como "Teléfono" incluidas las comillas dobles. Para la
información en el nivel de origen de datos, el argumento ColumnName no se puede usar.

NOTE
En el caso de orígenes de datos de SharePoint y Excel que contengan nombres de columna con espacios,
especifique cada uno de ellos como "_x0020_" . Por ejemplo, especifique "Nombre de columna" como
"Nombre_x0020_de_columna" .

Ejemplos
Los ejemplos de esta sección usan este origen de datos, denominado IceCream:
El origen de datos también ha proporcionado esta información:
El nombre para mostrar para Quantity es "Cantidad disponible".
La longitud máxima de Flavor es de 30 caracteres.
La columna Flavor debe contener un valor. La columna Quantity no se requiere.
La cantidad mínima es 0.
La cantidad máxima es 100.
El usuario actual puede leer y editar los registros del origen de datos IceCream, pero no se pueden crear ni
eliminar registros.

FÓRMULA DESCRIPCIÓN RESULTADO

DataSourceInfo( IceCream; Devuelve el nombre para mostrar de "Cantidad disponible"


DataSourceInfo.DisplayName; "Qu la columna Quantity del origen de
antity" ) datos IceCream.

DataSourceInfo( IceCream; Devuelve la longitud máxima de la 30


DataSourceInfo.MaxLength; "Flavo cadena para la columna Flavor del
r" ) origen de datos IceCream.

DataSourceInfo( IceCream; ¿Se requiere la columna Flavor del true


DataSourceInfo.Required; "Flavor" origen de datos IceCream?
)

DataSourceInfo( IceCream; ¿Se requiere la columna Quantity del false


DataSourceInfo.Required; "Quantit origen de datos IceCream?
y" )

DataSourceInfo( IceCream; Devuelve el valor numérico máximo 100


DataSourceInfo.MaxValue; "Quanti de la columna Quantity del origen de
ty" ) datos IceCream.

DataSourceInfo( IceCream; Devuelve el valor numérico mínimo de 0


DataSourceInfo.MinValue; "Quantit la columna Quantity del origen de
y" ) datos IceCream.

DataSourceInfo( IceCream; ¿Puede leer el usuario actual los true


DataSourceInfo.ReadPermission) registros del origen de datos
IceCream?

DataSourceInfo( IceCream; ¿Puede editar el usuario actual los true


DataSourceInfo.EditPermission) registros del origen de datos
IceCream?

DataSourceInfo( IceCream; ¿Puede crear el usuario actual los false


DataSourceInfo.CreatePermission) registros del origen de datos
IceCream?

DataSourceInfo( IceCream; ¿Puede eliminar el usuario actual los false


DataSourceInfo.DeletePermission) registros del origen de datos
IceCream?
Funciones de Date y Time en PowerApps
08/10/2019 • 3 minutes to read

Convierte los componentes de fecha y hora en un valor de fecha y hora.

Descripción
La función Date convierte los valores individuales de año, mes y día en un valor de fecha y hora. La parte de la hora
es la medianoche.
Si el año está comprendido entre 0 y 1899 (ambos incluidos), la función agrega ese valor a 1900 para calcular el
año. 70 se convierte en 1970.
Si el valor de Mes es menor que 1 o mayor que 12, el resultado restará o sumará esos meses desde el principio
del año especificado.
Si el valor de Día es mayor que el número de días del mes especificado, la función sumará esos días al primer
día del mes y devolverá una fecha correspondiente de un mes posterior. Si el valor de Día es menor que 1, la
función resta esa cantidad de días, más 1, desde el primer día del mes especificado.
La función Time convierte los valores individuales de hora, minuto y segundo en un valor de fecha y hora. El
resultado no tiene ninguna fecha asociada a él.
Consulte las funciones DateValue , TimeValue y DateTimeValue para obtener información acerca de cómo
convertir una cadena en un valor.
Consulte también cómo trabajar con fechas y horas para más información.

Sintaxis
Date( Year; Month; Day )
Year: requerido. Los números mayores a 1899 se interpretan como un absoluto (1980 se interpreta como 1980).
Los números comprendidos entre 0 y 1899 se interpretan en relación con 1900. (Por ejemplo, 80 se interpreta
como 1980).
Month: requerido. Un número comprendido entre 1 y 12.
Day: requerido. Un número comprendido entre 1 y 31.
Time( Hour; Minute; Second )
Hour: requerido. Un número comprendido entre 0 (12:00 a. m.) y 23 (11:00 p. m).
Minute: requerido. Un número comprendido entre 0 y 59.
Second: requerido. Un número comprendido entre 0 y 59.

Ejemplos
Fecha
Si un usuario escribe 1979 en un control de entrada de texto denominado HireYear, 3 en otro control denominado
HireMonth y 17 en un tercer control denominado HireDay, esta función debería devolver 3/17/1979:
Date(Value(HireYear.Text); Value(HireMonth.Text); Value(HireDay.Text))
Time
Si un usuario escribe 14 en un control de entrada de texto denominado BirthHour, 50 en otro control denominado
BirthMinute y 24 en un tercer control denominado BirthSecond, esta función debería devolver 02:50:24 p.
Text(Time(Value(BirthHour.Text); Value(BirthMinute.Text); Value(BirthSecond.Text)); "hh:mm:ss a/p")
Funciones DateAdd, DateDiff y TimeZoneOffset de
PowerApps
08/10/2019 • 6 minutes to read

Agrega valores de fecha y hora o encuentra la diferencia en estos valores y realiza la conversión entre la hora local
y UTC.

Descripción
La función DateAdd agrega un número de unidades a un valor de fecha y hora. El resultado es un nuevo valor de
fecha y hora. También puede restar un número de unidades de un valor de fecha y hora mediante la especificación
de un valor negativo.
La función DateDiff devuelve la diferencia entre dos valores de fecha y hora. El resultado es un número de
unidades.
En ambas funciones, las unidades pueden ser Milisegundos, Segundos, Minutos, Horas, Días, Meses,
Trimestres o Años. De forma predeterminada, ambas funciones usan días como unidades.
La función TimeZoneOffset devuelve el número de minutos entre la hora local del usuario y la Hora universal
coordinada (UTC ).
Puede usar DateAdd con TimeZoneOffset para realizar la conversión entre la hora local del usuario y la Hora
universal coordinada (UTC ). Al sumar TimeZoneOffset se convierte la hora local a UTC y al restarlo (agregar el
signo negativo) se convierte de UTC a la hora local.
Vea también tipos de datos Date, Time y DateTime, y trabajar con fechas y horas para obtener más información.

Sintaxis
DateAdd( DateTime; Addition [; Units ] )
DateTime: requerido. Valor de fecha y hora con el que operar.
Suma: requerido. Número, en unidades, para agregar a DateTime.
Unidades: opcional. Tipo de unidades que se van a agregar: Milisegundos, segundos, minutos, horas, días,
meses, trimestreso años. Si no se especifica, se usará Días.
DateDiff( StartDateTime; EndDateTime [; Units ] )
StartDateTime: requerido. Valor de fecha y hora de inicio.
EndDateTime: requerido. Valor de fecha y hora de finalización.
Unidades: opcional. Tipo de unidades que se van a agregar: Milisegundos, segundos, minutos, horas, días,
meses, trimestreso años. Si no se especifica, se usará Días.
TimeZoneOffset( [ DateTime ] )
DateTime: opcional. Valor de fecha y hora para el que se devuelve el desplazamiento. De forma predeterminada,
se utiliza la fecha y hora actuales.

Ejemplos
En todos estos ejemplos, se supone que la fecha y hora actuales son 15 de julio de 2013, 1:02 p.m.
DateAdd simple
FÓRMULA DESCRIPCIÓN RESULTADO

Text( DateAdd( Now(); 3 ); Agrega tres días (unidades "18-07-2013 13:02"


"dd-mm-yyyy hh:mm" ) predeterminadas) a la fecha y hora
actuales.

Text( DateAdd( Now(); 4; Hours ); Agrega cuatro horas a la fecha y hora "15-07-2013 17:02"
"dd-mm-yyyy hh:mm" ) actuales.

Text( DateAdd( Today(); 1; Months ); Agrega un mes a la fecha actual, sin "15-08-2013 00:00"
"dd-mm-yyyy hh:mm" ) tiempo dado que Today no devuelve
un componente de tiempo.

Text( DateAdd( Now(); ‑;30; Minutes Resta 30 minutos de la fecha y hora "15-07-2013 12:32"
); actuales.
"dd-mm-yyyy hh:mm" )

DateDiff simple
FÓRMULA DESCRIPCIÓN RESULTADO

DateDiff( Now(); Devuelve la diferencia entre las dos 170


DateValue("1/1/2014") ) unidades en las unidades
predeterminadas de Días.

DateDiff( Now(); Devuelve la diferencia entre los dos 6


DateValue("1/1/2014"); Months ) valores en Meses.

DateDiff( Now(); Today(); Minutes ) Devuelve la diferencia entre la fecha y -782


hora actuales y la fecha actual
solamente (ninguna hora) en minutos.
Puesto que Now es posterior a Today,
el resultado es negativo.

Conversión a UTC
Para convertir a UTC (Hora universal coordinada), agregue TimeZoneOffset durante el tiempo especificado.
Imagine, por ejemplo, que los valores de fecha y hora actuales son 15 de julio de 2013, 1:02 p.m. en la Hora de
verano del Pacífico (PDT, UTC -7). Para determinar la hora actual en hora UTC, use:
DateAdd( Now(); TimeZoneOffset(); Minutes )
TimeZoneOffset toma como valor predeterminado la hora actual, por lo que no es necesario pasarle un
argumento.
Para ver el resultado, use la función Text con el formato dd -mm -aaaa hh:mm, que devolverá 15-07-2013 20:02.
Conversión desde UTC
Para convertir desde UTC, reste TimeZoneOffset (agregando el signo negativo) para la hora especificada.
Imagine, por ejemplo, que los valores de fecha y hora UTC 15 de julio de 2013, 8:02 p.m. se almacenan en una
variable llamada StartTime. Para ajustar la hora de la zona horaria del usuario, use:
DateAdd (StartTime, −TimeZoneOffset (StartTime), minutos)
Tenga en cuenta el signo negativo delante de TimeZoneOffset para restar el desplazamiento en lugar de sumarlo.
Para ver el resultado, use la función Text con el formato dd -mm -aaaa hh:mm, que devuelve 15-07-2013 13:02 en
la Hora de verano del Pacífico.
Funciones DateAdd, DateDiff y TimeZoneOffset de
PowerApps
08/10/2019 • 6 minutes to read

Agrega valores de fecha y hora o encuentra la diferencia en estos valores y realiza la conversión entre la hora local
y UTC.

Descripción
La función DateAdd agrega un número de unidades a un valor de fecha y hora. El resultado es un nuevo valor de
fecha y hora. También puede restar un número de unidades de un valor de fecha y hora mediante la especificación
de un valor negativo.
La función DateDiff devuelve la diferencia entre dos valores de fecha y hora. El resultado es un número de
unidades.
En ambas funciones, las unidades pueden ser Milisegundos, Segundos, Minutos, Horas, Días, Meses,
Trimestres o Años. De forma predeterminada, ambas funciones usan días como unidades.
La función TimeZoneOffset devuelve el número de minutos entre la hora local del usuario y la Hora universal
coordinada (UTC ).
Puede usar DateAdd con TimeZoneOffset para realizar la conversión entre la hora local del usuario y la Hora
universal coordinada (UTC ). Al sumar TimeZoneOffset se convierte la hora local a UTC y al restarlo (agregar el
signo negativo) se convierte de UTC a la hora local.
Vea también tipos de datos Date, Time y DateTime, y trabajar con fechas y horas para obtener más información.

Sintaxis
DateAdd( DateTime; Addition [; Units ] )
DateTime: requerido. Valor de fecha y hora con el que operar.
Suma: requerido. Número, en unidades, para agregar a DateTime.
Unidades: opcional. Tipo de unidades que se van a agregar: Milisegundos, segundos, minutos, horas, días,
meses, trimestreso años. Si no se especifica, se usará Días.
DateDiff( StartDateTime; EndDateTime [; Units ] )
StartDateTime: requerido. Valor de fecha y hora de inicio.
EndDateTime: requerido. Valor de fecha y hora de finalización.
Unidades: opcional. Tipo de unidades que se van a agregar: Milisegundos, segundos, minutos, horas, días,
meses, trimestreso años. Si no se especifica, se usará Días.
TimeZoneOffset( [ DateTime ] )
DateTime: opcional. Valor de fecha y hora para el que se devuelve el desplazamiento. De forma predeterminada,
se utiliza la fecha y hora actuales.

Ejemplos
En todos estos ejemplos, se supone que la fecha y hora actuales son 15 de julio de 2013, 1:02 p.m.
DateAdd simple
FÓRMULA DESCRIPCIÓN RESULTADO

Text( DateAdd( Now(); 3 ); Agrega tres días (unidades "18-07-2013 13:02"


"dd-mm-yyyy hh:mm" ) predeterminadas) a la fecha y hora
actuales.

Text( DateAdd( Now(); 4; Hours ); Agrega cuatro horas a la fecha y hora "15-07-2013 17:02"
"dd-mm-yyyy hh:mm" ) actuales.

Text( DateAdd( Today(); 1; Months ); Agrega un mes a la fecha actual, sin "15-08-2013 00:00"
"dd-mm-yyyy hh:mm" ) tiempo dado que Today no devuelve
un componente de tiempo.

Text( DateAdd( Now(); ‑;30; Minutes Resta 30 minutos de la fecha y hora "15-07-2013 12:32"
); actuales.
"dd-mm-yyyy hh:mm" )

DateDiff simple
FÓRMULA DESCRIPCIÓN RESULTADO

DateDiff( Now(); Devuelve la diferencia entre las dos 170


DateValue("1/1/2014") ) unidades en las unidades
predeterminadas de Días.

DateDiff( Now(); Devuelve la diferencia entre los dos 6


DateValue("1/1/2014"); Months ) valores en Meses.

DateDiff( Now(); Today(); Minutes ) Devuelve la diferencia entre la fecha y -782


hora actuales y la fecha actual
solamente (ninguna hora) en minutos.
Puesto que Now es posterior a Today,
el resultado es negativo.

Conversión a UTC
Para convertir a UTC (Hora universal coordinada), agregue TimeZoneOffset durante el tiempo especificado.
Imagine, por ejemplo, que los valores de fecha y hora actuales son 15 de julio de 2013, 1:02 p.m. en la Hora de
verano del Pacífico (PDT, UTC -7). Para determinar la hora actual en hora UTC, use:
DateAdd( Now(); TimeZoneOffset(); Minutes )
TimeZoneOffset toma como valor predeterminado la hora actual, por lo que no es necesario pasarle un
argumento.
Para ver el resultado, use la función Text con el formato dd -mm -aaaa hh:mm, que devolverá 15-07-2013 20:02.
Conversión desde UTC
Para convertir desde UTC, reste TimeZoneOffset (agregando el signo negativo) para la hora especificada.
Imagine, por ejemplo, que los valores de fecha y hora UTC 15 de julio de 2013, 8:02 p.m. se almacenan en una
variable llamada StartTime. Para ajustar la hora de la zona horaria del usuario, use:
DateAdd (StartTime, −TimeZoneOffset (StartTime), minutos)
Tenga en cuenta el signo negativo delante de TimeZoneOffset para restar el desplazamiento en lugar de sumarlo.
Para ver el resultado, use la función Text con el formato dd -mm -aaaa hh:mm, que devuelve 15-07-2013 13:02 en
la Hora de verano del Pacífico.
Funciones DateValue, TimeValue y DateTimeValue en
PowerApps
08/10/2019 • 6 minutes to read

Convierte una fecha o una hora, o ambas, en un valor de fecha y hora.

Descripción
La función DateValue convierte una cadena de fecha (por ejemplo, "10/01/2014") en un valor de fecha y hora.
La función TimeValue convierte una cadena de hora (por ejemplo, "12:15 p. m.") en un valor de fecha y hora.
La función DateTimeValue convierte una cadena de fecha y hora (por ejemplo, "10 de enero de 2013, 12:13
a. m.") en un valor de fecha y hora.
La función DateValue ignora cualquier información de hora en la cadena de fecha y la función TimeValue ignora
cualquier información de fecha en la cadena de hora.
De forma predeterminada, el idioma utilizado es el del usuario actual, pero puede invalidar esta opción para
asegurarse de que las cadenas se interpreten correctamente. Por ejemplo, "10/1/1920" se interpreta como el 1 de
octubre en "inglés" y como 10 de enero en "francés".
Las fechas deben estar en uno de estos formatos:
MM/DD/AAAA
DD/MM/AAAA
DD Mes AAAA
Mes DD, AAAA
Consulte las funciones Date y Time para convertir a partir de componentes numéricos la fecha, mes y año, y la
hora, minuto y segundo.
Consulte también cómo trabajar con fechas y horas para más información.
Para convertir números, consulte la función Value .

Sintaxis
DateValue( String [; Language ])
DateTimeValue( String [; Language ])
TimeValue( String [; Language ])
String: requerido. Una cadena de texto que contiene un valor de fecha, de hora, o una combinación de ambas.
Idioma: opcional. Una cadena de idioma, como la que devuelven los dos primeros caracteres de la función
Language . Si no se indica, se utilizará el idioma de cliente del usuario actual.

Ejemplos
DateValue
Si escribió 10/11/2014 en un control de entrada de texto denominado Startdate y, después, estableció la
propiedad Texto de una etiqueta en esta función:
Text(DateValue(Startdate.Text); DateTimeFormat.LongDate)
La etiqueta debería mostrar el sábado, 11 de octubre de 2014, si su equipo se ha configurado con la
configuración regional en.

NOTE
Puede utilizar varias opciones, excepto LongDateTime, con el parámetro DateTimeFormat. Para mostrar una lista de
esas opciones, escriba el parámetro, seguido inmediatamente de un signo de exclamación, en el cuadro de función.

Text(DateValue(Startdate.Text; "fr"); DateTimeFormat.LongDate)


La etiqueta mostrará ahora el lunes 10 de noviembre de 2014.
Si hizo lo mismo en el 20 de octubre de 2014:
DateDiff(DateValue(Startdate.Text); Today())
Si su equipo se ha configurado con el idioma en, la etiqueta mostrará 9, que indica el número de días entre
el 11 de octubre y el 20 de octubre. La función DateDiff también puede mostrar la diferencia en meses,
trimestres o años.
DateTimeValue
Si escribió 10/11/2014 1:50:24.765 p. m. en un control de entrada de texto denominado Start y, después,
estableció la propiedad Texto de una etiqueta en esta función:
Text(DateTimeValue(Start.Text); DateTimeFormat.LongDateTime)
La etiqueta debería mostrar el sábado, 11 de octubre de 2014 1:50:24 p. m. , si su equipo se ha
configurado con la configuración regional "en".

NOTE
Puede utilizar varias opciones, excepto LongDateTime, con el parámetro DateTimeFormat. Para mostrar una lista de
esas opciones, escriba el parámetro, seguido inmediatamente de un signo de exclamación, en el cuadro de función.

Text(DateTimeValue(Start.Text; "fr"); DateTimeFormat.LongDateTime)


La etiqueta mostrará ahora el lunes 10 de noviembre de 2014 1:50:24 p. m.
Text(DateTimeValue(Start.Text); "dddd, mmmm dd, yyyy hh:mm:ss.fff AM/PM")
La etiqueta debería mostrar el sábado, 11 de octubre de 2014 01:50:24:765 p. m. , si su equipo se ha
configurado con la configuración regional en.
Como alternativa, puede especificar hh:mm:ss.f o hh:mm:ss.ff para redondear la hora a la décima o
centésima de segundo más cercana.
TimeValue
Asigne el nombre FinishedAt a un control de entrada de texto y establezca la propiedad Text de una etiqueta en
esta función:
If(TimeValue(FinishedAt.Text)<TimeValue("5:00:00.000 PM"); "You made it!"; "Too late!")
Si escribe 4:59:59.999 PM en el control FinishedAt la etiqueta mostrará el texto "You made it!"
Si escribe 5:00:00.000 p. m. en el control FinishedAt, la etiqueta mostrará el texto "Too late!"
Funciones DateValue, TimeValue y DateTimeValue en
PowerApps
08/10/2019 • 6 minutes to read

Convierte una fecha o una hora, o ambas, en un valor de fecha y hora.

Descripción
La función DateValue convierte una cadena de fecha (por ejemplo, "10/01/2014") en un valor de fecha y hora.
La función TimeValue convierte una cadena de hora (por ejemplo, "12:15 p. m.") en un valor de fecha y hora.
La función DateTimeValue convierte una cadena de fecha y hora (por ejemplo, "10 de enero de 2013, 12:13
a. m.") en un valor de fecha y hora.
La función DateValue ignora cualquier información de hora en la cadena de fecha y la función TimeValue ignora
cualquier información de fecha en la cadena de hora.
De forma predeterminada, el idioma utilizado es el del usuario actual, pero puede invalidar esta opción para
asegurarse de que las cadenas se interpreten correctamente. Por ejemplo, "10/1/1920" se interpreta como el 1 de
octubre en "inglés" y como 10 de enero en "francés".
Las fechas deben estar en uno de estos formatos:
MM/DD/AAAA
DD/MM/AAAA
DD Mes AAAA
Mes DD, AAAA
Consulte las funciones Date y Time para convertir a partir de componentes numéricos la fecha, mes y año, y la
hora, minuto y segundo.
Consulte también cómo trabajar con fechas y horas para más información.
Para convertir números, consulte la función Value .

Sintaxis
DateValue( String [; Language ])
DateTimeValue( String [; Language ])
TimeValue( String [; Language ])
String: requerido. Una cadena de texto que contiene un valor de fecha, de hora, o una combinación de ambas.
Idioma: opcional. Una cadena de idioma, como la que devuelven los dos primeros caracteres de la función
Language . Si no se indica, se utilizará el idioma de cliente del usuario actual.

Ejemplos
DateValue
Si escribió 10/11/2014 en un control de entrada de texto denominado Startdate y, después, estableció la
propiedad Texto de una etiqueta en esta función:
Text(DateValue(Startdate.Text); DateTimeFormat.LongDate)
La etiqueta debería mostrar el sábado, 11 de octubre de 2014, si su equipo se ha configurado con la
configuración regional en.

NOTE
Puede utilizar varias opciones, excepto LongDateTime, con el parámetro DateTimeFormat. Para mostrar una lista de
esas opciones, escriba el parámetro, seguido inmediatamente de un signo de exclamación, en el cuadro de función.

Text(DateValue(Startdate.Text; "fr"); DateTimeFormat.LongDate)


La etiqueta mostrará ahora el lunes 10 de noviembre de 2014.
Si hizo lo mismo en el 20 de octubre de 2014:
DateDiff(DateValue(Startdate.Text); Today())
Si su equipo se ha configurado con el idioma en, la etiqueta mostrará 9, que indica el número de días entre
el 11 de octubre y el 20 de octubre. La función DateDiff también puede mostrar la diferencia en meses,
trimestres o años.
DateTimeValue
Si escribió 10/11/2014 1:50:24.765 p. m. en un control de entrada de texto denominado Start y, después,
estableció la propiedad Texto de una etiqueta en esta función:
Text(DateTimeValue(Start.Text); DateTimeFormat.LongDateTime)
La etiqueta debería mostrar el sábado, 11 de octubre de 2014 1:50:24 p. m. , si su equipo se ha
configurado con la configuración regional "en".

NOTE
Puede utilizar varias opciones, excepto LongDateTime, con el parámetro DateTimeFormat. Para mostrar una lista de
esas opciones, escriba el parámetro, seguido inmediatamente de un signo de exclamación, en el cuadro de función.

Text(DateTimeValue(Start.Text; "fr"); DateTimeFormat.LongDateTime)


La etiqueta mostrará ahora el lunes 10 de noviembre de 2014 1:50:24 p. m.
Text(DateTimeValue(Start.Text); "dddd, mmmm dd, yyyy hh:mm:ss.fff AM/PM")
La etiqueta debería mostrar el sábado, 11 de octubre de 2014 01:50:24:765 p. m. , si su equipo se ha
configurado con la configuración regional en.
Como alternativa, puede especificar hh:mm:ss.f o hh:mm:ss.ff para redondear la hora a la décima o
centésima de segundo más cercana.
TimeValue
Asigne el nombre FinishedAt a un control de entrada de texto y establezca la propiedad Text de una etiqueta en
esta función:
If(TimeValue(FinishedAt.Text)<TimeValue("5:00:00.000 PM"); "You made it!"; "Too late!")
Si escribe 4:59:59.999 PM en el control FinishedAt la etiqueta mostrará el texto "You made it!"
Si escribe 5:00:00.000 p. m. en el control FinishedAt, la etiqueta mostrará el texto "Too late!"
Funciones Day, Month, Year, Hour, Minute, Second y
Weekday en PowerApps
08/10/2019 • 4 minutes to read

Devuelve los componentes individuales de un valor de fecha y hora.

Descripción
La función Day devuelve el componente de día de un valor de fecha y hora, comprendido entre 1 y 31.
La función Month devuelve el componente de mes de un valor de fecha y hora, comprendido entre 1 y 12.
La función Year devuelve el componente de año de un valor de fecha y hora, a partir de 1900.
La función Hour devuelve el componente de hora de un valor de fecha y hora, comprendido entre 0 (12:00 a. m.) y
23 (11:00 p. m).
La función Minute devuelve el componente de minuto de un valor de fecha y hora, comprendido entre 0 y 59.
La función Second devuelve el componente de segundo de un valor de fecha y hora, comprendido entre 0 y 59.
La función Weekday devuelve el día de la semana de un valor de fecha y hora. De forma predeterminada, el
resultado está comprendido entre 1 (domingo) y 7 (sábado). Puede especificar un intervalo diferente con un código
de la función Weekday de la semana de Microsoft Excel o un valor de enumeración de StartOfWeek:

CÓDIGO DE EXCEL ENUMERACIÓN DE STARTOFWEEK DESCRIPCIÓN

1, 17 StartOfWeek.Sunday Números del 1 (domingo) al 7 (sábado).


Predeterminado.

2, 11 StartOfWeek.Monday Números del 1 (lunes) al 7 (domingo).

3 StartOfWeek.MondayZero Números del 0 (lunes) al 6 (domingo).

12 StartOfWeek.Tuesday Números del 1 (martes) al 7 (lunes).

13 StartOfWeek.Wednesday Números del 1 (miércoles) al 7 (martes).

14 StartOfWeek.Thursday Números del 1 (jueves) al 7 (miércoles).

15 StartOfWeek.Friday Números del 1 (viernes) al 7 (jueves).

16 StartOfWeek.Saturday Números del 1 (sábado) al 7 (viernes).

Todas las funciones devuelven un número.


Consulte cómo trabajar con fechas y horas para más información.

Sintaxis
Day( DateTime )
Month( DateTime )
Year( DateTime )
Hour( DateTime )
Minute( DateTime )
Second( DateTime )
DateTime: requerido. Valor de fecha y hora con el que operar.
Weekday( DateTime [; WeekdayFirst ] )
DateTime: requerido. Valor de fecha y hora con el que operar.
WeekdayFirst: opcional. Código de Excel que especifica qué día comienza la semana. Si no se indica, se usará 1
(primero el domingo).

Ejemplos
En el ejemplo siguiente, la hora actual es las 3:59:37 p. m. del jueves, 9 de abril de 2015.

FÓRMULA DESCRIPCIÓN RESULTADO

Year( Now() ) Devuelve el componente de año de la 2015


fecha y hora actuales.

Month( Now() ) Devuelve el componente de mes de la 4


fecha y hora actuales.

Day( Now() ) Devuelve el componente de día de la 9


fecha y hora actuales.

Hour( Now() ) Devuelve el componente de hora de la 15


fecha y hora actuales.

Minute( Now() ) Devuelve el componente de minuto de 59


la fecha y hora actuales.

Second( Now() ) Devuelve el componente de minuto de 37


la fecha y hora actuales.

Weekday( Now() ) Devuelve el componente de día de la 5


semana de la fecha y hora actuales,
considerando al domingo como inicio de
la semana de forma predeterminada.

Weekday( Now(); 14 ) Devuelve el componente de día de la 1


semana de la fecha y hora actuales,
usando un código de Excel para
especificar el jueves como inicio de la
semana.

Weekday( Now(); StartOfWeek.Wed Devuelve el componente de día de la 2


nesday ) semana de la fecha y hora actuales,
usando una enumeración StartOfWeek
para especificar el miércoles como inicio
de la semana.
Función Defaults en PowerApps
07/10/2019 • 2 minutes to read

Devuelve los valores predeterminados para un origen de datos.

Descripción
Use la función Defaults para rellenar previamente un formulario de entrada de datos, lo cual facilita el
rellenado.
Esta función devuelve un registro que contiene los valores predeterminados para el origen de datos. Si una
columna dentro del origen de datos no tiene ningún valor predeterminado, esa propiedad no estará presente.
Los orígenes de datos varían en la cantidad de información predeterminada que proporcionan; incluso pueden
no ofrecer ninguna. Cuando trabaje con una colección u otro origen de datos que no admita valores
predeterminados, la función Defaults devolverá un registro vacío.
Puede combinar la función Defaults con la función Patch para crear un registro.

Sintaxis
Defaults( DataSource )
DataSource: requerido. El origen de datos para el que quiere valores predeterminados.

Ejemplos
FÓRMULA DESCRIPCIÓN RESULTADO

Defaults( Scores ) Devuelve los valores predeterminados {puntuación: 0}


para el origen de datos Scores.
Funciones Acos, Acot, Asin, Atan, Atan2, Cos, Cot,
Degrees, Pi, Radians, Sin y Tan en PowerApps
08/10/2019 • 9 minutes to read

Calcula valores trigonométricos.

Descripción
Funciones principales
La función Cos devuelve el coseno de su argumento, un ángulo especificado en radianes.
La función Cot devuelve la cotangente de su argumento, un ángulo especificado en radianes.
La función Sin devuelve el seno de su argumento, un ángulo especificado en radianes.
La función Tan devuelve la tangente de su argumento, un ángulo especificado en radianes.
Funciones inversas
El Acos función devuelve el arcocoseno, o coseno inverso, de su argumento. El arcocoseno es el ángulo cuyo
coseno es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Acot devuelve el valor principal de la arcocotangente, o cotangente inversa, de su argumento. El ángulo
devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Asin devuelve el arcoseno, o seno inverso, de su argumento. El arcoseno es el ángulo cuyo seno es el
argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a π/2.
La función Atan devuelve la arcotangente, o tangente inversa, de su argumento. La arcotangente es el ángulo cuya
tangente es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a π/2.
La función Atan2 devuelve la arcotangente, o tangente inversa, de las coordenadas x e y especificadas como
argumentos. La arcotangente es el ángulo desde el eje x a una línea que contiene el origen (0, 0) y un punto con las
coordenadas (x, y). El ángulo se expresa en radianes entre -π y π, excluyendo -π. Un resultado positivo representa
un ángulo con rotación levógira (hacia la izquierda) desde el eje x; un resultado negativo representa un ángulo con
rotación dextrógira (hacia la derecha). Atan2( a; b ) es igual a Atan( b/a ) , excepto que a puede ser igual a 0 (cero)
con la función Atan2.
Funciones auxiliares
La función Degrees convierte radianes en grados. π radianes equivalen a 180 grados.
La función Pi devuelve el número transcendente π, que comienza 3,141592...
La función Radians convierte grados en radianes.
Notas
Si pasa un solo número a estas funciones, el valor que se devuelve es un resultado único. Si pasa una tabla de una
sola columna que contiene números, el valor que se muestra es una tabla de resultados de una sola columna, un
resultado para cada registro en la tabla del argumento. Si tiene una tabla con varias columnas, puede convertirla en
una tabla de una sola columna, como se describe en cómo trabajar con tablas.
Si algún argumento resultase en un valor no definido, el resultado es blank. Esto puede ocurrir, por ejemplo, al
utilizar las funciones inversas con argumentos que están fuera del intervalo.
Sintaxis
Funciones principales
Cos( Radians )
Cot( Radians )
Sin( Radians )
Tan( Radians )
Radians: requerido. Ángulo sobre el cual operar.
Cos( SingleColumnTable )
Cot( SingleColumnTable )
Sin( SingleColumnTable )
Tan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de ángulos de una sola columna sobre la que se va a actuar.
Funciones inversas
Acos( Number )
Acot( Number )
Asin( Number )
Atan( Number )
Number: requerido. El número sobre el cual operar.
Acos( SingleColumnTable )
Acot( SingleColumnTable )
Asin( SingleColumnTable )
Atan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de números de una sola columna sobre la cual operar.
Atan2( X; Y )
X: requerido. coordenadas del eje X.
Y: requerido. coordenadas del eje Y.
Funciones del asistente
Degrees( Radians )
Radians: requerido. Ángulo en radianes para convertir en grados.
Pi()
Radians( Degrees )
Degrees: requerido. Ángulo en grados para convertir en radianes.

Ejemplos
Número único
FÓRMULA DESCRIPCIÓN RESULTADO

Cos( 1;047197 ) Devuelve el coseno de 1,047197 0,5


radianes o 60 grados.
FÓRMULA DESCRIPCIÓN RESULTADO

Cot( Pi()/4 ) Devuelve la cotangente de 0,785398... 1


radianes o 45 grados.

Sin( Pi()/2 ) Devuelve el seno de 1,570796 radianes 1


o 90 grados.

Tan ( Radians(60) ) Devuelve la tangente de 1,047197 1,732050...


radianes o 60 grados.

Acos( 0;5 ) Devuelve el arcocoseno de 0,5 en 1,047197...


radianes.

Acot( 1 ) Devuelve la arcocotangente de 1, en 0,785398...


radianes.

Asin( 1 ) Devuelve el arcoseno de 1, en radianes. 1,570796...

Atan ( 1,732050 ) Devuelve la arcotangente de 1,732050, 1,047197...


en radianes.

Atan2( 5; 3 ) Devuelve la arcotangente del ángulo del 0,540419...


eje x de la línea que contiene el origen
(0,0) y la coordenada (5,3), que es
aproximadamente 31 grados.

Atan2( 4; 4 ) Devuelve la arcotangente del ángulo del 0,785398...


eje x de la línea que contiene el origen
(0,0) y la coordenada (4,4), que es
exactamente π/4 radianes o 45 grados.

Degrees ( 1,047197 ) Devuelve el número equivalente de 60


grados de 1,047197 radianes.

Pi() El número trascendente π. 3,141592...

Radians ( 15 ) Devuelve el número equivalente de 0,261799...


radianes para 15 grados.

Tabla de una sola columna


Los ejemplos de esta sección usan un origen de datos denominado ValueTable que contiene los siguientes datos:
El último registro en la tabla es π/2 radianes o 90 grados.

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

Cos( ValueTable ) Devuelve el coseno de cada número en


la tabla.

Cot( ValueTable ) Devuelve la cotangente de cada número


en la tabla.

Sin( ValueTable ) Devuelve el seno de cada número en la


tabla.

Tan( ValueTable ) Devuelve la tangente de cada número


en la tabla.

Acos( ValueTable ) Devuelve el arcocoseno de cada número


en la tabla.

Acot( ValueTable ) Devuelve la arcocotangente de cada


número en la tabla.

Asin( ValueTable ) Devuelve el arcoseno de cada número


en la tabla.

Atan( ValueTable ) Devuelve la arcotangente de cada


número en la tabla.
FÓRMULA DESCRIPCIÓN RESULTADO

Degrees( ValueTable ) Devuelve el número equivalente de


grados para cada número de la tabla,
supone que son ángulos en radianes.

Radians( ValueTable ) Devuelve el número equivalente de


radianes para cada número de la tabla,
supone que son ángulos en grados.
Funciones Enable y Disable en PowerApps
07/10/2019 • 2 minutes to read

Activa o desactiva una señal.

Información general
Algunas señales pueden cambiar con frecuencia, lo cual obliga a la aplicación a volver a calcular cuando se
producen los cambios. Los cambios rápidos durante un largo período de tiempo pueden agotar la batería del
dispositivo. Puede utilizar estas funciones para activar o desactivar manualmente una señal.
Cuando no se usa una señal, esta se desactiva automáticamente.

Descripción
Las funciones Enable y Disable permiten activar y desactivar una señal respectivamente.
Estas funciones solo funcionan actualmente para la señal de ubicación .
Estas funciones no tienen ningún valor devuelto. Se pueden usar únicamente en fórmulas de comportamiento.

Sintaxis
Enable( Signal )
Disable( Signal )
Señal: requerido. La señal que va a activar o desactivar.
Función Distinct de PowerApps
05/11/2019 • 3 minutes to read

Resume los registros de una tabla, quitando los duplicados.

Descripción
La función DISTINCT evalúa una fórmula en cada registro de una tabla y devuelve una tabla de una columna
de los resultados con valores duplicados quitados. El nombre de la columna es result.
Los campos de registro que se están procesando actualmente estarán disponibles en la formula. Solo tiene que
hacer referencia a los campos por su nombre, como con cualquier otro valor. También puede hacer referencia a
propiedades de control y a otros valores desde toda la aplicación. Para obtener más detalles, vea los ejemplos
siguientes y trabajar con el ámbito de registros.
Cuando se usa con un origen de datos, esta función no se puede delegar. Solo se recuperará la primera parte del
origen de datos, y después se aplicará la función. Es posible que el resultado no represente la historia completa.
Aparecerá una advertencia en el momento de la creación para recordarle esta limitación y para sugerirle un
cambio a alternativas delegables siempre que sea posible. Para obtener más información, consulte la
información general sobre delegación

Sintaxis
Distinct( Table; Formula )
Table: requerido. Tabla en la cual se realizará la evaluación.
Formula: requerido. La fórmula que se evalúa en cada registro.

Ejemplo
1. Inserte un control de botón y establezca su propiedad alseleccionar en esta fórmula.

ClearCollect( CityPopulations;
{ City: "London"; Country: "United Kingdom"; Population: 8615000 };
{ City: "Berlin"; Country: "Germany"; Population: 3562000 };
{ City: "Madrid"; Country: "Spain"; Population: 3165000 };
{ City: "Hamburg"; Country: "Germany"; Population: 1760000 };
{ City: "Barcelona"; Country: "Spain"; Population: 1602000 };
{ City: "Munich"; Country: "Germany"; Population: 1494000 }
);;

2. Seleccione el botón mientras mantiene presionada la tecla Alt.


La fórmula se evaluará y se creará la colección CityPopulations , que se puede mostrar seleccionando
CityPopulations en la barra de fórmulas:
3. Inserte un control tabla de datos y establezca su propiedad elementos en esta fórmula:

Distinct( CityPopulations; Country )

Para ver el resultado de esta fórmula en la barra de fórmulas, seleccione toda la fórmula:

4. Use el vínculo Editar campos en el panel de propiedades de la tabla de datos para agregar la columna
de resultados :
5. Inserte un control etiqueta y establezca su propiedad texto en la fórmula:

First( Sort( Distinct( CityPopulations; Country ); Result ) ).Result

Esta fórmula ordena los resultados de DISTINCT con la función de ordenación , toma el primer
registro de la tabla resultante con la primera función y extrae el campo de resultados para obtener solo
el nombre del país.
Funciones de descarga, Inicio y parámetro en
aplicaciones de Canvas
05/11/2019 • 2 minutes to read

Descarga o inicia una página web o una aplicación con parámetros.

Descripción
La función Download descarga un archivo de la Web al dispositivo local. Se pide al usuario una ubicación para
guardar el archivo. Download devuelve la ubicación donde el archivo se almacenó localmente como una cadena.
La función Launch inicia un página web o una aplicación. Opcionalmente, esta función puede pasar parámetros a la
aplicación.
En Internet Explorer y Microsoft Edge, la función Launch abre un sitio web o una aplicación solo si su
configuración de seguridad es igual o superior a la de la aplicación que contiene la función. Si, por ejemplo, agrega
la función de Inicio a una aplicación que se ejecutará en la zona de seguridad sitios de confianza , asegúrese de
que el sitio web o la aplicación que desea que la función abra se encuentra en la zona de sitios de confianza o
Intranet local (no en Sitios restringidos). Más información: cambiar la configuración de seguridad y privacidad
para Internet Explorer 11.
La función Param recupera un parámetro pasado a la aplicación cuando se inició. Si no se pasó el parámetro con
nombre, Param devuelve blank.

Sintaxis
Download( Address )
Address: requerido. La dirección de un recurso web para descargar.
Launch( Address [; ParameterName1; ParameterValue1; ... ] )
Address: requerido. La dirección de una página web o el identificador de una aplicación que se va a iniciar.
ParameterName(s) : valor opcional. Nombre del parámetro.
ParameterValue(s) : valor opcional. Valores de parámetro correspondientes para pasar a la aplicación o la página
web.
Param ( ParameterName )
ParameterName: requerido. El nombre del parámetro pasado a la aplicación.
Funciones AddColumns, DropColumns, RenameColumns y
ShowColumns en PowerApps
08/10/2019 • 13 minutes to read

Forma una tabla agregando, quitando, cambiando el nombre y seleccionando sus columnas.

Información general
Estas funciones dan forma a una tabla mediante el ajuste de sus columnas:
Reducción de una tabla que contiene varias columnas a una sola columna para su uso con las funciones de columna única, como
Lower o Abs .
Incorporación de una columna calculada a una tabla (por ejemplo, una columna Total Price que muestre el resultado de multiplicar
Quantity por Unit Price).
Cambio del nombre de una columna a algo más significativo, para mostrarla a los usuarios o para su uso en las fórmulas.
Una tabla es un valor en PowerApps, como una cadena o un número. Puede especificar una tabla como un argumento en una fórmula, y
las funciones pueden devolver una tabla como resultado.

NOTE
Las funciones que se describen en este tema no modifican la tabla original. En su lugar, toman esa tabla como argumento y devuelven una nueva
tabla con una transformación aplicada. Consulte cómo trabajar con tablas para más detalles.

No se pueden modificar las columnas de un origen de datos mediante el uso de estas funciones. Tiene que modificar los datos en su
origen. Puede agregar columnas a una colección con la función Collect . Consulte cómo trabajar con fuentes de datos para más detalles.

Descripción
La función AddColumns agrega una columna a una tabla y una fórmula define los valores de esa columna. Las columnas existentes
permanecen sin modificar.
La fórmula se evalúa para cada registro de la tabla.
Los campos de registro que se están procesando actualmente estarán disponibles en la formula. Solo tiene que hacer referencia a los
campos por su nombre, como con cualquier otro valor. También puede hacer referencia a propiedades de control y a otros valores desde
toda la aplicación. Para obtener más detalles, vea los ejemplos siguientes y trabajar con el ámbito de registros.
La función DropColumns excluye las columnas de una tabla. El resto de las columnas permanece sin modificar. DropColumns excluye
las columnas y ShowColumns las incluye.
Use la función RenameColumns para cambiar el nombre de una o varias columnas de una tabla al proporcionar al menos un par de
argumentos que especifiquen el nombre de una columna que contiene la tabla (el nombre antiguo, que se quiere reemplazar) y el
nombre de una columna que la tabla no contiene (el nombre nuevo, que se quiere usar). El nombre antiguo ya debe existir en la tabla y
el nuevo nombre no. Cada nombre de columna puede aparecer solo una vez en la lista de argumentos como un nombre de columna
antiguo o nuevo. Para cambiar el nombre de una columna por un nombre de columna existente, primero quite la columna existente con
DropColumns o cambie el nombre de la columna existente al anidar una función RenameColumns dentro de otra.
La función ShowColumns incluye columnas de una tabla y quita todas las demás columnas. Puede usar ShowColumns para crear una
tabla de una sola columna a partir de una tabla de varias columnas. ShowColumns incluye columnas y DropColumns las excluye.
Para todas estas funciones, el resultado es una nueva tabla con la transformación aplicada. La tabla original no se modifica. No se puede
modificar una tabla existente con una fórmula. SharePoint, Common Data Service, SQL Server y otros orígenes de datos proporcionan
herramientas para modificar las columnas de listas, entidades y tablas, a las que se suele hacer referencia como esquema. Las funciones
de este tema solo transforman una tabla de entrada, sin modificar la original, en una tabla de salida para su uso posterior.
Los argumentos de estas funciones admiten la delegación. Por ejemplo, una función de filtro que se usa como argumento para extraer
los registros relacionados realiza búsquedas en todas las listas, incluso si el ' [dbo]. [ AllListings] ' el origen de datos contiene un
millón de filas:
AddColumns( RealEstateAgents;
"Listings";
Filter( '[dbo].[AllListings]'; ListingAgentName = AgentName )
)

Sin embargo, el resultado de estas funciones está sujeto al límite de registros que no son de delegación. En este ejemplo, solo se
devuelven los registros 500, incluso si el origen de datos RealEstateAgents tiene 501 o más registros.
Si utiliza AddColumns de esta manera, el filtro debe realizar llamadas independientes en el origen de datos para cada uno de esos
primeros registros en RealEstateAgents, lo que provoca una gran cantidad de chatter de red. Si [dbo]. [ AllListings] es lo
suficientemente pequeño y no cambia con frecuencia, puede llamar a la función Collect en OnStart para almacenar en caché el origen
de datos en la aplicación cuando se inicia. Como alternativa, puede reestructurar la aplicación para que extraiga los registros
relacionados solo cuando el usuario los solicite.

Sintaxis
AddColumns( Table; ColumnName1; Formula1 [; ColumnName2; Formula2; ... ] )
Table: requerido. La tabla sobre la cual se opera.
ColumnName(s) : requerido. Nombres de las columnas para agregar. Tiene que especificar una cadena (por ejemplo, "Name" entre
comillas dobles incluidas) para este argumento.
Formula (s) : requerido. La fórmula o fórmulas para evaluar para cada registro. Se agregará el resultado como el valor de la nueva
columna correspondiente. Puede hacer referencia a otras columnas de la tabla en esta fórmula.
DropColumns( Table; ColumnName1 [; ColumnName2; ... ] )
Table: requerido. La tabla sobre la cual se opera.
ColumnName(s) : requerido. Nombres de las columnas para excluir. Tiene que especificar una cadena (por ejemplo, "Name" entre
comillas dobles incluidas) para este argumento.
Cambiarnombrecolumnas( TABLE; OldColumnName1; NewColumnName1 [; OldColumnName2; NewColumnName2;...])
Table: requerido. La tabla sobre la cual se opera.
OldColumnName: requerido. Nombre de una columna de la tabla original cuyo nombre se va a cambiar. Este elemento aparece en
primer lugar en el par de argumentos (o en primer lugar en cada par de argumentos si la fórmula incluye más de un par). Este
nombre tiene que ser una cadena (por ejemplo, "Name" con comillas dobles incluidas).
NewColumnName: requerido. Nombre de reemplazo. Este elemento aparece por último lugar en el par de argumentos (o por último
lugar en cada par de argumentos si la fórmula incluye más de un par). Tiene que especificar una cadena (por ejemplo, "Customer
Name" con comillas dobles incluidas) para este argumento.
ShowColumns( Table; ColumnName1 [; ColumnName2; ... ] )
Table: requerido. La tabla sobre la cual se opera.
ColumnName(s) : requerido. Nombres de las columnas para incluir. Tiene que especificar una cadena (por ejemplo, "Name" entre
comillas dobles incluidas) para este argumento.

Ejemplos
En los ejemplos en esta sección, use el origen de datos IceCreamSales, que contiene los datos de esta tabla:

Ninguno de estos ejemplos modificar el origen de datos IceCreamSales. Cada función transforma el valor del origen de datos como
una tabla y devuelve ese valor como resultado.

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

AddColumns (IceCreamSales, "Revenue", Agrega una columna Revenue al resultado. Para


UnitPrice * QuantitySold) cada registro, se evalúa UnitPrice *
QuantitySold, y el resultado se coloca en la
nueva columna.

DropColumns (IceCreamSales, "UnitPrice") Excluye la columna UnitPrice del resultado. Use


esta función para excluir columnas y usar
ShowColumns para incluirlas.

ShowColumns( IceCreamSales; "Flavor" ) Incluye solamente la columna Flavor en el


resultado. Use esta función para incluir
columnas y DropColumns para excluirlas.

RenameColumns( IceCreamSales; Cambia el nombre de la columna UnitPrice en


"UnitPrice"; "Price") el resultado.

RenameColumns( IceCreamSales; Cambia el nombre de las columnas UnitPrice y


"UnitPrice"; "Price"; "QuantitySold"; QuantitySold en el resultado.
"Number")

DropColumns( Realiza las siguientes transformaciones de tabla


RenameColumns( en orden, comenzando desde el interior de la
AddColumns( IceCreamSales; "Revenue"; fórmula:
UnitPrice * QuantitySold ); 1. Agrega una columna Revenue basada
"UnitPrice"; "Price" ); en el cálculo por registro de UnitPrice *
"Quantity" ) Quantity.
2. Cambia el nombre de UnitPrice a Price.
3. Excluye la columna Quantity.
Tenga en cuenta que el orden es importante.
Por ejemplo, no se puede calcular con UnitPrice
después de que se le haya cambiado el nombre.

Paso a paso
Vamos a probar algunos de los ejemplos anteriores de este tema.
1. Cree una colección agregando un control de botón y estableciendo su propiedad alseleccionar en esta fórmula:

ClearCollect( IceCreamSales;
Table(
{ Flavor: "Strawberry"; UnitPrice: 1,99; QuantitySold: 20 };
{ Flavor: "Chocolate"; UnitPrice: 2,99; QuantitySold: 45 };
{ Flavor: "Vanilla"; UnitPrice: 1,50; QuantitySold: 35 }
)
)

2. Ejecute la fórmula seleccionando el botón mientras mantiene presionada la tecla Alt.


3. Agregue un segundo control botón , establezca su propiedad alseleccionar en esta fórmula y, a continuación, ejecútelo:

ClearCollect( FirstExample;
AddColumns( IceCreamSales; "Revenue"; UnitPrice * QuantitySold )
)

4. En el menú archivo , seleccione coleccionesy, a continuación, seleccione IceCreamSales para mostrar esa recopilación.
Como se muestra en este gráfico, la segunda fórmula no modificó esta colección. La función AddColumns usó IceCreamSales
como argumento de solo lectura; la función no modificó la tabla a la que hace referencia ese argumento.

5. Seleccione FirstExample.
Como se muestra en este gráfico, la segunda fórmula devolvió una nueva tabla con la columna agregada. La función
ClearCollect capturó la nueva tabla en la colección FirstExample , agregando algo a la tabla original a medida que fluye a través
de la función sin modificar el origen:
Funciones EditForm, NewForm, SubmitForm,
ResetForm y ViewForm de PowerApps
08/10/2019 • 10 minutes to read

Vea, edite o cree un elemento, guarde el contenido y restablezca los controles de un control Editar formulario .

Información general
Estas funciones cambian el estado del control Editar formulario. El control de formulario puede estar en uno de
estos modos:

MODO DESCRIPCIÓN

FormMode.Edit El formulario se rellena con un registro existente y el usuario


puede modificar los valores de los campos. Una vez que haya
finalizado, el usuario puede guardar los cambios en el registro.

FormMode.New El formulario se rellena con los valores predeterminados y el


usuario puede modificar los valores de los campos. Una vez
que haya finalizado, el usuario puede agregar el registro al
origen de datos.

FormMode.View El formulario se rellena con un registro existente pero el


usuario no puede modificar los valores de los campos.

Descripción
Estas funciones a menudo se invocan desde la fórmula OnSelect de un control Botón o Imagen para que el
usuario pueda guardar las modificaciones, abandonarlas o crear un registro. También puede usar conjuntamente
controles y estas funciones para crear una solución completa.
Estas funciones no devuelven ningún valor.
SubmitForm
Use la función SubmitForm de la propiedad OnSelect de un control Botón para guardar los cambios de un
control Formulario en el origen de datos.
Antes de enviar cualquier cambio, esta función comprueba problemas de validación con cualquier campo que se
haya marcado como requerido o que tenga una o más restricciones en su valor. Este comportamiento es idéntico al
de la función Validate .
SubmitForm también comprueba la propiedad Valid del control Formulario, que es una agregación de todas las
propiedades Valid de los controles Card que contiene el control Formulario. Si se produce un problema, no se
envían los datos y las propiedades Error y ErrorKind del control Formulario se establecen en consecuencia.
Si se supera la validación, SubmitForm envía el cambio al origen de datos.
Si se realiza correctamente, se ejecutará el comportamiento OnSuccess del formulario y se borrarán las
propiedades Error y ErrorKind . Si el formulario se encontraba en modo FormMode.New, se devolverá al
modo FormMode.Edit.
Si no se realiza correctamente, se ejecutará el comportamiento OnFailure del formulario y se establecerán las
propiedades Error y ErrorKind en consecuencia. El modo del formulario no se modifica.
EditForm
La función EditForm cambia el modo del control Formulario a FormMode.Edit. En este modo, el contenido de la
propiedad Elemento del control Formulario se utiliza para rellenar el formulario. Si la función SubmitForm se
ejecuta cuando el formulario está en este modo, se cambiará un registro, no se creará. FormMode.Edit es el valor
predeterminado del control Formulario.
NewForm
La función NewForm cambia el modo del control Formulario a FormMode.New. En este modo, el contenido de
la propiedad Elemento del control Formulario se omite y los valores predeterminados de la propiedad
DataSource rellenan el formulario. Si la función SubmitForm se ejecuta cuando el formulario está en este modo,
se creará un registro, no se cambiará.
ResetForm
La función ResetForm restablece el contenido de un formulario a sus valores iniciales, el contenido que había antes
de que el usuario realizara cambios. Si el formulario está en modo FormMode.New, se restablecerá al modo
FormMode.Edit. El comportamiento OnReset del control Formulario también se ejecutará. También puede
restablecer controles individuales con la función Reset pero únicamente desde dentro del formulario.
ViewForm
La función ViewForm cambia el modo del control Formulario a FormMode.View. En este modo, el contenido de
la propiedad Elemento del control Formulario se utiliza para rellenar el formulario. Las funciones SubmitForm y
ResetForm no tienen ningún efecto cuando se está en este modo.
Propiedad DisplayMode
El modo actual se puede leer mediante la propiedad Modo. El modo determina también el valor de la propiedad
DisplayMode que pueden usar las tarjetas de datos y controles del control de formulario. A menudo, la propiedad
DisplayMode de la tarjeta de datos se establecerá en Parent. DisplayMode (que hace referencia al formulario)
como lo hará la propiedad DisplayMode del control (que hace referencia a la tarjeta de datos):

MODO DISPLAYMODE DESCRIPCIÓN

FormMode.Edit DisplayMode.Edit Las tarjetas de datos y los controles son


editables, y están listos para aceptar los
cambios de un registro.

FormMode.New DisplayMode.Edit Las tarjetas de datos y los controles son


editables, y están listos para aceptar un
nuevo registro.

FormMode.View DisplayMode.View Las tarjetas de datos y los controles no


son editables y están optimizados para
su visualización.

Sintaxis
SubmitForm ( FormName )
FormName: requerido. Control Formulario para enviar al origen de datos.
EditForm ( FormName )
FormName: requerido. Control Formulario para cambiar al modo FormMode.Edit.
NewForm ( FormName )
FormName: requerido. Control Formulario para cambiar al modo FormMode.New.
ResetForm ( FormName )
FormName: requerido. Control Formulario para restablecer los valores iniciales. También cambia el formulario
del modo FormMode.New al modo FormMode.Edit.
ViewForm ( FormName )
FormName: requerido. Control Formulario para cambiar al modo FormMode.View.

Ejemplos
Consulte Formularios de datos para obtener ejemplos completos.
1. Agregue un control Botón, establezca la propiedad Text para mostrar Guardar y establezca la propiedad
OnSelect en esta fórmula:
SubmitForm ( EditForm )
2. Establezca la propiedad OnFailure de un control Formulario blank y la propiedad OnSuccess en esta
fórmula:
Back()
3. Asigne el nombre ErrorText a un control Label y establezca su propiedad Text en esta fórmula:
EditForm.Error
Cuando el usuario selecciona el botón Guardar, los cambios del control Formulario se envían al origen de
datos subyacente.
Si el envío se realiza correctamente, los cambios se guardan o, si el control Formulario está en modo
New, se creará un registro. ErrorText es blank y vuelve a aparecer la pantalla anterior.
Si se produce un error en el envío, ErrorText mostrará un mensaje de error descriptivo y la pantalla
actual permanecerá visible para que el usuario pueda corregir el problema e intentarlo de nuevo.
4. Agregue un control Botón, establezca su propiedad Text para que muestre Cancelar y establezca su
propiedad OnSelect en esta fórmula:
ResetForm ( EditForm );; Back()
Si el usuario selecciona el botón Cancelar, los valores del control Formulario se restablecen a su estado
original, el estado que tenían antes de que el usuario empezara a editarlo, vuelve a aparecer la pantalla
anterior y se devuelve el control Formulario al modo Edit si estaba en modo New.
5. Agregue un control Botón, establezca su propiedad Text para mostrar Nuevo y establezca su propiedad
OnSelect en esta fórmula:
NewForm ( EditForm );; Navigate( EditScreen; None )
Cuando el usuario selecciona el botón New, se activa el control Formulario en modo New, los valores
predeterminados del origen de datos del control Formulario rellenan el control y aparece la pantalla que
contiene el control Formulario. Cuando se ejecuta la función SubmitForm, se crea un registro en lugar de
actualizarlo.
Funciones Enable y Disable en PowerApps
07/10/2019 • 2 minutes to read

Activa o desactiva una señal.

Información general
Algunas señales pueden cambiar con frecuencia, lo cual obliga a la aplicación a volver a calcular cuando se
producen los cambios. Los cambios rápidos durante un largo período de tiempo pueden agotar la batería del
dispositivo. Puede utilizar estas funciones para activar o desactivar manualmente una señal.
Cuando no se usa una señal, esta se desactiva automáticamente.

Descripción
Las funciones Enable y Disable permiten activar y desactivar una señal respectivamente.
Estas funciones solo funcionan actualmente para la señal de ubicación .
Estas funciones no tienen ningún valor devuelto. Se pueden usar únicamente en fórmulas de
comportamiento.

Sintaxis
Enable( Signal )
Disable( Signal )
Señal: requerido. La señal que va a activar o desactivar.
Funciones EndsWith y StartsWith en PowerApps
08/10/2019 • 10 minutes to read

Comprueba si una cadena de texto comienza o termina con otra cadena de texto.

Descripción
La función EndsWith comprueba si una cadena de texto termina con otra.
La función StartsWith comprueba si una cadena de texto comienza con otra.
Para ambas funciones, las pruebas no distinguen mayúsculas de minúsculas. El valor devuelto por ambas es un
valor booleano true o false.
Use EndsWith y StartsWith con la función Filter para buscar los datos dentro de la aplicación. También puede
usar el operador in o la función Search para realizar una búsqueda en cualquier lugar dentro de las cadenas de
texto, no solo al principio o al final. La selección de las funciones dependerá de las necesidades de la aplicación y las
funciones que se pueden delegar para el origen de datos específico. Si una de estas funciones no se puede delegar,
aparece una advertencia de delegación en el momento de la creación para avisarle de esta limitación.

Sintaxis
EndsWith( Text; EndText )
Text: requerido. Texto que se va a probar.
EndText: requerido. Texto que desea buscar al final de Text. Si EndText es una cadena vacía, EndsWith devuelve
true.
StartsWith( Text; StartText )
Text: requerido. Texto que se va a probar.
StartText: requerido. El texto que desea buscar al principio de Text. Si StartText es una cadena vacía, StartsWith
devuelve true.

Ejemplos
FÓRMULA DESCRIPCIÓN RESULTADO

EndsWith( "Hola mundo"; "mundo" ) Comprueba si "Hola mundo" termina true


con "mundo" . La prueba no distingue
mayúsculas de minúsculas.

EndsWith( "Hasta luego"; "hasta" ) Comprueba si "Hasta luego" termina false


con "hasta" . El argumento EndText (
"hasta" ) aparece en el texto, pero no al
final.

EndsWith( "Di siempre hola"; "hola" Comprueba si "Di siempre hola" true
) termina con "hola" .
FÓRMULA DESCRIPCIÓN RESULTADO

EndsWith ("adiós", "") Comprueba si "Bye bye" termina con true


una cadena vacía (Len devuelve 0). Para
facilitar su uso en expresiones Filter,
EndsWith está definida para devolver
true en este caso.

FÓRMULA DESCRIPCIÓN RESULTADO

StartsWith( "Hello World"; "hello" ) Prueba si "Hello World" comienza con true
"hello" . La prueba no distingue
mayúsculas de minúsculas.

StartsWith( "Good bye"; "hello" ) Prueba si "Good bye" comienza con false
"hello" .

StartsWith( "Always say hello"; Prueba si "Always say hello" comienza false
"hello" ) con "hello" . Aunque "hello" aparece en
el texto, no aparece al principio.

StartsWith( "Bye bye"; "" ) Comprueba si "Bye bye" comienza con true
una cadena vacía (Len devuelve 0). Para
facilitar su uso en expresiones Filter,
StartsWith está definida para devolver
true en este caso.

Experiencia de búsqueda del usuario


En muchas aplicaciones, puede escribir uno o varios caracteres en un cuadro de búsqueda para filtrar una lista de
registros en un conjunto de datos grande. A medida que escribe, la lista muestra solo los registros que coinciden
con los criterios de búsqueda.
Los ejemplos que aparecen en el resto de este tema muestran los resultados de buscar en una lista Clientes, que
contiene estos datos:

Para crear este origen de datos como una colección, cree un control Botón y establezca la propiedad OnSelect en
esta fórmula:
ClearCollect (clientes; tabla ({nombre: "Fred Garcia"; compañía: "Northwind Traders"}; {nombre: "Cole
Miller"; empresa: "Contoso"}; {Name: "Glenda Johnson"; compañía: "Contoso"}; {Name: "Mike Collins";
Company: "Adventure Works"}; {nombre: "Colleen Jones"; compañía: "Adventure Works"}))
Como en este ejemplo, puede mostrar una lista de registros en un control Galería en la parte inferior de una
pantalla. Cerca de la parte superior de la pantalla, puede agregar un control Entrada de texto denominado
SearchInput, de modo que los usuarios puedan especificar los registros que más les interesen.
A medida que el usuario escribe caracteres en SearchInput, automáticamente se filtran los resultados en la galería.
En este caso, se configura la galería para que muestre los registros para los que el nombre del cliente (no el nombre
de la empresa) comienza con la secuencia de caracteres de SearchInput. Si el usuario escribe co en el cuadro de
búsqueda, la galería muestra estos resultados:

Para filtrar según la columna Nombre, establezca la propiedad Elementos del control Galería en una de estas
fórmulas:

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

Filter( Customers; StartsWith( Name; Filtra el origen de datos Clientes para


SearchInput.Text ) ) los registros en los que la cadena de
búsqueda aparece al principio de la
columna Nombre. La prueba no
distingue mayúsculas de minúsculas. Si
el usuario escribe co en el cuadro de
búsqueda, la galería mostrará Colleen
Jones y Cole Miller. La galería no
mostrará Mike Collins porque la
columna Nombre de ese registro no
comienza por la cadena de búsqueda.

Filter( Customers; SearchInput.Text Filtra el origen de datos Clientes para


in Name ) los registros en los que la cadena de
búsqueda aparece en cualquier parte de
la columna Nombre. La prueba no
distingue mayúsculas de minúsculas. Si
el usuario escribe co en el cuadro de
búsqueda, la galería mostrará Colleen
Jones, Cole Miller y Mike Collins ya
que la cadena de búsqueda aparece en
algún lugar de la columna Nombre de
todos esos registros.

Search( Customers; De forma parecida al uso del operador


SearchInput.Text; "Name" ) in, la función Search busca una
coincidencia en cualquier parte de la
columna Nombre de cada registro.
Tenga en cuenta que debe incluir el
nombre de la columna entre comillas
dobles.

Puede expandir la búsqueda para incluir la columna Empresa además de la columna Nombre:

FÓRMULA DESCRIPCIÓN RESULTADO

Filter( Customers; StartsWith( Name; Filtra el origen de datos Clientes de


SearchInput.Text ) |;|; StartsWith( aquellos registros en los que la columna
Company; SearchInput.Text ) ) Nombre o la columna Empresa
comienza por la cadena de búsqueda
(por ejemplo, co). El operador || será
true si la función StartsWith es también
true.

Filter( Customers; SearchInput.Text Filtra el origen de datos Clientes de


in Name |;|; SearchInput.Text in aquellos registros en los que la columna
Company ) Nombre o la columna Empresa
contienen la cadena de búsqueda en
cualquier lugar (por ejemplo, co).
FÓRMULA DESCRIPCIÓN RESULTADO

Search( Customers; De forma parecida al uso del operador


SearchInput.Text; "Name"; in, la función Search busca en el origen
"Company" ) de datos Customers aquellos registros
en los que la columna Name o la
columna Company contienen la cadena
de búsqueda en cualquier lugar (por
ejemplo, co). La función Search es más
fácil de leer y escribir que Filter si desea
especificar varias columnas y varios
operadores in. Tenga en cuenta que
debe incluir los nombres de las
columnas entre comillas dobles.
Función Errors en PowerApps
08/10/2019 • 8 minutes to read

Proporciona información de error para los cambios anteriores en un origen de datos.

Información general
Pueden producirse errores cuando se cambia un registro de un origen de datos. Esto puede deberse a
numerosas causas, como interrupciones de red, permisos inadecuados y conflictos de edición.
La función Patch y otras funciones de datos no devuelven errores directamente. En su lugar, devuelven el
resultado de la operación. Una vez que se haya ejecutado una función de datos, puede usar la función
Errors para obtener los detalles de los errores. Puede comprobar la existencia de errores con la función
[IsEmpty] en la fórmula IsEmpty( Errors ( ... ) ) .
Puede evitar que se produzcan algunos errores mediante las funciones Validate y DataSourceInfo . En el
tema relativo al trabajo con orígenes de datos, encontrará más sugerencias sobre cómo trabajar con los
errores y evitarlos.

Descripción
La función Errors devuelve una tabla de errores que contiene las columnas siguientes:
Registro. Registro del origen de datos que contenía el error. Si el error se produjo durante la creación de
un registro, esta columna será blank.
Columna. Columna que produjo el error, en caso de que el error pueda atribuirse a una sola columna.
De lo contrario, será blank.
Mensaje. Descripción del error. Esta cadena de error se puede mostrar para el usuario final. Tenga en
cuenta que este mensaje puede generarlo el origen de datos, por lo que podría ser largo y contener
nombres de columna sin formato carentes de significado para el usuario.
Error. Código de error que se puede usar en las fórmulas para ayudar a resolver el error:

ERRORKIND DESCRIPCIÓN

ErrorKind.Conflict Se ha realizado otro cambio en el mismo registro, lo que


produce un conflicto de cambios. Use la función Refresh
para volver a cargar el registro e intente de nuevo el
cambio.

ErrorKind.ConstraintViolation Se han infringido una o más restricciones.

ErrorKind.CreatePermission Se ha intentado crear un registro, pero el usuario actual


no tiene permiso para crear registros.

ErrorKind.DeletePermission Se ha intentado eliminar un registro, pero el usuario


actual no tiene permiso para eliminar registros.

ErrorKind.EditPermission Se ha intentado editar un registro, pero el usuario actual


no tiene permiso para editar registros.
ERRORKIND DESCRIPCIÓN

ErrorKind.GeneratedValue Se ha intentado cambiar una columna que el origen de


datos genera automáticamente.

ErrorKind.MissingRequired El valor de una columna necesaria no está en el registro.

ErrorKind.None No hay ningún error.

ErrorKind.NotFound Se ha intentado editar o eliminar un registro, pero no se


pudo encontrar. Es posible que otro usuario haya
cambiado el registro.

ErrorKind.ReadOnlyValue Se ha intentado cambiar una columna que es de solo


lectura.

ErrorKind.Sync El origen de datos ha notificado un error. Consulte la


columna Mensaje para obtener más información.

ErrorKind.Unknown Se ha producido un error, pero es de tipo desconocido.

ErrorKind.Validation Se ha detectado un problema de validación general que


no se corresponde con ninguno de los demás tipos.

Los errores pueden devolverse para el origen de datos completo o para una sola fila seleccionada si se
proporciona el argumento Record a la función.
La función Patch u otras funciones de datos pueden devolver un valor blank si, por ejemplo, no se pudo
crear un registro. Si pasa un valor blank a Errors, le devolverá información de error adecuada en estos
casos. El uso posterior de funciones de datos en el mismo origen de datos borrará esta información de
error.
Si no hay ningún error, la tabla que Errors devuelve estará vacía y se podrá probar con la función IsEmpty
.

Sintaxis
Errors( DataSource [; Record ] )
DataSource: requerido. Origen de datos para el que quiere devolver errores.
Record: opcional. Registro específico para el que quiere devolver errores. Si no especifica este
argumento, la función devuelve errores para todo el origen de datos.

Ejemplos
Paso a paso
En este ejemplo, vamos a trabajar con el origen de datos IceCream:

A través de la aplicación, un usuario carga el registro Chocolate en un formulario de entrada de datos y


cambia el valor de Quantity a 90. El registro con el que se va a trabajar se coloca en la variable de contexto
EditRecord:
UpdateContext ({EditarRegistro: First (Filter (IceCream; Flavor = "chocolate"))})
Para realizar este cambio en el origen de datos, se usa la función Patch :
Patch( IceCream; EditRecord; Gallery.Updates )
donde Gallery. updates se evalúa como {Quantity: 90} , ya que solo se ha modificado la propiedad
Quantity .
Por desgracia, justo antes de que se invoque la función Patch , otra persona modifica la propiedad
Quantity de Chocolate y la establece en 80. PowerApps lo detecta y no permite que se produzca el cambio
en conflicto. Puede comprobar esta situación mediante la fórmula:
IsEmpty( Errors( IceCream; EditRecord ) )
que devuelve false, ya que la función Errors ha devuelto la tabla siguiente:

REGISTRO COLUMNA MENSAJE ERROR

Tipo "Chocolate", blank "Otro usuario ha ErrorKind.Conflict


cantidad: 100} modificado el registro que
está intentando modificar.
Vuelva a cargar el registro
e inténtelo de nuevo."

Puede colocar una etiqueta en el formulario para mostrar este error al usuario.
Para mostrar el error, establezca la propiedad Text de la etiqueta en esta fórmula:
Label.Text = First(Errors( IceCream; EditRecord )).Message
También puede agregar un botón Recargar en el formulario para que el usuario pueda resolver
eficazmente el conflicto.
Para mostrar el botón solo cuando se haya producido un conflicto, establezca la propiedad Visible del
botón en esta fórmula:
!IsEmpty( Lookup( Errors( IceCream; EditRecord ); Error = ErrorKind.Conflict ) )
Para revertir el cambio cuando el usuario selecciona el botón, establezca su propiedad OnSelect en
esta fórmula:
ReloadButton.OnSelect = Revert( IceCream; EditRecord )
Funciones EncodeUrl y PlainText en PowerApps
07/10/2019 • 2 minutes to read

Codifica y descodifica las cadenas.

Descripción
La función EncodeUrl codifica una cadena de dirección URL, reemplazando algunos caracteres no alfanuméricos
por% y un número hexadecimal.
La función Plaintext quita las etiquetas HTML y XML, convirtiendo algunas etiquetas como estas en un símbolo
adecuado:
&nbsp;
&quot;
El valor devuelto de estas funciones es la cadena codificada o descodificada. Esta función no quita todas las
etiquetas HTML y XML.

Sintaxis
EncodeUrl( String )
String: requerido. Dirección URL que se va a codificar.
PlainText( String )
String: requerido. Cadena de la que se van a quitar las etiquetas HTML y XML.

Ejemplos
Si muestra una fuente RSS en una galería de texto y, después, establece la propiedad Text de una etiqueta de esa
galería en ThisItem.description, la etiqueta podría mostrar el código HTML o XML sin formato, como en este
ejemplo:

<p>We have done an unusually&nbsp;&quot;deep&quot; globalization and localization.<p>

Si establece la propiedad Text de la etiqueta en PlainText(ThisItem.description) , el texto aparece como en este


ejemplo:

We have done an unusually "deep" globalization and localization.


Función Exit en PowerApps
07/10/2019 • 2 minutes to read

Permite salir de la aplicación en ejecución.

Descripción
La función Exit permite salir de la aplicación en ejecución. Se devuelve al usuario a la lista de aplicaciones, donde
puede seleccionar otra aplicación para abrirla.

Sintaxis
Exit()
Funciones Abs, Exp, Ln, Power y Sqrt en PowerApps
08/10/2019 • 4 minutes to read

Calcula valores absolutos, logaritmos naturales, raíces cuadradas y los resultados de elevar e o cualquier número a
una potencia especificada.

Descripción
La función Abs muestra el valor no negativo de su argumento. Si el número es negativo, Abs muestra el
equivalente positivo.
La función Exp muestra e elevado a la potencia de su argumento. El número trascendente e comienza con
2,7182818...
La función Ln muestra el argumento natural (e base) de su argumento.
La función Power muestra un número elevado a una potencia. Es equivalente a usar el operador ^ .
La función Sqrt muestra el número que, cuando se multiplica por sí mismo, es igual a su argumento.
Si pasa un solo número, el valor que se muestra es un resultado único basado en la función llamada. Si pasa una
tabla de una sola columna que contiene números, el valor que se muestra es una tabla de resultados de una sola
columna, un resultado para cada registro en la tabla del argumento. Si tiene una tabla con varias columnas, puede
convertirla en una tabla de una sola columna, como se describe en cómo trabajar con tablas.
Si algún argumento pudiera mostrar un valor no definido, el resultado queda en blanco. Por ejemplo, esto puede
pasar con las raíces cuadradas y los logaritmos de números negativos.

Sintaxis
Abs( Number )
Exp( Number )
Ln( Number )
Sqrt( Number )
Number: requerido. El número sobre el cual operar.
Power( Base; Exponente )
Base: requerido. Número base que se va a elevar.
Exponent: requerido. El exponente al que se eleva el número base.
Abs( SingleColumnTable )
Exp( SingleColumnTable )
Ln( SingleColumnTable )
Sqrt( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de números de una sola columna sobre la cual operar.

Ejemplos
Número único
FÓRMULA DESCRIPCIÓN RESULTADO

Abs( -55 ) Muestra el número sin el signo 55


negativo.

Exp( 2 ) Muestra e elevado a la potencia de 2, o 7,389056...


e * e.

Ln( 100 ) Muestra el algoritmo natural (e base) 4,605170...


del número 100.

Power( 5; 3 ) Muestra 5 elevado a la potencia de 3, o 125


5 * 5 * 5.

Sqrt( 9 ) Muestra el número que, cuando se 3


multiplica por sí mismo, da como
resultado 9.

Tabla de una sola columna


Los ejemplos de esta sección usan un origen de datos denominado ValueTable que contiene estos datos:

FÓRMULA DESCRIPCIÓN RESULTADO

Abs( ValueTable ) Muestra el valor absoluto de cada


número en la tabla.

Exp( ValueTable ) Muestra e elevado a la potencia de cada


número en la tabla.

Ln( ValueTable ) Muestra el logaritmo natural de cada


número en la tabla.

Sqrt( ValueTable ) Muestra la raíz cuadrada de cada


número en la tabla.

Ejemplo paso a paso


1. Agregue un control Entrada de texto y denomínelo Origen.
2. Agregue un control Label y establezca su propiedad Text en esta fórmula:
Sqrt( Value( Source.Text ) )
3. Escriba un número en Origen y confirme que el control Etiqueta muestra la raíz cuadrada del número que
escribió.
Funciones Filter, Search y LookUp en PowerApps
08/10/2019 • 18 minutes to read

Busca uno o varios registros en una tabla.

Descripción
La función Filter busca registros en una tabla que satisface una fórmula. Use la función Filter para buscar un
conjunto de registros que coinciden con uno o varios criterios y descartar aquellos que no lo hacen.
La función LookUp busca el primer registro de una tabla que satisface una fórmula. Use LookUp para encontrar
un único registro que coincida con uno o varios criterios.
En ambos casos, la fórmula se evalúa para cada registro de la tabla. Los registros que dan como resultado true se
incluyen en el resultado. Además de los operadores de la fórmula normal, puede usar los operadores in y exactin
para las coincidencias de subcadenas.
Los campos de registro que se están procesando actualmente estarán disponibles en la formula. Solo tiene que
hacer referencia a los campos por su nombre, como con cualquier otro valor. También puede hacer referencia a
propiedades de control y a otros valores desde toda la aplicación. Para obtener más detalles, vea los ejemplos
siguientes y trabajar con el ámbito de registros.
La función Search busca registros en una tabla que contengan una cadena en una de sus columnas. La cadena
puede estar en cualquier lugar dentro de la columna. Por ejemplo, si busca "rob" o "bert" encontrará una
coincidencia en una columna que contiene "Roberto". La búsqueda no distingue mayúsculas de minúsculas. A
diferencia de Filter y LookUp, la función Search usa solo una cadena de coincidencia en lugar de una fórmula.
Filter y Search devuelven una tabla que contiene las mismas columnas que la tabla original y los registros que
coinciden con los criterios. LookUp devuelve solo el primer registro encontrado después de aplicar una fórmula
para reducir el registro a un solo valor. Si no se encuentra ningún registro, las funciones Filter y Search devuelven
una tabla vacía, y LookUp devuelve blank.
Las tablas son un valor en PowerApps, tal como una cadena o un número. Se pueden pasar a funciones y las
funciones pueden devolverlas. Las funciones Filter, Search y LookUp no modifican la tabla. En vez de eso, usan la
tabla como argumento y devuelven una tabla, un registro o un solo valor de ella. Consulte cómo trabajar con tablas
para más detalles.

Delegación
Siempre que sea posible, PowerApps delegará las operaciones de filtrado y ordenación al origen de datos y se
desplazará por los resultados a petición. Por ejemplo, cuando se inicia una aplicación que muestra un control
Galería lleno de datos, inicialmente solo se traerá al dispositivo el primer conjunto de registros. A medida que el
usuario se desplace por los datos, se traerán más datos del origen de datos. El resultado es un inicio más rápido de
la aplicación y acceso a conjuntos de datos muy grandes.
Sin embargo, la delegación no siempre es posible. La compatibilidad de funciones y operadores con la delegación
varía según el origen de datos. Si la delegación completa de una fórmula no es posible, el entorno de creación
indicará la parte que no se puede delegar con una advertencia. Si es posible, considere la posibilidad de cambiar la
fórmula para que no incluya las funciones y los operadores que no se pueden delegar. La lista de delegación detalla
qué orígenes de datos y operaciones se pueden delegar.
Si la delegación no es posible, PowerApps solo descargará un conjunto reducido de registros para trabajar
localmente. Las funciones de filtrado y ordenación trabajarán con un conjunto reducido de registros. En la Galería
puede no estará disponible la historia completa, y esto puede resultar confuso a los usuarios.
Consulte la información general sobre delegación para obtener más información.

Sintaxis
Filter( Table; Formula1 [; Formula2; ... ] )
Table: requerido. La tabla en la que se va a buscar.
Formula (s) : requerido. La fórmula por la que se evalúa cada registro de la tabla. La función devuelve todos los
registros cuyo resultado es true. Puede hacer referencia a columnas dentro de la tabla. Si se proporciona más
de una fórmula, los resultados de todas las fórmulas se combinan con la función And .
Search( Table; SearchString; Column1 [; Column2; ... ] )
Table: requerido. La tabla en la que se va a buscar.
SearchString: requerido. La cadena que se va a buscar. Si es blank o es una cadena vacía, se devolverán todos
los registros.
Column(s) : requerido. Los nombres de las columnas dentro de Table que se van a buscar. Las columnas en las
que se va a buscar deben contener texto. Los nombres de las columnas deben ser cadenas e ir entre comillas
dobles. Sin embargo, los nombres de las columnas deben ser estáticos y no se pueden calcular con una fórmula.
Si se encuentra SearchString dentro de los datos de cualquiera de estas columnas como una coincidencia
parcial, se devolverá el registro completo.

NOTE
En el caso de orígenes de datos de SharePoint y Excel que contengan nombres de columna con espacios, especifique cada uno
de ellos como "_x0020_" . Por ejemplo, especifique "Nombre de columna" como "Nombre_x0020_de_columna" .

LookUp( Table; Formula [; ReductionFormula ] )


Table: requerido. La tabla en la que se va a buscar. En la interfaz de usuario, la sintaxis se muestra como origen
encima del cuadro de función.
Formula: requerido. La fórmula por la que se evalúa cada registro de la tabla. La función devuelve el primer
registro cuyo resultado es true. Puede hacer referencia a columnas dentro de la tabla. En la interfaz de usuario,
la sintaxis se muestra como condición encima del cuadro de función.
ReductionFormula: opcional. Esta fórmula se evalúa en el registro que se ha encontrado y luego el registro se
reduce a un valor único. Puede hacer referencia a columnas dentro de la tabla. Si no se usa este parámetro, la
función devuelve el registro completo de la tabla. En la interfaz de usuario, la sintaxis se muestra como resultado
encima del cuadro de función.

Ejemplos
Los ejemplos siguientes usan el origen de datos IceCream:
FÓRMULA DESCRIPCIÓN RESULTADO

Filter( IceCream; OnOrder > 0 ) Devuelve aquellos registros en los que


OnOrder es mayor que cero.

Filter( IceCream; Quantity + Devuelve aquellos registros en los que


OnOrder > 225 ) la suma de las columnas Cantidad y
OnOrder es mayor que 225.

Filter( IceCream; "chocolate" in Devuelve aquellos registros donde


Lower( Flavor ) ) aparece la palabra "chocolate" en el
nombre Flavor, sin tener en cuenta
mayúsculas o minúsculas.

Filter( IceCream; Quantity < 10 && Devuelve aquellos registros donde la


OnOrder < 20 ) cantidad es menor que 10 y la cantidad
OnOrder es menor que 20. No hay
registros que coincidan con estos
criterios, por lo que se devolverá una
tabla vacía.

Search( IceCream; "choc"; "Flavor" ) Devuelve aquellos registros donde


aparece la cadena "choc" en el nombre
Flavor, sin tener en cuenta mayúsculas
o minúsculas.

Search( IceCream; ""; "Flavor" ) Dado que el término de búsqueda está


vacío, se devolverán todos los registros.

LookUp( IceCream; Flavor = Busca un registro cuyo valor de Flavor 100


"Chocolate"; Quantity ) sea igual a "Chocolate". En este caso,
devuelve uno. Para el primer registro
que se encuentra, devuelve el valor de
Cantidad de ese registro.

LookUp( IceCream; Quantity > 150; Busca un registro cuyo valor de 250
Quantity + OnOrder ) Quantity sea mayor que 100. En este
caso, devuelve varios. Para el primer
registro que se encuentra, que es el
Flavor "Vanilla", devuelve la suma de las
columnas Quantity y OnOrder.

LookUp( IceCream; Flavor = Busca un registro cuyo valor de Flavor blank


"Pistachio"; OnOrder ) sea igual a "Pistachio". En este caso no
devuelve ninguno. Como no se encontró
ninguno, Búsqueda devuelve blank.
FÓRMULA DESCRIPCIÓN RESULTADO

LookUp( IceCream; Flavor = Busca un registro cuyo valor de Flavor Tipo "Vainilla", cantidad: 200, en orden:
"Vanilla" ) sea igual a "Vanilla". En este caso, 75}
devuelve uno. Como no se proporcionó
ninguna fórmula de reducción, se
devuelve todo el registro.

Experiencia de búsqueda del usuario


En muchas aplicaciones, puede escribir uno o varios caracteres en un cuadro de búsqueda para filtrar una lista de
registros en un conjunto de datos grande. A medida que escribe, la lista muestra solo los registros que coinciden
con los criterios de búsqueda.
Los ejemplos que aparecen en el resto de este tema muestran los resultados de buscar en una lista, denominada
Clientes, que contiene estos datos:

Para crear este origen de datos como una colección, cree un control Botón y establezca la propiedad OnSelect en
esta fórmula:
ClearCollect (clientes; tabla ({nombre: "Fred Garcia"; compañía: "Northwind Traders"}; {nombre: "Cole
Miller"; empresa: "Contoso"}; {Name: "Glenda Johnson"; compañía: "Contoso"}; {Name: "Mike Collins";
Company: "Adventure Works"}; {nombre: "Colleen Jones"; compañía: "Adventure Works"}))
Como en este ejemplo, puede mostrar una lista de registros en un control Galería en la parte inferior de una
pantalla. Cerca de la parte superior de la pantalla, puede agregar un control Entrada de texto denominado
SearchInput, de modo que los usuarios puedan especificar los registros que más les interesen.

A medida que el usuario escribe caracteres en SearchInput, automáticamente se filtran los resultados en la galería.
En este caso, se configura la galería para que muestre los registros para los que el nombre del cliente (no el nombre
de la empresa) comienza con la secuencia de caracteres de SearchInput. Si el usuario escribe co en el cuadro de
búsqueda, la galería muestra estos resultados:

Para filtrar según la columna Nombre, establezca la propiedad Elementos del control Galería en una de estas
fórmulas:

FÓRMULA DESCRIPCIÓN RESULTADO

Filter( Customers; StartsWith( Name; Filtra el origen de datos Clientes para


SearchInput.Text ) ) los registros en los que la cadena de
búsqueda aparece al principio de la
columna Nombre. La prueba no
distingue mayúsculas de minúsculas. Si
el usuario escribe co en el cuadro de
búsqueda, la galería mostrará Colleen
Jones y Cole Miller. La galería no
mostrará Mike Collins porque la
columna Nombre de ese registro no
comienza por la cadena de búsqueda.

Filter( Customers; SearchInput.Text Filtra el origen de datos Clientes para


in Name ) los registros en los que la cadena de
búsqueda aparece en cualquier parte de
la columna Nombre. La prueba no
distingue mayúsculas de minúsculas. Si
el usuario escribe co en el cuadro de
búsqueda, la galería mostrará Colleen
Jones, Cole Miller y Mike Collins ya
que la cadena de búsqueda aparece en
algún lugar de la columna Nombre de
todos esos registros.

Search( Customers; De forma parecida al uso del operador


SearchInput.Text; "Name" ) in, la función Search busca una
coincidencia en cualquier parte de la
columna Nombre de cada registro.
Tenga en cuenta que debe incluir el
nombre de la columna entre comillas
dobles.

Puede expandir la búsqueda para incluir la columna Empresa además de la columna Nombre:
FÓRMULA DESCRIPCIÓN RESULTADO

Filter( Customers; StartsWith( Name; Filtra el origen de datos Clientes de


SearchInput.Text ) |;|; StartsWith( aquellos registros en los que la columna
Company; SearchInput.Text ) ) Nombre o la columna Empresa
comienza por la cadena de búsqueda
(por ejemplo, co). El operador || será
true si la función StartsWith es también
true.

Filter( Customers; SearchInput.Text Filtra el origen de datos Clientes de


in Name |;|; SearchInput.Text in aquellos registros en los que la columna
Company ) Nombre o la columna Empresa
contienen la cadena de búsqueda en
cualquier lugar (por ejemplo, co).

Search( Customers; De forma parecida al uso del operador


SearchInput.Text; "Name"; in, la función Search busca en el origen
"Company" ) de datos Customers aquellos registros
en los que la columna Name o la
columna Company contienen la cadena
de búsqueda en cualquier lugar (por
ejemplo, co). La función Search es más
fácil de leer y escribir que Filter si desea
especificar varias columnas y varios
operadores in. Tenga en cuenta que
debe incluir los nombres de las
columnas entre comillas dobles.
Función Find en PowerApps
08/10/2019 • 2 minutes to read

Busca una cadena de texto, si existe, dentro de otra cadena.

Descripción
La función Find busca una cadena dentro de otra cadena y distingue mayúsculas de minúsculas. Para omitir
mayúsculas y minúsculas, utilice primero la función Lower en los argumentos.
La función Find devuelve la posición inicial de la cadena que se ha encontrado. El primer carácter de la cadena
ocupa la posición 1. La función Find devuelve blank si la cadena en la que está buscando no contiene la cadena
que está buscando.

Sintaxis
Find( FindString; WithinString [; StartingPosition ] )
FindString: requerido. La cadena que se va a buscar.
WithinString: requerido. La cadena dentro de la que se va a buscar.
StartingPosition: requerido. La posición inicial para empezar a buscar. El primer carácter ocupa la posición 1.
Funciones First, FirstN, Last y LastN en PowerApps
08/10/2019 • 2 minutes to read

Devuelve el primer o último conjunto de registros de una tabla.

Descripción
La función First devuelve el primer registro de una tabla.
La función FirstN devuelve el primer conjunto de registros de una tabla; el segundo argumento especifica el
número de registros que se van a devolver.
La función Last devuelve el último registro de una tabla.
La función LastN devuelve el último conjunto de registros de una tabla; el segundo argumento especifica el
número de registros que se van a devolver.
First y Last devuelven un único registro. FirstN y LastN devuelven una tabla, incluso si se especifica solo un único
registro.
Cuando se usan con un origen de datos, estas funciones no se pueden delegar. Solo se recuperará la primera parte
del origen de datos, y después se aplicará la función. Es posible que el resultado no represente la historia completa.
Aparecerá una advertencia en el momento de la creación para recordarle esta limitación y para sugerirle un cambio
a alternativas delegables siempre que sea posible. Para obtener más información, consulte la información general
sobre delegación

Sintaxis
First( Table )
Last( Table )
Table: requerido. La tabla sobre la cual se opera.
FirstN ( Table [; NumberOfRecords ] )
LastN ( Table [; NumberOfRecords ] )
Table: requerido. La tabla sobre la cual se opera.
NumberOfRecords: opcional. Número de registros que se va a devolver. Si no especifica este argumento, la
función devolverá un registro.

Ejemplos
Esta fórmula devuelve el primer registro de una tabla denominada Empleados:
First(Employees)
Esta fórmula devuelve los últimos 15 registros de una tabla denominada Empleados:
LastN (Employees; 15)
Funciones First, FirstN, Last y LastN en PowerApps
08/10/2019 • 2 minutes to read

Devuelve el primer o último conjunto de registros de una tabla.

Descripción
La función First devuelve el primer registro de una tabla.
La función FirstN devuelve el primer conjunto de registros de una tabla; el segundo argumento especifica el
número de registros que se van a devolver.
La función Last devuelve el último registro de una tabla.
La función LastN devuelve el último conjunto de registros de una tabla; el segundo argumento especifica el
número de registros que se van a devolver.
First y Last devuelven un único registro. FirstN y LastN devuelven una tabla, incluso si se especifica solo un único
registro.
Cuando se usan con un origen de datos, estas funciones no se pueden delegar. Solo se recuperará la primera parte
del origen de datos, y después se aplicará la función. Es posible que el resultado no represente la historia completa.
Aparecerá una advertencia en el momento de la creación para recordarle esta limitación y para sugerirle un cambio
a alternativas delegables siempre que sea posible. Para obtener más información, consulte la información general
sobre delegación

Sintaxis
First( Table )
Last( Table )
Table: requerido. La tabla sobre la cual se opera.
FirstN ( Table [; NumberOfRecords ] )
LastN ( Table [; NumberOfRecords ] )
Table: requerido. La tabla sobre la cual se opera.
NumberOfRecords: opcional. Número de registros que se va a devolver. Si no especifica este argumento, la
función devolverá un registro.

Ejemplos
Esta fórmula devuelve el primer registro de una tabla denominada Empleados:
First(Employees)
Esta fórmula devuelve los últimos 15 registros de una tabla denominada Empleados:
LastN (Employees; 15)
Función ForAll en PowerApps
08/10/2019 • 17 minutes to read

Calcula valores y realiza acciones para todos los registros de una tabla.

Descripción
La función ForAll evalúa una fórmula para todos los registros de una tabla. La fórmula puede calcular un valor o
realizar acciones, como modificar datos o trabajar con una conexión. Utilice la función with para evaluar una
fórmula para un único registro.
Los campos de registro que se están procesando actualmente estarán disponibles en la formula. Solo tiene que
hacer referencia a los campos por su nombre, como con cualquier otro valor. También puede hacer referencia a
propiedades de control y a otros valores desde toda la aplicación. Para obtener más detalles, vea los ejemplos
siguientes y trabajar con el ámbito de registros.
Valor devuelto
Se devuelve el resultado de cada evaluación de fórmula en una tabla, en el mismo orden que la tabla de entrada.
Si el resultado de la fórmula es un valor único, la tabla resultante será una tabla con una sola columna. Si el
resultado de la fórmula es un registro, la tabla resultante contendrá registros con las mismas columnas que el
registro del resultado.
Si el resultado de la fórmula es un valor blank, no habrá ningún registro en la tabla de resultados para ese
registro de entrada. En este caso, habrá menos registros en la tabla de resultados que en la tabla de origen.
Realización de acciones
La fórmula puede incluir funciones que realicen acciones, como modificar los registros de un origen de datos con
las funciones Patch y Collect . La fórmula también puede llamar a métodos en las conexiones. Se pueden realizar
varias acciones por registro mediante el operador ; . No se puede modificar la tabla objeto de la función ForAll.
Al escribir la fórmula, tenga en cuenta que los registros se pueden procesar en cualquier orden y, siempre que
sea posible, en paralelo. Se puede procesar el primer registro de la tabla después del último registro. Tenga
cuidado para evitar la ordenación de las dependencias. Por esta razón, no puede usar las funciones
UpdateContext , Clear y ClearCollect dentro de una función ForAll ya que se podrían usar fácilmente para
mantener variables que son susceptibles de sufrir este efecto. Puede usar Collect , pero el orden en que se
agregan los registros no está definido.
Varias funciones que modifican los orígenes de datos, incluidas las funciones Collect, Remove y Update,
devuelven el origen de datos que han cambiado como su valor devuelto. Estos valores devueltos pueden ser
grandes y consumir recursos significativos si se devuelven para cada registro de la tabla ForAll. También es
posible que estos valores devueltos no sean los esperados, ya que ForAll puede funcionar en paralelo y puede
separar los efectos secundarios de estas funciones a partir de la obtención de su resultado. Afortunadamente, si el
valor devuelto desde ForAll no se utiliza realmente, y este suele ser el caso de las funciones de modificación de
datos, el valor devuelto no se creará con lo que no habrá ningún problema de recursos u ordenación. Sin
embargo, si va a utilizar el resultado de una función ForAll y el de alguna de las funciones que devuelve un
origen de datos, medite concienzudamente sobre cómo estructurar el resultado y pruébelas primero en
conjuntos de datos pequeños.
Alternativas
Muchas funciones de PowerApps pueden procesar más de un valor a la vez mediante el uso de una tabla de una
sola columna. Por ejemplo, la función Len puede procesar una tabla de valores de texto, devolviendo una tabla de
longitudes, de la misma manera que podría hacerlo la función ForAll. Esto hace que no sea necesario usar la
función ForAll en muchos casos, puede resultar más eficaz y es más fácil de leer.
Otra consideración a tener en cuenta es que ForAll no es delegable mientras que otras funciones sí que lo
pueden ser como, por ejemplo, Filter.
Delegación
Cuando se usa con un origen de datos, esta función no se puede delegar. Solo se recuperará la primera parte del
origen de datos, y después se aplicará la función. Es posible que el resultado no represente la historia completa.
Aparecerá una advertencia en el momento de la creación para recordarle esta limitación y para sugerirle un
cambio a alternativas delegables siempre que sea posible. Para obtener más información, consulte la información
general sobre delegación

Sintaxis
ForAll( Table; Formula )
Table: requerido. Tabla sobre la que se va a actuar.
Formula: requerido. La fórmula que se evalúa para todos los registros de la tabla.

Ejemplos
Cálculos
Los ejemplos siguientes usan el origen de datos Cuadrados:

Para crear este origen de datos como una colección, establezca la propiedad OnSelect de un control Botón en
esta fórmula, abra el modo de vista previa y, a continuación, haga clic o pulse en el botón:
ClearCollect( Squares; [ "1"; "4"; "9" ] )

FÓRMULA DESCRIPCIÓN RESULTADO

ForAll( Squares; Sqrt( Value ) ) Para todos los registros de la tabla de


entrada calcula la raíz cuadrada de la
Sqrt( Squares ) columna Value. La función Sqrt
también puede utilizarse con una tabla
de una sola columna, lo que permite
realizar este ejemplo sin usar la función
ForAll.

ForAll( Squares; Power( Value; 3 ) ) Para todos los registros de la tabla de


entrada eleva la columna Valor a la
tercera potencia. La función Power no
admite tablas de una sola columna. Por
tanto, se debe usar ForAll en este
caso.

Uso de una conexión


Los ejemplos siguientes usan el origen de datos Expresiones:
Para crear este origen de datos como una colección, establezca la propiedad OnSelect de un control Botón en
esta fórmula, abra el modo de vista previa y, a continuación, haga clic o pulse en el botón:
ClearCollect( Expressions; [ "Hello"; "Good morning"; "Thank you"; "Goodbye" ] )

Este ejemplo usa también una conexión con Microsoft Translator. Para agregar esta conexión a la aplicación,
consulte el tema acerca de cómo administrar conexiones.

FÓRMULA DESCRIPCIÓN RESULTADO

ForAll( Expresiones; Para todos los registros de la tabla


MicrosoftTranslator.Translate( Expresiones, traduce el contenido de la
Value; "es" ) ) columna Value en español (abreviado
"es").

ForAll( Expresiones; Para todos los registros de la tabla


MicrosoftTranslator.Translate( Expresiones, traduce el contenido de la
Value; "fr" ) ) columna Value en francés (abreviado
"fr").

Copia de una tabla


A veces, es necesario filtrar, dar forma, ordenar y manipular los datos. PowerApps proporciona una serie de
funciones para hacerlo como, por ejemplo, Filter, AddColumns y Sort. PowerApps trata cada tabla como un
valor, lo que permite que fluya a través de las fórmulas y se consuma fácilmente.
Puede que, en alguna ocasión, desee realizar una copia de este resultado para su uso posterior. O puede que
desee mover información de un origen de datos a otro. PowerApps proporciona la función Collect para copiar
datos.
Pero antes de hacer esa copia, debe considerar cuidadosamente si realmente se necesita. Hay muchas situaciones
que se pueden solucionar mediante el filtrado y la forma del origen de datos subyacente a petición con una
fórmula. Algunas de las desventajas a la hora de realizar una copia son:
Dos copias de la misma información significa que una de ellas puede no sincronizarse.
Realizar una copia puede consumir una gran cantidad de memoria del equipo, ancho de banda de red y
tiempo.
En la mayoría de los orígenes de datos, la copia no se puede delegar, lo cual limita la cantidad de datos que se
pueden mover.
Los ejemplos siguientes usan el origen de datos Productos:
Para crear este origen de datos como una colección, establezca la propiedad OnSelect de un control Botón en
esta fórmula, abra el modo de vista previa y, a continuación, haga clic o pulse en el botón:

ClearCollect( Products;
Table(
{ Product: "Widget"; 'Quantity Requested': 6; 'Quantity Available': 3 };
{ Product: "Gadget"; 'Quantity Requested': 10; 'Quantity Available': 20 };
{ Product: "Gizmo"; 'Quantity Requested': 4; 'Quantity Available': 11 };
{ Product: "Apparatus"; 'Quantity Requested': 7; 'Quantity Available': 6 }
)
)

Nuestro objetivo es trabajar con una tabla derivada que incluya solo los artículos de los que se ha solicitado una
cantidad mayor a la disponible y para los cuales hay que realizar un pedido:

Se puede realizar esta tarea de dos maneras diferentes, que generan el mismo resultado, y cada una con sus
ventajas y desventajas.
Forma de tabla a petición
No haga esa copia Podemos utilizar la fórmula siguiente en cualquier lugar que sea necesario:

// Table shaping on demand; no need for a copy of the result


ShowColumns(
AddColumns(
Filter( Products; 'Quantity Requested' > 'Quantity Available' );
"Quantity To Order"; 'Quantity Requested' - 'Quantity Available'
);
"Product";
"Quantity To Order"
)

Se crea un ámbito de registro mediante las funciones Filter y AddColumns que permite realizar las operaciones
de comparación y resta, respectivamente, con los campos 'Cantidad en pedido' y 'Cantidad disponible' de
cada registro.
En este ejemplo, la función Filter se puede delegar. Esto es importante, ya que puede encontrar todos los
productos que cumplen los criterios, incluso si se trata solo de unos pocos registros en una tabla de millones de
ellos. En este momento, las funciones ShowColumns y AddColumns no se pueden delegar, por lo que se
limitará el número real de productos que es necesario solicitar. Si sabe que el tamaño de este resultado siempre
será relativamente pequeño, este enfoque es adecuado.
Y dado que no realizamos una copia, no hay ninguna copia adicional de la información para administrar o que
esté obsoleta.
Función ForAll a petición
Otro enfoque consiste en utilizar la función ForAll para reemplazar las funciones de forma de tabla:
ForAll( Products;
If( 'Quantity Requested' > 'Quantity Available';
{
Product: Product;
'Quantity To Order': 'Quantity Requested' - 'Quantity Available'
}
)
)

Esta fórmula puede ser más sencilla de leer y escribir para algunas personas.
No se puede delegar ninguna parte de ForAll. Solo se evaluará la primera parte de la tabla Productos, lo cual
podría ser un problema si esta tabla es muy grande. Dado que la función Filter se pudo delegar en el ejemplo
anterior, esta podría funcionar mejor con grandes conjuntos de datos.
Recopilación de resultados
En algunos casos, puede que sea necesario realizar una copia de los datos. Puede que necesite mover
información de un origen de datos a otro. En este ejemplo, se realizan los pedidos a través de una tabla
denominada NewOrderdel sistema del proveedor. Para interacciones de usuario de alta velocidad, puede que
desee almacenar en caché una copia local de una tabla para que no haya ninguna latencia del servidor.
Se utilizará la misma forma de tabla que en los dos ejemplos anteriores, pero se capturará el resultado en una
colección:

ClearCollect( NewOrder;
ShowColumns(
AddColumns(
Filter( Products; 'Quantity Requested' > 'Quantity Available' );
"Quantity To Order"; 'Quantity Requested' - 'Quantity Available'
);
"Product";
"Quantity To Order"
)
)

ClearCollect( NewOrder;
ForAll( Products;
If( 'Quantity Requested' > 'Quantity Available';
{
Product: Product;
'Quantity To Order': 'Quantity Requested' - 'Quantity Available'
}
}
)
)

Las funciones ClearCollect y Collect no se pueden delegar. Como consecuencia, la cantidad de datos que se
pueden mover de esta manera es limitada.
Recopilación dentro de ForAll
Por último, se puede realizar la función Collect directamente dentro de ForAll:
Clear( ProductsToOrder );;
ForAll( Products;
If( 'Quantity Requested' > 'Quantity Available';
Collect( NewOrder;
{
Product: Product;
'Quantity To Order': 'Quantity Requested' - 'Quantity Available'
}
)
)
)

Una vez más, la función ForAll no se puede delegar en este momento. Si la tabla Productos es grande, la
función ForAll buscará solo en el primer conjunto de registros y puede que se pasen por alto algunos productos
que es necesario solicitar. Pero en el caso de tablas que sabemos que seguirán siendo pequeñas, este enfoque es
adecuado.
Tenga en cuenta que no vamos a capturar el resultado de la función ForAll. Las llamadas de la función Collect
realizadas desde dentro de ella devolverán el origen de datos NewOrder para todos los registros, lo que podría
agregarse a muchos datos si los fuéramos a capturar.
Funciones GroupBy y Ungroup en PowerApps
08/10/2019 • 9 minutes to read

Agrupa y desagrupa registros de una tabla.

Descripción
La función GroupBy devuelve una tabla con registros agrupados en función de los valores de una o varias
columnas. Los registros del mismo grupo se colocan en un único registro, con una columna agregada que contiene
una tabla anidada de las columnas restantes.
La función Ungroup invierte el proceso realizado por GroupBy. Esta función devuelve una tabla y divide en
registros individuales todos los registros que estaban agrupados.
Puede agrupar los registros mediante GroupBy, modificar la tabla que devuelve y, a continuación, desagrupar los
registros de la tabla modificada mediante la función Ungroup. Por ejemplo, puede quitar un grupo de registros
siguiendo este enfoque:
Use la función GroupBy.
Use la función Filter para quitar todo el grupo de registros.
Use la función Ungroup.
También puede agregar los resultados en función de una agrupación:
Use la función GroupBy.
Use la función AddColumns con Sum , Average y otras funciones de agregado para agregar una nueva
columna que sea un agregado de las tablas de grupos.
Use la función DropColumns para quitar la tabla de grupo.
Ungroup intenta conservar el orden original de los registros que se proporcionan a GroupBy. Esto no siempre es
posible (por ejemplo, si la tabla original contiene registros blank).
Una tabla es un valor en PowerApps, como una cadena o un número. Puede especificar una tabla como argumento
para una función y una función puede devolver una tabla. GroupBy y Ungroup no modifican una tabla; en lugar
de eso, toman una tabla como argumento y devuelven una tabla diferente. Consulte cómo trabajar con tablas para
más detalles.

Sintaxis
GroupBy( Table; ColumnName1 [; ColumnName2; ... ]; GroupColumnName )
Table: requerido. Tabla que se desea agrupar.
ColumnName(s) : requerido. Los nombres de columna en Table mediante los que se van a agrupar los
registros. Estas columnas se convierten en columnas en la tabla resultante.
GroupColumnName: requerido. El nombre de la columna para el almacenamiento de datos de registro que
no están en el ColumnName(s) .
NOTE
En el caso de orígenes de datos de SharePoint y Excel que contengan nombres de columna con espacios, especifique
cada uno de ellos como "_x0020_" . Por ejemplo, especifique "Nombre de columna" como
"Nombre_x0020_de_columna" .

Ungroup( Table; GroupColumnName )


Table: requerido. Tabla que se desea desagrupar.
GroupColumnName: requerido. La columna que contiene la configuración de los datos de registro con la
función GroupBy.

NOTE
En el caso de orígenes de datos de SharePoint y Excel que contengan nombres de columna con espacios, especifique
cada uno de ellos como "_x0020_" . Por ejemplo, especifique "Nombre de columna" como
"Nombre_x0020_de_columna" .

Ejemplos
Crear una colección
1. Agregue un botón y establezca su propiedad Text para que el botón muestre Original.
2. Establezca la propiedad OnSelect del botón Original en esta fórmula:

ClearCollect( CityPopulations;
{ City: "London"; Country: "United Kingdom"; Population: 8615000};
{ City: "Berlin"; Country: "Germany"; Population: 3562000};
{ City: "Madrid"; Country: "Spain"; Population: 3165000};
{ City: "Rome"; Country: "Italy"; Population: 2874000};
{ City: "Paris"; Country: "France"; Population: 2273000};
{ City: "Hamburg"; Country: "Germany"; Population: 1760000};
{ City: "Barcelona"; Country: "Spain"; Population: 1602000};
{ City: "Munich"; Country: "Germany"; Population: 1494000};
{ City: "Milan"; Country: "Italy"; Population: 1344000}
)

3. Mientras mantiene presionada la tecla Alt, seleccione el botón Original.


Acaba de crear una colección, que se denomina CityPopulations, que contiene estos datos:

4. Para mostrar esta colección, seleccione Colecciones en el menú Archivo y, a continuación, seleccione la
colección CityPopulations. Aparecerán los cinco primeros registros de la colección:
Registros de grupo
1. Agregue otro botón y establezca su propiedad Text en "Group" .
2. Establezca la propiedad OnSelect de este botón en esta fórmula:
ClearCollect( CitiesByCountry; GroupBy( CityPopulations; "Country"; "Cities" ) )
3. Mientras mantiene presionada la tecla Alt, seleccione el botón Grupo.
Acaba de crear una recopilación denominada CitiesByCountry, en la que se agrupan los registros de la
colección anterior mediante la columna País.

4. Para mostrar los primeros cinco registros de esta colección, seleccione Colecciones en el menú Archivo.
5. Para mostrar la población de las ciudades de un país o región, seleccione el icono de tabla de la columna
Ciudades de ese país (por ejemplo, Alemania):

Filtrado y desagrupación de registros


1. Agregue otro botón y establezca su propiedad Text para que el botón muestre "Filtrar" .
2. Establezca la propiedad OnSelect de este botón en esta fórmula:
ClearCollect( CitiesByCountryFiltered; Filter( CitiesByCountry; "e" in Country ) )
3. Mientras mantiene presionada la tecla Alt, seleccione el botón que ha agregado.
Acaba de crear una tercera colección denominada CitiesByCountryFiltered, que incluye solo aquellos
países que tienen una "e" en sus nombres (es decir, no España o Italia, por ejemplo).
4. Agregue un botón más y establezca su propiedad Text para que el botón muestre "Desagrupar" .
5. Establezca la propiedad OnSelect de este botón en esta fórmula:
ClearCollect( CityPopulationsUngrouped; Ungroup( CitiesByCountryFiltered; "Cities" ) )
Que da como resultado:

Agregación de resultados
Otra cosa que podemos hacer con una tabla agrupada consiste en agregar los resultados. En este ejemplo, se
sumará la población de las ciudades más importantes de cada país.
1. Agregue otro botón y establezca su propiedad Text para que el botón muestre "Sum" .
2. Establezca la propiedad OnSelect del botón "Sum" en esta fórmula:
ClearCollect( CityPopulationsSum; AddColumns( CitiesByCountry; "Sum of City Populations";
Sum ( Cities; Population ) ) )
Que da como resultado:
AddColumns comienza con la colección básica de CitiesByCountry y agrega una nueva columna
denominada Sum of City Populations. Los valores de esta columna se calculan fila por fila según la
fórmula Sum ( Cities; Population ) . AddColumns proporciona el valor de la columna Cities (una tabla)
para cada fila y Sum el valor de Population de cada fila de esta subtabla.
Ahora que tenemos la suma que queremos, podemos usar la función DropColumns para quitar las
subtablas.
3. Agregue otro botón y establezca su propiedad Text para que el botón muestre "SumOnly" .
4. Establezca la propiedad OnSelect del botón "SumOnly" en esta fórmula:
ClearCollect( CityPopulationsSumOnly; DropColumns( CityPopulationsSum; "Cities" ) )
Que da como resultado:

Tenga en cuenta que no fue necesario desagrupar esta tabla.


Función GUID en PowerApps
08/10/2019 • 6 minutes to read

Convierta una cadena de GUID (identificador único global) en un valor GUID o cree un valor GUID.

Descripción
Use la función GUID para convertir una cadena que contiene la representación hexadecimal de un GUID a un
valor GUID que se puede pasar a una base de datos. Los sistemas de base de datos, como Common Data Service
y SQL Server, usan los valores GUID como claves.
La cadena que se pase puede contener letras mayúsculas o minúsculas, pero debe tener 32 dígitos hexadecimales
en cualquiera de estos formatos:
"123e4567-e89b-12d3-a456-426655440000" (guiones en ubicaciones estándar)
"123e4567e89b12d3a456426655440000" (sin guiones)
Si no se especifica un argumento, esta función crea un GUID.
Para convertir un valor GUID en una cadena, simplemente úselo en un contexto de cadena. El valor GUID se
convertirá en una cadena de representación hexadecimal con letras minúsculas y guiones.
Al generar un nuevo GUID, esta función usa números pseudoaleatorios para crear una versión 4 del GUID de
IETF RFC 4122 . Al convertir una cadena en un GUID, esta función admite cualquier versión de GUID aceptando
cualquier cadena de 32 dígitos hexadecimales.

Funciones volátiles
GUID es una función volátil cuando se usa sin argumento. Cada vez que se evalúa, la función devuelve un valor
diferente.
Cuando se usa en una fórmula de flujo de datos, una función volátil solo devuelve un valor diferente si se vuelve a
evaluar la fórmula en la que aparece. Si no se realiza ningún otro cambio en la fórmula, presenta el mismo valor
durante la ejecución de la aplicación.
Por ejemplo, un control de etiqueta en el que la propiedad Text se establece en GUID () no cambiará mientras la
aplicación está activa. Solo se generará un valor distinto si la aplicación se cierra y se vuelve a abrir.
La función se volverá a evaluar si forma parte de una fórmula en la que haya cambiado algún otro elemento. Si,
por ejemplo, la propiedad Text de un control Label se establece en esta fórmula, se genera un GUID cada vez que
el usuario cambia el valor del control Text input:
TextInput1.Text & " " & GUID ()
Cuando se usa en una fórmula de comportamiento, GUID se evalúa cada vez que se evalúa la fórmula. Para más
información, vea los ejemplos más adelante en este tema.

Sintaxis
GUID ( [ GUIDString ] )
GUIDString (opcional). Cadena de texto que contiene la representación hexadecimal de un GUID. Si no se
especifica ninguna cadena, se crea un GUID.
Ejemplos
Uso básico
Para devolver un valor GUID basado en la representación de cadena hexadecimal:
GUID ( "0f8fad5b-d9cb-469f-a165-70867728950e" )
También puede especificar la cadena de GUID sin guiones. Esta fórmula devuelve el mismo valor GUID:
GUID ( "0f8fad5bd9cb469fa16570867728950e" )
Se utiliza en contexto para establecer el campo Estado de un nuevo registro de la base de datos en un valor
establecido:
Patch (productos; valores predeterminados (productos); {estado: GUID ("F9168C5E -CEB2-4faa-B6BF-
329BF39FA1E4")})
Probablemente no quiera mostrar los GUID a los usuarios, pero los GUID pueden ayudarle a depurar la
aplicación. Para mostrar el valor del campo Estado en el registro que creó en el ejemplo anterior, establezca la
propiedad Text de un control Label en esta fórmula:
First( Products ).Status
El control Label mostrará f9168c5e-ceb2-4faa-b6bf-329bf39fa1e4.
Creación de una tabla de valores GUID
1. Establezca la propiedad OnSelect de un control de botón en esta fórmula:
ClearCollect( NewGUIDs; ForAll( [ 1; 2; 3; 4; 5 ]; GUID () ) )
Con esta fórmula se crea una tabla de una sola columna que se usa para iterar cinco veces, lo que produce
cinco GUID.
2. Agregue un control Data Table , establezca su propiedad Items en NewGUIDs y muestre el campo Valor.
3. Haga clic en el botón o púlselo para seleccionarlo, manteniendo la tecla Alt presionada.
La tabla de datos muestra una lista de GUID:

4. Vuelva a seleccionar el botón para mostrar otra lista de GUID:


Para generar un GUID único en lugar de una tabla, utilice esta fórmula:
Set( NewGUID; GUID () )
Función HashTags en PowerApps
08/10/2019 • 2 minutes to read

Extrae los hashtags (#cadenas) de una cadena de texto.

Descripción
La función HashTags analiza una cadena en busca de hashtags. Los hashtags comienzan por un carácter de
almohadilla (#), que va seguido de cualquier combinación de:
letras mayúsculas y minúsculas
números
caracteres de subrayado
símbolos de moneda (por ejemplo, $)
HashTags devuelve una tabla de una sola columna que contiene los hashtags de la cadena. Si la cadena no
contiene ningún hashtag, la función devuelve una tabla de una sola columna que está vacía.

Sintaxis
HashTags( String )
String: requerido. Cadena en la que se van a buscar hashtags.

Ejemplos
Paso a paso
1. Agregue un control Entrada de texto , asígnele el nombre Tweet y escriba esta frase:
Esta #aplicación es #SORPRENDENTE y puede #contar123 # o #123abc; pero no #1-23 ni #$*
(#@")
2. Agregue una galería vertical personalizada y establezca su propiedad Elementos en esta función:
HashTags(Tweet.Text)
3. Agregue un control Etiqueta a la plantilla de la galería.
La galería mostrará estos hashtags:
#aplicación
#SORPRENDENTE
#contar123
#123abc
#1
Funciones Day, Month, Year, Hour, Minute, Second y
Weekday en PowerApps
08/10/2019 • 4 minutes to read

Devuelve los componentes individuales de un valor de fecha y hora.

Descripción
La función Day devuelve el componente de día de un valor de fecha y hora, comprendido entre 1 y 31.
La función Month devuelve el componente de mes de un valor de fecha y hora, comprendido entre 1 y 12.
La función Year devuelve el componente de año de un valor de fecha y hora, a partir de 1900.
La función Hour devuelve el componente de hora de un valor de fecha y hora, comprendido entre 0 (12:00 a. m.) y
23 (11:00 p. m).
La función Minute devuelve el componente de minuto de un valor de fecha y hora, comprendido entre 0 y 59.
La función Second devuelve el componente de segundo de un valor de fecha y hora, comprendido entre 0 y 59.
La función Weekday devuelve el día de la semana de un valor de fecha y hora. De forma predeterminada, el
resultado está comprendido entre 1 (domingo) y 7 (sábado). Puede especificar un intervalo diferente con un código
de la función Weekday de la semana de Microsoft Excel o un valor de enumeración de StartOfWeek:

CÓDIGO DE EXCEL ENUMERACIÓN DE STARTOFWEEK DESCRIPCIÓN

1, 17 StartOfWeek.Sunday Números del 1 (domingo) al 7 (sábado).


Predeterminado.

2, 11 StartOfWeek.Monday Números del 1 (lunes) al 7 (domingo).

3 StartOfWeek.MondayZero Números del 0 (lunes) al 6 (domingo).

12 StartOfWeek.Tuesday Números del 1 (martes) al 7 (lunes).

13 StartOfWeek.Wednesday Números del 1 (miércoles) al 7 (martes).

14 StartOfWeek.Thursday Números del 1 (jueves) al 7 (miércoles).

15 StartOfWeek.Friday Números del 1 (viernes) al 7 (jueves).

16 StartOfWeek.Saturday Números del 1 (sábado) al 7 (viernes).

Todas las funciones devuelven un número.


Consulte cómo trabajar con fechas y horas para más información.

Sintaxis
Day( DateTime )
Month( DateTime )
Year( DateTime )
Hour( DateTime )
Minute( DateTime )
Second( DateTime )
DateTime: requerido. Valor de fecha y hora con el que operar.
Weekday( DateTime [; WeekdayFirst ] )
DateTime: requerido. Valor de fecha y hora con el que operar.
WeekdayFirst: opcional. Código de Excel que especifica qué día comienza la semana. Si no se indica, se usará 1
(primero el domingo).

Ejemplos
En el ejemplo siguiente, la hora actual es las 3:59:37 p. m. del jueves, 9 de abril de 2015.

FÓRMULA DESCRIPCIÓN RESULTADO

Year( Now() ) Devuelve el componente de año de la 2015


fecha y hora actuales.

Month( Now() ) Devuelve el componente de mes de la 4


fecha y hora actuales.

Day( Now() ) Devuelve el componente de día de la 9


fecha y hora actuales.

Hour( Now() ) Devuelve el componente de hora de la 15


fecha y hora actuales.

Minute( Now() ) Devuelve el componente de minuto de 59


la fecha y hora actuales.

Second( Now() ) Devuelve el componente de minuto de 37


la fecha y hora actuales.

Weekday( Now() ) Devuelve el componente de día de la 5


semana de la fecha y hora actuales,
considerando al domingo como inicio de
la semana de forma predeterminada.

Weekday( Now(); 14 ) Devuelve el componente de día de la 1


semana de la fecha y hora actuales,
usando un código de Excel para
especificar el jueves como inicio de la
semana.

Weekday( Now(); StartOfWeek.Wed Devuelve el componente de día de la 2


nesday ) semana de la fecha y hora actuales,
usando una enumeración StartOfWeek
para especificar el miércoles como inicio
de la semana.
Funciones If y Switch de PowerApps
08/10/2019 • 10 minutes to read

Determina si se cumple alguna condición de un conjunto (If) o si el resultado de una fórmula coincide con algún
valor de un conjunto (Switch) y luego devuelve un resultado o ejecuta una acción.

Descripción
La función If comprueba una o varias condiciones hasta que encuentra un resultado verdadero. Si se encuentra un
resultado de este tipo, se devuelve un valor correspondiente. Si no se encuentra ningún resultado de este tipo, se
devuelve un valor predeterminado. En cualquier caso, el valor devuelto podría ser una cadena para mostrar, una
fórmula para evaluar u otra forma de resultado.
La función Switch evalúa una fórmula y determina si el resultado coincide con algún valor de una secuencia que
especifique. Si se encuentra una coincidencia, se devuelve un valor correspondiente. Si no se encuentra ninguna
coincidencia, se devuelve un valor predeterminado. En cualquier caso, el valor devuelto podría ser una cadena para
mostrar, una fórmula para evaluar u otra forma de resultado.
Las funciones If y Switch son muy parecidas, así que debe usar aquella que mejor se adapte a su situación:
Use If para evaluar una única condición. La sintaxis más común para esta función es If( Condition; ThenResult;
DefaultResult ), que proporciona el patrón común "if … then ... else ..." que puede verse en otras herramientas de
programación.
Use If para evaluar varias condiciones no relacionadas. En PowerApps (a diferencia de Microsoft Excel), puede
especificar varias condiciones sin tener que anidar fórmulas If.
Use Switch para evaluar una condición única contra varias coincidencias posibles. También podría usar If en
este caso, pero tendría que repetir la fórmula con cada posible coincidencia.
Puede usar ambas funciones en fórmulas de comportamiento para crear una bifurcación entre dos o más acciones.
Solo una bifurcación desencadenará una acción. Las condiciones y coincidencias se evalúan en orden y se detienen
si una condición es verdadera o se encuentra una coincidencia.
Se devuelve en blanco si ninguna condición es verdadera, no se encuentra ninguna coincidencia y no especifica un
resultado predeterminado.

Sintaxis
If( Condition; ThenResult [; DefaultResult ] )
If( Condition1; ThenResult1 [; Condition2; ThenResult2; ... [ ; DefaultResult ] ] )
Condition(s) : requerido. Fórmulas para comprobar que una condición es verdadera. Tales fórmulas contienen
normalmente operadores de comparación (como < , > y = ) y permiten probar funciones como IsBlank e
IsEmpty .
ThenResult(s) : requerido. El valor correspondiente que se devuelve para una condición que se evalúa como true.
DefaultResult: opcional. El valor que se devuelve si ninguna condición se evalúa como verdadera. Si no se
especifica este argumento, se devolverá un valor blank.
Switch( Formula; Match1; Result1 [; Match2; Result2; ... [; DefaultResult ] ] )
Formula: requerido. Fórmula para evaluar coincidencias. Esta fórmula se evalúa solo una vez.
Match(s) (Coincidencias): requerido. Valores para comparar con el resultado de Fórmula. Si se encuentra una
coincidencia exacta, se devuelve el Resultado correspondiente.
Result(s) : requerido. El valor correspondiente que se devolverá cuando se encuentre una coincidencia exacta.
DefaultResult: opcional. Si no se encuentra una coincidencia exacta, se devuelve este valor. Si no se especifica
este argumento, se devolverá un valor blank.

Ejemplos
Valores en las fórmulas
En los ejemplos siguientes, un control Control deslizante (llamado Slider1) tiene un valor de 25.

FÓRMULA DESCRIPCIÓN RESULTADO

If( Slider1.Value = 25; "Result1" ) La condición es true y se devuelve el "Result1"


resultado correspondiente.

If( Slider1.Value = 25; "Result1"; La condición es true y se devuelve el "Result1"


"Result2" ) resultado correspondiente.

If( Slider1.Value > 1000; "Result1" ) La condición es falsa y no se blank


proporcionó ningún valor para
DefaultResult.

If( Slider1.Value > 1000; "Result1"; La condición es falsa, se proporcionó un "Result2"


"Result2" ) valor para DefaultResult, que es el que
se devuelve.

If( Slider1.Value = 25; "Result1"; La primera condición es true y se "Result1"


Slider1.Value > 0; "Result2" ) devuelve el resultado correspondiente.
La segunda condición es también
verdadera, pero no se evalúa ya que
aparece más adelante en la lista de
argumentos que una condición que se
evalúa como verdadera.

If( IsBlank( Slider1.Value ); "Result1"; La primera condición es falsa porque el "Result2"


IsNumeric( Slider1.Value ); "Result2" control deslizante no es blank. La
) segunda condición es true porque el
valor del control deslizante es un
número y se devolverá el resultado
correspondiente.

If( Slider1.Value > 1000; "Result1"; Las condiciones primera y segunda son "Result3"
Slider1.Value > 50; "Result2"; falsas, se proporcionó un valor para
"Result3") DefaultResult, y es el que se devuelve.

Switch( Slider1.Value; 25; "Result1" ) El valor del control deslizante coincide "Result1"
con el primer valor que se comprueba, y
se devuelve el resultado
correspondiente.

Switch( Slider1.Value; 20; "Result1"; El valor del control deslizante coincide "Result2"
25; "Result2"; 30; "Result3" ) con el segundo valor que se comprueba,
y se devuelve el resultado
correspondiente.
FÓRMULA DESCRIPCIÓN RESULTADO

Switch( Slider1.Value; 20; "Result1"; El valor del control deslizante no "DefaultResult"


10; "Result2"; 0; "Result3"; coincide con ningún valor que se
"DefaultResult" ) comprueba. Se proporcionó un valor
para DefaultResult, que es el que se
devuelve.

Bifurcación en fórmulas de comportamiento


En los ejemplos siguientes, un control Entrada de texto denominado FirstName tiene escrito el valor "John".

FÓRMULA DESCRIPCIÓN RESULTADO

If( ! IsBlank( FirstName.Text ); La condición es true, así que se ejecuta true


Navigate( Screen1; la función Navigate . Puede usar la
ScreenTransition.None ) ) función IsBlank para comprobar si se ha La pantalla cambia a Screen1.
rellenado un campo de formulario
obligatorio. Si FirstName (Nombre)
fuese blank, esta fórmula no tendría
ningún efecto.

If( IsBlank( FirstName.Text ); Sin el operador ! , la condición es false, true


Navigate( Screen1; así que no se ejecuta la función
ScreenTransition.None ); Back() ) Navigate . La función Back se Se vuelve a la pantalla que aparecía
proporcionó como DefaultResult, así anteriormente.
que es la que se ejecuta.

Switch( FirstName.Text; "Carlos"; El valor de FirstName.Text se compara true


Navigate( Screen1; con "Carlos", "Kirstin" y "John" en ese
ScreenTransition.None ); "Kirstin"; orden. Se encuentra una coincidencia La pantalla cambia a Screen3.
Navigate( Screen2; con "John", por lo que la aplicación se
ScreenTransition.None ); "John"; desplaza a Screen3.
Navigate( Screen3;
ScreenTransition.None ) )

Paso a paso
1. Agregue un control Entrada de texto y asígnele el nombre Text1, siempre que no sea su nombre
predeterminado.
2. En Text1, escriba 30.
3. Agregue un control Label y establezca su propiedad Text en esta fórmula:
If( Value(Text1.Text) < 20; "Order MANY more!"; Value(Text1.Text) < 40; "Order more!"; Text1.Text
)
El control Etiqueta muestra Order more! dado que el valor de Text1 es superior a 20, pero inferior a 40.
4. En Text1, escriba 15.
El control Etiqueta muestra Order MANY more! dado que el valor de Text1 es inferior a 20.
5. En Text1, escriba 50.
El control Etiqueta muestra el valor que escribió porque es superior a 40.
Función IfError en PowerApps
08/10/2019 • 7 minutes to read

Detecta errores y proporciona un valor alternativo o lleva a cabo una acción.

Descripción
NOTE
Esta función forma parte de una característica experimental y está sujeta a cambios. El comportamiento que se describe en
este tema solo está disponible cuando está activada la característica de Administración de errores de nivel de fórmula . Esta
configuración de nivel de aplicación está desactivada de forma predeterminada. Para activar esta característica, abra la
pestaña archivo , seleccione Configuración de la aplicación en el menú de la izquierda y, a continuación, seleccione
características experimentales. Sus comentarios nos sirven mucho: denos su opinión en los foros de la comunidad de
PowerApps.

La función de error de prueba comprueba uno o más valores hasta que encuentra un resultado de error. Si la
función encuentra un error, la función devuelve un valor correspondiente. De lo contrario, la función devuelve un
valor predeterminado. En cualquier caso, la función podría devolver una cadena para mostrar, una fórmula para
evaluar u otra forma de resultado. La función que se va a una vez es similar a la función If : Una prueba de error
en busca de errores, mientras que si comprueba true.
Use si es un valor erróneo para reemplazar los valores de error por valores válidos. Por ejemplo, use esta función
si los datos proporcionados por el usuario pueden dar lugar a una división por cero. Cree una fórmula para
reemplazar el resultado por un valor 0 u otro que sea adecuado para la aplicación, de modo que los cálculos
descendentes puedan continuar. La fórmula puede ser tan sencilla como en este ejemplo:

IfError( 1/x; 0 )

Si el valor de x no es cero, la fórmula devuelve 1/x. De lo contrario, 1/x genera un error y la fórmula devuelve 0
en su lugar.
Use un error en las fórmulas de comportamiento para realizar una acción y comprobar si hay un error antes de
realizar acciones adicionales, como en este patrón:

IfError(
Patch( DS1; ... ); Notify( "problem in the first action" );
Patch( DS2; ... ); Notify( "problem in the second action" )
)

Si la primera revisión detecta un problema, la primera notificación se ejecuta, no se realiza ningún otro
procesamiento y la segunda revisión no se ejecuta. Si la primera revisión se realiza correctamente, se ejecuta la
segunda revisión y, si encuentra un problema, se ejecuta la segunda notificación .
Si la fórmula no encuentra errores y ha especificado el argumento opcional DefaultResult , la fórmula devuelve el
valor que especificó para ese argumento. Si la fórmula no encuentra ningún error y no se ha especificado ese
argumento, la fórmula devuelve el último argumento de valor evaluado.

Sintaxis
' No se pudo ( Value1, Fallback1 [, value2, Fallback2,... [, DefaultResult ]] )
Value (s) : requerido. Fórmulas para probar si hay un valor de error.
Fallback(s) : obligatorio. Las fórmulas que se van a evaluar y los valores que se van a devolver si los
argumentos de valor coincidente devolvieron un error.
DefaultResult: opcional. Fórmulas que se van a evaluar si la fórmula no encuentra errores.

Ejemplos
FÓRMULA DESCRIPCIÓN RESULTADO

IfError( 1; 2 ) El primer argumento no es un error. La 1


función no tiene ningún otro error para
comprobar y ningún valor devuelto
predeterminado. La función devuelve el
último argumento de valor evaluado.

IfError( 1/0; 2 ) El primer argumento devuelve un valor 2


de error (debido a la división por cero).
La función evalúa el segundo
argumento y lo devuelve como
resultado.

IfError( 1/0; Notify( "Se produjo un El primer argumento devuelve un valor 1


problema interno"; de error (debido a la división por cero).
NotificationType.Error ) ) La función evalúa el segundo
argumento y muestra un mensaje al
usuario. El valor devuelto de IfError es
el valor devuelto de Notify, convertido
al mismo tipo que el primer argumento
de IfError (un número).

"No se pudo (1, 2, 3, 4, 5") El primer argumento no es un error, por 5


lo que la función no evalúa la reserva
correspondiente del argumento. El
tercer argumento no es un error, por lo
que la función no evalúa la reserva
correspondiente del argumento. El
quinto argumento no tiene ninguna
reserva correspondiente y es el
resultado predeterminado. La función
devuelve el resultado porque la fórmula
no contiene errores.

Paso a paso
1. Agregue un control Text input y asígnele el nombre TextInput1, siempre que no sea su nombre
predeterminado.
2. Agregue un control Label y asígnele el nombre Label1, siempre que no sea su nombre predeterminado.
3. Establezca la fórmula para la propiedad Text de Label1 en:
IfError( Value( TextInput1.Text ); -1 )
4. En TextInput1, escriba 1234.
Label1 mostrará el valor 1234, ya que se trata de una entrada válida para la función Value.
5. En TextInput1, escriba ToInfinity.
Label1 mostrará el valor -1, ya que se trata de una entrada no válida para la función Value. Si no se ajustara
la función Value con IfError, la etiqueta no mostraría ningún valor, ya que el valor de error se trata como
blank.
Funciones Blank, Coalesce, IsBlank e IsEmpty en
PowerApps
26/11/2019 • 16 minutes to read

Comprueba si un valor está en blanco o una tabla no contiene registros, y proporciona una manera de crear valores
blank.

Información general
Blank es un marcador de posición para "sin valor" o "valor desconocido". Por ejemplo, la propiedad seleccionada
de un control de cuadro combinado está en blanco si el usuario no ha realizado una selección. Muchos orígenes
de datos pueden almacenar y devolver valores NULL, que se representan en PowerApps como en blanco.
Cualquier propiedad o valor calculado en PowerApps puede estar en blanco. Por ejemplo, un valor booleano
normalmente tiene uno de dos valores: true o false. Pero además de estos dos, también puede estar en blanco , lo
que indica que no se conoce el estado. Esto es similar a Microsoft Excel, donde una celda de hoja de cálculo empieza
en blanco sin contenido, pero puede contener los valores true o false (entre otros). En cualquier momento, se
puede volver a borrar el contenido de la celda y devolverlo a un estado en blanco .
Una cadena vacía hace referencia a una cadena que no contiene ningún carácter. La función Len devuelve cero para
este tipo de cadena y se puede escribir en una fórmula como dos comillas dobles sin nada entre "" . Algunos
controles y orígenes de datos usan una cadena vacía para indicar una condición de "sin valor". Para simplificar la
creación de aplicaciones , las funciones esblanco y Coalesce comprueban si hay valores en blanco o cadenas
vacías.
En el contexto de la función IsEmpty , Empty es específico de las tablas que no contienen registros. La estructura
de tabla puede estar intacta, con nombres de columna, pero ningún dato en la tabla. Una tabla puede comenzar
como vacía, obtener registros y ya no estar vacía y luego quitarse los registros y estar de nuevo vacía.

NOTE
Estamos en un período de transición. Hasta ahora, el espacio en blanco también se ha utilizado para notificar los errores, lo
que impide que se diferencie un "valor" no válido de un error. Por esta razón, en este momento, solo se admite el
almacenamiento de valores en blanco para las colecciones locales. Puede almacenar valores en blanco en otros orígenes de
datos si activa la característica experimental "administración de errores de nivel de fórmulas" en el menú Archivo,
configuración de la aplicación, configuración avanzada, características experimentales. Estamos trabajando activamente para
finalizar esta característica y completar la separación adecuada de los valores en blanco de los errores.

Descripción
La función Blank devuelve un valor blank. Use esta función para almacenar un valor NULL en un origen de datos
que admita estos valores, de forma que se quiten en la práctica todos los valores del campo.
La función esblanco comprueba un valor en blanco o una cadena vacía. La prueba incluye cadenas vacías para
facilitar la creación de aplicaciones, ya que algunos orígenes de datos y controles usan una cadena vacía cuando no
hay ningún valor. Para probar específicamente si hay un valor en blanco , use if( Value = Blank(); ... en lugar de
esblanco.
La función Coalesce evalúa sus argumentos en orden y devuelve el primer valor que no está en blanco ni una
cadena vacía. Utilice esta función para reemplazar un valor en blanco o una cadena vacía con un valor diferente,
pero sin modificar los valores de cadena que no esténen blanco y que no estén vacíos. Si todos los argumentos
están en blanco o cadenas vacías, la función devuelve un valor enblanco, lo que permite que la combinación sea
una buena manera de convertir cadenas vacías en valores en blanco . Todos los argumentos de Coalesce debe ser
del mismo tipo; por ejemplo, no puede combinar números con cadenas de texto.
Coalesce( value1; value2 ) es el equivalente más conciso de
If( Not IsBlank( value1 ); value1; Not IsBlank( value2 ); value2 ) y no requiere que value1 y value2 se evalúen
dos veces. La función If devuelve un valor en blanco si no hay ninguna fórmula "Else", como es el caso.
La función IsEmpty comprueba si una tabla contiene registros. Es equivalente a usar la función CountRows y la
comprobación de cero. Puede usar IsEmpty para comprobar errores de origen de datos en combinación con la
función Errors .
El valor devuelto para IsBlank e IsEmpty es un valor booleano true o false.

Sintaxis
En blanco()
Coalesce( Valor1 [; Valor2; ... ] )
Valores: requerido. Valores que se van a comprobar. Cada valor se evalúa en orden hasta que se encuentra un
valor que no está en blanco y no es una cadena vacía. Los valores después de este punto no se evalúan.
IsBlank( Value )
Value: requerido. Valor que se va a comprobar para un valor en blanco o una cadena vacía.
IsEmpty( Table )
Table: requerido. Tabla en la que se van a comprobar registros.

Ejemplos
En blanco

NOTE
Actualmente, el siguiente ejemplo solo funciona en colecciones locales. Puede almacenar valores en blanco en otros orígenes
de datos si activa la característica experimental "administración de errores de nivel de fórmulas" en el menú Archivo,
configuración de la aplicación, configuración avanzada, características experimentales. Estamos trabajando activamente para
finalizar esta característica y completar la separación de los valores en blanco de los errores.

1. Cree una aplicación desde el principio y agregue un control Botón.


2. Establezca la propiedad OnSelect del botón en esta fórmula:

ClearCollect( Cities; { Name: "Seattle"; Weather: "Rainy" } )

3. Obtenga una vista previa de la aplicación, haga clic o pulse en el botón que agregó y luego cierre la vista
previa.
4. En el menú Archivo, haga clic o pulse en Colecciones.
Aparece la colección Cities, que muestra un registro con "Seattle" y "Rainy":
5. Haga clic o pulse en la flecha Atrás para volver al área de trabajo predeterminada.
6. Agregue un control Label y establezca su propiedad Text en esta fórmula:

IsBlank( First( Cities ).Weather )

La etiqueta muestra false porque el campo Weather contiene un valor ("Rainy").


7. Agregue un segundo botón y establezca su propiedad OnSelect en esta fórmula:

Patch( Cities; First( Cities ); { Weather: Blank() } )

8. Obtenga una vista previa de la aplicación, haga clic o pulse en el botón que agregó y luego cierre la vista
previa.
El campo Weather del primer registro de Cities se sustituye por un valor blank, de forma que se reemplaza
el valor inicial "Rainy" que estaba ahí anteriormente.

La etiqueta muestra true porque el campo Weather ya no contiene ningún valor.


Coalesce
FÓRMULA DESCRIPCIÓN RESULTADO

Coalesce ( en blanco (), 1 ) Comprueba el valor devuelto por la 1


función Blank, que siempre devuelve un
valor blank. Dado que el primer
argumento está en blanco, la evaluación
continúa con el argumento siguiente
hasta que se encuentre un valor que no
estéen blanco y una cadena que no esté
vacía.
FÓRMULA DESCRIPCIÓN RESULTADO

Coalesce ("", 2) Comprueba el primer argumento, que 2


es una cadena vacía. Dado que el primer
argumento es una cadena vacía, la
evaluación continúa con el argumento
siguiente hasta que se encuentre un
valor que no estéen blanco y una
cadena que no esté vacía.

Coalesce (Blank (), "", Blank (), "", 3, Coalesce comienza al principio de la 3
4) lista de argumentos y evalúa cada
argumento a su vez hasta que se
encuentra un valor que no estáen
blanco y una cadena no vacía. En este
caso, los cuatro primeros argumentos
devuelven un valor en blanco o una
cadena vacía, por lo que la evaluación
continúa hasta el quinto argumento. El
quinto argumento es una cadena que
no estáen blanco y no está vacía, por lo
que la evaluación se detiene aquí. Se
devuelve el valor del quinto argumento
y no se evalúa el sexto argumento.

Coalesce ("") Comprueba el primer argumento, que blank


es una cadena vacía. Dado que el primer
argumento es una cadena vacía y no
hay más argumentos, la función
devuelve Blank.

IsBlank
1. Cree una aplicación desde el principio, agregue un control de entrada de texto y llámelo FirstName.
2. Agregue una etiqueta y establezca su propiedad Texto en esta fórmula:

If( IsBlank( FirstName.Text ); "First Name is a required field." )

De forma predeterminada, la propiedad Text de un control de entrada de texto se establece en "Entrada de


texto" . Como la propiedad contiene un valor, no está en blanco, y la etiqueta no muestra ningún mensaje.
3. Quite todos los caracteres del control de entrada de texto, espacios incluidos.
Dado que la propiedad Text ya no contiene ningún carácter, es una cadena vacía y esblanco (FirstName.
Text) será true. Se muestra el mensaje de campo requerido.
Para más información sobre cómo realizar la validación mediante otras herramientas, consulte la función Validate
y el uso de orígenes de datos.
Otros ejemplos:

FÓRMULA DESCRIPCIÓN RESULTADO

Esblanco ( en blanco () ) Comprueba el valor devuelto por la true


función Blank, que siempre devuelve un
valor blank.
FÓRMULA DESCRIPCIÓN RESULTADO

IsBlank( "" ) Una cadena que no contiene ningún true


carácter.

IsBlank( "Hello" ) Una cadena que contiene uno o más false


caracteres.

IsBlank( AnyCollection ) Como la colección existe, no está en false


blanco, incluso si no contiene ningún
registro. Para comprobar si existe una
colección vacía, use IsEmpty en su lugar.

IsBlank( Mid( "Hello"; 17; 2 ) ) El carácter inicial de Mid está más allá true
del final de la cadena. El resultado es una
cadena vacía.

IsBlank( If( false; false ) ) Una función If sin ElseResult. Como la true
condición es siempre false, esta función
If siempre devuelve blank.

IsEmpty
1. Cree una aplicación desde el principio y agregue un control Botón.
2. Establezca la propiedad OnSelect del botón en esta fórmula:
Collect( IceCream; { Flavor: "Strawberry"; Quantity: 300 }; { Flavor: "Chocolate"; Quantity: 100 } )
3. Obtenga una vista previa de la aplicación, haga clic o pulse en el botón que agregó y luego cierre la vista
previa.
Se crea una colección denominada IceCream con estos datos:

Esta colección tiene dos registros y no está vacía. IsEmpty( IceCream ) devuelve false y CountRows(
IceCream ) devuelve 2.
4. Agregue un segundo botón y establezca su propiedad OnSelect en esta fórmula:
Clear( IceCream )
5. Obtener una vista previa de la aplicación, haga clic o pulse en el segundo botón y luego cierre la vista previa.
Ahora, la colección está vacía:

La función Clear quita todos los registros de una colección, lo que da lugar a una colección vacía. IsEmpty(
IceCream ) devuelve true y CountRows( IceCream ) devuelve 0.
También puede usar IsEmpty para comprobar si una tabla calculada está vacía, como muestran estos ejemplos:

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

IsEmpty( [ 1; 2; 3 ] ) La tabla de una columna contiene tres false


registros y, por lo tanto, no está vacía.

IsEmpty( [ ] ) La tabla de una columna no contiene true


registros y está vacía.

IsEmpty( Filter( [ 1; 2; 3 ]; Value > 5 ) La tabla de una columna no contiene true


) valores que sean mayores que 5. El
resultado del filtro no contiene ningún
registro y está vacío.
Funciones Blank, Coalesce, IsBlank e
IsEmpty en PowerApps
26/11/2019 • 16 minutes to read

Comprueba si un valor está en blanco o una tabla no contiene registros, y proporciona una
manera de crear valores blank.

Información general
Blank es un marcador de posición para "sin valor" o "valor desconocido". Por ejemplo, la
propiedad seleccionada de un control de cuadro combinado está en blanco si el usuario no
ha realizado una selección. Muchos orígenes de datos pueden almacenar y devolver valores
NULL, que se representan en PowerApps como en blanco.
Cualquier propiedad o valor calculado en PowerApps puede estar en blanco. Por ejemplo, un
valor booleano normalmente tiene uno de dos valores: true o false. Pero además de estos dos,
también puede estar en blanco , lo que indica que no se conoce el estado. Esto es similar a
Microsoft Excel, donde una celda de hoja de cálculo empieza en blanco sin contenido, pero
puede contener los valores true o false (entre otros). En cualquier momento, se puede volver a
borrar el contenido de la celda y devolverlo a un estado en blanco .
Una cadena vacía hace referencia a una cadena que no contiene ningún carácter. La función Len
devuelve cero para este tipo de cadena y se puede escribir en una fórmula como dos comillas
dobles sin nada entre "" . Algunos controles y orígenes de datos usan una cadena vacía para
indicar una condición de "sin valor". Para simplificar la creación de aplicaciones , las funciones
esblanco y Coalesce comprueban si hay valores en blanco o cadenas vacías.
En el contexto de la función IsEmpty , Empty es específico de las tablas que no contienen
registros. La estructura de tabla puede estar intacta, con nombres de columna, pero ningún dato
en la tabla. Una tabla puede comenzar como vacía, obtener registros y ya no estar vacía y luego
quitarse los registros y estar de nuevo vacía.

NOTE
Estamos en un período de transición. Hasta ahora, el espacio en blanco también se ha utilizado para
notificar los errores, lo que impide que se diferencie un "valor" no válido de un error. Por esta razón, en
este momento, solo se admite el almacenamiento de valores en blanco para las colecciones locales.
Puede almacenar valores en blanco en otros orígenes de datos si activa la característica experimental
"administración de errores de nivel de fórmulas" en el menú Archivo, configuración de la aplicación,
configuración avanzada, características experimentales. Estamos trabajando activamente para finalizar
esta característica y completar la separación adecuada de los valores en blanco de los errores.

Descripción
La función Blank devuelve un valor blank. Use esta función para almacenar un valor NULL en
un origen de datos que admita estos valores, de forma que se quiten en la práctica todos los
valores del campo.
La función esblanco comprueba un valor en blanco o una cadena vacía. La prueba incluye
cadenas vacías para facilitar la creación de aplicaciones, ya que algunos orígenes de datos y
controles usan una cadena vacía cuando no hay ningún valor. Para probar específicamente si hay
un valor en blanco , use if( Value = Blank(); ... en lugar de esblanco.
La función Coalesce evalúa sus argumentos en orden y devuelve el primer valor que no está en
blanco ni una cadena vacía. Utilice esta función para reemplazar un valor en blanco o una
cadena vacía con un valor diferente, pero sin modificar los valores de cadena que no esténen
blanco y que no estén vacíos. Si todos los argumentos están en blanco o cadenas vacías, la
función devuelve un valor enblanco, lo que permite que la combinación sea una buena manera
de convertir cadenas vacías en valores en blanco . Todos los argumentos de Coalesce debe ser
del mismo tipo; por ejemplo, no puede combinar números con cadenas de texto.
Coalesce( value1; value2 ) es el equivalente más conciso de
If( Not IsBlank( value1 ); value1; Not IsBlank( value2 ); value2 ) y no requiere que value1
y value2 se evalúen dos veces. La función If devuelve un valor en blanco si no hay ninguna
fórmula "Else", como es el caso.
La función IsEmpty comprueba si una tabla contiene registros. Es equivalente a usar la función
CountRows y la comprobación de cero. Puede usar IsEmpty para comprobar errores de
origen de datos en combinación con la función Errors .
El valor devuelto para IsBlank e IsEmpty es un valor booleano true o false.

Sintaxis
En blanco()
Coalesce( Valor1 [; Valor2; ... ] )
Valores: requerido. Valores que se van a comprobar. Cada valor se evalúa en orden hasta que
se encuentra un valor que no está en blanco y no es una cadena vacía. Los valores después
de este punto no se evalúan.
IsBlank( Value )
Value: requerido. Valor que se va a comprobar para un valor en blanco o una cadena vacía.
IsEmpty( Table )
Table: requerido. Tabla en la que se van a comprobar registros.

Ejemplos
En blanco

NOTE
Actualmente, el siguiente ejemplo solo funciona en colecciones locales. Puede almacenar valores en
blanco en otros orígenes de datos si activa la característica experimental "administración de errores de
nivel de fórmulas" en el menú Archivo, configuración de la aplicación, configuración avanzada,
características experimentales. Estamos trabajando activamente para finalizar esta característica y
completar la separación de los valores en blanco de los errores.

1. Cree una aplicación desde el principio y agregue un control Botón.


2. Establezca la propiedad OnSelect del botón en esta fórmula:
ClearCollect( Cities; { Name: "Seattle"; Weather: "Rainy" } )

3. Obtenga una vista previa de la aplicación, haga clic o pulse en el botón que agregó y
luego cierre la vista previa.
4. En el menú Archivo, haga clic o pulse en Colecciones.
Aparece la colección Cities, que muestra un registro con "Seattle" y "Rainy":

5. Haga clic o pulse en la flecha Atrás para volver al área de trabajo predeterminada.
6. Agregue un control Label y establezca su propiedad Text en esta fórmula:

IsBlank( First( Cities ).Weather )

La etiqueta muestra false porque el campo Weather contiene un valor ("Rainy").


7. Agregue un segundo botón y establezca su propiedad OnSelect en esta fórmula:

Patch( Cities; First( Cities ); { Weather: Blank() } )

8. Obtenga una vista previa de la aplicación, haga clic o pulse en el botón que agregó y
luego cierre la vista previa.
El campo Weather del primer registro de Cities se sustituye por un valor blank, de
forma que se reemplaza el valor inicial "Rainy" que estaba ahí anteriormente.

La etiqueta muestra true porque el campo Weather ya no contiene ningún valor.


Coalesce
FÓRMULA DESCRIPCIÓN RESULTADO

Coalesce ( en blanco (), 1 ) Comprueba el valor devuelto por 1


la función Blank, que siempre
devuelve un valor blank. Dado
que el primer argumento está en
blanco, la evaluación continúa
con el argumento siguiente
hasta que se encuentre un valor
que no estéen blanco y una
cadena que no esté vacía.

Coalesce ("", 2) Comprueba el primer 2


argumento, que es una cadena
vacía. Dado que el primer
argumento es una cadena vacía,
la evaluación continúa con el
argumento siguiente hasta que
se encuentre un valor que no
estéen blanco y una cadena que
no esté vacía.

Coalesce (Blank (), "", Blank Coalesce comienza al principio 3


(), "", 3, 4) de la lista de argumentos y
evalúa cada argumento a su vez
hasta que se encuentra un valor
que no estáen blanco y una
cadena no vacía. En este caso, los
cuatro primeros argumentos
devuelven un valor en blanco o
una cadena vacía, por lo que la
evaluación continúa hasta el
quinto argumento. El quinto
argumento es una cadena que
no estáen blanco y no está
vacía, por lo que la evaluación se
detiene aquí. Se devuelve el valor
del quinto argumento y no se
evalúa el sexto argumento.

Coalesce ("") Comprueba el primer blank


argumento, que es una cadena
vacía. Dado que el primer
argumento es una cadena vacía
y no hay más argumentos, la
función devuelve Blank.

IsBlank
1. Cree una aplicación desde el principio, agregue un control de entrada de texto y llámelo
FirstName.
2. Agregue una etiqueta y establezca su propiedad Texto en esta fórmula:

If( IsBlank( FirstName.Text ); "First Name is a required field." )

De forma predeterminada, la propiedad Text de un control de entrada de texto se


establece en "Entrada de texto" . Como la propiedad contiene un valor, no está en
blanco, y la etiqueta no muestra ningún mensaje.
3. Quite todos los caracteres del control de entrada de texto, espacios incluidos.
Dado que la propiedad Text ya no contiene ningún carácter, es una cadena vacía y
esblanco (FirstName. Text) será true. Se muestra el mensaje de campo requerido.
Para más información sobre cómo realizar la validación mediante otras herramientas, consulte
la función Validate y el uso de orígenes de datos.
Otros ejemplos:

FÓRMULA DESCRIPCIÓN RESULTADO

Esblanco ( en blanco () ) Comprueba el valor devuelto por true


la función Blank, que siempre
devuelve un valor blank.

IsBlank( "" ) Una cadena que no contiene true


ningún carácter.

IsBlank( "Hello" ) Una cadena que contiene uno o false


más caracteres.

IsBlank( AnyCollection ) Como la colección existe, no está false


en blanco, incluso si no contiene
ningún registro. Para comprobar
si existe una colección vacía, use
IsEmpty en su lugar.

IsBlank( Mid( "Hello"; 17; 2 ) ) El carácter inicial de Mid está true


más allá del final de la cadena. El
resultado es una cadena vacía.

IsBlank( If( false; false ) ) Una función If sin ElseResult. true


Como la condición es siempre
false, esta función If siempre
devuelve blank.

IsEmpty
1. Cree una aplicación desde el principio y agregue un control Botón.
2. Establezca la propiedad OnSelect del botón en esta fórmula:
Collect( IceCream; { Flavor: "Strawberry"; Quantity: 300 }; { Flavor: "Chocolate";
Quantity: 100 } )
3. Obtenga una vista previa de la aplicación, haga clic o pulse en el botón que agregó y
luego cierre la vista previa.
Se crea una colección denominada IceCream con estos datos:

Esta colección tiene dos registros y no está vacía. IsEmpty( IceCream ) devuelve false y
CountRows( IceCream ) devuelve 2.
4. Agregue un segundo botón y establezca su propiedad OnSelect en esta fórmula:
Clear( IceCream )
5. Obtener una vista previa de la aplicación, haga clic o pulse en el segundo botón y luego
cierre la vista previa.
Ahora, la colección está vacía:

La función Clear quita todos los registros de una colección, lo que da lugar a una
colección vacía. IsEmpty( IceCream ) devuelve true y CountRows( IceCream )
devuelve 0.
También puede usar IsEmpty para comprobar si una tabla calculada está vacía, como muestran
estos ejemplos:

FÓRMULA DESCRIPCIÓN RESULTADO

IsEmpty( [ 1; 2; 3 ] ) La tabla de una columna false


contiene tres registros y, por lo
tanto, no está vacía.

IsEmpty( [ ] ) La tabla de una columna no true


contiene registros y está vacía.

IsEmpty( Filter( [ 1; 2; 3 ]; La tabla de una columna no true


Value > 5 ) ) contiene valores que sean
mayores que 5. El resultado del
filtro no contiene ningún registro
y está vacío.
Funciones IsMatch, Match y MatchAll en PowerApps
26/11/2019 • 25 minutes to read

Comprueba si hay coincidencias o extrae partes de una cadena de texto basándose en un patrón.

Descripción
La función IsMatch comprueba si una cadena de texto coincide con un patrón que puede incluir caracteres normales, patrones
predefinidos o una expresión regular. Las funciones Match y MatchAll devuelven lo que coincidía, incluidas las subcoincidencias.
Use IsMatch para validar que un usuario ha escrito en un control Entrada de texto . Por ejemplo, puede confirmar si el usuario ha
escrito una dirección de correo electrónico válida antes de que el resultado se guarde en el origen de datos. Si la entrada no coincide con
los criterios, agregue otros controles que pidan al usuario que corrija la entrada.
Use Match para extraer la primera cadena de texto que coincida con un patrón y MatchAll para extraer todas las cadenas de texto que
coincidan. También puede extraer coincidencias secundarias para analizar cadenas complejas.
Match devuelve un registro de información para la primera coincidencia encontrada y MatchAll devuelve una tabla de registros para
cada coincidencia encontrada. El registro o los registros contienen:

COLUMNA TIPO DESCRIPCIÓN

coincidencia secundaria‑o sub‑coincidencias Texto Cada subcoincidencia con nombre tendrá su


propia columna. Cree una subcoincidencia con
nombre mediante (?<nombre> ... ) en la
expresión regular. Si una subcoincidencia con
nombre tiene el mismo nombre que una de las
columnas predefinidas (a continuación), la
subcoincidencia tiene prioridad y se genera una
advertencia. Para evitar esta advertencia,
cambie el nombre de la subcoincidencia.

FullMatch Texto Toda la cadena de texto con la que se encontró


una coincidencia.

StartMatch Número Posición inicial de la coincidencia dentro de la


cadena de texto de entrada. El primer carácter
de la cadena devuelve 1.

Subcoincidencias Tabla de texto de una sola columna ( valorde Tabla de subcoincidencias con nombre y sin
columna) nombre en el orden en que aparecen en la
expresión regular. Por lo general, las
subcoincidencias con nombre son más fáciles de
trabajar con y se recomiendan. Use las funciones
forall o Last( firstn( ... )) para trabajar con una
subcoincidencia individual. Si no se definen
subcoincidencias en la expresión regular, esta
tabla estará presente pero vacía.

Estas funciones admiten MatchOptions. De forma predeterminada:


Estas funciones realizan una coincidencia que distingue entre mayúsculas y minúsculas. Use ignoreCase para realizar coincidencias
que no distinguen mayúsculas de minúsculas.
IsMatch coincide con toda la cadena de texto (Complete MatchOption), mientras que Match y MatchAll buscan una coincidencia
en cualquier parte de la cadena de texto (contiene MatchOption). Use Complete, Contains, BeginsWitho EndsWith según
corresponda para su escenario.
IsMatch devuelve true si la cadena de texto coincide con el patrón o false si no es así. Match devuelve un valor en blanco si no se
encuentra ninguna coincidencia que se pueda probar con la función esblanco . MatchAll devuelve una tabla vacía si no se encuentra
ninguna coincidencia que se pueda probar con la función IsEmpty .
Si usa MatchAll para dividir una cadena de texto, considere la posibilidad de usar la función Split , que es más fácil de usar y más
rápida.
Patrones
La clave para usar estas funciones es describir el patrón que debe coincidir. El patrón en una cadena de texto se describe como una
combinación de:
Caracteres normales, como "abc" o "123" .
Patrones predefinidos, como Letter, MultipleDigits o Email. (La enumeración Match define estos patrones).
Códigos de expresión regular, como "\d + \s + \d +" o "[a-z] +" .
Combine estos elementos mediante el operador de concatenación de cadenas & . Por ejemplo, "abc" & Digit & "\s+" es un patrón
válido que busca la coincidencia de los caracteres "a", "b" y "c", seguido de un dígito del 0 al 9, seguido de al menos un carácter de
espacio en blanco.
Caracteres normales
El patrón más sencillo es una secuencia de caracteres normales que deben coincidir exactamente.
Por ejemplo, cuando se usa con la función IsMatch , la cadena "Hello" coincide exactamente con el patrón "Hello" . Ni más ni menos. La
cadena "hello!" no coincide con el patrón debido al signo de exclamación del final y porque el caso es incorrecto para la letra "h".
(Consulte MatchOptions para ver formas de modificar este comportamiento).
En el lenguaje del patrón, algunos caracteres están reservados para fines especiales. Para usar estos caracteres, anteponga al carácter un
\ (barra diagonal inversa) para indicar que el carácter debe tomarse literalmente, o bien puede usar uno de los patrones predefinidos que
se describen más adelante en este tema. En esta tabla se enumeran los caracteres especiales:

CARÁCTER ESPECIAL DESCRIPCIÓN

. punto

? signo de interrogación

* asterisco

+ signo más

() paréntesis

[] corchetes

{} llaves

^ símbolo de intercalación

$ signo de dólar

| barra vertical

\ barra diagonal inversa

Por ejemplo, puede buscar la coincidencia de "Hello?" mediante el patrón "Hello\?" con una barra diagonal delante del signo de
interrogación.
Patrones predefinidos
Los patrones predefinidos proporcionan una manera sencilla de buscar coincidencias con uno de un juego de caracteres o con una
secuencia de varios caracteres. Use el operador de concatenación de cadenas & para combinar sus propias cadenas de texto con
miembros de la enumeración Match :

COINCIDENCIA DE ENUMERACIÓN DESCRIPCIÓN EXPRESIÓN REGULAR

Any Busca la coincidencia con cualquier carácter. .

Comma Busca la coincidencia con una coma. ;

Digit Busca la coincidencia con un único dígito (del "0" \d


al "9").
COINCIDENCIA DE ENUMERACIÓN DESCRIPCIÓN EXPRESIÓN REGULAR

Email Busca la coincidencia con una dirección de .+\@.+\\.[^\\.]{2;}


correo electrónico que contiene un símbolo
"arroba" ("@") y un nombre de dominio que
contiene un punto (".")

Hyphen Busca la coincidencia con un guion. \-

LeftParen Busca la coincidencia con un paréntesis \(


izquierdo "(".

Letter Busca la coincidencia con una letra. \p{L}

MultipleDigits Coincide con uno o más dígitos. \d+

MultipleLetters Busca la coincidencia con una o varias letras. \p{L}+

MultipleNonSpaces Coincide con uno o más caracteres que no \S+


agregan espacios en blanco (no hay espacio,
tabulación o nueva línea).

MultipleSpaces Coincide con uno o varios caracteres que \s+


agregan espacios en blanco (espacio, tabulación
o nueva línea).

NonSpace Busca la coincidencia con un único carácter que \S


no agrega espacios en blanco.

OptionalDigits Busca la coincidencia con cero, uno o más \d*


dígitos.

OptionalLetters Busca la coincidencia con cero, una o más letras. \p{L}*

OptionalNonSpaces Busca la coincidencia con cero, uno o más \S*


caracteres que no agregan espacio en blanco.

OptionalSpaces Busca la coincidencia con cero, uno o más \s*


caracteres que agregan espacio en blanco.

Period Busca la coincidencia con un punto ("."). \.

RightParen Busca la coincidencia con un paréntesis derecho \)


")".

Space Busca la coincidencia con un carácter que \s


agrega espacio en blanco.

Por ejemplo, el patrón "A" & MultipleDigits buscará la coincidencia con la letra "A" seguido de uno o varios dígitos.
Expresiones regulares
El patrón que usan estas funciones es una expresión regular. Los caracteres ordinarios y los patrones predefinidos que se describen
anteriormente en este tema ayudan a crear expresiones regulares.
Las expresiones regulares son muy eficaces, están disponibles en muchos lenguajes de programación y se usan para multitud de
propósitos. También pueden parecerse a menudo como una secuencia aleatoria de signos de puntuación. En este artículo no se
describen todos los aspectos de las expresiones regulares, pero hay una gran cantidad de información, tutoriales y herramientas
disponibles en la Web.
Las expresiones regulares se encuentran en distintos dialectos y PowerApps usa una variante del dialecto de JavaScript. Consulte
Sintaxis de expresiones regulares para obtener una introducción a la sintaxis. Se admiten las subcoincidencias con nombre (que a veces
se denominan grupos de captura con nombre):
Subcoincidencias con nombre: (?<nombre>...)
Referencias inversas con nombre: \k<nombre>
En la tabla de enumeración coincidir anteriormente en este tema, cada enumeración aparece en la misma fila que la expresión regular
correspondiente.

Opciones de coincidencia
Para modificar el comportamiento de estas funciones, puede especificar una o varias opciones, que se pueden combinar mediante el
operador de concatenación de cadenas ( & ).

ENUMERACIÓN MATCHOPTIONS DESCRIPCIÓN IMPACTO EN UNA EXPRESIÓN REGULAR

BeginsWith El patrón debe coincidir desde el principio del Agrega un ^ al principio de la expresión regular.
texto.

Complete Valor predeterminado para IsMatch. El patrón Agrega un ^ al inicio y una $ al final de la
debe coincidir con toda la cadena de texto, de expresión regular.
principio a fin.

Contains Valor predeterminado para Match y MatchAll. No modifica la expresión regular.


El patrón debe aparecer en alguna parte del
texto pero no tiene que ser al principio o al final.

EndsWith El patrón debe coincidir con el final de la cadena Agrega $ al final de la expresión regular.
de texto.

IgnoreCase Trata las letras mayúsculas y minúsculas como No modifica la expresión regular. Esta opción es
idénticas. De forma predeterminada, la equivalente al modificador "i" estándar de las
búsqueda de coincidencia distingue mayúsculas expresiones regulares.
y minúsculas.

Multiline Busca la coincidencia entre varias líneas. No modifica la expresión regular. Esta opción es
equivalente al modificador estándar "m" de las
expresiones regulares.

El uso de MatchAll es equivalente a usar el modificador estándar "g" para las expresiones regulares.

Sintaxis
IsMatch( Text; Pattern [; Options ] )
Text: requerido. La cadena de texto que se va a probar.
Pattern: requerido. Patrón que se va a probar como una cadena de texto. Concatene los patrones predefinidos que define la
enumeración Match o proporcione una expresión regular. Pattern debe ser una fórmula constante sin variables, orígenes de datos u
otras referencias dinámicas que cambian a medida que se ejecuta la aplicación.
Options: valor opcional. Una combinación de cadena de texto de valores de enumeración MatchOptions . De forma predeterminada,
se usa MatchOptions.Complete.
Match( texto; patrón [; Opciones ])
Text: requerido. Cadena de texto que debe coincidir.
Pattern: requerido. Patrón que debe coincidir como una cadena de texto. Concatene los patrones predefinidos que define la
enumeración Match o proporcione una expresión regular. Pattern debe ser una fórmula constante sin variables, orígenes de datos u
otras referencias dinámicas que cambian a medida que se ejecuta la aplicación.
Options: valor opcional. Una combinación de cadena de texto de valores de enumeración MatchOptions . De forma predeterminada,
se usa MatchOptions. Contains .
MatchAll( texto; patrón [; Opciones ])
Text: requerido. Cadena de texto que debe coincidir.
Pattern: requerido. Patrón que debe coincidir como una cadena de texto. Concatene los patrones predefinidos que define la
enumeración Match o proporcione una expresión regular. Pattern debe ser una fórmula constante sin variables, orígenes de datos u
otras referencias dinámicas que cambian a medida que se ejecuta la aplicación.
Options: valor opcional. Una combinación de cadena de texto de valores de enumeración MatchOptions . De forma predeterminada,
se usa MatchOptions. Contains .

Ejemplos de IsMatch
Caracteres normales
Imagine que la aplicación contiene un control Entrada de texto denominado TextInput1. El usuario escribe valores en este control
para almacenarlos en una base de datos.
El usuario escribe Hello world en TextInput1.

FÓRMULA DESCRIPCIÓN RESULTADO

IsMatch( TextInput1.Text; "Hello world" Comprueba si la entrada del usuario coincide true
) exactamente con la cadena "Hello World".

IsMatch( TextInput1.Text; "Good bye" ) Comprueba si la entrada del usuario coincide false
exactamente con la cadena "Good Bye".

IsMatch( TextInput1.Text; "hello"; Comprueba si la entrada del usuario contiene la false


Contains ) palabra "Hello" (con distinción de mayúsculas y
minúsculas).

IsMatch( TextInput1.Text; "hello"; Comprueba si la entrada del usuario contiene la true


Contains & IgnoreCase ) palabra "hello" (con distinción de mayúsculas y
minúsculas).

Patrones predefinidos
FÓRMULA DESCRIPCIÓN RESULTADO

IsMatch( "123-45-7890"; Digit & Digit & Busca la coincidencia con un número de la true
Digit & Hyphen & Digit & Digit & Hyphen Seguridad Social de Estados Unidos.
& Digit & Digit & Digit & Digit )

IsMatch( "joan@contoso.com"; Email ) Busca la coincidencia con una dirección de true


correo electrónico.

IsMatch( "123.456"; MultipleDigits & Busca la coincidencia con una secuencia de true
Period & OptionalDigits ) dígitos, un punto y luego cero o más dígitos.

IsMatch( "123"; MultipleDigits & Period Busca la coincidencia con una secuencia de false
& OptionalDigits ) dígitos, un punto y luego cero o más dígitos. No
aparece un punto en el texto para que coincida,
por lo que no coincide con este patrón.

Expresiones regulares
FÓRMULA DESCRIPCIÓN RESULTADO

IsMatch( "986"; "\d+" ) Coincide con un entero mayor que cero. true

IsMatch( "1.02"; "\d+(\.\d\d)?" ) Busca la coincidencia con un importe de divisa true


positivo. Si la entrada contiene un separador
decimal, la entrada también debe contener dos
caracteres numéricos después del separador
decimal. Por ejemplo, 3,00 es válido, pero no
3,1.

IsMatch( "-4.95"; "(-)?\d+(\.\d\d)?" ) Busca la coincidencia con un importe de divisa true


negativo. Si la entrada contiene un separador
decimal, la entrada también debe contener dos
caracteres numéricos después del separador
decimal.

IsMatch( "111-11-1111"; "\d{3}-\d{2}- Busca la coincidencia con un número de la true


\d{4}" ) Seguridad Social de Estados Unidos. Valida el
formato, el tipo y la longitud del campo de
entrada proporcionado. La cadena que debe
coincidir debe constar de tres caracteres
numéricos seguidos de un guion, dos caracteres
numéricos seguidos de un guión y, a
continuación, cuatro caracteres numéricos.
FÓRMULA DESCRIPCIÓN RESULTADO

IsMatch( "111-111-111"; "\d{3}-\d{2}- Lo mismo que el ejemplo anterior, pero uno de false
\d{4}" ) los guiones está fuera de lugar en la entrada.

IsMatch( "AStrongPasswordNot"; "(?!^[0- Valida una contraseña segura, que debe false
9]\*$)(?!^[a-zA-Z]\*$)([a-zA-Z0-9] contener ocho, nueve o 10 caracteres, además
{8,10})" )
de al menos un dígito y al menos un carácter
alfabético. La cadena no debe contener
caracteres especiales.

IsMatch( "<https://microsoft.com>"; " Valida una dirección URL http, https o ftp. true
(ht&#124;f)tp(s?)\:\/\/\[0-9a-zA-Z\]([-
.\w]\*[0-9a-zA-Z])\*(:(0-9)\*)\*(\/?)
([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]\*)?"
)

Ejemplos de Match y MatchAll


FÓRMULA DESCRIPCIÓN RESULTADO

Match( "Bob Jones Extrae solo la parte de correo electrónico de la {


<bob.jones@contoso.com>"; "<(?<email>" & información de contacto. correo electrónico: "bob.jones@contoso.com",
Match.Email & ")>"
FullMatch: "<bob.jones@contoso.com>",
Subcoincidencias: [ "bob.jones@contoso.com" ],
StartMatch: 11
}

Match( "Bob Jones Extrae solo la parte de correo electrónico de la blank


<InvalidEmailAddress>"; "<(?<email>" & información de contacto. No se encuentra
Match.Email & ")>"
ninguna dirección válida (no hay @ Sign), por lo
que la función devuelve Blank.

Match( Language(); "(<language>\w{2}) Extrae las partes de idioma, script y región de la {


(?:-(?<script>\w{4}))?(?:-(? etiqueta de idioma que devuelve la función lenguaje: "en",
<region>\w{2}))?" )
Language . Estos resultados reflejan el Estados script: en blanco,
Unidos; Consulte la documentación de la región: "EE. UU.",
función de lenguaje para obtener más FullMatch: "en-US",
ejemplos. El operador (?: agrupa los caracteres Subcoincidencias: ["en", "", "EE. UU."],
sin crear otra subcoincidencia. StartMatch: 1
}

Match( "PT2H1M39S"; "PT(?:<hours>\d+)H)? Extrae las horas, los minutos y los segundos de {
(?:(?<minutes>\d+)M)?(?:(? un valor de duración ISO 8601. Los números horas: "2",
<seconds>\d+)S)?" )
extraídos siguen en una cadena de texto; Utilice minutos: "1",
la función Value para convertirlo en un número segundos: "39",
antes de que se realicen operaciones FullMatch: "PT2H1M39S",
matemáticas en él. Subcoincidencias: [ "2", "1", "39" ],
StartMatch: 1
}

Vamos a profundizar en el último ejemplo. Si desea convertir esta cadena en un valor de fecha y hora mediante la función Time , debe
pasar individualmente las coincidencias con nombre. Para ello, puede usar la función with que funciona en el registro que coincide con
las devoluciones:

With(
Match( "PT2H1M39S"; "PT(?:(?<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" );
Time( Value( hours ); Value( minutes ); Value( seconds ) )
)

En estos ejemplos, agregue un control botón , establezca su propiedad alseleccionar en esta fórmula y, a continuación, seleccione el
botón:

Set( pangram; "The quick brown fox jumps over the lazy dog." )
FÓRMULA DESCRIPCIÓN RESULTADO

Match( pangram; "THE"; IgnoreCase ) Busque todas las coincidencias de "THE" en la {


cadena de texto que contiene la variable FullMatch: "The",
pangram . La cadena contiene dos Subcoincidencias: [ ],
coincidencias, pero solo se devuelve la primera StartMatch: 32
porque está usando Match y not MatchAll. La }
columna submatches está vacía porque no se
definió ninguna subcoincidencia.

MatchAll( pangram; "the" ) Busque todas las coincidencias de "The" en la


cadena de texto que contiene la variable
pangram . La prueba distingue entre
mayúsculas y minúsculas, por lo que solo se
encuentra la segunda instancia de "The". La
columna submatches está vacía porque no se
definió ninguna subcoincidencia.

MatchAll( pangram; "the"; IgnoreCase ) Busque todas las coincidencias de "The" en la


cadena de texto que contiene la variable
pangram . En este caso, la prueba no distingue
entre mayúsculas y minúsculas, por lo que se
encuentran ambas instancias de la palabra. La
columna submatches está vacía porque no se
definió ninguna subcoincidencia.

MatchAll( pangram; "\b\wo\w\b" ) Busca todas las palabras de tres letras con una
"o" en el centro. Tenga en cuenta que "Brown"
se excluye porque no es una palabra de tres
letras y, por lo tanto, no coincide con "\b" (límite
de palabras).

Match( pangram; "\b\wo\w\b\s\*(? Coincide con todos los caracteres entre "Fox" y {
<between>\w.+\w)\s\*\b\wo\w\b" ) "Dog". entre: "salta sobre el Lazy",
FullMatch: "Fox salta sobre el perro diferido ",
Subcoincidencias: ["salta sobre el Lazy"],
StartMatch: 17
}

Para ver los resultados de MatchAll en una galería:


1. En una pantalla vacía, inserte un control Galería vertical en blanco.
2. Establezca la propiedad Items de la galería en MatchAll (pangram, "\w +") o MatchAll (pangram, MultipleLetters) .
3. Seleccione "agregar un elemento de la pestaña insertar" en el centro del control Galería para seleccionar la plantilla de la galería.
4. Agregue un control etiqueta a la plantilla de la galería.
5. Establezca la propiedad Text de la etiqueta en ThisItem. FullMatch.
La galería se rellena con cada palabra en el texto de ejemplo. Cambie el tamaño de la plantilla de la galería y del control de etiqueta
para ver todas las palabras de una pantalla.
Función IsNumeric en PowerApps
07/10/2019 • 2 minutes to read

Comprueba si un valor es numérico.

Descripción
La función IsNumeric comprueba si un valor es numérico. Otros tipos de valores son booleanos, cadena, tabla y
registro.
El valor devuelto es un valor booleano true o false.

Sintaxis
IsNumeric( Value )
Value: requerido. Valor que se va a probar.
Funciones Now, Today e IsToday en PowerApps
08/10/2019 • 7 minutes to read

Devuelve la fecha y hora actuales y comprueba si un valor de fecha y hora es el día de hoy.

Descripción
La función Now devuelve la fecha y hora actuales como un valor de fecha y hora.
La función Today devuelve la fecha actual como un valor de fecha y hora. La parte de la hora es la medianoche.
Today tiene el mismo valor a lo largo del día, desde hoy a medianoche hasta mañana a medianoche.
La función IsToday comprueba si un valor de fecha y hora está comprendido entre hoy a medianoche y mañana a
medianoche. Con esta función, se devuelve un valor booleano true o false.
Todas estas funciones funcionan con la hora local del usuario actual.
Consulte cómo trabajar con fechas y horas para más información.

Funciones volátiles
Now y Today son funciones volátiles. Cada vez que se evalúa una de estas funciones, se devuelve un valor
diferente.
Cuando se usa en una fórmula de flujo de datos, una función volátil solo devuelve un valor diferente si se vuelve a
evaluar la fórmula en la que aparece. Si no hay ningún otro cambio en la fórmula, presenta el mismo valor durante
la ejecución de la aplicación.
Por ejemplo, un control de etiqueta con Label1.Text = Now() no cambiará mientras la aplicación esté activa. Solo
se generará un nuevo valor si se cierra y se vuelve a abrir la aplicación.
Si la función forma parte de una fórmula en la que haya cambiado algún elemento más, se volverá a evaluar. Por
ejemplo, si modificamos el ejemplo para incluir un control deslizante con Label1.Text = DateAdd( Now();
Slider1.Value; Minutes ) , se recuperará la hora actual cada vez que cambie el valor del control deslizante.
Asimismo, se volverá a evaluar la propiedad de texto de la etiqueta.
Cuando se usa en una fórmula de comportamiento, las funciones volátiles se evalúan cada vez que se evalúa la
fórmula de comportamiento. Encontrará un ejemplo a continuación.

Sintaxis
Now()
Today()
IsToday( DateTime )
DateTime: requerido. El valor de fecha y hora para comprobar.

Ejemplos
En los ejemplos de esta sección, la hora actual es 3:59 AM el 12 de febrero de 2015 y el idioma es en-us.
FÓRMULA DESCRIPCIÓN RESULTADO

Text( Now(); "mm/dd/yyyy Recupera la fecha y hora actuales y las "02/12/2015 03:59:00"
hh:mm:ss" ) muestra como una cadena.

Text( Today(); "mm/dd/yyyy Recupera solo la fecha actual, dejando la "02/12/2015 00:00:00"
hh:mm:ss" ) parte de hora como medianoche, y la
muestra como una cadena.

IsToday( Now() ) Comprueba si la fecha y hora actuales true


se encuentran entre hoy a medianoche
y mañana a medianoche.

IsToday( Today() ) Comprueba si la fecha actual se true


encuentra entre hoy a medianoche y
mañana a medianoche.

Text( DateAdd( Now(); 12 ); Recupera la fecha y hora actuales, "02/24/2015 03:59:00"


"mm/dd/yyyy hh:mm:ss" ) agrega 12 días al resultado y lo muestra
como una cadena.

Text( DateAdd( Today(); 12 ); Recupera la fecha actual, agrega 12 días "02/24/2015 00:00:00"
"mm/dd/yyyy hh:mm:ss" ) al resultado y lo muestra como una
cadena.

IsToday( DateAdd( Now(); 12 ) ) Comprueba si la fecha y hora actuales, false


más 12 días, se encuentran entre hoy a
medianoche y mañana a medianoche.

IsToday( DateAdd( Today(); 12 ) ) Comprueba si la fecha actual, más 12 false


días, se encuentra entre hoy a
medianoche y mañana a medianoche.

Mostrar un reloj actualizado en tiempo real


1. Agregue un control Timer , establezca su propiedad Duration en 1000 y establezca su propiedad Repeat
en true.
El temporizador se ejecutará durante un segundo y volverá a empezar automáticamente, y así
sucesivamente.
2. Establezca la propiedad OnTimerEnd del control en esta fórmula:
Set( CurrentTime; Now() )
Cada vez que el temporizador vuelve a empezar, es decir, cada segundo, esta fórmula establece la variable
global CurrentTime en el valor actual de la función Now.

3. Agregue un control Label y establezca su propiedad Text en esta fórmula:


Text( CurrentTime; LongTime24 )
Use la función Text para aplicar el formato que quiera a la fecha y la hora o establezca esta propiedad en
CurrentTime para que se muestren las horas y los minutos, sin los segundos.

4. Pulse F5 para obtener una versión preliminar de la aplicación y, a continuación, inicie el temporizador. Para
ello, haga clic en él o púlselo.
La etiqueta muestra la hora local de forma continua, segundo a segundo.

5. Establezca la propiedad AutoStart del temporizador en true y la propiedad Visible en false.


El temporizador es invisible y se inicia automáticamente.
6. Establezca la propiedad OnStart de la pantalla de modo que la variable CurrentTime tenga un valor válido,
como en este ejemplo:
Set(CurrentTime; Now())
La etiqueta aparece en cuanto se inicia la aplicación, antes de que el temporizador se ejecute durante un
segundo completo.
Funciones astype y IsType en aplicaciones de Canvas
29/10/2019 • 8 minutes to read

Comprueba una referencia de registro para un tipo de entidad específico (IsType) y trata la referencia como un
tipo específico (astype).

Descripción
Lea comprender las referencias de registros y las búsquedas polimórficas para obtener una introducción más
amplia y más detalles.
Normalmente, un campo de búsqueda hace referencia a los registros de una entidad determinada. Dado que el
tipo de entidad está bien establecido, puede tener acceso a los campos de la búsqueda mediante una notación de
puntos simple. Por ejemplo, primero (cuentas). Contacto principal '. ' Nombre completo ' se dirige de la
entidad accounts al registro de contacto principal de la entidad Contacts y extrae el campo de nombre
completo .
Common Data Service también admite campos de búsqueda polimórficos, que pueden hacer referencia a los
registros de un conjunto de entidades, como en estos ejemplos.

CAMPO DE BÚSQUEDA PUEDE HACER REFERENCIA A

Propietario Usuarios o equipos

Customer Cuentas o contactos

Sobre Cuentas, contactos, artículos de conocimientos, etc.

En las fórmulas de canvas-App, puede usar referencias de registros para trabajar con búsquedas polimórficas.
Dado que una referencia de registro puede hacer referencia a distintas entidades, no sabe qué campos estarán
disponibles cuando escriba una fórmula. El . La notación de campo no está disponible. Dichas fórmulas se deben
adaptar a los registros que encuentra la aplicación cuando se ejecuta.
La función IsType comprueba si una referencia de registro hace referencia a un tipo de entidad concreto. La
función devuelve un valor booleano TRUE o FALSE.
La función astype trata una referencia de registro como un tipo de entidad concreto, que a veces se conoce
como conversión. Puede usar el resultado como si fuera un registro de la entidad y, de nuevo, usar . Notación de
campo para tener acceso a todos los campos de ese registro. Se produce un error si la referencia no es del tipo
específico.
Use estas funciones juntas para probar primero el tipo de entidad de un registro y, a continuación, tratarlo como
un registro de ese tipo para que los campos estén disponibles:

If( IsType( First( Accounts ).Owner; Users );


AsType( First( Accounts ).Owner; Users ).'Full Name';
AsType( First( Accounts ).Owner; Teams ).'Team Name'
)

Solo necesita estas funciones si tiene acceso a los campos de una referencia de registro. Por ejemplo, puede usar
referencias de registros en la función de filtro sin IsType o astype:
Filter( Accounts; Owner = First( Users ) )

Del mismo modo, puede usar referencias de registros con la función patch :

Patch( Accounts; First( Accounts ); { Owner: First( Teams ) } )

Si se usa en un contexto de registro, como en un control de Galería o de edición de formulario , puede que
tenga que usar el operador de desambiguación global para hacer referencia al tipo de entidad. Por ejemplo, esta
fórmula sería efectiva en una galería que muestre una lista de contactos en la que el nombre de la compañía es
una búsqueda de clientes :

If( IsType( ThisItem.'Company Name'; [@Accounts] );


AsType( ThisItem.'Company Name'; [@Accounts] ).'Account Name';
AsType( ThisItem.'Company Name'; [@Contacts] ).'Full Name'
)

En ambas funciones, se especifica el tipo mediante el nombre del origen de datos que está conectado a la
entidad. Para que la fórmula funcione, también debe agregar un origen de datos a la aplicación para cualquier
tipo que desee probar o convertir. Por ejemplo, debe agregar la entidad users como origen de datos si desea
usar IsType y astype con una búsqueda de propietario y registros de esa entidad. Solo puede Agregar los
orígenes de datos que usa realmente en la aplicación; no es necesario agregar todas las entidades a las que
podría hacer referencia una búsqueda.
Si la referencia del registro está en blanco, IsType devuelve false y astype devuelve Blank. Todos los campos de
un registro en blanco estarán en blanco.

Sintaxis
Astype( RecordReference; EntityType )
RecordReference : requerido. Una referencia de registro, a menudo un campo de búsqueda que puede hacer
referencia a un registro en cualquiera de las varias entidades.
EntityType : requerido. Entidad específica que se va a probar.
IsType( RecordReference; EntityType )
RecordReference : requerido. Una referencia de registro, a menudo un campo de búsqueda que puede hacer
referencia a un registro en cualquiera de las varias entidades.
EntityType : requerido. La entidad específica a la que se debe convertir el registro.

Ejemplo
Comprender las referencias de registros y las búsquedas polimórficas contiene extensos ejemplos.
1. Cree una aplicación de lienzo en blanco para tabletas.
2. En la pestaña Ver , seleccione orígenes de datosy, a continuación, agregue las entidades contactos y
cuentas como orígenes de datos.
3. Inserte un control Galería con una orientación vertical en blanco .

4. En la pestaña propiedades situada cerca del lado derecho de la pantalla, establezca la propiedad
elementos de la galería en contactos.

5. Establezca el diseño de la galería en título y subtítulo.


6. En el panel datos , abra la lista Title1 y, a continuación, seleccione nombre completo.

7. Seleccione el control etiqueta Subtitle1 .


8. Establezca la propiedad Text de Subtitle1 en esta fórmula:

If( IsBlank( ThisItem.'Company Name' ); "--";


IsType( ThisItem.'Company Name'; [@Accounts] );
"Account: " & AsType( ThisItem.'Company Name'; [@Accounts] ).'Account Name';
"Contact: " & AsType( ThisItem.'Company Name'; [@Contacts] ).'Full Name'
)

El subtítulo de la galería muestra estos valores:


"--" si el valor de "Company name" está en blanco.
"Cuenta:" y, a continuación, el campo nombre de cuenta de la entidad cuentas si el campo Nombre
de la compañía hace referencia a una cuenta.
"Contacto:" y, a continuación, el campo nombre completo de la entidad contactos si el campo
Nombre de la compañía hace referencia a un contacto.
Los resultados pueden diferir de los de este tema, ya que usa datos de ejemplo que se modificaron para
mostrar tipos adicionales de resultados.
Función JSON en PowerApps
26/11/2019 • 11 minutes to read

Genera una cadena de texto JSON para una tabla, un registro o un valor.

Descripción
La función JSON devuelve la representación notación de objetos JavaScript (JSON ) de una estructura de datos
como texto para que sea adecuada para el almacenamiento o la transmisión a través de una red. ECMA-404 y
IETF RFC 8259 describen el formato, que es ampliamente utilizado por JavaScript y otros lenguajes de
programación.
Las aplicaciones de lienzo admiten los tipos de datos que esta tabla muestra con detalles sobre su representación
de texto:

TIPO DE DATOS DESCRIPCIÓN EJEMPLO DE RESULTADO

Booleano true o false. true

Color Cadena que contiene la representación "#102030ff"


hexadecimal de 8 dígitos del color. Esta
representación adopta el formato
#RRGGBBAA, donde RR es el
componente rojo, GG es verde, BB es
azul y AA es el canal alfa. Para el canal
alfa, 00 es totalmente transparente y FF
es totalmente opaco. Puede pasar la
cadena a la función ColorValue .

Moneda Número que usa el separador decimal 1,345


adecuado para el idioma del usuario. Si
es necesario, se usa la notación
científica.

Posteriormente Cadena que contiene la fecha en "2019-03-31"


formato ISO 8601 AAAA-MM-DD .

DateTime Cadena que contiene una fecha y hora "2019-03-31T22:32:06.822Z"


ISO 8601. Los valores de fecha y hora
están en formato UTC, como indica el
"Z" final.

VOLUMEN Cadena que contiene el valor de GUID. "751b58ac-380e-4a04-a925-


Las letras están en minúsculas. 9f375995cc40"
TIPO DE DATOS DESCRIPCIÓN EJEMPLO DE RESULTADO

Imagen, medios Si se especifica IncludeBinaryData , los "data:image/jpeg;base64,/9j/4AA..."


archivos multimedia se codifican en una
cadena. Las referencias Web que usan el
esquema http: o https: URL no se
modifican. Las referencias a los datos
binarios en memoria se codifican con el
formato "Data:Mimetype; Base64,..." .
Los datos en memoria incluyen
imágenes que los usuarios capturan
mediante el control de cámara y
cualquier otra referencia con los
esquemas appres: y BLOB: URL.

Números Número que usa el separador decimal 1,345


adecuado para el idioma del usuario. Si
es necesario, se usa la notación
científica.

**Conjunto de opciones ** Valor numérico del conjunto de 1001


opciones, no la etiqueta que se usa para
la presentación. El valor numérico se
usa porque es independiente del
lenguaje.

Tiempo Cadena que contiene el formato ISO "23:12:49.000"


8601 HH: mm: SS. FFF .

Record Lista delimitada por comas, entre { y } , { "First Name": "Fred"; "Age": 21
de los campos y sus valores. Esta }
notación es similar a la de los registros
de las aplicaciones de lienzo, pero el
nombre siempre está entre comillas
dobles. Este formato no admite
registros basados en relaciones de
varios a uno.

Cuadro Lista delimitada por comas, entre [ y ] , [ { "First Name": "Fred"; "Age":
de registros. Este formato no admite 21 }; { "First Name": "Jean";
"Age": 20 } ]
tablas basadas en relaciones uno a
varios.

**Dos opciones de ** Valor booleano de la opción dos, true o false


false, no la etiqueta que se usa para la
presentación. El valor booleano se usa
porque es independiente del lenguaje.

Hipervínculo, texto Cadena entre comillas dobles. La "This is a string."


función convierte las comillas dobles
incrustadas en una barra diagonal
inversa, reemplaza las líneas nuevas por
"\n" y realiza otros reemplazos de
JavaScript estándar.

Especifique el argumento de formato opcional para controlar la legibilidad del resultado y el modo en que se
administran los tipos de datos binarios y no compatibles. De forma predeterminada, la salida es lo más compacta
posible sin espacios ni líneas nuevas innecesarias, y no se permiten tipos de datos no admitidos ni datos binarios.
Puede combinar varios formatos si especifica el operador & .
ENUMERACIÓN JSONFORMAT DESCRIPCIÓN

Unidad Predeterminado. La salida es lo más compacta posible sin


espacios ni líneas nuevas.

IndentFour Para mejorar la legibilidad, la salida contiene una línea nueva


para cada columna y el nivel de anidamiento, y usa cuatro
espacios para cada nivel de sangría.

IncludeBinaryData El resultado incluye las columnas Image, video y audio-clip.


Este formato puede aumentar drásticamente el tamaño del
resultado y degradar el rendimiento de la aplicación.

IgnoreBinaryData El resultado no incluye las columnas Image, video o audio-clip.


Si no especifica IncludeBinaryData ni IgnoreBinaryData, la
función genera un error si encuentra datos binarios.

IgnoreUnsupportedTypes Se permiten los tipos de datos no admitidos, pero el resultado


no los incluirá. De forma predeterminada, los tipos de datos
no admitidos generan un error.

Use las funciones Mostrarcolumnas y DropColumns para controlar los datos que incluye el resultado y para
quitar los tipos de datos no admitidos.
Dado que JSON puede ser de memoria y de proceso intensivo, solo puede usar esta función en funciones de
comportamiento. Puede capturar el resultado de JSON en una variable, que puede usar en el flujo de datos.
Si una columna tiene un nombre para mostrar y un nombre lógico, el resultado contiene el nombre lógico. Los
nombres para mostrar reflejan el idioma del usuario de la aplicación y, por lo tanto, son inadecuados para la
transferencia de datos a un servicio común.

Sintaxis
JSON ( Structure [; Format ])
Structure : requerido. La estructura de datos que se va a convertir en JSON. Se admiten tablas, registros y
valores primitivos, anidados arbitrariamente.
Format : opcional. Valor de enumeración JSONFormat . El valor predeterminado es Compact, que no agrega
líneas nuevas ni espacios y bloquea los datos binarios y las columnas no admitidas.

Ejemplos
Datos jerárquicos
1. Inserte un control de botón y establezca su propiedad alseleccionar en esta fórmula.

ClearCollect( CityPopulations;
{ City: "London"; Country: "United Kingdom"; Population: 8615000 };
{ City: "Berlin"; Country: "Germany"; Population: 3562000 };
{ City: "Madrid"; Country: "Spain"; Population: 3165000 };
{ City: "Hamburg"; Country: "Germany"; Population: 1760000 };
{ City: "Barcelona"; Country: "Spain"; Population: 1602000 };
{ City: "Munich"; Country: "Germany"; Population: 1494000 }
);;
ClearCollect( CitiesByCountry; GroupBy( CityPopulations; "Country"; "Cities" ) )

2. Seleccione el botón mientras mantiene presionada la tecla Alt.


La colección CitiesByCountry se crea con esta estructura de datos, que puede mostrar seleccionando
colecciones en el menú archivo y, a continuación, seleccionando el nombre de la colección.

También puede mostrar esta colección seleccionando archivo > configuración de la aplicación >
Configuración avanzada > la vista de resultado de la barra de fórmulas, seleccionando el nombre de la
colección en la barra de fórmulas y, a continuación, seleccionando la flecha hacia abajo situada junto al
nombre de la colección en la barra de fórmulas.

3. Inserte otro botón y establezca su propiedad alseleccionar en esta fórmula:

Set( CitiesByCountryJSON; JSON( CitiesByCountry ) )

Esta fórmula establece la variable global CitiesByCountryJSON en la representación JSON de


CitiesByCountry.
4. Seleccione el botón mientras mantiene presionada la tecla Alt.
5. Inserte un control etiqueta y establezca su propiedad texto en esta variable.

CitiesByCountryJSON
La etiqueta muestra este resultado, todo en una sola línea sin espacios, adecuada para la transmisión a
través de una red:

[{"Cities":[{"City":"London","Population":8615000}],"Country":"United Kingdom"},{"Cities":
[{"City":"Berlin","Population":3562000},{"City":"Hamburg","Population":1760000},
{"City":"Munich","Population":1494000}],"Country":"Germany"},{"Cities":
[{"City":"Madrid","Population":3165000},{"City":"Barcelona","Population":1602000}],"Country":"Spain"}]

6. Cambie la fórmula del segundo botón para que la salida sea más legible.

Set( CitiesByCountryJSON; JSON(CitiesByCountry; JSONFormat.IndentFour ))

7. Seleccione el segundo botón mientras mantiene presionada la tecla Alt.


La etiqueta muestra el resultado más legible.

[
{
"Cities": [
{
"City": "London",
"Population": 8615000
}
],
"Country": "United Kingdom"
},
{
"Cities": [
{
"City": "Berlin",
"Population": 3562000
},
{
"City": "Hamburg",
"Population": 1760000
},
{
"City": "Munich",
"Population": 1494000
}
],
"Country": "Germany"
},
{
"Cities": [
{
"City": "Madrid",
"Population": 3165000
},
{
"City": "Barcelona",
"Population": 1602000
}
],
"Country": "Spain"
}
]

Imágenes y elementos multimedia en Base64


1. Agregue un control imagen .
Este control pone SampleImage en él.
2. Agregue un control botón y establezca su propiedad alseleccionar en esta fórmula.

Set( ImageJSON; JSON( SampleImage; JSONFormat.IncludeBinaryData ) )

3. Seleccione el botón mientras mantiene presionada la tecla Alt.


4. Agregue una etiqueta y establezca su propiedad Text en esta variable.

ImageJSON

5. Cambie el tamaño del control y reduzca el tamaño de fuente según sea necesario para mostrar la mayor
parte del resultado.
La etiqueta muestra la cadena de texto que la función JSON capturó.

"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxzdmcgdmVyc2lvbj0iMS4x
Ig0KCSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3h
saW5rIiB4bWxuczphPSJodHRwOi8vbnMuYWRvYmUuY29tL0Fkb2JlU1ZHVmlld2VyRXh0ZW5zaW9ucy8zLjAvIg0KCSB4PSIwcHgiIH
k9IjBweCIgd2lkdGg9IjI3MHB4IiBoZWlnaHQ9IjI3MHB4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNzAgMjcwIiB4bWw6c
3BhY2U9InByZXNlcnZlIj4NCgk8ZyBjbGFzcz0ic3QwIj4NCgkJPHJlY3QgeT0iMC43IiBmaWxsPSIjRTlFOUU5IiB3aWR0aD0iMjY5
IiBoZWlnaHQ9IjI2OS4zIi8+DQoJCTxwb2x5Z29uIGZpbGw9IiNDQkNCQ0EiIHBvaW50cz0iMjc3LjksMTg3LjEgMjQ1LDE0My40IDE
4OC42LDIwMi44IDc1LDgwLjUgLTQuMSwxNjUuMyAtNC4xLDI3MiAyNzcuOSwyNzIiLz4NCgkJPGVsbGlwc2UgZmlsbD0iI0NCQ0JDQS
IgY3g9IjIwMi40IiBjeT0iODQuMSIgcng9IjI0LjQiIHJ5PSIyNC4zIi8+DQoJPC9nPg0KPC9zdmc+"
Función Language en PowerApps
08/10/2019 • 8 minutes to read

Devuelve la etiqueta de idioma del usuario actual.

Descripción
La función Language devuelve el idioma, el alfabeto y la región del usuario actual como una etiqueta de
idioma.
Use la información de idioma para adaptar la aplicación a las configuraciones regionales. Por ejemplo, si va a
crear una aplicación que se usará en Italia y Francia, puede usar Language para mostrar automáticamente
cadenas en italiano y francés a los usuarios que se encuentren estas ubicaciones diferentes.
Etiquetas Language
Las etiquetas de idioma pueden presentar uno de estos tres formatos:

VALOR DEVUELTO DESCRIPCIÓN

"lg‑RE" lg es la abreviatura de dos caracteres para el idioma y RE


es la abreviatura de dos caracteres para la región. Se trata
del tipo de valor devuelto más común. Por ejemplo, se
devuelve "en-GB" para Gran Bretaña.

"lg" lg es la abreviatura de dos caracteres para el idioma. Este


es el formato que se usa cuando PowerApps tiene
información sobre el idioma, pero no sobre la región
específica.

"lg‑scrp‑RE" lg es la abreviatura de dos caracteres para el idioma, scrp


es la abreviatura de cuatro caracteres para el alfabeto y RE
es la abreviatura de dos caracteres para la región.

PowerApps usa el formato de etiqueta de idioma IETF BCP -47.


Para ver la lista de etiquetas de idioma compatibles, escriba Value( "1"; ) en la barra de fórmulas o en la
vista avanzada, y desplácese por la lista de configuraciones regionales sugeridas para el segundo
argumento.
Las funciones Text y Value también usan etiquetas de idioma. Use estas funciones para traducir desde y
hacia cadenas de texto teniendo en cuenta el contexto global. Cuando pasar una etiqueta de idioma a estas
funciones y la región no suponga una diferencia, puede usar solo la porción de idioma de la etiqueta.

Sintaxis
Language()

Ejemplos
Configuración regional del usuario
Se supone que el sistema operativo host o el explorador usan la configuración regional predeterminada
para la ubicación.
FÓRMULA LOCATION VALOR DEVUELTO

Language() Lisboa, Portugal "pt-PT"

Language() Río de Janeiro, Brasil "pt-BR"

Language() Atlanta, Estados Unidos "en-US"

Language() Mánchester, Reino Unido "en-GB"

Language() París, Francia "fr-FR"

Language() Roseau, Dominica "en"

Language() Belgrado, Serbia "sr-cyrl-RS" o "sr-latn-RS", según la


configuración del sistema del usuario

Tabla de localización
Un enfoque sencillo para la localización consiste en crear una hoja de cálculo de Excel en la que se asigne un
TextID definido por el autor a un texto traducido para el idioma del usuario. Aunque podría utilizar una
colección o cualquier otro origen de datos para esta tabla, hemos elegido Excel porque a los traductores les
resulta fácil de editar y administrar fuera de la aplicación.
1. Cree la siguiente tabla en Excel:

La entrada con blank para la columna Language se usará como el valor predeterminado si no hay
ninguna cadena de texto específica para un idioma determinado. Esta entrada debe aparecer después
de todas las demás entradas para un determinado TextID.
Para nuestros propósitos, solo necesitamos consultar el idioma de la configuración regional, no la
región. Si consideraciones regionales fueran importantes, podríamos haber incluido el valor completo
de la etiqueta de idioma en la tabla anterior.
2. Use la cinta de opciones Insertar y el comando Tabla para convertirla en una tabla de Excel
apropiada. De forma predeterminada, se denominará Table1, pero puede asignarle el nombre quiera
con la cinta de opciones Herramientas de tabla/Diseño y el cuadro de texto Nombre de la tabla
del extremo izquierdo.
3. Guarde el archivo de Excel en el sistema de archivos local.
4. En PowerApps, en el panel derecho, pulse o haga clic en la pestaña Orígenes de datos y, después,
pulse o haga clic en Agregar origen de datos.
5. Pulse o haga clic en Agregar datos estáticos a la aplicación, pulse o haga clic en el archivo de
Excel que ha guardado y, luego, en Abrir.
6. Seleccione la tabla que ha creado y, después, pulse o haga clic en Conectar.
En la aplicación, en los casos en los que antes habría usado el texto "Hello" , use la siguiente fórmula en su
lugar:
LookUp( Table1; TextID = "Hello" && (LanguageTag = Left( Language(); 2 ) || IsBlank(
LanguageTag ))).LocalizedText
Esta fórmula buscará el valor adecuado de LocalizedText para el idioma del usuario y, si no lo encuentra,
recurrirá a la versión predeterminada blank.
Tenga en cuenta que las cadenas traducidas a otros idiomas podrían ocupar más espacio que las que están
en su idioma. En muchos casos, las etiquetas y otros elementos que muestran las cadenas en la interfaz de
usuario necesitarán ser más anchos para dar cabida a esas cadenas.
Servicio de traducción
Puede traducir texto a petición con un servicio de traducción, como el servicio Microsoft Translator:
1. En PowerApps, en el panel derecho, pulse o haga clic en la pestaña Orígenes de datos y, después, pulse
o haga clic en Agregar origen de datos.
2. Pulse o haga clic en Microsoft Translator.
En la aplicación, en los casos en los que antes habría usado el texto "Hello" , use la siguiente fórmula en su
lugar:
MicrosoftTranslator.Translate( "Hello"; Language() )
El servicio Microsoft Translator usa las mismas etiquetas de idioma que devuelve la función Language.
Este enfoque tiene algunas desventajas en comparación con el ejemplo anterior, en el que se usaba una
tabla de cadenas de texto traducida previamente:
La traducción tardará en completarse, ya que requiere llamar a un servicio a través de la red. Esto implica
que transcurrirá un tiempo hasta que pueda ver el texto traducido en la aplicación.
La traducción será mecánica y es posible que los resultados no sean los esperados ni la mejor opción
para el contexto de su aplicación.
Funciones First, FirstN, Last y LastN en PowerApps
08/10/2019 • 2 minutes to read

Devuelve el primer o último conjunto de registros de una tabla.

Descripción
La función First devuelve el primer registro de una tabla.
La función FirstN devuelve el primer conjunto de registros de una tabla; el segundo argumento especifica el
número de registros que se van a devolver.
La función Last devuelve el último registro de una tabla.
La función LastN devuelve el último conjunto de registros de una tabla; el segundo argumento especifica el
número de registros que se van a devolver.
First y Last devuelven un único registro. FirstN y LastN devuelven una tabla, incluso si se especifica solo un único
registro.
Cuando se usan con un origen de datos, estas funciones no se pueden delegar. Solo se recuperará la primera parte
del origen de datos, y después se aplicará la función. Es posible que el resultado no represente la historia completa.
Aparecerá una advertencia en el momento de la creación para recordarle esta limitación y para sugerirle un cambio
a alternativas delegables siempre que sea posible. Para obtener más información, consulte la información general
sobre delegación

Sintaxis
First( Table )
Last( Table )
Table: requerido. La tabla sobre la cual se opera.
FirstN ( Table [; NumberOfRecords ] )
LastN ( Table [; NumberOfRecords ] )
Table: requerido. La tabla sobre la cual se opera.
NumberOfRecords: opcional. Número de registros que se va a devolver. Si no especifica este argumento, la
función devolverá un registro.

Ejemplos
Esta fórmula devuelve el primer registro de una tabla denominada Empleados:
First(Employees)
Esta fórmula devuelve los últimos 15 registros de una tabla denominada Empleados:
LastN (Employees; 15)
Funciones First, FirstN, Last y LastN en
PowerApps
08/10/2019 • 2 minutes to read

Devuelve el primer o último conjunto de registros de una tabla.

Descripción
La función First devuelve el primer registro de una tabla.
La función FirstN devuelve el primer conjunto de registros de una tabla; el segundo argumento
especifica el número de registros que se van a devolver.
La función Last devuelve el último registro de una tabla.
La función LastN devuelve el último conjunto de registros de una tabla; el segundo argumento
especifica el número de registros que se van a devolver.
First y Last devuelven un único registro. FirstN y LastN devuelven una tabla, incluso si se especifica
solo un único registro.
Cuando se usan con un origen de datos, estas funciones no se pueden delegar. Solo se recuperará la
primera parte del origen de datos, y después se aplicará la función. Es posible que el resultado no
represente la historia completa. Aparecerá una advertencia en el momento de la creación para
recordarle esta limitación y para sugerirle un cambio a alternativas delegables siempre que sea
posible. Para obtener más información, consulte la información general sobre delegación

Sintaxis
First( Table )
Last( Table )
Table: requerido. La tabla sobre la cual se opera.
FirstN ( Table [; NumberOfRecords ] )
LastN ( Table [; NumberOfRecords ] )
Table: requerido. La tabla sobre la cual se opera.
NumberOfRecords: opcional. Número de registros que se va a devolver. Si no especifica este
argumento, la función devolverá un registro.

Ejemplos
Esta fórmula devuelve el primer registro de una tabla denominada Empleados:
First(Employees)
Esta fórmula devuelve los últimos 15 registros de una tabla denominada Empleados:
LastN (Employees; 15)
Funciones de descarga, Inicio y parámetro en
aplicaciones de Canvas
05/11/2019 • 2 minutes to read

Descarga o inicia una página web o una aplicación con parámetros.

Descripción
La función Download descarga un archivo de la Web al dispositivo local. Se pide al usuario una ubicación para
guardar el archivo. Download devuelve la ubicación donde el archivo se almacenó localmente como una cadena.
La función Launch inicia un página web o una aplicación. Opcionalmente, esta función puede pasar parámetros a la
aplicación.
En Internet Explorer y Microsoft Edge, la función Launch abre un sitio web o una aplicación solo si su
configuración de seguridad es igual o superior a la de la aplicación que contiene la función. Si, por ejemplo, agrega
la función de Inicio a una aplicación que se ejecutará en la zona de seguridad sitios de confianza , asegúrese de
que el sitio web o la aplicación que desea que la función abra se encuentra en la zona de sitios de confianza o
Intranet local (no en Sitios restringidos). Más información: cambiar la configuración de seguridad y privacidad
para Internet Explorer 11.
La función Param recupera un parámetro pasado a la aplicación cuando se inició. Si no se pasó el parámetro con
nombre, Param devuelve blank.

Sintaxis
Download( Address )
Address: requerido. La dirección de un recurso web para descargar.
Launch( Address [; ParameterName1; ParameterValue1; ... ] )
Address: requerido. La dirección de una página web o el identificador de una aplicación que se va a iniciar.
ParameterName(s) : valor opcional. Nombre del parámetro.
ParameterValue(s) : valor opcional. Valores de parámetro correspondientes para pasar a la aplicación o la página
web.
Param ( ParameterName )
ParameterName: requerido. El nombre del parámetro pasado a la aplicación.
Funciones Left, Mid y Right en PowerApps
08/10/2019 • 5 minutes to read

Extrae la parte izquierda, central o derecha de una cadena de texto.

Descripción
Las funciones Left, Mid y Right devuelven una parte de una cadena.
Left: devuelve los caracteres del principio de una cadena.
Mid: devuelve los caracteres centrales de una cadena.
Right: devuelve los caracteres del final de una cadena.
Si especifica una cadena como argumento, la función devuelve la parte que ha solicitado de la cadena. Si especifica
una tabla de una columna que contiene cadenas, la función devuelve una tabla de una columna de las partes que
solicitó de esas cadenas. Si especifica una tabla con varias columnas, puede convertirla en una tabla de una
columna, como se describe en la sección sobre cómo trabajar con tablas.
Si la posición inicial es negativa o sobrepasa el final de la cadena, Mid devuelve blank. Puede comprobar la longitud
de una cadena mediante la función Len . Si se solicitan más caracteres de los que contiene la cadena, la función
devuelve tantos caracteres como sea posible.

Sintaxis
Left( String; NumberOfCharacters )
Mid( String; StartingPosition; NumberOfCharacters )
Right( String; NumberOfCharacters )
String: requerido. La cadena hasta la cual se extrae el resultado o desde la que se extrae el resultado.
StartingPosition: requerido (solo Mid). La posición inicial. El primer carácter de la cadena ocupa la posición 1.
NumberOfCharacters : requerido (soloizquierda y derecha ). El número de caracteres que se va a devolver. Si se
omite para la función Mid , la función devuelve la parte desde la posición inicial hasta el final de la cadena.
Left( SingleColumnTable; NumberOfCharacters )
Mid( SingleColumnTable; StartingPosition; NumberOfCharacters )
Right( SingleColumnTable; NumberOfCharacters )
SingleColumnTable: requerido. Una tabla de una columna de cadenas de la cual se extraen los resultados.
StartingPosition: requerido (solo Mid). La posición inicial. El primer carácter de la cadena ocupa la posición 1.
NumberOfCharacters : requerido (soloizquierda y derecha ). El número de caracteres que se va a devolver. Si se
omite para la función Mid , la función devuelve la parte desde la posición inicial hasta el final de la cadena.

Ejemplos
Cadena única
En los ejemplos de esta sección se usa un control de entrada de texto como origen de datos. El control se denomina
Author y contiene la cadena "E". E. Cummings".
FÓRMULA DESCRIPCIÓN RESULTADO

Left( Author.Text; 5 ) Extrae un máximo de cinco caracteres "E. E".


del principio de la cadena.

Mid( Author.Text; 7; 4 ) Extrae un máximo de cuatro caracteres "Cumm"


de la cadena, empezando por el séptimo
carácter.

MID (Author. Text, 7) Extrae todos los caracteres, empezando "Cummings"


por el séptimo carácter, de la cadena.

Right( Author.Text; 5 ) Extrae un máximo de cinco caracteres "mings"


del final de la cadena.

Tabla de una sola columna


En cada ejemplo de esta sección se extraen cadenas de la columna Address de este origen de datos, denominado
People, y se devuelve una tabla de una columna que contiene los resultados:

FÓRMULA DESCRIPCIÓN RESULTADO

Left( Extrae los ocho primeros caracteres de


ShowColumns( People; "Address" ); cada cadena.
8)

Mid( Extrae los siete caracteres centrales de


ShowColumns( People; "Address" ); cada cadena, comenzando por el quinto
5; 7 ) carácter.

Right( Extrae los siete últimos caracteres de


ShowColumns( People; "Address" ); cada cadena.
7)

Ejemplo paso a paso


1. Importe o cree una colección denominada Inventory y muéstrela en una galería, como se describe en el
primer procedimiento en Show images and text in a gallery (Mostrar imágenes y texto en una galería).
2. Establezca la propiedad Text de la etiqueta inferior de la galería en esta función:
Right(ThisItem.ProductName; 3)
La etiqueta muestra los tres últimos caracteres de cada nombre de producto.
Función Len en PowerApps
08/10/2019 • 2 minutes to read

Devuelve la longitud de una cadena de texto.

Descripción
Si especifica una cadena única como argumento, el valor devuelto es la longitud como un número. Si
especifica una tabla de una columna que contiene cadenas, el valor devuelto es una tabla de una columna que
contiene la longitud de cada cadena. Si tiene una tabla con varias columnas, puede convertirla en una tabla de
una sola columna, como se describe en cómo trabajar con tablas.
Si especifica una cadena en blanco , Len devuelve 0.

Sintaxis
Len( String )
String: requerido. La cadena que se va a medir.
Len( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de una columna de cadenas para medir.

Ejemplos
Cadena única
En los ejemplos de esta sección, el origen de datos es un control de entrada de texto que se denomina Autor y
que contiene la cadena "E". E. Cummings".

FÓRMULA DESCRIPCIÓN RESULTADO

Len( Author.Text ) Mide la longitud de la cadena en el 14


control Author.

Len( "" ) Mide la longitud de una cadena vacía. 0

Tabla de una sola columna


En el primer ejemplo de esta sección, el origen de datos se denomina People y contiene estos datos:

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

Len( En la columna Address de la


ShowColumns( People; "Address" ) tablaPeople:
) Mide la longitud de cada
cadena.
Devuelve una tabla de una
columna que contiene la
longitud de cada cadena.

Len( [ "Hello"; "to the"; "World"; En la columna Value de la tabla


"" ] ) insertada:
Mide la longitud de cada
cadena.
Devuelve una tabla de una
columna que contiene la
longitud de cada cadena.
Funciones Abs, Exp, Ln, Power y Sqrt en PowerApps
08/10/2019 • 4 minutes to read

Calcula valores absolutos, logaritmos naturales, raíces cuadradas y los resultados de elevar e o cualquier número a
una potencia especificada.

Descripción
La función Abs muestra el valor no negativo de su argumento. Si el número es negativo, Abs muestra el
equivalente positivo.
La función Exp muestra e elevado a la potencia de su argumento. El número trascendente e comienza con
2,7182818...
La función Ln muestra el argumento natural (e base) de su argumento.
La función Power muestra un número elevado a una potencia. Es equivalente a usar el operador ^ .
La función Sqrt muestra el número que, cuando se multiplica por sí mismo, es igual a su argumento.
Si pasa un solo número, el valor que se muestra es un resultado único basado en la función llamada. Si pasa una
tabla de una sola columna que contiene números, el valor que se muestra es una tabla de resultados de una sola
columna, un resultado para cada registro en la tabla del argumento. Si tiene una tabla con varias columnas, puede
convertirla en una tabla de una sola columna, como se describe en cómo trabajar con tablas.
Si algún argumento pudiera mostrar un valor no definido, el resultado queda en blanco. Por ejemplo, esto puede
pasar con las raíces cuadradas y los logaritmos de números negativos.

Sintaxis
Abs( Number )
Exp( Number )
Ln( Number )
Sqrt( Number )
Number: requerido. El número sobre el cual operar.
Power( Base; Exponente )
Base: requerido. Número base que se va a elevar.
Exponent: requerido. El exponente al que se eleva el número base.
Abs( SingleColumnTable )
Exp( SingleColumnTable )
Ln( SingleColumnTable )
Sqrt( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de números de una sola columna sobre la cual operar.

Ejemplos
Número único
FÓRMULA DESCRIPCIÓN RESULTADO

Abs( -55 ) Muestra el número sin el signo 55


negativo.

Exp( 2 ) Muestra e elevado a la potencia de 2, o 7,389056...


e * e.

Ln( 100 ) Muestra el algoritmo natural (e base) 4,605170...


del número 100.

Power( 5; 3 ) Muestra 5 elevado a la potencia de 3, o 125


5 * 5 * 5.

Sqrt( 9 ) Muestra el número que, cuando se 3


multiplica por sí mismo, da como
resultado 9.

Tabla de una sola columna


Los ejemplos de esta sección usan un origen de datos denominado ValueTable que contiene estos datos:

FÓRMULA DESCRIPCIÓN RESULTADO

Abs( ValueTable ) Muestra el valor absoluto de cada


número en la tabla.

Exp( ValueTable ) Muestra e elevado a la potencia de cada


número en la tabla.

Ln( ValueTable ) Muestra el logaritmo natural de cada


número en la tabla.

Sqrt( ValueTable ) Muestra la raíz cuadrada de cada


número en la tabla.

Ejemplo paso a paso


1. Agregue un control Entrada de texto y denomínelo Origen.
2. Agregue un control Label y establezca su propiedad Text en esta fórmula:
Sqrt( Value( Source.Text ) )
3. Escriba un número en Origen y confirme que el control Etiqueta muestra la raíz cuadrada del número que
escribió.
Funciones SaveData y LoadData en PowerApps
08/10/2019 • 4 minutes to read

Guarda y vuelve a cargar una colección.

Descripción
La función SaveData almacena una colección para su uso posterior con un nombre.
La función LoadData vuelve a cargar una colección por el nombre guardado anteriormente con SaveData. No se
puede utilizar esta función para cargar una colección de otro origen.
Use estas funciones para mejorar el rendimiento de inicio de la aplicación almacenando en caché los datos de la
fórmula app. OnStart en una primera ejecución y volviendo a cargar la memoria caché local en ejecuciones
posteriores. También puede usar estas funciones para agregar funcionalidades sin conexión sencillas a la aplicación.
No puede usar estas funciones dentro de un explorador, ya sea al crear la aplicación en PowerApps Studio o al
ejecutar la aplicación en el reproductor Web. Para probar la aplicación, ejecútela en PowerApps Mobile en un
dispositivo iPhone o Android.
Estas funciones están limitadas por la cantidad de memoria de la aplicación disponible, ya que operan en una
colección en memoria. La memoria disponible puede variar según el dispositivo y el sistema operativo, la memoria
que usa el reproductor de PowerApps y la complejidad de la aplicación en términos de pantallas y controles. Si
almacena más de unos megabytes de datos, pruebe la aplicación con los escenarios esperados en los dispositivos
en los que espera que la aplicación se ejecute. Por lo general, debe esperar entre 30 y 70 megabytes de memoria
disponible.
LoadData no crea la colección; la función solo rellena una colección existente. Primero tiene que crear la colección
con las columnas correctas utilizando Recopilar . Los datos cargados se anexarán a la colección; Utilice primero la
función Clear si desea empezar con una colección vacía.
El almacenamiento está cifrado y se encuentra en una ubicación privada en el dispositivo local, aislado de otros
usuarios y otras aplicaciones.

Sintaxis
SaveData( Colección; Nombre )
LoadData( Collection; Name [; IgnoreNonexistentFile ])
Colección: requerido. Colección para almacenar o cargar.
Nombre: requerido. Nombre del almacenamiento. Tiene que usar el mismo nombre para guardar y cargar el
mismo conjunto de datos. El espacio de nombres no se comparte con otros usuarios o aplicaciones.
IgnoreNonexistentFile: opcional. Valor booleano (true/false) que indica si la función LoadData debe mostrar o
ignorar los errores cuando no encuentre un archivo coincidente. Si especifica false, se mostrarán los errores. Si
especifica true, se omitirán los errores, lo que resulta útil para escenarios sin conexión. SaveData puede crear
un archivo si el dispositivo está desconectado (es decir, si el estado Connection.Connected es false).

Ejemplos
FÓRMULA DESCRIPCIÓN RESULTADO

If (Connection. Connected; Si el dispositivo está conectado, cargue El contenido se presenta tanto si el


ClearCollect (LocalTweets; Twitter. la colección LocalTweets del servicio dispositivo está conectado como
SearchTweet ("PowerApps"; Twitter; si no lo está, cargue la colección desconectado.
{maxResults: 100})); LoadData de la caché de archivos local.
(LocalTweets; "tweets"; true))

SaveData(LocalTweets; "Tweets") Guarde la colección LocalTweets como Los datos se guardan localmente para
una caché de archivos local en el que LoadData puede cargarlos en una
dispositivo. colección.
Señales Acceleration, App, Compass,
Connection y Location en PowerApps
07/10/2019 • 9 minutes to read

Devuelve información sobre el entorno de la aplicación, como dónde se encuentra el usuario en el


mundo y la pantalla que se muestra.

Descripción y sintaxis
Las señales son valores que pueden cambiar en cualquier momento, independientemente de cómo el
usuario pueda interactuar con la aplicación. Las fórmulas que se basan en señales se recalculan
automáticamente a medida que estos valores cambian.
Normalmente, las señales devuelven un registro de información. Puede usar y almacenar esta
información como un registro, o puede extraer propiedades individuales mediante el operador .

NOTE
Las funciones Acceleration y Compass devuelven valores precisos en un reproductor nativo, como en iOS o
Android, pero esas funciones devuelven valores cero a medida que crea o modifica una aplicación en el explorador.

Acceleration
La señal Acceleration devuelve la aceleración del dispositivo en tres dimensiones en relación con la
pantalla del dispositivo. La aceleración se mide en unidades g de 9,81 m/s2 o 32,2 ft/s2 (la aceleración
que imparte la Tierra en los objetos en su superficie debida a la gravedad).

PROPIEDAD DESCRIPCIÓN

Acceleration.X Derecha e izquierda. El valor de la derecha es un número


positivo.

Acceleration.Y Hacia delante y atrás. El valor hacia delante es un número


positivo.

Acceleration.Z Arriba y abajo. El valor de arriba es un número positivo.

App
Entre otras propiedades, el objeto de aplicación incluye una señal que indica la pantalla que se muestra.

PROPIEDAD DESCRIPCIÓN

App.ActiveScreen Pantalla que se muestra. Devuelve un objeto de pantalla,


que puede usar para hacer referencia a las propiedades
de la pantalla o comparar con otra pantalla para
determinar la pantalla que se muestra. Puede usar la
función back o Navigate para cambiar la pantalla que
se muestra.

Más información: Documentación del objeto de aplicación .


Compass
La señal Compass devuelve el encabezado de brújula de la parte superior de la pantalla. El encabezado
se basa en el norte magnético.

PROPIEDAD DESCRIPCIÓN

Compass.Heading Encabezado en grados. Devuelve que un número de 0 a


360, y 0 es el norte.

Conexión
La señal Connection devuelve información acerca de la conexión de red. Cuando está en una conexión
medida, puede que desee limitar la cantidad de datos que envíe o reciba a través de la red.

PROPIEDAD DESCRIPCIÓN

Connection.Connected Devuelve un valor booleano true o false que indica si el


dispositivo está conectado a una red.

Connection.Metered Devuelve un valor booleano true o false que indica si la


se mide la conexión.

Location
La señal Location devuelve la ubicación del dispositivo según el sistema GPS (Global Positioning
System) y otra información de dispositivo, como las comunicaciones de la torre de telefonía móvil y la
dirección IP.
Cuando un usuario tiene acceso a la información de ubicación por primera vez, el dispositivo puede
solicitar que el usuario permita el acceso a esta información.
A medida que cambia la ubicación, las dependencias de la ubicación se recalcularán continuamente, lo
que consumirá corriente de la batería del dispositivo. Para conservar la vida útil de la batería, puede usar
las funciones Enable y Disable para activar y desactivar las actualizaciones de la ubicación. La ubicación
se desactiva automáticamente si la pantalla mostrada no depende de la información de la ubicación.

PROPIEDAD DESCRIPCIÓN

Location.Altitude Devuelve un número que indica la altitud, medida en


metros, por encima del nivel del mar.

Location.Latitude Devuelve un número, de -90 y 90, que indica la latitud,


que se mide en grados desde el Ecuador. Un número
positivo indica una ubicación que sea al norte del
ecuador.

Location.Longitude Devuelve un número, de 0 y 180, que indica la longitud,


que se mide en grados oeste desde Greenwich,
Inglaterra.

Ejemplos
En un campo de béisbol, un lanzador lanza un teléfono desde el montículo del jarra a un captador en la
placa de inicio. El teléfono se encuentra situado horizontalmente con respecto a la tierra, la parte superior
de la pantalla está orientada al lanzador, y el lanzador no hace ningún giro. En esta ubicación, el teléfono
tiene una cobertura medida, pero no tiene Wi-Fi. Se muestra la pantalla PlayBall.
FÓRMULA DESCRIPCIÓN RESULTADO

Location.Latitude Devuelve la latitud de la ubicación 47.591


actual. El campo se encuentra en las
coordenadas de mapa 47,591 N, La latitud cambiará continuamente a
122,333 W. medida que la pelota se mueva
entre el lanzador y el receptor.

Location.Longitude Devuelve la longitud de la ubicación 122.333


actual.
La longitud cambiará
continuamente a medida que la
pelota se mueva entre el lanzador y
el receptor.

Location Devuelve la latitud y longitud de la { Latitud: 47.591,


ubicación actual, como un registro. Longitud: 122.333 }

Compass.Heading Devuelve el encabezado de brújula 230.25


de la parte superior de la pantalla.
En este campo, la placa de inicio es
aproximadamente suroeste del
montículo del jarra.

Acceleration.X Devuelve la aceleración del 0


dispositivo de lado a lado. El
lanzador está lanzando el teléfono
en línea recta con respecto a la
parte superior de la pantalla, por lo
que el dispositivo no cuenta con
una aceleración de lado a lado.

Acceleration.Y Devuelve la aceleración del 8,2, cuando el lanzador lanza el


dispositivo de la parte delantera a la dispositivo.
trasera. El lanzador inicialmente
ofrece al dispositivo una gran 0, cuando el dispositivo está en el
aceleración al lanzar el dispositivo, aire.
que pasa de 0 a 144 km por hora
(40 metros por segundo) en medio -8,2, cuando el receptor atrapa el
segundo. Después de que el dispositivo.
dispositivo esté en el aire, sin tener
en cuenta la fricción del aire, no se
acelera más. El dispositivo deja de
acelerarse cuando el receptor lo
atrapa, hasta que para.

Acceleration.Z Devuelve la aceleración del 0, antes de que el lanzador lace el


dispositivo de arriba a abajo. dispositivo.
Mientras está en el aire, el
dispositivo experimenta los efectos 1, cuando el dispositivo está en el
de la gravedad. aire.

0, cuando el receptor atrapa el


dispositivo.

Acceleration Devuelve la aceleración como X1 0, Y: 264, Z: 0} cuando el


registro. lanzador lanza el dispositivo.
FÓRMULA DESCRIPCIÓN RESULTADO

Connection.Connected Devuelve un valor booleano que true


indica si el dispositivo está
conectado a una red.

Connection.Metered Devuelve un valor booleano que true


indica si la se mide la conexión.

App.ActiveScreen = PlayBall Devuelve un valor booleano que true


indica si se muestra PlayBall.

App.ActiveScreen.Fill Devuelve el color de fondo de la Color.Green


pantalla mostrada.
Funciones Filter, Search y LookUp en PowerApps
08/10/2019 • 18 minutes to read

Busca uno o varios registros en una tabla.

Descripción
La función Filter busca registros en una tabla que satisface una fórmula. Use la función Filter para buscar un
conjunto de registros que coinciden con uno o varios criterios y descartar aquellos que no lo hacen.
La función LookUp busca el primer registro de una tabla que satisface una fórmula. Use LookUp para encontrar
un único registro que coincida con uno o varios criterios.
En ambos casos, la fórmula se evalúa para cada registro de la tabla. Los registros que dan como resultado true se
incluyen en el resultado. Además de los operadores de la fórmula normal, puede usar los operadores in y exactin
para las coincidencias de subcadenas.
Los campos de registro que se están procesando actualmente estarán disponibles en la formula. Solo tiene que
hacer referencia a los campos por su nombre, como con cualquier otro valor. También puede hacer referencia a
propiedades de control y a otros valores desde toda la aplicación. Para obtener más detalles, vea los ejemplos
siguientes y trabajar con el ámbito de registros.
La función Search busca registros en una tabla que contengan una cadena en una de sus columnas. La cadena
puede estar en cualquier lugar dentro de la columna. Por ejemplo, si busca "rob" o "bert" encontrará una
coincidencia en una columna que contiene "Roberto". La búsqueda no distingue mayúsculas de minúsculas. A
diferencia de Filter y LookUp, la función Search usa solo una cadena de coincidencia en lugar de una fórmula.
Filter y Search devuelven una tabla que contiene las mismas columnas que la tabla original y los registros que
coinciden con los criterios. LookUp devuelve solo el primer registro encontrado después de aplicar una fórmula
para reducir el registro a un solo valor. Si no se encuentra ningún registro, las funciones Filter y Search devuelven
una tabla vacía, y LookUp devuelve blank.
Las tablas son un valor en PowerApps, tal como una cadena o un número. Se pueden pasar a funciones y las
funciones pueden devolverlas. Las funciones Filter, Search y LookUp no modifican la tabla. En vez de eso, usan la
tabla como argumento y devuelven una tabla, un registro o un solo valor de ella. Consulte cómo trabajar con tablas
para más detalles.

Delegación
Siempre que sea posible, PowerApps delegará las operaciones de filtrado y ordenación al origen de datos y se
desplazará por los resultados a petición. Por ejemplo, cuando se inicia una aplicación que muestra un control
Galería lleno de datos, inicialmente solo se traerá al dispositivo el primer conjunto de registros. A medida que el
usuario se desplace por los datos, se traerán más datos del origen de datos. El resultado es un inicio más rápido de
la aplicación y acceso a conjuntos de datos muy grandes.
Sin embargo, la delegación no siempre es posible. La compatibilidad de funciones y operadores con la delegación
varía según el origen de datos. Si la delegación completa de una fórmula no es posible, el entorno de creación
indicará la parte que no se puede delegar con una advertencia. Si es posible, considere la posibilidad de cambiar la
fórmula para que no incluya las funciones y los operadores que no se pueden delegar. La lista de delegación detalla
qué orígenes de datos y operaciones se pueden delegar.
Si la delegación no es posible, PowerApps solo descargará un conjunto reducido de registros para trabajar
localmente. Las funciones de filtrado y ordenación trabajarán con un conjunto reducido de registros. En la Galería
puede no estará disponible la historia completa, y esto puede resultar confuso a los usuarios.
Consulte la información general sobre delegación para obtener más información.

Sintaxis
Filter( Table; Formula1 [; Formula2; ... ] )
Table: requerido. La tabla en la que se va a buscar.
Formula (s) : requerido. La fórmula por la que se evalúa cada registro de la tabla. La función devuelve todos los
registros cuyo resultado es true. Puede hacer referencia a columnas dentro de la tabla. Si se proporciona más
de una fórmula, los resultados de todas las fórmulas se combinan con la función And .
Search( Table; SearchString; Column1 [; Column2; ... ] )
Table: requerido. La tabla en la que se va a buscar.
SearchString: requerido. La cadena que se va a buscar. Si es blank o es una cadena vacía, se devolverán todos
los registros.
Column(s) : requerido. Los nombres de las columnas dentro de Table que se van a buscar. Las columnas en las
que se va a buscar deben contener texto. Los nombres de las columnas deben ser cadenas e ir entre comillas
dobles. Sin embargo, los nombres de las columnas deben ser estáticos y no se pueden calcular con una fórmula.
Si se encuentra SearchString dentro de los datos de cualquiera de estas columnas como una coincidencia
parcial, se devolverá el registro completo.

NOTE
En el caso de orígenes de datos de SharePoint y Excel que contengan nombres de columna con espacios, especifique cada uno
de ellos como "_x0020_" . Por ejemplo, especifique "Nombre de columna" como "Nombre_x0020_de_columna" .

LookUp( Table; Formula [; ReductionFormula ] )


Table: requerido. La tabla en la que se va a buscar. En la interfaz de usuario, la sintaxis se muestra como origen
encima del cuadro de función.
Formula: requerido. La fórmula por la que se evalúa cada registro de la tabla. La función devuelve el primer
registro cuyo resultado es true. Puede hacer referencia a columnas dentro de la tabla. En la interfaz de usuario,
la sintaxis se muestra como condición encima del cuadro de función.
ReductionFormula: opcional. Esta fórmula se evalúa en el registro que se ha encontrado y luego el registro se
reduce a un valor único. Puede hacer referencia a columnas dentro de la tabla. Si no se usa este parámetro, la
función devuelve el registro completo de la tabla. En la interfaz de usuario, la sintaxis se muestra como resultado
encima del cuadro de función.

Ejemplos
Los ejemplos siguientes usan el origen de datos IceCream:
FÓRMULA DESCRIPCIÓN RESULTADO

Filter( IceCream; OnOrder > 0 ) Devuelve aquellos registros en los que


OnOrder es mayor que cero.

Filter( IceCream; Quantity + Devuelve aquellos registros en los que


OnOrder > 225 ) la suma de las columnas Cantidad y
OnOrder es mayor que 225.

Filter( IceCream; "chocolate" in Devuelve aquellos registros donde


Lower( Flavor ) ) aparece la palabra "chocolate" en el
nombre Flavor, sin tener en cuenta
mayúsculas o minúsculas.

Filter( IceCream; Quantity < 10 && Devuelve aquellos registros donde la


OnOrder < 20 ) cantidad es menor que 10 y la cantidad
OnOrder es menor que 20. No hay
registros que coincidan con estos
criterios, por lo que se devolverá una
tabla vacía.

Search( IceCream; "choc"; "Flavor" ) Devuelve aquellos registros donde


aparece la cadena "choc" en el nombre
Flavor, sin tener en cuenta mayúsculas
o minúsculas.

Search( IceCream; ""; "Flavor" ) Dado que el término de búsqueda está


vacío, se devolverán todos los registros.

LookUp( IceCream; Flavor = Busca un registro cuyo valor de Flavor 100


"Chocolate"; Quantity ) sea igual a "Chocolate". En este caso,
devuelve uno. Para el primer registro
que se encuentra, devuelve el valor de
Cantidad de ese registro.

LookUp( IceCream; Quantity > 150; Busca un registro cuyo valor de 250
Quantity + OnOrder ) Quantity sea mayor que 100. En este
caso, devuelve varios. Para el primer
registro que se encuentra, que es el
Flavor "Vanilla", devuelve la suma de las
columnas Quantity y OnOrder.

LookUp( IceCream; Flavor = Busca un registro cuyo valor de Flavor blank


"Pistachio"; OnOrder ) sea igual a "Pistachio". En este caso no
devuelve ninguno. Como no se encontró
ninguno, Búsqueda devuelve blank.
FÓRMULA DESCRIPCIÓN RESULTADO

LookUp( IceCream; Flavor = Busca un registro cuyo valor de Flavor Tipo "Vainilla", cantidad: 200, en orden:
"Vanilla" ) sea igual a "Vanilla". En este caso, 75}
devuelve uno. Como no se proporcionó
ninguna fórmula de reducción, se
devuelve todo el registro.

Experiencia de búsqueda del usuario


En muchas aplicaciones, puede escribir uno o varios caracteres en un cuadro de búsqueda para filtrar una lista de
registros en un conjunto de datos grande. A medida que escribe, la lista muestra solo los registros que coinciden
con los criterios de búsqueda.
Los ejemplos que aparecen en el resto de este tema muestran los resultados de buscar en una lista, denominada
Clientes, que contiene estos datos:

Para crear este origen de datos como una colección, cree un control Botón y establezca la propiedad OnSelect en
esta fórmula:
ClearCollect (clientes; tabla ({nombre: "Fred Garcia"; compañía: "Northwind Traders"}; {nombre: "Cole
Miller"; empresa: "Contoso"}; {Name: "Glenda Johnson"; compañía: "Contoso"}; {Name: "Mike Collins";
Company: "Adventure Works"}; {nombre: "Colleen Jones"; compañía: "Adventure Works"}))
Como en este ejemplo, puede mostrar una lista de registros en un control Galería en la parte inferior de una
pantalla. Cerca de la parte superior de la pantalla, puede agregar un control Entrada de texto denominado
SearchInput, de modo que los usuarios puedan especificar los registros que más les interesen.

A medida que el usuario escribe caracteres en SearchInput, automáticamente se filtran los resultados en la galería.
En este caso, se configura la galería para que muestre los registros para los que el nombre del cliente (no el nombre
de la empresa) comienza con la secuencia de caracteres de SearchInput. Si el usuario escribe co en el cuadro de
búsqueda, la galería muestra estos resultados:

Para filtrar según la columna Nombre, establezca la propiedad Elementos del control Galería en una de estas
fórmulas:

FÓRMULA DESCRIPCIÓN RESULTADO

Filter( Customers; StartsWith( Name; Filtra el origen de datos Clientes para


SearchInput.Text ) ) los registros en los que la cadena de
búsqueda aparece al principio de la
columna Nombre. La prueba no
distingue mayúsculas de minúsculas. Si
el usuario escribe co en el cuadro de
búsqueda, la galería mostrará Colleen
Jones y Cole Miller. La galería no
mostrará Mike Collins porque la
columna Nombre de ese registro no
comienza por la cadena de búsqueda.

Filter( Customers; SearchInput.Text Filtra el origen de datos Clientes para


in Name ) los registros en los que la cadena de
búsqueda aparece en cualquier parte de
la columna Nombre. La prueba no
distingue mayúsculas de minúsculas. Si
el usuario escribe co en el cuadro de
búsqueda, la galería mostrará Colleen
Jones, Cole Miller y Mike Collins ya
que la cadena de búsqueda aparece en
algún lugar de la columna Nombre de
todos esos registros.

Search( Customers; De forma parecida al uso del operador


SearchInput.Text; "Name" ) in, la función Search busca una
coincidencia en cualquier parte de la
columna Nombre de cada registro.
Tenga en cuenta que debe incluir el
nombre de la columna entre comillas
dobles.

Puede expandir la búsqueda para incluir la columna Empresa además de la columna Nombre:
FÓRMULA DESCRIPCIÓN RESULTADO

Filter( Customers; StartsWith( Name; Filtra el origen de datos Clientes de


SearchInput.Text ) |;|; StartsWith( aquellos registros en los que la columna
Company; SearchInput.Text ) ) Nombre o la columna Empresa
comienza por la cadena de búsqueda
(por ejemplo, co). El operador || será
true si la función StartsWith es también
true.

Filter( Customers; SearchInput.Text Filtra el origen de datos Clientes de


in Name |;|; SearchInput.Text in aquellos registros en los que la columna
Company ) Nombre o la columna Empresa
contienen la cadena de búsqueda en
cualquier lugar (por ejemplo, co).

Search( Customers; De forma parecida al uso del operador


SearchInput.Text; "Name"; in, la función Search busca en el origen
"Company" ) de datos Customers aquellos registros
en los que la columna Name o la
columna Company contienen la cadena
de búsqueda en cualquier lugar (por
ejemplo, co). La función Search es más
fácil de leer y escribir que Filter si desea
especificar varias columnas y varios
operadores in. Tenga en cuenta que
debe incluir los nombres de las
columnas entre comillas dobles.
Funciones Lower, Upper y Proper en PowerApps
08/10/2019 • 3 minutes to read

Convierte las letras de una cadena de texto en todo minúsculas, todo mayúsculas o en mayúsculas o minúsculas,
según corresponda.

Descripción
Las funciones Lower, Upper y Proper convierten las letras de una cadena en mayúsculas o minúsculas.
Lower convierte las letras mayúsculas en minúsculas.
Upper convierte las letras minúsculas en mayúsculas.
Proper convierte la primera letra de cada palabra en mayúscula si está en minúscula o en minúscula si está en
mayúscula.
Las tres funciones omiten los caracteres que no son letras.
Si se pasa una cadena única, el valor devuelto es la versión convertida de dicha cadena. Si se pasa una tabla de una
columna que contiene cadenas, el valor devuelto es una tabla de una columna de cadenas convertidas. Si tiene una
tabla con varias columnas, puede convertirla en una tabla de una sola columna, como se describe en cómo trabajar
con tablas.

Sintaxis
Lower( String )
Upper( String )
Proper( String )
String: requerido. La cadena que se va a convertir.
Lower( SingleColumnTable )
Upper( SingleColumnTable )
Proper( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de una columna de cadenas para convertir.

Ejemplos
Cadena única
En los ejemplos de esta sección se usa un control de entrada de texto, llamado Author, como origen de datos. El
control contiene la cadena "E". E. CummINGS".

FÓRMULA DESCRIPCIÓN RESULTADO

Lower( Author.Text ) Convierte las letras mayúsculas de la "e. e. cummings"


cadena a minúsculas.

Upper( Author.Text ) Convierte las letras minúsculas de la "E. E. CUMMINGS"


cadena a mayúsculas.
FÓRMULA DESCRIPCIÓN RESULTADO

Proper( Author.Text ) Convierte la primera letra de cada "E. E. Cummings"


palabra a mayúscula si está en
minúscula y convierte cualquier otra
letra que esté en mayúsculas a
minúsculas.

Tabla de una sola columna


Los ejemplos de esta sección convierten las cadenas de la columna Address del origen de datos People, que
contiene estos datos:

Cada fórmula devuelve una tabla de una columna que contiene las cadenas convertidas.

FÓRMULA DESCRIPCIÓN RESULTADO

Lower( Convierte cualquier letra que está en


ShowColumns( People; "Address" ) ) minúscula a mayúscula.

Upper( Convierte cualquier letra que está en


ShowColumns( People; "Address" ) ) minúscula a mayúscula.

Proper( Convierte la primera letra de una


ShowColumns( People; "Address" ) ) palabra en minúsculas a mayúsculas y
convierte cualquier otra letra que esté
en mayúsculas a minúsculas.

Ejemplo paso a paso


1. Agregue un control Entrada de texto y denomínelo Origen.
2. Agregue una etiqueta y establezca su propiedad Text en esta función:
Proper(Source.Text)
3. Presione F5 y, a continuación, escriba WE ARE THE BEST! en el cuadro Origen.
La etiqueta muestra We Are The Best!
Funciones IsMatch, Match y MatchAll en PowerApps
26/11/2019 • 25 minutes to read

Comprueba si hay coincidencias o extrae partes de una cadena de texto basándose en un patrón.

Descripción
La función IsMatch comprueba si una cadena de texto coincide con un patrón que puede incluir caracteres normales, patrones
predefinidos o una expresión regular. Las funciones Match y MatchAll devuelven lo que coincidía, incluidas las subcoincidencias.
Use IsMatch para validar que un usuario ha escrito en un control Entrada de texto . Por ejemplo, puede confirmar si el usuario ha
escrito una dirección de correo electrónico válida antes de que el resultado se guarde en el origen de datos. Si la entrada no coincide con
los criterios, agregue otros controles que pidan al usuario que corrija la entrada.
Use Match para extraer la primera cadena de texto que coincida con un patrón y MatchAll para extraer todas las cadenas de texto que
coincidan. También puede extraer coincidencias secundarias para analizar cadenas complejas.
Match devuelve un registro de información para la primera coincidencia encontrada y MatchAll devuelve una tabla de registros para
cada coincidencia encontrada. El registro o los registros contienen:

COLUMNA TIPO DESCRIPCIÓN

coincidencia secundaria‑o sub‑coincidencias Texto Cada subcoincidencia con nombre tendrá su


propia columna. Cree una subcoincidencia con
nombre mediante (?<nombre> ... ) en la
expresión regular. Si una subcoincidencia con
nombre tiene el mismo nombre que una de las
columnas predefinidas (a continuación), la
subcoincidencia tiene prioridad y se genera una
advertencia. Para evitar esta advertencia,
cambie el nombre de la subcoincidencia.

FullMatch Texto Toda la cadena de texto con la que se encontró


una coincidencia.

StartMatch Número Posición inicial de la coincidencia dentro de la


cadena de texto de entrada. El primer carácter
de la cadena devuelve 1.

Subcoincidencias Tabla de texto de una sola columna ( valorde Tabla de subcoincidencias con nombre y sin
columna) nombre en el orden en que aparecen en la
expresión regular. Por lo general, las
subcoincidencias con nombre son más fáciles de
trabajar con y se recomiendan. Use las funciones
forall o Last( firstn( ... )) para trabajar con una
subcoincidencia individual. Si no se definen
subcoincidencias en la expresión regular, esta
tabla estará presente pero vacía.

Estas funciones admiten MatchOptions. De forma predeterminada:


Estas funciones realizan una coincidencia que distingue entre mayúsculas y minúsculas. Use ignoreCase para realizar coincidencias
que no distinguen mayúsculas de minúsculas.
IsMatch coincide con toda la cadena de texto (Complete MatchOption), mientras que Match y MatchAll buscan una coincidencia
en cualquier parte de la cadena de texto (contiene MatchOption). Use Complete, Contains, BeginsWitho EndsWith según
corresponda para su escenario.
IsMatch devuelve true si la cadena de texto coincide con el patrón o false si no es así. Match devuelve un valor en blanco si no se
encuentra ninguna coincidencia que se pueda probar con la función esblanco . MatchAll devuelve una tabla vacía si no se encuentra
ninguna coincidencia que se pueda probar con la función IsEmpty .
Si usa MatchAll para dividir una cadena de texto, considere la posibilidad de usar la función Split , que es más fácil de usar y más
rápida.
Patrones
La clave para usar estas funciones es describir el patrón que debe coincidir. El patrón en una cadena de texto se describe como una
combinación de:
Caracteres normales, como "abc" o "123" .
Patrones predefinidos, como Letter, MultipleDigits o Email. (La enumeración Match define estos patrones).
Códigos de expresión regular, como "\d + \s + \d +" o "[a-z] +" .
Combine estos elementos mediante el operador de concatenación de cadenas & . Por ejemplo, "abc" & Digit & "\s+" es un patrón
válido que busca la coincidencia de los caracteres "a", "b" y "c", seguido de un dígito del 0 al 9, seguido de al menos un carácter de
espacio en blanco.
Caracteres normales
El patrón más sencillo es una secuencia de caracteres normales que deben coincidir exactamente.
Por ejemplo, cuando se usa con la función IsMatch , la cadena "Hello" coincide exactamente con el patrón "Hello" . Ni más ni menos. La
cadena "hello!" no coincide con el patrón debido al signo de exclamación del final y porque el caso es incorrecto para la letra "h".
(Consulte MatchOptions para ver formas de modificar este comportamiento).
En el lenguaje del patrón, algunos caracteres están reservados para fines especiales. Para usar estos caracteres, anteponga al carácter un
\ (barra diagonal inversa) para indicar que el carácter debe tomarse literalmente, o bien puede usar uno de los patrones predefinidos que
se describen más adelante en este tema. En esta tabla se enumeran los caracteres especiales:

CARÁCTER ESPECIAL DESCRIPCIÓN

. punto

? signo de interrogación

* asterisco

+ signo más

() paréntesis

[] corchetes

{} llaves

^ símbolo de intercalación

$ signo de dólar

| barra vertical

\ barra diagonal inversa

Por ejemplo, puede buscar la coincidencia de "Hello?" mediante el patrón "Hello\?" con una barra diagonal delante del signo de
interrogación.
Patrones predefinidos
Los patrones predefinidos proporcionan una manera sencilla de buscar coincidencias con uno de un juego de caracteres o con una
secuencia de varios caracteres. Use el operador de concatenación de cadenas & para combinar sus propias cadenas de texto con
miembros de la enumeración Match :

COINCIDENCIA DE ENUMERACIÓN DESCRIPCIÓN EXPRESIÓN REGULAR

Any Busca la coincidencia con cualquier carácter. .

Comma Busca la coincidencia con una coma. ;

Digit Busca la coincidencia con un único dígito (del "0" \d


al "9").
COINCIDENCIA DE ENUMERACIÓN DESCRIPCIÓN EXPRESIÓN REGULAR

Email Busca la coincidencia con una dirección de .+\@.+\\.[^\\.]{2;}


correo electrónico que contiene un símbolo
"arroba" ("@") y un nombre de dominio que
contiene un punto (".")

Hyphen Busca la coincidencia con un guion. \-

LeftParen Busca la coincidencia con un paréntesis \(


izquierdo "(".

Letter Busca la coincidencia con una letra. \p{L}

MultipleDigits Coincide con uno o más dígitos. \d+

MultipleLetters Busca la coincidencia con una o varias letras. \p{L}+

MultipleNonSpaces Coincide con uno o más caracteres que no \S+


agregan espacios en blanco (no hay espacio,
tabulación o nueva línea).

MultipleSpaces Coincide con uno o varios caracteres que \s+


agregan espacios en blanco (espacio, tabulación
o nueva línea).

NonSpace Busca la coincidencia con un único carácter que \S


no agrega espacios en blanco.

OptionalDigits Busca la coincidencia con cero, uno o más \d*


dígitos.

OptionalLetters Busca la coincidencia con cero, una o más letras. \p{L}*

OptionalNonSpaces Busca la coincidencia con cero, uno o más \S*


caracteres que no agregan espacio en blanco.

OptionalSpaces Busca la coincidencia con cero, uno o más \s*


caracteres que agregan espacio en blanco.

Period Busca la coincidencia con un punto ("."). \.

RightParen Busca la coincidencia con un paréntesis derecho \)


")".

Space Busca la coincidencia con un carácter que \s


agrega espacio en blanco.

Por ejemplo, el patrón "A" & MultipleDigits buscará la coincidencia con la letra "A" seguido de uno o varios dígitos.
Expresiones regulares
El patrón que usan estas funciones es una expresión regular. Los caracteres ordinarios y los patrones predefinidos que se describen
anteriormente en este tema ayudan a crear expresiones regulares.
Las expresiones regulares son muy eficaces, están disponibles en muchos lenguajes de programación y se usan para multitud de
propósitos. También pueden parecerse a menudo como una secuencia aleatoria de signos de puntuación. En este artículo no se
describen todos los aspectos de las expresiones regulares, pero hay una gran cantidad de información, tutoriales y herramientas
disponibles en la Web.
Las expresiones regulares se encuentran en distintos dialectos y PowerApps usa una variante del dialecto de JavaScript. Consulte
Sintaxis de expresiones regulares para obtener una introducción a la sintaxis. Se admiten las subcoincidencias con nombre (que a veces
se denominan grupos de captura con nombre):
Subcoincidencias con nombre: (?<nombre>...)
Referencias inversas con nombre: \k<nombre>
En la tabla de enumeración coincidir anteriormente en este tema, cada enumeración aparece en la misma fila que la expresión regular
correspondiente.

Opciones de coincidencia
Para modificar el comportamiento de estas funciones, puede especificar una o varias opciones, que se pueden combinar mediante el
operador de concatenación de cadenas ( & ).

ENUMERACIÓN MATCHOPTIONS DESCRIPCIÓN IMPACTO EN UNA EXPRESIÓN REGULAR

BeginsWith El patrón debe coincidir desde el principio del Agrega un ^ al principio de la expresión regular.
texto.

Complete Valor predeterminado para IsMatch. El patrón Agrega un ^ al inicio y una $ al final de la
debe coincidir con toda la cadena de texto, de expresión regular.
principio a fin.

Contains Valor predeterminado para Match y MatchAll. No modifica la expresión regular.


El patrón debe aparecer en alguna parte del
texto pero no tiene que ser al principio o al final.

EndsWith El patrón debe coincidir con el final de la cadena Agrega $ al final de la expresión regular.
de texto.

IgnoreCase Trata las letras mayúsculas y minúsculas como No modifica la expresión regular. Esta opción es
idénticas. De forma predeterminada, la equivalente al modificador "i" estándar de las
búsqueda de coincidencia distingue mayúsculas expresiones regulares.
y minúsculas.

Multiline Busca la coincidencia entre varias líneas. No modifica la expresión regular. Esta opción es
equivalente al modificador estándar "m" de las
expresiones regulares.

El uso de MatchAll es equivalente a usar el modificador estándar "g" para las expresiones regulares.

Sintaxis
IsMatch( Text; Pattern [; Options ] )
Text: requerido. La cadena de texto que se va a probar.
Pattern: requerido. Patrón que se va a probar como una cadena de texto. Concatene los patrones predefinidos que define la
enumeración Match o proporcione una expresión regular. Pattern debe ser una fórmula constante sin variables, orígenes de datos u
otras referencias dinámicas que cambian a medida que se ejecuta la aplicación.
Options: valor opcional. Una combinación de cadena de texto de valores de enumeración MatchOptions . De forma predeterminada,
se usa MatchOptions.Complete.
Match( texto; patrón [; Opciones ])
Text: requerido. Cadena de texto que debe coincidir.
Pattern: requerido. Patrón que debe coincidir como una cadena de texto. Concatene los patrones predefinidos que define la
enumeración Match o proporcione una expresión regular. Pattern debe ser una fórmula constante sin variables, orígenes de datos u
otras referencias dinámicas que cambian a medida que se ejecuta la aplicación.
Options: valor opcional. Una combinación de cadena de texto de valores de enumeración MatchOptions . De forma predeterminada,
se usa MatchOptions. Contains .
MatchAll( texto; patrón [; Opciones ])
Text: requerido. Cadena de texto que debe coincidir.
Pattern: requerido. Patrón que debe coincidir como una cadena de texto. Concatene los patrones predefinidos que define la
enumeración Match o proporcione una expresión regular. Pattern debe ser una fórmula constante sin variables, orígenes de datos u
otras referencias dinámicas que cambian a medida que se ejecuta la aplicación.
Options: valor opcional. Una combinación de cadena de texto de valores de enumeración MatchOptions . De forma predeterminada,
se usa MatchOptions. Contains .

Ejemplos de IsMatch
Caracteres normales
Imagine que la aplicación contiene un control Entrada de texto denominado TextInput1. El usuario escribe valores en este control
para almacenarlos en una base de datos.
El usuario escribe Hello world en TextInput1.

FÓRMULA DESCRIPCIÓN RESULTADO

IsMatch( TextInput1.Text; "Hello world" Comprueba si la entrada del usuario coincide true
) exactamente con la cadena "Hello World".

IsMatch( TextInput1.Text; "Good bye" ) Comprueba si la entrada del usuario coincide false
exactamente con la cadena "Good Bye".

IsMatch( TextInput1.Text; "hello"; Comprueba si la entrada del usuario contiene la false


Contains ) palabra "Hello" (con distinción de mayúsculas y
minúsculas).

IsMatch( TextInput1.Text; "hello"; Comprueba si la entrada del usuario contiene la true


Contains & IgnoreCase ) palabra "hello" (con distinción de mayúsculas y
minúsculas).

Patrones predefinidos
FÓRMULA DESCRIPCIÓN RESULTADO

IsMatch( "123-45-7890"; Digit & Digit & Busca la coincidencia con un número de la true
Digit & Hyphen & Digit & Digit & Hyphen Seguridad Social de Estados Unidos.
& Digit & Digit & Digit & Digit )

IsMatch( "joan@contoso.com"; Email ) Busca la coincidencia con una dirección de true


correo electrónico.

IsMatch( "123.456"; MultipleDigits & Busca la coincidencia con una secuencia de true
Period & OptionalDigits ) dígitos, un punto y luego cero o más dígitos.

IsMatch( "123"; MultipleDigits & Period Busca la coincidencia con una secuencia de false
& OptionalDigits ) dígitos, un punto y luego cero o más dígitos. No
aparece un punto en el texto para que coincida,
por lo que no coincide con este patrón.

Expresiones regulares
FÓRMULA DESCRIPCIÓN RESULTADO

IsMatch( "986"; "\d+" ) Coincide con un entero mayor que cero. true

IsMatch( "1.02"; "\d+(\.\d\d)?" ) Busca la coincidencia con un importe de divisa true


positivo. Si la entrada contiene un separador
decimal, la entrada también debe contener dos
caracteres numéricos después del separador
decimal. Por ejemplo, 3,00 es válido, pero no
3,1.

IsMatch( "-4.95"; "(-)?\d+(\.\d\d)?" ) Busca la coincidencia con un importe de divisa true


negativo. Si la entrada contiene un separador
decimal, la entrada también debe contener dos
caracteres numéricos después del separador
decimal.

IsMatch( "111-11-1111"; "\d{3}-\d{2}- Busca la coincidencia con un número de la true


\d{4}" ) Seguridad Social de Estados Unidos. Valida el
formato, el tipo y la longitud del campo de
entrada proporcionado. La cadena que debe
coincidir debe constar de tres caracteres
numéricos seguidos de un guion, dos caracteres
numéricos seguidos de un guión y, a
continuación, cuatro caracteres numéricos.
FÓRMULA DESCRIPCIÓN RESULTADO

IsMatch( "111-111-111"; "\d{3}-\d{2}- Lo mismo que el ejemplo anterior, pero uno de false
\d{4}" ) los guiones está fuera de lugar en la entrada.

IsMatch( "AStrongPasswordNot"; "(?!^[0- Valida una contraseña segura, que debe false
9]\*$)(?!^[a-zA-Z]\*$)([a-zA-Z0-9] contener ocho, nueve o 10 caracteres, además
{8,10})" )
de al menos un dígito y al menos un carácter
alfabético. La cadena no debe contener
caracteres especiales.

IsMatch( "<https://microsoft.com>"; " Valida una dirección URL http, https o ftp. true
(ht&#124;f)tp(s?)\:\/\/\[0-9a-zA-Z\]([-
.\w]\*[0-9a-zA-Z])\*(:(0-9)\*)\*(\/?)
([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]\*)?"
)

Ejemplos de Match y MatchAll


FÓRMULA DESCRIPCIÓN RESULTADO

Match( "Bob Jones Extrae solo la parte de correo electrónico de la {


<bob.jones@contoso.com>"; "<(?<email>" & información de contacto. correo electrónico: "bob.jones@contoso.com",
Match.Email & ")>"
FullMatch: "<bob.jones@contoso.com>",
Subcoincidencias: [ "bob.jones@contoso.com" ],
StartMatch: 11
}

Match( "Bob Jones Extrae solo la parte de correo electrónico de la blank


<InvalidEmailAddress>"; "<(?<email>" & información de contacto. No se encuentra
Match.Email & ")>"
ninguna dirección válida (no hay @ Sign), por lo
que la función devuelve Blank.

Match( Language(); "(<language>\w{2}) Extrae las partes de idioma, script y región de la {


(?:-(?<script>\w{4}))?(?:-(? etiqueta de idioma que devuelve la función lenguaje: "en",
<region>\w{2}))?" )
Language . Estos resultados reflejan el Estados script: en blanco,
Unidos; Consulte la documentación de la región: "EE. UU.",
función de lenguaje para obtener más FullMatch: "en-US",
ejemplos. El operador (?: agrupa los caracteres Subcoincidencias: ["en", "", "EE. UU."],
sin crear otra subcoincidencia. StartMatch: 1
}

Match( "PT2H1M39S"; "PT(?:<hours>\d+)H)? Extrae las horas, los minutos y los segundos de {
(?:(?<minutes>\d+)M)?(?:(? un valor de duración ISO 8601. Los números horas: "2",
<seconds>\d+)S)?" )
extraídos siguen en una cadena de texto; Utilice minutos: "1",
la función Value para convertirlo en un número segundos: "39",
antes de que se realicen operaciones FullMatch: "PT2H1M39S",
matemáticas en él. Subcoincidencias: [ "2", "1", "39" ],
StartMatch: 1
}

Vamos a profundizar en el último ejemplo. Si desea convertir esta cadena en un valor de fecha y hora mediante la función Time , debe
pasar individualmente las coincidencias con nombre. Para ello, puede usar la función with que funciona en el registro que coincide con
las devoluciones:

With(
Match( "PT2H1M39S"; "PT(?:(?<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" );
Time( Value( hours ); Value( minutes ); Value( seconds ) )
)

En estos ejemplos, agregue un control botón , establezca su propiedad alseleccionar en esta fórmula y, a continuación, seleccione el
botón:

Set( pangram; "The quick brown fox jumps over the lazy dog." )
FÓRMULA DESCRIPCIÓN RESULTADO

Match( pangram; "THE"; IgnoreCase ) Busque todas las coincidencias de "THE" en la {


cadena de texto que contiene la variable FullMatch: "The",
pangram . La cadena contiene dos Subcoincidencias: [ ],
coincidencias, pero solo se devuelve la primera StartMatch: 32
porque está usando Match y not MatchAll. La }
columna submatches está vacía porque no se
definió ninguna subcoincidencia.

MatchAll( pangram; "the" ) Busque todas las coincidencias de "The" en la


cadena de texto que contiene la variable
pangram . La prueba distingue entre
mayúsculas y minúsculas, por lo que solo se
encuentra la segunda instancia de "The". La
columna submatches está vacía porque no se
definió ninguna subcoincidencia.

MatchAll( pangram; "the"; IgnoreCase ) Busque todas las coincidencias de "The" en la


cadena de texto que contiene la variable
pangram . En este caso, la prueba no distingue
entre mayúsculas y minúsculas, por lo que se
encuentran ambas instancias de la palabra. La
columna submatches está vacía porque no se
definió ninguna subcoincidencia.

MatchAll( pangram; "\b\wo\w\b" ) Busca todas las palabras de tres letras con una
"o" en el centro. Tenga en cuenta que "Brown"
se excluye porque no es una palabra de tres
letras y, por lo tanto, no coincide con "\b" (límite
de palabras).

Match( pangram; "\b\wo\w\b\s\*(? Coincide con todos los caracteres entre "Fox" y {
<between>\w.+\w)\s\*\b\wo\w\b" ) "Dog". entre: "salta sobre el Lazy",
FullMatch: "Fox salta sobre el perro diferido ",
Subcoincidencias: ["salta sobre el Lazy"],
StartMatch: 17
}

Para ver los resultados de MatchAll en una galería:


1. En una pantalla vacía, inserte un control Galería vertical en blanco.
2. Establezca la propiedad Items de la galería en MatchAll (pangram, "\w +") o MatchAll (pangram, MultipleLetters) .
3. Seleccione "agregar un elemento de la pestaña insertar" en el centro del control Galería para seleccionar la plantilla de la galería.
4. Agregue un control etiqueta a la plantilla de la galería.
5. Establezca la propiedad Text de la etiqueta en ThisItem. FullMatch.
La galería se rellena con cada palabra en el texto de ejemplo. Cambie el tamaño de la plantilla de la galería y del control de etiqueta
para ver todas las palabras de una pantalla.
Funciones IsMatch, Match y MatchAll en PowerApps
26/11/2019 • 25 minutes to read

Comprueba si hay coincidencias o extrae partes de una cadena de texto basándose en un patrón.

Descripción
La función IsMatch comprueba si una cadena de texto coincide con un patrón que puede incluir caracteres normales, patrones
predefinidos o una expresión regular. Las funciones Match y MatchAll devuelven lo que coincidía, incluidas las subcoincidencias.
Use IsMatch para validar que un usuario ha escrito en un control Entrada de texto . Por ejemplo, puede confirmar si el usuario ha
escrito una dirección de correo electrónico válida antes de que el resultado se guarde en el origen de datos. Si la entrada no coincide con
los criterios, agregue otros controles que pidan al usuario que corrija la entrada.
Use Match para extraer la primera cadena de texto que coincida con un patrón y MatchAll para extraer todas las cadenas de texto que
coincidan. También puede extraer coincidencias secundarias para analizar cadenas complejas.
Match devuelve un registro de información para la primera coincidencia encontrada y MatchAll devuelve una tabla de registros para
cada coincidencia encontrada. El registro o los registros contienen:

COLUMNA TIPO DESCRIPCIÓN

coincidencia secundaria‑o sub‑coincidencias Texto Cada subcoincidencia con nombre tendrá su


propia columna. Cree una subcoincidencia con
nombre mediante (?<nombre> ... ) en la
expresión regular. Si una subcoincidencia con
nombre tiene el mismo nombre que una de las
columnas predefinidas (a continuación), la
subcoincidencia tiene prioridad y se genera una
advertencia. Para evitar esta advertencia,
cambie el nombre de la subcoincidencia.

FullMatch Texto Toda la cadena de texto con la que se encontró


una coincidencia.

StartMatch Número Posición inicial de la coincidencia dentro de la


cadena de texto de entrada. El primer carácter
de la cadena devuelve 1.

Subcoincidencias Tabla de texto de una sola columna ( valorde Tabla de subcoincidencias con nombre y sin
columna) nombre en el orden en que aparecen en la
expresión regular. Por lo general, las
subcoincidencias con nombre son más fáciles de
trabajar con y se recomiendan. Use las funciones
forall o Last( firstn( ... )) para trabajar con una
subcoincidencia individual. Si no se definen
subcoincidencias en la expresión regular, esta
tabla estará presente pero vacía.

Estas funciones admiten MatchOptions. De forma predeterminada:


Estas funciones realizan una coincidencia que distingue entre mayúsculas y minúsculas. Use ignoreCase para realizar coincidencias
que no distinguen mayúsculas de minúsculas.
IsMatch coincide con toda la cadena de texto (Complete MatchOption), mientras que Match y MatchAll buscan una coincidencia
en cualquier parte de la cadena de texto (contiene MatchOption). Use Complete, Contains, BeginsWitho EndsWith según
corresponda para su escenario.
IsMatch devuelve true si la cadena de texto coincide con el patrón o false si no es así. Match devuelve un valor en blanco si no se
encuentra ninguna coincidencia que se pueda probar con la función esblanco . MatchAll devuelve una tabla vacía si no se encuentra
ninguna coincidencia que se pueda probar con la función IsEmpty .
Si usa MatchAll para dividir una cadena de texto, considere la posibilidad de usar la función Split , que es más fácil de usar y más
rápida.

Patrones
La clave para usar estas funciones es describir el patrón que debe coincidir. El patrón en una cadena de texto se describe como una
combinación de:
Caracteres normales, como "abc" o "123" .
Patrones predefinidos, como Letter, MultipleDigits o Email. (La enumeración Match define estos patrones).
Códigos de expresión regular, como "\d + \s + \d +" o "[a-z] +" .
Combine estos elementos mediante el operador de concatenación de cadenas & . Por ejemplo, "abc" & Digit & "\s+" es un patrón
válido que busca la coincidencia de los caracteres "a", "b" y "c", seguido de un dígito del 0 al 9, seguido de al menos un carácter de
espacio en blanco.
Caracteres normales
El patrón más sencillo es una secuencia de caracteres normales que deben coincidir exactamente.
Por ejemplo, cuando se usa con la función IsMatch , la cadena "Hello" coincide exactamente con el patrón "Hello" . Ni más ni menos. La
cadena "hello!" no coincide con el patrón debido al signo de exclamación del final y porque el caso es incorrecto para la letra "h".
(Consulte MatchOptions para ver formas de modificar este comportamiento).
En el lenguaje del patrón, algunos caracteres están reservados para fines especiales. Para usar estos caracteres, anteponga al carácter un
\ (barra diagonal inversa) para indicar que el carácter debe tomarse literalmente, o bien puede usar uno de los patrones predefinidos que
se describen más adelante en este tema. En esta tabla se enumeran los caracteres especiales:

CARÁCTER ESPECIAL DESCRIPCIÓN

. punto

? signo de interrogación

* asterisco

+ signo más

() paréntesis

[] corchetes

{} llaves

^ símbolo de intercalación

$ signo de dólar

| barra vertical

\ barra diagonal inversa

Por ejemplo, puede buscar la coincidencia de "Hello?" mediante el patrón "Hello\?" con una barra diagonal delante del signo de
interrogación.
Patrones predefinidos
Los patrones predefinidos proporcionan una manera sencilla de buscar coincidencias con uno de un juego de caracteres o con una
secuencia de varios caracteres. Use el operador de concatenación de cadenas & para combinar sus propias cadenas de texto con
miembros de la enumeración Match :

COINCIDENCIA DE ENUMERACIÓN DESCRIPCIÓN EXPRESIÓN REGULAR

Any Busca la coincidencia con cualquier carácter. .

Comma Busca la coincidencia con una coma. ;

Digit Busca la coincidencia con un único dígito (del "0" \d


al "9").

Email Busca la coincidencia con una dirección de .+\@.+\\.[^\\.]{2;}


correo electrónico que contiene un símbolo
"arroba" ("@") y un nombre de dominio que
contiene un punto (".")
COINCIDENCIA DE ENUMERACIÓN DESCRIPCIÓN EXPRESIÓN REGULAR

Hyphen Busca la coincidencia con un guion. \-

LeftParen Busca la coincidencia con un paréntesis \(


izquierdo "(".

Letter Busca la coincidencia con una letra. \p{L}

MultipleDigits Coincide con uno o más dígitos. \d+

MultipleLetters Busca la coincidencia con una o varias letras. \p{L}+

MultipleNonSpaces Coincide con uno o más caracteres que no \S+


agregan espacios en blanco (no hay espacio,
tabulación o nueva línea).

MultipleSpaces Coincide con uno o varios caracteres que \s+


agregan espacios en blanco (espacio, tabulación
o nueva línea).

NonSpace Busca la coincidencia con un único carácter que \S


no agrega espacios en blanco.

OptionalDigits Busca la coincidencia con cero, uno o más \d*


dígitos.

OptionalLetters Busca la coincidencia con cero, una o más letras. \p{L}*

OptionalNonSpaces Busca la coincidencia con cero, uno o más \S*


caracteres que no agregan espacio en blanco.

OptionalSpaces Busca la coincidencia con cero, uno o más \s*


caracteres que agregan espacio en blanco.

Period Busca la coincidencia con un punto ("."). \.

RightParen Busca la coincidencia con un paréntesis derecho \)


")".

Space Busca la coincidencia con un carácter que \s


agrega espacio en blanco.

Por ejemplo, el patrón "A" & MultipleDigits buscará la coincidencia con la letra "A" seguido de uno o varios dígitos.
Expresiones regulares
El patrón que usan estas funciones es una expresión regular. Los caracteres ordinarios y los patrones predefinidos que se describen
anteriormente en este tema ayudan a crear expresiones regulares.
Las expresiones regulares son muy eficaces, están disponibles en muchos lenguajes de programación y se usan para multitud de
propósitos. También pueden parecerse a menudo como una secuencia aleatoria de signos de puntuación. En este artículo no se
describen todos los aspectos de las expresiones regulares, pero hay una gran cantidad de información, tutoriales y herramientas
disponibles en la Web.
Las expresiones regulares se encuentran en distintos dialectos y PowerApps usa una variante del dialecto de JavaScript. Consulte
Sintaxis de expresiones regulares para obtener una introducción a la sintaxis. Se admiten las subcoincidencias con nombre (que a veces
se denominan grupos de captura con nombre):
Subcoincidencias con nombre: (?<nombre>...)
Referencias inversas con nombre: \k<nombre>
En la tabla de enumeración coincidir anteriormente en este tema, cada enumeración aparece en la misma fila que la expresión regular
correspondiente.

Opciones de coincidencia
Para modificar el comportamiento de estas funciones, puede especificar una o varias opciones, que se pueden combinar mediante el
operador de concatenación de cadenas ( & ).
ENUMERACIÓN MATCHOPTIONS DESCRIPCIÓN IMPACTO EN UNA EXPRESIÓN REGULAR

BeginsWith El patrón debe coincidir desde el principio del Agrega un ^ al principio de la expresión regular.
texto.

Complete Valor predeterminado para IsMatch. El patrón Agrega un ^ al inicio y una $ al final de la
debe coincidir con toda la cadena de texto, de expresión regular.
principio a fin.

Contains Valor predeterminado para Match y MatchAll. No modifica la expresión regular.


El patrón debe aparecer en alguna parte del
texto pero no tiene que ser al principio o al final.

EndsWith El patrón debe coincidir con el final de la cadena Agrega $ al final de la expresión regular.
de texto.

IgnoreCase Trata las letras mayúsculas y minúsculas como No modifica la expresión regular. Esta opción es
idénticas. De forma predeterminada, la equivalente al modificador "i" estándar de las
búsqueda de coincidencia distingue mayúsculas expresiones regulares.
y minúsculas.

Multiline Busca la coincidencia entre varias líneas. No modifica la expresión regular. Esta opción es
equivalente al modificador estándar "m" de las
expresiones regulares.

El uso de MatchAll es equivalente a usar el modificador estándar "g" para las expresiones regulares.

Sintaxis
IsMatch( Text; Pattern [; Options ] )
Text: requerido. La cadena de texto que se va a probar.
Pattern: requerido. Patrón que se va a probar como una cadena de texto. Concatene los patrones predefinidos que define la
enumeración Match o proporcione una expresión regular. Pattern debe ser una fórmula constante sin variables, orígenes de datos u
otras referencias dinámicas que cambian a medida que se ejecuta la aplicación.
Options: valor opcional. Una combinación de cadena de texto de valores de enumeración MatchOptions . De forma predeterminada,
se usa MatchOptions.Complete.
Match( texto; patrón [; Opciones ])
Text: requerido. Cadena de texto que debe coincidir.
Pattern: requerido. Patrón que debe coincidir como una cadena de texto. Concatene los patrones predefinidos que define la
enumeración Match o proporcione una expresión regular. Pattern debe ser una fórmula constante sin variables, orígenes de datos u
otras referencias dinámicas que cambian a medida que se ejecuta la aplicación.
Options: valor opcional. Una combinación de cadena de texto de valores de enumeración MatchOptions . De forma predeterminada,
se usa MatchOptions. Contains .
MatchAll( texto; patrón [; Opciones ])
Text: requerido. Cadena de texto que debe coincidir.
Pattern: requerido. Patrón que debe coincidir como una cadena de texto. Concatene los patrones predefinidos que define la
enumeración Match o proporcione una expresión regular. Pattern debe ser una fórmula constante sin variables, orígenes de datos u
otras referencias dinámicas que cambian a medida que se ejecuta la aplicación.
Options: valor opcional. Una combinación de cadena de texto de valores de enumeración MatchOptions . De forma predeterminada,
se usa MatchOptions. Contains .

Ejemplos de IsMatch
Caracteres normales
Imagine que la aplicación contiene un control Entrada de texto denominado TextInput1. El usuario escribe valores en este control
para almacenarlos en una base de datos.
El usuario escribe Hello world en TextInput1.

FÓRMULA DESCRIPCIÓN RESULTADO

IsMatch( TextInput1.Text; "Hello world" Comprueba si la entrada del usuario coincide true
) exactamente con la cadena "Hello World".
FÓRMULA DESCRIPCIÓN RESULTADO

IsMatch( TextInput1.Text; "Good bye" ) Comprueba si la entrada del usuario coincide false
exactamente con la cadena "Good Bye".

IsMatch( TextInput1.Text; "hello"; Comprueba si la entrada del usuario contiene la false


Contains ) palabra "Hello" (con distinción de mayúsculas y
minúsculas).

IsMatch( TextInput1.Text; "hello"; Comprueba si la entrada del usuario contiene la true


Contains & IgnoreCase ) palabra "hello" (con distinción de mayúsculas y
minúsculas).

Patrones predefinidos
FÓRMULA DESCRIPCIÓN RESULTADO

IsMatch( "123-45-7890"; Digit & Digit & Busca la coincidencia con un número de la true
Digit & Hyphen & Digit & Digit & Hyphen Seguridad Social de Estados Unidos.
& Digit & Digit & Digit & Digit )

IsMatch( "joan@contoso.com"; Email ) Busca la coincidencia con una dirección de true


correo electrónico.

IsMatch( "123.456"; MultipleDigits & Busca la coincidencia con una secuencia de true
Period & OptionalDigits ) dígitos, un punto y luego cero o más dígitos.

IsMatch( "123"; MultipleDigits & Period Busca la coincidencia con una secuencia de false
& OptionalDigits ) dígitos, un punto y luego cero o más dígitos. No
aparece un punto en el texto para que coincida,
por lo que no coincide con este patrón.

Expresiones regulares
FÓRMULA DESCRIPCIÓN RESULTADO

IsMatch( "986"; "\d+" ) Coincide con un entero mayor que cero. true

IsMatch( "1.02"; "\d+(\.\d\d)?" ) Busca la coincidencia con un importe de divisa true


positivo. Si la entrada contiene un separador
decimal, la entrada también debe contener dos
caracteres numéricos después del separador
decimal. Por ejemplo, 3,00 es válido, pero no
3,1.

IsMatch( "-4.95"; "(-)?\d+(\.\d\d)?" ) Busca la coincidencia con un importe de divisa true


negativo. Si la entrada contiene un separador
decimal, la entrada también debe contener dos
caracteres numéricos después del separador
decimal.

IsMatch( "111-11-1111"; "\d{3}-\d{2}- Busca la coincidencia con un número de la true


\d{4}" ) Seguridad Social de Estados Unidos. Valida el
formato, el tipo y la longitud del campo de
entrada proporcionado. La cadena que debe
coincidir debe constar de tres caracteres
numéricos seguidos de un guion, dos caracteres
numéricos seguidos de un guión y, a
continuación, cuatro caracteres numéricos.

IsMatch( "111-111-111"; "\d{3}-\d{2}- Lo mismo que el ejemplo anterior, pero uno de false
\d{4}" ) los guiones está fuera de lugar en la entrada.

IsMatch( "AStrongPasswordNot"; "(?!^[0- Valida una contraseña segura, que debe false
9]\*$)(?!^[a-zA-Z]\*$)([a-zA-Z0-9] contener ocho, nueve o 10 caracteres, además
{8,10})" )
de al menos un dígito y al menos un carácter
alfabético. La cadena no debe contener
caracteres especiales.
FÓRMULA DESCRIPCIÓN RESULTADO

IsMatch( "<https://microsoft.com>"; " Valida una dirección URL http, https o ftp. true
(ht&#124;f)tp(s?)\:\/\/\[0-9a-zA-Z\]([-
.\w]\*[0-9a-zA-Z])\*(:(0-9)\*)\*(\/?)
([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]\*)?"
)

Ejemplos de Match y MatchAll


FÓRMULA DESCRIPCIÓN RESULTADO

Match( "Bob Jones Extrae solo la parte de correo electrónico de la {


<bob.jones@contoso.com>"; "<(?<email>" & información de contacto. correo electrónico: "bob.jones@contoso.com",
Match.Email & ")>"
FullMatch: "<bob.jones@contoso.com>",
Subcoincidencias: [ "bob.jones@contoso.com" ],
StartMatch: 11
}

Match( "Bob Jones Extrae solo la parte de correo electrónico de la blank


<InvalidEmailAddress>"; "<(?<email>" & información de contacto. No se encuentra
Match.Email & ")>"
ninguna dirección válida (no hay @ Sign), por lo
que la función devuelve Blank.

Match( Language(); "(<language>\w{2}) Extrae las partes de idioma, script y región de la {


(?:-(?<script>\w{4}))?(?:-(? etiqueta de idioma que devuelve la función lenguaje: "en",
<region>\w{2}))?" )
Language . Estos resultados reflejan el Estados script: en blanco,
Unidos; Consulte la documentación de la región: "EE. UU.",
función de lenguaje para obtener más FullMatch: "en-US",
ejemplos. El operador (?: agrupa los caracteres Subcoincidencias: ["en", "", "EE. UU."],
sin crear otra subcoincidencia. StartMatch: 1
}

Match( "PT2H1M39S"; "PT(?:<hours>\d+)H)? Extrae las horas, los minutos y los segundos de {
(?:(?<minutes>\d+)M)?(?:(? un valor de duración ISO 8601. Los números horas: "2",
<seconds>\d+)S)?" )
extraídos siguen en una cadena de texto; Utilice minutos: "1",
la función Value para convertirlo en un número segundos: "39",
antes de que se realicen operaciones FullMatch: "PT2H1M39S",
matemáticas en él. Subcoincidencias: [ "2", "1", "39" ],
StartMatch: 1
}

Vamos a profundizar en el último ejemplo. Si desea convertir esta cadena en un valor de fecha y hora mediante la función Time , debe
pasar individualmente las coincidencias con nombre. Para ello, puede usar la función with que funciona en el registro que coincide con
las devoluciones:

With(
Match( "PT2H1M39S"; "PT(?:(?<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" );
Time( Value( hours ); Value( minutes ); Value( seconds ) )
)

En estos ejemplos, agregue un control botón , establezca su propiedad alseleccionar en esta fórmula y, a continuación, seleccione el
botón:

Set( pangram; "The quick brown fox jumps over the lazy dog." )

FÓRMULA DESCRIPCIÓN RESULTADO

Match( pangram; "THE"; IgnoreCase ) Busque todas las coincidencias de "THE" en la {


cadena de texto que contiene la variable FullMatch: "The",
pangram . La cadena contiene dos Subcoincidencias: [ ],
coincidencias, pero solo se devuelve la primera StartMatch: 32
porque está usando Match y not MatchAll. La }
columna submatches está vacía porque no se
definió ninguna subcoincidencia.
FÓRMULA DESCRIPCIÓN RESULTADO

MatchAll( pangram; "the" ) Busque todas las coincidencias de "The" en la


cadena de texto que contiene la variable
pangram . La prueba distingue entre
mayúsculas y minúsculas, por lo que solo se
encuentra la segunda instancia de "The". La
columna submatches está vacía porque no se
definió ninguna subcoincidencia.

MatchAll( pangram; "the"; IgnoreCase ) Busque todas las coincidencias de "The" en la


cadena de texto que contiene la variable
pangram . En este caso, la prueba no distingue
entre mayúsculas y minúsculas, por lo que se
encuentran ambas instancias de la palabra. La
columna submatches está vacía porque no se
definió ninguna subcoincidencia.

MatchAll( pangram; "\b\wo\w\b" ) Busca todas las palabras de tres letras con una
"o" en el centro. Tenga en cuenta que "Brown"
se excluye porque no es una palabra de tres
letras y, por lo tanto, no coincide con "\b" (límite
de palabras).

Match( pangram; "\b\wo\w\b\s\*(? Coincide con todos los caracteres entre "Fox" y {
<between>\w.+\w)\s\*\b\wo\w\b" ) "Dog". entre: "salta sobre el Lazy",
FullMatch: "Fox salta sobre el perro diferido ",
Subcoincidencias: ["salta sobre el Lazy"],
StartMatch: 17
}

Para ver los resultados de MatchAll en una galería:


1. En una pantalla vacía, inserte un control Galería vertical en blanco.
2. Establezca la propiedad Items de la galería en MatchAll (pangram, "\w +") o MatchAll (pangram, MultipleLetters) .
3. Seleccione "agregar un elemento de la pestaña insertar" en el centro del control Galería para seleccionar la plantilla de la galería.
4. Agregue un control etiqueta a la plantilla de la galería.
5. Establezca la propiedad Text de la etiqueta en ThisItem. FullMatch.
La galería se rellena con cada palabra en el texto de ejemplo. Cambie el tamaño de la plantilla de la galería y del control de
etiqueta para ver todas las palabras de una pantalla.
Funciones Average, Max, Min, StdevP, Sum y VarP de
PowerApps
08/10/2019 • 4 minutes to read

Funciones de agregado que resumen un conjunto de números.

Descripción
La función Average calcula el promedio, o media aritmética, de los argumentos.
La función Max encuentra el valor máximo.
La función Min encuentra el valor mínimo.
La función Sum calcula la suma de los argumentos.
La función StdevP calcula la desviación estándar de los argumentos.
La función VarP calcula la varianza de los argumentos.
Puede proporcionar los valores de estas funciones como:
Argumentos independientes. Por ejemplo, Sum ( 1; 2; 3 ) da 6 como resultado.
Una tabla y una fórmula para operar sobre esa tabla. La suma total se calculará según los valores de la fórmula
para cada registro.
Los campos de registro que se están procesando actualmente estarán disponibles en la formula. Solo tiene que
hacer referencia a los campos por su nombre, como con cualquier otro valor. También puede hacer referencia a
propiedades de control y a otros valores desde toda la aplicación. Para obtener más detalles, vea los ejemplos
siguientes y trabajar con el ámbito de registros.
Estas funciones solo operan sobre valores numéricos. Se omiten otros tipos de valores, como cadenas o registros.
Use la función Value para convertir en número una cadena.
Las funciones Average, Max, Min y Sum se pueden delegar cuando se usan con un origen de datos que admite la
delegación de dichas funciones. Sin embargo, StdevP y VarP no se puede delegar en ningún origen de datos. Si no
se admite la delegación, solo se recuperará la primera parte de los datos y, después, la función se aplicará
localmente. Es posible que el resultado no represente la situación completa. Aparece una advertencia de delegación
durante la creación para recordarle esta limitación y sugerirle que cambie a alternativas que puedan delegarse
siempre que sea posible. Para más información, consulte la introducción a la delegación.

Sintaxis
Average( NumericalFormula1; [ NumericalFormula2; ... ] )
Max( NumericalFormula1; [ NumericalFormula2; ... ] )
Min( NumericalFormula1; [ NumericalFormula2; ... ] )
Sum ( NumericalFormula1; [ NumericalFormula2; ... ] )
StdevP ( NumericalFormula1; [ NumericalFormula2; ... ] )
VarP ( NumericalFormula1; [ NumericalFormula2; ... ] )
NumericalFormula (s) : requerido. Los valores numéricos en que se va a operar.
Average( Table; NumericalFormula )
Max( Table; NumericalFormula )
Min( Table; NumericalFormula )
Sum ( Table; NumericalFormula )
StdevP ( Table; NumericalFormula )
VarP ( Table; NumericalFormula )
Table: requerido. La tabla sobre la cual se opera.
NumericalFormula: requerido. La fórmula que se evalúa en cada registro. El resultado de esta fórmula se usa
para la agregación. Puede usar columnas de la tabla en la fórmula.

Ejemplos
Paso a paso
Imaginemos que tiene un origen de datos llamado Sales que contiene una columna CostPerUnit y una columna
UnitsSold, y establece la propiedad Text de una etiqueta en esta función:
Sum (Sales; CostPerUnit * UnitsSold)
Para mostrar las ventas totales, la etiqueta multiplicaría los valores de esas columnas para cada registro y luego
agregaría juntos los resultados de todos los registros:

Pongamos otro ejemplo: imaginemos que tiene controles deslizantes llamados Slider1, Slider2 y Slider3 y una
etiqueta con la propiedad Text establecida en esta fórmula:
Sum (Slider1.Value; Slider2.Value; Slider3.Value)
La etiqueta mostraría la suma de todos los valores en los que se establecieron los controles deslizantes.
Funciones Left, Mid y Right en PowerApps
08/10/2019 • 5 minutes to read

Extrae la parte izquierda, central o derecha de una cadena de texto.

Descripción
Las funciones Left, Mid y Right devuelven una parte de una cadena.
Left: devuelve los caracteres del principio de una cadena.
Mid: devuelve los caracteres centrales de una cadena.
Right: devuelve los caracteres del final de una cadena.
Si especifica una cadena como argumento, la función devuelve la parte que ha solicitado de la cadena. Si especifica
una tabla de una columna que contiene cadenas, la función devuelve una tabla de una columna de las partes que
solicitó de esas cadenas. Si especifica una tabla con varias columnas, puede convertirla en una tabla de una
columna, como se describe en la sección sobre cómo trabajar con tablas.
Si la posición inicial es negativa o sobrepasa el final de la cadena, Mid devuelve blank. Puede comprobar la longitud
de una cadena mediante la función Len . Si se solicitan más caracteres de los que contiene la cadena, la función
devuelve tantos caracteres como sea posible.

Sintaxis
Left( String; NumberOfCharacters )
Mid( String; StartingPosition; NumberOfCharacters )
Right( String; NumberOfCharacters )
String: requerido. La cadena hasta la cual se extrae el resultado o desde la que se extrae el resultado.
StartingPosition: requerido (solo Mid). La posición inicial. El primer carácter de la cadena ocupa la posición 1.
NumberOfCharacters : requerido (soloizquierda y derecha ). El número de caracteres que se va a devolver. Si se
omite para la función Mid , la función devuelve la parte desde la posición inicial hasta el final de la cadena.
Left( SingleColumnTable; NumberOfCharacters )
Mid( SingleColumnTable; StartingPosition; NumberOfCharacters )
Right( SingleColumnTable; NumberOfCharacters )
SingleColumnTable: requerido. Una tabla de una columna de cadenas de la cual se extraen los resultados.
StartingPosition: requerido (solo Mid). La posición inicial. El primer carácter de la cadena ocupa la posición 1.
NumberOfCharacters : requerido (soloizquierda y derecha ). El número de caracteres que se va a devolver. Si se
omite para la función Mid , la función devuelve la parte desde la posición inicial hasta el final de la cadena.

Ejemplos
Cadena única
En los ejemplos de esta sección se usa un control de entrada de texto como origen de datos. El control se denomina
Author y contiene la cadena "E". E. Cummings".
FÓRMULA DESCRIPCIÓN RESULTADO

Left( Author.Text; 5 ) Extrae un máximo de cinco caracteres "E. E".


del principio de la cadena.

Mid( Author.Text; 7; 4 ) Extrae un máximo de cuatro caracteres "Cumm"


de la cadena, empezando por el séptimo
carácter.

MID (Author. Text, 7) Extrae todos los caracteres, empezando "Cummings"


por el séptimo carácter, de la cadena.

Right( Author.Text; 5 ) Extrae un máximo de cinco caracteres "mings"


del final de la cadena.

Tabla de una sola columna


En cada ejemplo de esta sección se extraen cadenas de la columna Address de este origen de datos, denominado
People, y se devuelve una tabla de una columna que contiene los resultados:

FÓRMULA DESCRIPCIÓN RESULTADO

Left( Extrae los ocho primeros caracteres de


ShowColumns( People; "Address" ); cada cadena.
8)

Mid( Extrae los siete caracteres centrales de


ShowColumns( People; "Address" ); cada cadena, comenzando por el quinto
5; 7 ) carácter.

Right( Extrae los siete últimos caracteres de


ShowColumns( People; "Address" ); cada cadena.
7)

Ejemplo paso a paso


1. Importe o cree una colección denominada Inventory y muéstrela en una galería, como se describe en el
primer procedimiento en Show images and text in a gallery (Mostrar imágenes y texto en una galería).
2. Establezca la propiedad Text de la etiqueta inferior de la galería en esta función:
Right(ThisItem.ProductName; 3)
La etiqueta muestra los tres últimos caracteres de cada nombre de producto.
Funciones Average, Max, Min, StdevP, Sum y VarP de
PowerApps
08/10/2019 • 4 minutes to read

Funciones de agregado que resumen un conjunto de números.

Descripción
La función Average calcula el promedio, o media aritmética, de los argumentos.
La función Max encuentra el valor máximo.
La función Min encuentra el valor mínimo.
La función Sum calcula la suma de los argumentos.
La función StdevP calcula la desviación estándar de los argumentos.
La función VarP calcula la varianza de los argumentos.
Puede proporcionar los valores de estas funciones como:
Argumentos independientes. Por ejemplo, Sum ( 1; 2; 3 ) da 6 como resultado.
Una tabla y una fórmula para operar sobre esa tabla. La suma total se calculará según los valores de la fórmula
para cada registro.
Los campos de registro que se están procesando actualmente estarán disponibles en la formula. Solo tiene que
hacer referencia a los campos por su nombre, como con cualquier otro valor. También puede hacer referencia a
propiedades de control y a otros valores desde toda la aplicación. Para obtener más detalles, vea los ejemplos
siguientes y trabajar con el ámbito de registros.
Estas funciones solo operan sobre valores numéricos. Se omiten otros tipos de valores, como cadenas o registros.
Use la función Value para convertir en número una cadena.
Las funciones Average, Max, Min y Sum se pueden delegar cuando se usan con un origen de datos que admite la
delegación de dichas funciones. Sin embargo, StdevP y VarP no se puede delegar en ningún origen de datos. Si no
se admite la delegación, solo se recuperará la primera parte de los datos y, después, la función se aplicará
localmente. Es posible que el resultado no represente la situación completa. Aparece una advertencia de delegación
durante la creación para recordarle esta limitación y sugerirle que cambie a alternativas que puedan delegarse
siempre que sea posible. Para más información, consulte la introducción a la delegación.

Sintaxis
Average( NumericalFormula1; [ NumericalFormula2; ... ] )
Max( NumericalFormula1; [ NumericalFormula2; ... ] )
Min( NumericalFormula1; [ NumericalFormula2; ... ] )
Sum ( NumericalFormula1; [ NumericalFormula2; ... ] )
StdevP ( NumericalFormula1; [ NumericalFormula2; ... ] )
VarP ( NumericalFormula1; [ NumericalFormula2; ... ] )
NumericalFormula (s) : requerido. Los valores numéricos en que se va a operar.
Average( Table; NumericalFormula )
Max( Table; NumericalFormula )
Min( Table; NumericalFormula )
Sum ( Table; NumericalFormula )
StdevP ( Table; NumericalFormula )
VarP ( Table; NumericalFormula )
Table: requerido. La tabla sobre la cual se opera.
NumericalFormula: requerido. La fórmula que se evalúa en cada registro. El resultado de esta fórmula se usa
para la agregación. Puede usar columnas de la tabla en la fórmula.

Ejemplos
Paso a paso
Imaginemos que tiene un origen de datos llamado Sales que contiene una columna CostPerUnit y una columna
UnitsSold, y establece la propiedad Text de una etiqueta en esta función:
Sum (Sales; CostPerUnit * UnitsSold)
Para mostrar las ventas totales, la etiqueta multiplicaría los valores de esas columnas para cada registro y luego
agregaría juntos los resultados de todos los registros:

Pongamos otro ejemplo: imaginemos que tiene controles deslizantes llamados Slider1, Slider2 y Slider3 y una
etiqueta con la propiedad Text establecida en esta fórmula:
Sum (Slider1.Value; Slider2.Value; Slider3.Value)
La etiqueta mostraría la suma de todos los valores en los que se establecieron los controles deslizantes.
Funciones Day, Month, Year, Hour, Minute, Second y
Weekday en PowerApps
08/10/2019 • 4 minutes to read

Devuelve los componentes individuales de un valor de fecha y hora.

Descripción
La función Day devuelve el componente de día de un valor de fecha y hora, comprendido entre 1 y 31.
La función Month devuelve el componente de mes de un valor de fecha y hora, comprendido entre 1 y 12.
La función Year devuelve el componente de año de un valor de fecha y hora, a partir de 1900.
La función Hour devuelve el componente de hora de un valor de fecha y hora, comprendido entre 0 (12:00 a. m.) y
23 (11:00 p. m).
La función Minute devuelve el componente de minuto de un valor de fecha y hora, comprendido entre 0 y 59.
La función Second devuelve el componente de segundo de un valor de fecha y hora, comprendido entre 0 y 59.
La función Weekday devuelve el día de la semana de un valor de fecha y hora. De forma predeterminada, el
resultado está comprendido entre 1 (domingo) y 7 (sábado). Puede especificar un intervalo diferente con un código
de la función Weekday de la semana de Microsoft Excel o un valor de enumeración de StartOfWeek:

CÓDIGO DE EXCEL ENUMERACIÓN DE STARTOFWEEK DESCRIPCIÓN

1, 17 StartOfWeek.Sunday Números del 1 (domingo) al 7 (sábado).


Predeterminado.

2, 11 StartOfWeek.Monday Números del 1 (lunes) al 7 (domingo).

3 StartOfWeek.MondayZero Números del 0 (lunes) al 6 (domingo).

12 StartOfWeek.Tuesday Números del 1 (martes) al 7 (lunes).

13 StartOfWeek.Wednesday Números del 1 (miércoles) al 7 (martes).

14 StartOfWeek.Thursday Números del 1 (jueves) al 7 (miércoles).

15 StartOfWeek.Friday Números del 1 (viernes) al 7 (jueves).

16 StartOfWeek.Saturday Números del 1 (sábado) al 7 (viernes).

Todas las funciones devuelven un número.


Consulte cómo trabajar con fechas y horas para más información.

Sintaxis
Day( DateTime )
Month( DateTime )
Year( DateTime )
Hour( DateTime )
Minute( DateTime )
Second( DateTime )
DateTime: requerido. Valor de fecha y hora con el que operar.
Weekday( DateTime [; WeekdayFirst ] )
DateTime: requerido. Valor de fecha y hora con el que operar.
WeekdayFirst: opcional. Código de Excel que especifica qué día comienza la semana. Si no se indica, se usará 1
(primero el domingo).

Ejemplos
En el ejemplo siguiente, la hora actual es las 3:59:37 p. m. del jueves, 9 de abril de 2015.

FÓRMULA DESCRIPCIÓN RESULTADO

Year( Now() ) Devuelve el componente de año de la 2015


fecha y hora actuales.

Month( Now() ) Devuelve el componente de mes de la 4


fecha y hora actuales.

Day( Now() ) Devuelve el componente de día de la 9


fecha y hora actuales.

Hour( Now() ) Devuelve el componente de hora de la 15


fecha y hora actuales.

Minute( Now() ) Devuelve el componente de minuto de 59


la fecha y hora actuales.

Second( Now() ) Devuelve el componente de minuto de 37


la fecha y hora actuales.

Weekday( Now() ) Devuelve el componente de día de la 5


semana de la fecha y hora actuales,
considerando al domingo como inicio de
la semana de forma predeterminada.

Weekday( Now(); 14 ) Devuelve el componente de día de la 1


semana de la fecha y hora actuales,
usando un código de Excel para
especificar el jueves como inicio de la
semana.

Weekday( Now(); StartOfWeek.Wed Devuelve el componente de día de la 2


nesday ) semana de la fecha y hora actuales,
usando una enumeración StartOfWeek
para especificar el miércoles como inicio
de la semana.
Función Mod en PowerApps
08/10/2019 • 2 minutes to read

Devuelve el resto de una división.

Descripción
La función Mod devuelve el resto después de que un número se divide por un divisor.
El resultado tiene el mismo signo que el divisor.

Sintaxis
Mod( Number; Divisor )
Number: requerido. Número que se divide.
Divisor: requerido. Número por el que se divide.
Funciones Day, Month, Year, Hour, Minute, Second y
Weekday en PowerApps
08/10/2019 • 4 minutes to read

Devuelve los componentes individuales de un valor de fecha y hora.

Descripción
La función Day devuelve el componente de día de un valor de fecha y hora, comprendido entre 1 y 31.
La función Month devuelve el componente de mes de un valor de fecha y hora, comprendido entre 1 y 12.
La función Year devuelve el componente de año de un valor de fecha y hora, a partir de 1900.
La función Hour devuelve el componente de hora de un valor de fecha y hora, comprendido entre 0 (12:00 a. m.) y
23 (11:00 p. m).
La función Minute devuelve el componente de minuto de un valor de fecha y hora, comprendido entre 0 y 59.
La función Second devuelve el componente de segundo de un valor de fecha y hora, comprendido entre 0 y 59.
La función Weekday devuelve el día de la semana de un valor de fecha y hora. De forma predeterminada, el
resultado está comprendido entre 1 (domingo) y 7 (sábado). Puede especificar un intervalo diferente con un código
de la función Weekday de la semana de Microsoft Excel o un valor de enumeración de StartOfWeek:

CÓDIGO DE EXCEL ENUMERACIÓN DE STARTOFWEEK DESCRIPCIÓN

1, 17 StartOfWeek.Sunday Números del 1 (domingo) al 7 (sábado).


Predeterminado.

2, 11 StartOfWeek.Monday Números del 1 (lunes) al 7 (domingo).

3 StartOfWeek.MondayZero Números del 0 (lunes) al 6 (domingo).

12 StartOfWeek.Tuesday Números del 1 (martes) al 7 (lunes).

13 StartOfWeek.Wednesday Números del 1 (miércoles) al 7 (martes).

14 StartOfWeek.Thursday Números del 1 (jueves) al 7 (miércoles).

15 StartOfWeek.Friday Números del 1 (viernes) al 7 (jueves).

16 StartOfWeek.Saturday Números del 1 (sábado) al 7 (viernes).

Todas las funciones devuelven un número.


Consulte cómo trabajar con fechas y horas para más información.

Sintaxis
Day( DateTime )
Month( DateTime )
Year( DateTime )
Hour( DateTime )
Minute( DateTime )
Second( DateTime )
DateTime: requerido. Valor de fecha y hora con el que operar.
Weekday( DateTime [; WeekdayFirst ] )
DateTime: requerido. Valor de fecha y hora con el que operar.
WeekdayFirst: opcional. Código de Excel que especifica qué día comienza la semana. Si no se indica, se usará 1
(primero el domingo).

Ejemplos
En el ejemplo siguiente, la hora actual es las 3:59:37 p. m. del jueves, 9 de abril de 2015.

FÓRMULA DESCRIPCIÓN RESULTADO

Year( Now() ) Devuelve el componente de año de la 2015


fecha y hora actuales.

Month( Now() ) Devuelve el componente de mes de la 4


fecha y hora actuales.

Day( Now() ) Devuelve el componente de día de la 9


fecha y hora actuales.

Hour( Now() ) Devuelve el componente de hora de la 15


fecha y hora actuales.

Minute( Now() ) Devuelve el componente de minuto de 59


la fecha y hora actuales.

Second( Now() ) Devuelve el componente de minuto de 37


la fecha y hora actuales.

Weekday( Now() ) Devuelve el componente de día de la 5


semana de la fecha y hora actuales,
considerando al domingo como inicio de
la semana de forma predeterminada.

Weekday( Now(); 14 ) Devuelve el componente de día de la 1


semana de la fecha y hora actuales,
usando un código de Excel para
especificar el jueves como inicio de la
semana.

Weekday( Now(); StartOfWeek.Wed Devuelve el componente de día de la 2


nesday ) semana de la fecha y hora actuales,
usando una enumeración StartOfWeek
para especificar el miércoles como inicio
de la semana.
Funciones Back y Navigate en PowerApps
08/10/2019 • 11 minutes to read

Cambia la pantalla que se muestra.

Información general
La mayoría de las aplicaciones contienen varias pantallas. Use las funciones Back y
Navigate para cambiar la pantalla que se muestra. Por ejemplo, establezca la propiedad
OnSelect de un botón en una fórmula que incluya una función Navigate si desea mostrar
una pantalla diferente cuando un usuario selecciona ese botón. En esta fórmula, puede
especificar una transición visual, como Fade, para controlar cómo se cambia de una pantalla
a otra.
Back y Navigate cambian solo la pantalla que se muestra. Las pantallas que no se
muestran actualmente siguen funcionando en segundo plano. Puede crear fórmulas que
hagan referencia a propiedades de controles en otras pantallas. Por ejemplo, un usuario
puede cambiar el valor de un control deslizante en una pantalla, navegar a una pantalla
diferente que use ese valor en una fórmula y determinar cómo afecta a lo que ocurre en la
nueva pantalla. El usuario puede volver a navegar a la pantalla original y confirmar que el
control deslizante ha conservado su valor.
Las variables de contexto también se conservan cuando un usuario navega entre pantallas.
Puede usar Navigate para establecer una o varias variables de contexto para la pantalla que
mostrará la fórmula, que es la única manera de establecer una variable de contexto desde
fuera de la pantalla. Este enfoque se puede usar para pasar parámetros a una pantalla. Si ha
usado otra herramienta de programación, este enfoque es similar a pasar parámetros a
procedimientos.
Puede utilizar cualquiera de las funciones solo dentro de una fórmula de comportamiento.

Navigate
En el primer argumento, especifique el nombre de la pantalla para mostrar.
En el segundo argumento, especifique cómo se cambia la pantalla anterior a la nueva
pantalla:

ARGUMENTO DE TRANSICIÓN DESCRIPCIÓN DEMOSTRACIÓN

ScreenTransition.Cover La nueva pantalla se desplaza a


la vista, de derecha a izquierda,
para cubrir la pantalla actual.
ARGUMENTO DE TRANSICIÓN DESCRIPCIÓN DEMOSTRACIÓN

ScreenTransition. CoverRight La nueva pantalla se desplaza a


la vista, de izquierda a derecha,
para cubrir la pantalla actual.

ScreenTransition.Fade La pantalla actual desaparece


para mostrar la nueva pantalla.

ScreenTransition. None (valor La nueva pantalla reemplaza


predeterminado) rápidamente la pantalla actual.

ScreenTransition.UnCover La pantalla actual se desplaza


fuera de la vista, de derecha a
izquierda, para descubrir la
nueva pantalla.

ScreenTransition. La pantalla actual se desplaza


UnCoverRight fuera de la vista, de izquierda a
derecha, para descubrir la
nueva pantalla.

Puede usar Navigate para crear o actualizar las variables de contexto de la nueva pantalla.
Como tercer argumento opcional, pase un registro que contenga el nombre de la variable de
contexto como un nombre de columna y el nuevo valor para la variable de contexto. Este
registro es el mismo que el registro que se usa con la función UpdateContext .
Establezca la propiedad OnHidden de la pantalla anterior, la propiedad OnVisible de la
nueva pantalla o ambas para realizar cambios adicionales durante la transición. La
propiedad App.ActiveScreen se actualizará para reflejar el cambio.
Navigate normalmente devuelve true , pero devolverá false si se produce un error.

Back
La función atrás vuelve a la pantalla que se mostró más recientemente.
Para cada llamada a Navigate , la aplicación realiza un seguimiento de la pantalla que
apareció y la transición. Puede usar llamadas sucesivas hacia atrás para volver a la pantalla
que aparecía cuando el usuario inició la aplicación.
Cuando se ejecuta la función back , se usa de forma predeterminada la transición inversa.
Por ejemplo, si aparece una pantalla a través de la transición CoverRight , el retroceso usa
la descubierta (que a la izquierda) para volver. Desvanecer y ninguno son sus propios
inversos. Pase un argumento opcional al de vuelta para forzar una transición específica.
Back devuelve normalmente true , pero devuelve false si el usuario no ha navegado a otra
pantalla desde el inicio de la aplicación.

Sintaxis
Atrás([ transición ])
Transición : opcional. Transición visual que se va a usar entre la pantalla actual y la
pantalla anterior. Consulte la lista de valores válidos para este argumento anteriormente
en este tema. De forma predeterminada, la transición a través de la que se devuelve una
pantalla es el inverso de la transición a través de la cual apareció.
Navegar( pantalla [; transición [; UpdateContextRecord ]])
Screen: requerido. La pantalla que se va a mostrar.
Transición : opcional. La transición visual usada entre la pantalla actual y la siguiente
pantalla. Consulte la lista de valores válidos para este argumento anteriormente en este
tema. El valor predeterminado es None.
UpdateContextRecord: valor opcional. Un registro que contiene el nombre de al menos
una columna y un valor para cada columna. Este registro actualiza las variables de
contexto de la pantalla nueva como si se pasaran a la función UpdateContext .

Ejemplos
FÓRMULA DESCRIPCIÓN RESULTADO

Navegar (detalles) Muestra la pantalla Details sin La pantalla Details aparece


transición o cambio en el valor rápidamente.
de una variable de contexto.

Navigate( Details; Muestra la pantalla Details con La pantalla actual desaparece


ScreenTransition.Fade ) una transición Fade. No se para mostrar la pantalla
cambia ningún valor de una Details.
variable de contexto.

Navigate( Details; Muestra la pantalla Details con La pantalla actual desaparece


ScreenTransition.Fade; una transición Fade y actualiza para mostrar la pantalla Details
{ ID: 12 } ) el valor de la variable de y la variable de contexto ID de
contexto ID a 12. esa pantalla se establece en 12.

Navigate( Details; Muestra la pantalla Details con La pantalla actual desaparece


ScreenTransition.Fade; una transición Fade. Actualiza para mostrar la pantalla
{ ID: 12 ; Shade: Color.Red } ) el valor de la variable de Details. La variable de contexto
contexto ID a 12 y actualiza el ID en la pantalla Details está
valor de la variable de contexto establecida en 12 y la variable
Shade a Color.Red. de contexto Shade está
establecida en Color.Red. Si
establece la propiedad Fill de
un control de la pantalla
Details en Shade, ese control
se muestra en rojo.
FÓRMULA DESCRIPCIÓN RESULTADO

Back() Muestra la pantalla anterior Muestra la pantalla anterior a


con la transición de devolución través de la transición inversa
predeterminada. de la transición a través de la
que apareció la pantalla actual.

Atrás (ScreenTransition. Muestra la pantalla anterior Muestra la pantalla anterior a


Cover) con la transición de portada . través de la transición de la
portada , independientemente
de la transición a través de la
que apareció la pantalla actual.

Paso a paso
1. Cree una aplicación vacía.
2. Agregue una segunda pantalla a ella.
La aplicación contiene dos pantallas en blanco: Screen1 y Screen2.
3. Establezca la propiedad Fill de Screen2 en el valor Gray .
4. En Screen2, agregue un botón y establezca su propiedad alseleccionar en esta
fórmula:

Navigate( Screen1; ScreenTransition.Cover )

5. Mientras mantiene presionada la tecla Alt , seleccione el botón.


Screen1 aparece con un fondo blanco a través de una transición que se cubre hacia la
izquierda.
6. En Screen1, agregue un botón y establezca su propiedad alseleccionar en esta
fórmula:

Back()

7. Mientras mantiene presionada la tecla Alt , seleccione el botón.


La segunda pantalla aparece con un fondo gris a través de una transición que se
descubre hacia la derecha (la inversa de la portada).
8. Seleccione el botón de cada pantalla varias veces para rebotar hacia atrás y hacia
delante.
Otro ejemplo
Funciones EditForm, NewForm, SubmitForm,
ResetForm y ViewForm de PowerApps
08/10/2019 • 10 minutes to read

Vea, edite o cree un elemento, guarde el contenido y restablezca los controles de un control Editar formulario .

Información general
Estas funciones cambian el estado del control Editar formulario. El control de formulario puede estar en uno de
estos modos:

MODO DESCRIPCIÓN

FormMode.Edit El formulario se rellena con un registro existente y el usuario


puede modificar los valores de los campos. Una vez que haya
finalizado, el usuario puede guardar los cambios en el registro.

FormMode.New El formulario se rellena con los valores predeterminados y el


usuario puede modificar los valores de los campos. Una vez
que haya finalizado, el usuario puede agregar el registro al
origen de datos.

FormMode.View El formulario se rellena con un registro existente pero el


usuario no puede modificar los valores de los campos.

Descripción
Estas funciones a menudo se invocan desde la fórmula OnSelect de un control Botón o Imagen para que el
usuario pueda guardar las modificaciones, abandonarlas o crear un registro. También puede usar conjuntamente
controles y estas funciones para crear una solución completa.
Estas funciones no devuelven ningún valor.
SubmitForm
Use la función SubmitForm de la propiedad OnSelect de un control Botón para guardar los cambios de un
control Formulario en el origen de datos.
Antes de enviar cualquier cambio, esta función comprueba problemas de validación con cualquier campo que se
haya marcado como requerido o que tenga una o más restricciones en su valor. Este comportamiento es idéntico al
de la función Validate .
SubmitForm también comprueba la propiedad Valid del control Formulario, que es una agregación de todas las
propiedades Valid de los controles Card que contiene el control Formulario. Si se produce un problema, no se
envían los datos y las propiedades Error y ErrorKind del control Formulario se establecen en consecuencia.
Si se supera la validación, SubmitForm envía el cambio al origen de datos.
Si se realiza correctamente, se ejecutará el comportamiento OnSuccess del formulario y se borrarán las
propiedades Error y ErrorKind . Si el formulario se encontraba en modo FormMode.New, se devolverá al
modo FormMode.Edit.
Si no se realiza correctamente, se ejecutará el comportamiento OnFailure del formulario y se establecerán las
propiedades Error y ErrorKind en consecuencia. El modo del formulario no se modifica.
EditForm
La función EditForm cambia el modo del control Formulario a FormMode.Edit. En este modo, el contenido de la
propiedad Elemento del control Formulario se utiliza para rellenar el formulario. Si la función SubmitForm se
ejecuta cuando el formulario está en este modo, se cambiará un registro, no se creará. FormMode.Edit es el valor
predeterminado del control Formulario.
NewForm
La función NewForm cambia el modo del control Formulario a FormMode.New. En este modo, el contenido de
la propiedad Elemento del control Formulario se omite y los valores predeterminados de la propiedad
DataSource rellenan el formulario. Si la función SubmitForm se ejecuta cuando el formulario está en este modo,
se creará un registro, no se cambiará.
ResetForm
La función ResetForm restablece el contenido de un formulario a sus valores iniciales, el contenido que había antes
de que el usuario realizara cambios. Si el formulario está en modo FormMode.New, se restablecerá al modo
FormMode.Edit. El comportamiento OnReset del control Formulario también se ejecutará. También puede
restablecer controles individuales con la función Reset pero únicamente desde dentro del formulario.
ViewForm
La función ViewForm cambia el modo del control Formulario a FormMode.View. En este modo, el contenido de
la propiedad Elemento del control Formulario se utiliza para rellenar el formulario. Las funciones SubmitForm y
ResetForm no tienen ningún efecto cuando se está en este modo.
Propiedad DisplayMode
El modo actual se puede leer mediante la propiedad Modo. El modo determina también el valor de la propiedad
DisplayMode que pueden usar las tarjetas de datos y controles del control de formulario. A menudo, la propiedad
DisplayMode de la tarjeta de datos se establecerá en Parent. DisplayMode (que hace referencia al formulario)
como lo hará la propiedad DisplayMode del control (que hace referencia a la tarjeta de datos):

MODO DISPLAYMODE DESCRIPCIÓN

FormMode.Edit DisplayMode.Edit Las tarjetas de datos y los controles son


editables, y están listos para aceptar los
cambios de un registro.

FormMode.New DisplayMode.Edit Las tarjetas de datos y los controles son


editables, y están listos para aceptar un
nuevo registro.

FormMode.View DisplayMode.View Las tarjetas de datos y los controles no


son editables y están optimizados para
su visualización.

Sintaxis
SubmitForm ( FormName )
FormName: requerido. Control Formulario para enviar al origen de datos.
EditForm ( FormName )
FormName: requerido. Control Formulario para cambiar al modo FormMode.Edit.
NewForm ( FormName )
FormName: requerido. Control Formulario para cambiar al modo FormMode.New.
ResetForm ( FormName )
FormName: requerido. Control Formulario para restablecer los valores iniciales. También cambia el formulario
del modo FormMode.New al modo FormMode.Edit.
ViewForm ( FormName )
FormName: requerido. Control Formulario para cambiar al modo FormMode.View.

Ejemplos
Consulte Formularios de datos para obtener ejemplos completos.
1. Agregue un control Botón, establezca la propiedad Text para mostrar Guardar y establezca la propiedad
OnSelect en esta fórmula:
SubmitForm ( EditForm )
2. Establezca la propiedad OnFailure de un control Formulario blank y la propiedad OnSuccess en esta
fórmula:
Back()
3. Asigne el nombre ErrorText a un control Label y establezca su propiedad Text en esta fórmula:
EditForm.Error
Cuando el usuario selecciona el botón Guardar, los cambios del control Formulario se envían al origen de
datos subyacente.
Si el envío se realiza correctamente, los cambios se guardan o, si el control Formulario está en modo
New, se creará un registro. ErrorText es blank y vuelve a aparecer la pantalla anterior.
Si se produce un error en el envío, ErrorText mostrará un mensaje de error descriptivo y la pantalla
actual permanecerá visible para que el usuario pueda corregir el problema e intentarlo de nuevo.
4. Agregue un control Botón, establezca su propiedad Text para que muestre Cancelar y establezca su
propiedad OnSelect en esta fórmula:
ResetForm ( EditForm );; Back()
Si el usuario selecciona el botón Cancelar, los valores del control Formulario se restablecen a su estado
original, el estado que tenían antes de que el usuario empezara a editarlo, vuelve a aparecer la pantalla
anterior y se devuelve el control Formulario al modo Edit si estaba en modo New.
5. Agregue un control Botón, establezca su propiedad Text para mostrar Nuevo y establezca su propiedad
OnSelect en esta fórmula:
NewForm ( EditForm );; Navigate( EditScreen; None )
Cuando el usuario selecciona el botón New, se activa el control Formulario en modo New, los valores
predeterminados del origen de datos del control Formulario rellenan el control y aparece la pantalla que
contiene el control Formulario. Cuando se ejecuta la función SubmitForm, se crea un registro en lugar de
actualizarlo.
Funciones And, Or y Not en PowerApps
26/11/2019 • 5 minutes to read

Funciones de lógica booleana usadas comúnmente para manipular los resultados de pruebas y comparaciones.

Descripción
La función And devuelve true si todos los argumentos son verdaderos.
La función Or devuelve true si todos sus argumentos son verdaderos.
La función Not devuelve true si su argumento es falso y devuelve false si su argumento es verdadero.
Estas funciones funcionan de la misma manera que en Excel. También puede usar operadores para realizar estas
mismas operaciones, usando la sintaxis de Visual Basic o JavaScript:

NOTACIÓN DE FUNCIÓN VISUAL BASIC NOTACIÓN DE OPERADOR NOTACIÓN DEL OPERADOR DE JAVASCRIPT

And (x, y) xey x&&y

O (x, y) xoy x||y

Not (x) No x ! x1

Estas funciones trabajan con valores lógicos. No se pueden pasar un número o una cadena directamente. en su
lugar, debe realizar una comparación o una prueba. Por ejemplo, esta fórmula lógica x > 1 se evalúa como el valor
booleano true si x es mayor que 1. Si x es menor que 1, la fórmula se evalúa como false.

Sintaxis
And( LogicalFormula1; LogicalFormula2 [; LogicalFormula3; ... ] )
Or( LogicalFormula1; LogicalFormula2 [; LogicalFormula3; ... ] )
Not( LogicalFormula )
LogicalFormula (s) : requerido. Fórmulas lógicas para evaluar y con las que operar.

Ejemplos
En los ejemplos de esta sección se usan estas variables globales:
un = false
b = true
x = 10
y = 100
s = "Hola mundo"
Para crear estas variables globales en una aplicación, inserte un control de botón y establezca su propiedad
alseleccionar en esta fórmula:

Set( a; false );; Set( b; true );; Set( x; 10 );; Set( y; 100 );; Set( s; "Hello World" )
Seleccione el botón (haciendo clic en él mientras mantiene presionada la tecla Alt) y, a continuación, establezca la
propiedad texto de un control etiqueta en una fórmula de la primera columna de la tabla siguiente.

FÓRMULA DESCRIPCIÓN RESULTADO

Y (a, b) Comprueba los valores de a y b. Uno de false


los argumentos es false, por lo que la
función devuelve false.

ayb Igual que el ejemplo anterior, utilizando false


Visual Basic notación.

un & & b Igual que en el ejemplo anterior, con la false


notación JavaScript.

O (a, b) Comprueba los valores de a y b. Uno de true


los argumentos es true, por lo que la
función devuelve true.

aob Igual que el ejemplo anterior, utilizando true


Visual Basic notación.

a||b Igual que en el ejemplo anterior, con la true


notación JavaScript.

No (a) Comprueba el valor de un. El true


argumento es false, por lo que la
función devuelve el resultado opuesto.

No es un Igual que el ejemplo anterior, utilizando true


Visual Basic notación.

! un Igual que en el ejemplo anterior, con la true


notación JavaScript.

Len ( s ) < 20 y no esblanco ( s ) Comprueba si la longitud de s es menor true


que 20 y si no es un valor en blanco .
La longitud es menor que 20 y el valor
no está en blanco. Por lo tanto, el
resultado es true.

Or ( Len ( s ) < 10, x < 100, y < 100 ) Comprueba si la longitud de s es menor true
que 10, si x es menor que 100 y si y es
menor que 100. El primer y el tercer
argumento son false, pero el segundo
es true. Por lo tanto, la función devuelve
true.

No esblanco ( s ) Comprueba si s está en blanco, lo que true


devuelve false. No devuelve el opuesto
de este resultado, que es true.
Función Notify en PowerApps
08/10/2019 • 3 minutes to read

Muestra un mensaje de pancarta al usuario.

Descripción
La función Notify muestra un mensaje de pancarta al usuario en la parte superior de la pantalla, superpuesto
sobre lo que se muestre actualmente.
Se usa el color y el icono adecuados según el tipo del mensaje. El tipo se especifica mediante el segundo
argumento de la función:

ARGUMENTO NOTIFICATIONTYPE DESCRIPCIÓN

NotificationType.Error Muestra el mensaje como un error.

NotificationType.Information (valor predeterminado) Muestra el mensaje como información.

NotificationType.Success Muestra el mensaje como correcto.

NotificationType.Warning Muestra el mensaje como una advertencia.

Los mensajes se muestran cuando se crea la aplicación y cuando los usuarios finales la usan.
Notify solo se puede usar en fórmulas de comportamiento.
Notify se puede emparejar con la función IfError para detectar y notificar errores con un mensaje de error
personalizado.
PowerApps también puede enviar notificaciones de inserción mediante un mecanismo completamente diferente a
Notify. Para obtener más información, vea Envío de una notificación push en PowerApps.
Notify siempre devuelve true.
Tenga en cuenta Esta función se denominaba anteriormente ShowError cuando solo podía mostrar mensajes de
error.

Sintaxis
Notify( Message; [ NotificationType ] )
Mensaje: es necesario. Mensaje que se va a mostrar al usuario.
NotificationType: opcional. El tipo de mensaje que se va a mostrar de la tabla anterior. El valor predeterminado
es NotificationType.Information.

Ejemplos
Paso a paso
1. Agregue un control Botón a la pantalla.
2. Establezca la propiedad OnSelect del control Botón en:
Notify( "Hello, World" )
3. Haga clic o presione el botón.
Cada vez que se hace clic en el botón, se muestra el mensaje Hello, World al usuario como una
información.

4. Cambie el tipo de mensaje para indicar un error. Agregue un segundo argumento a la fórmula:
Notify( "Hello, World"; NotificationType.Error )
5. Haga clic o presione el botón.
Ahora, cada vez que se hace clic en el botón, se muestra el mensaje Hello, World al usuario como un error.

6. Cambie el tipo de mensaje para indicar una advertencia. Cambie el segundo argumento de la fórmula:
Notify( "Hello, World"; NotificationType.Warning )
7. Haga clic o presione el botón.
Ahora, cada vez que se hace clic en el botón, se muestra el mensaje Hello, World al usuario como una
advertencia.

8. Cambie el tipo de mensaje para indicar que es correcto. Cambie el segundo argumento de la fórmula:
Notify( "Hello, World"; NotificationType.Success )
9. Haga clic o presione el botón.
Ahora, cada vez que se hace clic en el botón, se muestra el mensaje Hello, World al usuario como una
operación correcta.
Funciones Now, Today e IsToday en PowerApps
08/10/2019 • 7 minutes to read

Devuelve la fecha y hora actuales y comprueba si un valor de fecha y hora es el día de hoy.

Descripción
La función Now devuelve la fecha y hora actuales como un valor de fecha y hora.
La función Today devuelve la fecha actual como un valor de fecha y hora. La parte de la hora es la medianoche.
Today tiene el mismo valor a lo largo del día, desde hoy a medianoche hasta mañana a medianoche.
La función IsToday comprueba si un valor de fecha y hora está comprendido entre hoy a medianoche y mañana a
medianoche. Con esta función, se devuelve un valor booleano true o false.
Todas estas funciones funcionan con la hora local del usuario actual.
Consulte cómo trabajar con fechas y horas para más información.

Funciones volátiles
Now y Today son funciones volátiles. Cada vez que se evalúa una de estas funciones, se devuelve un valor
diferente.
Cuando se usa en una fórmula de flujo de datos, una función volátil solo devuelve un valor diferente si se vuelve a
evaluar la fórmula en la que aparece. Si no hay ningún otro cambio en la fórmula, presenta el mismo valor durante
la ejecución de la aplicación.
Por ejemplo, un control de etiqueta con Label1.Text = Now() no cambiará mientras la aplicación esté activa. Solo
se generará un nuevo valor si se cierra y se vuelve a abrir la aplicación.
Si la función forma parte de una fórmula en la que haya cambiado algún elemento más, se volverá a evaluar. Por
ejemplo, si modificamos el ejemplo para incluir un control deslizante con Label1.Text = DateAdd( Now();
Slider1.Value; Minutes ) , se recuperará la hora actual cada vez que cambie el valor del control deslizante.
Asimismo, se volverá a evaluar la propiedad de texto de la etiqueta.
Cuando se usa en una fórmula de comportamiento, las funciones volátiles se evalúan cada vez que se evalúa la
fórmula de comportamiento. Encontrará un ejemplo a continuación.

Sintaxis
Now()
Today()
IsToday( DateTime )
DateTime: requerido. El valor de fecha y hora para comprobar.

Ejemplos
En los ejemplos de esta sección, la hora actual es 3:59 AM el 12 de febrero de 2015 y el idioma es en-us.
FÓRMULA DESCRIPCIÓN RESULTADO

Text( Now(); "mm/dd/yyyy Recupera la fecha y hora actuales y las "02/12/2015 03:59:00"
hh:mm:ss" ) muestra como una cadena.

Text( Today(); "mm/dd/yyyy Recupera solo la fecha actual, dejando la "02/12/2015 00:00:00"
hh:mm:ss" ) parte de hora como medianoche, y la
muestra como una cadena.

IsToday( Now() ) Comprueba si la fecha y hora actuales true


se encuentran entre hoy a medianoche
y mañana a medianoche.

IsToday( Today() ) Comprueba si la fecha actual se true


encuentra entre hoy a medianoche y
mañana a medianoche.

Text( DateAdd( Now(); 12 ); Recupera la fecha y hora actuales, "02/24/2015 03:59:00"


"mm/dd/yyyy hh:mm:ss" ) agrega 12 días al resultado y lo muestra
como una cadena.

Text( DateAdd( Today(); 12 ); Recupera la fecha actual, agrega 12 días "02/24/2015 00:00:00"
"mm/dd/yyyy hh:mm:ss" ) al resultado y lo muestra como una
cadena.

IsToday( DateAdd( Now(); 12 ) ) Comprueba si la fecha y hora actuales, false


más 12 días, se encuentran entre hoy a
medianoche y mañana a medianoche.

IsToday( DateAdd( Today(); 12 ) ) Comprueba si la fecha actual, más 12 false


días, se encuentra entre hoy a
medianoche y mañana a medianoche.

Mostrar un reloj actualizado en tiempo real


1. Agregue un control Timer , establezca su propiedad Duration en 1000 y establezca su propiedad Repeat
en true.
El temporizador se ejecutará durante un segundo y volverá a empezar automáticamente, y así
sucesivamente.
2. Establezca la propiedad OnTimerEnd del control en esta fórmula:
Set( CurrentTime; Now() )
Cada vez que el temporizador vuelve a empezar, es decir, cada segundo, esta fórmula establece la variable
global CurrentTime en el valor actual de la función Now.

3. Agregue un control Label y establezca su propiedad Text en esta fórmula:


Text( CurrentTime; LongTime24 )
Use la función Text para aplicar el formato que quiera a la fecha y la hora o establezca esta propiedad en
CurrentTime para que se muestren las horas y los minutos, sin los segundos.

4. Pulse F5 para obtener una versión preliminar de la aplicación y, a continuación, inicie el temporizador. Para
ello, haga clic en él o púlselo.
La etiqueta muestra la hora local de forma continua, segundo a segundo.

5. Establezca la propiedad AutoStart del temporizador en true y la propiedad Visible en false.


El temporizador es invisible y se inicia automáticamente.
6. Establezca la propiedad OnStart de la pantalla de modo que la variable CurrentTime tenga un valor válido,
como en este ejemplo:
Set(CurrentTime; Now())
La etiqueta aparece en cuanto se inicia la aplicación, antes de que el temporizador se ejecute durante un
segundo completo.
Operadores en PowerApps
08/10/2019 • 10 minutes to read

Algunos de estos operadores dependen del idioma del autor. Para más información,
consulte Aplicaciones globales.

SÍMBOLO TIPO SINTAXIS DESCRIPCIÓN

. Selector de Slider1.Value Extrae una propiedad


propiedad Color.Red de una tabla, control,
Acceleration.X señal o enumeración.
Para lograr
compatibilidad con
versiones anteriores,
también se puede
usar ! .

. Separador decimal 1.23 Separador entre las


[dependiente del partes entera y
idioma] fraccionaria de un
número. El carácter
depende del idioma.

() Paréntesis Filter(T; A < 10) Aplica el orden de


prioridad y agrupa
(1 + 2) * 3 las subexpresiones
en una expresión
mayor

+ Operadores 1+2 Suma


aritméticos

- 2-1 Resta y signo

* 2*3 Multiplicación

/ 2/3 División (consulte


también la función
Mod )

^ 2^3 Exponenciación,
equivalente a la
función Power

% 20 % Porcentaje
(equivalente a "*
1/100")

= Operadores de Precio = 100 Igual a


comparación

> Precio > 100 Más de


SÍMBOLO TIPO SINTAXIS DESCRIPCIÓN

>= Precio >= 100 Mayor o igual que

< Precio < 100 Menos de

<= Precio <= 100 Menor o igual que

<> Precio <> 100 No igual a

& Operador de "hello" & " " & Hace que varias
concatenación de "world" cadenas aparezcan
cadenas continuas

&& o And Operadores lógicos Precio < 100 && Conjunción lógica,
Slider1.Value = 20 equivalente a la
o Price < 100 And función And
Slider1.Value = 20

|| u Or Price < 100 || Disyunción lógica,


Slider1.Value = 20 equivalente a la
o Price < 100 Or función Or
Slider1.Value = 20

! o Not !(Price < 100) o Negación lógica,


Not (Price < 100) equivalente a la
función Not

exactin Operadores de Gallery1.Selected Perteneciente a una


pertenencia exactin SavedItems colección o una tabla

exactin "Windows" exactin Prueba de


"Para mostrar subcadena (distingue
ventanas en el mayúsculas de
sistema de minúsculas)
operativo
Windows..."

in Gallery1.Selected Perteneciente a una


in SavedItems colección o una tabla

in "El" en "El teclado Prueba de


y el monitor..." subcadena (no
distingue mayúsculas
de minúsculas)

@ Operador de MyTable[@fieldna Desambiguación de


desambiguación me] campo

@ [@MyVariable] Desambiguación
global
SÍMBOLO TIPO SINTAXIS DESCRIPCIÓN

, Separador de lista If( X < 10; "Bajo"; Separa:


[dependiente del "Bien" ) argumentos
idioma] {X: 12; Y: 32} en llamadas a
[ 1; 2; 3 ] funciones
campos en
un registro
registros de
una tabla
Este carácter
depende del idioma.

; Encadenamiento de Collect(T; A);; Separar invocaciones


[dependiente del fórmulas Navigate(S1; "") de funciones en las
idioma] propiedades del
comportamiento. El
operador de
encadenamiento
depende del
lenguaje.

Parent Operador Parent Parent.Fill Acceso a las


propiedades de un
contenedor de
control

ThisItem Operador ThisItem ThisItem.FirstName Acceder a los


campos de una
galería o un control
de formulario

operadores in y exactin
Los operadores in y exactin se pueden usar para buscar una cadena en un origen de
datos, como una colección o una tabla importada. El operador in identifica
coincidencias, independientemente del caso, mientras que exactin identifica
coincidencias solo si coinciden las mayúsculas. Este es un ejemplo:
1. Cree o importe una colección denominada Inventario y muéstrela en una
galería, como describe el primer procedimiento de Show images and text in a
gallery, including gallery selection, sort, and filter (Mostrar texto e imágenes de
una galería, incluidos la selección, ordenación y filtro de la galería).
2. Establezca la propiedad Elementos de la galería en esta fórmula:
Filter(Inventory; "E" in ProductName)
La galería muestra todos los productos, excepto Callisto, porque el nombre de
ese producto es el único que no contiene la letra que ha especificado.
3. Cambie la propiedad Elementos de la galería a esta fórmula:
Filter(Inventory; "E" exactin ProductName)
La galería muestra solo Europa, porque es la única palabra que contiene la letra
que ha especificado con el uso de mayúsculas y minúsculas que ha especificado.

Operador ThisItem
Puede mostrar datos en los controles Galería , Formulario de edición o Formulario
de presentación enlazándolos a una tabla o una colección. Estos controles son un
contenedor para otros controles y tarjetas. Todas las tarjetas o controles del contenedor
pueden acceder a los datos enlazados a través del operador ThisItem .
El operador ThisItem se usa para especificar la columna de datos de cada tarjeta o
control en el control externo. Por ejemplo, el operador de la galería de productos de
Show images and text in a gallery, including gallery selection, sort, and filter (Mostrar
texto e imágenes de una galería, incluidos la selección, ordenación y filtro de la galería)
especificaba que el control de imagen mostraba el diseño del producto, la etiqueta
superior mostraba el nombre del producto y la etiqueta inferior mostraba el número de
unidades en existencias.
En el caso de las galerías anidadas, ThisItem hace referencia a los elementos de la
galería más interna. Suponiendo que los campos de fila de las galerías interna y externa
no están en conflicto, también puede utilizar los nombres de campo (columna) no
completos directamente. Este enfoque permite que las reglas de una galería interna
hagan referencia a elementos de una galería externa.

Operador Parent
Algunos controles hospedan otros controles. Por ejemplo, los controles Pantalla ,
Galería , Tarjeta , Formulario de edición y Formulario de presentación son
contenedores de controles. Al control que hospeda se le denomina el "control primario"
de los controles que contiene.
En PowerApps se puede hacer referencia a todos los controles por su nombre desde
cualquier lugar de la aplicación. Screen1 puede ser el nombre de una pantalla de una
aplicación. Para recuperar el color de fondo de esta pantalla, puede usar Screen1.Fill.
Los controles de esta pantalla tienen otra opción. Pueden usar una referencia relativa:
Parent. Fill. El operador Parent hace referencia al control que hospeda este control, y
que hace que todas sus propiedades estén disponibles. Parent resulta muy útil, ya que
no depende del nombre del control. Puede copiar y pegar un control contenedor sin
necesidad de ajustar ninguna de las referencia del contenedor. Este operador también
hace que la relación entre los controles primarios y secundarios sea más clara al leer
fórmulas.

Operador de desambiguación
Algunas funciones crean ámbitos de registro para acceder a los campos de la tabla
mientras se procesa cada registro, como Filter, AddColumns y Sum. Los nombres de
campo agregados con el ámbito de registro invalidan los mismos nombres de los
restantes lugares de la aplicación. Cuando esto sucede, para acceder a los valores desde
fuera del ámbito de registro hay que utilizar el operador de desambiguación @ :
Para acceder a valores de ámbitos de registro anidados, use el operador @ con el
nombre de la tabla en la que opera mediante este modelo:
Table [@ FieldName ]
Para acceder a valores globales, como orígenes de datos, colecciones y variables de
contexto, use el modelo [@ ObjectName ] (sin designación de tabla).
Para obtener más información y ejemplos, vea los ámbitos de registro.
Funciones And, Or y Not en PowerApps
26/11/2019 • 5 minutes to read

Funciones de lógica booleana usadas comúnmente para manipular los resultados de pruebas y
comparaciones.

Descripción
La función And devuelve true si todos los argumentos son verdaderos.
La función Or devuelve true si todos sus argumentos son verdaderos.
La función Not devuelve true si su argumento es falso y devuelve false si su argumento es verdadero.
Estas funciones funcionan de la misma manera que en Excel. También puede usar operadores para realizar
estas mismas operaciones, usando la sintaxis de Visual Basic o JavaScript:

NOTACIÓN DEL OPERADOR DE


NOTACIÓN DE FUNCIÓN VISUAL BASIC NOTACIÓN DE OPERADOR JAVASCRIPT

And (x, y) xey x&&y

O (x, y) xoy x||y

Not (x) No x ! x1

Estas funciones trabajan con valores lógicos. No se pueden pasar un número o una cadena directamente. en
su lugar, debe realizar una comparación o una prueba. Por ejemplo, esta fórmula lógica x > 1 se evalúa
como el valor booleano true si x es mayor que 1. Si x es menor que 1, la fórmula se evalúa como false.

Sintaxis
And( LogicalFormula1; LogicalFormula2 [; LogicalFormula3; ... ] )
Or( LogicalFormula1; LogicalFormula2 [; LogicalFormula3; ... ] )
Not( LogicalFormula )
LogicalFormula (s) : requerido. Fórmulas lógicas para evaluar y con las que operar.

Ejemplos
En los ejemplos de esta sección se usan estas variables globales:
un = false
b = true
x = 10
y = 100
s = "Hola mundo"
Para crear estas variables globales en una aplicación, inserte un control de botón y establezca su propiedad
alseleccionar en esta fórmula:
Set( a; false );; Set( b; true );; Set( x; 10 );; Set( y; 100 );; Set( s; "Hello World" )

Seleccione el botón (haciendo clic en él mientras mantiene presionada la tecla Alt) y, a continuación,
establezca la propiedad texto de un control etiqueta en una fórmula de la primera columna de la tabla
siguiente.

FÓRMULA DESCRIPCIÓN RESULTADO

Y (a, b) Comprueba los valores de a y b. Uno false


de los argumentos es false, por lo
que la función devuelve false.

ayb Igual que el ejemplo anterior, false


utilizando Visual Basic notación.

un & & b Igual que en el ejemplo anterior, con false


la notación JavaScript.

O (a, b) Comprueba los valores de a y b. Uno true


de los argumentos es true, por lo que
la función devuelve true.

aob Igual que el ejemplo anterior, true


utilizando Visual Basic notación.

a||b Igual que en el ejemplo anterior, con true


la notación JavaScript.

No (a) Comprueba el valor de un. El true


argumento es false, por lo que la
función devuelve el resultado
opuesto.

No es un Igual que el ejemplo anterior, true


utilizando Visual Basic notación.

! un Igual que en el ejemplo anterior, con true


la notación JavaScript.

Len ( s ) < 20 y no esblanco ( s ) Comprueba si la longitud de s es true


menor que 20 y si no es un valor en
blanco . La longitud es menor que
20 y el valor no está en blanco. Por lo
tanto, el resultado es true.

Or ( Len ( s ) < 10, x < 100, Comprueba si la longitud de s es true


y < 100 ) menor que 10, si x es menor que 100
y si y es menor que 100. El primer y
el tercer argumento son false, pero el
segundo es true. Por lo tanto, la
función devuelve true.

No esblanco ( s ) Comprueba si s está en blanco, lo true


que devuelve false. No devuelve el
opuesto de este resultado, que es
true.
Funciones de descarga, Inicio y parámetro en
aplicaciones de Canvas
05/11/2019 • 2 minutes to read

Descarga o inicia una página web o una aplicación con parámetros.

Descripción
La función Download descarga un archivo de la Web al dispositivo local. Se pide al usuario una ubicación para
guardar el archivo. Download devuelve la ubicación donde el archivo se almacenó localmente como una
cadena.
La función Launch inicia un página web o una aplicación. Opcionalmente, esta función puede pasar parámetros
a la aplicación.
En Internet Explorer y Microsoft Edge, la función Launch abre un sitio web o una aplicación solo si su
configuración de seguridad es igual o superior a la de la aplicación que contiene la función. Si, por ejemplo,
agrega la función de Inicio a una aplicación que se ejecutará en la zona de seguridad sitios de confianza ,
asegúrese de que el sitio web o la aplicación que desea que la función abra se encuentra en la zona de sitios de
confianza o Intranet local (no en Sitios restringidos). Más información: cambiar la configuración de
seguridad y privacidad para Internet Explorer 11.
La función Param recupera un parámetro pasado a la aplicación cuando se inició. Si no se pasó el parámetro
con nombre, Param devuelve blank.

Sintaxis
Download( Address )
Address: requerido. La dirección de un recurso web para descargar.
Launch( Address [; ParameterName1; ParameterValue1; ... ] )
Address: requerido. La dirección de una página web o el identificador de una aplicación que se va a iniciar.
ParameterName(s) : valor opcional. Nombre del parámetro.
ParameterValue(s) : valor opcional. Valores de parámetro correspondientes para pasar a la aplicación o la
página web.
Param ( ParameterName )
ParameterName: requerido. El nombre del parámetro pasado a la aplicación.
Función Patch en PowerApps
08/10/2019 • 12 minutes to read

Modifica o crea uno o varios registros de un origen de datos o combina registros fuera de
un origen de datos.
Use la función Patch para modificar registros en situaciones complejas, como cuando se
realizan actualizaciones que no requieren interacción del usuario o se usan formularios que
abarcan varias pantallas.
En situaciones menos complejas, puede utilizar el control Formulario de edición para
actualizar registros en un origen de datos con mayor facilidad. Cuando agrega un control
Formulario de edición, proporciona a los usuarios un formulario para rellenar y después
guarda los cambios en un origen de datos. Para más información, consulte Descripción de
los formularios de datos.

Información general
Use la función Patch para modificar uno o varios registros de un origen de datos. Los
valores de campos específicos se modifican sin que otras propiedades se vean afectadas. Por
ejemplo, esta fórmula cambia el número de teléfono de un cliente llamado Contoso:
Patch( Customers; First( Filter( Customers; Name = "Contoso" ) ); { Phone: “1-212-555-
1234” } )

Use Patch con la función Defaults para crear registros. Use este comportamiento para
crear una sola pantalla tanto para crear como para editar registros. Por ejemplo, la siguiente
fórmula crea un registro para un cliente llamado Contoso:
Patch( Customers; Defaults( Customer ); { Name: “Contoso” } )

Incluso si no está trabajando con un origen de datos, puede usar Patch para combinar dos o
más registros. Por ejemplo, esta fórmula combina dos registros en uno que identifica tanto
el número de teléfono como la ubicación de Contoso:
Patch( { Name: "Contoso"; Phone: “1-212-555-1234” }; { Name: "Contoso"; Location:
“Midtown” } )

Descripción
Modificar o crear un registro en un origen de datos
Para usar esta función con un origen de datos, especifique el origen de datos y, a
continuación, especifique un registro base:
Para modificar un registro, el registro base debe proceder de un origen de datos. El
registro base puede proceder de una propiedad Items de la galería, haberse colocado en
una variable de contexto o proceder de algún otro sitio. Sin embargo, debe poder realizar
un seguimiento del registro base hasta el origen de datos. Esto es importante, ya que el
registro incluirá información adicional para ayudar a encontrar el registro para la
modificación.
Para crear un registro, use la función Defaults para crear un registro base con valores
predeterminados.
A continuación, especifique uno o más registros de cambio, cada uno de los cuales contenga
nuevos valores de propiedad que reemplacen los valores de propiedad en el registro base.
Los registros de cambio se procesan en orden, desde el principio de la lista de argumentos
hasta el final, donde los valores de propiedad últimos reemplazan a los primeros.
El valor devuelto de Patch es el registro modificado o creado. Si ha creado un registro, el
valor devuelto puede incluir propiedades que el origen de datos generó automáticamente.
Al actualizar un origen de datos, pueden surgir uno o varios problemas. Use la función
Errors para identificar y examinar los problemas, como se describe en Working with Data
Sources (Uso de orígenes de datos).
Las funciones relacionadas incluyen Update , que puede usar para reemplazar un registro
entero, o Collect , que puede usar para crear un registro. Puede usar la función UpdateIf
para modificar propiedades específicas de varios registros según una condición.
Modificar o crear un conjunto de registros en un origen de datos
Patch también puede utilizarse para crear o modificar varios registros con una sola llamada.
En lugar de pasar un único registro base, se puede proporcionar una tabla de registros base
en el segundo argumento. También se proporcionan registros de cambio en una tabla, que se
corresponden uno a uno con los registros base. El número de registros en cada tabla de
cambios debe ser el mismo que el número de registros en la tabla base.
Cuando se usa Patch de esta manera, el valor devuelto también es una tabla donde cada
registro se corresponde uno a uno con los registros base y de cambio.
Combinar registros fuera de un origen de datos
Especifique dos o más registros que desee combinar. Los registros se procesan en orden
desde el principio de la lista de argumentos hasta el final, donde los valores de propiedad
últimos reemplazan a los primeros.
Patch devuelve el registro combinado y no modifica sus argumentos ni los registros de
ningún origen de datos.

Sintaxis
Modificar o crear un registro en un origen de datos
Patch( DataSource; BaseRecord; ChangeRecord1 [; ChangeRecord2; … ])
DataSource: requerido. El origen de datos que contiene el registro que desea modificar o
que contendrá el registro que desea crear.
BaseRecord: valor necesario. El registro para modificar o crear. Si el registro proviene de
un origen de datos, el registro se encuentra y se modifica. Si se usa el resultado de
Defaults , se crea un registro.
ChangeRecord (s) : requerido. Uno o más registros que contienen propiedades para
modificar en BaseRecord. Los registros de cambio se procesan en orden, desde el
principio de la lista de argumentos hasta el final, donde los valores de propiedad últimos
reemplazan a los primeros.
Modificar o crear un conjunto de registros en un origen de datos
Patch( DataSource; BaseRecordsTable; ChangeRecordTable1 [; ChangeRecordTable2;... ] )
DataSource: requerido. El origen de datos que contiene los registros que desea modificar
o que contendrá los registros que desea crear.
BaseRecordTable: requerido. Una tabla de registros para modificar o crear. Si el registro
proviene de un origen de datos, el registro se encuentra y se modifica. Si se usa el
resultado de Defaults , se crea un registro.
ChangeRecordTable(s) : requerido. Una o varias tablas de registros que contienen
propiedades para modificar de cada registro de BaseRecordTable. Los registros de cambio
se procesan en orden, desde el principio de la lista de argumentos hasta el final, donde
los valores de propiedad últimos reemplazan a los primeros.
Combinar registros
Patch( Record1; Record2 [; …] )
Registro (s) : requerido. Al menos dos de los registros que desea combinar. Los registros se
procesan en orden desde el principio de la lista de argumentos hasta el final, donde los
valores de propiedad últimos reemplazan a los primeros.

Ejemplos
Modificar o crear un registro (en un origen de datos )
En estos ejemplos, modificará o creará un registro en un origen de datos denominado
IceCream, que contiene los datos de esta tabla y generará automáticamente los valores de
la columna ID:

FÓRMULA DESCRIPCIÓN RESULTADO

Patch( IceCream; Modifica un registro del origen { ID: 1, Flavor: "Chocolate",


First( Filter( IceCream; Flavor de datos IceCream: Quantity: 400 }
= "Chocolate" ) ); La columna ID del
{ Quantity: 400 } ) registro para modificar La entrada Chocolate del
contiene el valor de 1. origen de datos IceCream se
(El registro Chocolate ha modificado.
tiene ese ID).
El valor de la columna
Quantity cambia a 400.

Patch( IceCream; Crea un registro en el origen de { ID: 3, Flavor: “Strawberry”,


Defaults( IceCream ); datos IceCream: Quantity: 0 }
{ Flavor: “Strawberry” } ) La columna ID contiene
el valor 3, que el origen Se ha creado la entrada
de datos genera Strawberry en el origen de
automáticamente. datos IceCream.
La columna Quantity
contiene 0, que es el
valor predeterminado
de esa columna en el
origen de datos
IceCream, como
especifica la función
Defaults .
La columna Flavor
contiene el valor de
Strawberry.

Después de que se han evaluado las fórmulas anteriores, el origen de datos termina con
estos valores:
Combinar registros (fuera de un origen de datos )

FÓRMULA DESCRIPCIÓN RESULTADO

Patch( { Name: "James"; Sco Combina dos registros fuera de { Name: "Jim", Score: 90,
re: 90 }; un origen de datos: Passed: true }
{ Name: "Jim"; Passed: true } Los valores de la
) columna Name de cada
registro no coinciden. El
resultado contiene el
valor (Jim) en el registro
que se aproxima más al
final de la lista de
argumentos en lugar
del valor (James) en el
registro que está más
cerca del principio.
El primer registro
contiene una columna
(Score) que no existe
en el segundo registro.
El resultado contiene
esa columna con su
valor (90).
El segundo registro
contiene una columna
(Passed) que no existe
en el primer registro. El
resultado contiene esa
columna con su valor
(true).
Funciones Acos, Acot, Asin, Atan, Atan2, Cos, Cot,
Degrees, Pi, Radians, Sin y Tan en PowerApps
08/10/2019 • 9 minutes to read

Calcula valores trigonométricos.

Descripción
Funciones principales
La función Cos devuelve el coseno de su argumento, un ángulo especificado en radianes.
La función Cot devuelve la cotangente de su argumento, un ángulo especificado en radianes.
La función Sin devuelve el seno de su argumento, un ángulo especificado en radianes.
La función Tan devuelve la tangente de su argumento, un ángulo especificado en radianes.
Funciones inversas
El Acos función devuelve el arcocoseno, o coseno inverso, de su argumento. El arcocoseno es el ángulo cuyo
coseno es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Acot devuelve el valor principal de la arcocotangente, o cotangente inversa, de su argumento. El ángulo
devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Asin devuelve el arcoseno, o seno inverso, de su argumento. El arcoseno es el ángulo cuyo seno es el
argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a π/2.
La función Atan devuelve la arcotangente, o tangente inversa, de su argumento. La arcotangente es el ángulo cuya
tangente es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a π/2.
La función Atan2 devuelve la arcotangente, o tangente inversa, de las coordenadas x e y especificadas como
argumentos. La arcotangente es el ángulo desde el eje x a una línea que contiene el origen (0, 0) y un punto con las
coordenadas (x, y). El ángulo se expresa en radianes entre -π y π, excluyendo -π. Un resultado positivo representa
un ángulo con rotación levógira (hacia la izquierda) desde el eje x; un resultado negativo representa un ángulo con
rotación dextrógira (hacia la derecha). Atan2( a; b ) es igual a Atan( b/a ) , excepto que a puede ser igual a 0 (cero)
con la función Atan2.
Funciones auxiliares
La función Degrees convierte radianes en grados. π radianes equivalen a 180 grados.
La función Pi devuelve el número transcendente π, que comienza 3,141592...
La función Radians convierte grados en radianes.
Notas
Si pasa un solo número a estas funciones, el valor que se devuelve es un resultado único. Si pasa una tabla de una
sola columna que contiene números, el valor que se muestra es una tabla de resultados de una sola columna, un
resultado para cada registro en la tabla del argumento. Si tiene una tabla con varias columnas, puede convertirla en
una tabla de una sola columna, como se describe en cómo trabajar con tablas.
Si algún argumento resultase en un valor no definido, el resultado es blank. Esto puede ocurrir, por ejemplo, al
utilizar las funciones inversas con argumentos que están fuera del intervalo.
Sintaxis
Funciones principales
Cos( Radians )
Cot( Radians )
Sin( Radians )
Tan( Radians )
Radians: requerido. Ángulo sobre el cual operar.
Cos( SingleColumnTable )
Cot( SingleColumnTable )
Sin( SingleColumnTable )
Tan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de ángulos de una sola columna sobre la que se va a actuar.
Funciones inversas
Acos( Number )
Acot( Number )
Asin( Number )
Atan( Number )
Number: requerido. El número sobre el cual operar.
Acos( SingleColumnTable )
Acot( SingleColumnTable )
Asin( SingleColumnTable )
Atan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de números de una sola columna sobre la cual operar.
Atan2( X; Y )
X: requerido. coordenadas del eje X.
Y: requerido. coordenadas del eje Y.
Funciones del asistente
Degrees( Radians )
Radians: requerido. Ángulo en radianes para convertir en grados.
Pi()
Radians( Degrees )
Degrees: requerido. Ángulo en grados para convertir en radianes.

Ejemplos
Número único
FÓRMULA DESCRIPCIÓN RESULTADO

Cos( 1;047197 ) Devuelve el coseno de 1,047197 0,5


radianes o 60 grados.
FÓRMULA DESCRIPCIÓN RESULTADO

Cot( Pi()/4 ) Devuelve la cotangente de 0,785398... 1


radianes o 45 grados.

Sin( Pi()/2 ) Devuelve el seno de 1,570796 radianes 1


o 90 grados.

Tan ( Radians(60) ) Devuelve la tangente de 1,047197 1,732050...


radianes o 60 grados.

Acos( 0;5 ) Devuelve el arcocoseno de 0,5 en 1,047197...


radianes.

Acot( 1 ) Devuelve la arcocotangente de 1, en 0,785398...


radianes.

Asin( 1 ) Devuelve el arcoseno de 1, en radianes. 1,570796...

Atan ( 1,732050 ) Devuelve la arcotangente de 1,732050, 1,047197...


en radianes.

Atan2( 5; 3 ) Devuelve la arcotangente del ángulo del 0,540419...


eje x de la línea que contiene el origen
(0,0) y la coordenada (5,3), que es
aproximadamente 31 grados.

Atan2( 4; 4 ) Devuelve la arcotangente del ángulo del 0,785398...


eje x de la línea que contiene el origen
(0,0) y la coordenada (4,4), que es
exactamente π/4 radianes o 45 grados.

Degrees ( 1,047197 ) Devuelve el número equivalente de 60


grados de 1,047197 radianes.

Pi() El número trascendente π. 3,141592...

Radians ( 15 ) Devuelve el número equivalente de 0,261799...


radianes para 15 grados.

Tabla de una sola columna


Los ejemplos de esta sección usan un origen de datos denominado ValueTable que contiene los siguientes datos:
El último registro en la tabla es π/2 radianes o 90 grados.

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

Cos( ValueTable ) Devuelve el coseno de cada número en


la tabla.

Cot( ValueTable ) Devuelve la cotangente de cada número


en la tabla.

Sin( ValueTable ) Devuelve el seno de cada número en la


tabla.

Tan( ValueTable ) Devuelve la tangente de cada número


en la tabla.

Acos( ValueTable ) Devuelve el arcocoseno de cada número


en la tabla.

Acot( ValueTable ) Devuelve la arcocotangente de cada


número en la tabla.

Asin( ValueTable ) Devuelve el arcoseno de cada número


en la tabla.

Atan( ValueTable ) Devuelve la arcotangente de cada


número en la tabla.
FÓRMULA DESCRIPCIÓN RESULTADO

Degrees( ValueTable ) Devuelve el número equivalente de


grados para cada número de la tabla,
supone que son ángulos en radianes.

Radians( ValueTable ) Devuelve el número equivalente de


radianes para cada número de la tabla,
supone que son ángulos en grados.
Funciones EncodeUrl y PlainText en PowerApps
07/10/2019 • 2 minutes to read

Codifica y descodifica las cadenas.

Descripción
La función EncodeUrl codifica una cadena de dirección URL, reemplazando algunos caracteres no alfanuméricos
por% y un número hexadecimal.
La función Plaintext quita las etiquetas HTML y XML, convirtiendo algunas etiquetas como estas en un símbolo
adecuado:
&nbsp;
&quot;
El valor devuelto de estas funciones es la cadena codificada o descodificada. Esta función no quita todas las
etiquetas HTML y XML.

Sintaxis
EncodeUrl( String )
String: requerido. Dirección URL que se va a codificar.
PlainText( String )
String: requerido. Cadena de la que se van a quitar las etiquetas HTML y XML.

Ejemplos
Si muestra una fuente RSS en una galería de texto y, después, establece la propiedad Text de una etiqueta de esa
galería en ThisItem.description, la etiqueta podría mostrar el código HTML o XML sin formato, como en este
ejemplo:

<p>We have done an unusually&nbsp;&quot;deep&quot; globalization and localization.<p>

Si establece la propiedad Text de la etiqueta en PlainText(ThisItem.description) , el texto aparece como en este


ejemplo:

We have done an unusually "deep" globalization and localization.


Funciones Abs, Exp, Ln, Power y Sqrt en PowerApps
08/10/2019 • 4 minutes to read

Calcula valores absolutos, logaritmos naturales, raíces cuadradas y los resultados de elevar e o cualquier número a
una potencia especificada.

Descripción
La función Abs muestra el valor no negativo de su argumento. Si el número es negativo, Abs muestra el
equivalente positivo.
La función Exp muestra e elevado a la potencia de su argumento. El número trascendente e comienza con
2,7182818...
La función Ln muestra el argumento natural (e base) de su argumento.
La función Power muestra un número elevado a una potencia. Es equivalente a usar el operador ^ .
La función Sqrt muestra el número que, cuando se multiplica por sí mismo, es igual a su argumento.
Si pasa un solo número, el valor que se muestra es un resultado único basado en la función llamada. Si pasa una
tabla de una sola columna que contiene números, el valor que se muestra es una tabla de resultados de una sola
columna, un resultado para cada registro en la tabla del argumento. Si tiene una tabla con varias columnas, puede
convertirla en una tabla de una sola columna, como se describe en cómo trabajar con tablas.
Si algún argumento pudiera mostrar un valor no definido, el resultado queda en blanco. Por ejemplo, esto puede
pasar con las raíces cuadradas y los logaritmos de números negativos.

Sintaxis
Abs( Number )
Exp( Number )
Ln( Number )
Sqrt( Number )
Number: requerido. El número sobre el cual operar.
Power( Base; Exponente )
Base: requerido. Número base que se va a elevar.
Exponent: requerido. El exponente al que se eleva el número base.
Abs( SingleColumnTable )
Exp( SingleColumnTable )
Ln( SingleColumnTable )
Sqrt( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de números de una sola columna sobre la cual operar.

Ejemplos
Número único
FÓRMULA DESCRIPCIÓN RESULTADO

Abs( -55 ) Muestra el número sin el signo 55


negativo.

Exp( 2 ) Muestra e elevado a la potencia de 2, o 7,389056...


e * e.

Ln( 100 ) Muestra el algoritmo natural (e base) 4,605170...


del número 100.

Power( 5; 3 ) Muestra 5 elevado a la potencia de 3, o 125


5 * 5 * 5.

Sqrt( 9 ) Muestra el número que, cuando se 3


multiplica por sí mismo, da como
resultado 9.

Tabla de una sola columna


Los ejemplos de esta sección usan un origen de datos denominado ValueTable que contiene estos datos:

FÓRMULA DESCRIPCIÓN RESULTADO

Abs( ValueTable ) Muestra el valor absoluto de cada


número en la tabla.

Exp( ValueTable ) Muestra e elevado a la potencia de cada


número en la tabla.

Ln( ValueTable ) Muestra el logaritmo natural de cada


número en la tabla.

Sqrt( ValueTable ) Muestra la raíz cuadrada de cada


número en la tabla.

Ejemplo paso a paso


1. Agregue un control Entrada de texto y denomínelo Origen.
2. Agregue un control Label y establezca su propiedad Text en esta fórmula:
Sqrt( Value( Source.Text ) )
3. Escriba un número en Origen y confirme que el control Etiqueta muestra la raíz cuadrada del número que
escribió.
Funciones Lower, Upper y Proper en PowerApps
08/10/2019 • 3 minutes to read

Convierte las letras de una cadena de texto en todo minúsculas, todo mayúsculas o en mayúsculas o minúsculas,
según corresponda.

Descripción
Las funciones Lower, Upper y Proper convierten las letras de una cadena en mayúsculas o minúsculas.
Lower convierte las letras mayúsculas en minúsculas.
Upper convierte las letras minúsculas en mayúsculas.
Proper convierte la primera letra de cada palabra en mayúscula si está en minúscula o en minúscula si está en
mayúscula.
Las tres funciones omiten los caracteres que no son letras.
Si se pasa una cadena única, el valor devuelto es la versión convertida de dicha cadena. Si se pasa una tabla de una
columna que contiene cadenas, el valor devuelto es una tabla de una columna de cadenas convertidas. Si tiene una
tabla con varias columnas, puede convertirla en una tabla de una sola columna, como se describe en cómo trabajar
con tablas.

Sintaxis
Lower( String )
Upper( String )
Proper( String )
String: requerido. La cadena que se va a convertir.
Lower( SingleColumnTable )
Upper( SingleColumnTable )
Proper( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de una columna de cadenas para convertir.

Ejemplos
Cadena única
En los ejemplos de esta sección se usa un control de entrada de texto, llamado Author, como origen de datos. El
control contiene la cadena "E". E. CummINGS".

FÓRMULA DESCRIPCIÓN RESULTADO

Lower( Author.Text ) Convierte las letras mayúsculas de la "e. e. cummings"


cadena a minúsculas.

Upper( Author.Text ) Convierte las letras minúsculas de la "E. E. CUMMINGS"


cadena a mayúsculas.
FÓRMULA DESCRIPCIÓN RESULTADO

Proper( Author.Text ) Convierte la primera letra de cada "E. E. Cummings"


palabra a mayúscula si está en
minúscula y convierte cualquier otra
letra que esté en mayúsculas a
minúsculas.

Tabla de una sola columna


Los ejemplos de esta sección convierten las cadenas de la columna Address del origen de datos People, que
contiene estos datos:

Cada fórmula devuelve una tabla de una columna que contiene las cadenas convertidas.

FÓRMULA DESCRIPCIÓN RESULTADO

Lower( Convierte cualquier letra que está en


ShowColumns( People; "Address" ) ) minúscula a mayúscula.

Upper( Convierte cualquier letra que está en


ShowColumns( People; "Address" ) ) minúscula a mayúscula.

Proper( Convierte la primera letra de una


ShowColumns( People; "Address" ) ) palabra en minúsculas a mayúsculas y
convierte cualquier otra letra que esté
en mayúsculas a minúsculas.

Ejemplo paso a paso


1. Agregue un control Entrada de texto y denomínelo Origen.
2. Agregue una etiqueta y establezca su propiedad Text en esta función:
Proper(Source.Text)
3. Presione F5 y, a continuación, escriba WE ARE THE BEST! en el cuadro Origen.
La etiqueta muestra We Are The Best!
Funciones Acos, Acot, Asin, Atan, Atan2, Cos, Cot,
Degrees, Pi, Radians, Sin y Tan en PowerApps
08/10/2019 • 9 minutes to read

Calcula valores trigonométricos.

Descripción
Funciones principales
La función Cos devuelve el coseno de su argumento, un ángulo especificado en radianes.
La función Cot devuelve la cotangente de su argumento, un ángulo especificado en radianes.
La función Sin devuelve el seno de su argumento, un ángulo especificado en radianes.
La función Tan devuelve la tangente de su argumento, un ángulo especificado en radianes.
Funciones inversas
El Acos función devuelve el arcocoseno, o coseno inverso, de su argumento. El arcocoseno es el ángulo cuyo
coseno es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Acot devuelve el valor principal de la arcocotangente, o cotangente inversa, de su argumento. El ángulo
devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Asin devuelve el arcoseno, o seno inverso, de su argumento. El arcoseno es el ángulo cuyo seno es el
argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a π/2.
La función Atan devuelve la arcotangente, o tangente inversa, de su argumento. La arcotangente es el ángulo cuya
tangente es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a π/2.
La función Atan2 devuelve la arcotangente, o tangente inversa, de las coordenadas x e y especificadas como
argumentos. La arcotangente es el ángulo desde el eje x a una línea que contiene el origen (0, 0) y un punto con las
coordenadas (x, y). El ángulo se expresa en radianes entre -π y π, excluyendo -π. Un resultado positivo representa
un ángulo con rotación levógira (hacia la izquierda) desde el eje x; un resultado negativo representa un ángulo con
rotación dextrógira (hacia la derecha). Atan2( a; b ) es igual a Atan( b/a ) , excepto que a puede ser igual a 0 (cero)
con la función Atan2.
Funciones auxiliares
La función Degrees convierte radianes en grados. π radianes equivalen a 180 grados.
La función Pi devuelve el número transcendente π, que comienza 3,141592...
La función Radians convierte grados en radianes.
Notas
Si pasa un solo número a estas funciones, el valor que se devuelve es un resultado único. Si pasa una tabla de una
sola columna que contiene números, el valor que se muestra es una tabla de resultados de una sola columna, un
resultado para cada registro en la tabla del argumento. Si tiene una tabla con varias columnas, puede convertirla en
una tabla de una sola columna, como se describe en cómo trabajar con tablas.
Si algún argumento resultase en un valor no definido, el resultado es blank. Esto puede ocurrir, por ejemplo, al
utilizar las funciones inversas con argumentos que están fuera del intervalo.
Sintaxis
Funciones principales
Cos( Radians )
Cot( Radians )
Sin( Radians )
Tan( Radians )
Radians: requerido. Ángulo sobre el cual operar.
Cos( SingleColumnTable )
Cot( SingleColumnTable )
Sin( SingleColumnTable )
Tan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de ángulos de una sola columna sobre la que se va a actuar.
Funciones inversas
Acos( Number )
Acot( Number )
Asin( Number )
Atan( Number )
Number: requerido. El número sobre el cual operar.
Acos( SingleColumnTable )
Acot( SingleColumnTable )
Asin( SingleColumnTable )
Atan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de números de una sola columna sobre la cual operar.
Atan2( X; Y )
X: requerido. coordenadas del eje X.
Y: requerido. coordenadas del eje Y.
Funciones del asistente
Degrees( Radians )
Radians: requerido. Ángulo en radianes para convertir en grados.
Pi()
Radians( Degrees )
Degrees: requerido. Ángulo en grados para convertir en radianes.

Ejemplos
Número único
FÓRMULA DESCRIPCIÓN RESULTADO

Cos( 1;047197 ) Devuelve el coseno de 1,047197 0,5


radianes o 60 grados.
FÓRMULA DESCRIPCIÓN RESULTADO

Cot( Pi()/4 ) Devuelve la cotangente de 0,785398... 1


radianes o 45 grados.

Sin( Pi()/2 ) Devuelve el seno de 1,570796 radianes 1


o 90 grados.

Tan ( Radians(60) ) Devuelve la tangente de 1,047197 1,732050...


radianes o 60 grados.

Acos( 0;5 ) Devuelve el arcocoseno de 0,5 en 1,047197...


radianes.

Acot( 1 ) Devuelve la arcocotangente de 1, en 0,785398...


radianes.

Asin( 1 ) Devuelve el arcoseno de 1, en radianes. 1,570796...

Atan ( 1,732050 ) Devuelve la arcotangente de 1,732050, 1,047197...


en radianes.

Atan2( 5; 3 ) Devuelve la arcotangente del ángulo del 0,540419...


eje x de la línea que contiene el origen
(0,0) y la coordenada (5,3), que es
aproximadamente 31 grados.

Atan2( 4; 4 ) Devuelve la arcotangente del ángulo del 0,785398...


eje x de la línea que contiene el origen
(0,0) y la coordenada (4,4), que es
exactamente π/4 radianes o 45 grados.

Degrees ( 1,047197 ) Devuelve el número equivalente de 60


grados de 1,047197 radianes.

Pi() El número trascendente π. 3,141592...

Radians ( 15 ) Devuelve el número equivalente de 0,261799...


radianes para 15 grados.

Tabla de una sola columna


Los ejemplos de esta sección usan un origen de datos denominado ValueTable que contiene los siguientes datos:
El último registro en la tabla es π/2 radianes o 90 grados.

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

Cos( ValueTable ) Devuelve el coseno de cada número en


la tabla.

Cot( ValueTable ) Devuelve la cotangente de cada número


en la tabla.

Sin( ValueTable ) Devuelve el seno de cada número en la


tabla.

Tan( ValueTable ) Devuelve la tangente de cada número


en la tabla.

Acos( ValueTable ) Devuelve el arcocoseno de cada número


en la tabla.

Acot( ValueTable ) Devuelve la arcocotangente de cada


número en la tabla.

Asin( ValueTable ) Devuelve el arcoseno de cada número


en la tabla.

Atan( ValueTable ) Devuelve la arcotangente de cada


número en la tabla.
FÓRMULA DESCRIPCIÓN RESULTADO

Degrees( ValueTable ) Devuelve el número equivalente de


grados para cada número de la tabla,
supone que son ángulos en radianes.

Radians( ValueTable ) Devuelve el número equivalente de


radianes para cada número de la tabla,
supone que son ángulos en grados.
Función Rand en PowerApps
08/10/2019 • 4 minutes to read

Devuelve un número pseudoaleatorio.

Descripción
La función Rand devuelve un número seudoaleatorio que es mayor o igual que 0 y menor que 1.

Funciones volátiles
Rand es una función volátil. Cada vez que se evalúa la función, esta devuelve un valor diferente.
Cuando se usa en una fórmula de flujo de datos, una función volátil solo devuelve un valor diferente si se vuelve a
evaluar la fórmula en la que aparece. Si no hay ningún otro cambio en la fórmula, presenta el mismo valor durante
la ejecución de la aplicación.
Por ejemplo, un control de etiqueta con Label1.Text = Rand() no cambiará mientras la aplicación esté activa. Solo
se generará un nuevo valor si se cierra y se vuelve a abrir la aplicación.
Si la función forma parte de una fórmula en la que haya cambiado algún elemento más, se volverá a evaluar. Por
ejemplo, si modificamos el ejemplo para incluir un control deslizante con Label1.Text = Slider1.Value + Rand()
, se generará un nuevo número aleatorio cada vez que cambie el valor del control deslizante. Asimismo, se volverá
a evaluar la propiedad de texto de la etiqueta. Encontrará el ejemplo a continuación.
Cuando se usa en una fórmula de comportamiento, Rand se evalúa cada vez que se evalúa la fórmula de
comportamiento. Encontrará un ejemplo a continuación.

Sintaxis
Rand()

Ejemplos
Mostrar un número aleatorio diferente a medida que cambia la entrada del usuario
1. Agregue un control Control deslizante y, si tiene otro nombre, cámbielo a Slider1.
2. Agregue un control Label y establezca su propiedad Text en esta fórmula:
Slider1.Value + Rand()
La etiqueta muestra 50, que es el valor predeterminado del control deslizante, más un decimal aleatorio:
3. Cambie el valor del control deslizante manteniendo la tecla Alt presionada.
Cada vez que cambie el valor del control deslizante, la parte decimal de la etiqueta mostrará un número
aleatorio diferente:

Creación de una tabla de números aleatorios


1. Agregue un control Botón y establezca su propiedad OnSelect en esta fórmula:
ClearCollect( RandomNumbers; ForAll( [ 1; 2; 3; 4; 5 ]; Rand() ))
Con esta fórmula, se crea una tabla de una sola columna que se usa para iterar cinco veces, lo que produce
cinco números aleatorios.
2. Agregue una tabla de datos , establezca su propiedad Items en RandomNumbers y muestre el campo
Value.

3. Haga clic en el botón o púlselo para seleccionarlo, manteniendo la tecla Alt presionada.
En la tabla de datos se muestran cinco números decimales aleatorios:
4. Vuelva a seleccionar el botón para mostrar una lista de números aleatorios diferentes:

Para generar un número aleatorio único en lugar de una tabla, use Set( RandomNumber; Rand() ) .
Función Refresh en PowerApps
07/10/2019 • 2 minutes to read

Actualiza los registros de un origen de datos.

Descripción
La función Refresh recupera una nueva copia de un origen de datos. Verá los cambios que realizaron otros
usuarios.
Refresh no tiene ningún valor devuelto y solo se puede usar en fórmulas de comportamiento.

Sintaxis
Refresh( DataSource )
DataSource: requerido. El origen de datos que desea actualizar.

Ejemplo
En este ejemplo, actualizará el origen de datos denominado IceCream, que empieza con estos datos:

Un usuario de otro dispositivo cambia la columna Quantity en el registro Strawberry a 400. No verá este
cambio hasta que se ejecuta esta fórmula:
Refresh( IceCream )
Una vez ejecutada la fórmula, las galerías que están enlazadas al origen de datos IceCream mostrarán el valor
actualizado de Strawberry:
Funciones de relación y desrelación en PowerApps
26/11/2019 • 19 minutes to read

Relacionar y desrelacionar registros de dos entidades a través de una relación de uno a varios o de varios a varios.

Descripción
La función Relate vincula dos registros a través de una relación de uno a varios o de varios a varios en Common
Data Service. La función no relacional invierte el proceso y quita el vínculo.
En el caso de las relaciones uno a varios, la entidad muchos tiene un campo de clave externa que apunta a un
registro de la entidad. Relacionar establece este campo para que señale a un registro específico de la entidad,
mientras que sin relación establece este campo en en blanco. Si el campo ya está establecido cuando se llama a
Relate , el vínculo existente se pierde en favor del nuevo vínculo. También puede establecer este campo mediante la
función patch o un control Edit Form . no es necesario usar la función Relate .
En el caso de las relaciones de varios a varios, el sistema que vincula los registros mantiene una tabla combinada
oculta. No se puede obtener acceso a esta tabla de combinación directamente; solo se puede leer a través de una
proyección uno a varios y establecerse a través de las funciones relacionar y no relacionar . Ninguna entidad
relacionada tiene una clave externa.
Los datos de la entidad que especifique en el primer argumento se actualizarán para reflejar el cambio, pero los
datos de la entidad que especifique en el segundo argumento no lo serán. Esos datos se deben actualizar
manualmente con la función de actualización para mostrar el resultado de la operación.
Estas funciones nunca crean o eliminan un registro. Solo relacionan o desrelacionan dos registros que ya existen.
Estas funciones solo se pueden usar en fórmulas de comportamiento.

NOTE
Estas funciones forman parte de una característica de vista previa y su comportamiento solo está disponible cuando está
habilitada la característica datos relacionales, conjuntos de opciones y otras características nuevas de CDs . Se trata de
una configuración de nivel de aplicación que está habilitada de forma predeterminada para las nuevas aplicaciones. Para
encontrar este modificador de características, abra el menú archivo , seleccione Configuración de la aplicacióny, a
continuación, seleccione Configuración avanzada. Sus comentarios nos sirven mucho: denos su opinión en los foros de la
comunidad de PowerApps.

Sintaxis
Relacionar( Entity1RelatedTable; Entity2Record )
Entity1RelatedTable : requerido. Para un registro de Entity1, la tabla de registros Entity2 relacionados con una
relación de uno a varios o de varios a varios.
Entity2Record : requerido. Registro Entity2 que se va a agregar a la relación.
No relacionar( Entity1RelatedTable; Entity2Record )
Entity1RelatedTable : requerido. Para un registro de Entity1, la tabla de registros Entity2 relacionados con una
relación de uno a varios o de varios a varios.
Entity2Record : requerido. Registro Entity2 que se va a quitar de la relación.
Ejemplos
Considere una entidad Products con las siguientes relaciones, tal como se ha visualizado en el visor de entidades
del portal de PowerApps:

NOMBRE PARA MOSTRAR DE RELACIÓN ENTIDAD RELACIONADA TIPO DE RELACIÓN

Reserva del producto Movs Uno a varios

Contacto del ↔ del producto Contacto Varios a varios

Los productos y las reservas se relacionan a través de una relación de uno a varios. Para relacionar el primer
registro de la entidad reservas con el primer registro de la entidad productos :
Relate( First( Products ).Reservations; First( Reservations ) )

Para quitar la relación entre estos registros:


Unrelate( First( Products ).Reservations; First( Reservations ) )

En ningún momento se crea o quita un registro, solo se modificó la relación entre los registros.
Los productos y los contactos se relacionan a través de una relación de varios a varios. Para relacionar el primer
registro de la entidad Contacts con el primer registro de la entidad Products :
Relate( First( Products ).Contacts; First( Contacts ) )

Como las relaciones varios a varios son simétricas, podríamos hacer esto también en la dirección opuesta:
Relate( First( Contacts ).Products; First( Products ) )

Para quitar la relación entre estos registros:


Unrelate( First( Products ).Contacts; First( Contacts ) )

de
Unrelate( First( Contacts ).Products; First( Products ) )

En el siguiente tutorial se realizan exactamente estas operaciones en estas entidades mediante una aplicación con
controles de Galería y de cuadro combinado para seleccionar los registros implicados.
Estos ejemplos dependen de los datos de ejemplo que se instalan en el entorno. Cree un entorno de prueba que
incluya datos de ejemplo o agregue datos de ejemplo a un entorno existente.
Uno a varios
Función Relate
En primer lugar, creará una aplicación sencilla para ver y reasignar las reservas asociadas a un producto.
1. Cree una aplicación de Tablet PC en blanco.
2. En la pestaña Vista, seleccione Orígenes de datos.
3. En el panel datos , seleccione Agregar origen de datos > Common Data Service > productos >
conectar.
La entidad Products forma parte de los datos de ejemplo cargados anteriormente.
4. En la pestaña Insertar , agregue un control Galería vertical en blanco.
5. Asegúrese de que el control que acaba de agregar se denomina Gallery1y, a continuación, muévalo y
cambie su tamaño para rellenar el lado izquierdo de la pantalla.
6. En la pestaña propiedades , establezca la propiedad elementos de Gallery1en productos y su diseño en
imagen y título.

7. En Gallery1, asegúrese de que el control etiqueta se denomine Title1y, a continuación, establezca su


propiedad Text en ThisItem.Name.

8. Seleccione la pantalla para evitar que se inserte el siguiente elemento en Gallery1. Agregue un segundo
control Galería vertical en blanco y asegúrese de que se denomina Gallery2.
Gallery2 mostrará las reservas de cualquier producto que seleccione el usuario en Gallery1.
9. Mueva y cambie el tamaño de Gallery2 para rellenar el cuadrante superior derecho de la pantalla.
10. opta Agregue el control de etiqueta azul sobre Gallery2, como se muestra en el gráfico siguiente.
11. En la barra de fórmulas, establezca la propiedad Items de Gallery2 en Gallery1. Selected. reservas.

12. En el panel Propiedades, establezca diseño de Gallery2en título.

13. En Gallery2, agregue un control de cuadro combinado , asegúrese de que se llama ComboBox1y, a
continuación, muévalo y cambie su tamaño para evitar que se bloqueen los demás controles de Gallery2.
14. En la pestaña propiedades , establezca la propiedad elementos de ComboBox1en productos.

15. Desplácese hacia abajo en la pestaña propiedades y establezca la propiedad Permitir selección múltiple
de ComboBox1en OFF.
16. En la barra de fórmulas, establezca la propiedad DefaultSelectedItems de ComboBox1en ThisItem. '
Product reservation ' .

17. En Gallery2, establezca la propiedad alseleccionar de NextArrow2en esta fórmula:

Relate( ComboBox1.Selected.Reservations; ThisItem )

Cuando el usuario selecciona este icono, la reserva actual cambia al producto que el usuario seleccionó en
ComboBox1.

18. Presione F5 para probar la aplicación en modo de vista previa.


Con esta aplicación, el usuario puede trasladar una reserva de un producto a otro. En el caso de una reserva de un
producto, el usuario puede seleccionar un producto diferente en ComboBox1 y seleccionar NextArrow2 para
cambiar esa reserva.

No Relacionate (función )
Llegados a este punto, puede trasladar la relación de un registro a otro, pero no puede quitar la relación por
completo. Puede usar la función no relacionar para desconectar un registro de reserva de cualquier producto.
1. En la pestaña Vista, seleccione Orígenes de datos.
2. En el panel datos , seleccione Agregar origen de datos > Common Data Service > reservas >
conectar.
3. En Gallery2, establezca la fórmula alseleccionar para NextArrow2 en esta fórmula:

If( IsBlank( ComboBox1.Selected );


Unrelate( Gallery1.Selected.Reservations; ThisItem );
Relate( ComboBox1.Selected.Reservations; ThisItem )
);;
Refresh( Reservations )
4. Copie Gallery2 en el portapapeles; para ello, selecciónelo y presione Ctrl + C.
5. Pegue un duplicado de Gallery2 en la misma pantalla presionando Ctrl-V y, a continuación, muévalo al
cuadrante inferior derecho de la pantalla.
6. opta Si agregó una etiqueta por encima de Gallery2, repita los dos pasos anteriores para esa etiqueta.
7. Asegúrese de que el duplicado de Gallery2 se denomine Gallery2_1y, a continuación, establezca la
propiedad elementos en esta fórmula:

Filter( Reservations; IsBlank( 'Product Reservation' ) )

Aparece una advertencia de delegación, pero no importa la pequeña cantidad de datos en este ejemplo.

Con estos cambios, los usuarios pueden borrar la selección en ComboBox1 para un contacto si esa persona no ha
reservado un producto. Los contactos que no han reservado un producto aparecen en Gallery2_1 en los que los
usuarios pueden asignar cada contacto a un producto.

Varios a varios
Crear una relación de varios a varios
Los datos de ejemplo no incluyen una relación de varios a varios, pero creará uno entre la entidad productos y la
entidad contactos. Los usuarios pueden relacionar cada producto con más de un contacto y cada contacto con más
de un producto.
1. En esta página, seleccione datos en la barra de navegación izquierda y, a continuación, seleccione
entidades.

2. Cambie el filtro de entidad para incluir todas las entidades.


De forma predeterminada, las entidades de ejemplo no aparecen.

3. Desplácese hacia abajo, abra la entidad Product y seleccione Relationships (relaciones).


4. Seleccione Agregar relación > varios a varios.

5. Seleccione la entidad contacto para la relación.

6. Seleccione listo > Guardar entidad.


Relacionar y desrelacionar contactos con uno o varios productos
Creará otra aplicación similar a la que creó anteriormente en este tema, pero la nueva aplicación proporcionará una
relación de varios a varios. Cada contacto podrá reservar varios productos en lugar de uno solo.
1. En una aplicación en blanco para tabletas, cree Gallery1 como se describe en el primer procedimiento de
este tema.
2. Agregue otro control Galería vertical en blanco, asegúrese de que se llama Gallery2y, a continuación,
muévalo a la esquina superior derecha de la pantalla.
Más adelante en este tema, agregará un control de cuadro combinado en Gallery2.
3. En la barra de fórmulas, establezca la propiedad elementos de Gallery2en Gallery1. Selected. contacts.

4. En la pestaña propiedades , establezca diseño en imagen y título.


5. En Gallery2, asegúrese de que el control etiqueta se denomine Title2y, a continuación, establezca su
propiedad Text en ThisItem. ' Full Name ' .
No aparecerá ningún texto en ese control hasta que finalice este procedimiento y asigne un contacto a un
producto.

6. Elimine NextArrow2, inserte un icono de cancelación y asegúrese de que se llama icon1.


7. Establezca la propiedad alseleccionar del icono Cancelar en esta fórmula:

Unrelate( Gallery1.Selected.Contacts; ThisItem )


8. En la pestaña Vista, seleccione Orígenes de datos.
9. En el panel datos , seleccione Agregar origen de datos > Common Data Service > contactos >
conectar.
10. En Gallery2, agregue un control de cuadro combinado , asegúrese de que se llama ComboBox1y, a
continuación, establezca su propiedad Items en Contacts.

11. En la pestaña propiedades , establezca Permitir selección múltiple en desactivado.

12. Inserte un icono Agregar y establezca su propiedad alseleccionar en esta fórmula:

Relate( Gallery1.Selected.Contacts; ComboBox1.Selected )


Con esta aplicación, los usuarios ahora pueden relacionar libremente y desrelacionar un conjunto de contactos con
cada producto.
Para agregar un contacto a un producto, seleccione el contacto en el cuadro combinado de la parte inferior
de la pantalla y, a continuación, seleccione el icono Agregar .
Para quitar un contacto de un producto, seleccione el icono Cancelar del contacto.
A diferencia de uno a varios, una relación de varios a varios permite a los usuarios asociar el mismo contacto
con varios productos.

En orden inverso: relacionar y desrelacionar productos con varios contactos


Las relaciones de varios a varios son simétricas. Puede extender el ejemplo para agregar productos a un contacto y
después alternar entre las dos pantallas para mostrar cómo aparece la relación desde cualquier dirección.
1. Establezca la propiedad divisible de Screen1 en Actualizar (productos) .
Cuando se actualiza una relación de uno a varios o de varios a varios, solo se actualizan los datos de la
entidad del primer argumento de la llamada relacionada o no relacionada . La segunda debe actualizarse
manualmente si desea cambiar entre las pantallas de esta aplicación.
2. Screen1duplicado.
El duplicado se denominará Screen1_1 y formará la base para examinar las relaciones del lado de los
contactos.

3. Para crear la vista inversa, cambie estas fórmulas en los controles de Screen1_1:
Screen1_1. divisible = Refresh( Contacts )
Gallery1_1. Items = Contacts
Title1_1. Text = ThisItem.'Full Name'
Label1_1. Text = "Selected Contact Products"
Gallery2_1. Items = Gallery1_1.Selected.Products
Title2_1. Text = ThisItem.Name
Icon1_1. Select = Unrelate( Gallery1_1.Selected.Products; ThisItem )
ComboBox1_1. Items = Products
Icon2_1. Select = Relate( Gallery1_1.Selected.Products; ComboBox1_1.Selected )
El resultado tendrá un aspecto muy similar al de la pantalla anterior, pero se incluye en la relación del lado de
los contactos .
4. Inserte un icono de flechas hacia arriba y establezca su propiedad Alseleccionar en Navigate (Screen1,
None) . Haga lo mismo en Screen1 con la fórmula navigate (Screen1_1, None) .

Con esta nueva pantalla, los usuarios pueden agregar un contacto a un producto y, a continuación, pasar a una vista
de contactos y ver el producto asociado. Las relaciones son simétricas y se comparten entre las dos pantallas.
Funciones Remove y RemoveIf en PowerApps
08/10/2019 • 6 minutes to read

Quita registros de un origen de datos.

Descripción
Función Remove
Use la función Remove para quitar un registro o registros específicos de un origen de datos.
Para las colecciones, tiene que coincidir con todo el registro. Puede usar el argumento Todo para quitar todas las
copias de un registro; en caso contrario, se quita solo una copia del registro.
Función RemoveIf
Use la función RemoveIf para quitar un registro o registros en función de una condición o un conjunto de
condiciones. Cada condición puede ser cualquier fórmula que da como resultado true o false y puede hacer
referencia a columnas del origen de datos por su nombre. Cada condición se evalúa individualmente para cada
registro, y si todas las condiciones se evalúan como true se elimina el registro.
Remove y RemoveIf devuelven el origen de datos modificado como una tabla. Puede usar ambas funciones
únicamente en fórmulas de comportamiento.
También puede usar la función Clear para eliminar registros en un origen de datos.
Delegación
Cuando se usan con un origen de datos, estas funciones no se pueden delegar. Solo se recuperará la primera parte
del origen de datos, y después se aplicará la función. Es posible que el resultado no represente la historia completa.
Aparecerá una advertencia en el momento de la creación para recordarle esta limitación y para sugerirle un cambio
a alternativas delegables siempre que sea posible. Para obtener más información, consulte la información general
sobre delegación

Sintaxis
Remove( DataSource; Record1 [; Record2; ... ] [; All ] )
DataSource: requerido. El origen de datos que contiene el registro o los registros que desea quitar.
Registro (s) : requerido. El registro o los registros que se van a quitar.
Todo: opcional. En una colección, el mismo registro puede aparecer más de una vez. Puede agregar el
argumento Todo para quitar todas las copias del registro.
Remove( DataSource; Table [; All ] )
DataSource: requerido. El origen de datos que contiene los registros que desea quitar.
Table: requerido. Tabla de registros que se van a quitar.
Todo: opcional. En una colección, el mismo registro puede aparecer más de una vez. Puede agregar el
argumento Todo para quitar todas las copias del registro.
RemoveIf( DataSource; Condición [;...])
DataSource: requerido. El origen de datos que contiene el registro o los registros que desea quitar.
Condition(s) : requerido. Una fórmula que se evalúa como true para el registro o los registros que se van a
quitar. Puede usar nombres de columna de DataSource en la fórmula. Si especifica varias Condiciones, todas se
deben evaluar como true para el registro o registros que va a quitar.

Ejemplos
En estos ejemplos, va a quitar un registro o registros de un origen de datos que se denomina IceCream y que
comienza con los datos en esta tabla:

FÓRMULA DESCRIPCIÓN RESULTADO

Remove( IceCream; Quita el registro Chocolate del origen


First( Filter( IceCream; Flavor="Choc de datos.
olate" ) ) )

El origen de datos IceCream se ha


modificado.

Remove( IceCream; Quita los dos registros del origen de


First( Filter( IceCream; Flavor="Choc datos.
olate" ) )
First( Filter( IceCream; Flavor="Stra
wberry" ) ) ) El origen de datos IceCream se ha
modificado.

RemoveIf ( IceCream, Quita los registros que tienen una


Cantidad > 150) Cantidad superior a 150.

El origen de datos IceCream se ha


modificado.

RemoveIf( IceCream; Quita los registros que tienen una


Cantidad > 150; Left( Flavor; 1 ) = Cantidad superior a 150 y cuyo valor
"S" ) Flavor empieza con S.

El origen de datos IceCream se ha


modificado.

RemoveIf ( IceCream, true) Quita todos los registros del origen de


datos.
El origen de datos IceCream se ha
modificado.

Paso a paso
1. Importe o cree una colección denominada Inventory y muéstrela en una galería, como se describe en el
artículo sobre la visualización de datos en una galería.
2. En la galería, establezca la propiedad OnSelect de la imagen en la expresión:
Remove(Inventory; ThisItem )
3. Presione F5 y, a continuación, seleccione una imagen en la galería.
El elemento se quita de la galería y la colección.
Funciones Remove y RemoveIf en PowerApps
08/10/2019 • 6 minutes to read

Quita registros de un origen de datos.

Descripción
Función Remove
Use la función Remove para quitar un registro o registros específicos de un origen de datos.
Para las colecciones, tiene que coincidir con todo el registro. Puede usar el argumento Todo para quitar
todas las copias de un registro; en caso contrario, se quita solo una copia del registro.
Función RemoveIf
Use la función RemoveIf para quitar un registro o registros en función de una condición o un conjunto
de condiciones. Cada condición puede ser cualquier fórmula que da como resultado true o false y puede
hacer referencia a columnas del origen de datos por su nombre. Cada condición se evalúa
individualmente para cada registro, y si todas las condiciones se evalúan como true se elimina el registro.
Remove y RemoveIf devuelven el origen de datos modificado como una tabla. Puede usar ambas
funciones únicamente en fórmulas de comportamiento.
También puede usar la función Clear para eliminar registros en un origen de datos.
Delegación
Cuando se usan con un origen de datos, estas funciones no se pueden delegar. Solo se recuperará la
primera parte del origen de datos, y después se aplicará la función. Es posible que el resultado no
represente la historia completa. Aparecerá una advertencia en el momento de la creación para recordarle
esta limitación y para sugerirle un cambio a alternativas delegables siempre que sea posible. Para
obtener más información, consulte la información general sobre delegación

Sintaxis
Remove( DataSource; Record1 [; Record2; ... ] [; All ] )
DataSource: requerido. El origen de datos que contiene el registro o los registros que desea quitar.
Registro (s) : requerido. El registro o los registros que se van a quitar.
Todo: opcional. En una colección, el mismo registro puede aparecer más de una vez. Puede agregar el
argumento Todo para quitar todas las copias del registro.
Remove( DataSource; Table [; All ] )
DataSource: requerido. El origen de datos que contiene los registros que desea quitar.
Table: requerido. Tabla de registros que se van a quitar.
Todo: opcional. En una colección, el mismo registro puede aparecer más de una vez. Puede agregar el
argumento Todo para quitar todas las copias del registro.
RemoveIf( DataSource; Condición [;...])
DataSource: requerido. El origen de datos que contiene el registro o los registros que desea quitar.
Condition(s) : requerido. Una fórmula que se evalúa como true para el registro o los registros que se
van a quitar. Puede usar nombres de columna de DataSource en la fórmula. Si especifica varias
Condiciones, todas se deben evaluar como true para el registro o registros que va a quitar.

Ejemplos
En estos ejemplos, va a quitar un registro o registros de un origen de datos que se denomina IceCream
y que comienza con los datos en esta tabla:

FÓRMULA DESCRIPCIÓN RESULTADO

Remove( IceCream; Quita el registro Chocolate del


First( Filter( IceCream; Flavor="C origen de datos.
hocolate" ) ) )

El origen de datos IceCream se ha


modificado.

Remove( IceCream; Quita los dos registros del origen de


First( Filter( IceCream; Flavor="C datos.
hocolate" ) )
First( Filter( IceCream; Flavor="St
rawberry" ) ) ) El origen de datos IceCream se ha
modificado.

RemoveIf ( IceCream, Quita los registros que tienen una


Cantidad > 150) Cantidad superior a 150.

El origen de datos IceCream se ha


modificado.

RemoveIf( IceCream; Quita los registros que tienen una


Cantidad > 150; Left( Flavor; 1 ) Cantidad superior a 150 y cuyo
= "S" ) valor Flavor empieza con S.

El origen de datos IceCream se ha


modificado.

RemoveIf ( IceCream, true) Quita todos los registros del origen


de datos.
El origen de datos IceCream se ha
modificado.

Paso a paso
1. Importe o cree una colección denominada Inventory y muéstrela en una galería, como se describe en
el artículo sobre la visualización de datos en una galería.
2. En la galería, establezca la propiedad OnSelect de la imagen en la expresión:
Remove(Inventory; ThisItem )
3. Presione F5 y, a continuación, seleccione una imagen en la galería.
El elemento se quita de la galería y la colección.
Funciones AddColumns, DropColumns, RenameColumns y
ShowColumns en PowerApps
08/10/2019 • 13 minutes to read

Forma una tabla agregando, quitando, cambiando el nombre y seleccionando sus columnas.

Información general
Estas funciones dan forma a una tabla mediante el ajuste de sus columnas:
Reducción de una tabla que contiene varias columnas a una sola columna para su uso con las funciones de columna única, como
Lower o Abs .
Incorporación de una columna calculada a una tabla (por ejemplo, una columna Total Price que muestre el resultado de multiplicar
Quantity por Unit Price).
Cambio del nombre de una columna a algo más significativo, para mostrarla a los usuarios o para su uso en las fórmulas.
Una tabla es un valor en PowerApps, como una cadena o un número. Puede especificar una tabla como un argumento en una fórmula, y
las funciones pueden devolver una tabla como resultado.

NOTE
Las funciones que se describen en este tema no modifican la tabla original. En su lugar, toman esa tabla como argumento y devuelven una nueva
tabla con una transformación aplicada. Consulte cómo trabajar con tablas para más detalles.

No se pueden modificar las columnas de un origen de datos mediante el uso de estas funciones. Tiene que modificar los datos en su
origen. Puede agregar columnas a una colección con la función Collect . Consulte cómo trabajar con fuentes de datos para más detalles.

Descripción
La función AddColumns agrega una columna a una tabla y una fórmula define los valores de esa columna. Las columnas existentes
permanecen sin modificar.
La fórmula se evalúa para cada registro de la tabla.
Los campos de registro que se están procesando actualmente estarán disponibles en la formula. Solo tiene que hacer referencia a los
campos por su nombre, como con cualquier otro valor. También puede hacer referencia a propiedades de control y a otros valores desde
toda la aplicación. Para obtener más detalles, vea los ejemplos siguientes y trabajar con el ámbito de registros.
La función DropColumns excluye las columnas de una tabla. El resto de las columnas permanece sin modificar. DropColumns excluye
las columnas y ShowColumns las incluye.
Use la función RenameColumns para cambiar el nombre de una o varias columnas de una tabla al proporcionar al menos un par de
argumentos que especifiquen el nombre de una columna que contiene la tabla (el nombre antiguo, que se quiere reemplazar) y el
nombre de una columna que la tabla no contiene (el nombre nuevo, que se quiere usar). El nombre antiguo ya debe existir en la tabla y
el nuevo nombre no. Cada nombre de columna puede aparecer solo una vez en la lista de argumentos como un nombre de columna
antiguo o nuevo. Para cambiar el nombre de una columna por un nombre de columna existente, primero quite la columna existente con
DropColumns o cambie el nombre de la columna existente al anidar una función RenameColumns dentro de otra.
La función ShowColumns incluye columnas de una tabla y quita todas las demás columnas. Puede usar ShowColumns para crear una
tabla de una sola columna a partir de una tabla de varias columnas. ShowColumns incluye columnas y DropColumns las excluye.
Para todas estas funciones, el resultado es una nueva tabla con la transformación aplicada. La tabla original no se modifica. No se puede
modificar una tabla existente con una fórmula. SharePoint, Common Data Service, SQL Server y otros orígenes de datos proporcionan
herramientas para modificar las columnas de listas, entidades y tablas, a las que se suele hacer referencia como esquema. Las funciones
de este tema solo transforman una tabla de entrada, sin modificar la original, en una tabla de salida para su uso posterior.
Los argumentos de estas funciones admiten la delegación. Por ejemplo, una función de filtro que se usa como argumento para extraer
los registros relacionados realiza búsquedas en todas las listas, incluso si el ' [dbo]. [ AllListings] ' el origen de datos contiene un
millón de filas:
AddColumns( RealEstateAgents;
"Listings";
Filter( '[dbo].[AllListings]'; ListingAgentName = AgentName )
)

Sin embargo, el resultado de estas funciones está sujeto al límite de registros que no son de delegación. En este ejemplo, solo se
devuelven los registros 500, incluso si el origen de datos RealEstateAgents tiene 501 o más registros.
Si utiliza AddColumns de esta manera, el filtro debe realizar llamadas independientes en el origen de datos para cada uno de esos
primeros registros en RealEstateAgents, lo que provoca una gran cantidad de chatter de red. Si [dbo]. [ AllListings] es lo
suficientemente pequeño y no cambia con frecuencia, puede llamar a la función Collect en OnStart para almacenar en caché el origen
de datos en la aplicación cuando se inicia. Como alternativa, puede reestructurar la aplicación para que extraiga los registros
relacionados solo cuando el usuario los solicite.

Sintaxis
AddColumns( Table; ColumnName1; Formula1 [; ColumnName2; Formula2; ... ] )
Table: requerido. La tabla sobre la cual se opera.
ColumnName(s) : requerido. Nombres de las columnas para agregar. Tiene que especificar una cadena (por ejemplo, "Name" entre
comillas dobles incluidas) para este argumento.
Formula (s) : requerido. La fórmula o fórmulas para evaluar para cada registro. Se agregará el resultado como el valor de la nueva
columna correspondiente. Puede hacer referencia a otras columnas de la tabla en esta fórmula.
DropColumns( Table; ColumnName1 [; ColumnName2; ... ] )
Table: requerido. La tabla sobre la cual se opera.
ColumnName(s) : requerido. Nombres de las columnas para excluir. Tiene que especificar una cadena (por ejemplo, "Name" entre
comillas dobles incluidas) para este argumento.
Cambiarnombrecolumnas( TABLE; OldColumnName1; NewColumnName1 [; OldColumnName2; NewColumnName2;...])
Table: requerido. La tabla sobre la cual se opera.
OldColumnName: requerido. Nombre de una columna de la tabla original cuyo nombre se va a cambiar. Este elemento aparece en
primer lugar en el par de argumentos (o en primer lugar en cada par de argumentos si la fórmula incluye más de un par). Este
nombre tiene que ser una cadena (por ejemplo, "Name" con comillas dobles incluidas).
NewColumnName: requerido. Nombre de reemplazo. Este elemento aparece por último lugar en el par de argumentos (o por último
lugar en cada par de argumentos si la fórmula incluye más de un par). Tiene que especificar una cadena (por ejemplo, "Customer
Name" con comillas dobles incluidas) para este argumento.
ShowColumns( Table; ColumnName1 [; ColumnName2; ... ] )
Table: requerido. La tabla sobre la cual se opera.
ColumnName(s) : requerido. Nombres de las columnas para incluir. Tiene que especificar una cadena (por ejemplo, "Name" entre
comillas dobles incluidas) para este argumento.

Ejemplos
En los ejemplos en esta sección, use el origen de datos IceCreamSales, que contiene los datos de esta tabla:

Ninguno de estos ejemplos modificar el origen de datos IceCreamSales. Cada función transforma el valor del origen de datos como
una tabla y devuelve ese valor como resultado.

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

AddColumns (IceCreamSales, "Revenue", Agrega una columna Revenue al resultado. Para


UnitPrice * QuantitySold) cada registro, se evalúa UnitPrice *
QuantitySold, y el resultado se coloca en la
nueva columna.

DropColumns (IceCreamSales, "UnitPrice") Excluye la columna UnitPrice del resultado. Use


esta función para excluir columnas y usar
ShowColumns para incluirlas.

ShowColumns( IceCreamSales; "Flavor" ) Incluye solamente la columna Flavor en el


resultado. Use esta función para incluir
columnas y DropColumns para excluirlas.

RenameColumns( IceCreamSales; Cambia el nombre de la columna UnitPrice en


"UnitPrice"; "Price") el resultado.

RenameColumns( IceCreamSales; Cambia el nombre de las columnas UnitPrice y


"UnitPrice"; "Price"; "QuantitySold"; QuantitySold en el resultado.
"Number")

DropColumns( Realiza las siguientes transformaciones de tabla


RenameColumns( en orden, comenzando desde el interior de la
AddColumns( IceCreamSales; "Revenue"; fórmula:
UnitPrice * QuantitySold ); 1. Agrega una columna Revenue basada
"UnitPrice"; "Price" ); en el cálculo por registro de UnitPrice *
"Quantity" ) Quantity.
2. Cambia el nombre de UnitPrice a Price.
3. Excluye la columna Quantity.
Tenga en cuenta que el orden es importante.
Por ejemplo, no se puede calcular con UnitPrice
después de que se le haya cambiado el nombre.

Paso a paso
Vamos a probar algunos de los ejemplos anteriores de este tema.
1. Cree una colección agregando un control de botón y estableciendo su propiedad alseleccionar en esta fórmula:

ClearCollect( IceCreamSales;
Table(
{ Flavor: "Strawberry"; UnitPrice: 1,99; QuantitySold: 20 };
{ Flavor: "Chocolate"; UnitPrice: 2,99; QuantitySold: 45 };
{ Flavor: "Vanilla"; UnitPrice: 1,50; QuantitySold: 35 }
)
)

2. Ejecute la fórmula seleccionando el botón mientras mantiene presionada la tecla Alt.


3. Agregue un segundo control botón , establezca su propiedad alseleccionar en esta fórmula y, a continuación, ejecútelo:

ClearCollect( FirstExample;
AddColumns( IceCreamSales; "Revenue"; UnitPrice * QuantitySold )
)

4. En el menú archivo , seleccione coleccionesy, a continuación, seleccione IceCreamSales para mostrar esa recopilación.
Como se muestra en este gráfico, la segunda fórmula no modificó esta colección. La función AddColumns usó IceCreamSales
como argumento de solo lectura; la función no modificó la tabla a la que hace referencia ese argumento.

5. Seleccione FirstExample.
Como se muestra en este gráfico, la segunda fórmula devolvió una nueva tabla con la columna agregada. La función
ClearCollect capturó la nueva tabla en la colección FirstExample , agregando algo a la tabla original a medida que fluye a través
de la función sin modificar el origen:
Funciones Replace y Substitute en PowerApps
26/11/2019 • 6 minutes to read

Reemplace una parte de una cadena de texto por otra cadena.

Descripción
La función Replace identifica el texto que se debe reemplazar según la posición inicial y la longitud.
La función Substitute identifica el texto que se debe reemplazar buscando una cadena coincidente. Si se encuentra
más de una coincidencia, puede reemplazar todas ellas o especificar una para reemplazar.
Si pasa una única cadena, el valor devuelto es la cadena modificada. Si pasa una tabla de una sola columna que
contiene cadenas, el valor devuelto es la tabla de una sola columna con cadenas modificadas. Si tiene una tabla con
varias columnas, puede convertirla en una tabla de una sola columna, como se describe en cómo trabajar con
tablas.

Sintaxis
Replace( String; StartingPosition; NumberOfCharacters; NewString )
String: requerido. La cadena en la que se va a actuar.
StartingPosition: requerido. La posición del carácter en la que se va a iniciar el reemplazo. El primer carácter de
String está en la posición 1.
NumberOfCharacters: requerido. El número de caracteres que se van a reemplazar en String.
NewString: requerido. La cadena de reemplazo. El número de caracteres de este argumento puede diferir del
argumento NumberOfCharacters.
Substitute( String; OldString; NewString [; InstanceNumber ] )
String: requerido. La cadena en la que se va a actuar.
OldString: requerido. La cadena que se va a reemplazar.
NewString: requerido. La cadena de reemplazo. OldString y NewString pueden tener longitudes distintas.
InstanceNumber: opcional. Use este argumento para especificar la instancia de OldString que se va a
reemplazar si String contiene más de una instancia. Si no especifica este argumento, se reemplazarán todas las
instancias.
Replace( SingleColumnTable; StartingPosition; NumberOfCharacters; NewString )
SingleColumnTable: requerido. Una tabla de números de una sola columna sobre la que se va a actuar.
StartingPosition: requerido. La posición del carácter en la que se va a iniciar el reemplazo. El primer carácter de
cada cadena de la tabla se encuentra en la posición 1.
NumberOfCharacters: requerido. El número de caracteres que se van a reemplazar en cada cadena.
NewString: requerido. La cadena de reemplazo. El número de caracteres de este argumento puede diferir del
argumento NumberOfCharacters.
Substitute( SingleColumnTable; OldString; NewString [; InstanceNumber ] )
SingleColumnTable: requerido. Una tabla de números de una sola columna sobre la que se va a actuar.
OldString: requerido. La cadena que se va a reemplazar.
NewString: requerido. La cadena de reemplazo. OldString y NewString pueden tener longitudes distintas.
InstanceNumber: opcional. Use este argumento para especificar la instancia de OldString que se va a
reemplazar si String contiene más de una instancia. Si no especifica este argumento, se reemplazarán todas las
instancias.

Ejemplos
FÓRMULA DESCRIPCIÓN RESULTADO

Replace ("abcdefghijk", 6, 5, "*") Reemplaza cinco caracteres de "ABCDE * k"


"abcdefghijk" por un único carácter "*",
empezando por el sexto carácter ("f").

Replace ( "2019", 3, 2, "20" ) Reemplaza los dos últimos caracteres de "2020"


"2019" por "20".

Replace ( "123456", 1, 3, "_" ) Reemplaza los tres primeros caracteres "_456"


de "123456" por un único carácter "".

Substitute Sustituye la cadena "cost" por "sales". "Datos de costo"


( "ventas datos", "ventas", "costo" )

Substitute ("Quarter 1, 2018", "1", Sustituye solo la primera instancia de "Trimestre 2, 2018"
"2", 1) "1" por "2" porque el cuarto argumento
(InstanceNumber) se proporciona con
un 1.

Substitute ("Quarter 1, 2011", "1", Sustituye solo la tercera instancia de "1" "Trimestre 1, 2012"
"2", 3) por "2" porque el cuarto argumento
(InstanceNumber) se proporciona con
un 3.

Substitute ("Quarter 1, 2011", "1", Sustituye todas las instancias de "1" por "Trimestre 2, 2022"
"2") "2" porque no se proporciona el cuarto
argumento (InstanceNumber).

Replace ( Reemplaza el noveno carácter de cada [ "Quarter 3, 2018",


[ "Quarter 1, 2018"; registro de la tabla de una sola columna "Quarter 3, 2011",
"Quarter 2, 2011"; por "3". "Quarter 3, 2019" ]
"Quarter 4, 2019"];
9; 1; "3")

Substitute ( Dado que el cuarto argumento [ "Trim 3, 2018",


[ "Trim 1, 2018"; (InstanceNumber) se proporciona con "Quarter 3, 2011",
"Quarter 1, 2011"; un valor de 1, sustituye solo la primera "T3, 2019" ]
"Q1, 2019" ]; instancia de "1" en cada registro de la
"1"; "3"; 1) tabla de una sola columna con "3".

Substitute ( Dado que no se proporciona el cuarto [ "Trim 3, 2038",


[ "Trim 1, 2018"; argumento (InstanceNumber), sustituye "Quarter 3, 2033",
"Quarter 1, 2011"; todas las instancias de "1" en cada "T3, 2039" ]
"Q1, 2019" ]; registro de la tabla de una sola columna
"1"; "3") con "3".
Función Reset en PowerApps
08/10/2019 • 2 minutes to read

Restablece un control a su valor predeterminado, descartando cualquier modificación del usuario.

Descripción
La función Reset restablece un control al valor de su propiedad Default. Se descartan los cambios que haya
realizado el usuario.
No es posible restablecer los controles que estén en un control Galería o Editar formulario desde fuera de
dichos controles. Los controles se puede restablecer desde las fórmulas de los controles que estén en la misma
galería o formulario. También es posible restablecer todos los controles de un formulario con la función
ResetForm.
La función Reset es una alternativa al uso la propiedad Reset de los controles de entrada y, por lo general, se
prefiere usar la función, en lugar de la propiedad. La propiedad Reset puede ser una opción mejor si es preciso
restablecer conjuntamente muchos controles de varias fórmulas. La activación o desactivación de la propiedad
Reset se puede realizar desde un control Botón con la fórmula Reset = Button.Pressed o desde una variable
con Reset = MyVar, y la activación o desactivación de MyVar con la fórmula Button.OnSelect = Set( MyVar;
true );; Set( MyVar; false ) .
Los controles de entrada también se restablecen cuando su propiedad Default cambia.
Reset no tiene ningún valor devuelto y solo se puede usar en fórmulas de comportamiento.

Sintaxis
Reset( Control )
Control (se requiere). El control que se restablece.

Ejemplo
1. Inserte un control Entrada de texto en una pantalla. De forma predeterminada, su nombre será TextInput1
y el valor de su propiedad Default será "Entrada de texto" .
2. Escriba un valor nuevo en el cuadro de texto.
3. Inserte un control Botón en la pantalla.
4. Establezca la propiedad OnSelect del botón en Reset( TextInput1 ) .
5. Seleccione el botón. Esto puede hacerse incluso durante la creación mediante la realización de la selección
hacia los extremos del control.
6. El contenido del cuadro de texto volverá al valor de la propiedad Default.
Funciones EditForm, NewForm, SubmitForm,
ResetForm y ViewForm de PowerApps
08/10/2019 • 10 minutes to read

Vea, edite o cree un elemento, guarde el contenido y restablezca los controles de un control Editar formulario .

Información general
Estas funciones cambian el estado del control Editar formulario. El control de formulario puede estar en uno de
estos modos:

MODO DESCRIPCIÓN

FormMode.Edit El formulario se rellena con un registro existente y el usuario


puede modificar los valores de los campos. Una vez que haya
finalizado, el usuario puede guardar los cambios en el registro.

FormMode.New El formulario se rellena con los valores predeterminados y el


usuario puede modificar los valores de los campos. Una vez
que haya finalizado, el usuario puede agregar el registro al
origen de datos.

FormMode.View El formulario se rellena con un registro existente pero el


usuario no puede modificar los valores de los campos.

Descripción
Estas funciones a menudo se invocan desde la fórmula OnSelect de un control Botón o Imagen para que el
usuario pueda guardar las modificaciones, abandonarlas o crear un registro. También puede usar conjuntamente
controles y estas funciones para crear una solución completa.
Estas funciones no devuelven ningún valor.
SubmitForm
Use la función SubmitForm de la propiedad OnSelect de un control Botón para guardar los cambios de un
control Formulario en el origen de datos.
Antes de enviar cualquier cambio, esta función comprueba problemas de validación con cualquier campo que se
haya marcado como requerido o que tenga una o más restricciones en su valor. Este comportamiento es idéntico al
de la función Validate .
SubmitForm también comprueba la propiedad Valid del control Formulario, que es una agregación de todas las
propiedades Valid de los controles Card que contiene el control Formulario. Si se produce un problema, no se
envían los datos y las propiedades Error y ErrorKind del control Formulario se establecen en consecuencia.
Si se supera la validación, SubmitForm envía el cambio al origen de datos.
Si se realiza correctamente, se ejecutará el comportamiento OnSuccess del formulario y se borrarán las
propiedades Error y ErrorKind . Si el formulario se encontraba en modo FormMode.New, se devolverá al
modo FormMode.Edit.
Si no se realiza correctamente, se ejecutará el comportamiento OnFailure del formulario y se establecerán las
propiedades Error y ErrorKind en consecuencia. El modo del formulario no se modifica.
EditForm
La función EditForm cambia el modo del control Formulario a FormMode.Edit. En este modo, el contenido de la
propiedad Elemento del control Formulario se utiliza para rellenar el formulario. Si la función SubmitForm se
ejecuta cuando el formulario está en este modo, se cambiará un registro, no se creará. FormMode.Edit es el valor
predeterminado del control Formulario.
NewForm
La función NewForm cambia el modo del control Formulario a FormMode.New. En este modo, el contenido de
la propiedad Elemento del control Formulario se omite y los valores predeterminados de la propiedad
DataSource rellenan el formulario. Si la función SubmitForm se ejecuta cuando el formulario está en este modo,
se creará un registro, no se cambiará.
ResetForm
La función ResetForm restablece el contenido de un formulario a sus valores iniciales, el contenido que había antes
de que el usuario realizara cambios. Si el formulario está en modo FormMode.New, se restablecerá al modo
FormMode.Edit. El comportamiento OnReset del control Formulario también se ejecutará. También puede
restablecer controles individuales con la función Reset pero únicamente desde dentro del formulario.
ViewForm
La función ViewForm cambia el modo del control Formulario a FormMode.View. En este modo, el contenido de
la propiedad Elemento del control Formulario se utiliza para rellenar el formulario. Las funciones SubmitForm y
ResetForm no tienen ningún efecto cuando se está en este modo.
Propiedad DisplayMode
El modo actual se puede leer mediante la propiedad Modo. El modo determina también el valor de la propiedad
DisplayMode que pueden usar las tarjetas de datos y controles del control de formulario. A menudo, la propiedad
DisplayMode de la tarjeta de datos se establecerá en Parent. DisplayMode (que hace referencia al formulario)
como lo hará la propiedad DisplayMode del control (que hace referencia a la tarjeta de datos):

MODO DISPLAYMODE DESCRIPCIÓN

FormMode.Edit DisplayMode.Edit Las tarjetas de datos y los controles son


editables, y están listos para aceptar los
cambios de un registro.

FormMode.New DisplayMode.Edit Las tarjetas de datos y los controles son


editables, y están listos para aceptar un
nuevo registro.

FormMode.View DisplayMode.View Las tarjetas de datos y los controles no


son editables y están optimizados para
su visualización.

Sintaxis
SubmitForm ( FormName )
FormName: requerido. Control Formulario para enviar al origen de datos.
EditForm ( FormName )
FormName: requerido. Control Formulario para cambiar al modo FormMode.Edit.
NewForm ( FormName )
FormName: requerido. Control Formulario para cambiar al modo FormMode.New.
ResetForm ( FormName )
FormName: requerido. Control Formulario para restablecer los valores iniciales. También cambia el formulario
del modo FormMode.New al modo FormMode.Edit.
ViewForm ( FormName )
FormName: requerido. Control Formulario para cambiar al modo FormMode.View.

Ejemplos
Consulte Formularios de datos para obtener ejemplos completos.
1. Agregue un control Botón, establezca la propiedad Text para mostrar Guardar y establezca la propiedad
OnSelect en esta fórmula:
SubmitForm ( EditForm )
2. Establezca la propiedad OnFailure de un control Formulario blank y la propiedad OnSuccess en esta
fórmula:
Back()
3. Asigne el nombre ErrorText a un control Label y establezca su propiedad Text en esta fórmula:
EditForm.Error
Cuando el usuario selecciona el botón Guardar, los cambios del control Formulario se envían al origen de
datos subyacente.
Si el envío se realiza correctamente, los cambios se guardan o, si el control Formulario está en modo
New, se creará un registro. ErrorText es blank y vuelve a aparecer la pantalla anterior.
Si se produce un error en el envío, ErrorText mostrará un mensaje de error descriptivo y la pantalla
actual permanecerá visible para que el usuario pueda corregir el problema e intentarlo de nuevo.
4. Agregue un control Botón, establezca su propiedad Text para que muestre Cancelar y establezca su
propiedad OnSelect en esta fórmula:
ResetForm ( EditForm );; Back()
Si el usuario selecciona el botón Cancelar, los valores del control Formulario se restablecen a su estado
original, el estado que tenían antes de que el usuario empezara a editarlo, vuelve a aparecer la pantalla
anterior y se devuelve el control Formulario al modo Edit si estaba en modo New.
5. Agregue un control Botón, establezca su propiedad Text para mostrar Nuevo y establezca su propiedad
OnSelect en esta fórmula:
NewForm ( EditForm );; Navigate( EditScreen; None )
Cuando el usuario selecciona el botón New, se activa el control Formulario en modo New, los valores
predeterminados del origen de datos del control Formulario rellenan el control y aparece la pantalla que
contiene el control Formulario. Cuando se ejecuta la función SubmitForm, se crea un registro en lugar de
actualizarlo.
Función Revert en PowerApps
08/10/2019 • 3 minutes to read

Actualiza y borra errores para los registros de un origen de datos.

Descripción
La función Revert actualiza un origen de datos completo o un único registro en ese origen de datos. Verá los
cambios que realizaron otros usuarios.
Para los registros revertidos, Revert también borra todos los errores de la tabla que la función Errors devuelve.
Si la función Errors informa sobre un conflicto después de Patch u otra operación de datos, use Revert en el
registro para iniciar con la versión en conflicto y vuelva a aplicar el cambio.
Revert no tiene ningún valor devuelto. Se puede usar únicamente en una fórmula de comportamiento.

Sintaxis
Revert( DataSource [; Record ] )
DataSource: requerido. El origen de datos que desea revertir.
Registro: opcional. El registro que desea revertir. Si no se especifica un registro, se revierte el origen de datos
completo.

Ejemplo
En este ejemplo, revertirá el origen de datos denominado IceCream, que empieza con los datos en esta tabla:

Un usuario de otro dispositivo cambia la propiedad Quantity en el registro Strawberry a 400. Aproximadamente
al mismo tiempo, usted cambia la misma propiedad del mismo registro a 500, sin tener conocimiento sobre el otro
cambio.
Usa la función Patch para actualizar el registro:
Patch (IceCream; primero (filtrar (IceCream; Flavor = "fresa")); {Quantity: 500})
Compruebe la tabla Errors y encuentre un error:

REGISTRO COLUMNA MENSAJE ERROR

{ID: 1; tipo: "Fresa"; blank "Otro usuario ha ErrorKind.Conflict


cantidad: 300} modificado el registro
que está intentando
modificar. Revierta el
registro e inténtelo de
nuevo".

Tomando como base la columna Error, tiene un botón Volver a cargar para que la propiedad OnSelect para
establecer esta fórmula:
Revert( IceCream; First( Filter( IceCream; Flavor = "Strawberry" ) ) )
Después de seleccionar el botón Recargar, la tabla Errores está vacíay el nuevo valor para Strawberry se ha
cargado:

Ha aplicado el cambio encima del cambio anterior y se ha cambiado el cambio correctamente porque el conflicto
se ha resuelto.
Enumeración de color y las funciones
ColorFade, ColorValue y RGBA en PowerApps
05/11/2019 • 18 minutes to read

Usar valores de color integrados, definir colores personalizados y usar el canal alfa.

Descripción
Mediante el uso de la enumeración de color , puede tener acceso fácilmente a los colores definidos por
hojas de estilo CSS de HTML (CSS ). Por ejemplo, color. red devuelve rojo puro. Puede encontrar una
lista de estos colores al final de este tema.
La función ColorValue devuelve un color basado en una cadena de color de una CSS. La cadena
puede adoptar cualquiera de estas formas:
El nombre de color de CSS: "RoxyBrown" y "OliveDrab" son ejemplos. Estos nombres no
incluyen espacios. La lista de colores admitidos aparece más adelante en este tema.
valor hexadecimal de 6 dígitos: Como ejemplo "#ffd700" es igual que "Gold". La cadena tiene
el formato "#RRGGBB", donde RR es la parte roja en dos dígitos hexadecimales, GG es el verde y BB
es el azul.
valor hexadecimal de 8 dígitos: Por ejemplo, "#ff7f5080" es igual que "Coral" con un canal alfa
50%. La cadena tiene el formato "#RRGGBBAA", donde RR, GGy BB son idénticos al formato de 6
dígitos. El canal alfa se representa mediante AA: 00 representa completamente transparente y FF
representa totalmente opaco.
La función RGBA devuelve un color basado en los componentes rojo, verde y azul. La función también
incluye un canal alfa para mezclar colores de controles que están superpuestos entre sí. Un canal alfa
varía desde 0 o 0% (que es completamente transparente e invisible) hasta 1 o 100% (que es
completamente opaco y se bloquea completamente cualquier capa detrás de un control).
La función ColorFade devuelve una versión más clara o más oscura de un color. La cantidad de
desvanecimiento varía entre-1 (que oscurece completamente un color hasta el negro) hasta 0 (que no
afecta al color) a 1 (que ilumina completamente un color a blanco).

Canal alfa
En una aplicación de lienzo, puede capas de controles de un lado a otro y especificar la transparencia de
un control para todos los controles que están detrás. Como resultado, los colores se fusionarán a través
de las capas. Por ejemplo, en este diagrama se muestra cómo se mezclan los tres colores primarios con
una configuración alfa de 50%:
También puede mezclar imágenes en formatos de archivo que admiten canales alfa. Por ejemplo, no
puede mezclar archivos. JPEG, pero puede mezclar archivos. png. En el gráfico siguiente se muestran
los mismos colores rojo, verde y azul del ejemplo anterior, pero el color rojo aparece como una línea
ondulada (en lugar de un círculo) en un archivo. png con un canal alfa 50%:

Si especifica un valor de enumeración de color o crea una fórmula de ColorValue con un nombre de
color o un valor hexadecimal de 6 dígitos, el valor de alfa es 100%, que es completamente opaco.

Sintaxis
Color.ColorName
ColorName: requerido. El nombre de un color de hoja de estilo CSS. La lista de posibles valores de
enumeración aparece al final de este tema.
ColorValue( CSSColor )
CSSColor: requerido. La definición de un color de hoja de estilo CSS. Puede especificar un nombre,
como OliveDrab, o un valor hexadecimal, como #6b8e23 o #7fffd420. Los valores hexadecimales
pueden adoptar la forma de #RRGGBB o #RRGGBBAA.
RGBA ( Red; Green; Blue; Alpha )
Red, Green, Blue: requerido. Valores de componente de color, que van desde 0 (sin saturación) hasta
255 (saturación completa).
Alpha: requerido. Componente alfa, que va de 0 (totalmente transparente) a 1 (totalmente opaco).
También puede usar un porcentaje, de 0 % a 100 %.
ColorFade( Color; FadeAmount )
Color: requerido. Un valor de color como Color.Red o el resultado de ColorValue o RGBA.
FadeAmount: requerido. Número entre -1 y 1. -1 oscurece completamente un color a negro, 0 no
afecta al color y 1 ilumina completamente un color a blanco. También puede usar un porcentaje
entre-100% y 100%.

Colores integrados
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.AliceBlue ColorValue ("#f0f8ff" ) RGBA ( 240, 248, 255,


ColorValue ("AliceBlue" 1 )
)

Color.AntiqueWhite ColorValue ("#faebd7" RGBA ( 250, 235, 215,


) 1 )
ColorValue
("AntiqueWhite" )

Color.Aqua ColorValue ("#00ffff" ) RGBA ( 0, 255, 255, 1


ColorValue )
("aguamarina" )

Color.Aquamarine ColorValue ("#7fffd4" ) RGBA ( 127, 255, 212,


ColorValue ("color 1 )
aguamarina" )

Color.Azure ColorValue ("#f0ffff" ) RGBA ( 240, 255, 255,


ColorValue ("Azure" ) 1 )

Color.Beige ColorValue ("#f5f5dc" RGBA ( 245, 245, 220,


) 1 )
ColorValue ("Beige" )

Color.Bisque ColorValue ("#ffe4c4" RGBA ( 255, 228, 196,


) 1 )
ColorValue ("BISQUE"
)

Color.Black ColorValue ("#000000" RGBA ( 0, 0, 0, 1 )


)
ColorValue ("Black" )

Color.BlanchedAlmond ColorValue ("#ffebcd" RGBA ( 255, 235, 205,


) 1 )
ColorValue
("BlanchedAlmond" )

Color.Blue ColorValue ("#0000ff" RGBA ( 0, 0, 255, 1 )


)
ColorValue ("Blue" )

Color.BlueViolet ColorValue ("#8a2be2" RGBA ( 138, 43, 226,


) 1 )
ColorValue
("BLUEVIOLET" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.Brown ColorValue ("#a52a2a" RGBA ( 165, 42, 42, 1


) )
ColorValue ("marrón"
)

Color.Burlywood ColorValue ("#deb887" RGBA ( 222, 184, 135,


) 1 )
ColorValue
("burlywood" )

Color.CadetBlue ColorValue ("#5f9ea0" RGBA ( 95, 158, 160,


) 1 )
ColorValue
("CadetBlue" )

Color.Chartreuse ColorValue ("#7fff00" ) RGBA ( 127, 255, 0, 1


ColorValue )
("CHARTREUSE" )

Color.Chocolate ColorValue ("#d2691e" RGBA ( 210, 105, 30,


) 1 )
ColorValue
("chocolate" )

Color.Coral ColorValue ("#ff7f50" ) RGBA ( 255, 127, 80,


ColorValue ("Coral" ) 1 )

Color.CornflowerBlue ColorValue ("#6495ed" RGBA ( 100, 149, 237,


) 1 )
ColorValue
("CornflowerBlue" )

Color.Cornsilk ColorValue ("#fff8dc" ) RGBA ( 255, 248, 220,


ColorValue 1 )
("CORNSILK" )

Color.Crimson ColorValue ("#dc143c" RGBA ( 220, 20, 60, 1


) )
ColorValue ("Crimson"
)

Color.Cyan ColorValue ("#00ffff" ) RGBA ( 0, 255, 255, 1


ColorValue )
("aguamarina" )

Color.DarkBlue ColorValue ("#00008b" RGBA ( 0, 0, 139, 1 )


)
ColorValue ("DarkBlue"
)

Color.DarkCyan ColorValue ("#008b8b" RGBA ( 0, 139, 139, 1


) )
ColorValue
("DARKCYAN" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.DarkGoldenRod ColorValue ("#b8860b" RGBA ( 184, 134, 11,


) 1 )
ColorValue
("DarkGoldenRod" )

Color.DarkGray ColorValue ("#a9a9a9" RGBA ( 169, 169, 169,


) 1 )
ColorValue
("grisoscuro" )

Color.DarkGreen ColorValue ("#006400" RGBA ( 0, 100, 0, 1 )


)
ColorValue
("DarkGreen" )

Color.DarkGrey ColorValue ("#a9a9a9" RGBA ( 169, 169, 169,


) 1 )
ColorValue
("DARKGREY" )

Color.DarkKhaki ColorValue ("#bdb76b" RGBA ( 189, 183, 107,


) 1 )
ColorValue
("DarkKhaki" )

Color.DarkMagenta ColorValue ("#8b008b" RGBA ( 139, 0, 139, 1


) )
ColorValue
("darkmagenta" )

Color.DarkOliveGreen ColorValue ("#556b2f" RGBA ( 85, 107, 47, 1


) )
ColorValue
("DarkOliveGreen" )

Color.DarkOrange ColorValue ("#ff8c00" RGBA ( 255, 140, 0, 1


) )
ColorValue
("DARKORANGE" )

Color.DarkOrchid ColorValue ("#9932cc" RGBA ( 153, 50, 204,


) 1 )
ColorValue
("DarkOrchid" )

Color.DarkRed ColorValue ("#8b0000" RGBA ( 139, 0, 0, 1 )


)
ColorValue ("Darkred"
)

Color.DarkSalmon ColorValue ("#e9967a" RGBA ( 233, 150, 122,


) 1 )
ColorValue
("DarkSalmon" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.DarkSeaGreen ColorValue ("#8fbc8f" RGBA ( 143, 188, 143,


) 1 )
ColorValue
("DARKSEAGREEN" )

Color.DarkSlateBlue ColorValue ("#483d8b" RGBA ( 72, 61, 139, 1


) )
ColorValue
("DarkSlateBlue" )

Color.DarkSlateGray ColorValue ("#2f4f4f" ) RGBA ( 47, 79, 79, 1 )


ColorValue
("DarkSlateGray" )

Color.DarkSlateGrey ColorValue ("#2f4f4f" ) RGBA ( 47, 79, 79, 1 )


ColorValue
("DarkSlateGrey" )

Color.DarkTurquoise ColorValue ("#00ced1" RGBA ( 0, 206, 209, 1


) )
ColorValue
("DARKTURQUOISE" )

Color.DarkViolet ColorValue ("#9400d3" RGBA ( 148, 0, 211, 1


) )
ColorValue
("DarkViolet" )

Color.DeepPink ColorValue ("#ff1493" RGBA ( 255, 20, 147,


) 1 )
ColorValue
("deeppink" )

Color.DeepSkyBlue ColorValue ("#00bfff" ) RGBA ( 0, 191, 255, 1


ColorValue )
("DeepSkyBlue" )

Color.DimGray ColorValue ("#696969" RGBA ( 105, 105, 105,


) 1 )
ColorValue
("DIMGRAY" )

Color.DimGrey ColorValue ("#696969" RGBA ( 105, 105, 105,


) 1 )
ColorValue ("DimGrey"
)

Color.DodgerBlue ColorValue ("#1e90ff" RGBA ( 30, 144, 255,


) 1 )
ColorValue
("dodgerblue" )

Color.FireBrick ColorValue ("#b22222" RGBA ( 178, 34, 34, 1


) )
ColorValue ("FireBrick"
)
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.FloralWhite ColorValue ("#fffaf0" ) RGBA ( 255, 250, 240,


ColorValue 1 )
("FLORALWHITE" )

Color.ForestGreen ColorValue ("#228b22" RGBA ( 34, 139, 34, 1


) )
ColorValue
("ForestGreen" )

Color.Fuchsia ColorValue ("#ff00ff" ) RGBA ( 255, 0, 255, 1


ColorValue ("Fuchsia" ) )

Color.Gainsboro ColorValue ("#dcdcdc" RGBA ( 220, 220, 220,


) 1 )
ColorValue
("Gainsboro" )

Color.GhostWhite ColorValue ("#f8f8ff" ) RGBA ( 248, 248, 255,


ColorValue 1 )
("GHOSTWHITE" )

Color.Gold ColorValue ("#ffd700" RGBA ( 255, 215, 0, 1


) )
ColorValue ( "Gold")

Color.GoldenRod ColorValue ("#daa520" RGBA ( 218, 165, 32,


) 1 )
ColorValue ("ocre" )

Color.Gray ColorValue ("#808080" RGBA ( 128, 128, 128,


) 1 )
ColorValue ("gris" )

Color.Green ColorValue ("#008000" RGBA ( 0, 128, 0, 1 )


)
ColorValue ("verde" )

Color.GreenYellow ColorValue ("#adff2f" ) RGBA ( 173, 255, 47,


ColorValue 1 )
("GreenYellow" )

Color.Grey ColorValue ("#808080" RGBA ( 128, 128, 128,


) 1 )
ColorValue ("gris" )

Color.Honeydew ColorValue ("#f0fff0" ) RGBA ( 240, 255, 240,


ColorValue ("Rocío" ) 1 )

Color.HotPink ColorValue ("#ff69b4" RGBA ( 255, 105, 180,


) 1 )
ColorValue
("HOTPINK" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.IndianRed ColorValue ("#cd5c5c" RGBA ( 205, 92, 92, 1


) )
ColorValue
("IndianRed" )

Color.Indigo ColorValue ("#4b0082" RGBA ( 75, 0, 130, 1 )


)
ColorValue ("Indigo" )

Color.Ivory ColorValue ("#fffff0" ) RGBA ( 255, 255, 240,


ColorValue ("marfil" ) 1 )

Color.Khaki ColorValue ("#f0e68c" RGBA ( 240, 230, 140,


) 1 )
ColorValue ("caqui" )

Color.Lavender ColorValue ("#e6e6fa" RGBA ( 230, 230, 250,


) 1 )
ColorValue ("lavanda"
)

Color.LavenderBlush ColorValue ("#fff0f5" ) RGBA ( 255, 240, 245,


ColorValue 1 )
("lavenderblush" )

Color.LawnGreen ColorValue ("#7cfc00" RGBA ( 124, 252, 0, 1


) )
ColorValue
("LawnGreen" )

Color.LemonChiffon ColorValue ("#fffacd" ) RGBA ( 255, 250, 205,


ColorValue 1 )
("LEMONCHIFFON" )

Color.LightBlue ColorValue ("#add8e6" RGBA ( 173, 216, 230,


) 1 )
ColorValue ("LightBlue"
)

Color.LightCoral ColorValue ("#f08080" RGBA ( 240, 128, 128,


) 1 )
ColorValue
("LightCoral" )

Color.LightCyan ColorValue ("#e0ffff" ) RGBA ( 224, 255, 255,


ColorValue 1 )
("Ciánclaro" )

Color.LightGoldenRodY ColorValue ("#fafad2" RGBA ( 250, 250, 210,


ellow ) 1 )
ColorValue
("lightgoldenrodyellow
" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.LightGray ColorValue ("#d3d3d3" RGBA ( 211, 211, 211,


) 1 )
ColorValue
("LightGray" )

Color.LightGreen ColorValue ("#90ee90" RGBA ( 144, 238, 144,


) 1 )
ColorValue
("lightgreen" )

Color.LightGrey ColorValue ("#d3d3d3" RGBA ( 211, 211, 211,


) 1 )
ColorValue
("LightGrey" )

Color.LightPink ColorValue ("#ffb6c1" RGBA ( 255, 182, 193,


) 1 )
ColorValue
("LIGHTPINK" )

Color.LightSalmon ColorValue ("#ffa07a" RGBA ( 255, 160, 122,


) 1 )
ColorValue
("LightSalmon" )

Color.LightSeaGreen ColorValue ("#20b2aa" RGBA ( 32, 178, 170,


) 1 )
ColorValue
("lightseagreen" )

Color.LightSkyBlue ColorValue ("#87cefa" RGBA ( 135, 206, 250,


) 1 )
ColorValue
("LightSkyBlue" )

Color.LightSlateGray ColorValue ("#778899" RGBA ( 119, 136, 153,


) 1 )
ColorValue
("LIGHTSLATEGRAY" )

Color.LightSlateGrey ColorValue ("#778899" RGBA ( 119, 136, 153,


) 1 )
ColorValue
("LightSlateGrey" )

Color.LightSteelBlue ColorValue ("#b0c4de" RGBA ( 176, 196, 222,


) 1 )
ColorValue
("lightsteelblue" )

Color.LightYellow ColorValue ("#ffffe0" ) RGBA ( 255, 255, 224,


ColorValue 1 )
("LightYellow" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.Lime ColorValue ("#00ff00" RGBA ( 0, 255, 0, 1 )


)
ColorValue ("Lima" )

Color.LimeGreen ColorValue ("#32cd32" RGBA ( 50, 205, 50, 1


) )
ColorValue
("LimeGreen" )

Color.Linen ColorValue ("#faf0e6" RGBA ( 250, 240, 230,


) 1 )
ColorValue ("ropa" )

Color.Magenta ColorValue ("#ff00ff" ) RGBA ( 255, 0, 255, 1


ColorValue ("magenta" )
)

Color.Maroon ColorValue ("#800000" RGBA ( 128, 0, 0, 1 )


)
ColorValue ("granate"
)

Color.MediumAquamar ColorValue ("#66cdaa" RGBA ( 102, 205, 170,


ine ) 1 )
ColorValue
("MediumAquamarine"
)

Color.MediumBlue ColorValue ("#0000cd" RGBA ( 0, 0, 205, 1 )


)
ColorValue
("mediumblue" )

Color.MediumOrchid ColorValue ("#ba55d3" RGBA ( 186, 85, 211,


) 1 )
ColorValue
("MediumOrchid" )

Color.MediumPurple ColorValue ("#9370db" RGBA ( 147, 112, 219,


) 1 )
ColorValue
("MEDIUMPURPLE" )

Color.MediumSeaGree ColorValue ("#3cb371" RGBA ( 60, 179, 113,


n ) 1 )
ColorValue
("MediumSeaGreen" )

Color.MediumSlateBlue ColorValue ("#7b68ee" RGBA ( 123, 104, 238,


) 1 )
ColorValue
("mediumslateblue" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.MediumSpringGr ColorValue ("#00fa9a" RGBA ( 0, 250, 154, 1


een ) )
ColorValue
("MediumSpringGreen"
)

Color.MediumTurquois ColorValue ("#48d1cc" RGBA ( 72, 209, 204,


e ) 1 )
ColorValue
("MEDIUMTURQUOISE"
)

Color.MediumVioletRe ColorValue ("#c71585" RGBA ( 199, 21, 133,


d ) 1 )
ColorValue
("MediumVioletRed" )

Color.MidnightBlue ColorValue ("#191970" RGBA ( 25, 25, 112, 1


) )
ColorValue
("Midnightblue" )

Color.MintCream ColorValue ("#f5fffa" ) RGBA ( 245, 255, 250,


ColorValue 1 )
("MintCream" )

Color.MistyRose ColorValue ("#ffe4e1" RGBA ( 255, 228, 225,


) 1 )
ColorValue
("ROSADIFUMINADO"
)

Color.Moccasin ColorValue ("#ffe4b5" RGBA ( 255, 228, 181,


) 1 )
ColorValue ("Moccasin"
)

Color.NavajoWhite ColorValue ("#ffdead" RGBA ( 255, 222, 173,


) 1 )
ColorValue
("navajowhite" )

Color.Navy ColorValue ("#000080" RGBA ( 0, 0, 128, 1 )


)
ColorValue ("Navy" )

Color.OldLace ColorValue ("#fdf5e6" RGBA ( 253, 245, 230,


) 1 )
ColorValue
("OLDLACE" )

Color.Olive ColorValue ("#808000" RGBA ( 128, 128, 0, 1


) )
ColorValue ("oliva" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.OliveDrab ColorValue ("#6b8e23" RGBA ( 107, 142, 35,


) 1 )
ColorValue
("Olivedrab" )

Color.Orange ColorValue ("#ffa500" RGBA ( 255, 165, 0, 1


) )
ColorValue ("naranja"
)

Color.OrangeRed ColorValue ("#ff4500" RGBA ( 255, 69, 0, 1 )


)
ColorValue
("ORANGERED" )

Color.Orchid ColorValue ("#da70d6" RGBA ( 218, 112, 214,


) 1 )
ColorValue ("orquídea"
)

Color.PaleGoldenRod ColorValue ("#eee8aa" RGBA ( 238, 232, 170,


) 1 )
ColorValue
("palegoldenrod" )

Color.PaleGreen ColorValue ("#98fb98" RGBA ( 152, 251, 152,


) 1 )
ColorValue
("Verdepálido." )

Color.PaleTurquoise ColorValue ("#afeeee" RGBA ( 175, 238, 238,


) 1 )
ColorValue
("PALETURQUOISE" )

Color.PaleVioletRed ColorValue ("#db7093" RGBA ( 219, 112, 147,


) 1 )
ColorValue
("PaleVioletRed" )

Color.PapayaWhip ColorValue ("#ffefd5" ) RGBA ( 255, 239, 213,


ColorValue 1 )
("papayawhip" )

Color.PeachPuff ColorValue ("#ffdab9" RGBA ( 255, 218, 185,


) 1 )
ColorValue
("PeachPuff" )

Color.Peru ColorValue ("#cd853f" RGBA ( 205, 133, 63,


) 1 )
ColorValue ("Perú" )

Color.Pink ColorValue ("#ffc0cb" RGBA ( 255, 192, 203,


) 1 )
ColorValue ("Rosa" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.Plum ColorValue ("#dda0dd" RGBA ( 221, 160, 221,


) 1 )
ColorValue ("ciruela" )

Color.PowderBlue ColorValue ("#b0e0e6" RGBA ( 176, 224, 230,


) 1 )
ColorValue
("PowderBlue" )

Color.Purple ColorValue ("#800080" RGBA ( 128, 0, 128, 1


) )
ColorValue ("púrpura"
)

Color.Red ColorValue ("#ff0000" RGBA ( 255, 0, 0, 1 )


)
ColorValue ("rojo" )

Color.RosyBrown ColorValue ("#bc8f8f" RGBA ( 188, 143, 143,


) 1 )
ColorValue
("Rosybrown" )

Color.RoyalBlue ColorValue ("#4169e1" RGBA ( 65, 105, 225,


) 1 )
ColorValue
("RoyalBlue" )

Color.SaddleBrown ColorValue ("#8b4513" RGBA ( 139, 69, 19, 1


) )
ColorValue
("SADDLEBROWN" )

Color.Salmon ColorValue ("#fa8072" RGBA ( 250, 128, 114,


) 1 )
ColorValue ("salmón" )

Color.SandyBrown ColorValue ("#f4a460" RGBA ( 244, 164, 96,


) 1 )
ColorValue
("sandybrown" )

Color.SeaGreen ColorValue ("#2e8b57" RGBA ( 46, 139, 87, 1


) )
ColorValue
("SeaGreen" )

Color.SeaShell ColorValue ("#fff5ee" ) RGBA ( 255, 245, 238,


ColorValue 1 )
("SEASHELL" )

Color.Sienna ColorValue ("#a0522d" RGBA ( 160, 82, 45, 1


) )
ColorValue ("Sienna" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color.Silver ColorValue ("#c0c0c0" RGBA ( 192, 192, 192,


) 1 )
ColorValue ("Silver" )

Color.SkyBlue ColorValue ("#87ceeb" RGBA ( 135, 206, 235,


) 1 )
ColorValue ("SkyBlue"
)

Color.SlateBlue ColorValue ("#6a5acd" RGBA ( 106, 90, 205,


) 1 )
ColorValue
("SLATEBLUE" )

Color.SlateGray ColorValue ("#708090" RGBA ( 112, 128, 144,


) 1 )
ColorValue ("gris
pizarra" )

Color.SlateGrey ColorValue ("#708090" RGBA ( 112, 128, 144,


) 1 )
ColorValue
("slategrey" )

Color.Snow ColorValue ("#fffafa" ) RGBA ( 255, 250, 250,


ColorValue ("nieve" ) 1 )

Color.SpringGreen ColorValue ("#00ff7f" ) RGBA ( 0, 255, 127, 1


ColorValue )
("SPRINGGREEN" )

Color.SteelBlue ColorValue ("#4682b4" RGBA ( 70, 130, 180,


) 1 )
ColorValue ("SteelBlue"
)

Color.Tan ColorValue ("#d2b48c" RGBA ( 210, 180, 140,


) 1 )
ColorValue ("tan" )

Color.Teal ColorValue ("#008080" RGBA ( 0, 128, 128, 1


) )
ColorValue ("verde
azulado" )

Color.Thistle ColorValue ("#d8bfd8" RGBA ( 216, 191, 216,


) 1 )
ColorValue ("THISTLE"
)

Color.Tomato ColorValue ("#ff6347" RGBA ( 255, 99, 71, 1


) )
ColorValue ("tomate" )
ENUMERACIÓN DE COLOR COLORVALUE RGBA MUESTRA DE COLOR

Color. Transparent ColorValue RGBA ( 0, 0, 0, 0 )


("#00000000" )
ColorValue
("transparente" )

Color.Turquoise ColorValue ("#40e0d0" RGBA ( 64, 224, 208,


) 1 )
ColorValue ("turquesa"
)

Color.Violet ColorValue ("#ee82ee" RGBA ( 238, 130, 238,


) 1 )
ColorValue ("violeta" )

Color.Wheat ColorValue ("#f5deb3" RGBA ( 245, 222, 179,


) 1 )
ColorValue ("trigo" )

Color.White ColorValue ("#ffffff" ) RGBA ( 255, 255, 255,


ColorValue ("blanco" ) 1 )

Color.WhiteSmoke ColorValue ("#f5f5f5" ) RGBA ( 245, 245, 245,


ColorValue 1 )
("WhiteSmoke" )

Color.Yellow ColorValue ("#ffff00" ) RGBA ( 255, 255, 0, 1


ColorValue ("amarillo" )
)

Color.YellowGreen ColorValue ("#9acd32" RGBA ( 154, 205, 50,


) 1 )
ColorValue
("YELLOWGREEN" )
Funciones Left, Mid y Right en PowerApps
08/10/2019 • 5 minutes to read

Extrae la parte izquierda, central o derecha de una cadena de texto.

Descripción
Las funciones Left, Mid y Right devuelven una parte de una cadena.
Left: devuelve los caracteres del principio de una cadena.
Mid: devuelve los caracteres centrales de una cadena.
Right: devuelve los caracteres del final de una cadena.
Si especifica una cadena como argumento, la función devuelve la parte que ha solicitado de la cadena. Si
especifica una tabla de una columna que contiene cadenas, la función devuelve una tabla de una columna
de las partes que solicitó de esas cadenas. Si especifica una tabla con varias columnas, puede convertirla
en una tabla de una columna, como se describe en la sección sobre cómo trabajar con tablas.
Si la posición inicial es negativa o sobrepasa el final de la cadena, Mid devuelve blank. Puede comprobar
la longitud de una cadena mediante la función Len . Si se solicitan más caracteres de los que contiene la
cadena, la función devuelve tantos caracteres como sea posible.

Sintaxis
Left( String; NumberOfCharacters )
Mid( String; StartingPosition; NumberOfCharacters )
Right( String; NumberOfCharacters )
String: requerido. La cadena hasta la cual se extrae el resultado o desde la que se extrae el resultado.
StartingPosition: requerido (solo Mid). La posición inicial. El primer carácter de la cadena ocupa la
posición 1.
NumberOfCharacters : requerido (soloizquierda y derecha ). El número de caracteres que se va a
devolver. Si se omite para la función Mid , la función devuelve la parte desde la posición inicial hasta el
final de la cadena.
Left( SingleColumnTable; NumberOfCharacters )
Mid( SingleColumnTable; StartingPosition; NumberOfCharacters )
Right( SingleColumnTable; NumberOfCharacters )
SingleColumnTable: requerido. Una tabla de una columna de cadenas de la cual se extraen los
resultados.
StartingPosition: requerido (solo Mid). La posición inicial. El primer carácter de la cadena ocupa la
posición 1.
NumberOfCharacters : requerido (soloizquierda y derecha ). El número de caracteres que se va a
devolver. Si se omite para la función Mid , la función devuelve la parte desde la posición inicial hasta el
final de la cadena.

Ejemplos
Cadena única
En los ejemplos de esta sección se usa un control de entrada de texto como origen de datos. El control se
denomina Author y contiene la cadena "E". E. Cummings".

FÓRMULA DESCRIPCIÓN RESULTADO

Left( Author.Text; 5 ) Extrae un máximo de cinco "E. E".


caracteres del principio de la cadena.

Mid( Author.Text; 7; 4 ) Extrae un máximo de cuatro "Cumm"


caracteres de la cadena, empezando
por el séptimo carácter.

MID (Author. Text, 7) Extrae todos los caracteres, "Cummings"


empezando por el séptimo carácter,
de la cadena.

Right( Author.Text; 5 ) Extrae un máximo de cinco "mings"


caracteres del final de la cadena.

Tabla de una sola columna


En cada ejemplo de esta sección se extraen cadenas de la columna Address de este origen de datos,
denominado People, y se devuelve una tabla de una columna que contiene los resultados:

FÓRMULA DESCRIPCIÓN RESULTADO

Left( Extrae los ocho primeros caracteres


ShowColumns( People; "Address" de cada cadena.
); 8 )

Mid( Extrae los siete caracteres centrales


ShowColumns( People; "Address" de cada cadena, comenzando por el
); 5; 7 ) quinto carácter.

Right( Extrae los siete últimos caracteres de


ShowColumns( People; "Address" cada cadena.
); 7 )

Ejemplo paso a paso


1. Importe o cree una colección denominada Inventory y muéstrela en una galería, como se describe
en el primer procedimiento en Show images and text in a gallery (Mostrar imágenes y texto en una
galería).
2. Establezca la propiedad Text de la etiqueta inferior de la galería en esta función:
Right(ThisItem.ProductName; 3)
La etiqueta muestra los tres últimos caracteres de cada nombre de producto.
Funciones Round, RoundDown y RoundUp en
PowerApps
08/10/2019 • 2 minutes to read

Redondea un número.

Descripción
Las funciones Round, RoundDown y RoundUp redondean un número al número especificado de posiciones
decimales:
Round redondea si el dígito siguiente es 5 o un número superior. En caso contrario, esta función redondea a
menos.
RoundDown siempre redondea hacia abajo al número anterior.
RoundUp siempre redondea hacia arriba al número siguiente.
Si se pasa un número único, el valor devuelto es la versión redondeada de dicho número. Si pasa una tabla de una
sola columna que contiene números, el valor devuelto es una tabla de una sola columna de números redondeados.
Si tiene una tabla con varias columnas, puede convertirla en una tabla de una sola columna, como se describe en
cómo trabajar con tablas.

Sintaxis
Round( Number; DecimalPlaces )
RoundDown( Number; DecimalPlaces )
RoundUp( Number; DecimalPlaces )
Number: requerido. Número que se va a redondear.
DecimalPlaces: requerido. El número de posiciones a la derecha del separador decimal que se desea utilizar para
redondear. Use 0 para redondear a un número entero.
Funciones Round, RoundDown y RoundUp en
PowerApps
08/10/2019 • 2 minutes to read

Redondea un número.

Descripción
Las funciones Round, RoundDown y RoundUp redondean un número al número especificado de posiciones
decimales:
Round redondea si el dígito siguiente es 5 o un número superior. En caso contrario, esta función redondea a
menos.
RoundDown siempre redondea hacia abajo al número anterior.
RoundUp siempre redondea hacia arriba al número siguiente.
Si se pasa un número único, el valor devuelto es la versión redondeada de dicho número. Si pasa una tabla de una
sola columna que contiene números, el valor devuelto es una tabla de una sola columna de números redondeados.
Si tiene una tabla con varias columnas, puede convertirla en una tabla de una sola columna, como se describe en
cómo trabajar con tablas.

Sintaxis
Round( Number; DecimalPlaces )
RoundDown( Number; DecimalPlaces )
RoundUp( Number; DecimalPlaces )
Number: requerido. Número que se va a redondear.
DecimalPlaces: requerido. El número de posiciones a la derecha del separador decimal que se desea utilizar para
redondear. Use 0 para redondear a un número entero.
Funciones Round, RoundDown y RoundUp en
PowerApps
08/10/2019 • 2 minutes to read

Redondea un número.

Descripción
Las funciones Round, RoundDown y RoundUp redondean un número al número especificado de posiciones
decimales:
Round redondea si el dígito siguiente es 5 o un número superior. En caso contrario, esta función redondea
a menos.
RoundDown siempre redondea hacia abajo al número anterior.
RoundUp siempre redondea hacia arriba al número siguiente.
Si se pasa un número único, el valor devuelto es la versión redondeada de dicho número. Si pasa una tabla de
una sola columna que contiene números, el valor devuelto es una tabla de una sola columna de números
redondeados. Si tiene una tabla con varias columnas, puede convertirla en una tabla de una sola columna,
como se describe en cómo trabajar con tablas.

Sintaxis
Round( Number; DecimalPlaces )
RoundDown( Number; DecimalPlaces )
RoundUp( Number; DecimalPlaces )
Number: requerido. Número que se va a redondear.
DecimalPlaces: requerido. El número de posiciones a la derecha del separador decimal que se desea utilizar
para redondear. Use 0 para redondear a un número entero.
Funciones SaveData y LoadData en PowerApps
08/10/2019 • 4 minutes to read

Guarda y vuelve a cargar una colección.

Descripción
La función SaveData almacena una colección para su uso posterior con un nombre.
La función LoadData vuelve a cargar una colección por el nombre guardado anteriormente con SaveData.
No se puede utilizar esta función para cargar una colección de otro origen.
Use estas funciones para mejorar el rendimiento de inicio de la aplicación almacenando en caché los datos de
la fórmula app. OnStart en una primera ejecución y volviendo a cargar la memoria caché local en
ejecuciones posteriores. También puede usar estas funciones para agregar funcionalidades sin conexión
sencillas a la aplicación.
No puede usar estas funciones dentro de un explorador, ya sea al crear la aplicación en PowerApps Studio o
al ejecutar la aplicación en el reproductor Web. Para probar la aplicación, ejecútela en PowerApps Mobile en
un dispositivo iPhone o Android.
Estas funciones están limitadas por la cantidad de memoria de la aplicación disponible, ya que operan en una
colección en memoria. La memoria disponible puede variar según el dispositivo y el sistema operativo, la
memoria que usa el reproductor de PowerApps y la complejidad de la aplicación en términos de pantallas y
controles. Si almacena más de unos megabytes de datos, pruebe la aplicación con los escenarios esperados
en los dispositivos en los que espera que la aplicación se ejecute. Por lo general, debe esperar entre 30 y 70
megabytes de memoria disponible.
LoadData no crea la colección; la función solo rellena una colección existente. Primero tiene que crear la
colección con las columnas correctas utilizando Recopilar . Los datos cargados se anexarán a la colección;
Utilice primero la función Clear si desea empezar con una colección vacía.
El almacenamiento está cifrado y se encuentra en una ubicación privada en el dispositivo local, aislado de
otros usuarios y otras aplicaciones.

Sintaxis
SaveData( Colección; Nombre )
LoadData( Collection; Name [; IgnoreNonexistentFile ])
Colección: requerido. Colección para almacenar o cargar.
Nombre: requerido. Nombre del almacenamiento. Tiene que usar el mismo nombre para guardar y cargar
el mismo conjunto de datos. El espacio de nombres no se comparte con otros usuarios o aplicaciones.
IgnoreNonexistentFile: opcional. Valor booleano (true/false) que indica si la función LoadData debe
mostrar o ignorar los errores cuando no encuentre un archivo coincidente. Si especifica false, se
mostrarán los errores. Si especifica true, se omitirán los errores, lo que resulta útil para escenarios sin
conexión. SaveData puede crear un archivo si el dispositivo está desconectado (es decir, si el estado
Connection.Connected es false).

Ejemplos
FÓRMULA DESCRIPCIÓN RESULTADO

If (Connection. Connected; Si el dispositivo está conectado, El contenido se presenta tanto si el


ClearCollect (LocalTweets; Twitter. cargue la colección LocalTweets del dispositivo está conectado como
SearchTweet ("PowerApps"; servicio Twitter; si no lo está, cargue desconectado.
{maxResults: 100})); LoadData la colección de la caché de archivos
(LocalTweets; "tweets"; true)) local.

SaveData(LocalTweets; "Tweets") Guarde la colección LocalTweets como Los datos se guardan localmente para
una caché de archivos local en el que LoadData puede cargarlos en
dispositivo. una colección.
Funciones Filter, Search y LookUp en
PowerApps
08/10/2019 • 18 minutes to read

Busca uno o varios registros en una tabla.

Descripción
La función Filter busca registros en una tabla que satisface una fórmula. Use la función Filter para
buscar un conjunto de registros que coinciden con uno o varios criterios y descartar aquellos que no lo
hacen.
La función LookUp busca el primer registro de una tabla que satisface una fórmula. Use LookUp para
encontrar un único registro que coincida con uno o varios criterios.
En ambos casos, la fórmula se evalúa para cada registro de la tabla. Los registros que dan como
resultado true se incluyen en el resultado. Además de los operadores de la fórmula normal, puede usar
los operadores in y exactin para las coincidencias de subcadenas.
Los campos de registro que se están procesando actualmente estarán disponibles en la formula. Solo
tiene que hacer referencia a los campos por su nombre, como con cualquier otro valor. También puede
hacer referencia a propiedades de control y a otros valores desde toda la aplicación. Para obtener más
detalles, vea los ejemplos siguientes y trabajar con el ámbito de registros.
La función Search busca registros en una tabla que contengan una cadena en una de sus columnas. La
cadena puede estar en cualquier lugar dentro de la columna. Por ejemplo, si busca "rob" o "bert"
encontrará una coincidencia en una columna que contiene "Roberto". La búsqueda no distingue
mayúsculas de minúsculas. A diferencia de Filter y LookUp, la función Search usa solo una cadena de
coincidencia en lugar de una fórmula.
Filter y Search devuelven una tabla que contiene las mismas columnas que la tabla original y los
registros que coinciden con los criterios. LookUp devuelve solo el primer registro encontrado después
de aplicar una fórmula para reducir el registro a un solo valor. Si no se encuentra ningún registro, las
funciones Filter y Search devuelven una tabla vacía, y LookUp devuelve blank.
Las tablas son un valor en PowerApps, tal como una cadena o un número. Se pueden pasar a
funciones y las funciones pueden devolverlas. Las funciones Filter, Search y LookUp no modifican la
tabla. En vez de eso, usan la tabla como argumento y devuelven una tabla, un registro o un solo valor
de ella. Consulte cómo trabajar con tablas para más detalles.

Delegación
Siempre que sea posible, PowerApps delegará las operaciones de filtrado y ordenación al origen de
datos y se desplazará por los resultados a petición. Por ejemplo, cuando se inicia una aplicación que
muestra un control Galería lleno de datos, inicialmente solo se traerá al dispositivo el primer conjunto
de registros. A medida que el usuario se desplace por los datos, se traerán más datos del origen de
datos. El resultado es un inicio más rápido de la aplicación y acceso a conjuntos de datos muy grandes.
Sin embargo, la delegación no siempre es posible. La compatibilidad de funciones y operadores con la
delegación varía según el origen de datos. Si la delegación completa de una fórmula no es posible, el
entorno de creación indicará la parte que no se puede delegar con una advertencia. Si es posible,
considere la posibilidad de cambiar la fórmula para que no incluya las funciones y los operadores que
no se pueden delegar. La lista de delegación detalla qué orígenes de datos y operaciones se pueden
delegar.
Si la delegación no es posible, PowerApps solo descargará un conjunto reducido de registros para
trabajar localmente. Las funciones de filtrado y ordenación trabajarán con un conjunto reducido de
registros. En la Galería puede no estará disponible la historia completa, y esto puede resultar confuso
a los usuarios.
Consulte la información general sobre delegación para obtener más información.

Sintaxis
Filter( Table; Formula1 [; Formula2; ... ] )
Table: requerido. La tabla en la que se va a buscar.
Formula (s) : requerido. La fórmula por la que se evalúa cada registro de la tabla. La función
devuelve todos los registros cuyo resultado es true. Puede hacer referencia a columnas dentro de la
tabla. Si se proporciona más de una fórmula, los resultados de todas las fórmulas se combinan con
la función And .
Search( Table; SearchString; Column1 [; Column2; ... ] )
Table: requerido. La tabla en la que se va a buscar.
SearchString: requerido. La cadena que se va a buscar. Si es blank o es una cadena vacía, se
devolverán todos los registros.
Column(s) : requerido. Los nombres de las columnas dentro de Table que se van a buscar. Las
columnas en las que se va a buscar deben contener texto. Los nombres de las columnas deben ser
cadenas e ir entre comillas dobles. Sin embargo, los nombres de las columnas deben ser estáticos y
no se pueden calcular con una fórmula. Si se encuentra SearchString dentro de los datos de
cualquiera de estas columnas como una coincidencia parcial, se devolverá el registro completo.

NOTE
En el caso de orígenes de datos de SharePoint y Excel que contengan nombres de columna con espacios,
especifique cada uno de ellos como "_x0020_" . Por ejemplo, especifique "Nombre de columna" como
"Nombre_x0020_de_columna" .

LookUp( Table; Formula [; ReductionFormula ] )


Table: requerido. La tabla en la que se va a buscar. En la interfaz de usuario, la sintaxis se muestra
como origen encima del cuadro de función.
Formula: requerido. La fórmula por la que se evalúa cada registro de la tabla. La función devuelve
el primer registro cuyo resultado es true. Puede hacer referencia a columnas dentro de la tabla. En
la interfaz de usuario, la sintaxis se muestra como condición encima del cuadro de función.
ReductionFormula: opcional. Esta fórmula se evalúa en el registro que se ha encontrado y luego el
registro se reduce a un valor único. Puede hacer referencia a columnas dentro de la tabla. Si no se
usa este parámetro, la función devuelve el registro completo de la tabla. En la interfaz de usuario, la
sintaxis se muestra como resultado encima del cuadro de función.

Ejemplos
Los ejemplos siguientes usan el origen de datos IceCream:
FÓRMULA DESCRIPCIÓN RESULTADO

Filter( IceCream; OnOrder > 0 ) Devuelve aquellos registros en los


que OnOrder es mayor que cero.

Filter( IceCream; Quantity + Devuelve aquellos registros en los


OnOrder > 225 ) que la suma de las columnas
Cantidad y OnOrder es mayor
que 225.

Filter( IceCream; "chocolate" in Devuelve aquellos registros donde


Lower( Flavor ) ) aparece la palabra "chocolate" en el
nombre Flavor, sin tener en cuenta
mayúsculas o minúsculas.

Filter( IceCream; Quantity < 10 Devuelve aquellos registros donde


&& OnOrder < 20 ) la cantidad es menor que 10 y la
cantidad OnOrder es menor que
20. No hay registros que coincidan
con estos criterios, por lo que se
devolverá una tabla vacía.

Search( IceCream; "choc"; Devuelve aquellos registros donde


"Flavor" ) aparece la cadena "choc" en el
nombre Flavor, sin tener en cuenta
mayúsculas o minúsculas.

Search( IceCream; ""; "Flavor" ) Dado que el término de búsqueda


está vacío, se devolverán todos los
registros.

LookUp( IceCream; Flavor = Busca un registro cuyo valor de 100


"Chocolate"; Quantity ) Flavor sea igual a "Chocolate". En
este caso, devuelve uno. Para el
primer registro que se encuentra,
devuelve el valor de Cantidad de
ese registro.

LookUp( IceCream; Quantity > Busca un registro cuyo valor de 250


150; Quantity + OnOrder ) Quantity sea mayor que 100. En
este caso, devuelve varios. Para el
primer registro que se encuentra,
que es el Flavor "Vanilla", devuelve
la suma de las columnas Quantity
y OnOrder.
FÓRMULA DESCRIPCIÓN RESULTADO

LookUp( IceCream; Flavor = Busca un registro cuyo valor de blank


"Pistachio"; OnOrder ) Flavor sea igual a "Pistachio". En
este caso no devuelve ninguno.
Como no se encontró ninguno,
Búsqueda devuelve blank.

LookUp( IceCream; Flavor = Busca un registro cuyo valor de Tipo "Vainilla", cantidad: 200, en
"Vanilla" ) Flavor sea igual a "Vanilla". En este orden: 75}
caso, devuelve uno. Como no se
proporcionó ninguna fórmula de
reducción, se devuelve todo el
registro.

Experiencia de búsqueda del usuario


En muchas aplicaciones, puede escribir uno o varios caracteres en un cuadro de búsqueda para filtrar
una lista de registros en un conjunto de datos grande. A medida que escribe, la lista muestra solo los
registros que coinciden con los criterios de búsqueda.
Los ejemplos que aparecen en el resto de este tema muestran los resultados de buscar en una lista,
denominada Clientes, que contiene estos datos:

Para crear este origen de datos como una colección, cree un control Botón y establezca la propiedad
OnSelect en esta fórmula:
ClearCollect (clientes; tabla ({nombre: "Fred Garcia"; compañía: "Northwind Traders"};
{nombre: "Cole Miller"; empresa: "Contoso"}; {Name: "Glenda Johnson"; compañía:
"Contoso"}; {Name: "Mike Collins"; Company: "Adventure Works"}; {nombre: "Colleen
Jones"; compañía: "Adventure Works"}))
Como en este ejemplo, puede mostrar una lista de registros en un control Galería en la parte inferior
de una pantalla. Cerca de la parte superior de la pantalla, puede agregar un control Entrada de texto
denominado SearchInput, de modo que los usuarios puedan especificar los registros que más les
interesen.
A medida que el usuario escribe caracteres en SearchInput, automáticamente se filtran los resultados
en la galería. En este caso, se configura la galería para que muestre los registros para los que el
nombre del cliente (no el nombre de la empresa) comienza con la secuencia de caracteres de
SearchInput. Si el usuario escribe co en el cuadro de búsqueda, la galería muestra estos resultados:

Para filtrar según la columna Nombre, establezca la propiedad Elementos del control Galería en una
de estas fórmulas:

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

Filter( Customers; StartsWith( Filtra el origen de datos Clientes


Name; SearchInput.Text ) ) para los registros en los que la
cadena de búsqueda aparece al
principio de la columna Nombre.
La prueba no distingue mayúsculas
de minúsculas. Si el usuario escribe
co en el cuadro de búsqueda, la
galería mostrará Colleen Jones y
Cole Miller. La galería no mostrará
Mike Collins porque la columna
Nombre de ese registro no
comienza por la cadena de
búsqueda.

Filter( Customers; Filtra el origen de datos Clientes


SearchInput.Text in Name ) para los registros en los que la
cadena de búsqueda aparece en
cualquier parte de la columna
Nombre. La prueba no distingue
mayúsculas de minúsculas. Si el
usuario escribe co en el cuadro de
búsqueda, la galería mostrará
Colleen Jones, Cole Miller y
Mike Collins ya que la cadena de
búsqueda aparece en algún lugar
de la columna Nombre de todos
esos registros.

Search( Customers; De forma parecida al uso del


SearchInput.Text; "Name" ) operador in, la función Search
busca una coincidencia en cualquier
parte de la columna Nombre de
cada registro. Tenga en cuenta que
debe incluir el nombre de la
columna entre comillas dobles.

Puede expandir la búsqueda para incluir la columna Empresa además de la columna Nombre:

FÓRMULA DESCRIPCIÓN RESULTADO

Filter( Customers; StartsWith( Filtra el origen de datos Clientes


Name; SearchInput.Text ) |;|; de aquellos registros en los que la
StartsWith( Company; columna Nombre o la columna
SearchInput.Text ) ) Empresa comienza por la cadena
de búsqueda (por ejemplo, co). El
operador || será true si la función
StartsWith es también true.

Filter( Customers; Filtra el origen de datos Clientes


SearchInput.Text in Name |;|; de aquellos registros en los que la
SearchInput.Text in Company ) columna Nombre o la columna
Empresa contienen la cadena de
búsqueda en cualquier lugar (por
ejemplo, co).
FÓRMULA DESCRIPCIÓN RESULTADO

Search( Customers; De forma parecida al uso del


SearchInput.Text; "Name"; operador in, la función Search
"Company" ) busca en el origen de datos
Customers aquellos registros en
los que la columna Name o la
columna Company contienen la
cadena de búsqueda en cualquier
lugar (por ejemplo, co). La función
Search es más fácil de leer y
escribir que Filter si desea
especificar varias columnas y varios
operadores in. Tenga en cuenta
que debe incluir los nombres de las
columnas entre comillas dobles.
Funciones Day, Month, Year, Hour, Minute, Second y
Weekday en PowerApps
08/10/2019 • 4 minutes to read

Devuelve los componentes individuales de un valor de fecha y hora.

Descripción
La función Day devuelve el componente de día de un valor de fecha y hora, comprendido entre 1 y 31.
La función Month devuelve el componente de mes de un valor de fecha y hora, comprendido entre 1 y 12.
La función Year devuelve el componente de año de un valor de fecha y hora, a partir de 1900.
La función Hour devuelve el componente de hora de un valor de fecha y hora, comprendido entre 0 (12:00 a. m.) y
23 (11:00 p. m).
La función Minute devuelve el componente de minuto de un valor de fecha y hora, comprendido entre 0 y 59.
La función Second devuelve el componente de segundo de un valor de fecha y hora, comprendido entre 0 y 59.
La función Weekday devuelve el día de la semana de un valor de fecha y hora. De forma predeterminada, el
resultado está comprendido entre 1 (domingo) y 7 (sábado). Puede especificar un intervalo diferente con un código
de la función Weekday de la semana de Microsoft Excel o un valor de enumeración de StartOfWeek:

CÓDIGO DE EXCEL ENUMERACIÓN DE STARTOFWEEK DESCRIPCIÓN

1, 17 StartOfWeek.Sunday Números del 1 (domingo) al 7 (sábado).


Predeterminado.

2, 11 StartOfWeek.Monday Números del 1 (lunes) al 7 (domingo).

3 StartOfWeek.MondayZero Números del 0 (lunes) al 6 (domingo).

12 StartOfWeek.Tuesday Números del 1 (martes) al 7 (lunes).

13 StartOfWeek.Wednesday Números del 1 (miércoles) al 7 (martes).

14 StartOfWeek.Thursday Números del 1 (jueves) al 7 (miércoles).

15 StartOfWeek.Friday Números del 1 (viernes) al 7 (jueves).

16 StartOfWeek.Saturday Números del 1 (sábado) al 7 (viernes).

Todas las funciones devuelven un número.


Consulte cómo trabajar con fechas y horas para más información.

Sintaxis
Day( DateTime )
Month( DateTime )
Year( DateTime )
Hour( DateTime )
Minute( DateTime )
Second( DateTime )
DateTime: requerido. Valor de fecha y hora con el que operar.
Weekday( DateTime [; WeekdayFirst ] )
DateTime: requerido. Valor de fecha y hora con el que operar.
WeekdayFirst: opcional. Código de Excel que especifica qué día comienza la semana. Si no se indica, se usará 1
(primero el domingo).

Ejemplos
En el ejemplo siguiente, la hora actual es las 3:59:37 p. m. del jueves, 9 de abril de 2015.

FÓRMULA DESCRIPCIÓN RESULTADO

Year( Now() ) Devuelve el componente de año de la 2015


fecha y hora actuales.

Month( Now() ) Devuelve el componente de mes de la 4


fecha y hora actuales.

Day( Now() ) Devuelve el componente de día de la 9


fecha y hora actuales.

Hour( Now() ) Devuelve el componente de hora de la 15


fecha y hora actuales.

Minute( Now() ) Devuelve el componente de minuto de 59


la fecha y hora actuales.

Second( Now() ) Devuelve el componente de minuto de 37


la fecha y hora actuales.

Weekday( Now() ) Devuelve el componente de día de la 5


semana de la fecha y hora actuales,
considerando al domingo como inicio de
la semana de forma predeterminada.

Weekday( Now(); 14 ) Devuelve el componente de día de la 1


semana de la fecha y hora actuales,
usando un código de Excel para
especificar el jueves como inicio de la
semana.

Weekday( Now(); StartOfWeek.Wed Devuelve el componente de día de la 2


nesday ) semana de la fecha y hora actuales,
usando una enumeración StartOfWeek
para especificar el miércoles como inicio
de la semana.
Función Select en PowerApps
08/10/2019 • 5 minutes to read

Simula una acción de selección en un control, lo que provoca la evaluación de la fórmula OnSelect.

Descripción
La función Select simula una acción de selección en un control como si el usuario hubiera hecho clic en el control
o lo hubiera pulsado. Como resultado, la fórmula OnSelect se evalúa en el control de destino.
Use Select para propagar una acción seleccionada a un control primario. Este tipo de propagación es el
comportamiento predeterminado en, por ejemplo, las galerías. De forma predeterminada, la propiedad OnSelect
de cualquier control en un control Galería se establece en Select (primario) . De este modo, puede establecer el
valor de la propiedad OnSelect del propio control de la galería y que la fórmula se evaluará independientemente
de dónde un usuario podría haga clic o pulsar en la galería.
Si desea que uno o varios controles de la galería realizaran diferentes acciones de la propia galería, establezca la
propiedad OnSelect para esos controles en un valor distinto del valor predeterminado. Puede dejar los valores
predeterminados para las propiedades OnSelect de la mayoría de los controles de la galería si desea que realicen
la misma acción que la propia galería.
Select pone en cola la propiedad OnSelect de destino para su posterior procesamiento, que puede ocurrir una
vez finalizada la evaluación de la fórmula actual. Select no provoca que la propiedad OnSelect de destino se
evalúe inmediatamente; Select tampoco espera a que OnSelect termine de evaluarse.
Select no puede cruzar los límites de los controles de contenedor, como una galería o un formulario. Controles
dentro de un control de contenedor solo pueden ser el sujeto de una función Select en las fórmulas que están
dentro del mismo control de contenedor. No se puede utilizar Select entre pantallas.
Solo puede usar Select con controles que tienen una propiedad OnSelect.
Se pueden usar Select en fórmulas de comportamiento.
Un control no puede usar Select directa o indirectamente a través de otros controles.

Sintaxis
Select( Control )
Control (se requiere). El control para seleccionar en nombre del usuario.

Ejemplos
Uso básico
1. Agregue un control Botón y, si tiene otro nombre, cámbielo a Botón1.
2. Establezca la propiedad OnSelect de Botón1 en esta fórmula:
Notify( "Hola mundo" )
3. En la misma pestaña, agregue un segundo control Botón y establezca su propiedad OnSelect en esta
fórmula:
Select( Botón1 )
4. Mientras mantiene presionada la tecla Alt, seleccione el segundo botón.
Aparecerá una notificación en la parte superior de la aplicación. La propiedad OnSelect de Button1
generó esta notificación.

Control Galería
1. Agregue un control Galería vertical que contiene otros controles.

2. Seleccione la propiedad OnSelect de la galería en esta fórmula:


Notify( "Galería seleccionada" )
3. Mientras mantiene presionada la tecla Alt, haga clic en el fondo de la galería o en cualquier control en la
galería; también puede pulsar dichos elementos.
Todas las acciones se mostrarán la notificación Galería seleccionada en la parte superior de la aplicación.
Use propiedad OnSelect de la galería para especificar la acción predeterminada que se realizará cuando el
usuario haga clic en un elemento de dicha galería o pulse ese elemento.
4. Establezca la propiedad OnSelect del control de imagen en esta fórmula:
Notify( "Imagen seleccionada"; operación correcta)
5. Mientras mantiene presionada la tecla Alt, haga clic en los distintos elementos de la galería o púlselos.
Al hacer clic en cualquier control en la galería, excepto en la imagen o pulsarlo, Galería seleccionada
aparecerá como antes. Al hacer clic en la imagen o pulsarla, aparecerá Imagen seleccionada.
Use controles individuales en la galería para realizar acciones que difieren de la acción predeterminada de
la galería.
Función Set en PowerApps
08/10/2019 • 6 minutes to read

Establece el valor de una variable global.

Información general
La función Set se usa para establecer el valor de una variable global, que guarda temporalmente un fragmento
de información, como el número de veces que el usuario ha seleccionado un botón o el resultado de una
operación de datos.
Las variables globales están disponibles en todas las pantallas de la aplicación. Son las variables más simples y
se pueden usar en la mayor parte de las situaciones. También hay variables de contexto cuyo ámbito es una sola
pantalla y colecciones que permiten modificar tablas a nivel de fila. Para obtener más información acerca de
estas otras opciones, consulte comprender las variables.
PowerApps se basa en fórmulas que se recalculan automáticamente a medida que el usuario interactúa con una
aplicación. Las fórmulas que dependan de una variable se actualizarán automáticamente cuando cambie. Sin
embargo, la variable no se actualizará automáticamente si cambia el valor de la fórmula utilizada en la función
set . Esto requiere que App Maker actualice manualmente la variable, lo que puede ser propenso a errores y
más difícil de entender. Antes de usar una variable, revise comprender las variables.

Descripción
Las variables globales se crean implícitamente mediante la función Set. No se requiere ninguna declaración
explícita. Si quita todas las funciones de conjunto de una variable global, la variable global dejará de existir. Para
borrar una variable, establezca su valor en el resultado de la función Blank .
Puede ver los valores de las variables, las definiciones y los usos con la vista variables en el menú archivo de
PowerApps Studio.
Tal como mostrarán los ejemplos de este mismo tema, las variables de contexto pueden contener distintos tipos
de información, entre los que se incluyen:
un valor único
un registro
una tabla
una referencia de objeto
el resultado de una fórmula
Una variable global guarda su valor hasta que se cierra la aplicación. Una vez que se cierre, el valor de la variable
global se perderá y deberá volver a crearlo al cargar la aplicación de nuevo.
Las variables globales no pueden usar el mismo nombre que una colección o un control existentes. Sin embargo,
pueden usar el mismo nombre que una variable de contexto. Para eliminar la ambigüedad entre ambas, use el
operador de desambiguación.
Set no devuelve ningún valor y solo se puede usar en una fórmula de comportamiento.

Sintaxis
Set( VariableName; Value )
VariableName (se requiere). Nombre de la variable global que se va a crear o actualizar.
Value (se requiere). Valor que se asigna a la variable de contexto.

Ejemplos
FÓRMULA DESCRIPCIÓN RESULTADO

Set( Counter; 1 ) Crea o modifica la variable global Counter tiene el valor 1. Para hacer
Counter y establece su valor en 1. referencia a dicha variable, utilice el
nombre Counter en una fórmula en
cualquier pantalla.

Set( Counter; 2 ) Establece el valor de la variable global Counter tiene el valor 2.


Counter del ejemplo anterior en 2.

Set( Counter; Counter + 1 ) Aumenta el valor de la variable global Counter tiene el valor 3.
Counter del ejemplo anterior en 3.

Set( Name; "Lily" ) Crea o modifica la variable global Name tiene el valor Lily.
Name y establece su valor en Lily.

Set( Person; { Name: "Milton"; Crea o modifica la variable global Person tiene el valor del registro
Address: "1 Main St" } ) Person y establece su valor en un { Name: "Milton";
registro. El registro contiene dos Address: "1 Main St" } }.
columnas, llamadas Name y Address.
El valor de la columna Name es Haga referencia a este registro como
Milton, y el valor de la columna un todo con el nombre Person, o haga
Address es 1 Main St. referencia a una columna individual de
este registro con Person.Name o
Person.Address.

Set( Person; Trabaja con la función Patch para Person ahora tiene el valor del registro
Patch( Person; {Address: "2 Main St actualizar la variable global Person y { Name: "Milton";
"})) establece el valor de la columna Address: "2 Main St" } }.
Address en 2 Main St.
Función SetFocus en PowerApps
17/09/2019 • 13 minutes to read

Mueve el foco de entrada a un control concreto.

DESCRIPCIÓN
La función SetFocus proporciona a un control el foco de entrada. El control recibe las pulsaciones de teclas del
usuario, lo que les permite escribir en un control entrada de texto o usar la tecla entrar para seleccionar un botón.
El usuario también puede usar la tecla Tab , tocar, Mouse u otro gesto para desplazar el foco de entrada. El
comportamiento de la tecla Tab se rige por la propiedad TabIndex .
Utilice la función SetFocus para establecer el foco cuando (cada uno de ellos tiene un ejemplo a continuación):
control de entrada recién expuesto o habilitado, para guiar al usuario en lo que viene después y para una
entrada de datos más rápida.
un formulario se valida, para centrarse y mostrar el control de entrada infractor para una resolución rápida.
se muestra una pantalla para centrar el primer control de entrada con la propiedad visible de la pantalla.
El control con el foco puede ser visualmente diferente en función de las propiedades FocusedBorderColor y
FocusedBorderThickness .

Limitaciones
SetFocus solo se puede usar con:
Button (control)
Control de icono
Control de imagen
Control Etiqueta
TextInput (control)
No se puede establecer el foco en los controles que se encuentran dentro de un control de Galería , un control de
formulario de edición o un componente. SetFocus se puede usar con un control en una pantalla de scrollbale.
Solo puede establecer el foco en los controles de la misma pantalla que la fórmula que contiene la llamada de
SetFocus .
El intento de establecer el foco en un control que tiene la propiedad DisplayMode establecida en deshabilitado
no tiene ningún efecto. El foco permanecerá en el lugar en el que se encontraba anteriormente.
En Apple iOS, el teclado en pantalla solo se mostrará automáticamente si se inició SetFocus mediante una acción
de usuario directa. Por ejemplo, al invocar a partir de la propiedad Alseleccionar de un botón, se mostrará el
teclado en pantalla, mientras que al invocar desde la vista visible de una pantalla no.
Solo puede usar SetFocus en fórmulas de comportamiento.

Sintaxis
SetFocus ( Control )
Control (se requiere). Control que se va a asignar al foco de entrada.
Ejemplos
Centrarse en un control de entrada recién expuesto o habilitado
Muchos carros de la compra permiten al cliente usar la dirección de envío como dirección de facturación, lo que
evita la necesidad de escribir la misma información dos veces. Si se desea una dirección de facturación diferente,
los cuadros de entrada de texto de dirección de facturación están habilitados y resulta útil guiar al cliente a estos
controles recién habilitados para una entrada de datos más rápida.

Hay muchas fórmulas en juego aquí, pero la que mueve el foco está en la propiedad AlDesactivar del control de
casilla :

SetFocus( BillingName )

La tecla Tab también se puede usar para cambiar el foco rápidamente de un campo a otro. Para ilustrar mejor, la
tecla Tab no se utilizó en la animación.
Para crear este ejemplo:
1. Cree una nueva aplicación.
2. Agregue controles etiqueta con el texto "dirección de envío", "nombre:", "dirección:", "dirección de facturación",
"nombre:" y "dirección:" y colóquelos tal como se muestra en la animación.
3. Agregue un control entrada de texto y cambie su nombre por ShippingName.
4. Agregue un control entrada de texto y cambie su nombre por ShippingAddress.
5. Agregue un control casilla y cambie su nombre a SyncAddresses.
6. Establezca la propiedad texto de este control en la fórmula "Use Shipping address as Billing address" .
7. Agregue un control entrada de texto y cambie su nombre por BillingName.
8. Establezca la propiedad predeterminada de este control en la fórmula ShippingName .
9. Establezca la propiedad DisplayMode de este control en la fórmula
If( SyncAddresses.Value; DisplayMode.View; DisplayMode.Edit ) . Esto habilitará o deshabilitará
automáticamente este control según el estado del control de casilla.
10. Agregue un control entrada de texto y cambie su nombre por BillingAddress.
11. Establezca la propiedad predeterminada de este control en la fórmula ShippingAddress .
12. Establezca la propiedad DisplayMode de este control en la fórmula
If( SyncAddresses.Value; DisplayMode.View; DisplayMode.Edit ) . Esto habilitará o deshabilitará
automáticamente este control según el estado del control de casilla.
13. Establezca la propiedad default de la casilla de verificación en la true fórmula. De forma predeterminada, la
dirección de facturación usará el mismo valor que la dirección de envío.
14. Establezca la propiedad alcomprobar de la casilla en la fórmula
Reset( BillingName );; Reset( BillingAddress ) . Si el usuario decide sincronizar las direcciones de envío y
facturación, se borrará cualquier entrada del usuario en los campos de dirección de facturación, lo que
permitirá que las propiedades predeterminadas de cada una de ellas extraigan los valores de los campos de
dirección de envío correspondientes.
15. Establezca la propiedad AlDesactivar de la casilla de verificación en la SetFocus( BillingName ) fórmula. Si el
usuario elige tener una dirección de facturación diferente, se moverá el foco al primer control en la dirección de
facturación. Los controles ya se habrán habilitado debido a sus propiedades DisplayMode .
Céntrese en los problemas de validación

NOTE
Aunque este ejemplo parece ser un control de formulario de edición , desafortunadamente el control no admite todavía
SetFocus . En su lugar, en este ejemplo se usa una pantalla desplazable para hospedar los controles de entrada.

Al validar un formulario, puede resultar útil no solo mostrar un mensaje si hay un problema, sino también tener el
usuario en el campo que causa el error. Puede ser especialmente útil si el campo en cuestión se desplaza fuera de la
pantalla y no es visible.
En esta animación, el botón de validación se presiona repetidamente hasta que todos los campos se han rellenado
correctamente. Tenga en cuenta que el puntero del mouse no se desplaza hacia abajo desde la parte superior de la
pantalla. En su lugar, la función SetFocus ha desplazado el foco de entrada al control que requiere atención con
esta fórmula:

If( IsBlank( Name );


Notify( "Name requires a value"; Error );; SetFocus( Name );
IsBlank( Street1 );
Notify( "Street Address 1 requires a value"; Error );; SetFocus( Street1 );
IsBlank( Street2 );
Notify( "Street Address 2 requires a value"; Error );; SetFocus( Street2 );
IsBlank( City );
Notify( "City requires a value"; Error );; SetFocus( City );
IsBlank( County );
Notify( "County requires a value"; Error );; SetFocus( County );
IsBlank( StateProvince );
Notify( "State or Province requires a value"; Error );; SetFocus( StateProvince );
IsBlank( PostalCode );
Notify( "Postal Code requires a value"; Error );; SetFocus( PostalCode );
IsBlank( Phone );
Notify( "Contact Phone requires a value"; Error );; SetFocus( Phone );
Notify( "Form is Complete"; Success )
)

Para crear este ejemplo:


1. Cree una nueva aplicación de teléfono en blanco.
2. En el menú Insertar , seleccione nueva pantallay, a continuación, seleccione desplazable.
3. En la sección central de la pantalla, agregue controles de entrada de texto y asígneles un nombre, Street1,
calle2, City, County, StateProvince, PostalCodey teléfono. Agregue controles de etiqueta por encima de
cada uno de ellos para identificar los campos. Es posible que tenga que cambiar el tamaño de la sección si no es
lo suficientemente larga como para ajustarse a todos los controles.
4. Agregue un control icono de marca de verificación en la parte superior de la pantalla, encima de la sección
desplazable.
5. Establezca la propiedad alseleccionar del control de icono en la fórmula If( IsBlank( ... indicada
anteriormente.
Foco al mostrar una pantalla

NOTE
Aunque este ejemplo parece ser un control de formulario de edición , el control no admite unforutnatley SetFocus
todavía. En su lugar, en este ejemplo se usa una pantalla desplazable para hospedar los controles de entrada.

De forma similar a exponer un control de entrada, cuando se muestra una pantalla de entrada de datos resulta útil
centrar el primer control de entrada para una entrada de datos más rápida.
En esta animación, la pantalla de entrada de datos de la izquierda no usa SetFocus. Cuando no se muestra, no hay
ningún control de entrada que tenga el foco, lo que requiere que el usuario realice una tabulación, toque, mouse o
use otro medio para centrar el campo de nombre antes de que se pueda escribir en él un valor.
A la derecha, tenemos exactamente la misma aplicación con la propiedad visible de la pantalla de entrada de
datos establecida en esta fórmula:

SetFocus( Name )

Esto establece el foco en el campo de nombre automáticamente. El usuario puede empezar a escribir y tabular
inmediatamente entre los campos sin ninguna acción anterior requerida.
Para crear este ejemplo:
1. Cree la aplicación "Céntrese en los problemas de validación" anterior.
2. En esta pantalla, establezca la propiedad divisible en la fórmula SetFocus( Name ) .
3. Agregue una segunda pantalla.
4. Agregue un control de botón .
5. Establezca la propiedad alseleccionar de este control en la fórmula Navigate( Screen1 ) .
6. Obtenga una vista previa de la aplicación en esta pantalla. Presione el botón. Se evaluará la fórmula divisible y
el campo nombre estará automáticamente en el foco.
Funciones AddColumns, DropColumns, RenameColumns y
ShowColumns en PowerApps
08/10/2019 • 13 minutes to read

Forma una tabla agregando, quitando, cambiando el nombre y seleccionando sus columnas.

Información general
Estas funciones dan forma a una tabla mediante el ajuste de sus columnas:
Reducción de una tabla que contiene varias columnas a una sola columna para su uso con las funciones de columna única, como
Lower o Abs .
Incorporación de una columna calculada a una tabla (por ejemplo, una columna Total Price que muestre el resultado de multiplicar
Quantity por Unit Price).
Cambio del nombre de una columna a algo más significativo, para mostrarla a los usuarios o para su uso en las fórmulas.
Una tabla es un valor en PowerApps, como una cadena o un número. Puede especificar una tabla como un argumento en una fórmula, y
las funciones pueden devolver una tabla como resultado.

NOTE
Las funciones que se describen en este tema no modifican la tabla original. En su lugar, toman esa tabla como argumento y devuelven una nueva
tabla con una transformación aplicada. Consulte cómo trabajar con tablas para más detalles.

No se pueden modificar las columnas de un origen de datos mediante el uso de estas funciones. Tiene que modificar los datos en su
origen. Puede agregar columnas a una colección con la función Collect . Consulte cómo trabajar con fuentes de datos para más
detalles.

Descripción
La función AddColumns agrega una columna a una tabla y una fórmula define los valores de esa columna. Las columnas existentes
permanecen sin modificar.
La fórmula se evalúa para cada registro de la tabla.
Los campos de registro que se están procesando actualmente estarán disponibles en la formula. Solo tiene que hacer referencia a los
campos por su nombre, como con cualquier otro valor. También puede hacer referencia a propiedades de control y a otros valores desde
toda la aplicación. Para obtener más detalles, vea los ejemplos siguientes y trabajar con el ámbito de registros.
La función DropColumns excluye las columnas de una tabla. El resto de las columnas permanece sin modificar. DropColumns excluye
las columnas y ShowColumns las incluye.
Use la función RenameColumns para cambiar el nombre de una o varias columnas de una tabla al proporcionar al menos un par de
argumentos que especifiquen el nombre de una columna que contiene la tabla (el nombre antiguo, que se quiere reemplazar) y el
nombre de una columna que la tabla no contiene (el nombre nuevo, que se quiere usar). El nombre antiguo ya debe existir en la tabla y
el nuevo nombre no. Cada nombre de columna puede aparecer solo una vez en la lista de argumentos como un nombre de columna
antiguo o nuevo. Para cambiar el nombre de una columna por un nombre de columna existente, primero quite la columna existente con
DropColumns o cambie el nombre de la columna existente al anidar una función RenameColumns dentro de otra.
La función ShowColumns incluye columnas de una tabla y quita todas las demás columnas. Puede usar ShowColumns para crear
una tabla de una sola columna a partir de una tabla de varias columnas. ShowColumns incluye columnas y DropColumns las excluye.
Para todas estas funciones, el resultado es una nueva tabla con la transformación aplicada. La tabla original no se modifica. No se puede
modificar una tabla existente con una fórmula. SharePoint, Common Data Service, SQL Server y otros orígenes de datos proporcionan
herramientas para modificar las columnas de listas, entidades y tablas, a las que se suele hacer referencia como esquema. Las funciones
de este tema solo transforman una tabla de entrada, sin modificar la original, en una tabla de salida para su uso posterior.
Los argumentos de estas funciones admiten la delegación. Por ejemplo, una función de filtro que se usa como argumento para extraer
los registros relacionados realiza búsquedas en todas las listas, incluso si el ' [dbo]. [ AllListings] ' el origen de datos contiene un
millón de filas:

AddColumns( RealEstateAgents;
"Listings";
Filter( '[dbo].[AllListings]'; ListingAgentName = AgentName )
)

Sin embargo, el resultado de estas funciones está sujeto al límite de registros que no son de delegación. En este ejemplo, solo se
devuelven los registros 500, incluso si el origen de datos RealEstateAgents tiene 501 o más registros.
Si utiliza AddColumns de esta manera, el filtro debe realizar llamadas independientes en el origen de datos para cada uno de esos
primeros registros en RealEstateAgents, lo que provoca una gran cantidad de chatter de red. Si [dbo]. [ AllListings] es lo
suficientemente pequeño y no cambia con frecuencia, puede llamar a la función Collect en OnStart para almacenar en caché el origen
de datos en la aplicación cuando se inicia. Como alternativa, puede reestructurar la aplicación para que extraiga los registros
relacionados solo cuando el usuario los solicite.

Sintaxis
AddColumns( Table; ColumnName1; Formula1 [; ColumnName2; Formula2; ... ] )
Table: requerido. La tabla sobre la cual se opera.
ColumnName(s) : requerido. Nombres de las columnas para agregar. Tiene que especificar una cadena (por ejemplo, "Name" entre
comillas dobles incluidas) para este argumento.
Formula(s) : requerido. La fórmula o fórmulas para evaluar para cada registro. Se agregará el resultado como el valor de la nueva
columna correspondiente. Puede hacer referencia a otras columnas de la tabla en esta fórmula.
DropColumns( Table; ColumnName1 [; ColumnName2; ... ] )
Table: requerido. La tabla sobre la cual se opera.
ColumnName(s) : requerido. Nombres de las columnas para excluir. Tiene que especificar una cadena (por ejemplo, "Name" entre
comillas dobles incluidas) para este argumento.
Cambiarnombrecolumnas( TABLE; OldColumnName1; NewColumnName1 [; OldColumnName2; NewColumnName2;...])
Table: requerido. La tabla sobre la cual se opera.
OldColumnName: requerido. Nombre de una columna de la tabla original cuyo nombre se va a cambiar. Este elemento aparece en
primer lugar en el par de argumentos (o en primer lugar en cada par de argumentos si la fórmula incluye más de un par). Este
nombre tiene que ser una cadena (por ejemplo, "Name" con comillas dobles incluidas).
NewColumnName: requerido. Nombre de reemplazo. Este elemento aparece por último lugar en el par de argumentos (o por
último lugar en cada par de argumentos si la fórmula incluye más de un par). Tiene que especificar una cadena (por ejemplo,
"Customer Name" con comillas dobles incluidas) para este argumento.
ShowColumns( Table; ColumnName1 [; ColumnName2; ... ] )
Table: requerido. La tabla sobre la cual se opera.
ColumnName(s) : requerido. Nombres de las columnas para incluir. Tiene que especificar una cadena (por ejemplo, "Name" entre
comillas dobles incluidas) para este argumento.

Ejemplos
En los ejemplos en esta sección, use el origen de datos IceCreamSales, que contiene los datos de esta tabla:

Ninguno de estos ejemplos modificar el origen de datos IceCreamSales. Cada función transforma el valor del origen de datos como
una tabla y devuelve ese valor como resultado.

FÓRMULA DESCRIPCIÓN RESULTADO

AddColumns (IceCreamSales, "Revenue", Agrega una columna Revenue al resultado. Para


UnitPrice * QuantitySold) cada registro, se evalúa UnitPrice *
QuantitySold, y el resultado se coloca en la
nueva columna.

DropColumns (IceCreamSales, "UnitPrice") Excluye la columna UnitPrice del resultado. Use


esta función para excluir columnas y usar
ShowColumns para incluirlas.

ShowColumns( IceCreamSales; "Flavor" ) Incluye solamente la columna Flavor en el


resultado. Use esta función para incluir
columnas y DropColumns para excluirlas.
FÓRMULA DESCRIPCIÓN RESULTADO

RenameColumns( IceCreamSales; Cambia el nombre de la columna UnitPrice en


"UnitPrice"; "Price") el resultado.

RenameColumns( IceCreamSales; Cambia el nombre de las columnas UnitPrice y


"UnitPrice"; "Price"; "QuantitySold"; QuantitySold en el resultado.
"Number")

DropColumns( Realiza las siguientes transformaciones de tabla


RenameColumns( en orden, comenzando desde el interior de la
AddColumns( IceCreamSales; "Revenue"; fórmula:
UnitPrice * QuantitySold ); 1. Agrega una columna Revenue basada
"UnitPrice"; "Price" ); en el cálculo por registro de UnitPrice *
"Quantity" ) Quantity.
2. Cambia el nombre de UnitPrice a Price.
3. Excluye la columna Quantity.
Tenga en cuenta que el orden es importante.
Por ejemplo, no se puede calcular con
UnitPrice después de que se le haya cambiado
el nombre.

Paso a paso
Vamos a probar algunos de los ejemplos anteriores de este tema.
1. Cree una colección agregando un control de botón y estableciendo su propiedad alseleccionar en esta fórmula:

ClearCollect( IceCreamSales;
Table(
{ Flavor: "Strawberry"; UnitPrice: 1,99; QuantitySold: 20 };
{ Flavor: "Chocolate"; UnitPrice: 2,99; QuantitySold: 45 };
{ Flavor: "Vanilla"; UnitPrice: 1,50; QuantitySold: 35 }
)
)

2. Ejecute la fórmula seleccionando el botón mientras mantiene presionada la tecla Alt.


3. Agregue un segundo control botón , establezca su propiedad alseleccionar en esta fórmula y, a continuación, ejecútelo:

ClearCollect( FirstExample;
AddColumns( IceCreamSales; "Revenue"; UnitPrice * QuantitySold )
)

4. En el menú archivo , seleccione coleccionesy, a continuación, seleccione IceCreamSales para mostrar esa recopilación.
Como se muestra en este gráfico, la segunda fórmula no modificó esta colección. La función AddColumns usó IceCreamSales
como argumento de solo lectura; la función no modificó la tabla a la que hace referencia ese argumento.
5. Seleccione FirstExample.
Como se muestra en este gráfico, la segunda fórmula devolvió una nueva tabla con la columna agregada. La función
ClearCollect capturó la nueva tabla en la colección FirstExample , agregando algo a la tabla original a medida que fluye a
través de la función sin modificar el origen:
Función Shuffle en PowerApps
07/10/2019 • 2 minutes to read

Reordena aleatoriamente los registros de una tabla.

Descripción
La función Shuffle reordena los registros de una tabla.
Shuffle devuelve una tabla que tiene las mismas columnas y número de filas que el argumento.

Sintaxis
Shuffle( Table )
Table: requerido. La tabla que se va a ordenar de forma aleatoria.

Ejemplo
Si almacena detalles sobre las cartas de la baraja en una colección denominada Deck, esta fórmula devuelve una
copia de dicha colección que ha sido ordenada de forma aleatoria.
Shuffle(Deck)
Funciones Acos, Acot, Asin, Atan, Atan2, Cos, Cot,
Degrees, Pi, Radians, Sin y Tan en PowerApps
08/10/2019 • 9 minutes to read

Calcula valores trigonométricos.

Descripción
Funciones principales
La función Cos devuelve el coseno de su argumento, un ángulo especificado en radianes.
La función Cot devuelve la cotangente de su argumento, un ángulo especificado en radianes.
La función Sin devuelve el seno de su argumento, un ángulo especificado en radianes.
La función Tan devuelve la tangente de su argumento, un ángulo especificado en radianes.
Funciones inversas
El Acos función devuelve el arcocoseno, o coseno inverso, de su argumento. El arcocoseno es el ángulo cuyo
coseno es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Acot devuelve el valor principal de la arcocotangente, o cotangente inversa, de su argumento. El ángulo
devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Asin devuelve el arcoseno, o seno inverso, de su argumento. El arcoseno es el ángulo cuyo seno es el
argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a π/2.
La función Atan devuelve la arcotangente, o tangente inversa, de su argumento. La arcotangente es el ángulo cuya
tangente es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a π/2.
La función Atan2 devuelve la arcotangente, o tangente inversa, de las coordenadas x e y especificadas como
argumentos. La arcotangente es el ángulo desde el eje x a una línea que contiene el origen (0, 0) y un punto con las
coordenadas (x, y). El ángulo se expresa en radianes entre -π y π, excluyendo -π. Un resultado positivo representa
un ángulo con rotación levógira (hacia la izquierda) desde el eje x; un resultado negativo representa un ángulo con
rotación dextrógira (hacia la derecha). Atan2( a; b ) es igual a Atan( b/a ) , excepto que a puede ser igual a 0 (cero)
con la función Atan2.
Funciones auxiliares
La función Degrees convierte radianes en grados. π radianes equivalen a 180 grados.
La función Pi devuelve el número transcendente π, que comienza 3,141592...
La función Radians convierte grados en radianes.
Notas
Si pasa un solo número a estas funciones, el valor que se devuelve es un resultado único. Si pasa una tabla de una
sola columna que contiene números, el valor que se muestra es una tabla de resultados de una sola columna, un
resultado para cada registro en la tabla del argumento. Si tiene una tabla con varias columnas, puede convertirla en
una tabla de una sola columna, como se describe en cómo trabajar con tablas.
Si algún argumento resultase en un valor no definido, el resultado es blank. Esto puede ocurrir, por ejemplo, al
utilizar las funciones inversas con argumentos que están fuera del intervalo.
Sintaxis
Funciones principales
Cos( Radians )
Cot( Radians )
Sin( Radians )
Tan( Radians )
Radians: requerido. Ángulo sobre el cual operar.
Cos( SingleColumnTable )
Cot( SingleColumnTable )
Sin( SingleColumnTable )
Tan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de ángulos de una sola columna sobre la que se va a actuar.
Funciones inversas
Acos( Number )
Acot( Number )
Asin( Number )
Atan( Number )
Number: requerido. El número sobre el cual operar.
Acos( SingleColumnTable )
Acot( SingleColumnTable )
Asin( SingleColumnTable )
Atan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de números de una sola columna sobre la cual operar.
Atan2( X; Y )
X: requerido. coordenadas del eje X.
Y: requerido. coordenadas del eje Y.
Funciones del asistente
Degrees( Radians )
Radians: requerido. Ángulo en radianes para convertir en grados.
Pi()
Radians( Degrees )
Degrees: requerido. Ángulo en grados para convertir en radianes.

Ejemplos
Número único
FÓRMULA DESCRIPCIÓN RESULTADO

Cos( 1;047197 ) Devuelve el coseno de 1,047197 0,5


radianes o 60 grados.
FÓRMULA DESCRIPCIÓN RESULTADO

Cot( Pi()/4 ) Devuelve la cotangente de 0,785398... 1


radianes o 45 grados.

Sin( Pi()/2 ) Devuelve el seno de 1,570796 radianes 1


o 90 grados.

Tan ( Radians(60) ) Devuelve la tangente de 1,047197 1,732050...


radianes o 60 grados.

Acos( 0;5 ) Devuelve el arcocoseno de 0,5 en 1,047197...


radianes.

Acot( 1 ) Devuelve la arcocotangente de 1, en 0,785398...


radianes.

Asin( 1 ) Devuelve el arcoseno de 1, en radianes. 1,570796...

Atan ( 1,732050 ) Devuelve la arcotangente de 1,732050, 1,047197...


en radianes.

Atan2( 5; 3 ) Devuelve la arcotangente del ángulo del 0,540419...


eje x de la línea que contiene el origen
(0,0) y la coordenada (5,3), que es
aproximadamente 31 grados.

Atan2( 4; 4 ) Devuelve la arcotangente del ángulo del 0,785398...


eje x de la línea que contiene el origen
(0,0) y la coordenada (4,4), que es
exactamente π/4 radianes o 45 grados.

Degrees ( 1,047197 ) Devuelve el número equivalente de 60


grados de 1,047197 radianes.

Pi() El número trascendente π. 3,141592...

Radians ( 15 ) Devuelve el número equivalente de 0,261799...


radianes para 15 grados.

Tabla de una sola columna


Los ejemplos de esta sección usan un origen de datos denominado ValueTable que contiene los siguientes datos:
El último registro en la tabla es π/2 radianes o 90 grados.

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

Cos( ValueTable ) Devuelve el coseno de cada número en


la tabla.

Cot( ValueTable ) Devuelve la cotangente de cada número


en la tabla.

Sin( ValueTable ) Devuelve el seno de cada número en la


tabla.

Tan( ValueTable ) Devuelve la tangente de cada número


en la tabla.

Acos( ValueTable ) Devuelve el arcocoseno de cada número


en la tabla.

Acot( ValueTable ) Devuelve la arcocotangente de cada


número en la tabla.

Asin( ValueTable ) Devuelve el arcoseno de cada número


en la tabla.

Atan( ValueTable ) Devuelve la arcotangente de cada


número en la tabla.
FÓRMULA DESCRIPCIÓN RESULTADO

Degrees( ValueTable ) Devuelve el número equivalente de


grados para cada número de la tabla,
supone que son ángulos en radianes.

Radians( ValueTable ) Devuelve el número equivalente de


radianes para cada número de la tabla,
supone que son ángulos en grados.
Funciones Sort y SortByColumns en PowerApps
08/10/2019 • 14 minutes to read

Ordena una tabla.

Descripción
La función Sort ordena una tabla según una fórmula.
La fórmula se evalúa para cada registro de la tabla y los resultados se usan para ordenar la tabla. La fórmula debe
dar como resultado un número, una cadena o un valor booleano; no puede generar una tabla ni un registro.
Los campos de registro que se están procesando actualmente estarán disponibles en la formula. Solo tiene que
hacer referencia a los campos por su nombre, como con cualquier otro valor. También puede hacer referencia a
propiedades de control y a otros valores desde toda la aplicación. Para obtener más detalles, vea los ejemplos
siguientes y trabajar con el ámbito de registros.
Para ordenar primero por una columna y luego por otra, debe insertar una fórmula Sort dentro de otra. Por
ejemplo, puede usar esta fórmula para ordenar una tabla Contacts primero por una columna LastName y
después por una columna FirstName : Sort (sort (contactos, apellidos), FirstName)
La función SortByColumns también se puede usar para ordenar una tabla según una o más columnas.
La lista de parámetros para SortByColumns proporciona los nombres de las columnas según las cuales ordenar y
la dirección de ordenación por columna. La ordenación se realiza según el orden de los parámetros (ordenados
primero por la primera columna, luego la segunda, etc.). Los nombres de columna se especifican como cadenas y
requieren comillas dobles si se incluyen directamente en la lista de parámetros. Por ejemplo, SortByColumns(
CustomerTable; "LastName" ) .
Puede combinar SortByColumns con un control Menú desplegable o Cuadro de lista para permitir que los
usuarios seleccionen la columna según la cual ordenar.
Además de ordenar de manera ascendente o descendente, SortByColumns puede ordenar según una tabla de
valores de una sola columna. Por ejemplo, puede ordenar el registro según el nombre de un día de la semana si
suministra [ "Lunes"; "Martes"; "Miércoles"; "Jueves"; "Viernes"; "Sábado"; "Domingo" ] como el criterio
de ordenación. Todos los registros que incluyan Lunes" aparecerán primero, seguidos de los registros que incluyan
Martes, etc. Los registros encontrados que no aparezcan en la tabla de ordenación se colocan al final de la lista.
Las tablas son un valor en PowerApps, tal como una cadena o un número. Se pueden pasar a funciones y las
funciones pueden devolverlas. Sort y SortByColumn no modifican una tabla; en lugar de eso, toman una tabla
como argumento y devuelven una tabla nueva que se ordenó. Consulte cómo trabajar con tablas para más detalles.

Delegación
Siempre que sea posible, PowerApps delegará las operaciones de filtrado y ordenación al origen de datos y se
desplazará por los resultados a petición. Por ejemplo, cuando se inicia una aplicación que muestra un control
Galería lleno de datos, inicialmente solo se traerá al dispositivo el primer conjunto de registros. A medida que el
usuario se desplace por los datos, se traerán más datos del origen de datos. El resultado es un inicio más rápido de
la aplicación y acceso a conjuntos de datos muy grandes.
Sin embargo, la delegación no siempre es posible. La compatibilidad de funciones y operadores con la delegación
varía según el origen de datos. Si la delegación completa de una fórmula no es posible, el entorno de creación
indicará la parte que no se puede delegar con una advertencia. Si es posible, considere la posibilidad de cambiar la
fórmula para que no incluya las funciones y los operadores que no se pueden delegar. La lista de delegación detalla
qué orígenes de datos y operaciones se pueden delegar.
Si la delegación no es posible, PowerApps solo descargará un conjunto reducido de registros para trabajar
localmente. Las funciones de filtrado y ordenación trabajarán con un conjunto reducido de registros. En la Galería
puede no estará disponible la historia completa, y esto puede resultar confuso a los usuarios.
Consulte la información general sobre delegación para obtener más información.

Sintaxis
Sort( Table; Formula [; SortOrder ] )
Table: requerido. La tabla que se va a ordenar.
Formula: requerido. Esta fórmula se evalúa para cada registro de la tabla y los resultados se usan para ordenar
la tabla. Puede hacer referencia a columnas dentro de la tabla.
SortOrder: opcional. Especifique SortOrder.Descending para ordenar la tabla en orden descendente.
SortOrder.Ascending es el valor predeterminado.
SortByColumns( Table; ColumnName1 [; SortOrder1; ColumnName2; SortOrder2; ... ] )
Table: requerido. La tabla que se va a ordenar.
ColumnName(s) : requerido. Los nombres de las columnas según las cuales ordenar, como cadenas.
SortOrder (s) : opcional. SortOrder.Ascending o SortOrder.Descending. SortOrder.Ascending es el valor
predeterminado. Si se suministran varios ColumnNames, todas las columnas, menos la última, deben incluir
un SortOrder.

NOTE
En el caso de orígenes de datos de SharePoint y Excel que contengan nombres de columna con espacios, especifique
cada uno de ellos como "_x0020_" . Por ejemplo, especifique "Nombre de columna" como
"Nombre_x0020_de_columna" .

SortByColumns( Table; ColumnName; SortOrderTable )


Table: requerido. La tabla que se va a ordenar.
ColumnName: requerido. El nombre de la columna según la cual ordenar, como cadenas.
SortOrderTable: requerido. Tabla de valores de una sola columna según la cual ordenar.

NOTE
En el caso de orígenes de datos de SharePoint y Excel que contengan nombres de columna con espacios, especifique
cada uno de ellos como "_x0020_" . Por ejemplo, especifique "Nombre de columna" como
"Nombre_x0020_de_columna" .

Ejemplos
En los ejemplos siguientes, usaremos el origen de datos IceCream, que contiene los datos de esta tabla:
FÓRMULA DESCRIPCIÓN RESULTADO

Sort( IceCream; Flavor ) Ordena IceCream según su columna


Flavor. La columna Sabor contiene
SortByColumns( IceCream; "Flavor" cadenas, por lo que la tabla se ordena
) alfabéticamente. De manera
predeterminada, el criterio de
ordenación es ascendente.

Sort( IceCream; Quantity ) Ordena IceCream según su columna


Quantity. La columna Cantidad
SortByColumns( IceCream; contiene números, por lo que la tabla se
"Quantity" ) ordena numéricamente. De manera
predeterminada, el criterio de
ordenación es ascendente.

Sort( IceCream; Quantity; Ordena IceCream según su columna


SortOrder.Descending ) Quantity. La columna Cantidad
contiene números, por lo que se ordena
SortByColumns( IceCream; numéricamente. El criterio de ordenación
"Quantity"; SortOrder.Descending ) se especificó como descendente.

Sort( IceCream; Quantity + OnOrder Ordena IceCream por la suma de sus


) columnas Quantity y OnOrder para
cada registro individualmente. La suma
es un número, por lo que la tabla se
ordena numéricamente. De manera
predeterminada, el criterio de
ordenación es ascendente. Como
ordenamos según una fórmula y no
según valores de columna sin formato,
no hay ningún equivalente usando
SortByColumns.

Sort( Sort( IceCream; OnOrder ); Ordena IceCream primero según su


Quantity ) columna OnOrder y, luego, según su
columna Quantity. Observe que
SortByColumns( IceCream; "Pistacho" apareció arriba de "Vainilla"
"OnOrder"; Ascending; "Quantity"; en la primera ordenación según
Ascending ) OnOrder y, luego, pasaron a su lugar
adecuado según Quantity.
FÓRMULA DESCRIPCIÓN RESULTADO

SortByColumns( IceCream; "Flavor"; Ordena IceCream según su columna


[ "Pistachio"; "Strawberry" ] ) Flavor en función de la tabla con una
sola columna que contiene "Pistacho" y
"Fresa". Los registros que tienen un
Sabor "Pistacho" aparecerán primero en
el resultado, seguidos de los registros
que contienen "Fresa". En el caso de los
valores de la columna Sabor que no
tienen coincidencia, como "Vainilla",
aparecerán después de los elementos
que sí tuvieron coincidencia.

Paso a paso
Para ejecutar estos ejemplos, cree el origen de datos IceCream como una colección:
1. Agregue un botón y establezca su propiedad OnSelect en esta fórmula:
ClearCollect (IceCream; {Flavor: "Chocolate"; cantidad: 100; en orden: 150}; {Flavor: "Vainilla";
cantidad: 200; en orden: 20}; {Flavor: "Fresa"; cantidad: 300; en orden: 0}; {Flavor: "Menta chocolate";
cantidad: 60; en orden: 100}; {Flavor: "Pistacho"; cantidad: 200; en orden: 10})
2. Obtenga una vista previa de la aplicación, seleccione el botón y, luego, presione Esc para volver al área de
trabajo predeterminada.
3. Seleccione Colecciones en el menú Archivo para mostrar la colección que acaba de crear y, luego, presione
Esc para volver al área de trabajo predeterminada.
Ordenar
1. Agregue otro botón y establezca su propiedad OnSelect en esta fórmula:
ClearCollect( SortByFlavor; Sort( IceCream; Flavor ) )
La fórmula anterior crear otra colección, denominada SortByFlavor, que contiene los mismos datos que
IceCream. Sin embargo, la colección nueva contiene los datos ordenados alfabéticamente según la columna
Sabor en orden ascendente.
2. Presione F5, seleccione el botón nuevo y, luego, presione Esc.
3. Seleccione Colecciones en el menú Archivo para mostrar ambas colecciones y, luego, presione Esc para
volver al área de trabajo predeterminada.
4. Repita los últimos tres pasos, pero cambie el nombre de la colección que desea crear y reemplace la fórmula
Sort por una fórmula distinta de la tabla de ejemplos que apareció anteriormente en esta sección que usa
Sort.
SortByColumns
1. Agregue otro botón y establezca su propiedad OnSelect en esta fórmula:
ClearCollect( SortByQuantity; SortByColumns( IceCream; "Quantity"; Ascending; "Flavor";
Descending ) )
La fórmula anterior crea una tercera colección, denominada SortByQuantity, que contiene los mismos
datos que IceCream. Sin embargo, la nueva colección contiene los datos ordenados numéricamente por la
columna Quantity en orden ascendente y luego por la columna Flavor en orden descendente.
2. Presione F5, seleccione el botón nuevo y, luego, presione Esc.
3. Seleccione Colecciones en el menú Archivo para mostrar las tres colecciones y, luego, presione Esc para
volver al área de trabajo predeterminada.
4. Repita los últimos tres pasos, pero cambie el nombre de la colección que desea crear y reemplace la fórmula
SortByColumns por una fórmula distinta de la tabla de ejemplos que apareció anteriormente en esta
sección que usa SortByColumns.
Funciones Sort y SortByColumns en PowerApps
08/10/2019 • 14 minutes to read

Ordena una tabla.

Descripción
La función Sort ordena una tabla según una fórmula.
La fórmula se evalúa para cada registro de la tabla y los resultados se usan para ordenar la tabla. La fórmula
debe dar como resultado un número, una cadena o un valor booleano; no puede generar una tabla ni un
registro.
Los campos de registro que se están procesando actualmente estarán disponibles en la formula. Solo tiene
que hacer referencia a los campos por su nombre, como con cualquier otro valor. También puede hacer
referencia a propiedades de control y a otros valores desde toda la aplicación. Para obtener más detalles, vea
los ejemplos siguientes y trabajar con el ámbito de registros.
Para ordenar primero por una columna y luego por otra, debe insertar una fórmula Sort dentro de otra. Por
ejemplo, puede usar esta fórmula para ordenar una tabla Contacts primero por una columna LastName y
después por una columna FirstName : Sort (sort (contactos, apellidos), FirstName)
La función SortByColumns también se puede usar para ordenar una tabla según una o más columnas.
La lista de parámetros para SortByColumns proporciona los nombres de las columnas según las cuales
ordenar y la dirección de ordenación por columna. La ordenación se realiza según el orden de los parámetros
(ordenados primero por la primera columna, luego la segunda, etc.). Los nombres de columna se especifican
como cadenas y requieren comillas dobles si se incluyen directamente en la lista de parámetros. Por ejemplo,
SortByColumns( CustomerTable; "LastName" ) .
Puede combinar SortByColumns con un control Menú desplegable o Cuadro de lista para permitir que
los usuarios seleccionen la columna según la cual ordenar.
Además de ordenar de manera ascendente o descendente, SortByColumns puede ordenar según una tabla
de valores de una sola columna. Por ejemplo, puede ordenar el registro según el nombre de un día de la
semana si suministra [ "Lunes"; "Martes"; "Miércoles"; "Jueves"; "Viernes"; "Sábado"; "Domingo" ]
como el criterio de ordenación. Todos los registros que incluyan Lunes" aparecerán primero, seguidos de los
registros que incluyan Martes, etc. Los registros encontrados que no aparezcan en la tabla de ordenación se
colocan al final de la lista.
Las tablas son un valor en PowerApps, tal como una cadena o un número. Se pueden pasar a funciones y las
funciones pueden devolverlas. Sort y SortByColumn no modifican una tabla; en lugar de eso, toman una
tabla como argumento y devuelven una tabla nueva que se ordenó. Consulte cómo trabajar con tablas para
más detalles.

Delegación
Siempre que sea posible, PowerApps delegará las operaciones de filtrado y ordenación al origen de datos y
se desplazará por los resultados a petición. Por ejemplo, cuando se inicia una aplicación que muestra un
control Galería lleno de datos, inicialmente solo se traerá al dispositivo el primer conjunto de registros. A
medida que el usuario se desplace por los datos, se traerán más datos del origen de datos. El resultado es un
inicio más rápido de la aplicación y acceso a conjuntos de datos muy grandes.
Sin embargo, la delegación no siempre es posible. La compatibilidad de funciones y operadores con la
delegación varía según el origen de datos. Si la delegación completa de una fórmula no es posible, el entorno
de creación indicará la parte que no se puede delegar con una advertencia. Si es posible, considere la
posibilidad de cambiar la fórmula para que no incluya las funciones y los operadores que no se pueden
delegar. La lista de delegación detalla qué orígenes de datos y operaciones se pueden delegar.
Si la delegación no es posible, PowerApps solo descargará un conjunto reducido de registros para trabajar
localmente. Las funciones de filtrado y ordenación trabajarán con un conjunto reducido de registros. En la
Galería puede no estará disponible la historia completa, y esto puede resultar confuso a los usuarios.
Consulte la información general sobre delegación para obtener más información.

Sintaxis
Sort( Table; Formula [; SortOrder ] )
Table: requerido. La tabla que se va a ordenar.
Formula: requerido. Esta fórmula se evalúa para cada registro de la tabla y los resultados se usan para
ordenar la tabla. Puede hacer referencia a columnas dentro de la tabla.
SortOrder: opcional. Especifique SortOrder.Descending para ordenar la tabla en orden descendente.
SortOrder.Ascending es el valor predeterminado.
SortByColumns( Table; ColumnName1 [; SortOrder1; ColumnName2; SortOrder2; ... ] )
Table: requerido. La tabla que se va a ordenar.
ColumnName(s) : requerido. Los nombres de las columnas según las cuales ordenar, como cadenas.
SortOrder (s) : opcional. SortOrder.Ascending o SortOrder.Descending. SortOrder.Ascending es el
valor predeterminado. Si se suministran varios ColumnNames, todas las columnas, menos la última,
deben incluir un SortOrder.

NOTE
En el caso de orígenes de datos de SharePoint y Excel que contengan nombres de columna con espacios,
especifique cada uno de ellos como "_x0020_" . Por ejemplo, especifique "Nombre de columna" como
"Nombre_x0020_de_columna" .

SortByColumns( Table; ColumnName; SortOrderTable )


Table: requerido. La tabla que se va a ordenar.
ColumnName: requerido. El nombre de la columna según la cual ordenar, como cadenas.
SortOrderTable: requerido. Tabla de valores de una sola columna según la cual ordenar.

NOTE
En el caso de orígenes de datos de SharePoint y Excel que contengan nombres de columna con espacios,
especifique cada uno de ellos como "_x0020_" . Por ejemplo, especifique "Nombre de columna" como
"Nombre_x0020_de_columna" .

Ejemplos
En los ejemplos siguientes, usaremos el origen de datos IceCream, que contiene los datos de esta tabla:
FÓRMULA DESCRIPCIÓN RESULTADO

Sort( IceCream; Flavor ) Ordena IceCream según su columna


Flavor. La columna Sabor contiene
SortByColumns( IceCream; cadenas, por lo que la tabla se ordena
"Flavor" ) alfabéticamente. De manera
predeterminada, el criterio de
ordenación es ascendente.

Sort( IceCream; Quantity ) Ordena IceCream según su columna


Quantity. La columna Cantidad
SortByColumns( IceCream; contiene números, por lo que la tabla
"Quantity" ) se ordena numéricamente. De manera
predeterminada, el criterio de
ordenación es ascendente.

Sort( IceCream; Quantity; Ordena IceCream según su columna


SortOrder.Descending ) Quantity. La columna Cantidad
contiene números, por lo que se
SortByColumns( IceCream; ordena numéricamente. El criterio de
"Quantity"; SortOrder.Descending ordenación se especificó como
) descendente.

Sort( IceCream; Quantity + Ordena IceCream por la suma de sus


OnOrder ) columnas Quantity y OnOrder para
cada registro individualmente. La
suma es un número, por lo que la
tabla se ordena numéricamente. De
manera predeterminada, el criterio de
ordenación es ascendente. Como
ordenamos según una fórmula y no
según valores de columna sin
formato, no hay ningún equivalente
usando SortByColumns.

Sort( Sort( IceCream; OnOrder ); Ordena IceCream primero según su


Quantity ) columna OnOrder y, luego, según su
columna Quantity. Observe que
SortByColumns( IceCream; "Pistacho" apareció arriba de "Vainilla"
"OnOrder"; Ascending; en la primera ordenación según
"Quantity"; Ascending ) OnOrder y, luego, pasaron a su lugar
adecuado según Quantity.
FÓRMULA DESCRIPCIÓN RESULTADO

SortByColumns( IceCream; Ordena IceCream según su columna


"Flavor"; Flavor en función de la tabla con una
[ "Pistachio"; "Strawberry" ] ) sola columna que contiene "Pistacho"
y "Fresa". Los registros que tienen un
Sabor "Pistacho" aparecerán primero
en el resultado, seguidos de los
registros que contienen "Fresa". En el
caso de los valores de la columna
Sabor que no tienen coincidencia,
como "Vainilla", aparecerán después
de los elementos que sí tuvieron
coincidencia.

Paso a paso
Para ejecutar estos ejemplos, cree el origen de datos IceCream como una colección:
1. Agregue un botón y establezca su propiedad OnSelect en esta fórmula:
ClearCollect (IceCream; {Flavor: "Chocolate"; cantidad: 100; en orden: 150}; {Flavor: "Vainilla";
cantidad: 200; en orden: 20}; {Flavor: "Fresa"; cantidad: 300; en orden: 0}; {Flavor: "Menta
chocolate"; cantidad: 60; en orden: 100}; {Flavor: "Pistacho"; cantidad: 200; en orden: 10})
2. Obtenga una vista previa de la aplicación, seleccione el botón y, luego, presione Esc para volver al área de
trabajo predeterminada.
3. Seleccione Colecciones en el menú Archivo para mostrar la colección que acaba de crear y, luego,
presione Esc para volver al área de trabajo predeterminada.
Ordenar
1. Agregue otro botón y establezca su propiedad OnSelect en esta fórmula:
ClearCollect( SortByFlavor; Sort( IceCream; Flavor ) )
La fórmula anterior crear otra colección, denominada SortByFlavor, que contiene los mismos datos
que IceCream. Sin embargo, la colección nueva contiene los datos ordenados alfabéticamente según
la columna Sabor en orden ascendente.
2. Presione F5, seleccione el botón nuevo y, luego, presione Esc.
3. Seleccione Colecciones en el menú Archivo para mostrar ambas colecciones y, luego, presione Esc
para volver al área de trabajo predeterminada.
4. Repita los últimos tres pasos, pero cambie el nombre de la colección que desea crear y reemplace la
fórmula Sort por una fórmula distinta de la tabla de ejemplos que apareció anteriormente en esta
sección que usa Sort.
SortByColumns
1. Agregue otro botón y establezca su propiedad OnSelect en esta fórmula:
ClearCollect( SortByQuantity; SortByColumns( IceCream; "Quantity"; Ascending; "Flavor";
Descending ) )
La fórmula anterior crea una tercera colección, denominada SortByQuantity, que contiene los
mismos datos que IceCream. Sin embargo, la nueva colección contiene los datos ordenados
numéricamente por la columna Quantity en orden ascendente y luego por la columna Flavor en
orden descendente.
2. Presione F5, seleccione el botón nuevo y, luego, presione Esc.
3. Seleccione Colecciones en el menú Archivo para mostrar las tres colecciones y, luego, presione Esc
para volver al área de trabajo predeterminada.
4. Repita los últimos tres pasos, pero cambie el nombre de la colección que desea crear y reemplace la
fórmula SortByColumns por una fórmula distinta de la tabla de ejemplos que apareció
anteriormente en esta sección que usa SortByColumns.
Función Split en PowerApps
08/10/2019 • 6 minutes to read

Divide una cadena de texto en una tabla de subcadenas.

Descripción
La función Split divide una cadena de texto en una tabla de subcadenas. Se usa para dividir listas delimitada por
comas, fechas que usan una barra diagonal entre sus distintas partes y en otras situaciones en las que se utiliza
un delimitador bien definido.
Para dividir la cadena de texto se usa una cadena de separación. El separador puede ser cero, uno o varios
caracteres que coinciden en conjunto con la cadena de texto. Si se usa una longitud cero o una cadena blank,
cada carácter se divide individualmente. Los caracteres separadores coincidentes no se devuelven en el
resultado. Si no se encuentra ninguna coincidencia en el separador, toda la cadena de texto se devuelve como un
único resultado.
Utilice la función concat para recombinar la cadena sin los separadores.
Utilice la función MatchAll para dividir una cadena mediante una expresión regular.
En los ejemplos se muestra cómo se puede usar la división con la primera y la última función para extraer
una única subcadena delimitada. La función Match suele ser una opción más concisa y eficaz para los usuarios
familiarizados con las expresiones regulares.

Sintaxis
Split(Texto; Separador)
Text: se requiere. Texto que se divide.
Separador: se requiere. Separador que se usa para dividir la cadena. Puede ser cero, uno o varios caracteres.

Ejemplos
Uso básico
FÓRMULA DESCRIPCIÓN RESULTADO

Split( "Apples, Oranges, Divide las diferentes frutas, tomando


Bananas"; "," ) como base la coma, que es el
separador. La división la realiza solo la
coma, no el espacio posterior a ella, lo
que da lugar a que haya un espacio
delante de " Oranges" y " Bananas".
FÓRMULA DESCRIPCIÓN RESULTADO

TrimEnds( Split( "Apples, Igual que el ejemplo anterior, pero en


Oranges, Bananas"; "," ) ) este caso la función TrimEnds quita el
espacio, por lo que se usa solo la tabla
de una columna que ha generado
Split. También podríamos haber usado
el separador ", " que incluye el espacio
después de la coma, pero es posible
que no hubiera funcionado
correctamente en caso de dos
espacios, o ninguno.

Split( "08/28/17"; "/" ) Divide la fecha, y se usa una barra


diagonal como separador.

Distintos delimitadores
FÓRMULA DESCRIPCIÓN RESULTADO

Split( "Hello, World"; "," ) Divide las palabras, y se usa una coma
como separador. El segundo resultado
comienza con un espacio, ya que era el
carácter inmediatamente posterior a la
coma.

Split( "Hello, World"; "o" ) Divide la cadena, y usa el carácter "o"


como separador.

Split( "Hello, World"; "l" ) Divide la cadena, y usa el carácter


individual "l" como separador. Puesto
que no había ningún carácter entre los
dos l de Hello, se ha devuelto un valor
blank.

Split( "Hello, World"; "ll" ) Divide la cadena, y usa el carácter


doble "ll" como separador.

Split( "Hello, World"; "%" ) Divide la cadena, y usa el signo de


porcentaje como separador. Como
dicho separador no aparece en la
cadena, se devuelve toda la cadena
como un resultado.
FÓRMULA DESCRIPCIÓN RESULTADO

Split( "Hello, World"; "" ) Divide la cadena, y usa una cadena


vacía como separador (cero caracteres).
De esta forma la cadena se divide en
cada carácter.

Extracción de subcadenas
FÓRMULA DESCRIPCIÓN RESULTADO

First( Split( Last( Split( "Bob Divide la cadena en función de un "bob.jones@contoso.com"


Jones <bob.jones@contoso.com>"; delimitador de apertura (<) y extrae la
"<" ) ).Result; ">" ) ).Result
cadena a la derecha del delimitador
con el último. A continuación, la
fórmula divide el resultado según el
delimitador de cierre (>) y extrae la
cadena que está a la izquierda del
delimitador con la derecha.

Match( "Bob Jones Realiza la misma extracción basada en "bob.jones@contoso.com"


<bob.jones@contoso.com>"; "<(? delimitadores que en el último
<email>.+)>" ).email
ejemplo, pero usa en su lugar la
función Match y una expresión regular.
Funciones Abs, Exp, Ln, Power y Sqrt en
PowerApps
08/10/2019 • 4 minutes to read

Calcula valores absolutos, logaritmos naturales, raíces cuadradas y los resultados de elevar e o cualquier
número a una potencia especificada.

Descripción
La función Abs muestra el valor no negativo de su argumento. Si el número es negativo, Abs muestra el
equivalente positivo.
La función Exp muestra e elevado a la potencia de su argumento. El número trascendente e comienza con
2,7182818...
La función Ln muestra el argumento natural (e base) de su argumento.
La función Power muestra un número elevado a una potencia. Es equivalente a usar el operador ^ .
La función Sqrt muestra el número que, cuando se multiplica por sí mismo, es igual a su argumento.
Si pasa un solo número, el valor que se muestra es un resultado único basado en la función llamada. Si pasa
una tabla de una sola columna que contiene números, el valor que se muestra es una tabla de resultados de
una sola columna, un resultado para cada registro en la tabla del argumento. Si tiene una tabla con varias
columnas, puede convertirla en una tabla de una sola columna, como se describe en cómo trabajar con
tablas.
Si algún argumento pudiera mostrar un valor no definido, el resultado queda en blanco. Por ejemplo, esto
puede pasar con las raíces cuadradas y los logaritmos de números negativos.

Sintaxis
Abs( Number )
Exp( Number )
Ln( Number )
Sqrt( Number )
Number: requerido. El número sobre el cual operar.
Power( Base; Exponente )
Base: requerido. Número base que se va a elevar.
Exponent: requerido. El exponente al que se eleva el número base.
Abs( SingleColumnTable )
Exp( SingleColumnTable )
Ln( SingleColumnTable )
Sqrt( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de números de una sola columna sobre la cual operar.

Ejemplos
Número único
FÓRMULA DESCRIPCIÓN RESULTADO

Abs( -55 ) Muestra el número sin el signo 55


negativo.

Exp( 2 ) Muestra e elevado a la potencia de 2, 7,389056...


o e * e.

Ln( 100 ) Muestra el algoritmo natural (e base) 4,605170...


del número 100.

Power( 5; 3 ) Muestra 5 elevado a la potencia de 3, 125


o 5 * 5 * 5.

Sqrt( 9 ) Muestra el número que, cuando se 3


multiplica por sí mismo, da como
resultado 9.

Tabla de una sola columna


Los ejemplos de esta sección usan un origen de datos denominado ValueTable que contiene estos datos:

FÓRMULA DESCRIPCIÓN RESULTADO

Abs( ValueTable ) Muestra el valor absoluto de cada


número en la tabla.

Exp( ValueTable ) Muestra e elevado a la potencia de


cada número en la tabla.

Ln( ValueTable ) Muestra el logaritmo natural de cada


número en la tabla.

Sqrt( ValueTable ) Muestra la raíz cuadrada de cada


número en la tabla.

Ejemplo paso a paso


1. Agregue un control Entrada de texto y denomínelo Origen.
2. Agregue un control Label y establezca su propiedad Text en esta fórmula:
Sqrt( Value( Source.Text ) )
3. Escriba un número en Origen y confirme que el control Etiqueta muestra la raíz cuadrada del número
que escribió.
Funciones EndsWith y StartsWith en PowerApps
08/10/2019 • 10 minutes to read

Comprueba si una cadena de texto comienza o termina con otra cadena de texto.

Descripción
La función EndsWith comprueba si una cadena de texto termina con otra.
La función StartsWith comprueba si una cadena de texto comienza con otra.
Para ambas funciones, las pruebas no distinguen mayúsculas de minúsculas. El valor devuelto por ambas es un
valor booleano true o false.
Use EndsWith y StartsWith con la función Filter para buscar los datos dentro de la aplicación. También puede
usar el operador in o la función Search para realizar una búsqueda en cualquier lugar dentro de las cadenas de
texto, no solo al principio o al final. La selección de las funciones dependerá de las necesidades de la aplicación y
las funciones que se pueden delegar para el origen de datos específico. Si una de estas funciones no se puede
delegar, aparece una advertencia de delegación en el momento de la creación para avisarle de esta limitación.

Sintaxis
EndsWith( Text; EndText )
Text: requerido. Texto que se va a probar.
EndText: requerido. Texto que desea buscar al final de Text. Si EndText es una cadena vacía, EndsWith
devuelve true.
StartsWith( Text; StartText )
Text: requerido. Texto que se va a probar.
StartText: requerido. El texto que desea buscar al principio de Text. Si StartText es una cadena vacía,
StartsWith devuelve true.

Ejemplos
FÓRMULA DESCRIPCIÓN RESULTADO

EndsWith( "Hola mundo"; "mundo" Comprueba si "Hola mundo" termina true


) con "mundo" . La prueba no distingue
mayúsculas de minúsculas.

EndsWith( "Hasta luego"; "hasta" ) Comprueba si "Hasta luego" termina false


con "hasta" . El argumento EndText (
"hasta" ) aparece en el texto, pero no
al final.

EndsWith( "Di siempre hola"; "hola" Comprueba si "Di siempre hola" true
) termina con "hola" .
FÓRMULA DESCRIPCIÓN RESULTADO

EndsWith ("adiós", "") Comprueba si "Bye bye" termina con true


una cadena vacía (Len devuelve 0). Para
facilitar su uso en expresiones Filter,
EndsWith está definida para devolver
true en este caso.

FÓRMULA DESCRIPCIÓN RESULTADO

StartsWith( "Hello World"; "hello" ) Prueba si "Hello World" comienza true


con "hello" . La prueba no distingue
mayúsculas de minúsculas.

StartsWith( "Good bye"; "hello" ) Prueba si "Good bye" comienza con false
"hello" .

StartsWith( "Always say hello"; Prueba si "Always say hello" false


"hello" ) comienza con "hello" . Aunque "hello"
aparece en el texto, no aparece al
principio.

StartsWith( "Bye bye"; "" ) Comprueba si "Bye bye" comienza true


con una cadena vacía (Len devuelve 0).
Para facilitar su uso en expresiones
Filter, StartsWith está definida para
devolver true en este caso.

Experiencia de búsqueda del usuario


En muchas aplicaciones, puede escribir uno o varios caracteres en un cuadro de búsqueda para filtrar una lista
de registros en un conjunto de datos grande. A medida que escribe, la lista muestra solo los registros que
coinciden con los criterios de búsqueda.
Los ejemplos que aparecen en el resto de este tema muestran los resultados de buscar en una lista Clientes,
que contiene estos datos:

Para crear este origen de datos como una colección, cree un control Botón y establezca la propiedad OnSelect
en esta fórmula:
ClearCollect (clientes; tabla ({nombre: "Fred Garcia"; compañía: "Northwind Traders"}; {nombre: "Cole
Miller"; empresa: "Contoso"}; {Name: "Glenda Johnson"; compañía: "Contoso"}; {Name: "Mike
Collins"; Company: "Adventure Works"}; {nombre: "Colleen Jones"; compañía: "Adventure Works"}))
Como en este ejemplo, puede mostrar una lista de registros en un control Galería en la parte inferior de una
pantalla. Cerca de la parte superior de la pantalla, puede agregar un control Entrada de texto denominado
SearchInput, de modo que los usuarios puedan especificar los registros que más les interesen.
A medida que el usuario escribe caracteres en SearchInput, automáticamente se filtran los resultados en la
galería. En este caso, se configura la galería para que muestre los registros para los que el nombre del cliente (no
el nombre de la empresa) comienza con la secuencia de caracteres de SearchInput. Si el usuario escribe co en
el cuadro de búsqueda, la galería muestra estos resultados:

Para filtrar según la columna Nombre, establezca la propiedad Elementos del control Galería en una de estas
fórmulas:

FÓRMULA DESCRIPCIÓN RESULTADO


FÓRMULA DESCRIPCIÓN RESULTADO

Filter( Customers; StartsWith( Filtra el origen de datos Clientes para


Name; SearchInput.Text ) ) los registros en los que la cadena de
búsqueda aparece al principio de la
columna Nombre. La prueba no
distingue mayúsculas de minúsculas. Si
el usuario escribe co en el cuadro de
búsqueda, la galería mostrará Colleen
Jones y Cole Miller. La galería no
mostrará Mike Collins porque la
columna Nombre de ese registro no
comienza por la cadena de búsqueda.

Filter( Customers; SearchInput.Text Filtra el origen de datos Clientes para


in Name ) los registros en los que la cadena de
búsqueda aparece en cualquier parte
de la columna Nombre. La prueba no
distingue mayúsculas de minúsculas. Si
el usuario escribe co en el cuadro de
búsqueda, la galería mostrará Colleen
Jones, Cole Miller y Mike Collins ya
que la cadena de búsqueda aparece en
algún lugar de la columna Nombre de
todos esos registros.

Search( Customers; De forma parecida al uso del operador


SearchInput.Text; "Name" ) in, la función Search busca una
coincidencia en cualquier parte de la
columna Nombre de cada registro.
Tenga en cuenta que debe incluir el
nombre de la columna entre comillas
dobles.

Puede expandir la búsqueda para incluir la columna Empresa además de la columna Nombre:

FÓRMULA DESCRIPCIÓN RESULTADO

Filter( Customers; StartsWith( Filtra el origen de datos Clientes de


Name; SearchInput.Text ) |;|; aquellos registros en los que la
StartsWith( Company; columna Nombre o la columna
SearchInput.Text ) ) Empresa comienza por la cadena de
búsqueda (por ejemplo, co). El
operador || será true si la función
StartsWith es también true.

Filter( Customers; SearchInput.Text Filtra el origen de datos Clientes de


in Name |;|; SearchInput.Text in aquellos registros en los que la
Company ) columna Nombre o la columna
Empresa contienen la cadena de
búsqueda en cualquier lugar (por
ejemplo, co).
FÓRMULA DESCRIPCIÓN RESULTADO

Search( Customers; De forma parecida al uso del operador


SearchInput.Text; "Name"; in, la función Search busca en el
"Company" ) origen de datos Customers aquellos
registros en los que la columna Name
o la columna Company contienen la
cadena de búsqueda en cualquier lugar
(por ejemplo, co). La función Search es
más fácil de leer y escribir que Filter si
desea especificar varias columnas y
varios operadores in. Tenga en cuenta
que debe incluir los nombres de las
columnas entre comillas dobles.
Funciones Average, Max, Min, StdevP, Sum y VarP de
PowerApps
08/10/2019 • 4 minutes to read

Funciones de agregado que resumen un conjunto de números.

Descripción
La función Average calcula el promedio, o media aritmética, de los argumentos.
La función Max encuentra el valor máximo.
La función Min encuentra el valor mínimo.
La función Sum calcula la suma de los argumentos.
La función StdevP calcula la desviación estándar de los argumentos.
La función VarP calcula la varianza de los argumentos.
Puede proporcionar los valores de estas funciones como:
Argumentos independientes. Por ejemplo, Sum ( 1; 2; 3 ) da 6 como resultado.
Una tabla y una fórmula para operar sobre esa tabla. La suma total se calculará según los valores de la fórmula
para cada registro.
Los campos de registro que se están procesando actualmente estarán disponibles en la formula. Solo tiene que
hacer referencia a los campos por su nombre, como con cualquier otro valor. También puede hacer referencia a
propiedades de control y a otros valores desde toda la aplicación. Para obtener más detalles, vea los ejemplos
siguientes y trabajar con el ámbito de registros.
Estas funciones solo operan sobre valores numéricos. Se omiten otros tipos de valores, como cadenas o registros.
Use la función Value para convertir en número una cadena.
Las funciones Average, Max, Min y Sum se pueden delegar cuando se usan con un origen de datos que admite la
delegación de dichas funciones. Sin embargo, StdevP y VarP no se puede delegar en ningún origen de datos. Si no
se admite la delegación, solo se recuperará la primera parte de los datos y, después, la función se aplicará
localmente. Es posible que el resultado no represente la situación completa. Aparece una advertencia de delegación
durante la creación para recordarle esta limitación y sugerirle que cambie a alternativas que puedan delegarse
siempre que sea posible. Para más información, consulte la introducción a la delegación.

Sintaxis
Average( NumericalFormula1; [ NumericalFormula2; ... ] )
Max( NumericalFormula1; [ NumericalFormula2; ... ] )
Min( NumericalFormula1; [ NumericalFormula2; ... ] )
Sum ( NumericalFormula1; [ NumericalFormula2; ... ] )
StdevP ( NumericalFormula1; [ NumericalFormula2; ... ] )
VarP ( NumericalFormula1; [ NumericalFormula2; ... ] )
NumericalFormula (s) : requerido. Los valores numéricos en que se va a operar.
Average( Table; NumericalFormula )
Max( Table; NumericalFormula )
Min( Table; NumericalFormula )
Sum ( Table; NumericalFormula )
StdevP ( Table; NumericalFormula )
VarP ( Table; NumericalFormula )
Table: requerido. La tabla sobre la cual se opera.
NumericalFormula: requerido. La fórmula que se evalúa en cada registro. El resultado de esta fórmula se usa
para la agregación. Puede usar columnas de la tabla en la fórmula.

Ejemplos
Paso a paso
Imaginemos que tiene un origen de datos llamado Sales que contiene una columna CostPerUnit y una columna
UnitsSold, y establece la propiedad Text de una etiqueta en esta función:
Sum (Sales; CostPerUnit * UnitsSold)
Para mostrar las ventas totales, la etiqueta multiplicaría los valores de esas columnas para cada registro y luego
agregaría juntos los resultados de todos los registros:

Pongamos otro ejemplo: imaginemos que tiene controles deslizantes llamados Slider1, Slider2 y Slider3 y una
etiqueta con la propiedad Text establecida en esta fórmula:
Sum (Slider1.Value; Slider2.Value; Slider3.Value)
La etiqueta mostraría la suma de todos los valores en los que se establecieron los controles deslizantes.
Funciones Replace y Substitute en PowerApps
26/11/2019 • 6 minutes to read

Reemplace una parte de una cadena de texto por otra cadena.

Descripción
La función Replace identifica el texto que se debe reemplazar según la posición inicial y la longitud.
La función Substitute identifica el texto que se debe reemplazar buscando una cadena coincidente. Si se
encuentra más de una coincidencia, puede reemplazar todas ellas o especificar una para reemplazar.
Si pasa una única cadena, el valor devuelto es la cadena modificada. Si pasa una tabla de una sola columna que
contiene cadenas, el valor devuelto es la tabla de una sola columna con cadenas modificadas. Si tiene una tabla
con varias columnas, puede convertirla en una tabla de una sola columna, como se describe en cómo trabajar
con tablas.

Sintaxis
Replace( String; StartingPosition; NumberOfCharacters; NewString )
String: requerido. La cadena en la que se va a actuar.
StartingPosition: requerido. La posición del carácter en la que se va a iniciar el reemplazo. El primer carácter
de String está en la posición 1.
NumberOfCharacters: requerido. El número de caracteres que se van a reemplazar en String.
NewString: requerido. La cadena de reemplazo. El número de caracteres de este argumento puede diferir del
argumento NumberOfCharacters.
Substitute( String; OldString; NewString [; InstanceNumber ] )
String: requerido. La cadena en la que se va a actuar.
OldString: requerido. La cadena que se va a reemplazar.
NewString: requerido. La cadena de reemplazo. OldString y NewString pueden tener longitudes distintas.
InstanceNumber: opcional. Use este argumento para especificar la instancia de OldString que se va a
reemplazar si String contiene más de una instancia. Si no especifica este argumento, se reemplazarán todas
las instancias.
Replace( SingleColumnTable; StartingPosition; NumberOfCharacters; NewString )
SingleColumnTable: requerido. Una tabla de números de una sola columna sobre la que se va a actuar.
StartingPosition: requerido. La posición del carácter en la que se va a iniciar el reemplazo. El primer carácter
de cada cadena de la tabla se encuentra en la posición 1.
NumberOfCharacters: requerido. El número de caracteres que se van a reemplazar en cada cadena.
NewString: requerido. La cadena de reemplazo. El número de caracteres de este argumento puede diferir del
argumento NumberOfCharacters.
Substitute( SingleColumnTable; OldString; NewString [; InstanceNumber ] )
SingleColumnTable: requerido. Una tabla de números de una sola columna sobre la que se va a actuar.
OldString: requerido. La cadena que se va a reemplazar.
NewString: requerido. La cadena de reemplazo. OldString y NewString pueden tener longitudes distintas.
InstanceNumber: opcional. Use este argumento para especificar la instancia de OldString que se va a
reemplazar si String contiene más de una instancia. Si no especifica este argumento, se reemplazarán todas
las instancias.

Ejemplos
FÓRMULA DESCRIPCIÓN RESULTADO

Replace ("abcdefghijk", 6, 5, "*") Reemplaza cinco caracteres de "ABCDE * k"


"abcdefghijk" por un único carácter "*",
empezando por el sexto carácter ("f").

Replace ( "2019", 3, 2, "20" ) Reemplaza los dos últimos caracteres "2020"


de "2019" por "20".

Replace ( "123456", 1, 3, "_" ) Reemplaza los tres primeros caracteres "_456"


de "123456" por un único carácter "".

Substitute Sustituye la cadena "cost" por "sales". "Datos de costo"


( "ventas datos", "ventas", "costo" )

Substitute ("Quarter 1, 2018", "1", Sustituye solo la primera instancia de "Trimestre 2, 2018"
"2", 1) "1" por "2" porque el cuarto
argumento (InstanceNumber) se
proporciona con un 1.

Substitute ("Quarter 1, 2011", "1", Sustituye solo la tercera instancia de "Trimestre 1, 2012"
"2", 3) "1" por "2" porque el cuarto
argumento (InstanceNumber) se
proporciona con un 3.

Substitute ("Quarter 1, 2011", "1", Sustituye todas las instancias de "1" "Trimestre 2, 2022"
"2") por "2" porque no se proporciona el
cuarto argumento (InstanceNumber).

Replace ( Reemplaza el noveno carácter de cada [ "Quarter 3, 2018",


[ "Quarter 1, 2018"; registro de la tabla de una sola "Quarter 3, 2011",
"Quarter 2, 2011"; columna por "3". "Quarter 3, 2019" ]
"Quarter 4, 2019"];
9; 1; "3")

Substitute ( Dado que el cuarto argumento [ "Trim 3, 2018",


[ "Trim 1, 2018"; (InstanceNumber) se proporciona con "Quarter 3, 2011",
"Quarter 1, 2011"; un valor de 1, sustituye solo la primera "T3, 2019" ]
"Q1, 2019" ]; instancia de "1" en cada registro de la
"1"; "3"; 1) tabla de una sola columna con "3".

Substitute ( Dado que no se proporciona el cuarto [ "Trim 3, 2038",


[ "Trim 1, 2018"; argumento (InstanceNumber), "Quarter 3, 2033",
"Quarter 1, 2011"; sustituye todas las instancias de "1" en "T3, 2039" ]
"Q1, 2019" ]; cada registro de la tabla de una sola
"1"; "3") columna con "3".
Funciones EditForm, NewForm, SubmitForm,
ResetForm y ViewForm de PowerApps
08/10/2019 • 10 minutes to read

Vea, edite o cree un elemento, guarde el contenido y restablezca los controles de un control Editar formulario .

Información general
Estas funciones cambian el estado del control Editar formulario. El control de formulario puede estar en uno de
estos modos:

MODO DESCRIPCIÓN

FormMode.Edit El formulario se rellena con un registro existente y el usuario


puede modificar los valores de los campos. Una vez que haya
finalizado, el usuario puede guardar los cambios en el registro.

FormMode.New El formulario se rellena con los valores predeterminados y el


usuario puede modificar los valores de los campos. Una vez
que haya finalizado, el usuario puede agregar el registro al
origen de datos.

FormMode.View El formulario se rellena con un registro existente pero el


usuario no puede modificar los valores de los campos.

Descripción
Estas funciones a menudo se invocan desde la fórmula OnSelect de un control Botón o Imagen para que el
usuario pueda guardar las modificaciones, abandonarlas o crear un registro. También puede usar conjuntamente
controles y estas funciones para crear una solución completa.
Estas funciones no devuelven ningún valor.
SubmitForm
Use la función SubmitForm de la propiedad OnSelect de un control Botón para guardar los cambios de un
control Formulario en el origen de datos.
Antes de enviar cualquier cambio, esta función comprueba problemas de validación con cualquier campo que se
haya marcado como requerido o que tenga una o más restricciones en su valor. Este comportamiento es idéntico al
de la función Validate .
SubmitForm también comprueba la propiedad Valid del control Formulario, que es una agregación de todas las
propiedades Valid de los controles Card que contiene el control Formulario. Si se produce un problema, no se
envían los datos y las propiedades Error y ErrorKind del control Formulario se establecen en consecuencia.
Si se supera la validación, SubmitForm envía el cambio al origen de datos.
Si se realiza correctamente, se ejecutará el comportamiento OnSuccess del formulario y se borrarán las
propiedades Error y ErrorKind . Si el formulario se encontraba en modo FormMode.New, se devolverá al
modo FormMode.Edit.
Si no se realiza correctamente, se ejecutará el comportamiento OnFailure del formulario y se establecerán las
propiedades Error y ErrorKind en consecuencia. El modo del formulario no se modifica.
EditForm
La función EditForm cambia el modo del control Formulario a FormMode.Edit. En este modo, el contenido de la
propiedad Elemento del control Formulario se utiliza para rellenar el formulario. Si la función SubmitForm se
ejecuta cuando el formulario está en este modo, se cambiará un registro, no se creará. FormMode.Edit es el valor
predeterminado del control Formulario.
NewForm
La función NewForm cambia el modo del control Formulario a FormMode.New. En este modo, el contenido de
la propiedad Elemento del control Formulario se omite y los valores predeterminados de la propiedad
DataSource rellenan el formulario. Si la función SubmitForm se ejecuta cuando el formulario está en este modo,
se creará un registro, no se cambiará.
ResetForm
La función ResetForm restablece el contenido de un formulario a sus valores iniciales, el contenido que había antes
de que el usuario realizara cambios. Si el formulario está en modo FormMode.New, se restablecerá al modo
FormMode.Edit. El comportamiento OnReset del control Formulario también se ejecutará. También puede
restablecer controles individuales con la función Reset pero únicamente desde dentro del formulario.
ViewForm
La función ViewForm cambia el modo del control Formulario a FormMode.View. En este modo, el contenido de
la propiedad Elemento del control Formulario se utiliza para rellenar el formulario. Las funciones SubmitForm y
ResetForm no tienen ningún efecto cuando se está en este modo.
Propiedad DisplayMode
El modo actual se puede leer mediante la propiedad Modo. El modo determina también el valor de la propiedad
DisplayMode que pueden usar las tarjetas de datos y controles del control de formulario. A menudo, la propiedad
DisplayMode de la tarjeta de datos se establecerá en Parent. DisplayMode (que hace referencia al formulario)
como lo hará la propiedad DisplayMode del control (que hace referencia a la tarjeta de datos):

MODO DISPLAYMODE DESCRIPCIÓN

FormMode.Edit DisplayMode.Edit Las tarjetas de datos y los controles son


editables, y están listos para aceptar los
cambios de un registro.

FormMode.New DisplayMode.Edit Las tarjetas de datos y los controles son


editables, y están listos para aceptar un
nuevo registro.

FormMode.View DisplayMode.View Las tarjetas de datos y los controles no


son editables y están optimizados para
su visualización.

Sintaxis
SubmitForm ( FormName )
FormName: requerido. Control Formulario para enviar al origen de datos.
EditForm ( FormName )
FormName: requerido. Control Formulario para cambiar al modo FormMode.Edit.
NewForm ( FormName )
FormName: requerido. Control Formulario para cambiar al modo FormMode.New.
ResetForm ( FormName )
FormName: requerido. Control Formulario para restablecer los valores iniciales. También cambia el formulario
del modo FormMode.New al modo FormMode.Edit.
ViewForm ( FormName )
FormName: requerido. Control Formulario para cambiar al modo FormMode.View.

Ejemplos
Consulte Formularios de datos para obtener ejemplos completos.
1. Agregue un control Botón, establezca la propiedad Text para mostrar Guardar y establezca la propiedad
OnSelect en esta fórmula:
SubmitForm ( EditForm )
2. Establezca la propiedad OnFailure de un control Formulario blank y la propiedad OnSuccess en esta
fórmula:
Back()
3. Asigne el nombre ErrorText a un control Label y establezca su propiedad Text en esta fórmula:
EditForm.Error
Cuando el usuario selecciona el botón Guardar, los cambios del control Formulario se envían al origen de
datos subyacente.
Si el envío se realiza correctamente, los cambios se guardan o, si el control Formulario está en modo
New, se creará un registro. ErrorText es blank y vuelve a aparecer la pantalla anterior.
Si se produce un error en el envío, ErrorText mostrará un mensaje de error descriptivo y la pantalla
actual permanecerá visible para que el usuario pueda corregir el problema e intentarlo de nuevo.
4. Agregue un control Botón, establezca su propiedad Text para que muestre Cancelar y establezca su
propiedad OnSelect en esta fórmula:
ResetForm ( EditForm );; Back()
Si el usuario selecciona el botón Cancelar, los valores del control Formulario se restablecen a su estado
original, el estado que tenían antes de que el usuario empezara a editarlo, vuelve a aparecer la pantalla
anterior y se devuelve el control Formulario al modo Edit si estaba en modo New.
5. Agregue un control Botón, establezca su propiedad Text para mostrar Nuevo y establezca su propiedad
OnSelect en esta fórmula:
NewForm ( EditForm );; Navigate( EditScreen; None )
Cuando el usuario selecciona el botón New, se activa el control Formulario en modo New, los valores
predeterminados del origen de datos del control Formulario rellenan el control y aparece la pantalla que
contiene el control Formulario. Cuando se ejecuta la función SubmitForm, se crea un registro en lugar de
actualizarlo.
Funciones Average, Max, Min, StdevP, Sum y VarP de
PowerApps
08/10/2019 • 4 minutes to read

Funciones de agregado que resumen un conjunto de números.

Descripción
La función Average calcula el promedio, o media aritmética, de los argumentos.
La función Max encuentra el valor máximo.
La función Min encuentra el valor mínimo.
La función Sum calcula la suma de los argumentos.
La función StdevP calcula la desviación estándar de los argumentos.
La función VarP calcula la varianza de los argumentos.
Puede proporcionar los valores de estas funciones como:
Argumentos independientes. Por ejemplo, Sum ( 1; 2; 3 ) da 6 como resultado.
Una tabla y una fórmula para operar sobre esa tabla. La suma total se calculará según los valores de la fórmula
para cada registro.
Los campos de registro que se están procesando actualmente estarán disponibles en la formula. Solo tiene que
hacer referencia a los campos por su nombre, como con cualquier otro valor. También puede hacer referencia a
propiedades de control y a otros valores desde toda la aplicación. Para obtener más detalles, vea los ejemplos
siguientes y trabajar con el ámbito de registros.
Estas funciones solo operan sobre valores numéricos. Se omiten otros tipos de valores, como cadenas o registros.
Use la función Value para convertir en número una cadena.
Las funciones Average, Max, Min y Sum se pueden delegar cuando se usan con un origen de datos que admite la
delegación de dichas funciones. Sin embargo, StdevP y VarP no se puede delegar en ningún origen de datos. Si no
se admite la delegación, solo se recuperará la primera parte de los datos y, después, la función se aplicará
localmente. Es posible que el resultado no represente la situación completa. Aparece una advertencia de delegación
durante la creación para recordarle esta limitación y sugerirle que cambie a alternativas que puedan delegarse
siempre que sea posible. Para más información, consulte la introducción a la delegación.

Sintaxis
Average( NumericalFormula1; [ NumericalFormula2; ... ] )
Max( NumericalFormula1; [ NumericalFormula2; ... ] )
Min( NumericalFormula1; [ NumericalFormula2; ... ] )
Sum ( NumericalFormula1; [ NumericalFormula2; ... ] )
StdevP ( NumericalFormula1; [ NumericalFormula2; ... ] )
VarP ( NumericalFormula1; [ NumericalFormula2; ... ] )
NumericalFormula (s) : requerido. Los valores numéricos en que se va a operar.
Average( Table; NumericalFormula )
Max( Table; NumericalFormula )
Min( Table; NumericalFormula )
Sum ( Table; NumericalFormula )
StdevP ( Table; NumericalFormula )
VarP ( Table; NumericalFormula )
Table: requerido. La tabla sobre la cual se opera.
NumericalFormula: requerido. La fórmula que se evalúa en cada registro. El resultado de esta fórmula se usa
para la agregación. Puede usar columnas de la tabla en la fórmula.

Ejemplos
Paso a paso
Imaginemos que tiene un origen de datos llamado Sales que contiene una columna CostPerUnit y una columna
UnitsSold, y establece la propiedad Text de una etiqueta en esta función:
Sum (Sales; CostPerUnit * UnitsSold)
Para mostrar las ventas totales, la etiqueta multiplicaría los valores de esas columnas para cada registro y luego
agregaría juntos los resultados de todos los registros:

Pongamos otro ejemplo: imaginemos que tiene controles deslizantes llamados Slider1, Slider2 y Slider3 y una
etiqueta con la propiedad Text establecida en esta fórmula:
Sum (Slider1.Value; Slider2.Value; Slider3.Value)
La etiqueta mostraría la suma de todos los valores en los que se establecieron los controles deslizantes.
Funciones If y Switch de PowerApps
08/10/2019 • 10 minutes to read

Determina si se cumple alguna condición de un conjunto (If) o si el resultado de una fórmula coincide
con algún valor de un conjunto (Switch) y luego devuelve un resultado o ejecuta una acción.

Descripción
La función If comprueba una o varias condiciones hasta que encuentra un resultado verdadero. Si se
encuentra un resultado de este tipo, se devuelve un valor correspondiente. Si no se encuentra ningún
resultado de este tipo, se devuelve un valor predeterminado. En cualquier caso, el valor devuelto
podría ser una cadena para mostrar, una fórmula para evaluar u otra forma de resultado.
La función Switch evalúa una fórmula y determina si el resultado coincide con algún valor de una
secuencia que especifique. Si se encuentra una coincidencia, se devuelve un valor correspondiente. Si
no se encuentra ninguna coincidencia, se devuelve un valor predeterminado. En cualquier caso, el
valor devuelto podría ser una cadena para mostrar, una fórmula para evaluar u otra forma de
resultado.
Las funciones If y Switch son muy parecidas, así que debe usar aquella que mejor se adapte a su
situación:
Use If para evaluar una única condición. La sintaxis más común para esta función es If( Condition;
ThenResult; DefaultResult ), que proporciona el patrón común "if … then ... else ..." que puede verse
en otras herramientas de programación.
Use If para evaluar varias condiciones no relacionadas. En PowerApps (a diferencia de Microsoft
Excel), puede especificar varias condiciones sin tener que anidar fórmulas If.
Use Switch para evaluar una condición única contra varias coincidencias posibles. También podría
usar If en este caso, pero tendría que repetir la fórmula con cada posible coincidencia.
Puede usar ambas funciones en fórmulas de comportamiento para crear una bifurcación entre dos o
más acciones. Solo una bifurcación desencadenará una acción. Las condiciones y coincidencias se
evalúan en orden y se detienen si una condición es verdadera o se encuentra una coincidencia.
Se devuelve en blanco si ninguna condición es verdadera, no se encuentra ninguna coincidencia y no
especifica un resultado predeterminado.

Sintaxis
If( Condition; ThenResult [; DefaultResult ] )
If( Condition1; ThenResult1 [; Condition2; ThenResult2; ... [ ; DefaultResult ] ] )
Condition(s) : requerido. Fórmulas para comprobar que una condición es verdadera. Tales
fórmulas contienen normalmente operadores de comparación (como < , > y = ) y permiten probar
funciones como IsBlank e IsEmpty .
ThenResult(s) : requerido. El valor correspondiente que se devuelve para una condición que se
evalúa como true.
DefaultResult: opcional. El valor que se devuelve si ninguna condición se evalúa como verdadera.
Si no se especifica este argumento, se devolverá un valor blank.
Switch( Formula; Match1; Result1 [; Match2; Result2; ... [; DefaultResult ] ] )
Formula: requerido. Fórmula para evaluar coincidencias. Esta fórmula se evalúa solo una vez.
Match(s) (Coincidencias): requerido. Valores para comparar con el resultado de Fórmula. Si se
encuentra una coincidencia exacta, se devuelve el Resultado correspondiente.
Result(s) : requerido. El valor correspondiente que se devolverá cuando se encuentre una
coincidencia exacta.
DefaultResult: opcional. Si no se encuentra una coincidencia exacta, se devuelve este valor. Si no se
especifica este argumento, se devolverá un valor blank.

Ejemplos
Valores en las fórmulas
En los ejemplos siguientes, un control Control deslizante (llamado Slider1) tiene un valor de 25.

FÓRMULA DESCRIPCIÓN RESULTADO

If( Slider1.Value = 25; "Result1" La condición es true y se devuelve "Result1"


) el resultado correspondiente.

If( Slider1.Value = 25; "Result1"; La condición es true y se devuelve "Result1"


"Result2" ) el resultado correspondiente.

If( Slider1.Value > 1000; La condición es falsa y no se blank


"Result1" ) proporcionó ningún valor para
DefaultResult.

If( Slider1.Value > 1000; La condición es falsa, se "Result2"


"Result1"; "Result2" ) proporcionó un valor para
DefaultResult, que es el que se
devuelve.

If( Slider1.Value = 25; "Result1"; La primera condición es true y se "Result1"


Slider1.Value > 0; "Result2" ) devuelve el resultado
correspondiente. La segunda
condición es también verdadera,
pero no se evalúa ya que aparece
más adelante en la lista de
argumentos que una condición
que se evalúa como verdadera.

If( IsBlank( Slider1.Value ); La primera condición es falsa "Result2"


"Result1"; porque el control deslizante no es
IsNumeric( Slider1.Value ); blank. La segunda condición es
"Result2" ) true porque el valor del control
deslizante es un número y se
devolverá el resultado
correspondiente.

If( Slider1.Value > 1000; Las condiciones primera y segunda "Result3"


"Result1"; Slider1.Value > 50; son falsas, se proporcionó un
"Result2"; "Result3") valor para DefaultResult, y es el
que se devuelve.

Switch( Slider1.Value; 25; El valor del control deslizante "Result1"


"Result1" ) coincide con el primer valor que se
comprueba, y se devuelve el
resultado correspondiente.
FÓRMULA DESCRIPCIÓN RESULTADO

Switch( Slider1.Value; 20; El valor del control deslizante "Result2"


"Result1"; 25; "Result2"; 30; coincide con el segundo valor que
"Result3" ) se comprueba, y se devuelve el
resultado correspondiente.

Switch( Slider1.Value; 20; El valor del control deslizante no "DefaultResult"


"Result1"; 10; "Result2"; 0; coincide con ningún valor que se
"Result3"; "DefaultResult" ) comprueba. Se proporcionó un
valor para DefaultResult, que es el
que se devuelve.

Bifurcación en fórmulas de comportamiento


En los ejemplos siguientes, un control Entrada de texto denominado FirstName tiene escrito el
valor "John".

FÓRMULA DESCRIPCIÓN RESULTADO

If( ! IsBlank( FirstName.Text ); La condición es true, así que se true


Navigate( Screen1; ejecuta la función Navigate .
ScreenTransition.None ) ) Puede usar la función IsBlank para La pantalla cambia a Screen1.
comprobar si se ha rellenado un
campo de formulario obligatorio. Si
FirstName (Nombre) fuese blank,
esta fórmula no tendría ningún
efecto.

If( IsBlank( FirstName.Text ); Sin el operador ! , la condición es true


Navigate( Screen1; false, así que no se ejecuta la
ScreenTransition.None ); Back() función Navigate . La función Se vuelve a la pantalla que aparecía
) Back se proporcionó como anteriormente.
DefaultResult, así que es la que se
ejecuta.

Switch( FirstName.Text; El valor de FirstName.Text se true


"Carlos"; Navigate( Screen1; compara con "Carlos", "Kirstin" y
ScreenTransition.None ); "John" en ese orden. Se encuentra La pantalla cambia a Screen3.
"Kirstin"; Navigate( Screen2; una coincidencia con "John", por lo
ScreenTransition.None ); "John"; que la aplicación se desplaza a
Navigate( Screen3; Screen3.
ScreenTransition.None ) )

Paso a paso
1. Agregue un control Entrada de texto y asígnele el nombre Text1, siempre que no sea su
nombre predeterminado.
2. En Text1, escriba 30.
3. Agregue un control Label y establezca su propiedad Text en esta fórmula:
If( Value(Text1.Text) < 20; "Order MANY more!"; Value(Text1.Text) < 40; "Order
more!"; Text1.Text )
El control Etiqueta muestra Order more! dado que el valor de Text1 es superior a 20, pero
inferior a 40.
4. En Text1, escriba 15.
El control Etiqueta muestra Order MANY more! dado que el valor de Text1 es inferior a 20.
5. En Text1, escriba 50.
El control Etiqueta muestra el valor que escribió porque es superior a 40.
Función Table en PowerApps
08/10/2019 • 2 minutes to read

Crea una tabla temporal.

Descripción
La función Table crea una tabla desde una lista de argumentos de registros.
Las columnas de la tabla será la unión de todas las propiedades de todos los registros de argumento. Un valor
blank se agrega a cualquier columna para la que un registro no incluye un valor.
Una tabla es un valor en PowerApps, como una cadena o un número. Puede especificar una tabla como un
argumento para una fórmula, y las funciones pueden devolver una tabla como resultado. Table no crea una tabla
permanente. En su lugar, devuelve una tabla temporal hecha de sus argumentos. Puede especificar esta tabla
temporal como un argumento para otra función, visualizarla en una galería o insertarla en otra tabla. Consulte
cómo trabajar con tablas para más detalles.
También puede crear una tabla de una sola columna con la sintaxis [valor1; valor2;...] .

Sintaxis
Table( Record1 [; Record2; ... ] )
Registro (s) : requerido. Los registros para agregar a la tabla.

Ejemplos
Establezca la propiedad Items de un cuadro de lista con esta fórmula:
Table({Color:"red"}; {Color:"green"}; {Color:"blue"})
El cuadro de lista muestra cada color como una opción.
Agregue una galería de texto y establezca su propiedad Elementos con esta función:
Table({Item:"Violin123"; Location:"France"; Owner:"Fabrikam"}; {Item:"Violin456";
Location:"Chile"})
La galería muestra dos registros, ambos contienen el nombre y la ubicación de un elemento. Solo un
registro contiene el nombre del propietario.
Funciones Acos, Acot, Asin, Atan, Atan2, Cos,
Cot, Degrees, Pi, Radians, Sin y Tan en
PowerApps
08/10/2019 • 9 minutes to read

Calcula valores trigonométricos.

Descripción
Funciones principales
La función Cos devuelve el coseno de su argumento, un ángulo especificado en radianes.
La función Cot devuelve la cotangente de su argumento, un ángulo especificado en radianes.
La función Sin devuelve el seno de su argumento, un ángulo especificado en radianes.
La función Tan devuelve la tangente de su argumento, un ángulo especificado en radianes.
Funciones inversas
El Acos función devuelve el arcocoseno, o coseno inverso, de su argumento. El arcocoseno es el ángulo
cuyo coseno es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Acot devuelve el valor principal de la arcocotangente, o cotangente inversa, de su argumento.
El ángulo devuelto se expresa en radianes en el intervalo de 0 (cero) a π.
La función Asin devuelve el arcoseno, o seno inverso, de su argumento. El arcoseno es el ángulo cuyo
seno es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a π/2.
La función Atan devuelve la arcotangente, o tangente inversa, de su argumento. La arcotangente es el
ángulo cuya tangente es el argumento. El ángulo devuelto se expresa en radianes en el intervalo de -π/2 a
π/2.
La función Atan2 devuelve la arcotangente, o tangente inversa, de las coordenadas x e y especificadas
como argumentos. La arcotangente es el ángulo desde el eje x a una línea que contiene el origen (0, 0) y
un punto con las coordenadas (x, y). El ángulo se expresa en radianes entre -π y π, excluyendo -π. Un
resultado positivo representa un ángulo con rotación levógira (hacia la izquierda) desde el eje x; un
resultado negativo representa un ángulo con rotación dextrógira (hacia la derecha). Atan2( a; b ) es igual
a Atan( b/a ) , excepto que a puede ser igual a 0 (cero) con la función Atan2.
Funciones auxiliares
La función Degrees convierte radianes en grados. π radianes equivalen a 180 grados.
La función Pi devuelve el número transcendente π, que comienza 3,141592...
La función Radians convierte grados en radianes.
Notas
Si pasa un solo número a estas funciones, el valor que se devuelve es un resultado único. Si pasa una tabla
de una sola columna que contiene números, el valor que se muestra es una tabla de resultados de una
sola columna, un resultado para cada registro en la tabla del argumento. Si tiene una tabla con varias
columnas, puede convertirla en una tabla de una sola columna, como se describe en cómo trabajar con
tablas.
Si algún argumento resultase en un valor no definido, el resultado es blank. Esto puede ocurrir, por
ejemplo, al utilizar las funciones inversas con argumentos que están fuera del intervalo.

Sintaxis
Funciones principales
Cos( Radians )
Cot( Radians )
Sin( Radians )
Tan( Radians )
Radians: requerido. Ángulo sobre el cual operar.
Cos( SingleColumnTable )
Cot( SingleColumnTable )
Sin( SingleColumnTable )
Tan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de ángulos de una sola columna sobre la que se va a actuar.
Funciones inversas
Acos( Number )
Acot( Number )
Asin( Number )
Atan( Number )
Number: requerido. El número sobre el cual operar.
Acos( SingleColumnTable )
Acot( SingleColumnTable )
Asin( SingleColumnTable )
Atan( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de números de una sola columna sobre la cual operar.
Atan2( X; Y )
X: requerido. coordenadas del eje X.
Y: requerido. coordenadas del eje Y.
Funciones del asistente
Degrees( Radians )
Radians: requerido. Ángulo en radianes para convertir en grados.
Pi()
Radians( Degrees )
Degrees: requerido. Ángulo en grados para convertir en radianes.

Ejemplos
Número único
FÓRMULA DESCRIPCIÓN RESULTADO

Cos( 1;047197 ) Devuelve el coseno de 1,047197 0,5


radianes o 60 grados.

Cot( Pi()/4 ) Devuelve la cotangente de 1


0,785398... radianes o 45 grados.

Sin( Pi()/2 ) Devuelve el seno de 1,570796 1


radianes o 90 grados.

Tan ( Radians(60) ) Devuelve la tangente de 1,047197 1,732050...


radianes o 60 grados.

Acos( 0;5 ) Devuelve el arcocoseno de 0,5 en 1,047197...


radianes.

Acot( 1 ) Devuelve la arcocotangente de 1, en 0,785398...


radianes.

Asin( 1 ) Devuelve el arcoseno de 1, en 1,570796...


radianes.

Atan ( 1,732050 ) Devuelve la arcotangente de 1,047197...


1,732050, en radianes.

Atan2( 5; 3 ) Devuelve la arcotangente del ángulo 0,540419...


del eje x de la línea que contiene el
origen (0,0) y la coordenada (5,3),
que es aproximadamente 31 grados.

Atan2( 4; 4 ) Devuelve la arcotangente del ángulo 0,785398...


del eje x de la línea que contiene el
origen (0,0) y la coordenada (4,4),
que es exactamente π/4 radianes o
45 grados.

Degrees ( 1,047197 ) Devuelve el número equivalente de 60


grados de 1,047197 radianes.

Pi() El número trascendente π. 3,141592...

Radians ( 15 ) Devuelve el número equivalente de 0,261799...


radianes para 15 grados.

Tabla de una sola columna


Los ejemplos de esta sección usan un origen de datos denominado ValueTable que contiene los
siguientes datos: El último registro en la tabla es π/2 radianes o 90 grados.
FÓRMULA DESCRIPCIÓN RESULTADO

Cos( ValueTable ) Devuelve el coseno de cada número


en la tabla.

Cot( ValueTable ) Devuelve la cotangente de cada


número en la tabla.

Sin( ValueTable ) Devuelve el seno de cada número en


la tabla.

Tan( ValueTable ) Devuelve la tangente de cada


número en la tabla.

Acos( ValueTable ) Devuelve el arcocoseno de cada


número en la tabla.

Acot( ValueTable ) Devuelve la arcocotangente de cada


número en la tabla.

Asin( ValueTable ) Devuelve el arcoseno de cada


número en la tabla.

Atan( ValueTable ) Devuelve la arcotangente de cada


número en la tabla.
FÓRMULA DESCRIPCIÓN RESULTADO

Degrees( ValueTable ) Devuelve el número equivalente de


grados para cada número de la
tabla, supone que son ángulos en
radianes.

Radians( ValueTable ) Devuelve el número equivalente de


radianes para cada número de la
tabla, supone que son ángulos en
grados.
Función Text en PowerApps
26/11/2019 • 22 minutes to read

Convierte cualquier valor y da formato a un número o un valor de fecha y hora en una cadena de texto.

Descripción
La función Text da formato a un número o a un valor de fecha y hora según uno de estos tipos de
argumentos:
Un formato predefinido de fecha y hora que especifica a través de la enumeración DateTimeFormat.
Para las fechas y horas, se prefiere este enfoque, ya que se ajusta automáticamente a la región y el idioma
de cada usuario.
Un formato personalizado, que consta de una cadena de marcadores de posición que definen, por ejemplo,
si los números muestran un separador decimal y las fechas muestran el nombre completo del mes, el mes
como una abreviatura o el mes como un número. PowerApps admite un subconjunto de los marcadores
de posición que admite Microsoft Excel. En esta cadena, el marcador de posición de idioma especifica el
idioma en el que se van a interpretar los demás marcadores de posición. Si el formato personalizado
incluye un punto, por ejemplo, el marcador de posición de formato de idioma especifica si el punto es un
separador decimal (ja-JP ) o un separador de miles (es-ES ).
Consulte cómo trabajar con fechas y horas para más información.
La función Text también puede convertir cualquier tipo de datos en una representación de texto con un
formato predeterminado. Úselo para pasar valores que no son de texto a funciones basadas en texto como
Len, righty IsMatch.
Formatos predefinidos de fecha y hora
FORMATO PREDEFINIDO DESCRIPCIÓN

DateTimeFormat.LongDate Año completo, mes, día del mes y día de la semana. Los
nombres del mes y del día de la semana no se abrevian.

DateTimeFormat.LongDateTime Año completo, mes, día del mes y día de la semana, además
de la hora (reloj de 12 horas), minutos, segundos y
designación a.m y p.m. Los nombres del mes y del día de la
semana no se abrevian.

DateTimeFormat.LongDateTime24 Año completo, mes, día del mes y día de la semana, además
de la hora (reloj de 24 horas), minutos y segundos. Los
nombres del mes y del día de la semana no se abrevian.

DateTimeFormat.LongTime Hora (reloj de 12 horas), minutos, segundos y designación


a.m. y p.m. Igual que ShortTime.

DateTimeFormat.LongTime24 Hora (reloj de 24 horas), minutos y segundos. Igual que


ShortTime24.

DateTimeFormat.ShortDate Año de cuatro dígitos con mes de dos dígitos y día de la


semana.
FORMATO PREDEFINIDO DESCRIPCIÓN

DateTimeFormat.ShortDateTime Año de cuatro dígitos con mes de dos dígitos y día de la


semana, además de la hora (reloj de 12 horas), minutos,
segundos y designación a.m. y p.m.

DateTimeFormat.ShortDateTime24 Año de cuatro dígitos con mes de dos dígitos y día de la


semana, además de la hora (reloj de 24 horas), minutos y
segundos.

DateTimeFormat.ShortTime Hora (reloj de 12 horas), minutos, segundos y designación


a.m. y p.m. Igual que LongTime.

DateTimeFormat.ShortTime24 Hora (reloj de 24 horas), minutos y segundos. Igual que


LongTime24.

DateTimeFormat.UTC El valor de fecha y hora se convierte en UTC según la zona


horaria del usuario actual y usa un formato basado en el
estándar ISO 8601.

Marcadores de posición de número


MARCADOR DE POSICIÓN DESCRIPCIÓN

0 (cero) Muestra ceros no significativos si un número tiene menos


dígitos que ceros en el formato. Por ejemplo, use el formato
#.00 si desea mostrar 8.9 como 8.90.

# Sigue las mismas reglas que 0 (cero). Sin embargo, Text no


muestra ceros adicionales cuando el número tiene menos
dígitos en cualquier lado del decimal que símbolos # en el
formato. Por ejemplo, se muestra 8.9 si el formato
personalizado es #.## y el número al que debe darse
formato es 8.9.

. (punto) Muestra el punto decimal de un número. Depende del


idioma del formato personalizado; vea aplicaciones globales
para obtener más detalles.

, (coma) Muestra el separador de agrupación de un número; a


menudo, se usa para los miles. Text separa los grupos con
comas si el formato contiene una coma encerrada entre
signos numéricos ( # ) o ceros. Depende del idioma del
formato personalizado; vea aplicaciones globales para
obtener más detalles.

Si un número tiene más dígitos a la derecha del separador decimal que marcadores de posición en el formato,
el número se redondea a tantas cifras decimales como marcadores de posición existen. Si hay más dígitos a la
izquierda del separador decimal que marcadores de posición, se muestran los dígitos adicionales. Si el
formato solo consta de signos numéricos (#) a la izquierda del separador decimal, los números menores que
1 comienzan con un separador decimal (por ejemplo .47).
Marcadores de posición de fecha y hora
MARCADOR DE POSICIÓN DESCRIPCIÓN

m Muestra el mes como número sin cero inicial.


MARCADOR DE POSICIÓN DESCRIPCIÓN

mm Muestra el mes como número con cero inicial cuando


corresponda.

mmm Muestra el mes abreviado (Ene a Dic).

mmmm Muestra el nombre completo del mes (Enero a


Diciembre).

d Muestra el día como número sin cero inicial.

dd Muestra el día como número con cero inicial cuando


corresponda.

ddd Muestra el día abreviado (Dom a Sáb).

dddd Muestra el nombre completo del día (Domingo a Sábado).

yy Muestra el año como número de dos dígitos.

yyyy Muestra el año como número de cuatro dígitos.

h Muestra la hora como número sin cero inicial.

hh Muestra la hora como número con cero inicial cuando


corresponda. Si el formato contiene AM o PM, la hora se
muestra según el reloj de 12 horas. De lo contrario, la hora
se muestra según el reloj de 24 horas.

m Muestra el minuto como número sin cero inicial.

Este marcador de posición debe aparecer inmediatamente


después del código h o HH o inmediatamente antes del
código SS ; de lo contrario, Text devuelve el mes en lugar
de los minutos.

mm Muestra el minuto como número con cero inicial cuando


corresponda.

Este marcador de posición debe aparecer inmediatamente


después del marcador de posición h o HH o
inmediatamente antes del marcador de posición SS . De lo
contrario, Text devuelve el mes en lugar de los minutos.

s Muestra el segundo como número sin cero inicial.

ss Muestra el segundo como número con cero inicial cuando


corresponda.

f Muestra las fracciones de segundos.

AM/PM, a/p Muestra la hora según un reloj de 12 horas. El texto


devuelve "AM" o "a" para las horas desde medianoche
hasta mediodía y "PM" o "p" para las horas desde el
mediodía hasta la medianoche.
Marcadores de posición literales
Puede incluir cualquiera de estos caracteres en su cadena de formato. Aparecerán en el resultado de Text tal
cual. Los caracteres adicionales están reservados para marcadores de posición futuros, por lo que no debe
usarlos.

CARÁCTER DESCRIPCIÓN

Cualquier símbolo de moneda Signo de dólar, signo de centavo, signo de euro, etc.

+ Signo más

( Paréntesis de apertura

: Dos puntos

^ Acento circunflejo (símbolo de intercalación)

' Apóstrofo

{ Llave de apertura

< Signo de menor que

= Signo igual

- Signo menos

/ Barra diagonal

) Paréntesis de cierre

& Y comercial

~ Tilde de la ñ

} Llave de cierre

> Signo de mayor que

Carácter de espacio

Aplicaciones globales
La función Text es globalmente compatible. Para una amplia variedad de idiomas, sabe cómo escribir
correctamente fechas, horas, monedas y números. Para ello, necesita dos tipos de información:
El idioma del formato personalizado: Para los responsables, ¿cómo se debe interpretar un formato
personalizado? Los caracteres separadores ( . y , ) tienen significados distintos en diferentes idiomas. Si
especifica un formato personalizado, puede incluir un marcador de posición de idioma o tomar el valor
predeterminado, que refleja el idioma en el que está establecido el dispositivo. Incluso más fácilmente,
puede usar uno de los formatos de fecha y hora predefinidos, que son independientes del lenguaje.
El idioma del resultado: Para los usuarios, ¿en qué idioma debe aparecer el resultado de la función? Los
nombres de los meses y los días de la semana deben estar en el idioma adecuado para el usuario de la
aplicación, que se puede especificar agregando un tercer argumento opcional a la función de texto .
En ambos casos, se especifica el idioma mediante una etiqueta de idioma. Para ver la lista de idiomas
admitidos, escriba texto (1234, "") en la barra de fórmulas o en la pestaña Opciones avanzadas del panel
derecho y, a continuación, desplácese por la lista de configuraciones regionales sugeridas para el tercer
argumento.
Marcador de posición de idioma
Para especificar el idioma del formato personalizado, use:

MARCADOR DE POSICIÓN DESCRIPCIÓN

[$-LanguageTag] LanguageTag es una etiqueta de idioma que la función


Language muestra. Puede especificar solo el idioma (por
ejemplo, [$-en] para inglés), o también puede especificar la
región (por ejemplo, [$-en-GB] para especificar más Gran
Bretaña).

El marcador de posición de idioma puede aparecer en cualquier parte del formato personalizado, pero solo
una vez.
Si especifica un formato personalizado sin un marcador de posición de idioma y el formato es ambiguo desde
un punto de vista global, se insertará automáticamente la etiqueta de idioma del idioma actual.
[$-en-US ] se presupone si este marcador de posición no está presente cuando se ejecuta la aplicación.

NOTE
En una versión futura, la sintaxis de este marcador de posición puede cambiar para evitar la confusión con un marcador
de posición similar, pero distinto, que Excel admite.

Etiqueta de idioma del resultado


El resultado de texto incluye cadenas traducidas para meses, días de la semana y designaciones AM/PM, así
como el grupo y los separadores decimales adecuados.
De manera predeterminada, la función Text usa el idioma del usuario que ejecuta la aplicación. La función
Language muestra la etiqueta de idioma correspondiente al usuario actual. Puede invalidar este valor
predeterminado si proporciona una etiqueta de idioma para el tercer argumento a texto.

Sintaxis
Text( NumberOrDateTime; DateTimeFormatEnum [; ResultLanguageTag ])
NumberOrDateTime : requerido. El número o el valor de fecha y hora al que se dará formato.
DateTimeFormat: requerido. Miembro de la enumeración DateTimeFormat.
ResultLanguageTag: opcional. La etiqueta de idioma que se usará para el texto de resultado. De manera
predeterminada, se usa el idioma del usuario actual.
Text( NumberOrDateTime; CustomFormat [; ResultLanguageTag ])
Number: requerido. El número o el valor de fecha y hora al que se dará formato.
CustomFormat: requerido. Uno o más marcadores de posición entre comillas dobles.
ResultLanguageTag: opcional. La etiqueta de idioma que se usará para el texto de resultado. De manera
predeterminada, se usa el idioma del usuario actual.
Texto( AnyValue )
AnyValue : requerido. Valor que se va a convertir en una representación de texto. Se utiliza un formato
predeterminado.

Ejemplos
A menos que se especifique lo contrario, el usuario que ejecuta estas fórmulas se encuentra en el Estados
Unidos y ha seleccionado inglés como idioma. La función Language muestra "en-US".
Número
FÓRMULA DESCRIPCIÓN RESULTADO

Text( 1234,59; "####.#" ) Da formato al número con un "1234.6"


decimal.

Text( 8,9; "#.000" ) Rellena la parte decimal del número "8.900"


con ceros finales, si es necesario.

Text( 0,631; "0.#" ) Rellena la parte entera del número "0.6"


con ceros iniciales, si es necesario.

Text( 12; "#.0#" ) Rellena la parte decimal del número "12.0"


Text( 1234,568; "#.0#" ) con ceros para una cifra decimal e "1234.57"
incluye una segunda cifra decimal, si
se suministra.

Text( 12000; "$ #,###" ) Coloca un separador de miles cada "$ 12,000"
Text( 1200000; "$ #,###" ) tres dígitos e incluye un símbolo de "$ 1,200,000"
moneda.

Fecha y hora
A las 2:37:47 PM del Monday, November 23, 2015
Zona horaria del Pacífico de Estados Unidos (UTC -8)

FÓRMULA DESCRIPCIÓN RESULTADO

Text( Now(); Da formato como una cadena de "Monday, November 23, 2015"
DateTimeFormat.LongDate ) fecha larga, en el idioma y la
configuración local del usuario actual.

Text( Now(); Da formato como una cadena de "Monday, November 23, 2015
DateTimeFormat.LongDateTime ) fecha y hora larga, en el idioma y la 2:37:47 PM"
configuración local del usuario actual,
con un reloj de 12 horas.

Text( Now(); Da formato como una cadena de hora "14:37:47"


DateTimeFormat.LongTime24 ) larga, con un reloj de 24 horas.

Text( Now(); Da formato como una cadena de "11/23/2015"


DateTimeFormat.ShortDate ) fecha corta, en el idioma y la
configuración local del usuario actual.
FÓRMULA DESCRIPCIÓN RESULTADO

Text( Now(); "d-mmm-yy" ) Da formato con caracteres de "23-Nov-15"


marcador de posición:
d para un día del mes de solo
un dígito o de dos dígitos
- como carácter literal copiado
en el resultado
mmm para una abreviatura de
tres letras del mes
- como otro carácter literal
copiado en el resultado
yy para una abreviatura de
dos dígitos del año

Texto (1448318857 * 1000, "MMM. Muestra un valor de fecha y hora de "Nov 23, 2015 (02:47:37 PM)"
DD, AAAA (HH: mm: SS AM/PM) ") UNIX en formato legible si multiplica
el valor de origen por 1.000.

Aplicaciones globales
FÓRMULA DESCRIPCIÓN RESULTADO

Text (1234567,89; "[$-fr-FR] # # # Muestra un espacio como separador "1 234 567, 89 €"
#, # # €"; "fr-FR") de agrupación, la coma como
separador decimal y € como símbolo
de divisa.

Texto (1234567; 89;; "[$-fr-FR] # # Si los datos de origen siguen el "1 234 567, 89 €"
# #, # # €") francés personalizado de usar una
coma como separador decimal, debe
cambiar la configuración regional a
francés y separar los argumentos con
un punto y coma en lugar de una
coma para obtener el mismo
resultado que el anterior.

Text( Date(2016;1;31); "dddd Muestra el día de la semana, el mes y "Sábado enero 31"
mmmm d" ) el día del mes en el idioma del usuario
actual. Como ninguno de los
marcadores de posición depende del
idioma, no es necesario tener una
etiqueta de idioma de texto de
formato.

Text( Date(2016;1;31); "dddd Muestra el día de la semana, el mes y "Domingo enero 31"
mmmm d"; "es-ES" ) el día del mes en el idioma "es-ES".

Convertir valores en texto


FÓRMULA DESCRIPCIÓN RESULTADO
FÓRMULA DESCRIPCIÓN RESULTADO

Texto ( 1234567,89 ) Convierte un número en una cadena. "1234567,89"


No hay separadores de miles ni
control sobre el número de dígitos
antes o después del separador
decimal; para obtener más control,
proporcione marcadores de posición
de número como segundo
argumento.

Text ( Fechahoranumero Convierte un valor de fecha y hora en "1/4/2003 12:00 AM"


( "01/04/2003" ) ) una cadena de texto. Para controlar la
conversión, proporcione un miembro
de la enumeración DateTimeFormat o
una cadena de formato personalizado.

Text ( true ) Convierte un valor booleano en una reales


cadena.

Texto ( GUID () ) Convierte un valor GUID generado en "f8b10550-0f12-4f08-9aa3-


una cadena. bb10958bc3ff"

Left ( texto ( GUID () ), 4 ) Devuelve los cuatro primeros "2d9c"


caracteres de un GUID generado.
Funciones de Date y Time en PowerApps
08/10/2019 • 3 minutes to read

Convierte los componentes de fecha y hora en un valor de fecha y hora.

Descripción
La función Date convierte los valores individuales de año, mes y día en un valor de fecha y hora. La parte de
la hora es la medianoche.
Si el año está comprendido entre 0 y 1899 (ambos incluidos), la función agrega ese valor a 1900 para
calcular el año. 70 se convierte en 1970.
Si el valor de Mes es menor que 1 o mayor que 12, el resultado restará o sumará esos meses desde el
principio del año especificado.
Si el valor de Día es mayor que el número de días del mes especificado, la función sumará esos días al
primer día del mes y devolverá una fecha correspondiente de un mes posterior. Si el valor de Día es
menor que 1, la función resta esa cantidad de días, más 1, desde el primer día del mes especificado.
La función Time convierte los valores individuales de hora, minuto y segundo en un valor de fecha y hora. El
resultado no tiene ninguna fecha asociada a él.
Consulte las funciones DateValue , TimeValue y DateTimeValue para obtener información acerca de
cómo convertir una cadena en un valor.
Consulte también cómo trabajar con fechas y horas para más información.

Sintaxis
Date( Year; Month; Day )
Year: requerido. Los números mayores a 1899 se interpretan como un absoluto (1980 se interpreta como
1980). Los números comprendidos entre 0 y 1899 se interpretan en relación con 1900. (Por ejemplo, 80
se interpreta como 1980).
Month: requerido. Un número comprendido entre 1 y 12.
Day: requerido. Un número comprendido entre 1 y 31.
Time( Hour; Minute; Second )
Hour: requerido. Un número comprendido entre 0 (12:00 a. m.) y 23 (11:00 p. m).
Minute: requerido. Un número comprendido entre 0 y 59.
Second: requerido. Un número comprendido entre 0 y 59.

Ejemplos
Fecha
Si un usuario escribe 1979 en un control de entrada de texto denominado HireYear, 3 en otro control
denominado HireMonth y 17 en un tercer control denominado HireDay, esta función debería devolver
3/17/1979:
Date(Value(HireYear.Text); Value(HireMonth.Text); Value(HireDay.Text))
Time
Si un usuario escribe 14 en un control de entrada de texto denominado BirthHour, 50 en otro control
denominado BirthMinute y 24 en un tercer control denominado BirthSecond, esta función debería
devolver 02:50:24 p.
Text(Time(Value(BirthHour.Text); Value(BirthMinute.Text); Value(BirthSecond.Text)); "hh:mm:ss
a/p")
Funciones DateValue, TimeValue y
DateTimeValue en PowerApps
08/10/2019 • 6 minutes to read

Convierte una fecha o una hora, o ambas, en un valor de fecha y hora.

Descripción
La función DateValue convierte una cadena de fecha (por ejemplo, "10/01/2014") en un valor de fecha y
hora.
La función TimeValue convierte una cadena de hora (por ejemplo, "12:15 p. m.") en un valor de fecha y
hora.
La función DateTimeValue convierte una cadena de fecha y hora (por ejemplo, "10 de enero de 2013,
12:13 a. m.") en un valor de fecha y hora.
La función DateValue ignora cualquier información de hora en la cadena de fecha y la función
TimeValue ignora cualquier información de fecha en la cadena de hora.
De forma predeterminada, el idioma utilizado es el del usuario actual, pero puede invalidar esta opción
para asegurarse de que las cadenas se interpreten correctamente. Por ejemplo, "10/1/1920" se interpreta
como el 1 de octubre en "inglés" y como 10 de enero en "francés".
Las fechas deben estar en uno de estos formatos:
MM/DD/AAAA
DD/MM/AAAA
DD Mes AAAA
Mes DD, AAAA
Consulte las funciones Date y Time para convertir a partir de componentes numéricos la fecha, mes y
año, y la hora, minuto y segundo.
Consulte también cómo trabajar con fechas y horas para más información.
Para convertir números, consulte la función Value .

Sintaxis
DateValue( String [; Language ])
DateTimeValue( String [; Language ])
TimeValue( String [; Language ])
String: requerido. Una cadena de texto que contiene un valor de fecha, de hora, o una combinación de
ambas.
Idioma: opcional. Una cadena de idioma, como la que devuelven los dos primeros caracteres de la
función Language . Si no se indica, se utilizará el idioma de cliente del usuario actual.

Ejemplos
DateValue
Si escribió 10/11/2014 en un control de entrada de texto denominado Startdate y, después, estableció la
propiedad Texto de una etiqueta en esta función:
Text(DateValue(Startdate.Text); DateTimeFormat.LongDate)
La etiqueta debería mostrar el sábado, 11 de octubre de 2014, si su equipo se ha configurado con
la configuración regional en.

NOTE
Puede utilizar varias opciones, excepto LongDateTime, con el parámetro DateTimeFormat. Para mostrar
una lista de esas opciones, escriba el parámetro, seguido inmediatamente de un signo de exclamación, en el
cuadro de función.

Text(DateValue(Startdate.Text; "fr"); DateTimeFormat.LongDate)


La etiqueta mostrará ahora el lunes 10 de noviembre de 2014.
Si hizo lo mismo en el 20 de octubre de 2014:
DateDiff(DateValue(Startdate.Text); Today())
Si su equipo se ha configurado con el idioma en, la etiqueta mostrará 9, que indica el número de
días entre el 11 de octubre y el 20 de octubre. La función DateDiff también puede mostrar la
diferencia en meses, trimestres o años.
DateTimeValue
Si escribió 10/11/2014 1:50:24.765 p. m. en un control de entrada de texto denominado Start y, después,
estableció la propiedad Texto de una etiqueta en esta función:
Text(DateTimeValue(Start.Text); DateTimeFormat.LongDateTime)
La etiqueta debería mostrar el sábado, 11 de octubre de 2014 1:50:24 p. m. , si su equipo se ha
configurado con la configuración regional "en".

NOTE
Puede utilizar varias opciones, excepto LongDateTime, con el parámetro DateTimeFormat. Para mostrar
una lista de esas opciones, escriba el parámetro, seguido inmediatamente de un signo de exclamación, en el
cuadro de función.

Text(DateTimeValue(Start.Text; "fr"); DateTimeFormat.LongDateTime)


La etiqueta mostrará ahora el lunes 10 de noviembre de 2014 1:50:24 p. m.
Text(DateTimeValue(Start.Text); "dddd, mmmm dd, yyyy hh:mm:ss.fff AM/PM")
La etiqueta debería mostrar el sábado, 11 de octubre de 2014 01:50:24:765 p. m. , si su equipo
se ha configurado con la configuración regional en.
Como alternativa, puede especificar hh:mm:ss.f o hh:mm:ss.ff para redondear la hora a la décima
o centésima de segundo más cercana.
TimeValue
Asigne el nombre FinishedAt a un control de entrada de texto y establezca la propiedad Text de una
etiqueta en esta función:
If(TimeValue(FinishedAt.Text)<TimeValue("5:00:00.000 PM"); "You made it!"; "Too late!")
Si escribe 4:59:59.999 PM en el control FinishedAt la etiqueta mostrará el texto "You made it!"
Si escribe 5:00:00.000 p. m. en el control FinishedAt, la etiqueta mostrará el texto "Too late!"
Funciones DateAdd, DateDiff y TimeZoneOffset
de PowerApps
08/10/2019 • 6 minutes to read

Agrega valores de fecha y hora o encuentra la diferencia en estos valores y realiza la conversión entre la hora
local y UTC.

Descripción
La función DateAdd agrega un número de unidades a un valor de fecha y hora. El resultado es un nuevo
valor de fecha y hora. También puede restar un número de unidades de un valor de fecha y hora mediante la
especificación de un valor negativo.
La función DateDiff devuelve la diferencia entre dos valores de fecha y hora. El resultado es un número de
unidades.
En ambas funciones, las unidades pueden ser Milisegundos, Segundos, Minutos, Horas, Días, Meses,
Trimestres o Años. De forma predeterminada, ambas funciones usan días como unidades.
La función TimeZoneOffset devuelve el número de minutos entre la hora local del usuario y la Hora
universal coordinada (UTC ).
Puede usar DateAdd con TimeZoneOffset para realizar la conversión entre la hora local del usuario y la
Hora universal coordinada (UTC ). Al sumar TimeZoneOffset se convierte la hora local a UTC y al restarlo
(agregar el signo negativo) se convierte de UTC a la hora local.
Vea también tipos de datos Date, Time y DateTime, y trabajar con fechas y horas para obtener más
información.

Sintaxis
DateAdd( DateTime; Addition [; Units ] )
DateTime: requerido. Valor de fecha y hora con el que operar.
Suma: requerido. Número, en unidades, para agregar a DateTime.
Unidades: opcional. Tipo de unidades que se van a agregar: Milisegundos, segundos, minutos, horas,
días, meses, trimestreso años. Si no se especifica, se usará Días.
DateDiff( StartDateTime; EndDateTime [; Units ] )
StartDateTime: requerido. Valor de fecha y hora de inicio.
EndDateTime: requerido. Valor de fecha y hora de finalización.
Unidades: opcional. Tipo de unidades que se van a agregar: Milisegundos, segundos, minutos, horas,
días, meses, trimestreso años. Si no se especifica, se usará Días.
TimeZoneOffset( [ DateTime ] )
DateTime: opcional. Valor de fecha y hora para el que se devuelve el desplazamiento. De forma
predeterminada, se utiliza la fecha y hora actuales.

Ejemplos
En todos estos ejemplos, se supone que la fecha y hora actuales son 15 de julio de 2013, 1:02 p.m.
DateAdd simple
FÓRMULA DESCRIPCIÓN RESULTADO

Text( DateAdd( Now(); 3 ); Agrega tres días (unidades "18-07-2013 13:02"


"dd-mm-yyyy hh:mm" ) predeterminadas) a la fecha y hora
actuales.

Text( DateAdd( Now(); 4; Hours ); Agrega cuatro horas a la fecha y hora "15-07-2013 17:02"
"dd-mm-yyyy hh:mm" ) actuales.

Text( DateAdd( Today(); 1; Months Agrega un mes a la fecha actual, sin "15-08-2013 00:00"
); tiempo dado que Today no devuelve
"dd-mm-yyyy hh:mm" ) un componente de tiempo.

Text( DateAdd( Now(); ‑;30; Resta 30 minutos de la fecha y hora "15-07-2013 12:32"
Minutes ); actuales.
"dd-mm-yyyy hh:mm" )

DateDiff simple
FÓRMULA DESCRIPCIÓN RESULTADO

DateDiff( Now(); Devuelve la diferencia entre las dos 170


DateValue("1/1/2014") ) unidades en las unidades
predeterminadas de Días.

DateDiff( Now(); Devuelve la diferencia entre los dos 6


DateValue("1/1/2014"); Months ) valores en Meses.

DateDiff( Now(); Today(); Minutes Devuelve la diferencia entre la fecha y -782


) hora actuales y la fecha actual
solamente (ninguna hora) en
minutos. Puesto que Now es
posterior a Today, el resultado es
negativo.

Conversión a UTC
Para convertir a UTC (Hora universal coordinada), agregue TimeZoneOffset durante el tiempo
especificado.
Imagine, por ejemplo, que los valores de fecha y hora actuales son 15 de julio de 2013, 1:02 p.m. en la
Hora de verano del Pacífico (PDT, UTC -7). Para determinar la hora actual en hora UTC, use:
DateAdd( Now(); TimeZoneOffset(); Minutes )
TimeZoneOffset toma como valor predeterminado la hora actual, por lo que no es necesario pasarle un
argumento.
Para ver el resultado, use la función Text con el formato dd -mm -aaaa hh:mm, que devolverá 15-07-2013
20:02.
Conversión desde UTC
Para convertir desde UTC, reste TimeZoneOffset (agregando el signo negativo) para la hora especificada.
Imagine, por ejemplo, que los valores de fecha y hora UTC 15 de julio de 2013, 8:02 p.m. se almacenan en
una variable llamada StartTime. Para ajustar la hora de la zona horaria del usuario, use:
DateAdd (StartTime, −TimeZoneOffset (StartTime), minutos)
Tenga en cuenta el signo negativo delante de TimeZoneOffset para restar el desplazamiento en lugar de
sumarlo.
Para ver el resultado, use la función Text con el formato dd -mm -aaaa hh:mm, que devuelve 15-07-2013
13:02 en la Hora de verano del Pacífico.
Funciones Now, Today e IsToday en PowerApps
08/10/2019 • 7 minutes to read

Devuelve la fecha y hora actuales y comprueba si un valor de fecha y hora es el día de hoy.

Descripción
La función Now devuelve la fecha y hora actuales como un valor de fecha y hora.
La función Today devuelve la fecha actual como un valor de fecha y hora. La parte de la hora es la medianoche.
Today tiene el mismo valor a lo largo del día, desde hoy a medianoche hasta mañana a medianoche.
La función IsToday comprueba si un valor de fecha y hora está comprendido entre hoy a medianoche y mañana
a medianoche. Con esta función, se devuelve un valor booleano true o false.
Todas estas funciones funcionan con la hora local del usuario actual.
Consulte cómo trabajar con fechas y horas para más información.

Funciones volátiles
Now y Today son funciones volátiles. Cada vez que se evalúa una de estas funciones, se devuelve un valor
diferente.
Cuando se usa en una fórmula de flujo de datos, una función volátil solo devuelve un valor diferente si se vuelve
a evaluar la fórmula en la que aparece. Si no hay ningún otro cambio en la fórmula, presenta el mismo valor
durante la ejecución de la aplicación.
Por ejemplo, un control de etiqueta con Label1.Text = Now() no cambiará mientras la aplicación esté activa.
Solo se generará un nuevo valor si se cierra y se vuelve a abrir la aplicación.
Si la función forma parte de una fórmula en la que haya cambiado algún elemento más, se volverá a evaluar. Por
ejemplo, si modificamos el ejemplo para incluir un control deslizante con Label1.Text = DateAdd( Now();
Slider1.Value; Minutes ) , se recuperará la hora actual cada vez que cambie el valor del control deslizante.
Asimismo, se volverá a evaluar la propiedad de texto de la etiqueta.
Cuando se usa en una fórmula de comportamiento, las funciones volátiles se evalúan cada vez que se evalúa la
fórmula de comportamiento. Encontrará un ejemplo a continuación.

Sintaxis
Now()
Today()
IsToday( DateTime )
DateTime: requerido. El valor de fecha y hora para comprobar.

Ejemplos
En los ejemplos de esta sección, la hora actual es 3:59 AM el 12 de febrero de 2015 y el idioma es en-us.
FÓRMULA DESCRIPCIÓN RESULTADO

Text( Now(); "mm/dd/yyyy Recupera la fecha y hora actuales y las "02/12/2015 03:59:00"
hh:mm:ss" ) muestra como una cadena.

Text( Today(); "mm/dd/yyyy Recupera solo la fecha actual, dejando "02/12/2015 00:00:00"
hh:mm:ss" ) la parte de hora como medianoche, y
la muestra como una cadena.

IsToday( Now() ) Comprueba si la fecha y hora actuales true


se encuentran entre hoy a medianoche
y mañana a medianoche.

IsToday( Today() ) Comprueba si la fecha actual se true


encuentra entre hoy a medianoche y
mañana a medianoche.

Text( DateAdd( Now(); 12 ); Recupera la fecha y hora actuales, "02/24/2015 03:59:00"


"mm/dd/yyyy hh:mm:ss" ) agrega 12 días al resultado y lo
muestra como una cadena.

Text( DateAdd( Today(); 12 ); Recupera la fecha actual, agrega 12 "02/24/2015 00:00:00"


"mm/dd/yyyy hh:mm:ss" ) días al resultado y lo muestra como
una cadena.

IsToday( DateAdd( Now(); 12 ) ) Comprueba si la fecha y hora actuales, false


más 12 días, se encuentran entre hoy a
medianoche y mañana a medianoche.

IsToday( DateAdd( Today(); 12 ) ) Comprueba si la fecha actual, más 12 false


días, se encuentra entre hoy a
medianoche y mañana a medianoche.

Mostrar un reloj actualizado en tiempo real


1. Agregue un control Timer , establezca su propiedad Duration en 1000 y establezca su propiedad
Repeat en true.
El temporizador se ejecutará durante un segundo y volverá a empezar automáticamente, y así
sucesivamente.
2. Establezca la propiedad OnTimerEnd del control en esta fórmula:
Set( CurrentTime; Now() )
Cada vez que el temporizador vuelve a empezar, es decir, cada segundo, esta fórmula establece la variable
global CurrentTime en el valor actual de la función Now.

3. Agregue un control Label y establezca su propiedad Text en esta fórmula:


Text( CurrentTime; LongTime24 )
Use la función Text para aplicar el formato que quiera a la fecha y la hora o establezca esta propiedad en
CurrentTime para que se muestren las horas y los minutos, sin los segundos.

4. Pulse F5 para obtener una versión preliminar de la aplicación y, a continuación, inicie el temporizador.
Para ello, haga clic en él o púlselo.
La etiqueta muestra la hora local de forma continua, segundo a segundo.

5. Establezca la propiedad AutoStart del temporizador en true y la propiedad Visible en false.


El temporizador es invisible y se inicia automáticamente.
6. Establezca la propiedad OnStart de la pantalla de modo que la variable CurrentTime tenga un valor
válido, como en este ejemplo:
Set(CurrentTime; Now())
La etiqueta aparece en cuanto se inicia la aplicación, antes de que el temporizador se ejecute durante un
segundo completo.
Funciones Trim y TrimEnds en PowerApps
08/10/2019 • 3 minutes to read

Quita los espacios de una cadena de texto.

Descripción
La función Trim quita todos los espacios de una cadena de texto, excepto los espacios individuales entre palabras.
La función TrimEnds quita todos los espacios del principio y del final de una cadena de texto, pero deja intactos los
espacios entre las palabras.
Si especifica una sola cadena de texto, cada función devuelve una cadena a la que se han quitado todos los espacios
adicionales. Si especifica una tabla con una sola columna que contiene cadenas, el valor devuelto es una tabla con
una sola columna de cadenas recortadas. Si tiene una tabla con varias columnas, puede convertirla en una tabla de
una sola columna, como se describe en cómo trabajar con tablas.
Al recortar los espacios entre las palabras, Trim es coherente con la función del mismo nombre en Microsoft Excel.
Sin embargo, TrimEnds es coherente con las herramientas de programación, que quitan los espacios solo del
principio y el final de cada cadena.

Sintaxis
Trim ( String )
TrimEnds( String )
String: requerido. Cadena de texto a la que se van a quitar los espacios.
Trim ( SingleColumnTable )
TrimEnds( SingleColumnTable )
SingleColumnTable: requerido. Tabla de una sola columna a la que se van a quitar los espacios.

Ejemplo
FÓRMULA DESCRIPCIÓN RESULTADO

Trim( " Hello World " ) Quita todos los espacios del principio y "Hello World"
del final de una cadena, y los espacios
adicionales de dentro de la cadena.

TrimEnds( " Hello World " ) Quita todos los espacios del principio y "Hello World"
del final de una cadena.

Los ejemplos siguientes usan una colección de una sola columna, llamada Spaces, que contiene estas cadenas:
Para crear esta colección, establezca la propiedad OnSelect de un control Botón en esta fórmula, abra el modo de
vista previa y, a continuación, pulse o haga clic en el botón:
ClearCollect( Spaces; [ " Jane Doe "; " Jack and Jill"; "Already trimmed";
" Venus, Earth, Mars "; "Oil and Water " ] )

FÓRMULA DESCRIPCIÓN RESULTADO

Trim( Spaces ) Quita todos los espacios del principio y


del final de una cadena, y los espacios
adicionales de dentro de cada cadena de
la colección Spaces.

TrimEnds( Spaces ) Quita todos los espacios del principio y


del final de cada cadena de la colección
Spaces.

NOTE
Si pulsa o hace clic en Colecciones en el menú Archivo para mostrar una colección, no aparecen espacios adicionales. Para
comprobar la longitud de la cadena, use la función Len .
Funciones Trim y TrimEnds en PowerApps
08/10/2019 • 3 minutes to read

Quita los espacios de una cadena de texto.

Descripción
La función Trim quita todos los espacios de una cadena de texto, excepto los espacios individuales entre
palabras.
La función TrimEnds quita todos los espacios del principio y del final de una cadena de texto, pero deja intactos
los espacios entre las palabras.
Si especifica una sola cadena de texto, cada función devuelve una cadena a la que se han quitado todos los
espacios adicionales. Si especifica una tabla con una sola columna que contiene cadenas, el valor devuelto es
una tabla con una sola columna de cadenas recortadas. Si tiene una tabla con varias columnas, puede
convertirla en una tabla de una sola columna, como se describe en cómo trabajar con tablas.
Al recortar los espacios entre las palabras, Trim es coherente con la función del mismo nombre en Microsoft
Excel. Sin embargo, TrimEnds es coherente con las herramientas de programación, que quitan los espacios solo
del principio y el final de cada cadena.

Sintaxis
Trim ( String )
TrimEnds( String )
String: requerido. Cadena de texto a la que se van a quitar los espacios.
Trim ( SingleColumnTable )
TrimEnds( SingleColumnTable )
SingleColumnTable: requerido. Tabla de una sola columna a la que se van a quitar los espacios.

Ejemplo
FÓRMULA DESCRIPCIÓN RESULTADO

Trim( " Hello World " ) Quita todos los espacios del principio y "Hello World"
del final de una cadena, y los espacios
adicionales de dentro de la cadena.

TrimEnds( " Hello World " ) Quita todos los espacios del principio y "Hello World"
del final de una cadena.

Los ejemplos siguientes usan una colección de una sola columna, llamada Spaces, que contiene estas cadenas:
Para crear esta colección, establezca la propiedad OnSelect de un control Botón en esta fórmula, abra el modo
de vista previa y, a continuación, pulse o haga clic en el botón:
ClearCollect( Spaces; [ " Jane Doe "; " Jack and Jill"; "Already trimmed";
" Venus, Earth, Mars "; "Oil and Water " ] )

FÓRMULA DESCRIPCIÓN RESULTADO

Trim( Spaces ) Quita todos los espacios del principio y


del final de una cadena, y los espacios
adicionales de dentro de cada cadena
de la colección Spaces.

TrimEnds( Spaces ) Quita todos los espacios del principio y


del final de cada cadena de la colección
Spaces.

NOTE
Si pulsa o hace clic en Colecciones en el menú Archivo para mostrar una colección, no aparecen espacios adicionales.
Para comprobar la longitud de la cadena, use la función Len .
Funciones GroupBy y Ungroup en PowerApps
08/10/2019 • 9 minutes to read

Agrupa y desagrupa registros de una tabla.

Descripción
La función GroupBy devuelve una tabla con registros agrupados en función de los valores de una o varias
columnas. Los registros del mismo grupo se colocan en un único registro, con una columna agregada que
contiene una tabla anidada de las columnas restantes.
La función Ungroup invierte el proceso realizado por GroupBy. Esta función devuelve una tabla y divide en
registros individuales todos los registros que estaban agrupados.
Puede agrupar los registros mediante GroupBy, modificar la tabla que devuelve y, a continuación, desagrupar
los registros de la tabla modificada mediante la función Ungroup. Por ejemplo, puede quitar un grupo de
registros siguiendo este enfoque:
Use la función GroupBy.
Use la función Filter para quitar todo el grupo de registros.
Use la función Ungroup.
También puede agregar los resultados en función de una agrupación:
Use la función GroupBy.
Use la función AddColumns con Sum , Average y otras funciones de agregado para agregar una nueva
columna que sea un agregado de las tablas de grupos.
Use la función DropColumns para quitar la tabla de grupo.
Ungroup intenta conservar el orden original de los registros que se proporcionan a GroupBy. Esto no siempre
es posible (por ejemplo, si la tabla original contiene registros blank).
Una tabla es un valor en PowerApps, como una cadena o un número. Puede especificar una tabla como
argumento para una función y una función puede devolver una tabla. GroupBy y Ungroup no modifican una
tabla; en lugar de eso, toman una tabla como argumento y devuelven una tabla diferente. Consulte cómo
trabajar con tablas para más detalles.

Sintaxis
GroupBy( Table; ColumnName1 [; ColumnName2; ... ]; GroupColumnName )
Table: requerido. Tabla que se desea agrupar.
ColumnName(s) : requerido. Los nombres de columna en Table mediante los que se van a agrupar los
registros. Estas columnas se convierten en columnas en la tabla resultante.
GroupColumnName: requerido. El nombre de la columna para el almacenamiento de datos de registro
que no están en el ColumnName(s) .
NOTE
En el caso de orígenes de datos de SharePoint y Excel que contengan nombres de columna con espacios,
especifique cada uno de ellos como "_x0020_" . Por ejemplo, especifique "Nombre de columna" como
"Nombre_x0020_de_columna" .

Ungroup( Table; GroupColumnName )


Table: requerido. Tabla que se desea desagrupar.
GroupColumnName: requerido. La columna que contiene la configuración de los datos de registro con la
función GroupBy.

NOTE
En el caso de orígenes de datos de SharePoint y Excel que contengan nombres de columna con espacios,
especifique cada uno de ellos como "_x0020_" . Por ejemplo, especifique "Nombre de columna" como
"Nombre_x0020_de_columna" .

Ejemplos
Crear una colección
1. Agregue un botón y establezca su propiedad Text para que el botón muestre Original.
2. Establezca la propiedad OnSelect del botón Original en esta fórmula:

ClearCollect( CityPopulations;
{ City: "London"; Country: "United Kingdom"; Population: 8615000};
{ City: "Berlin"; Country: "Germany"; Population: 3562000};
{ City: "Madrid"; Country: "Spain"; Population: 3165000};
{ City: "Rome"; Country: "Italy"; Population: 2874000};
{ City: "Paris"; Country: "France"; Population: 2273000};
{ City: "Hamburg"; Country: "Germany"; Population: 1760000};
{ City: "Barcelona"; Country: "Spain"; Population: 1602000};
{ City: "Munich"; Country: "Germany"; Population: 1494000};
{ City: "Milan"; Country: "Italy"; Population: 1344000}
)

3. Mientras mantiene presionada la tecla Alt, seleccione el botón Original.


Acaba de crear una colección, que se denomina CityPopulations, que contiene estos datos:

4. Para mostrar esta colección, seleccione Colecciones en el menú Archivo y, a continuación, seleccione la
colección CityPopulations. Aparecerán los cinco primeros registros de la colección:
Registros de grupo
1. Agregue otro botón y establezca su propiedad Text en "Group" .
2. Establezca la propiedad OnSelect de este botón en esta fórmula:
ClearCollect( CitiesByCountry; GroupBy( CityPopulations; "Country"; "Cities" ) )
3. Mientras mantiene presionada la tecla Alt, seleccione el botón Grupo.
Acaba de crear una recopilación denominada CitiesByCountry, en la que se agrupan los registros de la
colección anterior mediante la columna País.

4. Para mostrar los primeros cinco registros de esta colección, seleccione Colecciones en el menú Archivo.
5. Para mostrar la población de las ciudades de un país o región, seleccione el icono de tabla de la columna
Ciudades de ese país (por ejemplo, Alemania):

Filtrado y desagrupación de registros


1. Agregue otro botón y establezca su propiedad Text para que el botón muestre "Filtrar" .
2. Establezca la propiedad OnSelect de este botón en esta fórmula:
ClearCollect( CitiesByCountryFiltered; Filter( CitiesByCountry; "e" in Country ) )
3. Mientras mantiene presionada la tecla Alt, seleccione el botón que ha agregado.
Acaba de crear una tercera colección denominada CitiesByCountryFiltered, que incluye solo aquellos
países que tienen una "e" en sus nombres (es decir, no España o Italia, por ejemplo).
4. Agregue un botón más y establezca su propiedad Text para que el botón muestre "Desagrupar" .
5. Establezca la propiedad OnSelect de este botón en esta fórmula:
ClearCollect( CityPopulationsUngrouped; Ungroup( CitiesByCountryFiltered; "Cities" ) )
Que da como resultado:

Agregación de resultados
Otra cosa que podemos hacer con una tabla agrupada consiste en agregar los resultados. En este ejemplo, se
sumará la población de las ciudades más importantes de cada país.
1. Agregue otro botón y establezca su propiedad Text para que el botón muestre "Sum" .
2. Establezca la propiedad OnSelect del botón "Sum" en esta fórmula:
ClearCollect( CityPopulationsSum; AddColumns( CitiesByCountry; "Sum of City Populations";
Sum ( Cities; Population ) ) )
Que da como resultado:
AddColumns comienza con la colección básica de CitiesByCountry y agrega una nueva columna
denominada Sum of City Populations. Los valores de esta columna se calculan fila por fila según la
fórmula Sum ( Cities; Population ) . AddColumns proporciona el valor de la columna Cities (una tabla)
para cada fila y Sum el valor de Population de cada fila de esta subtabla.
Ahora que tenemos la suma que queremos, podemos usar la función DropColumns para quitar las
subtablas.
3. Agregue otro botón y establezca su propiedad Text para que el botón muestre "SumOnly" .
4. Establezca la propiedad OnSelect del botón "SumOnly" en esta fórmula:
ClearCollect( CityPopulationsSumOnly; DropColumns( CityPopulationsSum; "Cities" ) )
Que da como resultado:

Tenga en cuenta que no fue necesario desagrupar esta tabla.


Funciones de relación y desrelación en PowerApps
26/11/2019 • 19 minutes to read

Relacionar y desrelacionar registros de dos entidades a través de una relación de uno a varios o de varios a
varios.

Descripción
La función Relate vincula dos registros a través de una relación de uno a varios o de varios a varios en Common
Data Service. La función no relacional invierte el proceso y quita el vínculo.
En el caso de las relaciones uno a varios, la entidad muchos tiene un campo de clave externa que apunta a un
registro de la entidad. Relacionar establece este campo para que señale a un registro específico de la entidad,
mientras que sin relación establece este campo en en blanco. Si el campo ya está establecido cuando se llama a
Relate , el vínculo existente se pierde en favor del nuevo vínculo. También puede establecer este campo
mediante la función patch o un control Edit Form . no es necesario usar la función Relate .
En el caso de las relaciones de varios a varios, el sistema que vincula los registros mantiene una tabla combinada
oculta. No se puede obtener acceso a esta tabla de combinación directamente; solo se puede leer a través de una
proyección uno a varios y establecerse a través de las funciones relacionar y no relacionar . Ninguna entidad
relacionada tiene una clave externa.
Los datos de la entidad que especifique en el primer argumento se actualizarán para reflejar el cambio, pero los
datos de la entidad que especifique en el segundo argumento no lo serán. Esos datos se deben actualizar
manualmente con la función de actualización para mostrar el resultado de la operación.
Estas funciones nunca crean o eliminan un registro. Solo relacionan o desrelacionan dos registros que ya existen.
Estas funciones solo se pueden usar en fórmulas de comportamiento.

NOTE
Estas funciones forman parte de una característica de vista previa y su comportamiento solo está disponible cuando está
habilitada la característica datos relacionales, conjuntos de opciones y otras características nuevas de CDs . Se trata
de una configuración de nivel de aplicación que está habilitada de forma predeterminada para las nuevas aplicaciones. Para
encontrar este modificador de características, abra el menú archivo , seleccione Configuración de la aplicacióny, a
continuación, seleccione Configuración avanzada. Sus comentarios nos sirven mucho: denos su opinión en los foros de la
comunidad de PowerApps.

Sintaxis
Relacionar( Entity1RelatedTable; Entity2Record )
Entity1RelatedTable : requerido. Para un registro de Entity1, la tabla de registros Entity2 relacionados con una
relación de uno a varios o de varios a varios.
Entity2Record : requerido. Registro Entity2 que se va a agregar a la relación.
No relacionar( Entity1RelatedTable; Entity2Record )
Entity1RelatedTable : requerido. Para un registro de Entity1, la tabla de registros Entity2 relacionados con una
relación de uno a varios o de varios a varios.
Entity2Record : requerido. Registro Entity2 que se va a quitar de la relación.
Ejemplos
Considere una entidad Products con las siguientes relaciones, tal como se ha visualizado en el visor de
entidades del portal de PowerApps:

NOMBRE PARA MOSTRAR DE RELACIÓN ENTIDAD RELACIONADA TIPO DE RELACIÓN

Reserva del producto Movs Uno a varios

Contacto del ↔ del producto Contacto Varios a varios

Los productos y las reservas se relacionan a través de una relación de uno a varios. Para relacionar el primer
registro de la entidad reservas con el primer registro de la entidad productos :
Relate( First( Products ).Reservations; First( Reservations ) )

Para quitar la relación entre estos registros:


Unrelate( First( Products ).Reservations; First( Reservations ) )

En ningún momento se crea o quita un registro, solo se modificó la relación entre los registros.
Los productos y los contactos se relacionan a través de una relación de varios a varios. Para relacionar el
primer registro de la entidad Contacts con el primer registro de la entidad Products :
Relate( First( Products ).Contacts; First( Contacts ) )

Como las relaciones varios a varios son simétricas, podríamos hacer esto también en la dirección opuesta:
Relate( First( Contacts ).Products; First( Products ) )

Para quitar la relación entre estos registros:


Unrelate( First( Products ).Contacts; First( Contacts ) )

de
Unrelate( First( Contacts ).Products; First( Products ) )

En el siguiente tutorial se realizan exactamente estas operaciones en estas entidades mediante una aplicación con
controles de Galería y de cuadro combinado para seleccionar los registros implicados.
Estos ejemplos dependen de los datos de ejemplo que se instalan en el entorno. Cree un entorno de prueba que
incluya datos de ejemplo o agregue datos de ejemplo a un entorno existente.
Uno a varios
Función Relate
En primer lugar, creará una aplicación sencilla para ver y reasignar las reservas asociadas a un producto.
1. Cree una aplicación de Tablet PC en blanco.
2. En la pestaña Vista, seleccione Orígenes de datos.
3. En el panel datos , seleccione Agregar origen de datos > Common Data Service > productos >
conectar.
La entidad Products forma parte de los datos de ejemplo cargados anteriormente.
4. En la pestaña Insertar , agregue un control Galería vertical en blanco.
5. Asegúrese de que el control que acaba de agregar se denomina Gallery1y, a continuación, muévalo y
cambie su tamaño para rellenar el lado izquierdo de la pantalla.
6. En la pestaña propiedades , establezca la propiedad elementos de Gallery1en productos y su diseño
en imagen y título.

7. En Gallery1, asegúrese de que el control etiqueta se denomine Title1y, a continuación, establezca su


propiedad Text en ThisItem.Name.

8. Seleccione la pantalla para evitar que se inserte el siguiente elemento en Gallery1. Agregue un segundo
control Galería vertical en blanco y asegúrese de que se denomina Gallery2.
Gallery2 mostrará las reservas de cualquier producto que seleccione el usuario en Gallery1.
9. Mueva y cambie el tamaño de Gallery2 para rellenar el cuadrante superior derecho de la pantalla.
10. opta Agregue el control de etiqueta azul sobre Gallery2, como se muestra en el gráfico siguiente.
11. En la barra de fórmulas, establezca la propiedad Items de Gallery2 en Gallery1. Selected. reservas.
12. En el panel Propiedades, establezca diseño de Gallery2en título.

13. En Gallery2, agregue un control de cuadro combinado , asegúrese de que se llama ComboBox1y, a
continuación, muévalo y cambie su tamaño para evitar que se bloqueen los demás controles de Gallery2.
14. En la pestaña propiedades , establezca la propiedad elementos de ComboBox1en productos.

15. Desplácese hacia abajo en la pestaña propiedades y establezca la propiedad Permitir selección
múltiple de ComboBox1en OFF.
16. En la barra de fórmulas, establezca la propiedad DefaultSelectedItems de ComboBox1en ThisItem. '
Product reservation ' .

17. En Gallery2, establezca la propiedad alseleccionar de NextArrow2en esta fórmula:

Relate( ComboBox1.Selected.Reservations; ThisItem )

Cuando el usuario selecciona este icono, la reserva actual cambia al producto que el usuario seleccionó en
ComboBox1.

18. Presione F5 para probar la aplicación en modo de vista previa.


Con esta aplicación, el usuario puede trasladar una reserva de un producto a otro. En el caso de una reserva de
un producto, el usuario puede seleccionar un producto diferente en ComboBox1 y seleccionar NextArrow2
para cambiar esa reserva.

No Relacionate (función )
Llegados a este punto, puede trasladar la relación de un registro a otro, pero no puede quitar la relación por
completo. Puede usar la función no relacionar para desconectar un registro de reserva de cualquier producto.
1. En la pestaña Vista, seleccione Orígenes de datos.
2. En el panel datos , seleccione Agregar origen de datos > Common Data Service > reservas >
conectar.
3. En Gallery2, establezca la fórmula alseleccionar para NextArrow2 en esta fórmula:

If( IsBlank( ComboBox1.Selected );


Unrelate( Gallery1.Selected.Reservations; ThisItem );
Relate( ComboBox1.Selected.Reservations; ThisItem )
);;
Refresh( Reservations )

4. Copie Gallery2 en el portapapeles; para ello, selecciónelo y presione Ctrl + C.


5. Pegue un duplicado de Gallery2 en la misma pantalla presionando Ctrl-V y, a continuación, muévalo al
cuadrante inferior derecho de la pantalla.
6. opta Si agregó una etiqueta por encima de Gallery2, repita los dos pasos anteriores para esa etiqueta.
7. Asegúrese de que el duplicado de Gallery2 se denomine Gallery2_1y, a continuación, establezca la
propiedad elementos en esta fórmula:

Filter( Reservations; IsBlank( 'Product Reservation' ) )

Aparece una advertencia de delegación, pero no importa la pequeña cantidad de datos en este ejemplo.

Con estos cambios, los usuarios pueden borrar la selección en ComboBox1 para un contacto si esa persona no
ha reservado un producto. Los contactos que no han reservado un producto aparecen en Gallery2_1 en los que
los usuarios pueden asignar cada contacto a un producto.

Varios a varios
Crear una relación de varios a varios
Los datos de ejemplo no incluyen una relación de varios a varios, pero creará uno entre la entidad productos y la
entidad contactos. Los usuarios pueden relacionar cada producto con más de un contacto y cada contacto con
más de un producto.
1. En esta página, seleccione datos en la barra de navegación izquierda y, a continuación, seleccione
entidades.

2. Cambie el filtro de entidad para incluir todas las entidades.


De forma predeterminada, las entidades de ejemplo no aparecen.

3. Desplácese hacia abajo, abra la entidad Product y seleccione Relationships (relaciones).


4. Seleccione Agregar relación > varios a varios.

5. Seleccione la entidad contacto para la relación.

6. Seleccione listo > Guardar entidad.

Relacionar y desrelacionar contactos con uno o varios productos


Creará otra aplicación similar a la que creó anteriormente en este tema, pero la nueva aplicación proporcionará
una relación de varios a varios. Cada contacto podrá reservar varios productos en lugar de uno solo.
1. En una aplicación en blanco para tabletas, cree Gallery1 como se describe en el primer procedimiento de
este tema.
2. Agregue otro control Galería vertical en blanco, asegúrese de que se llama Gallery2y, a continuación,
muévalo a la esquina superior derecha de la pantalla.
Más adelante en este tema, agregará un control de cuadro combinado en Gallery2.
3. En la barra de fórmulas, establezca la propiedad elementos de Gallery2en Gallery1. Selected.
contacts.

4. En la pestaña propiedades , establezca diseño en imagen y título.

5. En Gallery2, asegúrese de que el control etiqueta se denomine Title2y, a continuación, establezca su


propiedad Text en ThisItem. ' Full Name ' .
No aparecerá ningún texto en ese control hasta que finalice este procedimiento y asigne un contacto a un
producto.
6. Elimine NextArrow2, inserte un icono de cancelación y asegúrese de que se llama icon1.
7. Establezca la propiedad alseleccionar del icono Cancelar en esta fórmula:

Unrelate( Gallery1.Selected.Contacts; ThisItem )

8. En la pestaña Vista, seleccione Orígenes de datos.


9. En el panel datos , seleccione Agregar origen de datos > Common Data Service > contactos >
conectar.
10. En Gallery2, agregue un control de cuadro combinado , asegúrese de que se llama ComboBox1y, a
continuación, establezca su propiedad Items en Contacts.
11. En la pestaña propiedades , establezca Permitir selección múltiple en desactivado.

12. Inserte un icono Agregar y establezca su propiedad alseleccionar en esta fórmula:

Relate( Gallery1.Selected.Contacts; ComboBox1.Selected )

Con esta aplicación, los usuarios ahora pueden relacionar libremente y desrelacionar un conjunto de contactos
con cada producto.
Para agregar un contacto a un producto, seleccione el contacto en el cuadro combinado de la parte
inferior de la pantalla y, a continuación, seleccione el icono Agregar .
Para quitar un contacto de un producto, seleccione el icono Cancelar del contacto.
A diferencia de uno a varios, una relación de varios a varios permite a los usuarios asociar el mismo
contacto con varios productos.

En orden inverso: relacionar y desrelacionar productos con varios contactos


Las relaciones de varios a varios son simétricas. Puede extender el ejemplo para agregar productos a un contacto
y después alternar entre las dos pantallas para mostrar cómo aparece la relación desde cualquier dirección.
1. Establezca la propiedad divisible de Screen1 en Actualizar (productos) .
Cuando se actualiza una relación de uno a varios o de varios a varios, solo se actualizan los datos de la
entidad del primer argumento de la llamada relacionada o no relacionada . La segunda debe
actualizarse manualmente si desea cambiar entre las pantallas de esta aplicación.

2. Screen1duplicado.
El duplicado se denominará Screen1_1 y formará la base para examinar las relaciones del lado de los
contactos.
3. Para crear la vista inversa, cambie estas fórmulas en los controles de Screen1_1:
Screen1_1. divisible = Refresh( Contacts )
Gallery1_1. Items = Contacts
Title1_1. Text = ThisItem.'Full Name'
Label1_1. Text = "Selected Contact Products"
Gallery2_1. Items = Gallery1_1.Selected.Products
Title2_1. Text = ThisItem.Name
Icon1_1. Select = Unrelate( Gallery1_1.Selected.Products; ThisItem )
ComboBox1_1. Items = Products
Icon2_1. Select = Relate( Gallery1_1.Selected.Products; ComboBox1_1.Selected )
El resultado tendrá un aspecto muy similar al de la pantalla anterior, pero se incluye en la relación del lado
de los contactos .

4. Inserte un icono de flechas hacia arriba y establezca su propiedad Alseleccionar en Navigate


(Screen1, None) . Haga lo mismo en Screen1 con la fórmula navigate (Screen1_1, None) .
Con esta nueva pantalla, los usuarios pueden agregar un contacto a un producto y, a continuación, pasar a una
vista de contactos y ver el producto asociado. Las relaciones son simétricas y se comparten entre las dos
pantallas.
Funciones Update y UpdateIf en PowerApps
08/10/2019 • 7 minutes to read

Actualiza los registros de un origen de datos.

Descripción
Función Update
Use la función Update para reemplazar todo un registro en un origen de datos. En cambio, las funciones UpdateIf
y Patch modifican uno o varios valores de un registro, y dejan los demás valores como están.
En el caso de una colección, tiene que coincidir todo el registro. Las colecciones permiten registros duplicados, por
lo que podrían coincidir varios registros. Puede usar el argumento All para actualizar todas las copias de un
registro; en caso contrario, se actualiza solo una copia del registro.
Si el origen de datos genera automáticamente un valor de columna, el valor de esa columna debe confirmarse.
Función UpdateIf
Use la función UpdateIf para modificar uno o varios valores de uno o más registros que coincidan con una o
varias condiciones. Cada condición puede ser cualquier fórmula cuyo resultado sea true o false, y puede hacer
referencia a columnas del origen de datos por su nombre. La función evalúa la condición para cada registro y
modifica los registros cuyo resultado sea true.
Para especificar una modificación, use un registro de cambio que contenga los nuevos valores de la propiedad. Si
proporciona este registro de cambio en línea entre llaves, las fórmulas de propiedad pueden hacer referencia a las
propiedades del registro que se van a modificar. Puede usar este comportamiento para modificar registros en
función de una fórmula.
De forma similar a UpdateIf, también puede usar la función Patch para cambiar columnas específicas de un
registro sin que afecte a otras columnas.
Tanto Update como UpdateIf devuelven el origen de datos modificado como una tabla. Debe usar estas funciones
en una fórmula de comportamiento.
Delegación
Cuando se usan con un origen de datos, estas funciones no se pueden delegar. Solo se recuperará la primera parte
del origen de datos, y después se aplicará la función. Es posible que el resultado no represente la historia completa.
Aparecerá una advertencia en el momento de la creación para recordarle esta limitación y para sugerirle un cambio
a alternativas delegables siempre que sea posible. Para obtener más información, consulte la información general
sobre delegación

Sintaxis
Update( DataSource; OldRecord; NewRecord [; All ] )
DataSource: requerido. Origen de datos que contiene el registro que desea reemplazar.
OldRecord: requerido. Registro que se va a reemplazar.
NewRecord: requerido. Registro de reemplazo. No es un registro de cambio. Se reemplaza todo el registro y
propiedades que faltan contendrán blank.
Todo: opcional. En una colección, el mismo registro puede aparecer más de una vez. Especifique el argumento
All para quitar todas las copias del registro.
UpdateIf( DataSource; Condition1; ChangeRecord1 [; Condition2; ChangeRecord2; ... ] )
DataSource: requerido. Origen de datos que contiene el registro o los registros que desea modificar.
Condition(s) : requerido. Fórmula que se evalúa como true para el registro o los registros que desea modificar.
Puede usar nombres de columna de DataSource en la fórmula.
ChangeRecord (s) : requerido. Para cada condición, un registro de cambio con los nuevos valores de propiedad
que se aplicarán a los registros de DataSource que cumplan la condición. Si proporciona el registro en línea
entre llaves, los valores de propiedad del registro existente pueden utilizarse en las fórmulas de propiedad.

Ejemplos
En estos ejemplos, va a reemplazar o modificar registros de un origen de datos llamado IceCream, que comienza
con los datos de esta tabla:

FÓRMULA DESCRIPCIÓN RESULTADO

Update( IceCream; Reemplaza un registro del origen de


First( Filter( IceCream; Flavor="Choc datos.
olate" ) );
{ ID: 1; Flavor: "Mint Chocolate"; Qu
antity:150 } )

El origen de datos IceCream se ha


modificado.

UpdateIf( IceCream; Quantity > 175; Modifica los registros con un valor de
{ Quantity: Quantity + 10 } ) Quantity superior a 150. El campo
Quantity se incrementa en 10, y no se
modifica ningún otro campo.

El origen de datos IceCream se ha


modificado.

Update( IceCream; Reemplaza un registro del origen de


First( Filter( IceCream; datos. El registro de reemplazo no
Flavor="Strawberry" ) ); contiene la propiedad Quantity, por lo
{ ID: 3; Flavor: "Strawberry Swirl"} ) que el valor de esta propiedad será
blank en el resultado.

El origen de datos IceCream se ha


modificado.

UpdateIf( IceCream; true; Establece en 0 el valor de la propiedad


{ Quantity: 0 } ) Quantity de todos los registros del
origen de datos.

El origen de datos IceCream se ha


modificado.
Paso a paso
1. Importe o cree una colección denominada Inventory y muéstrela en una galería, como se describe en el
artículo sobre la visualización de datos en una galería.
2. Asigne el nombre ProductGallery a la galería.
3. Agregue un control deslizante llamado UnitsSold y establezca su propiedad Max en esta expresión:
ProductGallery.Selected.UnitsInStock
4. Agregue un botón y establezca su propiedad OnSelect en esta fórmula:
UpdateIf(Inventory; ProductName = ProductGallery.Selected.ProductName;
{UnitsInStock:UnitsInStock-UnitsSold.Value})
5. Presione F5, seleccione un producto de la galería, especifique un valor con el control deslizante y, a
continuación, seleccione el botón.
El número de unidades en existencias del producto se reduce en la cantidad especificada.
Función UpdateContext de PowerApps
26/11/2019 • 10 minutes to read

Crea o actualiza variables de contexto de la pantalla actual.

Información general
Use la función UpdateContext para crear una variable de contexto, que guarda temporalmente un
fragmento de información, como el número de veces que el usuario ha seleccionado un botón o el
resultado de una operación de datos.
El ámbito de las variables de contexto es una pantalla, lo que significa que no se puede generar una
fórmula que haga referencia a una variable de contexto de otra pantalla. Si usó otra herramienta de
programación, se puede pensar en una variable de contexto como en una variable local. Use la función Set
para trabajar con variables globales que estén disponibles en toda la aplicación.
PowerApps se basa en fórmulas que se recalculan automáticamente a medida que el usuario interactúa
con una aplicación. Las variables de contexto no tienen esta ventaja y pueden hacer que la aplicación sea
más difícil de crear y comprender. Antes de utilizar una variable de contexto, repase cómo trabajar con
variables.

Descripción
Para crear o actualizar una variable de contexto, pase un solo registro a la función UpdateContext. En
cada registro, especifique el nombre de un columna, que defina o coincida con el nombre de la variable, y
el valor en el que va a establece esa variable.
Si especifica el nombre de una variable que ha definido previamente, UpdateContext establece el
valor de la variable en el valor que especifique.
Si especifica el nombre de una variable que no existe todavía, UpdateContext crea una variable con
ese nombre y establece el valor de esa variable en el valor que especifique.
Si previamente se ha definido una variable pero no se especifica en esta fórmula de UpdateContext
específica, su valor sigue siendo el mismo.
Se pueden crear implícitamente variables de contexto mediante la función UpdateContext o Navigate.
No es necesaria ninguna declaración explícita. Si quita todas las referencias de UpdateContext y
Navigate a una variable de contexto, posteriormente, esa variable de contexto dejará de existir. Para borrar
una variable, establezca su valor en el resultado de la función Blank.
Puede ver los valores de las variables, las definiciones y los usos con la vista Variables del menú Archivo en
el entorno de creación.
Para hacer referencia a una variable de contexto en una fórmula, se usa el nombre de columna de la
variable. Por ejemplo, UpdateContext ({ShowLogo: true}) crea una variable de contexto llamada
ShowLogo y establece su valor en true. Después, puede usar el valor de esta variable de contexto con el
nombre ShowLogo en una fórmula. Puede escribir ShowLogo como fórmula para la propiedad Visible
de un control de imagen, y mostrar u ocultar ese control en función de si el valor de la variable de contexto
es true o false.
Tal y como se muestra en los ejemplos más adelante en este tema, las variables de contexto pueden
contener distintos tipos de información, incluidos los siguientes:
un valor único
un registro
una tabla
una referencia de objeto
el resultado de una fórmula
Una variable de contexto guarda su valor hasta que se cierra la aplicación. Si define una variable de
contexto y establece su valor en una pantalla concreta, esa información permanece intacta aunque el
usuario cambie a otra pantalla. Una vez que se cierre la aplicación, el valor de la variable de contexto se
perderá y deberá volver a crearlo al cargar la aplicación de nuevo.
El ámbito de una variable de contexto se limita a una pantalla. Si desea definir una variable de contexto en
una pantalla y modificarla desde otra pantalla, debe crear una fórmula que se basa en la función Navigate
. O bien, use una variable global.
UpdateContext no devuelve ningún valor y solo se puede usar en una fórmula de comportamiento.

Sintaxis
UpdateContext( UpdateRecord )
UpdateRecord: requerido. Registro que contiene el nombre de al menos una columna y un valor para
esa columna. Se crea o se actualiza una variable de contexto para cada columna y valor que especifique.
UpdateContext( { ContextVariable1: Value1 [; ContextVariable2: Value2 [; ... ] ] } )
ContextVariable1: requerido. Nombre de la variable de contexto que se va a crear o actualizar.
Value1: requerido. Valor que se asigna a la variable de contexto.
ContextVariable2: Value2, ...: opcional. Variables de contexto adicionales que se van a crear o actualizar,
y sus valores.

Ejemplos
FÓRMULA DESCRIPCIÓN RESULTADO

UpdateContext( { Counter: 1 } ) Crea o modifica la variable de Counter tiene el valor 1. Puede


contexto Counter y establece su hacer referencia a esa variable con el
valor en 1. nombre Counter en una fórmula.

UpdateContext( { Counter: 2 } ) Establece el valor de la variable de Counter tiene el valor 2.


contexto Counter del ejemplo
anterior en 2.

UpdateContext( Crea o modifica las variables de Name tiene el valor Lily, y Score
{ Name: "Lily"; Score: 10 } ) contexto Name y Score, y establece tiene el valor 10.
sus valores en Lily y 10,
respectivamente.
FÓRMULA DESCRIPCIÓN RESULTADO

UpdateContext( Crea o modifica la variable de Person tiene el valor del registro


{ Person: { Name: "Milton"; contexto Person y establece su valor { Name: "Milton";
Address: "1 Main St" } } ) en un registro. El registro contiene Address: "1 Main St" } } .
dos columnas, llamadas Name y
Address. El valor de la columna Haga referencia a este registro como
Name es Milton, y el valor de la un todo con el nombre Person, o
columna Address es 1 Main St. haga referencia a una columna
individual de este registro con
Person.Name o Person.Address.

UpdateContext( { Person: Trabaja con la función Patch para Person ahora tiene el valor del
Patch( Person; {Address: "2 Main actualizar la variable de contexto registro { Name: "Milton";
St" } ) } ) Person y establece el valor de la Address: "2 Main St" } } .
columna Address en 2 Main St.

Ejemplo paso a paso


1. Asigne un nombre a la pantalla predeterminada Origen, agregue otra pantalla y asígnele el nombre
Destino.
2. En la pantalla Origen, agregue dos botones y establezca sus propiedades Text de forma que una
sea Inglés y la otra Español.
3. Establezca la propiedad OnSelect del botón Inglés en esta expresión:
Navigate(Target; ScreenTransition.Fade; {Language:"English"})
4. Establezca la propiedad OnSelect del botón Español en esta expresión:
Navigate(Target; ScreenTransition.Fade; {Language:"Spanish"})
5. En la pantalla Destino, agregue una etiqueta y establezca su propiedad Text en esta expresión:
If(Language="Inglés"; "Hello!"; "¡Hola!")
6. En la pantalla Destino, seleccione Formas en la pestaña Insertar y seleccione la flecha Anterior.
7. Establezca la propiedad OnSelect de la flecha Anterior en esta fórmula:
Navigate(Source; ScreenTransition.Fade)
8. En la pantalla Origen, presione F5 y seleccione el botón de cualquiera de estos idiomas.
En la pantalla Destino, la etiqueta aparece en el idioma correspondiente a botón que ha
seleccionado.
9. Seleccione la flecha Anterior para volver a la pantalla Origen y seleccione el botón del otro idioma.
En la pantalla Destino, la etiqueta aparece en el idioma correspondiente a botón que ha
seleccionado.
10. Presione Esc para volver al área de trabajo predeterminada.
Otro ejemplo
Funciones Update y UpdateIf en PowerApps
08/10/2019 • 7 minutes to read

Actualiza los registros de un origen de datos.

Descripción
Función Update
Use la función Update para reemplazar todo un registro en un origen de datos. En cambio, las funciones
UpdateIf y Patch modifican uno o varios valores de un registro, y dejan los demás valores como están.
En el caso de una colección, tiene que coincidir todo el registro. Las colecciones permiten registros
duplicados, por lo que podrían coincidir varios registros. Puede usar el argumento All para actualizar todas
las copias de un registro; en caso contrario, se actualiza solo una copia del registro.
Si el origen de datos genera automáticamente un valor de columna, el valor de esa columna debe
confirmarse.
Función UpdateIf
Use la función UpdateIf para modificar uno o varios valores de uno o más registros que coincidan con una
o varias condiciones. Cada condición puede ser cualquier fórmula cuyo resultado sea true o false, y puede
hacer referencia a columnas del origen de datos por su nombre. La función evalúa la condición para cada
registro y modifica los registros cuyo resultado sea true.
Para especificar una modificación, use un registro de cambio que contenga los nuevos valores de la
propiedad. Si proporciona este registro de cambio en línea entre llaves, las fórmulas de propiedad pueden
hacer referencia a las propiedades del registro que se van a modificar. Puede usar este comportamiento
para modificar registros en función de una fórmula.
De forma similar a UpdateIf, también puede usar la función Patch para cambiar columnas específicas de
un registro sin que afecte a otras columnas.
Tanto Update como UpdateIf devuelven el origen de datos modificado como una tabla. Debe usar estas
funciones en una fórmula de comportamiento.
Delegación
Cuando se usan con un origen de datos, estas funciones no se pueden delegar. Solo se recuperará la
primera parte del origen de datos, y después se aplicará la función. Es posible que el resultado no represente
la historia completa. Aparecerá una advertencia en el momento de la creación para recordarle esta limitación
y para sugerirle un cambio a alternativas delegables siempre que sea posible. Para obtener más
información, consulte la información general sobre delegación

Sintaxis
Update( DataSource; OldRecord; NewRecord [; All ] )
DataSource: requerido. Origen de datos que contiene el registro que desea reemplazar.
OldRecord: requerido. Registro que se va a reemplazar.
NewRecord: requerido. Registro de reemplazo. No es un registro de cambio. Se reemplaza todo el
registro y propiedades que faltan contendrán blank.
Todo: opcional. En una colección, el mismo registro puede aparecer más de una vez. Especifique el
argumento All para quitar todas las copias del registro.
UpdateIf( DataSource; Condition1; ChangeRecord1 [; Condition2; ChangeRecord2; ... ] )
DataSource: requerido. Origen de datos que contiene el registro o los registros que desea modificar.
Condition(s) : requerido. Fórmula que se evalúa como true para el registro o los registros que desea
modificar. Puede usar nombres de columna de DataSource en la fórmula.
ChangeRecord (s) : requerido. Para cada condición, un registro de cambio con los nuevos valores de
propiedad que se aplicarán a los registros de DataSource que cumplan la condición. Si proporciona el
registro en línea entre llaves, los valores de propiedad del registro existente pueden utilizarse en las
fórmulas de propiedad.

Ejemplos
En estos ejemplos, va a reemplazar o modificar registros de un origen de datos llamado IceCream, que
comienza con los datos de esta tabla:

FÓRMULA DESCRIPCIÓN RESULTADO

Update( IceCream; Reemplaza un registro del origen de


First( Filter( IceCream; Flavor="Ch datos.
ocolate" ) );
{ ID: 1; Flavor: "Mint Chocolate";
Quantity:150 } )

El origen de datos IceCream se ha


modificado.

UpdateIf( IceCream; Quantity > Modifica los registros con un valor de


175; { Quantity: Quantity + 10 } ) Quantity superior a 150. El campo
Quantity se incrementa en 10, y no
se modifica ningún otro campo.

El origen de datos IceCream se ha


modificado.

Update( IceCream; Reemplaza un registro del origen de


First( Filter( IceCream; datos. El registro de reemplazo no
Flavor="Strawberry" ) ); contiene la propiedad Quantity, por
{ ID: 3; Flavor: "Strawberry lo que el valor de esta propiedad será
Swirl"} ) blank en el resultado.

El origen de datos IceCream se ha


modificado.
FÓRMULA DESCRIPCIÓN RESULTADO

UpdateIf( IceCream; true; Establece en 0 el valor de la


{ Quantity: 0 } ) propiedad Quantity de todos los
registros del origen de datos.

El origen de datos IceCream se ha


modificado.

Paso a paso
1. Importe o cree una colección denominada Inventory y muéstrela en una galería, como se describe
en el artículo sobre la visualización de datos en una galería.
2. Asigne el nombre ProductGallery a la galería.
3. Agregue un control deslizante llamado UnitsSold y establezca su propiedad Max en esta expresión:
ProductGallery.Selected.UnitsInStock
4. Agregue un botón y establezca su propiedad OnSelect en esta fórmula:
UpdateIf(Inventory; ProductName = ProductGallery.Selected.ProductName;
{UnitsInStock:UnitsInStock-UnitsSold.Value})
5. Presione F5, seleccione un producto de la galería, especifique un valor con el control deslizante y, a
continuación, seleccione el botón.
El número de unidades en existencias del producto se reduce en la cantidad especificada.
Funciones Lower, Upper y Proper en PowerApps
08/10/2019 • 3 minutes to read

Convierte las letras de una cadena de texto en todo minúsculas, todo mayúsculas o en mayúsculas o
minúsculas, según corresponda.

Descripción
Las funciones Lower, Upper y Proper convierten las letras de una cadena en mayúsculas o minúsculas.
Lower convierte las letras mayúsculas en minúsculas.
Upper convierte las letras minúsculas en mayúsculas.
Proper convierte la primera letra de cada palabra en mayúscula si está en minúscula o en minúscula si
está en mayúscula.
Las tres funciones omiten los caracteres que no son letras.
Si se pasa una cadena única, el valor devuelto es la versión convertida de dicha cadena. Si se pasa una tabla
de una columna que contiene cadenas, el valor devuelto es una tabla de una columna de cadenas
convertidas. Si tiene una tabla con varias columnas, puede convertirla en una tabla de una sola columna,
como se describe en cómo trabajar con tablas.

Sintaxis
Lower( String )
Upper( String )
Proper( String )
String: requerido. La cadena que se va a convertir.
Lower( SingleColumnTable )
Upper( SingleColumnTable )
Proper( SingleColumnTable )
SingleColumnTable: requerido. Una tabla de una columna de cadenas para convertir.

Ejemplos
Cadena única
En los ejemplos de esta sección se usa un control de entrada de texto, llamado Author, como origen de
datos. El control contiene la cadena "E". E. CummINGS".

FÓRMULA DESCRIPCIÓN RESULTADO

Lower( Author.Text ) Convierte las letras mayúsculas de la "e. e. cummings"


cadena a minúsculas.

Upper( Author.Text ) Convierte las letras minúsculas de la "E. E. CUMMINGS"


cadena a mayúsculas.
FÓRMULA DESCRIPCIÓN RESULTADO

Proper( Author.Text ) Convierte la primera letra de cada "E. E. Cummings"


palabra a mayúscula si está en
minúscula y convierte cualquier otra
letra que esté en mayúsculas a
minúsculas.

Tabla de una sola columna


Los ejemplos de esta sección convierten las cadenas de la columna Address del origen de datos People,
que contiene estos datos:

Cada fórmula devuelve una tabla de una columna que contiene las cadenas convertidas.

FÓRMULA DESCRIPCIÓN RESULTADO

Lower( Convierte cualquier letra que está en


ShowColumns( People; "Address" minúscula a mayúscula.
))

Upper( Convierte cualquier letra que está en


ShowColumns( People; "Address" minúscula a mayúscula.
))

Proper( Convierte la primera letra de una


ShowColumns( People; "Address" palabra en minúsculas a mayúsculas
)) y convierte cualquier otra letra que
esté en mayúsculas a minúsculas.

Ejemplo paso a paso


1. Agregue un control Entrada de texto y denomínelo Origen.
2. Agregue una etiqueta y establezca su propiedad Text en esta función:
Proper(Source.Text)
3. Presione F5 y, a continuación, escriba WE ARE THE BEST! en el cuadro Origen.
La etiqueta muestra We Are The Best!
Función User en PowerApps
07/10/2019 • 2 minutes to read

Muestra información sobre el usuario actual.

Descripción
La función User muestra un registro de información sobre el usuario actual:

PROPIEDAD DESCRIPCIÓN

User().Email Dirección de correo electrónico del usuario actual.

User().FullName Nombre completo del usuario actual, incluidos nombres y


apellidos.

User().Image Imagen del usuario actual. Será una URL de imagen con
formato "blob:identificador". Establezca la propiedad Image
del control Imagen en este valor para mostrar la imagen en la
aplicación.

NOTE
La información que se devuelve corresponde al usuario actual de PowerApps. Coincidirá con la información de "cuenta" que
aparece en los reproductores y estudio de PowerApps, que se puede encontrar fuera de toda aplicación creada. Es posible
que no coincida con la información del usuario actual en Office 365 u otros servicios.

Sintaxis
User()

Ejemplos
El usuario actual de PowerApps tiene la información siguiente:
Nombre completo: "John Doe"
Dirección de correo electrónico: "john.doe@contoso.com"

Imagen:

FÓRMULA DESCRIPCIÓN RESULTADO

User() Registro de toda la información del { FullName: "John Doe",


usuario actual de PowerApps. Email: "john.doe@contoso.com",
Image: "blob:1234...5678" }
FÓRMULA DESCRIPCIÓN RESULTADO

User().Email La dirección de correo electrónico del "john.doe@contoso.com"


usuario actual de PowerApps.

User().FullName El nombre completo del usuario actual "John Doe"


de PowerApps.

User().Image La URL de imagen del usuario actual de "blob:1234...5678"


PowerApps. Establezca la propiedad
Image del control Imagen en este Con ImageControl.Image:
valor para mostrar la imagen en la
aplicación.
Función Validate en PowerApps
08/10/2019 • 4 minutes to read

La función Validate comprueba si el valor de una única columna o un registro completo es válido para un
origen de datos.

Descripción
Antes de que un usuario envíe un cambio de datos, puede proporcionar información inmediata sobre la
validez de ese envío, lo que se traduce en una mejor experiencia de usuario.
Los orígenes de datos pueden proporcionar información sobre qué constituyen valores válidos en un
registro. Esta información puede incluir muchas restricciones, como en estos ejemplos:
si una columna requiere un valor
qué longitud puede tener una cadena de texto
cuál puede ser el valor más alto y más bajo de un número
cuál puede ser la fecha más temprana y la más tardía
La función Validate usa esta información para determinar si un valor es válido y para devolver el
correspondiente mensaje de error si no lo es. Puede usar la función DataSourceInfo para ver la misma
información que usa Validate.
Los orígenes de datos varían en la cantidad de información de validación que proporcionan; incluso pueden
no ofrecer ninguna. Validate solo puede verificar valores basándose en esta información. Incluso si
Validate no detecta ningún problema, es posible que se siga produciendo un error al aplicar el cambio de
datos. Puede usar la función Errors para obtener información sobre el error.
Si Validate encuentra un problema, la función devuelve un mensaje de error que puede mostrar al usuario
de la aplicación. Si todos los valores son válidos, Validate devuelve blank. Cuando trabaja con una
colección que no tiene ninguna información de validación, los valores siempre son válidos.

Sintaxis
Validate( DataSource; Column; Value )
DataSource: requerido. El origen de datos con el que realizar la validación.
Column: requerido. La columna que se va a validar.
Value: requerido. El valor de la columna seleccionada que se debe validar.
Validate( DataSource; OriginalRecord; Updates )
DataSource: requerido. El origen de datos con el que realizar la validación.
OriginalRecord: requerido. El registro con el que se van a validar las actualizaciones.
Updates: requerido. Los cambios que se van a aplicar al registro original.

Ejemplos
Para estos ejemplos, los valores de la columna Percentage del origen de datos Scores deben estar
comprendidos entre 0 y 100, ambos incluidos. Si los datos pasan la validación, la función devuelve blank.
En caso contrario, la función devuelve un mensaje de error.
Validar con una sola columna
FÓRMULA DESCRIPCIÓN RESULTADO

Validate( Scores; Percentage; 10 ) Comprueba si 10 es un valor válido blank


para la columna Percentage del
origen de datos Scores.

Validate( Scores; Percentage; 120 Comprueba si 120 es un valor válido "Los valores deben estar
) para la columna Percentage del comprendidos entre 0 y 100".
origen de datos Scores.

Validar con un registro completo


FÓRMULA DESCRIPCIÓN RESULTADO

Validate( Scores; EditRecord; Comprueba si los valores de todas blank


Gallery.Updates ) las columnas son válidos para el
origen de datos Puntuaciones. En
este ejemplo, el valor de la columna
Porcentaje es 10.

Validate( Scores; EditRecord; Comprueba si los valores de todas "Los valores deben estar
Gallery.Updates ) las columnas son válidos para el comprendidos entre 0 y 100".
origen de datos Puntuaciones. En
este ejemplo, el valor de la columna
Porcentaje es 120.
Función Value en PowerApps
08/10/2019 • 3 minutes to read

Convierte una cadena de texto en un número.

Descripción
La función Value convierte una cadena de texto que contiene caracteres numéricos en un valor
numérico. Use esta función cuando necesite realizar cálculos con los números que los usuarios escriben
como texto.
Los distintos idiomas interpretan los signos , y . de manera diferente. De manera predeterminada, el
texto se interpreta en el idioma del usuario actual. Para especificar el idioma que se usará con una
etiqueta de idioma, puede utilizar las mismas etiquetas de lenguaje que devuelve la función Language .
Notas sobre el formato de la cadena:
La cadena puede tener como prefijo el símbolo de moneda del idioma actual. El símbolo de moneda
se omite. Los símbolos de moneda de los demás idiomas no se omiten.
La cadena se puede incluir un signo de porcentaje ( % ) al final, que indica que es un porcentaje. El
número se dividirá entre 100 antes de devolverse. No se pueden mezclar porcentajes y símbolos de
moneda.
La cadena puede estar en notación científica; 12 x 103 se expresa como "12e3".
Si el número no tiene el formato correcto, Value devolverá un valor blank.
Para convertir valores de fecha y hora, use las funciones DateValue, TimeValue o DateTimeValue.

Sintaxis
Value( String [; LanguageTag ] )
String: requerido. Cadena que se convertirá en un valor numérico.
LanguageTag: opcional. Etiqueta del idioma en el que se va a analizar la cadena. Si no se especifica, se
usa el idioma del usuario actual.

Ejemplos
El usuario que ejecuta estas fórmulas se encuentra en Estados Unidos y seleccionó inglés como idioma.
La función Language muestra "en-US".

FÓRMULA DESCRIPCIÓN RESULTADO

Value( "123.456" ) Se usará el idioma predeterminado 123.456


"en-US", que utiliza un punto como
separador decimal.

Value( "123.456"; "es-ES" ) "es-es" es la etiqueta de idioma 123456


para español de España. En España,
el punto es el separador de miles.
FÓRMULA DESCRIPCIÓN RESULTADO

Value( "123,456" ) Se usará el idioma predeterminado 123456


"en-US", que utiliza una coma como
separador de miles.

Value( "123,456"; "es-ES" ) "es-es" es la etiqueta de idioma 123.456


para español de España. En España,
la coma es el separador decimal.

Value( "12.34%" ) El signo de porcentaje al final de la 0.1234


cadena indica que se trata de un
porcentaje.

Value( "$ 12.34" ) Se omite el símbolo de moneda del 12.34


idioma actual.

Value( "24e3" ) Notación científica de 12 x 103 . 24000


Funciones Average, Max, Min, StdevP, Sum y
VarP de PowerApps
08/10/2019 • 4 minutes to read

Funciones de agregado que resumen un conjunto de números.

Descripción
La función Average calcula el promedio, o media aritmética, de los argumentos.
La función Max encuentra el valor máximo.
La función Min encuentra el valor mínimo.
La función Sum calcula la suma de los argumentos.
La función StdevP calcula la desviación estándar de los argumentos.
La función VarP calcula la varianza de los argumentos.
Puede proporcionar los valores de estas funciones como:
Argumentos independientes. Por ejemplo, Sum ( 1; 2; 3 ) da 6 como resultado.
Una tabla y una fórmula para operar sobre esa tabla. La suma total se calculará según los valores
de la fórmula para cada registro.
Los campos de registro que se están procesando actualmente estarán disponibles en la formula. Solo
tiene que hacer referencia a los campos por su nombre, como con cualquier otro valor. También
puede hacer referencia a propiedades de control y a otros valores desde toda la aplicación. Para
obtener más detalles, vea los ejemplos siguientes y trabajar con el ámbito de registros.
Estas funciones solo operan sobre valores numéricos. Se omiten otros tipos de valores, como
cadenas o registros. Use la función Value para convertir en número una cadena.
Las funciones Average, Max, Min y Sum se pueden delegar cuando se usan con un origen de datos
que admite la delegación de dichas funciones. Sin embargo, StdevP y VarP no se puede delegar en
ningún origen de datos. Si no se admite la delegación, solo se recuperará la primera parte de los
datos y, después, la función se aplicará localmente. Es posible que el resultado no represente la
situación completa. Aparece una advertencia de delegación durante la creación para recordarle esta
limitación y sugerirle que cambie a alternativas que puedan delegarse siempre que sea posible. Para
más información, consulte la introducción a la delegación.

Sintaxis
Average( NumericalFormula1; [ NumericalFormula2; ... ] )
Max( NumericalFormula1; [ NumericalFormula2; ... ] )
Min( NumericalFormula1; [ NumericalFormula2; ... ] )
Sum ( NumericalFormula1; [ NumericalFormula2; ... ] )
StdevP ( NumericalFormula1; [ NumericalFormula2; ... ] )
VarP ( NumericalFormula1; [ NumericalFormula2; ... ] )
NumericalFormula (s) : requerido. Los valores numéricos en que se va a operar.
Average( Table; NumericalFormula )
Max( Table; NumericalFormula )
Min( Table; NumericalFormula )
Sum ( Table; NumericalFormula )
StdevP ( Table; NumericalFormula )
VarP ( Table; NumericalFormula )
Table: requerido. La tabla sobre la cual se opera.
NumericalFormula: requerido. La fórmula que se evalúa en cada registro. El resultado de esta
fórmula se usa para la agregación. Puede usar columnas de la tabla en la fórmula.

Ejemplos
Paso a paso
Imaginemos que tiene un origen de datos llamado Sales que contiene una columna CostPerUnit y
una columna UnitsSold, y establece la propiedad Text de una etiqueta en esta función:
Sum (Sales; CostPerUnit * UnitsSold)
Para mostrar las ventas totales, la etiqueta multiplicaría los valores de esas columnas para cada
registro y luego agregaría juntos los resultados de todos los registros:

Pongamos otro ejemplo: imaginemos que tiene controles deslizantes llamados Slider1, Slider2 y
Slider3 y una etiqueta con la propiedad Text establecida en esta fórmula:
Sum (Slider1.Value; Slider2.Value; Slider3.Value)
La etiqueta mostraría la suma de todos los valores en los que se establecieron los controles
deslizantes.
Funciones EditForm, NewForm,
SubmitForm, ResetForm y ViewForm
de PowerApps
08/10/2019 • 10 minutes to read

Vea, edite o cree un elemento, guarde el contenido y restablezca los controles de un


control Editar formulario .

Información general
Estas funciones cambian el estado del control Editar formulario. El control de
formulario puede estar en uno de estos modos:

MODO DESCRIPCIÓN

FormMode.Edit El formulario se rellena con un registro


existente y el usuario puede modificar los
valores de los campos. Una vez que haya
finalizado, el usuario puede guardar los
cambios en el registro.

FormMode.New El formulario se rellena con los valores


predeterminados y el usuario puede
modificar los valores de los campos. Una vez
que haya finalizado, el usuario puede
agregar el registro al origen de datos.

FormMode.View El formulario se rellena con un registro


existente pero el usuario no puede modificar
los valores de los campos.

Descripción
Estas funciones a menudo se invocan desde la fórmula OnSelect de un control
Botón o Imagen para que el usuario pueda guardar las modificaciones,
abandonarlas o crear un registro. También puede usar conjuntamente controles y
estas funciones para crear una solución completa.
Estas funciones no devuelven ningún valor.
SubmitForm
Use la función SubmitForm de la propiedad OnSelect de un control Botón para
guardar los cambios de un control Formulario en el origen de datos.
Antes de enviar cualquier cambio, esta función comprueba problemas de validación
con cualquier campo que se haya marcado como requerido o que tenga una o más
restricciones en su valor. Este comportamiento es idéntico al de la función Validate
.
SubmitForm también comprueba la propiedad Valid del control Formulario, que
es una agregación de todas las propiedades Valid de los controles Card que
contiene el control Formulario. Si se produce un problema, no se envían los datos y
las propiedades Error y ErrorKind del control Formulario se establecen en
consecuencia.
Si se supera la validación, SubmitForm envía el cambio al origen de datos.
Si se realiza correctamente, se ejecutará el comportamiento OnSuccess del
formulario y se borrarán las propiedades Error y ErrorKind . Si el formulario se
encontraba en modo FormMode.New, se devolverá al modo FormMode.Edit.
Si no se realiza correctamente, se ejecutará el comportamiento OnFailure del
formulario y se establecerán las propiedades Error y ErrorKind en
consecuencia. El modo del formulario no se modifica.
EditForm
La función EditForm cambia el modo del control Formulario a FormMode.Edit.
En este modo, el contenido de la propiedad Elemento del control Formulario se
utiliza para rellenar el formulario. Si la función SubmitForm se ejecuta cuando el
formulario está en este modo, se cambiará un registro, no se creará.
FormMode.Edit es el valor predeterminado del control Formulario.
NewForm
La función NewForm cambia el modo del control Formulario a FormMode.New.
En este modo, el contenido de la propiedad Elemento del control Formulario se
omite y los valores predeterminados de la propiedad DataSource rellenan el
formulario. Si la función SubmitForm se ejecuta cuando el formulario está en este
modo, se creará un registro, no se cambiará.
ResetForm
La función ResetForm restablece el contenido de un formulario a sus valores
iniciales, el contenido que había antes de que el usuario realizara cambios. Si el
formulario está en modo FormMode.New, se restablecerá al modo
FormMode.Edit. El comportamiento OnReset del control Formulario también se
ejecutará. También puede restablecer controles individuales con la función Reset
pero únicamente desde dentro del formulario.
ViewForm
La función ViewForm cambia el modo del control Formulario a FormMode.View.
En este modo, el contenido de la propiedad Elemento del control Formulario se
utiliza para rellenar el formulario. Las funciones SubmitForm y ResetForm no
tienen ningún efecto cuando se está en este modo.
Propiedad DisplayMode
El modo actual se puede leer mediante la propiedad Modo. El modo determina
también el valor de la propiedad DisplayMode que pueden usar las tarjetas de
datos y controles del control de formulario. A menudo, la propiedad DisplayMode
de la tarjeta de datos se establecerá en Parent. DisplayMode (que hace referencia
al formulario) como lo hará la propiedad DisplayMode del control (que hace
referencia a la tarjeta de datos):

MODO DISPLAYMODE DESCRIPCIÓN


MODO DISPLAYMODE DESCRIPCIÓN

FormMode.Edit DisplayMode.Edit Las tarjetas de datos y los


controles son editables, y
están listos para aceptar los
cambios de un registro.

FormMode.New DisplayMode.Edit Las tarjetas de datos y los


controles son editables, y
están listos para aceptar un
nuevo registro.

FormMode.View DisplayMode.View Las tarjetas de datos y los


controles no son editables y
están optimizados para su
visualización.

Sintaxis
SubmitForm ( FormName )
FormName: requerido. Control Formulario para enviar al origen de datos.
EditForm ( FormName )
FormName: requerido. Control Formulario para cambiar al modo
FormMode.Edit.
NewForm ( FormName )
FormName: requerido. Control Formulario para cambiar al modo
FormMode.New.
ResetForm ( FormName )
FormName: requerido. Control Formulario para restablecer los valores iniciales.
También cambia el formulario del modo FormMode.New al modo
FormMode.Edit.
ViewForm ( FormName )
FormName: requerido. Control Formulario para cambiar al modo
FormMode.View.

Ejemplos
Consulte Formularios de datos para obtener ejemplos completos.
1. Agregue un control Botón, establezca la propiedad Text para mostrar
Guardar y establezca la propiedad OnSelect en esta fórmula:
SubmitForm ( EditForm )
2. Establezca la propiedad OnFailure de un control Formulario blank y la
propiedad OnSuccess en esta fórmula:
Back()
3. Asigne el nombre ErrorText a un control Label y establezca su propiedad
Text en esta fórmula:
EditForm.Error
Cuando el usuario selecciona el botón Guardar, los cambios del control
Formulario se envían al origen de datos subyacente.
Si el envío se realiza correctamente, los cambios se guardan o, si el
control Formulario está en modo New, se creará un registro. ErrorText
es blank y vuelve a aparecer la pantalla anterior.
Si se produce un error en el envío, ErrorText mostrará un mensaje de
error descriptivo y la pantalla actual permanecerá visible para que el
usuario pueda corregir el problema e intentarlo de nuevo.
4. Agregue un control Botón, establezca su propiedad Text para que muestre
Cancelar y establezca su propiedad OnSelect en esta fórmula:
ResetForm ( EditForm );; Back()
Si el usuario selecciona el botón Cancelar, los valores del control
Formulario se restablecen a su estado original, el estado que tenían antes de
que el usuario empezara a editarlo, vuelve a aparecer la pantalla anterior y
se devuelve el control Formulario al modo Edit si estaba en modo New.
5. Agregue un control Botón, establezca su propiedad Text para mostrar
Nuevo y establezca su propiedad OnSelect en esta fórmula:
NewForm ( EditForm );; Navigate( EditScreen; None )
Cuando el usuario selecciona el botón New, se activa el control Formulario
en modo New, los valores predeterminados del origen de datos del control
Formulario rellenan el control y aparece la pantalla que contiene el control
Formulario. Cuando se ejecuta la función SubmitForm, se crea un registro
en lugar de actualizarlo.
Funciones Day, Month, Year, Hour, Minute, Second y
Weekday en PowerApps
08/10/2019 • 4 minutes to read

Devuelve los componentes individuales de un valor de fecha y hora.

Descripción
La función Day devuelve el componente de día de un valor de fecha y hora, comprendido entre 1 y 31.
La función Month devuelve el componente de mes de un valor de fecha y hora, comprendido entre 1 y 12.
La función Year devuelve el componente de año de un valor de fecha y hora, a partir de 1900.
La función Hour devuelve el componente de hora de un valor de fecha y hora, comprendido entre 0 (12:00 a. m.) y
23 (11:00 p. m).
La función Minute devuelve el componente de minuto de un valor de fecha y hora, comprendido entre 0 y 59.
La función Second devuelve el componente de segundo de un valor de fecha y hora, comprendido entre 0 y 59.
La función Weekday devuelve el día de la semana de un valor de fecha y hora. De forma predeterminada, el
resultado está comprendido entre 1 (domingo) y 7 (sábado). Puede especificar un intervalo diferente con un código
de la función Weekday de la semana de Microsoft Excel o un valor de enumeración de StartOfWeek:

CÓDIGO DE EXCEL ENUMERACIÓN DE STARTOFWEEK DESCRIPCIÓN

1, 17 StartOfWeek.Sunday Números del 1 (domingo) al 7 (sábado).


Predeterminado.

2, 11 StartOfWeek.Monday Números del 1 (lunes) al 7 (domingo).

3 StartOfWeek.MondayZero Números del 0 (lunes) al 6 (domingo).

12 StartOfWeek.Tuesday Números del 1 (martes) al 7 (lunes).

13 StartOfWeek.Wednesday Números del 1 (miércoles) al 7 (martes).

14 StartOfWeek.Thursday Números del 1 (jueves) al 7 (miércoles).

15 StartOfWeek.Friday Números del 1 (viernes) al 7 (jueves).

16 StartOfWeek.Saturday Números del 1 (sábado) al 7 (viernes).

Todas las funciones devuelven un número.


Consulte cómo trabajar con fechas y horas para más información.

Sintaxis
Day( DateTime )
Month( DateTime )
Year( DateTime )
Hour( DateTime )
Minute( DateTime )
Second( DateTime )
DateTime: requerido. Valor de fecha y hora con el que operar.
Weekday( DateTime [; WeekdayFirst ] )
DateTime: requerido. Valor de fecha y hora con el que operar.
WeekdayFirst: opcional. Código de Excel que especifica qué día comienza la semana. Si no se indica, se usará 1
(primero el domingo).

Ejemplos
En el ejemplo siguiente, la hora actual es las 3:59:37 p. m. del jueves, 9 de abril de 2015.

FÓRMULA DESCRIPCIÓN RESULTADO

Year( Now() ) Devuelve el componente de año de la 2015


fecha y hora actuales.

Month( Now() ) Devuelve el componente de mes de la 4


fecha y hora actuales.

Day( Now() ) Devuelve el componente de día de la 9


fecha y hora actuales.

Hour( Now() ) Devuelve el componente de hora de la 15


fecha y hora actuales.

Minute( Now() ) Devuelve el componente de minuto de 59


la fecha y hora actuales.

Second( Now() ) Devuelve el componente de minuto de 37


la fecha y hora actuales.

Weekday( Now() ) Devuelve el componente de día de la 5


semana de la fecha y hora actuales,
considerando al domingo como inicio de
la semana de forma predeterminada.

Weekday( Now(); 14 ) Devuelve el componente de día de la 1


semana de la fecha y hora actuales,
usando un código de Excel para
especificar el jueves como inicio de la
semana.

Weekday( Now(); StartOfWeek.Wed Devuelve el componente de día de la 2


nesday ) semana de la fecha y hora actuales,
usando una enumeración StartOfWeek
para especificar el miércoles como inicio
de la semana.
Función with en PowerApps
03/09/2019 • 9 minutes to read

Calcula valores y realiza acciones para un único registro, incluidos los registros insertados de valores con
nombre.

DESCRIPCIÓN
La función with evalúa una fórmula para un único registro. La fórmula puede calcular un valor o realizar
acciones, como modificar datos o trabajar con una conexión. Utilice la función forall para evaluar una fórmula
para todos los registros de una tabla de registros.
Los campos de registro que se están procesando actualmente estarán disponibles en la formula. Solo tiene que
hacer referencia a los campos por su nombre, como con cualquier otro valor. También puede hacer referencia a
propiedades de control y a otros valores desde toda la aplicación. Para obtener más detalles, vea los ejemplos
siguientes y trabajar con el ámbito de registros.
Use con para mejorar la legibilidad de las fórmulas complejas dividiéndolo en subfórmulas con nombre más
pequeñas. Estos valores con nombre actúan como variables locales simples que se limitan al ámbito de con. La
misma sintaxis de registro en línea que se usa con la función UpdateContext se puede utilizar con con. El uso
de con es preferible a las variables globales o de contexto, ya que son independientes, fáciles de entender y se
pueden usar en cualquier contexto de fórmula declarativo.
Use con para tener acceso a los campos del registro devueltos por funciones como, por ejemplo, patch o
Match. With contiene el valor de estas funciones lo suficientemente largo para usarse en cálculos o acciones
adicionales.
Si el argumento de registro en with es un error, la función devolverá ese error y no se evaluará la fórmula .

Sintaxis
Con ( Registro, fórmula )
Registro : requerido. Registro sobre el que se va a actuar. Para los valores de names, use la sintaxis en línea
{ name1: value1; name2: value2; ... }
Fórmula : requerido. Fórmula que se va a evaluar para el registro. La fórmula puede hacer referencia a
cualquiera de los campos de registro directamente como un ámbito de registro.

Ejemplos
Valores con nombre simples

With( { radius: 10;


height: 15 };
Pi() * (radius*radius) * height
)
// Result: 4712,38898038 (as shown in a label control)

En este ejemplo se usa un registro de valores con nombre para calcular el volumen de un cilindro. With se usa
para capturar todos los valores de entrada de forma conjunta, lo que facilita su separación del propio cálculo.
Anidado con
With( { AnnualRate: RateSlider/8/100; // slider moves in 1/8th increments and convert to decimal
Amount: AmountSlider*10000; // slider moves by 10;000 increment
Years: YearsSlider; // slider moves in single year increments; no adjustment
required
AnnualPayments: 12 }; // number of payments per year
With( { r: AnnualRate/AnnualPayments; // interest rate
P: Amount; // loan amount
n: Years*AnnualPayments }; // number of payments
r*P / (1 - (1+r)^-n) // standard interest calculation
)
)

Este ejemplo se anida con funciones para crear un cálculo de dos niveles para los pagos mensualesde hipotecas.
Siempre que no haya ningún conflicto, todos los externos con valores con nombre están disponibles dentro del
interior con.
Dado que los controles deslizantes solo pueden moverse en incrementos de 1, los controles deslizantes se
dividen o multiplican para crear eficazmente un incremento personalizado. En el caso de la tasa de interés,
RateSlider tiene la propiedad Max establecida en 48, dividida entre 8 para un incremento del punto de
porcentaje 1/8 y dividida entre 100 para convertir de un porcentaje a un decimal, cubriendo el intervalo del
0,125% al 6%. En el caso de la cantidad de préstamo, AmountSlider tiene la propiedad Max establecida en 60 y
se multiplica por 10.000, cubriendo el intervalo de 10.000 a 600.000.
La con se vuelve a calcular automáticamente a medida que se mueven los controles deslizantes y se muestra el
nuevo pago de préstamo. No se usa ninguna variable y no es necesario usar la propiedad onchange de los
controles deslizantes.
Estas son las instrucciones detalladas para crear esta aplicación:
1. Cree una nueva aplicación.
2. Agregue un control deslizante y asígnele el nombre RateSlider. Establezca su propiedad Max en 48.
3. Agregue un control etiqueta a la izquierda del control deslizante. Establezca su propiedad texto en "tasa de
interés:" .
4. Agregue un control etiqueta a la derecha del control deslizante. Establezca su propiedad texto en la fórmula
RateSlider/8 & " %" .
5. Agregue otro control deslizante y asígnele el nombre AmountSlider. Establezca su propiedad Max en 60.
6. Agregue un control etiqueta a la izquierda de este control deslizante. Establezca su propiedad texto en
"importe de préstamo:" .
7. Agregue un control etiqueta a la derecha de este control deslizante. Establezca su propiedad texto en la
fórmula AmountSlider/8 * 10000.
8. Agregue otro control deslizante y asígnele el nombre YearsSlider. Establezca su propiedad Max en 40.
9. Agregue un control etiqueta a la izquierda de este control deslizante. Establezca su propiedad Text en
"Number of years:" .
10. Agregue un control etiqueta a la derecha de este control deslizante. Establezca su propiedad texto en la
fórmula YearsSlider.
11. Agregue un control etiqueta y establezca su propiedad texto en la fórmula mostrada anteriormente.
12. Agregue un control etiqueta a la izquierda del último control etiqueta. Establezca su propiedad texto en
"periódico monthly payment:" .
Clave principal devuelta por la revisión

With( Patch( Orders; Defaults( Orders ); { OrderStatus: "New" } );


ForAll( NewOrderDetails;
Patch( OrderDetails; Defaults( OrderDetails );
{ Order: OrderID; // from With's first argument; primary key of Patch result
Quantity: Quantity; // from ForAll's NewOrderDetails table
ProductID: ProductID } // from ForAll's NewOrderDetails table
)
)
)

En este ejemplo se agrega un registro a la tabla Order de SQL Server. A continuación, usa la clave principal
devuelta para el pedido, devuelta por la función patch en el campo OrderID , para crear registros relacionados
en la tabla OrderDetails .
Valores extraídos con una expresión regular

With(
Match( "PT2H1M39S"; "PT(?:<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" );
Time( Value( hours ); Value( minutes ); Value( seconds ) )
)
// Result: 2:01 AM (as shown in a label control; use the Text function to see the seconds)

En este ejemplo se extraen las horas, los minutos y los segundos de un valor de duración ISO 8601 y, a
continuación, se usan estas subcoincidencias para crear un valor de fecha y hora.
Tenga en cuenta que, aunque las subcoincidencias contienen números, siguen en una cadena de texto. Utilice la
función Value para convertir en un número antes de realizar operaciones matemáticas.
Funciones Day, Month, Year, Hour, Minute, Second
y Weekday en PowerApps
08/10/2019 • 4 minutes to read

Devuelve los componentes individuales de un valor de fecha y hora.

Descripción
La función Day devuelve el componente de día de un valor de fecha y hora, comprendido entre 1 y 31.
La función Month devuelve el componente de mes de un valor de fecha y hora, comprendido entre 1 y 12.
La función Year devuelve el componente de año de un valor de fecha y hora, a partir de 1900.
La función Hour devuelve el componente de hora de un valor de fecha y hora, comprendido entre 0 (12:00
a. m.) y 23 (11:00 p. m).
La función Minute devuelve el componente de minuto de un valor de fecha y hora, comprendido entre 0 y
59.
La función Second devuelve el componente de segundo de un valor de fecha y hora, comprendido entre 0 y
59.
La función Weekday devuelve el día de la semana de un valor de fecha y hora. De forma predeterminada, el
resultado está comprendido entre 1 (domingo) y 7 (sábado). Puede especificar un intervalo diferente con un
código de la función Weekday de la semana de Microsoft Excel o un valor de enumeración de StartOfWeek:

CÓDIGO DE EXCEL ENUMERACIÓN DE STARTOFWEEK DESCRIPCIÓN

1, 17 StartOfWeek.Sunday Números del 1 (domingo) al 7


(sábado). Predeterminado.

2, 11 StartOfWeek.Monday Números del 1 (lunes) al 7 (domingo).

3 StartOfWeek.MondayZero Números del 0 (lunes) al 6 (domingo).

12 StartOfWeek.Tuesday Números del 1 (martes) al 7 (lunes).

13 StartOfWeek.Wednesday Números del 1 (miércoles) al 7


(martes).

14 StartOfWeek.Thursday Números del 1 (jueves) al 7


(miércoles).

15 StartOfWeek.Friday Números del 1 (viernes) al 7 (jueves).

16 StartOfWeek.Saturday Números del 1 (sábado) al 7 (viernes).

Todas las funciones devuelven un número.


Consulte cómo trabajar con fechas y horas para más información.
Sintaxis
Day( DateTime )
Month( DateTime )
Year( DateTime )
Hour( DateTime )
Minute( DateTime )
Second( DateTime )
DateTime: requerido. Valor de fecha y hora con el que operar.
Weekday( DateTime [; WeekdayFirst ] )
DateTime: requerido. Valor de fecha y hora con el que operar.
WeekdayFirst: opcional. Código de Excel que especifica qué día comienza la semana. Si no se indica, se
usará 1 (primero el domingo).

Ejemplos
En el ejemplo siguiente, la hora actual es las 3:59:37 p. m. del jueves, 9 de abril de 2015.

FÓRMULA DESCRIPCIÓN RESULTADO

Year( Now() ) Devuelve el componente de año de la 2015


fecha y hora actuales.

Month( Now() ) Devuelve el componente de mes de la 4


fecha y hora actuales.

Day( Now() ) Devuelve el componente de día de la 9


fecha y hora actuales.

Hour( Now() ) Devuelve el componente de hora de 15


la fecha y hora actuales.

Minute( Now() ) Devuelve el componente de minuto 59


de la fecha y hora actuales.

Second( Now() ) Devuelve el componente de minuto 37


de la fecha y hora actuales.

Weekday( Now() ) Devuelve el componente de día de la 5


semana de la fecha y hora actuales,
considerando al domingo como inicio
de la semana de forma
predeterminada.

Weekday( Now(); 14 ) Devuelve el componente de día de la 1


semana de la fecha y hora actuales,
usando un código de Excel para
especificar el jueves como inicio de la
semana.
FÓRMULA DESCRIPCIÓN RESULTADO

Weekday( Now(); StartOfWeek.W Devuelve el componente de día de la 2


ednesday ) semana de la fecha y hora actuales,
usando una enumeración
StartOfWeek para especificar el
miércoles como inicio de la semana.
Crear una aplicación de lienzo desde una solución
05/11/2019 • 6 minutes to read

Cree una aplicación desde una solución si, por ejemplo, desea implementar la aplicación en un entorno diferente.
Las soluciones pueden contener no solo aplicaciones, sino también entidades personalizadas, conjuntos de
opciones y otros componentes. Puede personalizar rápidamente un entorno de varias maneras mediante la
creación de aplicaciones y otros componentes desde una solución, exportar la solución y, a continuación,
importarla en otro entorno.
Para obtener más información acerca de las soluciones, consulte información general sobre soluciones.

Requisito previo
Para seguir los pasos de este tema, debe cambiar a un entorno que contenga una base de datos de Common Data
Service.

Crear una solución


Puede omitir este procedimiento si ya tiene una solución en la que desea crear una aplicación o a la que desea
vincular una aplicación.
1. Inicie sesión en PowerApps y, si es necesario, cambie al entorno adecuado:
Si desea crear una aplicación desde una solución, cambie a cualquier entorno que contenga una base de
datos de Common Data Service.
Si desea vincular una aplicación existente a una solución, cambie al entorno que contiene esa aplicación.
2. En la barra de navegación izquierda, seleccione soluciones.

3. En el encabezado situado debajo de la barra de título, seleccione nueva solución.

4. En la ventana que aparece, especifique un nombre para mostrar, un publicador y una versión de la solución.
Un nombre (sin espacios) se generará automáticamente en función del nombre para mostrar que
especifique, pero puede personalizar el nombre generado si lo desea. Puede especificar el publicador
predeterminado para su entorno y 1,0 para la versión si no tiene necesidades específicas en esas áreas.
5. Cerca de la esquina superior izquierda, seleccione Guardar y cerrar.

Crear una aplicación de lienzo en una solución


Puede crear una aplicación de lienzo en blanco en una solución. No se puede generar automáticamente una
aplicación de tres pantallas ni personalizar una plantilla o aplicación de ejemplo desde una solución.
1. Inicie sesión en PowerApps.
2. Si es necesario, cambie al entorno que contiene la solución en la que desea crear una aplicación de lienzo.
3. En la barra de navegación izquierda, seleccione soluciones.

4. En la lista de soluciones, seleccione la solución en la que desea crear una aplicación de lienzo.
5. En el encabezado situado debajo de la barra de título, seleccione nuevo > aplicación > Canvasy, después,
seleccione el factor de forma (teléfono o tableta) de la aplicación que desea crear.

PowerApps Studio se abre con un lienzo en blanco en otra pestaña del explorador.
6. Cree la aplicación (o realice al menos un cambio) y, a continuación, guarde los cambios.
7. En la pestaña explorador donde seleccionó la solución, seleccione listo para actualizar la lista de
componentes de la solución.

La nueva aplicación aparece en la lista de componentes de la solución. Si guarda cualquier cambio en la


aplicación, se reflejará en la versión que se encuentra en la solución.

Vincular una aplicación de lienzo existente a una solución


Si desea vincular una aplicación a una solución, ambos deben estar en el mismo entorno y la aplicación debe
haberse creado desde una solución.
1. Inicie sesión en PowerApps.
2. Si es necesario, cambie al entorno que contiene la solución a la que desea vincular una aplicación.
3. En la barra de navegación izquierda, seleccione soluciones.

4. En la lista de soluciones, seleccione la solución a la que desea vincular una aplicación.


5. En el encabezado situado debajo de la barra de título, seleccione Agregar > aplicación existente >
aplicación Canvas.
Aparece una lista de las aplicaciones de lienzo que se crearon en una solución en este entorno.
6. En la lista de aplicaciones, seleccione la aplicación que quiere vincular a la solución y, a continuación,
seleccione Agregar.

Limitaciones conocidas
Para obtener información sobre las limitaciones conocidas, consulte uso de soluciones en PowerApps.

Pasos siguientes
Cree o vincule más aplicaciones y otros componentes, como entidades, flujos y paneles, a la solución.
Exporte la solución para que pueda implementarla en otro entorno, en AppSource, etc.
Instalar la base de datos y las aplicaciones de
Northwind Traders
05/11/2019 • 8 minutes to read

Al seguir los pasos de esta serie de temas, puede detectar conceptos sobre los datos relacionales tal como se
implementan en una base de datos de ejemplo en Common Data Service. También puede explorar aplicaciones
empresariales de ejemplo, tanto de lienzo como basadas en modelos, para administrar esos datos y obtener una
experiencia práctica mediante la creación de una aplicación de este tipo. En este primer tema se explica cómo
instalar la base de datos Northwind Traders en su propio entorno y obtener acceso a las aplicaciones de ejemplo,
que puede abrir para editar para mostrar cómo se compilaron.
Northwind Traders es una organización ficticia que administra pedidos, productos, clientes, proveedores y muchos
otros aspectos de una pequeña empresa. Este ejemplo apareció con las primeras versiones de Microsoft Access y
sigue estando disponible como una plantilla de acceso.

Requisitos previos
Una licencia de PowerApps que admita Common Data Service. Puede usar una licencia de evaluación gratuita
durante 30 días.
Un entorno con una base de datos de Common Data Service. Puede crear este tipo de entorno si tiene los
permisos adecuados.

Descarga de la solución
Descargar el archivo de solución de Northwind Traders
Este archivo de solución (. zip) contiene las definiciones de entidades, conjuntos de opciones y procesos
empresariales; las aplicaciones de lienzo y controladas por modelos; y cualquier otra pieza que se use
conjuntamente.

Instalar la solución
1. Inicie sesión en PowerAppsy, a continuación, asegúrese de que está trabajando en un entorno que contiene
una base de datos Common Data Service.
2. En el panel de navegación izquierdo, seleccione solucionesy, a continuación, seleccione importar en la
barra de herramientas situada en la parte superior de la pantalla:
vista de soluciones de
3. En la página seleccionar paquete de solución , seleccione examinar.

4. Busque el archivo que ha descargado y, a continuación, seleccione abrir.


A menos que haya seleccionado una ubicación diferente, el archivo estará en la carpeta downloads.
5. Si tiene el archivo correcto (el número de versión puede variar), seleccione siguiente:

6. En la página información de la solución , seleccione siguiente si el nombre de la solución y el publicador


son correctos.
7. En la página Opciones de importación , seleccione importar para confirmar el control de mensajes del
SDK, que requiere el ejemplo:

Aparece otra página en la que se muestra el progreso de la instalación de la solución en los próximos
minutos:
Una vez finalizada la instalación, la página original muestra el resultado:

8. Haga clic en Cerrar.

Carga de los datos de ejemplo


1. Seleccione aplicacionesy, a continuación, seleccione datos de ejemplo Northwind.
Espere unos minutos si las aplicaciones Northwind no aparecen inmediatamente después de instalar la
solución:
2. Cuando la aplicación Pida permiso para interactuar con Common Data Service, seleccione permitir:

3. Una vez que la aplicación se carga y muestra que las entidades de ejemplo no contienen registros,
seleccione cargar datos para rellenar las entidades:
A medida que la aplicación carga los datos, los puntos de marzo de la parte superior de la aplicación y el
número de registros aumenta.
Las entidades se cargan en un orden específico para que se puedan establecer relaciones entre los
registros. Por ejemplo, la entidad Order Details tiene una relación de varios a uno con las entidades
Orders y Order Products , que se cargan en primer lugar.
Puede cancelar el proceso en cualquier momento seleccionando Cancelary puede quitar los datos en
cualquier momento seleccionando Quitar datos:

Cuando los datos terminan de cargarse , se muestra laúltima fila (relaciones de varios a varios) y se
vuelven a habilitar los botones cargar datos y Quitar datos :
Aplicaciones de ejemplo
La solución Northwind incluye estas aplicaciones para interactuar con estos datos:
Pedidos de Northwind (lienzo)
Pedidos de Northwind (controlados por modelos)
Abra estas aplicaciones de la misma manera que abrió la aplicación en el procedimiento anterior.
Lienzo
Esta aplicación de una sola pantalla ofrece una vista de maestro-detalle simple de la entidad Orders , donde puede
ver y editar un resumen del pedido y cada artículo de línea de un pedido. Una lista de pedidos aparece cerca del
borde izquierdo y puede seleccionar una flecha en esa lista para mostrar un resumen y los detalles de dicho
pedido. Más información: información general de la aplicación Canvas para Northwind Traders.

Controlado por modelos


Esta aplicación opera en los mismos datos (en la entidad Orders ) que la aplicación Canvas. En la lista de pedidos,
para mostrar más información sobre un pedido, seleccione su número:

Un resumen del pedido aparece en un formulario independiente:

Si se desplaza hacia abajo en el formulario, muestra los mismos elementos de línea que la aplicación Canvas:
Hágalo usted mismo
Puede seguir las instrucciones paso a paso para crear la aplicación de lienzo mostrada anteriormente en este
tema. Las instrucciones están divididas en tres partes:
1. Cree una galería de pedidos.
2. Cree un formulario de Resumen.
3. Cree una galería de detalles.
Si desea continuar, la solución contiene una aplicación de punto de partida para cada parte. En la lista de
aplicaciones, busque Northwind Orders (canvas)-Begin Part 1 , etc.
En esta información general de la aplicación se explica la interfaz de usuario, los orígenes de datos y cómo se usan
las relaciones.
Para empezar, lea la información general
Información general de la aplicación Canvas para
Northwind Traders
29/10/2019 • 10 minutes to read

Obtenga información sobre la aplicación Canvas para administrar datos relacionales en la base de datos
Northwind Traders que instaló en su entorno. Después, siga las instrucciones paso a paso en los temas siguientes
para compilar esta aplicación desde cero, con lo que se consigue experiencia práctica en el trabajo con datos
relacionales.
En este tema, descubra:
Cómo un usuario de la aplicación muestra y administra los datos relacionales en la aplicación.
Los tipos de datos de la aplicación.
Cómo se crearon las relaciones entre esos tipos de datos.
En una sola pantalla, el usuario de la aplicación puede mostrar, actualizar, crear y eliminar pedidos.

Exploración de la interfaz de usuario


Galería de pedidos
En el borde izquierdo de la aplicación, una galería muestra una lista de pedidos, incluido el número de pedido, el
estado, el nombre del cliente y el costo total del pedido. El usuario puede desplazarse por la lista para buscar un
pedido y, a continuación, Mostrar más información sobre él seleccionando la flecha del pedido. Más información:
creación de la galería de pedidos.
Formulario de Resumen
En la esquina superior derecha, un formulario resume el orden en que el usuario seleccionó en la galería de
pedidos. El resumen incluye gran parte de la misma información que la galería, pero en el resumen también se
muestran las fechas en las que se creó y se pagó el pedido, así como el nombre y la imagen del empleado que
administró el pedido. El usuario puede cambiar los datos en el formulario, guardar los cambios, cancelarlos o
eliminar el orden seleccionando un icono cerca del borde derecho de la barra de título. Más información: crear el
formulario de Resumen.
Galería de detalles
En la esquina inferior derecha, otra galería muestra información sobre qué productos contiene el pedido
seleccionado y en qué cantidades. Cada elemento de esta galería se conoce como detalle del pedido. El usuario
de la aplicación puede Agregar y eliminar cualquier elemento de la galería mediante el uso de controles en y
debajo de él. Más información: crear la galería de detalles.

Explorar los orígenes de datos


Para crear esta aplicación, se mostrarán los datos de cinco entidades y un conjunto de opciones. De hecho, la
mayoría de las áreas de esta aplicación muestran datos de varias entidades. Por ejemplo, la galería de pedidos
contiene esta información:
El número de pedido es un campo de la entidad Orders .
El estado es otro campo de la entidad pedidos , una opción de la opción Estado de pedidos establecida.
El nombre del cliente es un campo de la entidad Customers .
El costo total se calcula en función de los datos de la entidad Order Details .
El Resumen contiene parte de la misma información que la lista de pedidos, pero también contiene el nombre y
la imagen del empleado que administró el pedido. Esa información se extrae de los campos de la entidad
Employees . La galería de detalles muestra los registros en la entidad Order Details , y cada producto de estos
detalles es un registro de la entidad Order Products .

Explorar las relaciones


Puede mostrar datos de orígenes diferentes (por ejemplo, entidades) en la misma Galería o formulario porque
esas entidades tienen relaciones que se crearon automáticamente en la base de datos.
Relaciones de varios a uno
Por ejemplo, la información sobre el cliente y el empleado de cada pedido reside en las entidades Customers y
Employees . Por lo tanto, la entidad Orders tiene relaciones de varios a uno con esas entidades, ya que hay
muchos pedidos, cada uno de los cuales puede ser colocado por un solo cliente y ser administrado por un solo
empleado.
Cada pedido también tiene uno o más artículos de línea que representan los productos que el pedido contiene y
sus cantidades. Cada elemento de línea es un registro de la entidad Order Details , que extrae información sobre
cada producto de la entidad Order Products . Cada detalle identifica un solo producto, pero cada producto
puede aparecer en varios detalles. Por lo tanto, la entidad Order Details tiene una relación de varios a uno con la
entidad Order Products .
Relaciones uno a varios
Cada pedido puede contener varios elementos de línea, pero cada artículo de línea se relaciona con un único
pedido. Por lo tanto, la entidad Orders tiene una relación de uno a varios con la entidad Order Details .
Notación de puntos para las relaciones
Para Mostrar datos en función de una relación entre entidades, puede usar el selector de propiedades de punto
para recorrer una relación de una entidad a otra. Por ejemplo, cada registro de la entidad Orders extrae
información de la entidad Customers para que la galería de pedidos pueda mostrar los nombres de los clientes.
En esa Galería, configure este comportamiento estableciendo la propiedad texto de una etiqueta en esta
expresión:
ThisItem.Customer.Company

ThisItem especifica un registro en la entidad Orders y extrae información de la entidad Customers sobre el
cliente que realizó el pedido. En este caso, la expresión especifica que aparece el nombre de la empresa del
cliente. Sin embargo, se extrae todo el registro para ese cliente, por lo que puede mostrar fácilmente, por
ejemplo, una dirección de correo electrónico para ese cliente.
Como otro ejemplo de recorrido de una entidad a otra, puede especificar que una galería muestre los registros
de una entidad en función de un registro que el usuario seleccionó en otra galería y que se encuentra en otra
entidad. Para mostrar los detalles del pedido, establezca la propiedad Items de la galería de detalles en esta
expresión:
Gallery1.Selected.'Order Details'

En este caso, Gallery1. Selected especifica un registro en la entidad Orders , tal y como ThisItem hizo en el
ejemplo anterior. Sin embargo, esta expresión no extrae un solo registro como hizo la expresión anterior. En su
lugar, extrae una tabla completa de registros para mostrar el nombre y el costo por unidad de cada producto
(como se refleja en la entidad Order Products ) y la cantidad (como se refleja en la entidad Order Details ).

Hágalo usted mismo


Puede seguir las instrucciones paso a paso para crear la aplicación de lienzo Orders de Northwind. Las
instrucciones están divididas en tres partes:
1. Cree una galería de pedidos.
2. Cree un formulario de Resumen.
3. Cree una galería de detalles.
Si desea continuar, la solución contiene una aplicación de punto de partida para cada parte. En la lista de
aplicaciones, busque Northwind Orders (canvas)-Begin Part 1 , etc.
Continúe creando la galería de pedidos
Creación de una galería de pedidos en una
aplicación de lienzo
12/11/2019 • 16 minutes to read

Siga las instrucciones paso a paso para crear una galería de pedidos en una aplicación de lienzo para
administrar datos ficticios en la base de datos Northwind Traders. Este tema forma parte de una serie en la que
se explica cómo compilar una aplicación empresarial en datos relacionales en Common Data Service. Para
obtener los mejores resultados, explore estos temas en esta secuencia:
1. Crear una galería de pedidos (este tema).
2. Cree un formulario de Resumen.
3. Cree una galería de detalles.

Requisitos previos
Instale la base de datos y las aplicaciones de Northwind Traders.
Lea la información general de la aplicación Canvas para Northwind Traders.

Crear una aplicación en blanco


1. Inicie sesión en PowerAppsy, después, cree una aplicación de tableta en blanco.
2. Asigne a la aplicación el nombre que desee y, a continuación, seleccione crear.

PowerApps Studio se abre para que pueda agregar orígenes de datos y controles a la aplicación:
Agregar los datos
1. En la pestaña Ver , seleccione orígenes de datos:

2. Escriba Orders en el cuadro de búsqueda:

3. Seleccione el origen de datos de pedidos que se va a usar en la aplicación:


La entidad Orders contiene muchos campos de varios tipos:

Cada campo tiene un nombre para mostrar y un nombre, que a veces se denomina nombre lógico.
Ambos nombres hacen referencia a lo mismo. En general, usará el nombre para mostrar al compilar una
aplicación, pero algunos casos requieren el nombremás críptico, como se indica en un procedimiento.
4. Como vamos a trabajar con pantallas y controles a continuación, en PowerApps Studio vuelva a la vista
de árbol en el lado izquierdo presionando el icono de tres cuadrados apilados. Puede volver a los
orígenes de datos en cualquier momento presionando el icono del cilindro.

Crear la galería de pedidos


1. En la pestaña Insertar , seleccione Galería > vertical en blanco para agregar un control Galería , que
mostrará los pedidos.
vertical en blanco
El control se colocará en el lienzo y aparecerá un cuadro de diálogo emergente que le preguntará a qué
origen de datos se va a conectar.

2. Podríamos conectarlo directamente a los pedidos , pero en su lugar nos gustaría controlar el criterio de
ordenación de la galería. Omita el cuadro de diálogo volar hacia fuera y, en la barra de fórmulas,
establezca la propiedad elementos de la galería en esta fórmula:

Sort( Orders; 'Order Number'; Descending )

La función Sort ordena la lista para que aparezca en primer lugar el orden más reciente (que tiene el
número de pedido más alto).
3. Transcurridos unos instantes, la vista de resultados aparecerá debajo de la barra de fórmulas. Desplácese
hacia abajo en la flecha de la izquierda para ver el resultado de la fórmula. Desplácese hacia la derecha
para ver la columna número de pedido y asegúrese de que esté ordenada de la forma deseada (de
mayor a menor).

4. En la pestaña propiedades situada cerca del borde derecho, abra la lista diseño :

5. En la lista de opciones, seleccione título y subtítulo:


Se agregan dos controles etiqueta en la plantilla de la galería. De forma predeterminada, estos controles
muestran dos columnas de la entidad Orders , que cambiará a continuación. La plantilla de la galería se
replica verticalmente para cada registro de la entidad.
6. Seleccione Editar (junto a campos) en la pestaña propiedades situada junto al borde derecho.

7. En el panel datos , seleccione Title1 (o seleccione la etiqueta superior en la plantilla de la galería).


8. En la barra de fórmulas, establezca la propiedad Text de la etiqueta en esta expresión:

"Order " & ThisItem.'Order Number'


El número de pedido aparece en la parte superior de cada elemento de la galería. En la plantilla de la
galería, ThisItem concede acceso a todos los campos de la entidad Order .
9. En el panel datos , seleccione Subtitle1 (o seleccione la etiqueta inferior en la plantilla de la galería):

10. En la barra de fórmulas, establezca la propiedad Text de la etiqueta en esta expresión:

ThisItem.Customer.Company

Después de escribir esta fórmula, puede aparecer un error de ondulación de color rojo durante un
momento. El error debe desactivarse si selecciona cualquier cosa fuera de la barra de fórmulas y, a
continuación, devuelve el cursor a la barra de fórmulas. Si el error persiste o no ve un valor, seleccione la
pestaña vista , seleccione orígenes de datosy, a continuación, actualice la entidad pedidos seleccionando
los puntos suspensivos (...) a la derecha del nombre del origen de datos.
Al especificar ThisItem. Customer, está aprovechando una relación de varios a uno entre las entidades
Orders y Customers y recuperando el registro del cliente asociado a cada pedido. En el registro del
cliente, va a extraer los datos de la columna Company para su presentación.
Puede mostrar todas las relaciones de la entidad Orders a otras entidades, incluida la entidad Customer
:
11. Cierre el panel datos seleccionando el icono cerrar (x) en la esquina superior derecha.

Mostrar el estado de cada pedido


En este procedimiento, agregará espacio en la galería para una etiqueta y lo configurará para mostrar el estado
de cada pedido en un color diferente en función de los datos.
1. En la plantilla de la galería, reduzca el ancho de la primera etiqueta, Title1:

2. Repita el paso anterior con la segunda etiqueta, Subtitle1:


3. Con la plantilla de la galería (o un control de la plantilla) seleccionada, seleccione etiqueta en la pestaña
Insertar :

4. Mueva la etiqueta nueva a la derecha de la etiqueta Title1 :


5. Establezca la propiedad texto de la nueva etiqueta en esta expresión:

ThisItem.'Order Status'

En la entidad pedidos , el campo Estado de pedido contiene un valor del conjunto de opciones de
estado de pedidos . Un conjunto de opciones es similar a una enumeración en otras herramientas de
programación. Cada conjunto de opciones se define en la base de datos, por lo que los usuarios solo
pueden especificar las opciones que se encuentran en el conjunto. El conjunto de opciones de Estado de
pedidos también es global, no local, por lo que puede usarlo en otras entidades:

Cada opción de un conjunto tiene un nombre que aparece si se muestra en una etiqueta. Estos nombres
se pueden localizar y la aplicación reconoce la misma opción si un usuario en inglés selecciona Apple, un
usuario en francés selecciona pommeo un usuario en Español selecciona manzana. Por esta razón, no
se puede crear una fórmula que se base en una cadena codificada de forma rígida para una opción, como
se muestra en este tema más adelante.
En las fórmulas, debe poner el estado de la orden entre comillas simples porque contiene un espacio. Sin
embargo, ese nombre funciona de la misma forma que cualquier otro nombre de PowerApps, como
cliente o empresa.
6. En la pestaña Inicio , aumente el tamaño de fuente de la etiqueta estado a 20 puntos y alinee a la
derecha el texto:
7. En la barra de fórmulas, establezca la propiedad color de la etiqueta estado en esta fórmula:

Switch( ThisItem.'Order Status';


'Orders Status'.Closed; Green;
'Orders Status'.New; Black;
'Orders Status'.Invoiced; Blue;
'Orders Status'.Shipped; Purple
)

PowerApps evita que cree una fórmula que se base en una cadena codificada de forma rígida para cada
opción de un conjunto, ya que dichas fórmulas podrían producir resultados inadecuados si los nombres
de las opciones están localizados. En su lugar, la función Switch determina el color en función de la
cadena que aparece en la etiqueta en función de la configuración del usuario.
Con esta fórmula en su lugar, los distintos valores de estado aparecen en colores diferentes, como se
muestra en el gráfico anterior.

Mostrar el total de cada pedido


1. Seleccione el primer elemento de la galería, que es la plantilla de la Galería:
2. En la pestaña Insertar , seleccione etiqueta para agregar otra etiqueta:

3. Mueva la nueva etiqueta para que aparezca debajo de la etiqueta de estado:

4. En la barra de fórmulas, establezca la propiedad texto de la nueva etiqueta en esta fórmula:


Text( Sum( ThisItem.'Order Details'; Quantity * 'Unit Price' ); "[$-en-US]$ #,###.00" )

En esta fórmula, la función SUM suma los registros de la entidad Order Details que están asociados a
cada registro de la entidad Order a través de una relación de uno a varios. Estos elementos de línea
forman cada pedido y se utiliza la misma relación uno a varios para mostrar y editar los elementos de
línea en el área inferior derecha de la pantalla.
Esta fórmula muestra un subrayado azul y una Advertencia de delegación porque Common Data Service
no admite la delegación de funciones de agregado complejas (por ejemplo, la suma de una
multiplicación). Puede omitir esta información porque ningún orden en este ejemplo contendrá más de
500 elementos de línea. Si es necesario para una aplicación diferente, puede aumentar ese límite en la
configuración de la aplicación.
La función de texto de esta fórmula agrega un símbolo de divisa y da formato al resultado con
separadores de miles y decimales. Tal como se ha escrito, la fórmula incluye la etiqueta de idioma para
Inglés de EE. UU. ([$-en-US ]) y un símbolo de dólar ($). Si quita la etiqueta de idioma, se reemplazará
por una en función de la configuración de idioma y la etiqueta mostrará los formatos adecuados para
dicha etiqueta. Si deja el símbolo de dólar, la etiqueta mostrará el símbolo de moneda adecuado en
función de la configuración del usuario. Sin embargo, puede forzar que aparezca un símbolo diferente si
reemplaza el símbolo de dólar por el que prefiera.
5. En la pestaña Inicio , cambie el tamaño de fuente de la etiqueta más reciente a 20 puntos y alinee a la
derecha su texto:
6. Mueva la galería al borde izquierdo de la pantalla y disminuya el ancho de la galería para cerrar algo de
espacio.
7. Aumente el alto de la galería para que sea casi tan alto como la pantalla, pero deje un poco de espacio en
la parte superior de una barra de título, que agregará al principio del siguiente tema:

Resumen
Para recapitular, comenzó a compilar una aplicación de lienzo de pantalla única agregando la galería de pedidos,
que incluye estos elementos:
Una expresión para mostrar el número de pedido: "Orders " & ThisItem.OrderNumber
Campo de una relación de varios a uno: ThisItem.Customer.Company
Etiqueta que muestra el nombre de una opción de un conjunto: ThisItem.'Order Status'
Etiqueta que cambia el formato en función de la opción de un conjunto que muestra la etiqueta:
Switch( ThisItem.'Order Status'; 'Orders Status'.Closed; Green; ...
Función de agregado compleja sobre una relación de uno a varios:
Sum( ThisItem.'Order Details'; Quantity * 'Unit Price' )

Siguiente tema
En el tema siguiente, agregará un control Editar formulario para mostrar y editar un resumen de cualquier
orden que el usuario seleccione en la galería que acaba de crear.
Crear el formulario de Resumen
Crear un formulario de resumen en una aplicación
de lienzo
12/11/2019 • 23 minutes to read

Siga las instrucciones paso a paso para crear un formulario de resumen en una aplicación de lienzo para
administrar datos ficticios en la base de datos Northwind Traders. Este tema forma parte de una serie en la que
se explica cómo compilar una aplicación empresarial en datos relacionales en Common Data Service. Para
obtener los mejores resultados, explore estos temas en esta secuencia:
1. Cree una galería de pedidos.
2. Crear un formulario de resumen (este tema).
3. Cree una galería de detalles.

Requisitos previos
1. Instale la base de datos y las aplicaciones de Northwind Traders.
2. Revise la información general de la aplicación Canvas para Northwind Traders.
3. Cree la galería de pedidos usted mismo o abra la aplicación Northwind Orders (canvas)-Begin Part 2 ,
que ya contiene esa Galería.

Incorporación de una barra de título


En la parte superior de la aplicación, cree una barra de título, que contendrá los botones de acción al final de este
tema.
1. En el panel de vista de árbol , seleccione Screen1 para asegurarse de que no agrega accidentalmente un
control a la galería de pedidos:
2. En la pestaña Insertar , seleccione etiqueta para insertar un control etiqueta :

La nueva etiqueta debe aparecer una sola vez, encima de la galería. Si aparece en cada elemento de la
galería, elimine la primera instancia de la etiqueta, asegúrese de que la pantalla está seleccionada (como
se describe en el paso anterior) y, a continuación, vuelva a insertar la etiqueta.
3. Mueva y cambie el tamaño de la nueva etiqueta para que abarque la parte superior de la pantalla:
4. Haga doble clic en el texto de la etiqueta y, a continuación, escriba Northwind Orders.
Como alternativa, modifique la propiedad texto en la barra de fórmulas para lograr el mismo resultado:

5. En la pestaña Inicio , dé formato a la etiqueta:


Aumente el tamaño de fuente a 24 puntos.
Poner el texto en negrita.
Haga que el texto sea blanco.
Centre el texto.
Agregue un relleno azul oscuro al fondo.
Agregar un control Editar formulario
En esta sección, agregará controles para mostrar un resumen de cualquier orden que el usuario seleccione en la
galería.
1. En la pestaña Insertar , inserte un control Editar formulario :

De forma predeterminada, el formulario aparece en la esquina superior izquierda, donde otros controles
pueden dificultar la búsqueda:
2. Mueva y cambie el tamaño del formulario para que cubra la esquina superior derecha de la pantalla en la
barra de título:

3. En el panel propiedades , seleccione la lista desplegable origen de datos .

4. Seleccione el origen de datos de pedidos .


Agregar y organizar campos
1. En la pestaña propiedades situada cerca del borde derecho, seleccione Editar campos para abrir el
panel campos .

2. Si el panel campos no está vacío, quite los campos que ya se han insertado.

3. Una vez que la lista de campos está vacía, seleccione Agregar campoy, a continuación, active las casillas
correspondientes a los campos Customer y Employee .
4. Desplácese hacia abajo hasta que aparezcan estos campos y, a continuación, active las casillas siguientes:
Notas
Fecha del pedido
Número de pedido
Estado del pedido
Fecha de pago
5. En la parte inferior del panel campos , seleccione Agregary, a continuación, cierre el panel campos .
El formulario muestra siete campos, que pueden estar en un orden diferente:

NOTE
Si un campo muestra un icono de error rojo, es posible que se haya producido un problema al extraer los datos del
origen. Para resolver el error, actualice los datos:
1. En la pestaña Vista, seleccione Orígenes de datos.
2. En el panel datos , seleccione orígenes de datos.
3. Junto a pedidos, seleccione los puntos suspensivos (...), seleccione Actualizary, a continuación, cierre el panel
datos .
Si el cuadro combinado del nombre del cliente o del empleado sigue mostrando un error, compruebe el texto
principal y SearchField de cada cuadro seleccionándolo y, a continuación, abra el panel datos . En el cuadro
cliente, ambos campos deben establecerse en nwind_company. En el cuadro empleado, ambos campos deben
establecerse en nwind_lastname.

6. Con el formulario seleccionado, cambie el número de columnas del formulario de 3 a 12 en la pestaña


propiedades situada junto al borde derecho.
Este paso agrega flexibilidad a medida que se organizan los campos:
Muchos diseños de interfaz de usuario se basan en diseños de 12 columnas porque pueden acomodar
uniformemente las filas de los controles 1, 2, 3, 4, 6 y 12. En este tema, creará filas que contengan 1, 2 o 4
controles.
7. Mueva y cambie el tamaño de los campos arrastrando sus controladores, al igual que haría con cualquier
otro control, de modo que cada fila contenga estas tarjetas de datos en el orden especificado:
Primera fila: el número de pedido, el estado del pedido, la fecha de pedidoy la fecha de pago
Segunda fila: cliente y empleado
Tercera fila: notas

NOTE
Es posible que le resulte más fácil ampliar las tarjetas de datos de las notas, el clientey el empleado antes de
organizarlas.

Más información sobre cómo organizar los campos en un formulario: Descripción del diseño de
formulario de datos para las aplicaciones de canvas.

Ocultar controles de tiempo


En este ejemplo, no se necesitan las partes de tiempo de los campos de fecha porque ese nivel de granularidad
puede distraer al usuario. Si los elimina, puede provocar problemas en las fórmulas que dependen de esos
controles para actualizar los valores de fecha o determinar la posición de otro control en la tarjeta de datos. En
su lugar, ocultará los controles de tiempo estableciendo su propiedad visible .
1. En el panel de vista de árbol , seleccione la tarjeta de datos Order Date .
La tarjeta puede tener un nombre diferente, pero contiene la fecha del pedido.
2. Mientras mantiene presionada la tecla Mayús, seleccione los controles hora, minuto y separador de dos
puntos en la tarjeta de datos Order Date .

3. Establezca la propiedad visible de los controles en false.


Todos los controles seleccionados desaparecen del formulario:

4. Cambie el tamaño del control selector de fecha para mostrar la fecha de finalización:
A continuación, repetirá los últimos pasos para el campo de fecha de pago .
5. En el panel de vista de árbol , seleccione los controles de tiempo en la tarjeta de datos de fecha de
pago :

6. Establezca la propiedad visible de los controles seleccionados en false:


7. Cambie el tamaño del selector de fecha en la tarjeta de fecha pagada :

Conexión de la galería de pedidos


1. En el panel de vista de árbol , contraiga el formulario para encontrar más fácilmente el nombre de la
galería de pedidos y, a continuación, si es necesario, cambie su nombre a Gallery1.
2. Establezca la propiedad Item del formulario de resumen en esta expresión:

Gallery1.Selected
El formulario muestra un resumen del orden que el usuario de la aplicación selecciona en la lista.

Reemplazar una tarjeta de datos


El número de pedido es un identificador que Common Data Service asigna automáticamente al crear un
registro. Este campo tiene un control entrada de texto de forma predeterminada, pero se reemplazará por una
etiqueta para que el usuario no pueda editar este campo.
1. Seleccione el formulario, seleccione Editar campos en la pestaña propiedades situada junto al borde
derecho y, a continuación, seleccione el campo número de pedido :
2. Abra la lista tipo de control :

3. Seleccione la tarjeta de datos de texto de la vista :

4. Cierre el panel campos .


El usuario ya no puede cambiar el número de pedido:
5. En la pestaña Inicio , cambie el tamaño de fuente del número de pedido a 20 puntos para que el campo
sea más fácil de encontrar:

Usar una relación de varios a uno


La entidad Orders tiene una relación de varios a uno con la entidad Employees : cada empleado puede crear
muchos pedidos, pero cada pedido solo se puede asignar a un empleado. Cuando el usuario selecciona un
empleado en el control de cuadro combinado , su propiedad seleccionada proporciona el registro completo
de ese empleado de la entidad Employees . Como resultado, puede configurar un control imagen para mostrar
la imagen de cualquier empleado que el usuario seleccione en el cuadro combinado.
1. Seleccione la tarjeta de datos Employee :
2. En la pestaña avanzadas , cerca del borde derecho, desbloquee la tarjeta de datos para que pueda editar
las fórmulas que eran de solo lectura:

3. En la tarjeta de datos, reduzca el ancho del cuadro combinado para dejar espacio para la imagen del
empleado:

4. En la pestaña Insertar , seleccione media > imagen:


Aparece una imagen en la tarjeta de datos, que se expande para acomodarla:

5. Cambie el tamaño de la imagen y muévala a la derecha del cuadro combinado:

6. Establezca la propiedad imagen de la imagen en esta fórmula, reemplazando el número al final de


DataCardValue si es necesario:

DataCardValue7.Selected.Picture

Aparece la imagen del empleado seleccionado.


7. Mientras mantiene presionada la tecla Alt, seleccione otro empleado en el cuadro combinado para
confirmar que la imagen también cambia.

Agregar un icono de guardar


1. En el panel de vista de árbol , seleccione Screen1y, a continuación, seleccione Insertar > iconos >
comprobar:
De forma predeterminada, el icono de comprobación aparece en la esquina superior izquierda, donde
otros controles pueden dificultar la búsqueda del icono:

2. En la pestaña Inicio , cambie la propiedad color del icono a blanco, cambie el tamaño del icono y
muévalo cerca del borde derecho de la barra de título:

3. En el panel de vista de árbol , confirme que el nombre del formulario es Form1y, a continuación,
establezca la propiedad alseleccionar del icono en esta fórmula:
SubmitForm( Form1 )

Cuando el usuario selecciona el icono, la función SubmitForm recopila los valores modificados en el
formulario y los envía al origen de datos. Los puntos de marzo a lo largo de la parte superior de la
pantalla a medida que se envían los datos, y la galería de pedidos refleja los cambios después de que
finalice el proceso.
4. Establezca la propiedad DisplayMode del icono en esta fórmula:

If( Form1.Unsaved; DisplayMode.Edit; DisplayMode.Disabled )

Si se han guardado todos los cambios en el formulario, el icono está deshabilitado y aparece en
DisabledColor, que se establecerá a continuación.
5. Establezca la propiedad DisabledColor del icono en este valor:

Gray
El usuario puede guardar los cambios en un pedido seleccionando el icono de marca de verificación, que
está deshabilitado y atenuado hasta que el usuario realice otro cambio:

Agregar un icono de cancelación


1. En la pestaña Insertar , seleccione iconos > Cancelar:
De forma predeterminada, el icono aparece en la esquina superior izquierda, donde otros controles
pueden dificultar la búsqueda del icono:

2. En la pestaña Inicio , cambie la propiedad color del icono a blanco, cambie el tamaño del icono y
muévalo a la izquierda del icono de comprobación:

3. Establezca la propiedad alseleccionar del icono cancelar en esta fórmula:

ResetForm( Form1 )
La función ResetForm descarta todos los cambios del formulario, lo que lo devuelve a su estado original.
4. Establezca la propiedad DisplayMode del icono de cancelación en esta fórmula:

If( Form1.Unsaved Or Form1.Mode = FormMode.New; DisplayMode.Edit; DisplayMode.Disabled )

Esta fórmula difiere ligeramente de la del icono de comprobación. El icono cancelar se deshabilita si se
han guardado todos los cambios o el formulario está en modo nuevo , lo que se habilitará a
continuación. En ese caso, ResetForm descarta el nuevo registro.
5. Establezca la propiedad DisabledColor del icono de cancelación en este valor:

Gray
El usuario puede cancelar los cambios en un pedido y los iconos comprobar y cancelar están
deshabilitados y atenuados si se han guardado todos los cambios:

Agregar un icono Agregar


1. En la pestaña Insertar , seleccione iconos > Agregar.
El icono Agregar aparece en la esquina superior izquierda de forma predeterminada, donde otros
controles pueden dificultar la búsqueda:

2. En la pestaña Inicio , establezca la propiedad color del icono Agregar en blanco, cambie el tamaño del
icono y muévalo a la izquierda del icono cancelar:

3. Establezca la propiedad alseleccionar del icono Agregar en esta fórmula:

NewForm( Form1 )
La función NewForm muestra un registro en blanco en el formulario.
4. Establezca la propiedad DisplayMode del icono Agregar en esta fórmula:

If( Form1.Unsaved Or Form1.Mode = FormMode.New; DisplayMode.Disabled; DisplayMode.Edit )

La fórmula deshabilita el icono Agregar en estas condiciones:


El usuario realiza cambios pero no los guarda o los cancela, lo que es el comportamiento opuesto de
los iconos comprobar y cancelar.
El usuario selecciona el icono Agregar pero no realiza ningún cambio.
5. Establezca la propiedad DisabledColor del icono Agregar en este valor:

Gray
El usuario puede crear un pedido si no realiza ningún cambio o guarda o cancela los cambios realizados.
(Si el usuario selecciona este icono, no podrá volver a seleccionarlo hasta que realice uno o varios
cambios y, a continuación, guardar o cancelar los cambios):

NOTE
Si crea y guarda un pedido, es posible que tenga que desplazarse hacia abajo en la galería de pedidos para mostrar el
nuevo pedido. No tendrá un precio total porque todavía no ha agregado ningún detalle de pedido.

Agregar un icono de papelera


1. En la pestaña Insertar , seleccione iconos > Trash.
De forma predeterminada, aparece el icono de la papelera en la esquina superior izquierda, donde otros
controles pueden dificultar la búsqueda:

2. En la pestaña Inicio , cambie la propiedad color del icono de la papelera a blanco, cambie el tamaño del
icono y muévalo a la izquierda del icono Agregar:

3. Establezca la propiedad alseleccionar del icono de la papelera en esta fórmula:


Remove( Orders; Gallery1.Selected )

La función Remove quita un registro de un origen de datos. En esta fórmula, la función quita el registro
seleccionado en la galería de pedidos. El icono de la papelera aparece cerca del formulario de resumen
(no de la galería de pedidos) porque el formulario muestra más detalles sobre el registro, por lo que el
usuario puede identificar más fácilmente el registro que la fórmula eliminará.
4. Establezca la propiedad DisplayMode del icono de la papelera en esta fórmula:

If( Form1.Mode = FormMode.New; DisplayMode.Disabled; DisplayMode.Edit )

Esta fórmula deshabilita el icono de la papelera si el usuario está creando un registro. Hasta que el
usuario guarda el registro, la función Remove no tiene ningún registro para eliminar.
5. Establezca la propiedad DisabledColor del icono de la papelera en este valor:

Gray
El usuario puede eliminar un pedido.

Resumen
En Resumen, ha agregado un formulario en el que el usuario puede mostrar y editar un resumen de cada
pedido, y ha usado estos elementos:
Un formulario que muestra los datos de la entidad Orders : Form1. DataSource = Orders
Una conexión entre el formulario y la galería de pedidos: Form1. Item = Gallery1.Selected
Control alternativo para el campo de número de pedido : texto de la vista
Una relación de varios a uno para mostrar la imagen del empleado en la tarjeta de datos del empleado :
DataCardValue1.Selected.Picture
Un icono para guardar los cambios en un pedido: SubmitForm( Form1 )
Un icono para cancelar los cambios en un pedido: ResetForm( Form1 )
Un icono para crear un pedido: NewForm( Form1 )
Un icono para eliminar un pedido: Remove( Orders; Gallery1.Selected )

Paso siguiente
En el tema siguiente, agregará otra galería para mostrar los productos en cada pedido y podrá cambiar esos
detalles mediante la función patch .
Crear la galería de detalles
Creación de una galería de detalles en una
aplicación de lienzo
12/11/2019 • 28 minutes to read

Siga las instrucciones paso a paso para crear una galería de detalles en una aplicación de lienzo para administrar
datos ficticios en la base de datos Northwind Traders. Este tema forma parte de una serie en la que se explica
cómo compilar una aplicación empresarial en datos relacionales en Common Data Service. Para obtener los
mejores resultados, explore estos temas en esta secuencia:
1. Cree una galería de pedidos.
2. Cree un formulario de Resumen.
3. Crear una galería de detalles (este tema).

Requisitos previos
Antes de empezar este tema, debe instalar la base de datos como se describió anteriormente en este tema. A
continuación, debe crear la galería de pedidos y el formulario de Resumen, o bien abrir la aplicación de pedidos
de Northwind (canvas)-Begin Part 3 , que ya contiene esa galería y ese formulario.

Crear otra barra de título


1. En la parte superior de la pantalla, seleccione el control de etiqueta que actúa como barra de título,
cópielo presionando Ctrl + C y, a continuación, péguelo presionando Ctrl-V:
2. Cambie el tamaño de la copia y muévala para que aparezca justo debajo del formulario de resumen.
3. Quite el texto de la copia de cualquiera de estas maneras:
Haga doble clic en el texto para seleccionarlo y, a continuación, presione SUPR.
Establezca la propiedad Text de la etiqueta en una cadena vacía ("").

Agregar una galería


1. Inserte un control Galería con un diseño vertical en blanco :
La nueva galería, que mostrará los detalles del pedido, aparece en la esquina superior izquierda:

2. Cierre el cuadro de diálogo origen de datos de la marcha y, a continuación, cambie el tamaño y mueva la
galería de detalles a la esquina inferior derecha, debajo de la nueva barra de título:

3. Establezca la propiedad elementos de la galería de detalles en esta fórmula:


Gallery1.Selected.'Order Details'

Si aparece un error, confirme que la galería de pedidos se denomine Gallery1 (en el panel de vista de
árbol situado cerca del borde izquierdo). Si esa Galería tiene un nombre diferente, cambie su nombre a
Gallery1.
Acaba de vincular las dos galerías. Cuando el usuario selecciona un pedido en la galería de pedidos, esa
selección identifica un registro en la entidad pedidos . Si ese pedido contiene uno o más elementos de
línea, el registro de la entidad Orders se vincula a uno o varios registros de la entidad Order Details y
los datos de esos registros aparecen en la galería de detalles. Este comportamiento refleja la relación de
uno a varios que se ha creado automáticamente entre las entidades Orders y Order Details . La fórmula
que especificó "recorre" esa relación mediante la notación de puntos:

Mostrar nombres de producto


1. En la galería de detalles, seleccione Agregar un elemento de la pestaña insertar para seleccionar la
plantilla de la Galería:
Asegúrese de que ha seleccionado la plantilla Galería en lugar de la galería. El rectángulo de selección
debe aparecer ligeramente dentro del límite de la galería y probablemente menor que el alto de la galería.
A medida que se insertan controles en esta plantilla, se repiten para cada elemento de la galería.
2. En la pestaña Insertar , inserte una etiqueta en la galería de detalles.
La etiqueta debe aparecer en la galería; Si no es así, inténtelo de nuevo, pero asegúrese de seleccionar la
plantilla de la Galería antes de insertar la etiqueta.

3. Establezca la propiedad texto de la nueva etiqueta en esta fórmula:

ThisItem.Product.'Product Name'

Si no aparece ningún texto, seleccione la flecha del orden 0901 cerca de la parte inferior de la galería de
pedidos.
4. Cambie el tamaño de la etiqueta para que aparezca el texto completo:
Esta expresión se dirige desde un registro de la entidad Order Details . El registro se mantiene en
ThisItem en la entidad Order Products a través de una relación de varios a uno:

Se extraen el campo nombre de producto (y otros campos que está a punto de usar):

Mostrar imágenes de producto


1. En la pestaña Insertar , inserte un control imagen en la galería de detalles:
de control de imagen
2. Cambie el tamaño y mueva la imagen y la etiqueta para que esté en paralelo.

TIP
Para tener un mayor control sobre el tamaño y la posición de un control, empiece a cambiar el tamaño o muévalo
sin presionar la tecla Alt y, después, continúe con el cambio de tamaño o mueva el control mientras mantiene
presionada la tecla Alt:

3. Establezca la propiedad imagen de la imagen en esta fórmula:

ThisItem.Product.Picture

Una vez más, la expresión hace referencia a un producto que está asociado a este orden y extrae el campo
de imagen que se va a mostrar.
4. Reduzca el alto de la plantilla de la galería para que aparezca más de un registro de detalle de pedido a
la vez:

Mostrar la cantidad y el costo del producto


1. En la pestaña Insertar , inserte otra etiqueta en la galería de detalles y, a continuación, cambie el tamaño
y mueva la nueva etiqueta a la derecha de la información del producto.
2. Establezca la propiedad texto de la nueva etiqueta en esta expresión:

ThisItem.Quantity

Esta fórmula extrae información directamente de la entidad Order Details (no se requiere ninguna
relación).
3. En la pestaña Inicio , cambie la alineación de este control a derecha:

4. En la pestaña Insertar , inserte otra etiqueta en la galería de detalles y, a continuación, cambie el tamaño
y mueva la etiqueta a la derecha de la etiqueta cantidad.
5. Establezca la propiedad texto de la nueva etiqueta en esta fórmula:

Text( ThisItem.'Unit Price'; "[$-en-US]$ #,###.00" )

Si no incluye la etiqueta de idioma ([$-en-US ]), se agregará automáticamente en función de su idioma y


región. Si usa una etiqueta de idioma diferente, querrá quitar el $ justo después del corchete de cierre (])
y, a continuación, agregar su propio símbolo de moneda en esa posición.
6. En la pestaña Inicio , cambie la alineación de este control a derecha:

7. En la pestaña Insertar , inserte otro control etiqueta en la galería de detalles y, a continuación, cambie el
tamaño y mueva la nueva etiqueta a la derecha del precio por unidad.
8. Establezca la propiedad texto de la nueva etiqueta en esta fórmula:

Text( ThisItem.Quantity * ThisItem.'Unit Price'; "[$-en-US]$ #,###.00" )

De nuevo, si no incluye la etiqueta de idioma ([$-en-US ]), se agregará automáticamente en función de su


idioma y región. Si la etiqueta es diferente, querrá usar su propio símbolo de moneda en lugar del $ justo
después del corchete de cierre (]).
de precios extendidos
9. En la pestaña Inicio , cambie la alineación de este control a derecha:

Ya ha terminado de agregar controles a la galería de detalles.


10. En el panel de vista de árbol , seleccione Screen1 para asegurarse de que la galería de detalles ya no
está seleccionada.

Agregar texto a la nueva barra de título


1. En la pestaña Insertar , inserte otra etiqueta en la pantalla:
2. Cambie el tamaño y mueva la nueva etiqueta por encima de las imágenes de los productos en la segunda
barra de título y, a continuación, cambie el color del texto a blanco en la pestaña Inicio .
3. Haga doble clic en el texto de la etiqueta y, a continuación, escriba Product:

de producto
4. Copie y pegue la etiqueta Product y, a continuación, cambie el tamaño de la copia y muévala por encima
de la columna quantity.
5. Haga doble clic en el texto de la nueva etiqueta y escriba Quantity:
6. Copie y pegue la etiqueta quantity y, a continuación, cambie el tamaño de la copia y muévala por encima
de la columna precio unitario.
7. Haga doble clic en el texto de la nueva etiqueta y, a continuación, escriba precio por unidad:

8. Copie y pegue la etiqueta de precio unitario y, a continuación, cambie el tamaño de la copia y muévala
por encima de la columna de precio ampliado.
9. Haga doble clic en el texto de la nueva etiqueta y, a continuación, escriba Extended:
extendido

Mostrar totales de orden


1. Reduzca el alto de la galería de detalles para dejar espacio para los totales de pedido en la parte inferior
de la pantalla:

2. Copie y pegue la barra de título en el centro de la pantalla y, a continuación, mueva la copia a la parte
inferior de la pantalla:
3. Copie y pegue la etiqueta Product de la barra de título central y, a continuación, mueva la copia a la barra
de título inferior, a la izquierda de la columna Quantity .
4. Haga doble clic en el texto de la nueva etiqueta y, a continuación, escriba este texto:
Totales de pedido:

5. Copie y pegue la etiqueta Order-TOTALS y, a continuación, cambie el tamaño y mueva la copia a la


derecha de la etiqueta Order-TOTALS.
6. Establezca la propiedad texto de la nueva etiqueta en esta fórmula:

Sum( Gallery1.Selected.'Order Details'; Quantity )

Esta fórmula muestra una advertencia de delegación, pero puede ignorarla porque ningún pedido
individual contendrá más de 500 productos.
7. En la pestaña Inicio , establezca la alineación del texto de la nueva etiqueta en derecha:
8. Copie y pegue este control de etiqueta y, a continuación, cambie el tamaño y mueva la copia en la
columna extendida .
9. Establezca la propiedad Text de la copia en esta fórmula:

Text( Sum( Gallery1.Selected.'Order Details'; Quantity * 'Unit Price' ); "[$-en-US]$ #,###.00" )

Esta fórmula muestra una advertencia de delegación, pero puede ignorarla porque ningún pedido
individual contendrá más de 500 productos.

Agregar espacio para nuevos detalles


En cualquier galería puede mostrar datos, pero no puede actualizarlos ni agregar registros. En la galería de
detalles, agregará un área en la que el usuario puede configurar un registro en la entidad Order Details e
insertar dicho registro en un pedido.
1. Reduzca el alto de la galería de detalles lo suficiente para dejar espacio para un espacio de edición de un
solo elemento en esa Galería.
En este espacio, agregará controles para que el usuario pueda agregar un detalle de pedido:
2. En la pestaña Insertar , inserte una etiqueta y, a continuación, cambie su tamaño y muévala en la galería
de detalles.

3. Haga doble clic en el texto de la nueva etiqueta y, a continuación, presione SUPR.


4. En la pestaña Inicio , establezca el color de relleno de la nueva etiqueta en LightBlue:
Seleccionar un producto
1. En la pestaña Insertar , seleccione controles > cuadro combinado:

El control de cuadro combinado aparece en la esquina superior izquierda.


2. En el cuadro de diálogo volar hacia fuera, seleccione el origen de datos de pedidos de productos :
3. En la pestaña propiedades del cuadro combinado, seleccione Editar (junto a campos) para abrir el
panel datos . Asegúrese de que el texto principal y SearchField están establecidos en
nwind_productname.
Especifique el nombre lógico porque en este caso el panel datos no admite nombres para mostrar:

4. Cierre el panel datos .


5. En la pestaña propiedades situada cerca del borde derecho, desplácese hacia abajo, desactive Permitir
selección múltipley asegúrese de que la opción permitir búsqueda está activada:

6. Cambie el tamaño y mueva el cuadro combinado al área azul claro, justo debajo de la columna Product-
Name de la galería de detalles:
En este cuadro combinado, el usuario especificará un registro en la entidad Product para el registro de
detalles del pedido que la aplicación creará.
7. Mientras mantiene presionada la tecla Alt, seleccione la flecha hacia abajo del cuadro combinado.

TIP
Si mantiene presionada la tecla Alt, puede interactuar con los controles en PowerApps Studio sin abrir el modo de
vista previa.

8. En la lista de productos que aparece, seleccione un producto:

Agregar una imagen de producto


1. En la pestaña Insertar , seleccione media > imagen:
de control de imagen
El control imagen aparece en la esquina superior izquierda:

2. Cambie el tamaño de la imagen y muévala al área azul claro bajo las demás imágenes del producto y
junto al cuadro combinado.
3. Establezca la propiedad imagen de la imagen en:

ComboBox1.Selected.Picture
Está usando el mismo truco que usó para mostrar la imagen del empleado en el formulario de resumen.
La propiedad seleccionada del cuadro combinado devuelve todo el registro de cualquier producto que
seleccione el usuario, incluido el campo de imagen .

Agregar un cuadro de cantidad


1. En la pestaña Insertar , seleccione texto > entrada de texto:

El control entrada de texto aparece en la esquina superior izquierda:


2. Cambie el tamaño y mueva el cuadro de entrada de texto a la derecha del cuadro combinado, en la
columna cantidad de la galería de detalles:

Mediante este cuadro de entrada de texto, el usuario especificará el campo cantidad del registro de
detalles del pedido .
3. Establezca la propiedad default de este control en "":
4. En la pestaña Inicio , establezca la alineación del texto de este control en derecha:

Mostrar la unidad y los precios extendidos


1. En la pestaña Insertar , inserte un control etiqueta .
La etiqueta aparece en la esquina superior izquierda de la pantalla:
2. Cambie el tamaño y mueva la etiqueta a la derecha del control de entrada de texto y establezca la
propiedad texto de la etiqueta en esta fórmula:

Text( ComboBox1.Selected.'List Price'; "[$-en-US]$ #,###.00" )

Este control muestra el precio de venta de la entidad Order Products . Este valor determinará el campo
de precio por unidad en el registro de detalles del pedido .

NOTE
En este escenario, el valor es de solo lectura, pero otros escenarios pueden llamar a para que el usuario de la
aplicación lo modifique. En ese caso, use un control de entrada de texto y establezca su propiedad
predeterminada en lista de precios.

3. En la pestaña Inicio , establezca la alineación del texto de la etiqueta lista-precio en derecha:


4. Copie y pegue la etiqueta de precio de lista y, a continuación, cambie el tamaño y mueva la copia a la
derecha de la etiqueta lista-precio.
5. Establezca la propiedad texto de la nueva etiqueta en esta fórmula:

Text( Value(TextInput1.Text) * ComboBox1.Selected.'List Price'; "[$-en-US]$ #,###.00" )

Este control muestra el precio extendido en función de la cantidad especificada por el usuario de la
aplicación y el precio de venta del producto seleccionado por el usuario de la aplicación. Es meramente
informativo para el usuario de la aplicación.
6. Haga doble clic en el control de entrada de texto para quantity y, a continuación, escriba un número.
La etiqueta del precio extendido se vuelve a calcular para mostrar el nuevo valor:
Agregar un icono Agregar
1. En la pestaña Insertar , seleccione iconos > Agregar:

El icono aparece en la esquina superior izquierda de la pantalla.

2. Cambie el tamaño y mueva este icono al borde derecho del área de color azul claro y, a continuación,
establezca la propiedad alseleccionar del icono en esta fórmula:
Patch( 'Order Details';
Defaults('Order Details');
{
Order: Gallery1.Selected;
Product: ComboBox1.Selected;
Quantity: Value(TextInput1.Text);
'Unit Price': ComboBox1.Selected.'List Price'
}
);;
Refresh( Orders );;
Reset( ComboBox1 );;
Reset( TextInput1 )

En general, la función patch actualiza y crea registros, y los argumentos específicos de esta fórmula
determinan los cambios exactos que realizará la función.
El primer argumento especifica el origen de datos (en este caso, la entidad Order Details ) en la
que la función actualizará o creará un registro.
El segundo argumento especifica que la función creará un registro con los valores
predeterminados para la entidad Order Details , a menos que se especifique lo contrario en el
tercer argumento.
El tercer argumento especifica que cuatro columnas del nuevo registro contendrán valores del
usuario.
La columna orden contendrá el número del pedido que el usuario seleccionó en la galería de
pedidos.
La columna Product contendrá el nombre del producto que el usuario seleccionó en el cuadro
combinado que muestra Products.
La columna Quantity contendrá el valor que el usuario especificó en el cuadro de entrada de
texto.
La columna precio por unidad contendrá el precio de venta del producto que el usuario
seleccionó para este detalle de pedido.
NOTE
Puede generar fórmulas que usan datos de cualquier columna (en la entidad Order Products ) para cualquier
producto que seleccione el usuario de la aplicación en el cuadro combinado que muestra productos. Cuando el
usuario selecciona un registro en la entidad Order Products , no solo el nombre del producto aparece en ese
cuadro combinado, sino que también el precio unitario del producto aparece en una etiqueta. Cada valor de
búsqueda en una aplicación de lienzo hace referencia a un registro completo, no solo a una clave principal.

La función de actualización garantiza que la entidad Orders refleja el registro que acaba de agregar a la
entidad Order Details . La función de restablecimiento borra los datos de productos, cantidades y
precios unitarios para que el usuario pueda crear más fácilmente otros detalles de pedido para el mismo
pedido.
3. Presione F5 y, a continuación, seleccione el icono Agregar .
El orden refleja la información que especificó:

4. opta Agregue otro elemento al pedido.


5. Presione ESC para cerrar el modo de vista previa.

Quitar un detalle del pedido


1. En el centro de la pantalla, seleccione la plantilla de la galería de detalles:
2. En la pestaña Insertar , seleccione iconos > Trash:

El icono de la papelera aparece en la esquina superior izquierda de la plantilla de la galería.

3. Cambie el tamaño y mueva el icono de la papelera a la parte derecha de la plantilla de la galería de


detalles y establezca la propiedad alseleccionar del icono en esta fórmula:

Remove( 'Order Details'; ThisItem );; Refresh( Orders )


En el que se redactó este documento, no se puede quitar un registro directamente de una relación, por lo
que la función Remove quita un registro directamente de la entidad relacionada. ThisItem especifica el
registro que se va a quitar, tomado del mismo registro en la galería de detalles donde aparece el icono de
la papelera.
De nuevo, la operación utiliza datos en caché, por lo que la función Refresh informa a la entidad Orders
de que la aplicación ha cambiado una de sus entidades relacionadas.
4. Presione F5 para abrir el modo de vista previa y, a continuación, seleccione el icono de la papelera junto a
cada registro de detalles de pedido que desea quitar del pedido.
5. Intente agregar y quitar varios detalles de pedido de los pedidos:

En conclusión
En Resumen, ha agregado otra galería para mostrar los detalles del pedido y controla la adición y eliminación de
los detalles de un pedido en la aplicación. Ha usado estos elementos:
Un segundo control de galería, vinculado a la galería de pedidos, a través de una relación de uno a varios:
Gallery2. items = Gallery1.Selected.'Order Details'
Una relación de varios a uno desde la entidad Order Details hasta la entidad Order products :
ThisItem.Product.'Product Name' y ThisItem.Product.Picture
La función de Opciones para obtener una lista de productos: Choices( 'Order Details'.Product' )
La propiedad seleccionada de un cuadro combinado como el registro relacionado de varios a uno
completo: ComboBox1.Selected.Picture y ComboBox1.Selected.'List Price'
La función patch para crear un registro Order Details :
Patch( 'Order Details'; Defaults( 'Order Details' ); ... )
La función Remove para eliminar un registro de detalles de pedido : Remove( 'Order Details'; ThisItem )

Esta serie de temas ha sido un tutorial rápido sobre el uso de Common Data Service relaciones y conjuntos de
opciones en una aplicación de lienzo con fines educativos. Antes de publicar cualquier aplicación en producción,
debe considerar la validación de campos, el control de errores y muchos otros factores.
Integración de compatibilidad global en aplicaciones
de lienzo
08/10/2019 • 14 minutes to read

PowerApps es un producto global. Puede compilar y usar aplicaciones de lienzo en muchas regiones e idiomas
diferentes.
Tanto al compilar como al ejecutar aplicaciones, el texto que PowerApps muestra se ha traducido a diversos
idiomas. Verá los elementos de menú, cuadros de diálogo, pestañas de la cinta y otros textos en su idioma nativo.
La escritura y presentación de fechas y números también se ha adaptado a su idioma y región concretos. Por
ejemplo, algunas regiones del mundo usan un . (punto o punto) como separador decimal mientras que otros
usan , (coma).
Las aplicaciones que cree también pueden ser globales. Use Idioma , Texto , Valor , FechaNumero y otras
funciones para adaptar lo que se muestra y se utiliza como entrada en diferentes idiomas.

Configuración de idioma
Cuando se usa el paquete Studio nativo o un reproductor nativo, el sistema operativo host especifica el idioma.
En el caso de Windows, esto puede controlarse en "Todas las configuraciones", "Hora e idioma". Windows
también permite especificar los caracteres que se va a usar como separador decimal, invalidando la
configuración de idioma.
Cuando se trabaja con la Web, es el explorador el que proporciona el idioma. La mayoría de los exploradores
utilizan la configuración del sistema operativo de host de forma predeterminada, y algunos permiten establecer
el idioma manualmente.

Entorno de creación
El entorno de creación se adapta a la configuración de idioma del autor. La aplicación se guarda de forma
independiente del idioma, para que los autores con distintos idiomas puedan editar la misma aplicación.
Nombres en las fórmulas
La mayoría de los elementos de una fórmula están siempre en inglés:
Nombres de función: If, Navigate, Collect,...
Nombres de propiedad de control: Screen. Fill, Button. alseleccionar, TextBox. Font,...
Nombres de enumeración: Color. aguamarina, DataSourceInfo. MaxValue, EspesorDeFuente. Bold...
Registros de señal: Compass. Head, Location. Latitude, App.ActiveScreen, ...
Operadores Primario, en, exacto,...
A medida que se localiza la experiencia de creación, los controles y otros nombres de objetos se mostrarán en el
idioma nativo del autor. En español, algunos de los nombres de los controles aparecen como:
Al insertar uno de estos elementos en la aplicación, su nombre se usará en inglés de forma predeterminada. Esto
sirve para mantener la coherencia con los nombres de propiedad de los controles y el resto de la fórmula. Por
ejemplo, Casilla se inserta como Checkbox1.
Después de insertar un control, puede cambiar el nombre por el que prefiera. Mientras está seleccionado, el
extremo izquierdo de la cinta de opciones "Contenido" muestra el nombre del control. Al seleccionar este
nombre, se despliega un cuadro de texto donde puede editarlo:

Si lo desea, aquí se puede cambiar el nombre del control por Casilla1. La línea roja ondulada, que en este caso
muestra el explorador, se debe a que el nombre no es una palabra en español y no supone ningún problema.
Puede usar los nombres que desee como:
Nombres del control
Nombres de colección
Nombres de variable de contexto
Separadores de fórmulas y operador de encadenamiento
Algunos separadores y operadores cambiarán según el separador decimal del idioma del autor:

OPERADOR DE
SEPARADOR DECIMAL DEL SEPARADOR DECIMAL DE SEPARADOR DE LISTA DE ENCADENAMIENTO DE
IDIOMA DEL AUTOR POWERAPPS POWERAPPS POWERAPPS

. (punto o punto) . (punto o punto) , (coma) ; (punto y coma)

, (coma) , (coma) ; (punto y coma) ;; (doble punto y coma)

El cambio en el separador de lista de PowerApps es coherente con lo que sucede con el separador de lista de
Excel. Esto afectará a lo siguiente:
Argumentos en llamadas a funciones.
Campos de un registro.
Registros de una tabla.
Por ejemplo, considere la siguiente fórmula expresada en un idioma y una región que usa punto o punto como
separador decimal, como Japón o Reino Unido:

Ahora vea esta misma fórmula en un idioma y región donde se usa una coma para el separador decimal, como
Francia o España:

El resaltado muestra los operadores que cambian entre las dos versiones. Tenga en cuenta que el operador de
selección de propiedad . (punto o punto) en Slider1. el valor es siempre el mismo, independientemente de cuál
sea el separador decimal.
La fórmula no cambia internamente; lo que cambia es cómo se muestra y cómo la edita el autor. Dos autores
diferentes que usen dos idiomas distintos pueden ver y editar la misma fórmula, y cada uno verá los separadores
y operadores correspondientes a su idioma.

Creación de una aplicación global


La aplicación que cree puede adaptarse a distintos idiomas y proporcionar una experiencia de usuario óptima a
usuarios de todo el mundo.
Función Language
La función Language devuelve la etiqueta de idioma del usuario actual. Por ejemplo, esta función devuelve "en-
GB" para los usuarios de Gran Bretaña y "de-DE" para los usuarios de Alemania.
Entre otras cosas, puede usar Language para mostrar texto traducido a los usuarios. La aplicación puede incluir
una tabla de valores traducidos en la aplicación:

Y, a continuación, utilizar una fórmula como la siguiente para extraer las cadenas traducidas de la tabla:
LookUp( Table1; TextID = "Hello" && (LanguageTag = Left( Language(); 2 ) || IsBlank( LanguageTag
))).LocalizedText
Tenga en cuenta que las cadenas traducidas a otros idiomas podrían ocupar más espacio que las que están en su
idioma. En muchos casos, las etiquetas y otros elementos que muestran las cadenas en la interfaz de usuario
necesitarán ser más anchos para dar cabida a esas cadenas.
Para más información, consulte la documentación de la función Language .
Formato de números, fechas y horas
Los números, las fechas y las horas se escriben con diferentes formatos en las distintas partes del mundo. El
significado de las comas, los decimales y el orden del día, mes y año varían de una ubicación a otra.
La función Text da formato a números y fechas utilizando la configuración de idioma del usuario.
Text requiere una cadena de formato para saber cómo desea dar formato al número o fecha. Esta cadena de
formato puede ser de dos formas:
Una enumeración independiente de la configuración regional. Por ejemplo, Text( Now();
DateTimeFormat.LongDate ) . Esta fórmula dará formato a la fecha actual con el formato correspondiente
al idioma. Esta es la mejor manera de especificar la cadena de formato.
Una cadena de formato personalizado. Por ejemplo, Text( Now(); "[$-en-US ]dddd, mmmm dd, yyyy"
) muestra el mismo texto que la enumeración cuando se utiliza en el idioma "en-US". La ventaja de la cadena
de formato personalizado es que puede especificar exactamente lo que desea.
"[$-en-US ]" al principio de la cadena de formato personalizado indica a Text en qué idioma debe interpretar la
cadena de formato personalizado. Esto se inserta automáticamente y su valor predeterminado es el idioma de
creación. Normalmente no necesitará cambiarlo. Resulta útil cuando los autores de distintos idiomas están
modificando la misma aplicación.
El tercer argumento de Text especifica el idioma que se usará para el resultado de la función. El valor
predeterminado es el idioma configurado para el usuario actual.
Para más información, consulte la documentación de la función Text .
Lectura de números, fechas y horas
Hay cuatro funciones para leer los números, las fechas y las horas proporcionados por el usuario:
Valor : Convierte un número de una cadena de texto en un valor numérico.
DateValue : Convierte un valor de fecha de una cadena de texto en un valor de fecha y hora. Se omiten las
horas especificadas en la cadena de texto.
TimeValue : Convierte un valor de hora de una cadena de texto en un valor de fecha y hora. Se omiten las
fechas especificadas en la cadena de texto.
Fechahoranumero : Convierte un valor de fecha y hora de una cadena de texto en un valor de fecha y hora.
Si usó Excel, todas estas funciones se combinan en la función única Value. Se desglosan aquí porque PowerApps
tiene tipos distintos de valores de fecha, hora y números.
Todas estas funciones tienen los mismos argumentos:
Cadena, requerida: Una cadena del usuario. Por ejemplo, una cadena escribe en un control de entrada de
texto y lee el control con la propiedad Text.
Idioma, opcional: Lenguaje en el que se va a interpretar la cadena. De forma predeterminada, es el idioma
configurado para el usuario.
Por ejemplo:
Value( "12,345.678"; "en-US" ) o Value( "12,345.678" ) cuando "en-US" es el idioma del usuario, devuelve
el número 12345.678, listo para usarlo en cálculos.
FechaNumero( "1/2/01"; "es-ES" ) o FechaNumero( "1/2/01" ) cuando "es-ES" es el idioma del usuario,
devuelve el valor de fecha y hora February 1, 2001 at midnight.
HoraNumero( "11:43:02"; "fr-FR" ) o FechaNumero( "11:43:02" ) cuando "fr-FR" es el idioma del
usuario, devuelve el valor de fecha y hora January 1, 1970 at 11:43:02.
FechaHoraNumero( "11:43:02 1/2/01"; "de-DE" ) o FechaNumero( "11:43:02" ) cuando "de-DE" es el
idioma del usuario, devuelve el valor de fecha y hora February 1, 2001 at 11:43:02.
Para más información, consulte la documentación de las funciones Value y FechaNumero, HoraNumero y
FechaHoraNumero , y cómo trabajar con fechas y horas.
Información sobre Calendar y Clock
Las funciones Calendar y Clock proporcionan información sobre el calendario y el reloj en el idioma del usuario
actual.
Entre otras cosas, use estas funciones para proporcionar un control Dropdown con una lista de opciones.
Para más información, consulte la documentación de las funciones Calendar y Clock .
Creación de aplicaciones de lienzo accesibles en
PowerApps
07/10/2019 • 6 minutes to read

Una aplicación de lienzo accesible permitirá a los usuarios con discapacidades visuales, auditivas y de otra índole
utilizar correctamente dicha aplicación. Además de ser un requisito para muchos gobiernos y organizaciones, si
sigue las pautas que se indican a continuación aumentará la facilidad de uso para todos los usuarios,
independientemente de sus capacidades.
Use el Comprobador de accesibilidad para ayudarle a revisar los posibles problemas de accesibilidad de la
aplicación.

Diseño y color
Un diseño con sentido común y poco complicado ayuda a que las aplicaciones sean más accesibles para todos los
usuarios. Cuando realice una personalización intensa de las aplicaciones, tenga en cuenta las siguientes
sugerencias. Los temas de PowerApps son accesibles de forma predeterminada.
Asegúrese de que todos los elementos son claramente visibles y el texto tiene un tamaño suficiente. Todo el
contenido se debe poder leer y comprender fácilmente a simple vista.
Evite el uso de la propiedad de visibilidad de los elementos para mostrar un elemento. Si necesita mostrar algo
de manera condicional, cree el contenido en una nueva pantalla, navegue a ella y vuelva.
Asegúrese de que los elementos de entrada están etiquetados en la pantalla. La propiedad AccessibilityLabel
define lo que el lector de pantalla anunciará.
Si personaliza colores, asegúrese de que el contraste entre el texto y el fondo es 4.5:1 o superior. Las
herramientas de software que ayudan a este proceso están disponibles.
Asegúrese de que el diseño sigue un flujo lógico cuando lea de arriba a abajo y de izquierda a derecha.

Compatibilidad con el teclado


Cuando pruebe la accesibilidad de la aplicación, asegúrese de que esta se puede utilizar solo con el teclado, con los
modos de accesibilidad de iOS y Android, y que se puede navegar por ella correctamente con el lector de pantalla
habilitado.
Para la navegación con el teclado (con o sin el lector de pantalla), asegúrese de que se sigue un orden lógico
cuando se utiliza la tecla TAB para navegar por los campos de entrada mediante el establecimiento de la propiedad
TabIndex de cada control:
Controles de etiqueta, imagen, icono y forma: si representan elementos interactivos (es decir, botones)
establezca TabIndex en 0; Si son elementos decorativos o texto, establezca TabIndex en-1.
Evite establecer el índice de tabulación en un valor mayor que cero.

Soporte técnico para el lector de pantalla


Las siguientes combinaciones de software son las recomendaciones admitidas para consumir PowerApps con un
lector de pantalla:
Windows: Microsoft Edge/narrador
MacOS: Safari/VoiceOver
Android: Aplicación PowerApps/talkback
iOS: Aplicación PowerApps/VoiceOver
Para garantizar una experiencia satisfactoria con el lector de pantalla, se recomienda:
Asegurarse de que todos los controles de entrada tienen la propiedad AccessibilityLabel establecida.
Para las imágenes, establezca AccessibilityLabel en una descripción adecuada.
Si no se utiliza una imagen como un botón o un vínculo (es decir, el icono simplemente se utiliza como
decoración) y no la debe leer el lector de pantalla, asegúrese de que la propiedad AccessibilityLabel
está vacía o no está establecida.
Si una imagen o un icono se utiliza como un botón, establezca entonces TabIndex en 0 y
AccessibilityLabel en la descripción del vínculo.

Contenido multimedia
Asegúrese de todos los vídeos tienen subtítulos y una transcripción de todas las grabaciones de audio está
disponible para el usuario. El control de vídeo admite subtítulos en formato WebVTT a través de la propiedad
ClosedCaptionsUrl .
Tenga en cuenta que con el lector de pantalla habilitado, Timer no anuncia el texto del botón, sino cuánto tiempo
ha transcurrido. Los anuncios no se pueden desactivar, aunque el temporizador esté oculto con baja opacidad.

Trabajo con firmas


Si tiene un campo de firma que utiliza el control PenInput, debe habilitar un método alternativo de entrada de
firma. La manera recomendada es mostrar un control TextInput donde un usuario puede escribir su nombre.
Asegúrese de que las instrucciones para firmar se colocan en la propiedad AccessibilityLabel y el control se pone
cerca de la entrada de lápiz (a la derecha o inmediatamente debajo).
Relacionado:
Propiedades de accesibilidad
Usar el Comprobador de accesibilidad
Colores accesibles en PowerApps
Revisar una aplicación de lienzo para mejorar la
accesibilidad en PowerApps
23/11/2019 • 11 minutes to read

Los usuarios con discapacidades visuales, auditivas o de otro tipo pueden usar la aplicación de lienzo con más
facilidad y correctamente si tiene en cuenta la accesibilidad al diseñar el aspecto y el comportamiento de la
aplicación. Si no tiene claro cómo hacer que su aplicación sea más accesible, puede ejecutar el Comprobador de
accesibilidad en PowerApps Studio. Esta herramienta no solo busca posibles problemas de accesibilidad, sino que
también explica por qué cada uno de ellos podría ser un posible problema para los usuarios que tienen
discapacidades específicas y ofrece sugerencias sobre cómo resolver cada problema. El Comprobador de
accesibilidad detecta problemas de lector de pantalla y teclado y puede encontrar información sobre cómo
solucionar los problemas de contraste de color usando Colores accesibles.
El Comprobador de accesibilidad le ayuda a identificar la configuración que puede querer cambiar, pero siempre
debe tener en cuenta las sugerencias en el contexto de lo que debe hacer la aplicación. Muchas sugerencias
pueden merecer la pena, pero puede omitir cualquiera que pueda ser más dañina que beneficiosa.

Buscar problemas de accesibilidad


1. En la esquina superior derecha de PowerApps Studio, seleccione el icono para el Comprobador de
aplicaciones.

2. En el menú que aparece, seleccione Accesibilidad.

Aparece una lista de problemas, ordenados primero por gravedad y después por pantalla.
3. Seleccione la flecha situada junto a un elemento para mostrar sus detalles.
4. Seleccione la flecha Atrás para volver a la lista de elementos.
5. Si decide resolver un problema, selecciónelo para abrir la propiedad afectada.
6. Después de cambiar una o varias propiedades, seleccione Volver a comprobar para actualizar la lista de
problemas.
Los elementos resueltos desaparecerán de la lista y pueden aparecer nuevos elementos.

Gravedad de los problemas


El Comprobador de accesibilidad clasifica cada problema como un error, una advertencia o una sugerencia según
la gravedad del problema.
Los errores identifican problemas que hacen que la aplicación sea difícil o imposible de usar y comprender
para los usuarios que tienen discapacidades.
Las advertencias identifican problemas que hacen que la aplicación sea difícil de usar o entender para la
mayoría de los usuarios con discapacidades, pero no para todos.
Las sugerencias le ayudarán a mejorar la experiencia de los usuarios que tienen discapacidades.

Tipos de problemas
DESCRIPCIÓN DEL MOTIVO DE LA
TÍTULO DEL PROBLEMA GRAVEDAD PROBLEMA CÓMO CORREGIR CORRECCIÓN

Falta la etiqueta Error Cuando la propiedad Edite la propiedad de Si la propiedad de la


accesible de etiqueta accesible la etiqueta accesible etiqueta accesible no
de un control para describir el contiene texto, los
interactivo no elemento. usuarios que no
contiene texto. Un pueden ver la pantalla
control interactivo no entenderán lo que
puede ser aparece en las
inherentemente imágenes y los
interactivo, como lo controles.
es un botón, o tener
propiedades
interactivas. Por
ejemplo, es posible
que estableciese la
propiedad OnSelect
de una imagen o
estableciese su
propiedad TabIndex
en 0 o superior.

No se muestra el Error Cuando la propiedad Cambie la propiedad Si el foco no está


foco FocusBorderThickn FocusedBorderThic visible, los usuarios
ess de un control se kness a un valor que no usen un
establece en 0. Es mayor que 0. mouse no podrán
recomendable para verlo cuando
garantizar una interactúen con la
proporción de aplicación.
contraste de color
adecuada entre el
borde del foco y el
propio control para
que sea claramente
visible.

Faltan Advertencia Cuando la propiedad Establezca la Sin descripciones, es


descripciones ClosedCaptionsURL propiedad posible que las
de un control Audio ClosedCaptionsURL personas con
o Vídeo está vacía. para agregar la discapacidades no
dirección URL para las puedan comprender
descripciones. la información de un
segmento de vídeo o
audio.

Faltan valores de Advertencia Cuando cualquiera de Seleccione la Al cambiar la


configuración de varios valores (por advertencia y configuración de esta
control útiles ejemplo, mostrar las después establezca la propiedad, ofrecerá
etiquetas y los propiedad en true. más información al
marcadores para los usuario sobre cómo
gráficos, así como los funcionan los
controles controles de su
predeterminados aplicación.
para los controles
Audio, Vídeo y
Entrada manuscrita)
están desactivados.
DESCRIPCIÓN DEL MOTIVO DE LA
TÍTULO DEL PROBLEMA GRAVEDAD PROBLEMA CÓMO CORREGIR CORRECCIÓN

El archivo HTML no Advertencia Cuando un control Use otro método en La aplicación no


será accesible que no es un control lugar del archivo funcionará
de texto HTML HTML o quite el correctamente ni será
contiene HTML. En archivo HTML de este accesible si coloca
ese caso, PowerApps elemento. elementos HTML
no admite la interactivos.
accesibilidad de los
elementos HTML
personalizados.

Desactive el inicio Advertencia Cuando la propiedad Establezca la Los archivos de vídeo


automático Autostart de un propiedad Autostart y audio que se
control Audio o del control en false. reproducen
Vídeo está automáticamente
establecida en true. pueden distraer a los
usuarios. Permítales
elegir si quieren
reproducir un clip.

Revise el nombre Sugerencia Cuando una pantalla Asigne un nombre a Las personas que son
de la pantalla tiene un nombre la pantalla que ciegas, que tienen
predeterminado, que describa lo que deficiencia visual o
leerán los lectores de aparece en ella o su discapacidad de
pantalla cuando el uso. lectura dependen de
usuario navega por la los nombres en
aplicación. pantalla para navegar
mediante el lector de
pantalla.

Agregue texto de Sugerencia Cuando un control Establezca la Los usuarios no


indicación del tiene un estado, por propiedad obtendrán
estado ejemplo, un ShowValue del confirmación de sus
interruptor, pero las control en true para acciones si el estado
etiquetas de valor mostrar su estado del control no se
están desactivadas. actual. muestra.
DESCRIPCIÓN DEL MOTIVO DE LA
TÍTULO DEL PROBLEMA GRAVEDAD PROBLEMA CÓMO CORREGIR CORRECCIÓN

Compruebe el Sugerencia Cuando la propiedad Establezca todas las El orden de


orden de los TabIndex es mayor propiedades de navegación debe
elementos de la que 0. Los creadores TabIndex en 0 o-1 reflejar el orden en
pantalla de aplicaciones siempre que sea que los controles
pueden establecer posible. En lugar de aparecen en la
órdenes de usar TabIndex, use el pantalla, que es el
tabulación control de Grupo valor predeterminado.
personalizadas si se mejorado para Si se realizan ajustes
establece la cambiar el orden de manuales, es difícil
propiedad TabIndex navegación del valor mantener el orden
en un valor mayor predeterminado. Si se correcto
que 0, pero se deben usar valores de especialmente en la
desaconseja TabIndex mayores presencia de la barra
encarecidamente que 0, asegúrese de de direcciones del
porque es difícil de que los elementos de explorador y otros
obtener, mantener y pantalla coincidan controles fuera de la
romper los lectores con el orden en el aplicación. Esto puede
de pantalla. que desea realizar las dificultar el uso de un
tabulaciones. lector de pantalla.
Cuando el lector de
pantalla lo lee, los
controles deben
aparecer en el mismo
orden en el que
aparecen en la
pantalla, en lugar de
un orden que sea
menos intuitivo.

Agregue otro Sugerencia Cuando una Agregue un control Algunos usuarios no


método de entrada aplicación contiene Entrada de texto pueden usar un lápiz
un control Lápiz. Esta además del control y necesitan otro
sugerencia le Lápiz para ofrecer método para indicar
recuerda que incluya una experiencia información como,
un método de accesible. por ejemplo, teclear
entrada una firma.
independiente.

Pasos siguientes
Creación de aplicaciones accesibles
Colores accesibles
Propiedades de accesibilidad
Colores accesibles en aplicaciones de lienzo de
PowerApps
07/10/2019 • 4 minutes to read

Los colores utilizados en una aplicación de lienzo deben ser accesibles para los usuarios daltónicos y con
deficiencia visual. Todos los temas de PowerApps son accesibles de forma predeterminada. Si desea
modificar los colores utilizados en una aplicación, siga estas instrucciones para asegurarse de que sean
accesibles. Hay varias herramientas disponibles en línea que pueden ayudarle a identificar problemas de
contraste de color.

Contraste mínimo para el texto


El texto y su fondo deben tener al menos una relación de contraste 4.5:1
El texto grande debe tener una relación de contraste de al menos 3:1
El texto deshabilitado no tiene ningún requisito de contraste
En términos prácticos, todos los controles interactivos deben tener el contraste de color adecuado entre:
Color y Fill
PressedColor y PressedFill
HoverColor y HoverFill

Contraste mínimo para no texto


NOTE
En el estándar WCAG 2.0, los requisitos de contraste solo se aplican al texto. Para una mayor accesibilidad, tenga
en cuenta las próximas orientaciones de contraste de WCAG 2.1 para los componentes de interfaz de usuario
esenciales, como los botones de los iconos. Se recomienda una proporción mínima de 3:1 para estos
componentes. Las instrucciones descritas en esta sección son opcionales para el cumplimiento de WCAG 2,0.

Componentes de la interfaz de usuario


Todos los controles interactivos deben tener el contraste de color adecuado entre:
FocusedBorderColor y el color situado fuera del control
Es necesario realizar comprobaciones de contraste de color adicionales para los controles donde el área
completa es interactiva o informativa. Por ejemplo, un Botón o un Icono que se utiliza como botón. Esto
garantiza que los límites del control están claros y que los usuarios sabe dónde pueden hacer clic o
pulsar.
Si hay un borde para tales controles, debería haber contraste de color adecuado entre:
BorderColor y el color situado fuera del control
PressedBorderColor y el color situado fuera del control
HoverBorderColor y el color situado fuera del control
Si no hay ningún borde, debería haber un contraste de color adecuado entre:
Fill y el color situado fuera del control
PressedFill y el color situado fuera del control
HoverFill y el color situado fuera del control
Objetos gráficos
Si una imagen transmite información importante, considere la posibilidad de comprobar los problemas
de contraste. Esto se aplica a los controles donde se puede mostrar una imagen: Audio , imagen ,
micrófono y vídeo .
En el caso del contenido de vídeo, considere la comprobación de los problemas de contraste. De forma
alternativa o adicional, proporcione subtítulos que describan el vídeo.

Provisión de otras indicaciones visuales


Asegúrese de que la aplicación no transmite información con solo color. Por ejemplo, los usuarios que no
puedan distinguir el color rojo no serán capaces de diferenciar un mensaje de error rojo de un mensaje
de éxito verde.
Indicaciones adicionales, como un icono o estilos de texto, como cursiva y subrayado , pueden ayudar
a transmitir el significado.

Pasos siguientes
Obtenga información sobre las propiedades de accesibilidad en los controles de PowerApps e intente
usar el Comprobador de accesibilidad.
Mostrar u ocultar el contenido de las tecnologías de
asistencia para las aplicaciones de lienzo
30/05/2019 • 2 minutes to read

En la mayoría de los casos, todos los usuarios puedan tener acceso a todo el contenido, pero en ocasiones es
posible que desee mostrar contenido únicamente a los usuarios de visión reducidos o solo a los usuarios de lector
de pantalla. Por ejemplo, es posible que desea que los usuarios de lector de pantalla solo para tener acceso a las
descripciones de las tendencias del gráfico que sean evidentes para los usuarios de visión reducidos. También
puede ocultar un icono de usuarios de lector de pantalla si lo describe una etiqueta adyacente. Otra descripción en
el icono sería innecesariamente detallado.

Ocultar el contenido de todos los usuarios


Establecer Visible en false.

Ocultar el contenido de los usuarios de visión reducidos y mostrarla a


los usuarios de lector de pantalla
Use cualquiera de estas técnicas:
Establecer tamaño en 0.
Establecer ancho y alto en 1.
Establecer X , Y , o ambas propiedades tal que el control está fuera de la pantalla.
Establecer Color y las propiedades relacionadas con transparente.
Colocar un rectángulo forma anteriormente el contenido y el conjunto rellenar en el mismo color que el color
de fondo de la pantalla.

NOTE
Los usuarios todavía pueden usar un teclado para tener acceso a un control interactivo, como un botón , aunque se oculte
utilizando una de las técnicas de la lista anterior. Establecer TabIndex en -1 si desea impedir que los usuarios acceso al
control presionando la tecla Tab.

Ocultar el contenido de los usuarios de lector de pantalla y mostrarla a


los usuarios de visión reducidos
Para imagen , icono , y forma establecer controles, AccessibleLabel en la cadena vacía "".

Pasos siguientes
Obtenga información sobre propiedades de accesibilidad de controles en las aplicaciones de lienzo.
Anunciar cambios dinámicos con las regiones activas
para las aplicaciones de lienzo
30/05/2019 • 4 minutes to read

Cambios dinámicos representan desafíos para la discapacidad visual. Los usuarios que tienen acceso a una
aplicación a través de un lector de pantalla se centran en una parte de la aplicación. Si se produce un cambio en
otra parte, esos usuarios no ser conscientes de ello.
Puede resolver este problema mediante la adición de las regiones activas que realizan un seguimiento de los
lectores de pantalla. Si se cambia el contenido en una región activa, un lector de pantalla anunciará ese cambio.
El mecanismo subyacente para las regiones activas están regiones aria-live, por lo que se aplican las mismas
directrices.

Ejemplos de usos de las regiones activas


Puede usar las regiones activas para notificar a los usuarios cuando se producen eventos como los siguientes:
Se produce un error de validación en un formulario.
Una acción desencadenada por un botón es correcta. Por ejemplo, un usuario puede seleccionar un botón para
agregar un elemento a una colección y una región activa puede mostrar el mensaje de "Elemento agregado".
El usuario selecciona una ficha diferente.
Un temporizador en segundo plano actualiza un suministro de noticias.

Crear y configurar una región activa


Puede configurar solo un etiqueta control como una región activa. Su Live propiedad determina el tipo de
región activa.
Off: No es una región activa. Los lectores de pantalla no anuncian los cambios.
Cortés: Los lectores de pantalla anuncian los cambios después de finalizar hablando. Use este valor para las
notificaciones no críticas que no requieren atención inmediata.
Seguro de sí mismo: Los lectores de pantalla de interrupción a sí mismos para anunciar los cambios
inmediatamente. Utilice esto para las notificaciones críticas que requieren atención inmediata.
Si cambia el contenido de texto de una región activa, los lectores de pantalla anunciarán el contenido de texto
completo, no solo la parte modificada. Si el valor de la texto propiedad está establecida en una cadena vacía "" ,
el lector de pantalla no anuncia nada.
Para repetir un mensaje, borrar el contenido de texto estableciendo el valor de la texto propiedad en la cadena
vacía "" y, a continuación, establezca el valor para el mensaje.

Procedimientos recomendados
Establezca siempre Visible en true. Algunos lectores de pantalla no detectan las regiones activas que
desaparecen y vuelva a aparecer.
Evite cambiar el valor de Live . Algunos lectores no detectan cuando una región en vivo no se convierte en
vivo de pantalla y viceversa.
Coloque la región activa en una posición lógica en la aplicación, aunque no estén visible. Asegúrese de que su
contenido es razonable en contexto con los elementos antes y después. Los usuarios pueden acceder una
región activa en cualquier momento mediante la navegación normal con un lector de pantalla, no solo cuando
se producen cambios.

Pasos siguientes
Obtenga información sobre cómo mostrar contenido únicamente a los lectores de pantalla si la región activa debe
ocultarse de visión reducida a los usuarios.
Descripción de las características experimentales, de
vista previa y en desuso en PowerApps
13/11/2019 • 13 minutes to read

Con cada versión, se realizan cambios y agregan características para transformar PowerApps en la mejor
herramienta para satisfacer sus necesidades. Hacemos que avance el producto.
Nos tomamos muy en serio la compatibilidad con versiones anteriores. Sin embargo, con cualquier cambio o
mejora, es posible que causemos un efecto secundario no deseado y la aplicación podría no funcionar exactamente
igual a como lo hacía antes.
Para ayudar a equilibrar las mejoras y el impacto en las aplicaciones existentes, sometemos a las características
más grandes a una progresión de fases. En este artículo se describe este proceso y cómo puede controlar su
exposición a las características que están en desarrollo.

Fases de puesta en servicio de características


Las características pasan por tres fases en el proceso para convertirse en partes oficiales del producto:
1. Experimental: esta característica es un proyecto en desarrollo. No empiece a depender de ella aún, podría
sufrir cambios significativos.
2. Versión preliminar: esta característica está casi lista y es estable. Ahora se comienzan a migrar aplicaciones
existentes a ella.
3. Enviada: esta característica está completada. Todas las aplicaciones tienen esta característica habilitada y no se
puede desactivar esta función.
En cada fase, el número de personas que usan la característica aumenta, lo que nos ayuda a validar que la
característica es lo que necesita y que no se presentan efectos secundarios imprevistos.
Sus comentarios son esenciales para este proceso. Envíenos sus comentarios en el foro de la comunidad de
PowerApps.
¿Cuánto tiempo pasa una característica en cada fase? Esto varía para cada característica. Nos centramos en muchos
factores, como el número de aplicaciones que usan la característica, el número de problemas notificados y la
urgencia con la que se necesita. Las características pueden permanecer en una fase desde unas semanas a muchos
meses. También se pueden omitir algunas fases si no creemos que le resulte útil.
Esta tabla puede ayudarle a decidir cuándo debe empezar a usarlas:

¿PUEDO USARLA CON CONFIANZA? ¿ESTÁ


HABILITADA DE FORMA PREDETERMINADA
FASE ¿CUÁNDO DEBO USARLO? PARA LAS NUEVAS APLICACIONES?

Experimental Si es un usuario pionero, ve algo útil No. Las características experimentales


para usted y quiere ayudar a probar la pueden cambiar radicalmente o
característica. desaparecer por completo en cualquier
momento. Por esta razón, la
característica no está habilitada de
forma predeterminada y debe optar
explícitamente a usarla.
¿PUEDO USARLA CON CONFIANZA? ¿ESTÁ
HABILITADA DE FORMA PREDETERMINADA
FASE ¿CUÁNDO DEBO USARLO? PARA LAS NUEVAS APLICACIONES?

Versión preliminar Las nuevas aplicaciones incluyen Sí. Esta característica está en camino de
automáticamente esta característica, convertirse en parte permanente del
pero todavía se puede desactivar. Se producto. Es posible que quiera
comienza a habilitar y probar en las desactivarla si surge un problema.
aplicaciones existentes porque con el Informe de los problemas, esta es la
tiempo esta característica también razón principal por la cual la
estará disponible para ellas. característica está en versión preliminar.

Vista previa (validación de final) En el caso de algunas características que Sí. Puede usar esta característica con
podrían tener un gran impacto, confianza, lo que está muy cerca de ser
podemos tomar el paso adicional más permanente. Es posible que quiera
allá de la vista previa de forzar el desactivarla si surge un problema.
cambio de características una vez para Informe de los problemas encontrados.
las aplicaciones existentes cuando se
abren en el estudio. En caso de que se
produzca un problema, la característica
todavía se puede desactivar y sus
comentarios son fundamentales antes
de llevar a cabo el siguiente paso.

Se incluye en nuevas aplicaciones de Todas las aplicaciones nuevas tienen Sí.


esta característica activada y no se
puede desactivar. En el caso de las
aplicaciones existentes en las que la
característica está desactivada, la
característica se seguirá mostrando
como una característica de vista previa
hasta que se active. Si está activado y el
conmutador deja de estar disponible,
puede restaurar la aplicación a una
versión anterior para volver a un estado
anterior a la habilitación de la
característica.

Se incluye para todas aplicaciones Todas las aplicaciones tienen esta Sí.
característica y no se pueden
deshabilitar.

Documentación
¿Dónde se puede encontrar información sobre estas características? Las características en versión preliminar se
tratan como características terminadas y se puede obtener más información acerca de ellas como lo haría con
cualquier otra característica del producto:
Documentación de PowerApps. Le proporcionaremos los conceptos básicos sobre la nueva característica: sus
ventajas, cómo empezar a usarla e información de referencia.
Foro de la comunidad de PowerApps. Otros explorarán la nueva característica con usted. Aprenda de sus
experiencias y comparta las suyas.
Blog de PowerApps. A menudo, pero no siempre, una entrada de blog acompaña a una nueva característica.
Las características experimentales son diferentes. Son proyectos en desarrollo y no considera que estén terminadas.
La breve descripción disponible en el panel Configuración de la aplicación (ver abajo) podría ser la única
información acerca de ellas. Las características experimentales no aparecen normalmente en la documentación. El
foro de la comunidad probablemente es la mejor fuente de información. En algunos casos, una entrada de blog
temprana describe la característica. Si no encuentra suficiente información, pregunte en los foros o espere a que la
característica pase a la fase de versión preliminar.

Controlar qué características están habilitadas


Las características experimentales y en versión preliminar se muestran en la Configuración avanzada de la
aplicación. En la aplicación, seleccione el menú Archivo, seleccione Configuración de la aplicación y después
seleccione Configuración avanzada. Desplácese hacia abajo hasta las secciones Características en versión
preliminar y Características experimentales:

Cada característica tiene un interruptor. Desactivada significa que la característica está deshabilitada. Tener todos
los interruptores desactivados es la forma prevista y más segura para ejecutar la aplicación.
En algunos casos, es posible que deba cerrar y volver a abrir la aplicación después de cambiar una configuración. La
descripción de la característica debería indicar cuándo debe realizar este paso.
En la parte superior del panel Configuración avanzada puede encontrar la configuración de las características
con distribución completa que no están en fase experimental o de versión preliminar y de las que puede depender
por completo.
Esta configuración es específica para cada aplicación, por lo que un interruptor solo afecta a la aplicación que está
abierta actualmente. Si crea una aplicación, estos interruptores vuelven a sus valores predeterminados para esa
aplicación.

Desuso de características
A veces es necesario retirar una característica. A menudo, esto se produce cuando hay una nueva forma de realizar
una tarea. También se eliminan las características poco populares, ya que todas las características requieren cierta
sobrecarga para mantenerse al día de los cambios en el producto.
El desuso de las características también pasa por las fases. Las características son únicas y no todas las
características se utilizarán en todas las fases.
¿PUEDO USARLA CON CONFIANZA? ¿ESTÁ
HABILITADA DE FORMA PREDETERMINADA
FASE ¿CUÁNDO DEBO USARLO? PARA LAS NUEVAS APLICACIONES?

En desuso Las aplicaciones existentes pueden Sí, todavía puede usar la característica
seguir usando esta característica con confianza. Pero estará disponible
durante un tiempo limitado. Todavía pronto. Por esta razón, debe optar
puede activar la característica para las explícitamente por usar la característica
nuevas aplicaciones. Es el momento de en nuevas aplicaciones y no se
evaluar alternativas. recomienda.

Obsoleto (última ADVERTENCIA) En el caso de algunas características que No. La característica está a punto de
podrían tener un gran impacto, es quitarse de forma permanente. Debe
posible que se tarde el paso más en optar explícitamente a usar la
desuso de forzar la desactivación de la característica y no se recomienda.
característica una vez para las
aplicaciones existentes la próxima vez
que se abran en el estudio. En caso de
que se produzca un problema, la
característica se puede volver a activar, y
sus comentarios son fundamentales
antes de llevar a cabo el siguiente paso.

Se quitó para nuevas aplicaciones de Todas las aplicaciones nuevas tienen No. La característica está a punto de
esta característica desactivada y no se quitarse de forma permanente. La
puede habilitar. En el caso de las característica ya no está disponible para
aplicaciones existentes en las que la las nuevas aplicaciones.
característica está activada, la
característica seguirá apareciendo como
una característica desusada hasta que
esté desactivada. Si está desactivado y el
modificador de características deja de
estar disponible, puede restaurar la
aplicación a una versión anterior para
volver a un estado anterior a la
deshabilitación de la característica.

Se quitó para todas aplicaciones La característica no está disponible para No.


todas las aplicaciones.
Almacenamiento y publicación de una aplicación de
lienzo en PowerApps
05/11/2019 • 4 minutes to read

Siempre que guarde cambios en una aplicación de lienzo, se publican automáticamente solo para usted y para
quien tenga permisos para modificar la aplicación. Cuando termine de realizar cambios, publíquelos
explícitamente para que estén disponibles para todos los usuarios con los que se comparta la aplicación.
Para información sobre cómo compartir una aplicación, consulte Compartir una aplicación.

Guardar cambios en una aplicación


En PowerApps Studio, pulse o haga clic en Guardar en el menú Archivo (en el borde izquierdo) y siga cualquiera
de estos pasos:
Si no ha guardado la aplicación nunca, proporciónele un nombre y pulse o haga clic en Guardar.

Si alguna vez ha guardado la aplicación, pulse o haga clic en Guardar.


PowerApps también puede guardar la aplicación periódicamente cada 2 minutos. Si ha guardado la aplicación una
vez, PowerApps volverá a guardar una versión de ella periódicamente sin que el usuario tenga que hacer clic o
pulsar la acción Guardar. Los autores pueden habilitar o deshabilitar la opción Guardado automático de la
pestaña Cuenta del menú Archivo.

Publicar una aplicación


1. En PowerApps Studio, pulse o haga clic en Guardar en el menú Archivo (en el borde izquierdo) y, después,
en Publicar esta versión.

2. En el cuadro de diálogo Publicar, pulse o haga clic en Publicar esta versión para publicar la aplicación
para todos los usuarios con los que se comparte la aplicación.
NOTE
Siempre que publique una aplicación de lienzo, esta se actualizará para ejecutarse en la versión más reciente de
PowerApps, lo que significa que obtendrá las ventajas de todas las características más recientes y las actualizaciones
de rendimiento que se han agregado desde que publicó por última vez. Si no ha publicado una actualización desde
hace varios meses, probablemente verá una mejora de rendimiento inmediata al volver a publicar ahora.

Identificar la versión activa


En powerapps.com, pulse o haga clic en Aplicaciones en el menú Archivo (en el borde izquierdo), después en el
icono de detalles para una aplicación y, por último, en la pestaña Versiones.
La versión Activa está publicada para todos los usuarios con quien se comparte la aplicación. La versión más
reciente de cualquier aplicación está disponible solo para quienes tienen permisos de edición para ella.

Para publicar la versión más reciente, pulse o haga clic en Publicar esta versión y pulse o haga clic en Publicar
esta versión en el cuadro de diálogo Publicar.

Pasos siguientes
Busque y ejecute la aplicación en un Explorador o en un teléfono.
Cambie el nombre de una aplicación desde powerapps.com.
Restaure una aplicación si tiene varias versiones de una aplicación.
Compartir una aplicación de lienzo en
PowerApps
23/11/2019 • 26 minutes to read

Después de compilar una aplicación que responde a una necesidad empresarial, especifique qué usuarios
de su organización pueden ejecutarla y cuáles pueden modificarla e incluso volver a compartirla.
Especifique cada usuario por nombre, o indique un grupo de seguridad en Azure Active Directory. Si todos
los usuarios se beneficiarán de la aplicación, especifique que toda la organización puede ejecutarla.

IMPORTANT
Para que una aplicación compartida funcione como se espera, también debe administrar los permisos para el origen
de datos o los orígenes en los que se basa la aplicación, como Common Data Service o Excel. Es posible que también
deba compartir otros recursos de los que depende la aplicación, como flujos, puertas de enlace o conexiones.

Requisitos previos
Para poder compartir una aplicación, debe guardarla en la nube, no de forma local, y después publicarla.
Asigne a la aplicación un nombre descriptivo y una descripción clara, para que los usuarios sepan
qué hace la aplicación y puedan encontrarla fácilmente en una lista. En el menú Archivo en
PowerApps Studio, seleccione Configuración de la aplicación, especifique un nombre y después
escriba o pegue una descripción.
Siempre que realice cambios, debe guardar y volver a publicar la aplicación si desea que otros
usuarios puedan verlos.

Compartir una aplicación


1. Inicie sesión en PowerApps y después seleccione Aplicaciones cerca del borde izquierdo.

2. Seleccione la aplicación que desea compartir seleccionando su icono.


3. En el banner, seleccione compartir.

4. Especifique el nombre o el alias de los usuarios o grupos de seguridad de Azure Active Directory
con los que desea compartir la aplicación.
Para que toda la organización pueda ejecutar la aplicación (pero no modificarla ni compartirla),
escriba todos en el panel de uso compartido.
Puede compartir una aplicación con una lista de alias, nombres descriptivos o una combinación
de ellos (por ejemplo, Jane Doe <jane.doe@contoso.com> ) si los elementos están separados
por punto y coma. Si hay más de una persona con el mismo nombre pero con distintos alias, se
agregará a la lista la primera persona encontrada. Aparece una información sobre herramientas
si un nombre o alias ya tiene permiso o no se puede resolver.

NOTE
No se puede compartir una aplicación con un grupo de distribución de la organización o con un grupo ajeno
a la organización.

5. Si quiere permitir que los usuarios con quienes está compartiendo la aplicación la editen y lo
compartan (además de ejecutarlo), active la casilla copropietario .
No se puede conceder el permiso de copropietario a un grupo de seguridad si se ha creado la
aplicación desde una solución.

NOTE
Independientemente de los permisos, no hay dos personas que puedan editar una aplicación al mismo
tiempo. Si una persona abre la aplicación para su edición, otras personas pueden ejecutarla, pero no
modificarla.

6. Si la aplicación se conecta a los datos para los que los usuarios necesitan permisos de acceso,
especifíquelo.
Por ejemplo, la aplicación podría conectarse a una entidad en una base de datos de Common Data
Service. Cuando comparta una aplicación de este tipo, el panel de uso compartido le pedirá que
administre la seguridad de esa entidad.
Para obtener más información sobre la administración de la seguridad de una entidad, vea
administrar permisos de entidad más adelante en este tema.
7. Si desea ayudar a los usuarios a encontrar la aplicación, active la casilla enviar una invitación por
correo electrónico a los nuevos usuarios .
8. En la parte inferior del panel compartir, seleccione compartir.
Todos los usuarios con quienes haya compartido la aplicación pueden ejecutarla en PowerApps
Mobile en un dispositivo móvil o en AppSource en Dynamics 365 en un explorador. Los
copropietarios pueden editar y compartir la aplicación en PowerApps.
Si ha enviado una invitación por correo electrónico, todos los usuarios con quienes haya
compartido la aplicación pueden ejecutarla seleccionando un vínculo en la invitación.
Si un usuario selecciona el vínculo en un dispositivo móvil, la aplicación se abre en PowerApps
Mobile.
Si un usuario selecciona el vínculo en un equipo de escritorio, la aplicación se abre en un
explorador.
Los copropietarios que reciben una invitación obtienen otro vínculo que abre la aplicación para su
edición en PowerApps Studio.
Para cambiar los permisos de un usuario o un grupo de seguridad, seleccione su nombre y, a continuación,
realice cualquiera de estos pasos:
Para permitir que los copropietarios ejecuten la aplicación pero ya no la editen ni compartirla,
desactive la casilla copropietario.
Para dejar de compartir la aplicación con ese usuario o grupo, seleccione el icono Quitar (x).

Consideraciones de grupo de seguridad


Si comparte una aplicación con un grupo de seguridad, los miembros de ese grupo y cualquiera que
se una a él tendrán los permisos que especifique para dicho grupo. Cualquier persona que
abandone el grupo perderá esos permisos a menos que pertenezca a un grupo diferente que tenga
acceso o le otorgue permisos como usuario individual.
Todos los miembros de un grupo de seguridad tienen los mismos permisos para una aplicación que
el grupo general. Sin embargo, puede especificar mayores permisos para uno o varios miembros de
ese grupo para permitirles mayor acceso. Por ejemplo, puede conceder a un grupo de seguridad un
permiso para ejecutar una aplicación, pero también puede proporcionar al usuario B, que pertenece
a ese grupo, el permiso de copropietario . Todos los miembros del grupo de seguridad pueden
ejecutar la aplicación, pero solo el usuario B puede modificarla. Si concede al grupo de seguridad un
permiso de copropietario y el permiso de usuario B para ejecutar la aplicación, ese usuario todavía
puede editar la aplicación.

Administrar permisos de entidad


Common Data Service
Si crea una aplicación basada en Common Data Service, también debe asegurarse de que los usuarios con
quienes comparte la aplicación tengan los permisos adecuados para la entidad o entidades en las que se
basa la aplicación. En concreto, los usuarios deben pertenecer a un rol de seguridad que pueda realizar
tareas como crear, leer, escribir y eliminar registros relevantes. En muchos casos, querrá crear uno o varios
roles de seguridad personalizados con los permisos exactos que los usuarios necesitan para ejecutar la
aplicación. Después, puede asignar un rol a cada usuario según corresponda.
NOTE
En el que se redactó este artículo, puede asignar roles de seguridad a usuarios individuales y grupos de seguridad
en Azure Active Directory pero no a grupos de Office.

Requisito previo
Para asignar un rol, debe tener permisos de Administrador del sistema para una base de datos de
Common Data Service.
Asignación de un grupo de seguridad en Azure AD a un rol
1. En el panel uso compartido, seleccione asignar un rol de seguridad en permisos de datos.
2. Seleccione el rol o los roles de Common Data Service que desea asignar al usuario o al grupo de
seguridad en Azure AD con el que desea compartir la aplicación.

Common Data Service (versión anterior)


Cuando comparte una aplicación basada en una versión anterior de Common Data Service, debe
compartir el permiso de tiempo de ejecución con el servicio por separado. Si no tiene permiso para
hacerlo, consulte al administrador del entorno.

Compartir con invitados


Las aplicaciones de lienzo de PowerApps se pueden compartir con los usuarios invitados de un inquilino
de Azure Active Directory. Esto permite invitar a socios comerciales externos, contratistas y terceros a
ejecutar las aplicaciones de lienzo de la empresa.

NOTE
Los invitados solo pueden tener asignado el rol de usuario y no el rol de copropietario para las aplicaciones que
se comparten con ellos.

Requisitos previos
En Azure Active Directory (Azure AD ), habilite la colaboración externa B2B para el inquilino. Más
información: Habilitar la colaboración externa B2B y administrar quién puede invitar a invitados
Habilitar la colaboración externa B2B está activada de forma predeterminada. Sin embargo, un
administrador de inquilinos puede cambiar la configuración. Para obtener más información
acerca de Azure AD B2B, consulte ¿Qué es el acceso de usuarios invitados en Azure ad B2B?
Acceso a una cuenta que puede Agregar usuarios invitados a un inquilino de Azure AD. Los
administradores y los usuarios con el rol de invitador invitado pueden agregar invitados a un inquilino.
El usuario invitado debe tener una licencia con Power apps que use derechos que coincidan con la
capacidad de la aplicación asignada a través de uno de los siguientes inquilinos:
El inquilino que hospeda la aplicación que se comparte.
El inquilino principal del usuario Guest.
Pasos para conceder acceso de invitado
1. Seleccione nuevo usuario invitado para agregar usuarios invitados en Azure ad. Más información:
Inicio rápido: agregar un nuevo usuario invitado en Azure ad.

2. Si el usuario invitado todavía no tiene una licencia en su inquilino principal, asigne una licencia al
usuario invitado.
Para asignar usuarios invitados desde admin.microsoft.com, consulte asignación de licencias a un
usuario.
Para asignar usuarios invitados desde portal.azure.com, consulte asignación o eliminación de
licencias.

IMPORTANT
Es posible que tenga que deshabilitar la vista previa del centro de administración de Microsoft 365 para
asignar una licencia a un invitado.

3. Compartir la aplicación Canvas.


a. Iniciar sesión en https://make.powerapps.com
b. Vaya a aplicaciones, seleccione una aplicación de lienzo y, en la barra de comandos, seleccione
compartir.
c. Escriba una dirección de correo electrónico para un usuario invitado de un inquilino de Azure
AD. Más información: ¿Qué es el acceso de usuarios invitados en Azure ad B2B?
Después de compartir una aplicación para el acceso de invitado, los invitados pueden detectar y acceder a
las aplicaciones compartidas con ellas desde el correo electrónico que se les envía como parte del uso
compartido.

Preguntas más frecuentes


¿ Cuál es la diferencia entre el acceso de invitado de la aplicación de lienzo y los portales de PowerApps?
Las aplicaciones de lienzo permiten compilar una aplicación, adaptada a la digitalización de procesos
empresariales, sin necesidad de escribir código C#en un lenguaje de programación tradicional como. El
acceso de invitado para las aplicaciones de canvas permite a los equipos de personas compuestas por
diferentes organizaciones que participan en un proceso empresarial común tener acceso a los mismos
recursos de la aplicación que se pueden integrar con una amplia variedad de orígenes de Microsoft y de
terceros. Más información: información general de los conectores de canvas-app para PowerApps.
Los portales de PowerAppsproporcionan la capacidad de compilar sitios web con capacidad de respuesta
de bajo código que permiten a los usuarios externos interactuar con los datos almacenados en Common
Data Service. Permite a las organizaciones crear sitios web que se pueden compartir con usuarios externos
a su organización, ya sea de forma anónima o a través del proveedor de inicio de sesión de su elección,
como LinkedIn, una cuenta de Microsoft u otros proveedores de inicio de sesión comerciales.
En la tabla siguiente se describen algunas diferencias de funcionalidad principales entre portales y
aplicaciones de lienzo de PowerApps.

ORÍGENES DE DATOS
INTERFAZ AUTENTICACIÓN ACCESIBLES

Portales de PowerApps Experiencia solo en Permite el acceso anónimo Common Data Service
explorador y autenticado

Aplicaciones de lienzo Exploradores y Requiere autenticación a Todos los conectores


aplicaciones móviles través de Azure AD integrados de ~ 150 y
cualquier conector
personalizado

¿ Pueden los invitados tener acceso a formularios personalizados en SharePoint?


Sí. Cualquier usuario que pueda acceder a una lista de SharePoint con un formulario personalizado puede
crear y editar los elementos de la lista mediante el formulario, sin ninguna licencia de Power apps.
¿ Pueden los invitados acceder a las aplicaciones incrustadas en SharePoint?
Sí. Sin embargo, el acceso a las aplicaciones independientes de canvas requiere una licencia con Power
apps que use derechos que coincidan con la funcionalidad de la aplicación, incluidas las aplicaciones que se
insertan. Al insertar una aplicación Canvas en SharePoint a través del control Microsoft PowerApps
embed, escriba el identificador de la aplicación. Para ello, escriba el identificador de la aplicación en el
cuadro vínculo Web de la aplicación o identificador .

Al incrustar una aplicación de lienzo en SharePoint a través de la etiqueta HTML de iFrame, haga
referencia a la aplicación con la dirección URL completa de Web. Para buscar la dirección URL, vaya a
https://make.powerapps.com, seleccione una aplicación, seleccione la pestaña detalles y la dirección URL
se muestra en vínculo Web.
¿ Cómo pueden iniciar los invitados la aplicación compartida con ellos, pero no se pueden crear las conexiones?
Al igual que con los no invitados, los orígenes de datos subyacentes a los que tiene acceso la aplicación
también deben ser accesibles para el invitado.
¿ Qué licencia debe asignarse a mi invitado para poder ejecutar una aplicación compartida con ellas?
La misma licencia necesaria para que los usuarios no invitados ejecuten una aplicación. Por ejemplo, si la
aplicación usa los conectables Premium, se debe asignar al invitado un PowerApps por cada plan de
aplicación o uno por cada plan de usuario.

APLICACIÓN DE APLICACIÓN DE
LIENZO LIENZO
FORMULARIO INDEPENDIENTE CON INDEPENDIENTE CON APLICACIÓN
PERSONALIZADO DE CONECTORES NO CONECTORES CONTROLADA POR
SHAREPOINT PREMIUM PREMIUM MODELOS

Usuario de x
SharePoint (sin
licencia de PA)

Power apps incluido x x


en la oficina

Power apps por x x x x


plan de aplicación

Power apps por x x x x


plan de usuario

En PowerApps Mobile, ¿cómo ven los invitados las aplicaciones de su inquilino principal?
Cualquier usuario que tenga acceso a una aplicación de lienzo, en su dispositivo móvil, que se publique en
un inquilino de Azure AD que no sea su inquilino principal debe cerrar la sesión de PowerApps y volver a
iniciar sesión en PowerApps Mobile.
¿ Un invitado debe aceptar la invitación Azure AD invitado antes de compartir una aplicación con el invitado?
No. Si un invitado inicia una aplicación compartida con ellos antes de aceptar una invitación de invitado, se
solicitará al invitado que acepte la invitación como parte de la experiencia de inicio de sesión mientras se
inicia la aplicación.
¿ Qué Azure AD inquilino son las conexiones para un usuario invitado creado en?
Las conexiones para una aplicación siempre se realizan en el contexto del inquilino de Azure AD la
aplicación está asociada. Por ejemplo, si se crea una aplicación en el inquilino de Contoso, las conexiones
realizadas para los usuarios internos e invitados de Contoso se realizan en el contexto del inquilino de
contoso.
¿ Pueden los invitados usar Microsoft Graph mediante Microsoft Security Graph Connector o un conector personalizado
mediante Microsoft Graph API?
No, Azure AD invitados no pueden consultar Microsoft Graph para recuperar información de un inquilino
en el que son invitados.
¿ Qué directivas de Intune se aplican a los invitados que usan mi PowerApps?
Intune solo aplica las directivas del inquilino principal de un usuario. Por ejemplo, si Alice@Contoso.com
comparte una aplicación con Vikram@Fabrikam.com, Intune seguirá aplicando las directivas de
Fabrikam.com en el dispositivo de Virkam independientemente del PowerApps que ejecute.
¿ Qué conectores admiten el acceso de invitado?
Todos los conectores que no realizan Azure AD autenticación de cualquier tipo admiten el acceso de
invitado. En la tabla siguiente se enumeran todos los conectores que realizan la autenticación Azure AD y
los conectores que admiten actualmente el acceso de invitado. Muchos de ellos se actualizarán a la
disponibilidad general.

CONECTORES ADMITE EL ACCESO DE INVITADO

10to8 Appointment Scheduling No

Adobe Creative Cloud No

Adobe Sign No

Asana No

Administrador de AtBot No

Lógica de AtBot No

Azure AD Sí

Azure Automation Sí

Instancia de Azure Container Sí

Azure Data Factory Sí

Azure Data Lake Sí

DevOps de Azure No

Azure Event Grid No

IoT Central de Azure Sí

Azure Key Vault No


CONECTORES ADMITE EL ACCESO DE INVITADO

Kusto de Azure Sí

Azure Log Analytics Sí

Azure Resource Manager Sí

Basecamp 2 No

Bitbucket No

Bitly No

bttn No

Buffer No

Centro de negocios No

CandidateZip No

Cápsula CRM No

Administración de PKI de nube No

Cognito Forms No

Common Data Service No

Common Data Service (heredado) No

Optimizador D & B No

Derdack convierte SIGNL4 No

Disqus No

Combinación de documentos No

Dynamics 365 No

Dynamics 365 AI para ventas Sí

Dynamics 365 para operaciones de fin & No

Enadoc No

Eventbrite No

Excel online (Business) No


CONECTORES ADMITE EL ACCESO DE INVITADO

Excel online (OneDrive) No

Recordatorio de expiración No

FreshBooks No

GoToMeeting No

GoToTraining No

GoToWebinar No

Harvest No

HTTP con Azure AD No

Infusionsoft No

Inoreader No

Intercom No

JotForm No

kintone No

LinkedIn No

Centro de contenido de marketing No

Mediana No

Metatarea No

Microsoft Forms No

Microsoft Forms Pro No

Seguridad de Microsoft Graph No

Microsoft Kaizala No

Microsoft School Data Sync No

Microsoft StaffHub No

Microsoft Teams Sí

Microsoft to-do (Business) No


CONECTORES ADMITE EL ACCESO DE INVITADO

Muhimbi PDF No

NetDocuments No

Office 365 Groups Sí

Office 365 Outlook No

Usuarios de Office 365 Sí

Office 365 Video No

OneDrive No

OneDrive para la Empresa No

OneNote (empresas) No

Outlook Customer Manager No

Tareas de Outlook Sí

Outlook.com No

Paylocity No

Planner No

Formularios de Plumsail No

Power BI Sí

Project Online No

Integración del diseño de ProjectWise No

Recurso compartido ProjectWise No

SharePoint Sí

SignNow No

Skype empresarial online No

Soft1 No

Stormboard No

Survey123 No
CONECTORES ADMITE EL ACCESO DE INVITADO

SurveyMonkey No

Toodledo No

Typeform No

Vimeo No

Equipos de WebEx No

Protección contra amenazas avanzada de Windows No


Defender (ATP)

Word online (empresa) No


Compartir datos de Excel utilizados por la aplicación
07/10/2019 • 4 minutes to read

Puede compartir datos de Excel con los usuarios de la aplicación en una cuenta en la nube, como OneDrive.
Por ejemplo, podría crear una aplicación que mostrara los nombres y números de teléfono del grupo de soporte
técnico de su empresa. La información se almacena en una hoja de cálculo de Excel, que coloca en una carpeta de
Dropbox. A continuación, comparta la carpeta con los usuarios de aplicación para que puedan ver los nombres y
números de teléfono.
Debe compartir los datos para que los usuarios puedan ejecutar e incluso modificar la aplicación. Los usuarios
que no tengan permisos de uso compartido no verán los datos en el archivo de Excel.
En este tema se muestra cómo compartir datos en una hoja de cálculo de Excel con Dropbox, OneDrive y Google
Drive. Para crear una aplicación que muestre los datos desde un archivo de Excel, consulte Crear una aplicación
desde un conjunto de datos.

Compartir datos en Dropbox


1. Inicie sesión en Dropbox con la misma cuenta que usó para crear una conexión desde PowerApps en
Dropbox.
2. Seleccione la carpeta que contiene el archivo de Excel y, a continuación, seleccione Compartir:

3. En el cuadro de diálogo, escriba las direcciones de correo electrónico con las que los usuarios de la
aplicación inician sesión en Dropbox.

4. Si los usuarios de la aplicación van a agregar, modificar o eliminar datos en la aplicación, seleccione
Puede editar. En caso contrario, seleccione Puede ver.
5. Seleccione Compartir.
Para obtener más información, consulte Uso compartido de carpetas en Dropbox.

Compartir datos en OneDrive


1. Inicie sesión en OneDrive con la misma cuenta que usó para crear una conexión desde PowerApps en
OneDrive.
2. Seleccione la carpeta que contiene el archivo y, a continuación, seleccione Compartir:
NOTE
En OneDrive para la Empresa, comparta el archivo en sí, no la carpeta que lo contiene.

3. En el cuadro de diálogo, seleccione Correo electrónico.

4. Especifique las direcciones de correo electrónico con las que los usuarios de la aplicación inician sesión en
OneDrive y, a continuación, seleccione Compartir.

Para obtener más información, consulte Compartir archivos y carpetas de OneDrive.

Compartir datos en Google Drive


1. Inicie sesión en Google Drive con la misma cuenta con la que creó una conexión desde PowerApps en
Google Drive.
2. Haga clic con el botón derecho en la carpeta que contiene el archivo de Excel y, a continuación, seleccione
Compartir.
3. En el cuadro de diálogo, escriba las direcciones de correo electrónico con las que los usuarios de la
aplicación inician sesión en Google Drive:

4. Si los usuarios de la aplicación van a agregar, modificar o eliminar datos en la aplicación y, a continuación,
seleccione Puede editar en la lista de permisos. En caso contrario, seleccione Puede ver.
5. Seleccione Listo.
Para obtener más información, consulte Compartir archivos y carpetas de Google Drive.
Limitaciones conocidas
Para más información sobre cómo compartir datos de Excel en su organización, repase estas limitaciones.
Compartir recursos de aplicaciones de lienzo en
PowerApps
05/11/2019 • 5 minutes to read

Antes de compartir una aplicación de lienzo, tenga en cuenta los tipos de recursos en los que se basa, por
ejemplo, uno o varios de los siguientes:
entidades en Common Data Service
Para obtener información sobre cómo dar acceso a los usuarios a estos datos, vea Administrar permisos
de entidad.
una conexión a un origen de datos
una puerta de enlace de datos local
un conector personalizado
un libro de Excel u otro servicio
un flujo
Algunos de estos recursos se comparten automáticamente cuando se comparte la aplicación. Otros recursos
requieren que usted o las personas con quienes se comparte la aplicación realicen pasos adicionales para que la
aplicación funcione según lo esperado.
También puede compartir las conexiones, los conectores personalizados y la puerta de enlace de datos local con
toda la organización.

Conexiones
Algunos tipos de conexiones, como SQL Server, se comparten automáticamente, pero otras requieren que los
usuarios creen sus propias conexiones a los orígenes de datos de la aplicación.
En powerapps.com, puede determinar si una conexión se compartirá automáticamente y puede actualizar los
permisos de uso compartido. En la barra de navegación izquierda, haga clic o pulse Manage (Administrar), haga
clic o pulse Connections (Conexiones) y luego haga clic o pulse una conexión. Si aparece la pestaña Share
(Recurso compartido), la conexión se compartirá automáticamente.

Puerta de enlace de datos local


Si crea y comparte una aplicación que incluye datos de un origen local, la propia puerta de enlace de datos local
y determinados tipos de conexiones se compartirán automáticamente. En el caso de conexiones que no se
comparten automáticamente, puede compartirlas manualmente (como se muestra en la sección anterior) o dejar
que la aplicación pregunte a los usuarios si quieren crear sus propias conexiones. Para mostrar las conexiones o
las conexiones con las que se ha configurado una puerta de enlace:
1. Abra powerapps.com, haga clic o pulse Administrar en la barra de navegación izquierda y luego haga clic o
pulse Puertas de enlace.
2. Pulse o haga clic en una puerta de enlace y luego pulse o haga clic en la ficha Connections (Conexiones).

NOTE
Si comparte una o varias conexiones manualmente, puede que tenga que volver a compartirlas en estas circunstancias:

Si agrega una puerta de enlace de datos local a una aplicación que ya ha compartido.
Si cambia el conjunto de personas o grupos con quienes ha compartido una aplicación que tiene una puerta
de enlace de datos local.

Conectores personalizados
Cuando se comparte una aplicación que utiliza un conector personalizado, se comparte automáticamente, pero
los usuarios deben crear sus propias conexiones a ella.
En powerapps.com, puede ver o actualizar los permisos de un conector personalizado. En la barra de navegación
izquierda, pulse o haga clic en Manage (Administrar), pulse o haga clic en Connections (Conexiones) y luego
pulse o haga clic en New connection (Nueva conexión) (en la esquina superior derecha). Pulse o haga clic en
Personalizado y luego en un conector personalizado para mostrar información detallada sobre él.

Libros de Excel
Si una aplicación compartida usa datos a los que no todos los usuarios tienen acceso (por ejemplo, un libro de
Excel en una cuenta de almacenamiento en la nube), comparta los datos.

Flujos
Si comparte una aplicación que incluye un flujo, a los usuarios que ejecuten la aplicación se les pedirá que
confirmen o actualicen las conexiones en las que se basa el flujo. Además, solo la persona que ha creado el flujo
puede personalizar sus parámetros. Por ejemplo, puede crear un flujo en el que se envíe correo a una dirección
especificada pero otros usuarios no puedan cambiar esa dirección.
Insertar una nueva aplicación de lienzo en un
informe de Power BI
24/04/2019 • 6 minutes to read

Power BI permite ampliar sus características mediante la adición de objetos visuales personalizados a un informe.
En este tutorial, se usa el objeto visual personalizado de PowerApps para crear una aplicación que se inserta en un
informe de ejemplo. Esta aplicación interactúa con otros elementos de ese informe.
Si no tiene una suscripción a PowerApps, cree una cuenta gratuita antes de comenzar.
En este tutorial, obtendrá información sobre cómo:
Importar el objeto visual personalizado de PowerApps en un informe de Power BI
Crear una aplicación que usa los datos del informe
Ver la aplicación en el informe

Requisitos previos
El explorador Google Chrome o Microsoft Edge
Una suscripción a Power BI, con el Ejemplo de análisis de oportunidades instalado
Conocimientos sobre cómo crear aplicaciones en PowerApps y cómo editar informes de Power BI

Importar el objeto visual personalizado de PowerApps


El primer paso consiste en importar el objeto visual personalizado de PowerApps para se que pueda usar en el
informe de ejemplo.
1. En el informe Ejemplo de análisis de oportunidades, pulse o haga clic en la pestaña Próximas
oportunidades.
2. En la parte superior del informe, pulse o haga clic en Editar informe.
3. En el panel Visualizaciones, pulse o haga clic en el botón de puntos suspensivos (. . .) > Importar de
Marketplace.

4. En la pantalla Objetos visuales de Power BI, busque "PowerApps" y, después, pulse o haga clic en
Agregar. Power BI agrega el icono de objeto visual personalizado a la parte inferior del panel
Visualizaciones.
5. Guarde el informe.

Crear una aplicación


Ahora agregue el objeto visual personalizado al informe y cree una aplicación en función de los datos del informe.
Al crear la aplicación, se inicia PowerApps Studio con una conexión de datos dinámica entre PowerApps y Power
BI.
1. Mueva y cambie el tamaño de algunos de los iconos de informe para dejar espacio para una aplicación.

2. Pulse o haga clic en el icono del objeto visual personalizado de PowerApps y, después, cambie el tamaño
del icono para ajustarlo al espacio creado.
3. En el panel Campos, seleccione Nombre, Código de producto y Fase de ventas.
4. En el icono de objeto visual personalizado, seleccione el entorno de PowerApps donde quiera crear la
aplicación y, después, pulse o haga clic en Crear nuevo.

En PowerApps Studio, verá que se ha creado una aplicación básica, con una galería en la que se muestra
uno de los campos seleccionados en Power BI.
5. Cambie el tamaño de la galería para que solo ocupe la mitad de la pantalla.
6. En el panel de la izquierda, pulse o haga clic en Screen1 y, después, establezca la propiedad Fill (Relleno)
de la pantalla en "LightBlue" (para que se presente mejor en el informe).
7. Agregue un control de etiqueta debajo de la galería, con la propiedad Text establecida en
"Opportunity Count: " & CountRows(Gallery1.AllItems) . Ahora se muestra el número total de oportunidades
en el conjunto de datos.

8. Guarde la aplicación con el nombre "Oportunidades".

Ver la aplicación en el informe


Ahora la aplicación está disponible en el informe e interactúa con otros objetos visuales porque comparte el
mismo origen de datos.
En el informe de Power BI, haga clic en Jan (enero) en la segmentación de datos, para que se filtre todo el informe,
incluidos los datos de la aplicación.
Tenga en cuenta que el recuento de oportunidades en la aplicación coincide con el número de la parte superior
izquierda del informe. Puede seleccionar otros elementos en el informe y los datos de la aplicación se actualizarán.

Limpiar los recursos


Si ya no quiere usar el Ejemplo de análisis de oportunidades, puede eliminar el panel, el informe y el conjunto de
datos.

Pasos siguientes
En este tutorial, ha obtenido información sobre cómo:
Importar el objeto visual personalizado de PowerApps en un informe de Power BI
Crear una aplicación que usa los datos del informe
Ver la aplicación en el informe
Avance hasta el artículo siguiente para obtener más información.
Objeto visual personalizado de PowerApps para Power BI
Inserción de una aplicación en Teams
05/11/2019 • 3 minutes to read

Puede compartir un PowerApps que haya creado al incrustarlo directamente en Microsoft Teams. Cuando haya
finalizado, los usuarios pueden seleccionar + para agregar su aplicación a cualquiera de sus canales o
conversaciones del equipo en el que se encuentre. La aplicación aparece como un icono en pestañas para el
equipo.
Un administrador puede cargar la aplicación para que se muestre a todos los equipos del inquilino en la sección
todas las pestañas. Consulte compartir una aplicación en Microsoft Teams.

NOTE
Las directivas de aplicación personalizadas del equipo deben estar configuradas para permitir la carga de aplicaciones
personalizadas. Si no puede insertar la aplicación en Teams, consulte con el administrador para ver si ha configurado la
configuración de la aplicación personalizada.

Requisitos previos
Necesita una licencia válida de PowerApps.
Para insertar una aplicación en Teams, necesita una aplicación existente creada con PowerApps.

Descarga de la aplicación
1. Inicie sesión en make.powerapps.comy, a continuación, seleccione aplicaciones en el menú.

2. Seleccione más acciones (...) para la aplicación que desea compartir en Teams y, después, seleccione
Agregar a equipos.
3. En el panel agregar a equipos, seleccione Descargar. Después, PowerApps generará el archivo de
manifiesto de los equipos con la descripción y el logotipo de la aplicación que ya ha establecido en la
aplicación.

Agregar la aplicación como una aplicación personal


1. Para agregar la aplicación como una aplicación personal o como una pestaña a cualquier canal o
conversación, seleccione aplicaciones en el panel de navegación izquierdo y, a continuación, seleccione
cargar una aplicación personalizada.
NOTE
La carga de una aplicación personalizada solo aparece si el administrador del equipo ha creado una Directiva de
aplicación personalizada y activado permite la carga de aplicaciones personalizadas.

2. Seleccione Agregar para agregar la aplicación como una aplicación personal o seleccione Agregar al
equipo para agregar la aplicación como una pestaña dentro de un canal o una conversación existente.

Publicar la aplicación en el catálogo de equipos


Si es un administrador, también puede publicar la aplicación en el catálogo de Microsoft Teams.
Vea también
Bienvenido a Microsoft Teams
Edición de una aplicación de lienzo en PowerApps
05/11/2019 • 2 minutes to read

Edite cualquier aplicación que haya compilado, de la que sea propietario o en la que tenga permisos Puede
editar. Puede modificar una aplicación en PowerApps Studio. Si intenta editar una aplicación que está abierta para
su edición en otra parte, un mensaje le indicará si es usted quien ya la tiene abierta o si es otro usuario.

Comprobación de los permisos


1. Inicie sesión en PowerApps y haga clic o pulse Aplicaciones en el menú Archivo (en el borde izquierdo).

2. En el selector de categorías de aplicación, pulse o haga clic en Aplicaciones que puedo editar.
Puede editar cualquier aplicación de la lista que aparece. También puede buscar una aplicación escribiendo
uno o más caracteres en el cuadro de búsqueda cerca de la esquina superior derecha.

NOTE
Si aún así no ve la aplicación que desea editar, compruebe que ha seleccionado el entorno correcto cerca de la
esquina superior derecha.

3. Haga clic o pulse en los puntos suspensivos (...) de la aplicación que quiera modificar y, después, pulse o
haga clic en Editar.

Colaboración en una aplicación


Cualquier persona que tenga un permiso Can edit (Puede editar) para una aplicación puede modificarla, pero no
puede haber más de una persona a la vez editando la aplicación. Si se intenta modificar una aplicación que alguien
ya está editando, aparece el mensaje a continuación. No puede continuar hasta que la otra persona cierre la
aplicación (o se agote el tiempo de espera de su sesión).
Este mensaje también aparece si abre una aplicación para su edición y luego intenta abrirla en otro dispositivo o
en otra ventana del explorador. Puede invalidar la sesión anterior, pero podría perder los cambios que no haya
guardado.

Pasos siguientes
Más información sobre cómo agregar una pantalla, un control o una conexión de datos.
Eliminación de una aplicación de lienzo de
PowerApps
27/11/2019 • 2 minutes to read

En este artículo se muestra cómo eliminar una aplicación de lienzo de su cuenta de PowerApps y de las cuentas de
cualquiera con quien se haya compartido la aplicación.

Eliminar una aplicación de la cuenta


1. Abra powerapps.comy, a continuación, seleccione aplicaciones en el panel de vista de árbol de la
izquierda.

2. opta Cerca de la esquina superior derecha, filtre la lista de aplicaciones para mostrar solo las aplicaciones
de las que es propietario o solo las que contribuye.

NOTE
Si la aplicación que desea eliminar no aparece, asegúrese de que está en el entorno adecuado.

3. Seleccione más comandos (...) para la aplicación que desea eliminar.

4. Seleccione el icono de la papelera para eliminar la aplicación.


NOTE
Para poder eliminar una aplicación debe tener el permiso de colaborador en ella.

5. En el cuadro de diálogo que aparece, seleccione eliminar de la nube.

IMPORTANT
Esta acción eliminará permanentemente la aplicación no solo de su cuenta, sino también de las cuentas de todos los
usuarios con las que se haya compartido.

Más recursos
Share an app (Compartir una aplicación)
Cambiar el nombre e icono de la aplicación
Restore an app to a previous version (Restaurar una aplicación a una versión anterior)
Restauración de una aplicación de lienzo a una
versión anterior en PowerApps
05/11/2019 • 2 minutes to read

En este artículo se muestra cómo restaurar una aplicación de lienzo a una versión anterior que se guardó en la
nube desde la cuenta de PowerApps.

Restaurar una aplicación desde su cuenta


1. Abra powerapps.com y pulse o haga clic en Aplicaciones en la barra de navegación izquierda.

2. (opcional) Cerca de la esquina superior izquierda, filtre la lista de aplicaciones para mostrar solo las
aplicaciones de las que sea propietario o aquellas aplicaciones a las que contribuya.

NOTE
Si la aplicación que desea restaurar no aparece, asegúrese de que se encuentra en el entorno correcto.

3. Cerca del borde derecho, haga clic o pulse el icono de información de la aplicación que desea restaurar.

4. Haga clic o pulse la pestaña Versiones y, a continuación, haga clic o pulse Restaurar para la versión que
desee restaurar.

5. En el cuadro de diálogo de confirmación, haga clic o pulse Restaurar.


Una versión nueva se agrega a la lista.

Más recursos
Share an app (Compartir una aplicación)
Cambiar el nombre y el icono de la aplicación
Delete an app (Eliminar una aplicación)
Cambio del nombre y el icono de la aplicación de
una aplicación de lienzo en PowerApps | Microsoft
Docs
07/10/2019 • 2 minutes to read

Personalice una aplicación de lienzo cambiándole el nombre y el icono.

Requisitos previos
1. Cree una aplicación o abra una para editarla.
2. En el menú File (Archivo), pulse o haga clic en App settings (Configuración de aplicaciones).

Cambiar el nombre de una aplicación


En App name (Nombre de aplicación), haga clic o pulse Rename this app (Cambiar el nombre de esta
aplicación) y escriba un nombre diferente.

Cambiar el icono de una aplicación


Siga uno o varios de estos pasos:
Pulse o haga clic en un color de fondo diferente en la lista de opciones.

Pulse o haga clic en un icono de la lista de iconos predeterminados.

Pulse o haga clic en Browse file (Examinar archivo), pulse o haga clic en la imagen que desea usar y luego
pulse o haga clic en Open (Abrir).
NOTE
Para obtener los mejores resultados posibles, use un icono de forma cuadrada.

Paso siguiente
En el menú File (Archivo), pulse o haga clic en Save (Guardar) para volver a publicar la aplicación con la nueva
configuración.

Más recursos
Share an app (Compartir una aplicación)
Delete an app (Eliminar una aplicación)
Restore an app to a previous version (Restaurar una aplicación a una versión anterior)
Cambio del tamaño y la orientación de la pantalla de
una aplicación de lienzo en PowerApps
08/10/2019 • 5 minutes to read

Personalice una aplicación de lienzo cambiando el tamaño y la orientación de la pantalla.

Requisitos previos
Cree una aplicación o abra una para editarla y, a continuación, seleccione Configuración de la aplicación en el
menú archivo .

Cambiar el tamaño y la orientación de la pantalla


1. En Configuración de aplicación, seleccione Screen size + orientation (Tamaño y orientación de
pantalla).

2. En la lista orientación , seleccione vertical u horizontal.


3. (Solo aplicaciones de tableta) En relación de aspecto, realice cualquiera de estos pasos:
Seleccione la proporción que coincida con el dispositivo de destino para esta aplicación.
Seleccione personalizado para establecer su propio tamaño y, a continuación, especifique un ancho
entre 50-3840 y un alto entre 50-2160.

4. En escalar para ajustar, especifique activado o desactivado.


Esta opción está activada de forma predeterminada para que las pantallas de la aplicación cambien de
tamaño para ajustarse al espacio disponible en el dispositivo. Cuando esta opción está activada, la
propiedad ancho de la aplicación coincide con su DesignWidthy el alto de la aplicación coincide con su
DesignHeight.
Si desactiva esta configuración, la aplicación se ajusta a la relación de aspecto del dispositivo en el que se
ejecuta y ocupa todo el espacio disponible. La aplicación no escala y, como resultado, las pantallas pueden
mostrar más información.
Cuando esta opción está desactivada, la relación de aspecto de bloqueo se desactiva y deshabilita
automáticamente. Además, la propiedad ancho de todas las pantallas está establecida en
Max(App.Width; App.DesignWidth) y su propiedad alto está establecida en
Max(App.Height; App.DesignHeight) para que realice el seguimiento de las dimensiones de la ventana en la
que se ejecuta la aplicación. Con este cambio, puede crear aplicaciones que respondan a diferentes
dispositivos y dimensiones de la ventana. Más información: Crear diseño con capacidad de respuesta
5. En Bloquear relación de aspecto, especifique Activar o Desactivar.
Si esta opción está activada, la aplicación conserva la orientación de pantalla y la relación de aspecto que
especificó en los pasos 2 y 3, independientemente del dispositivo. Por ejemplo, una aplicación de teléfono
que se ejecuta en un explorador Web conserva la proporción de un teléfono, lo que muestra una barra
oscura en cada lado en lugar de rellenar la ventana.
Si esta opción está desactivada, la aplicación se ajusta a la relación de aspecto del dispositivo en el que se
ejecuta (y distorsiona la interfaz de usuario si es necesario).
6. En Lock orientation (Bloquear orientación), especifique Activar o Desactivar.
Si bloquea la orientación de la aplicación, la aplicación conserva la orientación que especifique. Si la
aplicación se ejecuta en un dispositivo para el que la pantalla tiene una orientación diferente, la aplicación se
muestra incorrectamente y puede mostrar resultados no deseados. Si desbloquea la orientación de la
aplicación, se ajusta a la orientación de la pantalla del dispositivo en el que se ejecuta.
También puede modificar la orientación de la aplicación habilitando Habilitar la experiencia de usuario
de incrustación de aplicaciones en Configuración avanzada. Esta característica, en la parte superior
izquierda, alinea la aplicación cuando se inserta y cambia el color de fondo del lienzo de hospedaje a blanco.
7. Seleccione Aplicar para guardar los cambios.

Paso siguiente
En el menú Archivo, seleccione Guardar para volver a publicar la aplicación con la nueva configuración.
Crear diseños con capacidad de respuesta en
aplicaciones de lienzo
24/09/2019 • 26 minutes to read

Antes de compilar una aplicación de lienzo en PowerApps, especifique si desea adaptar la aplicación para un
teléfono o una tableta. Esta opción determina el tamaño y la forma del lienzo en el que compilará la aplicación.
Una vez realizada esta opción, puede elegir entre varias opciones si selecciona archivo > aplicación
configuración > tamaño y orientación. Puede elegir la orientación vertical u horizontal y el tamaño de la
pantalla (solo tableta). También puede bloquear o desbloquear la relación de aspecto y la rotación de dispositivos
de soporte (o no).
Estas opciones se superponen entre sí cuando se diseñan diseños de pantalla. Si la aplicación se ejecuta en un
dispositivo de un tamaño diferente o en la web, todo el diseño se escala para ajustarse a la pantalla donde se
ejecuta la aplicación. Si una aplicación diseñada para un teléfono se ejecuta en una ventana grande del explorador,
por ejemplo, la aplicación se escala para compensar y buscar el tamaño de su espacio. La aplicación no puede
aprovechar los píxeles adicionales mostrando más controles o más contenido.
Si crea un diseño con capacidad de respuesta, los controles pueden responder a diferentes dispositivos o tamaños
de ventana, por lo que hay varias experiencias más naturales. Para lograr un diseño dinámico, ajuste algunos
valores y escriba expresiones en toda la aplicación.

Deshabilitar escalado para ajustar


Puede configurar cada pantalla para que su diseño se adapte al espacio real en el que se ejecuta la aplicación.
Puede activar la capacidad de respuesta desactivando la opción escalar para ajustar de la aplicación, que está
activada de forma predeterminada. Al desactivar esta opción, también desactivará la relación de aspecto de
bloqueo porque ya no está diseñando para una forma de pantalla específica. También puede especificar si la
aplicación admite la rotación de dispositivos.

Para que la aplicación responda, debe realizar pasos adicionales, pero este cambio es el primer paso para hacer
posible la capacidad de respuesta.
Descripción de las dimensiones de la aplicación y la pantalla
Para que los diseños de la aplicación respondan a los cambios en las dimensiones de la pantalla, escribirá fórmulas
que usen las propiedades ancho y alto de la pantalla. Para mostrar estas propiedades, abra una aplicación en
PowerApps Studio y, a continuación, seleccione una pantalla. Las fórmulas predeterminadas para estas
propiedades aparecen en la pestaña avanzadas del panel derecho.
Ancho = Max(App.Width; App.DesignWidth)

Alto = Max(App.Height; App.DesignHeight)

Estas fórmulas hacen referencia a las propiedades width, height, DesignWidthy DesignHeight de la aplicación.
Las propiedades de ancho y alto de la aplicación se corresponden con las dimensiones de la ventana del
dispositivo o del explorador en el que se ejecuta la aplicación. Si el usuario cambia el tamaño de la ventana del
explorador (o gira el dispositivo si ha desactivado la orientación del bloqueo), los valores de estas propiedades
cambian dinámicamente. Las fórmulas de las propiedades width y height de la pantalla se vuelven a evaluar
cuando cambian estos valores.
Las propiedades DesignWidth y DesignHeight provienen de las dimensiones que se especifican en el panel
tamaño de pantalla + orientación de la configuración de la aplicación. Por ejemplo, si selecciona la
distribución del teléfono en orientación vertical, DesignWidth es 640 y DesignHeight es 1136.
Como se usan en las fórmulas de las propiedades de ancho y alto de la pantalla, puede pensar en DesignWidth
y DesignHeight como las dimensiones mínimas para las que diseñará la aplicación. Si el área real disponible para
la aplicación es incluso menor que estas dimensiones mínimas, las fórmulas de las propiedades de ancho y alto
de la pantalla garantizan que sus valores no se volverán más pequeños que los mínimos. En ese caso, el usuario
debe desplazarse para ver todo el contenido de la pantalla.
Después de establecer los valores de DesignWidth y DesignHeightde la aplicación, no tendrá que cambiar las
fórmulas predeterminadas para las propiedades de ancho y alto de la pantalla. Más adelante, en este tema se
describen los casos en los que es posible que desee personalizar estas fórmulas.

Usar fórmulas para el diseño dinámico


Para crear un diseño con capacidad de respuesta, puede buscar y cambiar el tamaño de cada control mediante el
uso de fórmulas en lugar de valores de coordenadas absolutas (constantes). Estas fórmulas expresan la posición y
el tamaño de cada control en cuanto al tamaño total de la pantalla o con respecto a otros controles de la pantalla.

IMPORTANT
Después de escribir las fórmulas para las propiedades X, y, ancho y alto de un control, las fórmulas se sobrescribirán con
valores constantes si arrastra posteriormente el control en el editor de lienzos. Cuando empiece a usar fórmulas para lograr
el diseño dinámico, debe evitar arrastrar los controles.

En el caso más simple, un control llena una pantalla completa. Para crear este efecto, establezca las propiedades
del control en estos valores:

PROPIEDAD VALUE

X1 0

SÍ 0

Ancho Parent.Width
PROPIEDAD VALUE

Alto Parent.Height

Estas fórmulas utilizan el operador Parent . Para un control colocado directamente en una pantalla, el elemento
primario se refiere a la pantalla. Con estos valores de propiedad, el control aparece en la esquina superior
izquierda de la pantalla (0,0) y tiene el mismo ancho y alto que la pantalla.
Más adelante en este tema, aplicará estos principios (y el operador principal ) para colocar controles dentro de
otros contenedores, como galerías, controles de grupo y componentes.
Como alternativa, el control solo puede rellenar la mitad superior de la pantalla. Para crear este efecto, establezca
la propiedad height en Parent. Height /2 y deje las demás fórmulas sin modificar.
Si desea que un segundo control rellene la mitad inferior de la misma pantalla, puede tomar al menos otros dos
enfoques para crear sus fórmulas. Para simplificar, puede adoptar este enfoque:

CONTROL PROPIEDAD FÓRMULA

Esquina superior X1 0

Esquina superior SÍ 0

Esquina superior Ancho Parent.Width

Esquina superior Alto Parent.Height / 2

Inferiores X1 0

Inferiores SÍ Parent.Height / 2

Inferiores Ancho Parent.Width

Inferiores Alto Parent.Height / 2


Esta configuración lograría el efecto que desea, pero debe editar cada fórmula si ha cambiado de opinión sobre los
tamaños relativos de los controles. Por ejemplo, puede decidir que el control superior solo ocupará la parte
superior de la pantalla, con el control inferior que rellenará los dos tercios más bajos.
Para crear ese efecto, debe actualizar la propiedad alto del control superior y las propiedades y y alto del
control inferior . En su lugar, considere la posibilidad de escribir las fórmulas para el control inferior en lo que
respecta al control superior (y a sí mismo), como en este ejemplo:

CONTROL PROPIEDAD FÓRMULA

Esquina superior X1 0

Esquina superior SÍ 0

Esquina superior Ancho Parent.Width

Esquina superior Alto Parent.Height / 2

Inferiores X1 0

Inferiores SÍ Upper.Y + Upper.Height

Inferiores Ancho Parent.Width

Inferiores Alto Parent.Height - Lower.Y


Con estas fórmulas en su lugar, solo tiene que cambiar la propiedad alto del control superior para expresar una
fracción diferente del alto de la pantalla. El control inferior se mueve automáticamente y cambia de tamaño para
que tenga en cuenta el cambio.
Puede usar estos patrones de fórmulas para expresar las relaciones de diseño comunes entre un control,
denominado C, y su control primario o relacionado, denominado D.

RELACIÓN ENTRE C Y SU
ELEMENTO PRIMARIO PROPIEDAD FÓRMULA ILUSTRACIÓN

C rellena el ancho del X1 N


elemento primario, con un
margen de N

Ancho Parent.Width - (N * 2)

C rellena el alto del SÍ N


elemento primario, con un
margen de N

Alto Parent.Height - (N * 2)

C alineado con el borde X1 Parent.Width - (C.Width


derecho del elemento + N)
primario, con el margen de
N
RELACIÓN ENTRE C Y SU
ELEMENTO PRIMARIO PROPIEDAD FÓRMULA ILUSTRACIÓN

C alineado con el borde SÍ Parent.Height -


inferior del elemento (C.Height + N)
primario, con el margen de
N

C centrado horizontalmente X1 (Parent.Width -


en el elemento primario C.Width) / 2

C centrado verticalmente en SÍ (Parent.Height -


el elemento primario C.Height) / 2

RELACIÓN ENTRE C Y D PROPIEDAD FÓRMULA ILUSTRACIÓN

C alineada horizontalmente X1 D.X


con d y el mismo ancho que
d

Ancho D.Width

C alineada verticalmente con SÍ D.Y


d y el mismo alto que d

Alto D.Height

Borde derecho de C alineado X1 D.X + D.Width - C.Width


con el borde derecho de D

Borde inferior de C alineado SÍ D.Y + D.Height -


con el borde inferior de D C.Height
RELACIÓN ENTRE C Y D PROPIEDAD FÓRMULA ILUSTRACIÓN

C centrado horizontalmente X1 D.X + (D.Width -


con respecto a D C.Width) / 2

C centrado verticalmente SÍ D.Y + (D.Height -


con relación a D C.Height) /2

C situado a la derecha de D X1 D.X + D.Width + N


con un espacio de N

C situado debajo de D con SÍ D.Y + D.Height + N


un espacio de N

C rellena el espacio entre D X1 D.X + D.Width


y el borde derecho del
elemento primario

Ancho Parent.Width - C.X

C rellena el espacio entre D Y D.Y + D.Height


y el borde inferior del
elemento primario

Diseño jerárquico
A medida que se crean pantallas que contienen más controles, se volverá más cómodo (o incluso necesario) para
colocar los controles en relación con un control primario, en lugar de con respecto a la pantalla o un control
relacionado. Al organizar los controles en una estructura jerárquica, puede hacer que las fórmulas sean más fáciles
de escribir y mantener.
Galerías
Si usa una galería en la aplicación, deberá diseñar los controles dentro de la plantilla de la galería. Puede colocar
estos controles escribiendo fórmulas que usan el operador Parent , que hará referencia a la plantilla de la galería.
En las fórmulas de los controles de una plantilla de la galería, use las propiedades Parent. TemplateHeight y
Parent. TemplateWidth ; No use Parent. width y Parent. Height, que hacen referencia al tamaño total de la
galería.
Control contenedor
Puede usar una característica experimental, el control contenedor , como control primario. Para activar esta
característica, seleccione Configuración deaplicación > de archivo > Configuración avanzada.
Considere el ejemplo de un encabezado en la parte superior de una pantalla. Es habitual tener un encabezado con
un título y varios iconos con los que los usuarios puedan interactuar. Puede crear este encabezado mediante el
control contenedor , que contiene un control etiqueta y dos controles Icon :

Establezca las propiedades de estos controles en estos valores:

PROPIEDAD ENCABEZADO MENU CERCANOS TÍTULO

X1 0 0 Parent.Width - Menu.X +
Close.Width Menu.Width

SÍ 0 0 0 0

Ancho Parent.Width Parent.Height Parent.Height Close.X - Title.X

Alto 64 Parent.Height Parent.Height Parent.Height


Para el control de encabezado Parent , hace referencia a la pantalla. Para los demás, Parent hace referencia al
control de encabezado .
Una vez escritas estas fórmulas, puede ajustar el tamaño o la posición del control de encabezado cambiando las
fórmulas de sus propiedades. Los tamaños y las posiciones de los controles secundarios se ajustarán
automáticamente en consecuencia.
Componentes
Si usa otra característica experimental, denominada componentes, puede crear bloques de creación y volver a
usarlos en toda la aplicación. Al igual que con el control contenedor , los controles que se colocan dentro de un
componente deben basar Parent.Width sus fórmulas de posición y tamaño en y Parent.Height , que hacen
referencia al tamaño del componente. Más información: Cree un componente.

Adaptación del diseño para el tamaño y la orientación del dispositivo


Hasta ahora, ha aprendido a usar fórmulas para cambiar el tamaño de cada control en respuesta al espacio
disponible, manteniendo los controles alineados entre sí. Pero es posible que desee o necesite realizar cambios de
diseño más significativos en respuesta a diferentes tamaños y orientaciones de dispositivo. Cuando un dispositivo
se gira de la orientación vertical a la horizontal, por ejemplo, puede que desee cambiar de un diseño vertical a uno
horizontal. En un dispositivo más grande, puede presentar más contenido o reorganizarlo para proporcionar un
diseño más atractivo. En un dispositivo más pequeño, es posible que tenga que dividir el contenido en varias
pantallas.
Orientación del dispositivo
Las fórmulas predeterminadas para las propiedades de ancho y alto de una pantalla, como en este tema descrito
anteriormente, no proporcionarán necesariamente una buena experiencia si un usuario gira un dispositivo. Por
ejemplo, una aplicación diseñada para un teléfono en orientación vertical tiene un DesignWidth de 640 y un
DesignHeight de 1136. La misma aplicación en un teléfono con orientación horizontal tendrá estos valores de
propiedad:
La propiedad ancho de la pantalla se establece Max(App.Width; App.DesignWidth) en. El ancho de la aplicación
(1136) es mayor que su DesignWidth (640), por lo que la fórmula se evalúa como 1136.
La propiedad alto de la pantalla se establece Max(App.Height; App.DesignHeight) en. El alto de la aplicación
(640) es menor que el de DesignHeight (1136), por lo que la fórmula se evalúa como 1136.

Con un alto de pantalla de 1136 y un alto de dispositivo (en esta orientación) de 640, el usuario debe desplazar la
pantalla verticalmente para mostrar todo su contenido, lo que podría no ser la experiencia que desea.
Para adaptar las propiedades de ancho y alto de la pantalla a la orientación del dispositivo, puede usar estas
fórmulas:
Ancho = Max(App.Width; If(App.Width < App.Height; App.DesignWidth; App.DesignHeight))

Alto = Max(App.Height; If(App.Width < App.Height; App.DesignHeight; App.DesignWidth))

Estas fórmulas intercambian los valores de DesignWidth y DesignHeight de la aplicación, en función de si el


ancho del dispositivo es menor que el alto (orientación vertical) o superior al alto (orientación horizontal).
Después de ajustar las fórmulas de ancho y alto de la pantalla, es posible que también desee reorganizar los
controles de la pantalla para usar mejor el espacio disponible. Por ejemplo, si cada uno de los dos controles ocupa
la mitad de la pantalla, puede apilarlos verticalmente en vertical, pero organizarlos en paralelo en horizontal.
Puede usar la propiedad orientación de la pantalla para determinar si la pantalla está orientada vertical u
horizontalmente.
NOTE
En la orientación horizontal, los controles superior e inferior aparecen como controles izquierdo y derecho.

CONTROL PROPIEDAD FÓRMULA

Esquina superior X1 0

Esquina superior SÍ 0

Esquina superior Ancho If(Parent.Orientation =


Layout.Vertical; Parent.Width;
Parent.Width / 2)

Esquina superior Alto If(Parent.Orientation =


Layout.Vertical; Parent.Height /
2; Parent.Height)

Inferiores X If(Parent.Orientation =
Layout.Vertical; 0; Upper.X +
Upper.Width)

Inferiores Y If(Parent.Orientation =
Layout.Vertical; Upper.Y +
Upper.Height; 0)

Inferiores Ancho Parent.Width - Lower.X

Inferiores Alto Parent.Height - Lower.Y


Tamaños de pantalla y puntos de interrupción
Puede ajustar el diseño en función del tamaño del dispositivo. La propiedad tamaño de la pantalla clasifica el
tamaño actual del dispositivo. El tamaño es un entero positivo; el tipo ScreenSize proporciona constantes con
nombre para facilitar la lectura. En esta tabla se enumeran las constantes:

TIPO DE DISPOSITIVO TÍPICO (CON LA


CONFIGURACIÓN DE LA APLICACIÓN
CONSTANTE VALUE PREDETERMINADA)

Filtrar. pequeño 1 Número

ScreenSize. Medium 2 Tableta, mantenida en vertical

Filtrar. grande 3 Tableta, conservada horizontalmente

ScreenSize. ExtraLarge 4 Equipo de escritorio

Use estos tamaños para tomar decisiones sobre el diseño de la aplicación. Por ejemplo, si desea que un control
esté oculto en un dispositivo de tamaño de teléfono pero visible en caso contrario, puede establecer la propiedad
visible del control en esta fórmula:
Parent.Size >= ScreenSize.Medium

Esta fórmula se evalúa como true cuando el tamaño es medio o mayor y false en caso contrario.
Si desea que un control ocupe una fracción diferente del ancho de la pantalla en función del tamaño de la pantalla,
establezca la propiedad ancho del control en esta fórmula:

Parent.Width *
Switch(Parent.Size;
ScreenSize.Small; 0,5;
ScreenSize.Medium; 0,3;
0,25)

Esta fórmula establece el ancho del control en la mitad del ancho de la pantalla en una pantalla pequeña, tres
décimas de ancho de pantalla en una pantalla mediana y un cuarto del ancho de la pantalla en todas las demás
pantallas.

Puntos de interrupción personalizados


La propiedad de tamaño de la pantalla se calcula comparando la propiedad ancho de la pantalla con los valores
de la propiedad SizeBreakpoints de la aplicación. Esta propiedad es una tabla de números de una sola columna
que indica los puntos de interrupción de ancho que separan los tamaños de pantalla con nombre:
En una aplicación creada para tabletas o Web, el valor predeterminado de la propiedad SizeBreakpoints de la
aplicación es [600; 900; 1200] . En una aplicación creada para teléfonos, el valor es [1200; 1800; 2400] . (Los
valores de las aplicaciones de teléfono se duplican porque estas aplicaciones usan coordenadas que son, de hecho,
el doble de las coordenadas usadas en otras aplicaciones).

Puede personalizar los puntos de interrupción de la aplicación cambiando los valores de la propiedad
SizeBreakpoints de la aplicación. Seleccione aplicación en la vista de árbol, seleccione SizeBreakpoints en la
lista de propiedades y, a continuación, edite los valores en la barra de fórmulas. Puede crear tantos puntos de
interrupción como necesite la aplicación, pero solo los tamaños del 1 al 4 se corresponden con los tamaños de
pantalla con nombre. En las fórmulas, puede hacer referencia a tamaños más allá de extragrande por sus valores
numéricos (5, 6, etc.).
También puede especificar menos puntos de interrupción. Por ejemplo, la aplicación podría necesitar solo tres
tamaños (dos puntos de interrupción), por lo que los tamaños de pantalla posibles serán pequeño, mediano y
grande.

Limitaciones conocidas
El lienzo de creación no responde a las fórmulas de ajuste de tamaño creadas. Para probar el comportamiento de
respuesta, guarde y publique la aplicación y, a continuación, ábrala en dispositivos o en ventanas del explorador de
distintos tamaños y orientaciones.
Si escribe expresiones o fórmulas en las propiedades X, y, anchoy alto de un control, sobrescribirá esas
expresiones o fórmulas si posteriormente arrastra el control a una ubicación diferente o cambia el tamaño del
control arrastrando su borde.
Personalizar un formulario de lista de SharePoint
mediante PowerApps
26/10/2019 • 13 minutes to read

Puede personalizar fácilmente el formulario de una lista de SharePoint si abre PowerApps en un explorador. No es
necesario escribir código tradicional, como C#, ni descargar otra aplicación, como InfoPath. Al publicar los
cambios, el formulario se inserta en la lista de SharePoint para su uso por parte de todos sus usuarios. En
PowerApps también es posible revisar informes de análisis, crear formato condicional con facilidad y conectarse a
otros orígenes de datos.
Para seguir los pasos de este tema, tiene que crear una lista simple para que pueda ver cómo funciona la
personalización y luego pueda aplicar los mismos conceptos a su propia lista.

NOTE
Si la opción Personalizar formularios no está disponible o no funciona correctamente, podría contener tipos de datos
que PowerApps no admite. Además, no se puede mover el formulario a otra lista o entorno.
Los formularios personalizados para listas solo se admiten en listas genéricas. Próximamente estará disponible la
compatibilidad con las bibliotecas de documentos genéricos. La lista personalizada y las plantillas de biblioteca no se
admiten actualmente; incluye, entre otras, listas, como anuncios, contactos y tareas.

Crear una lista


En un sitio de SharePoint, cree una lista y, a continuación, agregue estas columnas a esa lista:
Detalles (sí/no)
Precio (moneda)
Disponibilidad (fecha sin hora)
Color (opción)

Abrir el formulario
1. En la barra de comandos, seleccione PowerAppsy, a continuación, seleccione personalizar formulario.
PowerApps Studio se abre en la misma pestaña del explorador.
2. Si aparece el cuadro de diálogo de bienvenida a PowerApps Studio, seleccione Omitir.

Desplazamiento y eliminación de un campo


1. Arrastre el campo Availability hasta la parte inferior de la lista de campos.
Los campos aparecen en el orden que especifique.
2. Mantenga el mouse sobre el campo datos adjuntos , seleccione los puntos suspensivos (...) que aparecen y,
a continuación, seleccione quitar.
El campo que especifique desaparece del formulario.

Establecer formato condicional


Puede configurar que los campos Precio, Disponibilidad y Color solo aparezcan si Detalles está establecido en
Sí.
1. En la barra de navegación de la izquierda, expanda Details_DataCard1y anote el número que aparece al
final de DataCardValue.
2. Establezca la propiedad visible del color, la disponibilidady las tarjetas de precios en esta fórmula
(reemplace, si es necesario, el número por el que anotó en el paso anterior):
Si (DataCardValue2. Value = true, true)
3. Mientras mantiene la tecla Alt presionada, seleccione el botón de alternancia Detalles varias veces (al hacer
clic o pulsar en él).
Los tres campos que ha configurado aparecen y desaparecen del formulario.

Guardar y publicar el formulario


1. Abra el menú Archivo, seleccione Guardar y luego seleccione Publicar en SharePoint dos veces.
2. En la esquina superior izquierda, seleccione la flecha Atrás y luego Volver a SharePoint.

Personalización adicional del formulario


1. Abra la lista, seleccione nuevo en la barra de comandos y, a continuación, seleccione personalizar cerca de
la parte superior del formulario.
2. Personalice el formulario de varias maneras, como las que se describen en estos temas:
Cambie su tamaño, orientación o ambos (por ejemplo, para ensanchar el formulario).
Personalizar una o más tarjetas (por ejemplo, cambiar el texto para mostrar de una tarjeta o el control de
entrada).
Cree un campo de búsqueda.
Más información: Descripciónde la integración de formularios de SharePoint.

Usar el formulario predeterminado


1. En la lista de SharePoint, abra la página de configuración (al seleccionar el icono de engranaje junto a la
esquina superior derecha) y luego seleccione Configuración de lista.
2. En Configuración general, seleccione Configuración de formulario.
3. En la página Configuración de formulario, seleccione una de estas opciones y luego Aceptar.
Usar el formulario predeterminado de SharePoint: cuando un usuario abra la lista y seleccione
Nuevo en la barra de comandos, aparecerá el formulario predeterminado de la lista.
Usar un formulario personalizado creado en PowerApps: cuando un usuario abra la lista y
seleccione Nuevo en la barra de comandos, aparecerá el formulario personalizado. (Como
alternativa, puede volver a publicar el formulario en PowerApps).
Puede alternar entre las opciones, según sea necesario.

Eliminación del formulario personalizado


1. En la lista de SharePoint, abra la página de configuración (al seleccionar el icono de engranaje junto a la
esquina superior derecha) y luego seleccione Configuración de lista.
2. En Configuración general, seleccione Configuración de formulario.
3. En la página Configuración de formulario, seleccione Usar el formulario predeterminado de
SharePoint y luego Eliminar formulario personalizado.
Q&A
Formularios frente a aplicaciones
P: ¿En qué se diferencia un formulario personalizado de una aplicación independiente que se crea desde
SharePoint o PowerApps?
R: Si personaliza el formulario de una lista de SharePoint, no aparece como aplicación en PowerApps Studio ni
PowerApps Mobile. Solo puede abrir el formulario desde la lista para la que lo ha creado.
P: ¿Cuándo se debe personalizar un formulario para administrar datos de una lista de SharePoint y cuándo se
debe crear una aplicación independiente?
R: Personalice un formulario si quiere que los usuarios administren los datos sin salir de SharePoint (por ejemplo,
en un explorador de escritorio). Cree una aplicación si quiere que los usuarios administren los datos fuera de
SharePoint (por ejemplo, en un dispositivo móvil).
P: ¿Se puede personalizar un formulario y crear una aplicación para la misma lista?
R: Sí.
P: ¿Se puede personalizar una lista y crear una aplicación con las mismas características?
R: Sí.
P: ¿Se puede personalizar un formulario en un entorno distinto al predeterminado de la organización?
A: No.
Administrar el formulario personalizado
P: ¿Cómo se puede compartir fácilmente un formulario con otras personas?
R: Abra el formulario, seleccione Copiar vínculoy, a continuación, envíe el vínculo a cualquiera que desee usar el
formulario.
P: ¿Se puede actualizar un formulario sin que los cambios realizados sean visibles para otros usuarios?
R: Sí. Puede modificar el formulario y guardarlo tantas veces como quiera, pero los cambios no serán visibles para
nadie a menos que seleccione Publicar en SharePoint dos veces.
P: Si se personaliza un formulario de lista y se comete un error, ¿se puede volver a la versión anterior?
R: Sí.
1. Abra la lista, seleccione PowerApps en la barra de comandos y luego seleccione Personalizar
formularios.
2. En PowerApps Studio, seleccione Archivo y luego Ver todas las versiones. Se abre la página Versiones
en una nueva pestaña de explorador.

NOTE
Si no ve el botón Ver todas las versiones, seleccione Guardar. Debería aparecer el botón.

3. Sin cerrar la página Versiones ni la pestaña del explorador, vuelva a la página Guardar de la otra pestaña
del explorador, pulse o haga clic en la flecha de la parte superior del panel de navegación izquierdo y,
después, pulse o haga clic en Volver a SharePoint para desbloquear el formulario y cerrar PowerApps
Studio.
4. Vuelva a la página Versiones de la otra pestaña del explorador, busque la versión que quiere restaurar y
luego seleccione Restaurar.

NOTE
Si recibe un mensaje de error que indica que se ha producido un error en la restauración porque el formulario está
bloqueado por otro usuario, espere a que el usuario desbloquee el formulario e inténtelo de nuevo.

P: ¿Se puede mover un formulario de una lista a otra?


A: No.
Administrar el formulario personalizado
P: ¿Cómo se comparte un formulario?
R: No es necesario compartir el formulario; el formulario hereda los permisos de la lista de SharePoint. Cuando
haya terminado de personalizarlo, solo tiene que volver a publicarlo en SharePoint para que otros usuarios puedan
usarlo.
P: ¿Quién puede personalizar formularios?
R: Cualquier persona con permisos de SharePoint para administrar, diseñar o editar la lista asociada.
P: ¿ ¿Se necesita una licencia de PowerApps para crear o utilizar formularios de lista personalizados?
R: Necesita un plan de Office 365 que incluya PowerApps.
P: ¿Qué sucede cuando los usuarios invitados acceden a una lista que tiene un formulario personalizado?
R: Los usuarios invitados reciben un mensaje de error si intentan acceder a un formulario de lista que se ha
personalizado mediante PowerApps.
P: ¿Cómo reciben los administradores una lista de todos los formularios personalizados de su organización?
R: Si es administrador de inquilinos de PowerApps o tiene permisos de administrador en el entorno
predeterminado de PowerApps de la organización, haga lo siguiente:
1. En el centro de administración de PowerApps, seleccione el entorno predeterminado de la organización en
la lista de entornos.
2. En la parte superior de la página del entorno predeterminado, seleccione Recursos.
3. En la lista de aplicaciones, busque aplicaciones con un tipo de aplicación de formulario de SharePoint :
Estos son los formularios personalizados.
Comprensión de la integración de formularios de
SharePoint
08/10/2019 • 7 minutes to read

Ahora puede personalizar cualquier formulario de lista de SharePoint de manera fácil en PowerApps. En este
artículo, le guiaremos por los detalles de cómo funcionan estos formularios y cómo puede personalizarlos aún
más.
Si ha personalizado un formulario de una lista de SharePoint, es probable que haya observado que el formulario
generado predeterminado funciona con todas las operaciones, como crear, mostrar o editar un elemento. Esta
funcionamiento se logra con la ayuda de las fórmulas generadas y del control SharePointIntegration.

Descripción del formulario generado predeterminado


El formulario generado predeterminado consta de los siguientes controles y sus valores predeterminados
correspondientes:
FormScreen1: esta es la pantalla que contiene el formulario.
SharePointForm1: este es el formulario que se usa para crear, mostrar o editar el elemento de lista.
Origen de datos: la lista para la que se ha personalizado el formulario.
Elemento: el elemento seleccionado de la lista. Para su comodidad, este se establece en el elemento
First() de la lista al trabajar en PowerApps Studio.
If(IsBlank(SharePointIntegration.Selected) ||
IsEmpty(SharePointIntegration.Selected);First('YourListName');SharePointIntegration.Sele
cted)
OnSuccess: una vez que el elemento se crea o se guarda correctamente, el formulario se restablece
y SharePoint oculta el formulario.
ResetForm (SharePointForm1);; RequestHide()
SharePointIntegration: el control responsable de la comunicación de las acciones de los usuarios entre
SharePoint y PowerApps.
Origen de datos: la lista para la que se ha personalizado el formulario.
'YourListName'
OnNew: establece SharePointForm1 en el modo nuevo.
NewForm (SharePointForm1)
OnNew: establece SharePointForm1 en el modo de vista.
ViewForm (SharePointForm1)
OnEdit: establece SharePointForm1 en modo de edición.
EditForm (SharePointForm1)
OnSave: envía los cambios a SharePointForm1. Tras el envío correcto del formulario, se ejecuta la
fórmula SharePointForm1.OnSuccess.
SubmitForm (SharePointForm1)
OnCancel: restablece los cambios realizados en SharePointForm1. SharePoint siempre oculta el
formulario cuando un usuario pulsa o hace clic en Cancelar en SharePoint.
ResetForm (SharePointForm1)
Estos valores predeterminados garantizan que el formulario funciona cuando se ejecuta en SharePoint (lo que
hacen es cambiar el modo del formulario de PowerApps cuando el usuario interactúa con él en SharePoint, y
garantizan que los cambios se envían a SharePoint).

Descripción del control SharePointIntegration


El control SharePointIntegration comunica las acciones de los usuarios entre SharePoint y PowerApps.

NOTE
Solo puede acceder a las propiedades del control SharePointIntegration cuando el formulario se ejecuta en SharePoint, es
decir, no al personalizarlo en PowerApps Studio. Es posible que estas propiedades no estén disponibles en OnStart u
OnVisible.

El control SharePointIntegration tiene las siguientes propiedades:


Selected: el elemento seleccionado de la lista de SharePoint.
OnNew: cómo responde la aplicación cuando un usuario pulsa o hace clic en el botón Nuevo o abre el formulario
Crear elemento en SharePoint.
OnView: cómo responde una aplicación cuando un usuario pulsa o hace clic en un elemento o abre el formulario
Item detail (Detalle de elemento) en SharePoint.
OnEdit: cómo responde una aplicación cuando un usuario pulsa o hace clic en el botón Edit all (Editar todo) o
abre el formulario Editar elemento de SharePoint.
OnSave: cómo responde una aplicación cuando un usuario pulsa o hace clic en el botón Guardar en SharePoint.
OnCancel: cómo responde una aplicación cuando un usuario pulsa o hace clic en el botón Cancelar en
SharePoint.
SelectedListItemID: identificador del elemento seleccionado en una lista de SharePoint.
Origen de datos: la lista que contiene el registro que el formulario mostrará, editará o creará. Tenga en cuenta
que si cambia esta propiedad, las propiedades Selected y SelectedItemID podrían dejar de funcionar.

Personalización del formulario predeterminado


Ahora que comprende mejor el formulario generado predeterminado y el control SharePointIntegration, puede
cambiar las fórmulas para personalizar aún más los formularios. Al personalizar formularios, tenga en cuenta
algunas de estas cosas:
Para crear experiencias personalizadas independientes con el fin de crear, mostrar o editar un elemento,
establezca las fórmulas OnNew, OnView o OnEdit del control SharePointIntegration para establecer
variables o navegar a distintas pantallas.
Use la fórmula OnSave del control SharePointIntegration para personalizar lo que sucede cuando un
usuario pulsa o hace clic en Guardar en SharePoint. Si tiene varios formularios, asegúrese de enviar los
cambios correspondientes solamente al formulario que usa actualmente.

TIP
Establezca diferentes valores para una variable en las fórmulas OnNew, OnView y OnEdit. Puede usar esta variable
en la fórmula OnSave para determinar el formulario que usa.

No olvide incluir RequestHide() en la fórmula OnSuccess de todos los formularios. Si lo olvida,


SharePoint no sabrá cuándo ocultar el formulario.
Como no puede controlar que se oculte un formulario cuando un usuario pulsa o hace clic en Cancelar en
SharePoint, asegúrese de restablecer los formularios de la fórmula OnCancel del control
SharePointIntegration.
Es posible que las propiedades del control SharePointIntegration no estén disponibles en OnStart u
OnVisible. Asimismo, estos eventos solo se ejecutan una vez durante la carga de la lista. Puede usar
fórmulas OnNew, OnView u OnEdit para ejecutar lógicas antes de que el formulario se muestre al
usuario cada vez.
Integre PowerApps, Power Automatic y Power BI
con SharePoint Online
09/11/2019 • 5 minutes to read

¿Tiene SharePoint Online y desea mejorar la automatización y simplificación de los procesos empresariales? ¿Ha
trabajado con PowerApps, Power Automate o Power BI, pero no está seguro de cómo usarlos con SharePoint
Online? Ha venido al lugar correcto. En esta serie de tutoriales se explica cómo crear una aplicación de lienzo
básica para la administración de proyectos basada en listas de SharePoint y tres tecnologías clave que se
integran con SharePoint Online: PowerApps, Power Automatic y Power BI. Estas tecnologías funcionan de forma
conjunta, lo que facilita el análisis de su negocio, la actuación sobre los resultados y la automatización de los
flujos de trabajo. Cuando haya terminado con esta serie de tutoriales, tendrá un escenario estupendo similar al
siguiente:
Escenario empresarial
En esta serie de tutoriales, la empresa Contoso tiene un sitio de SharePoint Online donde administran el ciclo de
vida de los proyectos, desde su solicitud, aprobación y desarrollo hasta la revisión final. Un solicitante de
proyecto como, por ejemplo, un director de departamento, solicita un proyecto de TI mediante la adición de un
elemento a una lista de SharePoint. Un aprobador de proyecto como, por ejemplo, un administrador de TI,
revisa el proyecto y, a continuación, lo aprueba o lo rechaza. Si se aprueba, el proyecto se asigna a un jefe de
proyecto y se agrega información adicional a una segunda lista en la misma aplicación. Un analista de negocios
revisa los proyectos actuales y los ya finalizados mediante un informe de Power BI insertado en SharePoint.
Power Automatic se usa para enviar correo electrónico de aprobación y responder a Power BI alertas.

Introducción rápida
El escenario que se presenta en esta serie de tutoriales es sencillo en comparación con una aplicación de análisis
y gestión de proyectos con todas las prestaciones, pero aún así se tarda algún tiempo en completar todas las
tareas. Si solo desea obtener una introducción rápida al uso de PowerApps, Power Automate y Power BI con
SharePoint, consulte los artículos siguientes:
PowerApps: Creación de una aplicación desde SharePoint mediante PowerApps y Generación de una
aplicación para administrar datos en una lista de SharePoint
Power Automatic: espera de aprobación en Power Automatic
Power BI: Insertar el elemento web de informes en SharePoint Online
Una vez que haya terminado, confiamos en que volverá para comprobar el escenario completo.
Incluso dentro del mismo escenario, puede centrarse en las tareas que más le interesen e ir completando el resto
a medida que disponga de más tiempo. Después de configurar las listas de SharePoint en la tarea 1, puede
trabajar en las tareas 2 a 5 en cualquier orden. Por último, las tareas 6 a 8 son secuenciales. Finalmente, hemos
incluido dos aplicaciones terminadas y un informe de Power BI Desktop como parte del paquete de descarga de
este escenario. Puede examinar estos y obtener información incluso aunque no realice todos los pasos de cada
tarea.

Requisitos previos
Para completar el escenario, necesita las siguientes suscripciones y herramientas de escritorio. La suscripción a
Office 365 Business Premium incluye PowerApps y Power Automatic.

SUSCRIPCIÓN O HERRAMIENTA VÍNCULO

Suscripción a Office 365 Business Premium Suscripción de prueba

Suscripción a Power BI Pro Suscripción de prueba (haga clic en PROBAR GRATIS)

Power BI Desktop Descarga gratuita (haga clic en DESCARGAR GRATIS)

Lo ideal es tener un conocimiento básico de cada tecnología, pero incluso si no es así, podrá completar el
escenario descrito. Use el siguiente contenido para ponerse al día:
Introducción a SharePoint
Aprendizaje guiado de PowerApps
Alimentación automatizada de aprendizaje guiado
Aprendizaje guiado de Power BI
Pasos siguientes
El siguiente paso en esta serie de tutoriales es configurar las listas de SharePoint Online que se usan en toda la
serie.
Configuración de listas para la integración de
SharePoint Online con PowerApps, Power Automate
y Power BI
09/11/2019 • 11 minutes to read

NOTE
Este artículo forma parte de una serie de tutoriales sobre el uso de PowerApps, la automatización y el Power BI con
SharePoint Online. Asegúrese de leer la introducción a la serie para hacerse una idea general, así como para obtener
descargas relacionadas.

SharePoint tiene una gran cantidad de características para la colaboración y el uso compartido, pero nos
centraremos en una característica de este escenario: las listas de SharePoint. Una lista no es más que una colección
de datos que se pueden compartir con los miembros del equipo y otros usuarios del sitio. Analizaremos las listas
que se usan en este escenario y, después, podrá crearlas en su propio sitio de SharePoint Online.

Paso 1: Información de las listas


La primera lista es Project Requests, en la que un solicitante del proyecto agrega una solicitud. A continuación, el
aprobador de proyecto examina la solicitud y la aprueba o rechaza.

COLUMNA DE LISTA TIPO DE DATOS NOTAS

Título Una línea de texto Columna predeterminada, se utiliza


para el nombre del proyecto

Descripción Una línea de texto

ProjectType Una línea de texto Valores: hardware nuevo, hardware


actualizado, software nuevo, software
actualizado

RequestDate Date

Requestor Una línea de texto

EstimatedDays Número Permite la comparación de la estimación


del solicitante con la estimación del jefe
de proyecto con la fecha real

Approved Una línea de texto Valores: pendiente, sí o no


NOTE
También utilizamos la columna ID, que genera SharePoint y que está oculta de forma predeterminada. Utilizamos tipos de
datos básicos para simplificar, pero una aplicación real podría utilizar tipos más complejos, como Persona o grupo en la
columna Requestor. Para obtener información sobre los tipos de datos que admite PowerApps, consulte Conexión de
Microsoft PowerApps a SharePoint.

La segunda lista es Project Details, que realiza un seguimiento de los detalles de todos los proyectos aprobados,
como el jefe de proyecto asignado.

COLUMNA DE LISTA TIPO DE DATOS NOTAS

Título Una línea de texto Columna predeterminada, se utiliza


para el nombre del proyecto

RequestID Número Coincide con el valor de la lista Project


Requests de la columna ID

ApprovedDate Date

Estado Una línea de texto Valores: no iniciado, en curso,


completado

ProjectedStartDate Date El momento en que el jefe de proyecto


estima que se va a iniciar el proyecto

ProjectedEndDate Date El momento en que el jefe de proyecto


estima que se va a finalizar el proyecto

ProjectedDays Número Días hábiles; normalmente se


calcularían, pero no en este escenario

ActualDays Número Para los proyectos completados

PMAssigned Una línea de texto Jefe de proyecto

Paso 2: Creación y revisión de las listas


Para continuar con el escenario, debe crear las dos listas de SharePoint y rellenarlas con datos de ejemplo. Le
mostraremos cómo hacerlo mediante la creación de la lista y el pegado en ella de datos de ejemplo. Asegúrese de
que dispone de los archivos de Excel del paquete de descarga.

NOTE
Use Internet Explorer para este paso.

Creación de las listas


1. En Internet Explorer, en el sitio de SharePoint, haga clic o pulse en New (Nuevo) y , luego, en List (Lista).
2. Escriba el nombre "Project Requests" y haga clic o pulse Create (Crear).

Se crea la lista Project Requests con el campo predeterminado Title.

Adición de columnas a la lista


1. Haga clic o pulse en el y , después, en Single line of text (Una línea de texto).

2. Escriba el nombre "Description" y haga clic o pulse en Save (Guardar).


3. Repita los pasos 1. y 2. para las demás columnas de la lista:
a. Single line of text (Una línea de texto) > "ProjectType"
b. Date (Fecha) > "RequestDate"
c. Single line of text (Una línea de texto) > "Requestor"
d. Number (Número) > "EstimatedDays"
e. Single line of text (Una línea de texto) > "Approved"
Copia de datos en la lista
1. Haga clic o pulse en Quick edit (Edición rápida).

2. Seleccione las celdas de la cuadrícula.

3. Abra el libro project-requests.xlsx y seleccione todos los datos (no los encabezados).

4. Copie los datos y péguelos en la cuadrícula de SharePoint y haga clic en o pulse en Done (Listo).
5. Repita el proceso de creación y copia de la lista "Project Details", para lo que usará el libro project-
details.xlsx. Consulte la tabla Project Details en Paso 1: Información de las listas, ya que contiene los tipos de
datos y los nombres de las columnas.

Paso 3: Actualización de conexiones a ejemplos (opcional)


Como se mencionó en la introducción a esta serie de tutoriales, en el paquete de descarga se han incluido dos
aplicaciones de ejemplo y un informe. Este escenario se puede completar sin usar estos ejemplos, pero si desea
usarlos, es preciso que actualice las conexiones a las listas de SharePoint. Actualícelas para que usen sus listas
como origen de datos, en lugar de las nuestras.
Actualizar las conexiones de las aplicaciones de ejemplo
1. En PowerApps Studio, haga clic en Abrir (o púlselo) en el panel izquierdo.
2. Haga clic o pulse Examinar y abra el archivo project-management-app.msapp que descargó.
3. Haga clic o pulse Permitir para que PowerApps pueda usar SharePoint.
4. En la cinta de opciones, en la pestaña Vista, pulse o haga clic en Orígenes de datos.

5. En el panel Datos, haga clic o pulse el botón de puntos suspensivos ( ... ) que se encuentra al lado de
Detalles del proyecto y haga clic o pulse en Quitar.

6. Pulse o haga clic en Agregar origen de datos.

7. Le mostraremos dos formas de conectarse a la lista, en función de si PowerApps ya ha establecido


automáticamente una conexión de SharePoint, o no:
Si ve una conexión de SharePoint, haga clic o pulse en ella.

Si ve ninguna conexión de SharePoint, haga clic o pulse en Nueva conexión.

A continuación, haga clic o pulse SharePoint y, después, Crear.


8. Escriba la dirección URL del sitio de SharePoint Online que contiene las listas que creó y pulse o haga clic
en Ir.

9. Seleccione la lista Project Details y pulse o haga clic en Conectar.

El panel Datos muestra la conexión que creó.

10. Haga clic o pulse el botón de puntos suspensivos ( ... ) que se encuentra al lado de Detalles del proyecto y
haga clic o pulse en Actualizar.

11. Haga clic en en la esquina superior derecha para ejecutar la aplicación y asegúrese de que la conexión
funciona correctamente.
12. Haga clic o pulse Archivo y guarde la aplicación en la nube.
13. Repita los pasos de esta sección en app.msapp de las solicitudes de proyecto, mediante el uso de la lista
Project Requests.
Actualizar las conexiones del informe de ejemplo
1. Abra project-analysis.pbix en Power BI Desktop.
2. En la cinta de opciones, en la pestaña Inicio, pulse o haga clic en Editar consultas y, luego, en
Configuración de origen de datos.

3. Pulse o haga clic en Cambiar origen.

4. Escriba la dirección URL del sitio de SharePoint Online, haga clic o pulse Aceptar y, finalmente, Cerrar.

5. Power BI Desktop muestra un banner debajo de la cinta de opciones, con el fin de que pueda aplicar los
cambios y trasladar los datos del nuevo origen. Haga clic o pulse en Aplicar cambios.

6. Inicie sesión con una cuenta de Microsoft (la cuenta que utiliza para acceder a SharePoint Online) y haga
clic o pulse en Conectar.

Pasos siguientes
El siguiente paso de esta serie de tutoriales es generar una aplicación para controlar las solicitudes de proyecto.
Generación de una aplicación de lienzo para
controlar solicitudes de proyecto
12/11/2019 • 11 minutes to read

NOTE
Este artículo forma parte de una serie de tutoriales sobre el uso de PowerApps, la automatización y el Power BI con
SharePoint Online. Asegúrese de leer la introducción a la serie para hacerse una idea general, así como para obtener
descargas relacionadas.

Ahora que las listas de SharePoint están en su sitio, podemos generar y personalizar la primera aplicación.
PowerApps está integrado con SharePoint, por lo que es fácil generar una aplicación de tres pantallas básica
directamente desde una lista. Esta aplicación permite ver información tanto resumida como detallada de cada
elemento de la lista, actualizar los elementos existentes en la lista y crear nuevos elementos en la lista. Si crea una
aplicación directamente a partir de una lista, esta aparece como un vista en dicha lista. Posteriormente, dicha
aplicación se puede ejecutar tanto en un explorador como en un teléfono móvil.

TIP
El paquete de descarga para este escenario incluye una versión terminada de esta aplicación: project-requests-app.msapp.

Paso 1: Generación de una aplicación a partir de una lista de


SharePoint
1. En la lista Project Requests que ha creado, pulse o haga clic en PowerApps y, después en, Crear una
aplicación.

2. Asigne un nombre a la aplicación, como "Project Requests app", y haga clic o pulse en Crear. Cuando la
aplicación está lista, se abre en PowerApps Studio.

Paso 2: Examen de la aplicación en PowerApps Studio


1. En PowerApps Studio, la barra de navegación izquierda muestra de forma predeterminada una vista
jerárquica de las pantallas y los controles de la aplicación.
2. Haga clic o pulse en el icono de la miniatura para cambiar de vista.

3. Pulse o haga clic en la pantalla que desee para verla en el panel central. Hay tres pantallas:
(a). La pantalla de exploración, donde se exploran, ordenan y filtran los datos extraídos de la lista.
(b). La pantalla de detalles, en la que aparece información más detallada de un elemento.
(c). La pantalla de edición o creación, donde se editan los elementos existentes o se crean nuevos.
Paso 3: Personalización de la pantalla de exploración de la aplicación
1. Haga clic o pulse en la pantalla de exploración.
Esta pantalla tiene una diseño que contiene un galería que muestra los elementos de lista, así como otros
controles, como una barra de búsqueda y un botón de ordenación.
2. Seleccione la galería BrowseGallery1 haciendo clic o pulsando en cualquier registro, excepto en el
primero.

3. En el panel derecho, en Propiedades, haga clic o pulse Project Requests.


4. Actualice los campos para que coincidan con los de la siguiente lista:
RequestDate
Requestor
Title

5. Con BrowseGallery1 aún seleccionado, seleccione la propiedad Elementos.

6. Cambie la fórmula a SortByColumns(Filter('Project Requests'; StartsWith(Title;


TextSearchBox1.Text)); "Title"; If(SortDescending1; Descending; Ascending)) .

Le permite ordenar y buscar por el campo Title, en lugar del predeterminado que eligió PowerApps. Para
más información, consulte Formula deep-dive (Análisis en profundidad de una fórmula).
7. Pulse o haga clic en Archivo y, luego, en Guardar. Haga clic o pulse en (Volver a la aplicación) para
volver a la aplicación.

Paso 4: Revisión de la pantalla de detalles y la pantalla de edición de la


aplicación
1. Haga clic o pulse en la pantalla de detalles.
Esta pantalla tiene un diseño diferente que contiene un formulario de presentación que muestra los detalles
de un elemento seleccionado en la galería. Tiene controles para editar y eliminar elementos, y para volver a
la pantalla de exploración.
2. Haga clic o pulse en la pantalla de edición.
Esta pantalla contiene un formulario de edición para editar el elemento seleccionado o para crear uno
nuevo (si se accede a él directamente desde la pantalla de exploración). Tiene controles para guardar o
descartar los cambios.

Paso 5: Ejecución de la aplicación desde la lista


1. En la lista Project Requests, pulse o haga clic en Todos los elementos y en Project Requests app.

2. Haga clic en Abrir, lo que abre la aplicación en una nueva pestaña de explorador.

3. En la aplicación, pulse o haga clic en en el primer elemento de la galería de exploración.

4. Haga clic o pulse para editar el elemento.


5. Actualice el campo Description: cambie la última palabra de "group" a "team" y, luego, pulse o haga clic en
el
6. Cierre la pestaña del explorador.
7. Vuelva a la lista Project Requests, pulse o haga clic en Project Requests app y en Todos los elementos.

8. Compruebe el cambio que realizó en la aplicación.

Se trata de una aplicación muy simple y solo hemos realizado unas pocas personalizaciones básicas, pero se puede
ver que es posible crear rápidamente algo interesante. Vamos a pasar a la tarea siguiente, pero si lo desea, examine
la aplicación con mayor profundidad para ver cómo funcionan conjuntamente los controles y las fórmulas para
potenciar el comportamiento de la aplicación.

Análisis en profundidad de una fórmula


Esta sección es opcional, pero le ayudará a conocer mejor cómo funcionan las fórmulas. En el paso 3 de esta tarea,
se modificó la fórmula de la propiedad Elementos de BrowseGallery1. En concreto, se cambió la forma en que
se realizaban las acciones de ordenación y búsqueda para utilizar el campo Title, en lugar del campo que
PowerApps seleccionaba. Esta es la fórmula modificada:
SortByColumns ( Filter ( 'Project Requests', StartsWith ( Title, TextSearchBox1.Text ) ), "Title", If (
SortDescending1, Descending, Ascending ) )
Pero, ¿qué hace esta fórmula? Determina el origen de datos que aparece en la galería, filtra los datos en función
del texto que se escriba en el cuadro de búsqueda y ordena los resultados en función del botón de ordenación de
la aplicación. La fórmula usa funciones para realizar todas estas acciones. Las funciones toman parámetros (es
decir, entrada), realizan una operación (por ejemplo, filtrado) y un devuelven un valor (es decir, salida):
La función SortByColumns ordena una tabla según una o varias columnas.
La función Filter busca los registros en una tabla que satisface una fórmula que se especifica.
La función StartsWith comprueba si una cadena de texto comienza por otra.
La funciónIf devuelve un valor si una condición es true y otro valor si es false.
Cuando se juntan las funciones en la fórmula, ocurre lo siguiente:
1. Si escribe texto en el cuadro de búsqueda, la función StartsWith compara dicho texto con el principio de
cada cadena de la columna Title de la lista.
StartsWith (Title, TextSearchBox1.Text)
Por ejemplo, si escribe "de" en el cuadro de búsqueda, verá cuatro resultados, incluidos los elementos que
comienza por "Desktop" y "Device". No verá todos los elementos de "Mobile devices" porque no empiezan
por "de".
2. La función Filter devuelve filas de la tabla Project Requests. Si no hay texto en el cuadro de búsqueda con
el que comparar, Filter devuelve todas las filas.
Filter ('Project Requests', StartsWith (Title, TextSearchBox1.Text)
3. La función If examina si la variable SortDescending1 está establecida en true o false (la establece el botón
de ordenación de la aplicación). A continuación, la función devuelve uno de estos dos valores: Descending
o Ascending.
If (SortDescending1, Descending, Ascending)
4. Ahora la función SortByColumns puede ordenar la galería. En este caso, la ordena por el campo Title,
pero puede ser un campo que no se en el que se busca.
Si ha seguido la explicación, esperamos que conozca mejor cómo funciona esta fórmula y cómo puede combinar
funciones y otros elementos para lograr el comportamiento que las aplicaciones requieren. Para más información,
consulte Referencia sobre fórmulas para PowerApps.

Pasos siguientes
El siguiente paso de esta serie de tutoriales es crear un flujo para administrar aprobaciones de proyectos.
Creación de un flujo para administrar aprobaciones
de proyectos
09/11/2019 • 10 minutes to read

NOTE
Este artículo forma parte de una serie de tutoriales sobre el uso de PowerApps, la automatización y el Power BI con
SharePoint Online. Asegúrese de leer la introducción a la serie para hacerse una idea general, así como para obtener
descargas relacionadas.

En esta tarea, vamos a crear un flujo que acciona el proceso de aprobación de proyectos. Power Automatic se
integra con SharePoint, por lo que es fácil crear un flujo directamente desde una lista. El flujo que vamos a crear se
desencadena cuando se agrega un elemento a la lista Project Requests. El flujo envía un correo electrónico al
aprobador del proyecto, quien aprueba o rechaza la solicitud directamente en el correo electrónico. Después, el
flujo envía un correo electrónico de aprobación o rechazo al solicitante del proyecto y actualiza nuestras listas de
SharePoint en consecuencia.

Paso 1: Configuración de la plantilla de flujo


1. En la lista Project Requests, pulse o haga clic en Flujo y, luego, en Crear un flujo.

2. En el panel derecho, pulse o haga clic en Enviar aprobación cuando se agregue un elemento nuevo.

3. Si aún no ha iniciado sesión, inicie sesión en SharePoint y Outlook, y pulse o haga clic en Continuar.
Ahora verá la plantilla para este flujo, lista para que la complete. Los cuadros en el flujo representan pasos.
Toman tanto la entrada de los pasos anteriores como la que el usuario proporcione. Cada paso puede
proporcionar salida a los pasos posteriores.

4. En el cuadro Asignado a, escriba un nombre que sea válido en el inquilino.

El siguiente cuadro del flujo responde a la decisión del correo electrónico del aprobador del proyecto y
enruta el flujo a una de las dos ramas: En caso positivo o En caso negativo.

Paso 2: Crear acciones en caso de Approve = yes


De forma predeterminada, esta rama envía un correo electrónico de aprobación al solicitante. También se
actualizará la lista Project Requests lista y se agregará un elemento a la lista Project Details porque el proyecto
se ha aprobado.
1. En la rama En caso positivo, pulse o haga clic en Inform item creator of approval (Informar al creador
del elemento de la aprobación) y, después, en Edit (Editar) para ver las opciones predeterminadas del
mensaje de correo electrónico enviado al solicitante.

2. De forma predeterminada, se envía un correo electrónico a la persona que creó el elemento de la lista, con
la línea de asunto y cuerpo del mensaje que se ven. Puede actualizar estos elementos si lo desea.

3. Pulse o haga clic en Agregar una acción.

4. En Elegir una acción, busque "SharePoint", a continuación, haga clic o pulse en SharePoint: actualizar
elemento.

5. Escriba el nombre de lista y la dirección URL del sitio de SharePoint.


6. Seleccione el cuadro Identificador y pulse o haga clic en Identificador en el cuadro de diálogo Contenido
dinámico.

El contenido dinámico está disponible en todo el flujo, basándose en los pasos anteriores. En este caso, la
información de la lista de SharePoint está disponible y se puede usar en las acciones que se creen.
7. Seleccione el cuadro Title, busque "Title" en el cuadro de diálogo de contenido dinámico y pulse o haga clic
en Title.

8. En el cuadro Aprobado, escriba "Sí". Ahora esta parte del flujo debería parecerse a la siguiente imagen.
9. Vuelva a pulse o a hacer clic en Agregar una acción. Esta vez vamos a agregar un elemento a la lista
Project Details del proyecto que se ha aprobado.

10. En Elegir una acción, busque "SharePoint" y seleccione SharePoint: crear elemento.

11. Escriba el nombre de lista y la dirección URL del sitio de SharePoint.

12. Seleccione el cuadro Title, busque "Title" en el cuadro de diálogo de contenido dinámico y pulse o haga clic
en Title.
13. Seleccione el cuadro RequestId y pulse o haga clic en ID en el cuadro de diálogo de contenido dinámico.

14. En el cuadro PMAssigned, escriba "Sin asignar". Ahora esta parte del flujo debería parecerse a la siguiente
imagen.

Paso 3: Revisar las acciones en caso de Approve = no


De forma predeterminada, esta rama envía un correo electrónico de rechazo al solicitante. También se actualizará
la lista Project Requests. El proyecto no va a avanzar, así que no se agrega ningún elemento a la lista Project
Details.
1. En la rama En caso negativo, pulse o haga clic en Inform item creator of rejection (Informar al creador
del elemento del rechazo) y, después, en Edit (Editar) para ver las opciones predeterminadas del mensaje
de correo electrónico enviado al solicitante.

2. De forma predeterminada, se envía un correo electrónico a la persona que creó el elemento de la lista, con
la línea de asunto y cuerpo del mensaje que se ven. Puede actualizar estos elementos si lo desea.

3. Pulse o haga clic en Agregar una acción.

4. En Elegir una acción, busque "SharePoint", a continuación, haga clic o pulse en SharePoint: actualizar
elemento.

5. Escriba el nombre de lista y la dirección URL del sitio de SharePoint.

6. Seleccione el cuadro Identificador y pulse o haga clic en Identificador en el cuadro de diálogo Contenido
dinámico.

7. Seleccione el cuadro Title, busque "Title" en el cuadro de diálogo de contenido dinámico y pulse o haga clic
en Title.

8. En el cuadro Aprobado, escriba "No". Ahora esta parte del flujo debería parecerse a la siguiente imagen.

9. En la parte superior derecha de la pantalla, pulse o haga clic en Crear flujo.


El flujo está completo y debería ser similar a la siguiente imagen si se contraen los cuadros.
10. En la parte superior derecha de la pantalla, pulse o haga clic en Listo.

Paso 4: Ejecución del flujo de aprobación


1. En la lista Solicitudes de proyecto, haga clic en editar rápido y agregar un elemento como el siguiente:
Title = "New monitor for Megan"
Description = "Megan needs a 24" monitor"
ProjectType = "New hardware"
RequestDate = "02/03/2017"
Requestor = "Megan Bowen"
EstimatedDays = "1"
Approved = "Pending"

2. Haga clic en Listo en la parte superior de la página cuando haya terminado.

3. Compruebe la bandeja de entrada de la cuenta de correo electrónico del aprobador. Debe tener un correo
electrónico similar al siguiente.
4. Después de hacer clic en Aprobar o Rechazar el flujo ejecuta otro proceso y obtiene información similar a
la siguiente directamente en el correo electrónico.

5. El flujo envía un correo electrónico a Megan con la respuesta de Allan, como se muestra en la siguiente
imagen. Dicho correo electrónico procede de Megan porque es la propietaria del flujo.

Pasos siguientes
El siguiente paso de esta serie de tutoriales es crear una aplicación para administrar proyectos.
Creación de una aplicación de lienzo para
administrar proyectos
12/11/2019 • 26 minutes to read

NOTE
Este artículo forma parte de una serie de tutoriales sobre el uso de PowerApps, la automatización y el Power BI con
SharePoint Online. Asegúrese de leer la introducción a la serie para hacerse una idea general, así como para obtener
descargas relacionadas.

En esta tarea se va a compilar una aplicación de lienzo desde el principio. Esta aplicación permite a un usuario
asignar un administrador a proyectos y actualizar los detalles de proyectos. Va a ver algunos de los mismos
controles y fórmulas que en la primera aplicación, pero creará más partes de la aplicación en esta ocasión. El
proceso es más complejo, pero aprenderá más, por lo que el equilibrio debería ser razonable.

TIP
El paquete de descarga de este escenario incluye una versión terminada de esta aplicación: project-details-app.msapp.

Repaso rápido de PowerApps Studio


PowerApps Studio tiene tres paneles y una cinta de opciones que hacen que crear aplicaciones sea similar a crear
un conjunto de diapositivas en PowerPoint:
1. Barra de navegación izquierda, que muestra una vista jerárquica de todas las pantallas y los controles de la
aplicación, así como miniaturas de las pantallas.
2. Panel central, que contiene la pantalla de la aplicación con la que está trabajando.
3. Panel derecho, donde se establecen opciones como los orígenes de datos y el diseño.
4. Lista desplegable Propiedad, donde se seleccionan las propiedades a las que se aplican las fórmulas.
5. Barra de fórmulas, donde se agregan las fórmulas (como en Excel) que definen el comportamiento de la
aplicación.
6. Cinta de opciones, donde puede agregar controles y personalizar los elementos de diseño.
Paso 1: Creación de pantallas
Una vez terminado el repaso, empiece a crear una aplicación.
Crear y guardar la aplicación
1. En PowerApps Studio, pulse o haga clic en Nuevo, en Aplicación vacía y en Diseño de teléfono.

2. Pulse o haga clic en archivo, que se abre en una pestaña de configuración de la aplicación . Escriba el
nombre "aplicación de administración de proyectos".

3. Pulse o haga clic en Guardar como, compruebe que la aplicación se guardará en la nube y haga clic en
Guardar en la esquina inferior derecha.

4. Haga clic o pulse para volver a la aplicación.


Agregar cuatro pantallas a la aplicación
En este paso, se van a crear cuatro pantallas en blanco para la aplicación. Se usarán diseños de pantalla diferentes,
según el propósito de la pantalla. Se agregarán más pantallas en pasos posteriores.

PANTALLA PROPÓSITO

SelectTask Pantalla de apertura; navegar a otras pantallas.

AssignManager Asignar un administrador a un proyecto aprobado.

ViewProjects Ver una lista de proyectos, con información de resumen.

UpdateDetails Ver y actualizar los detalles de un proyecto.

1. En la pestaña Inicio, pulse o haga clic en Nueva pantalla y en Pantalla desplazable.

2. Cambie el nombre de la pantalla a SelectTask.

3. Cree y cambie el nombre de pantallas adicionales:


a. Pulse o haga clic en Nueva pantalla y en Pantalla desplazable. Cambie el nombre de la pantalla a
AssignManager.
b. Pulse o haga clic en Nueva pantalla y en Pantalla de lista. Cambie el nombre de la pantalla a
ViewProjects.
c. Pulse o haga clic en Nueva pantalla y en Pantalla de formulario. Cambie el nombre de la pantalla a
UpdateDetails.
4. Seleccione los puntos suspensivos ( … ) junto a Screen1 y pulse o haga clic en Eliminar.

Ahora la aplicación debería parecerse a la siguiente imagen.


Paso 2: Conexión a una lista de SharePoint
En este paso, se conectará a la lista Project details SharePoint. Solo se usa una lista en esta aplicación, pero
puede conectarse fácilmente a ambas si desea ampliarla.
1. En la barra de navegación izquierda, pulse o haga clic en la pantalla SelectTask.
2. En el panel derecho, pulse o haga clic en Agregar origen de datos.

3. Pulse o haga clic en Nueva conexión.

4. Pulse o haga clic en SharePoint.

5. Seleccione Conectar directamente (servicios en la nube) y pulse o haga clic en Crear.


6. Escriba una dirección URL de SharePoint y pulse o haga clic en Ir.

7. Seleccione la lista Project Details y pulse o haga clic en Conectar.

La pestaña Orígenes de datos en el panel derecho muestra ahora la conexión que ha creado.

Paso 3: Preparación de la pantalla SelectTask


En este paso, se proporciona una forma de navegar hasta las restantes pantallas de la aplicación mediante el uso
de algunos de los controles, las fórmulas y las opciones de formato que proporciona PowerApps.
Actualizar el título e insertar el texto de introducción
1. En la barra de navegación izquierda, seleccione la pantalla SelectTask.
2. En el panel central, seleccione el valor predeterminado [Título] y, en la barra de fórmulas, actualice la
propiedad Texto a "Contoso Project Management".

3. En la pestaña Insertar, pulse o haga clic en Etiqueta y arrastre la etiqueta debajo del título superior.
4. En la barra de fórmulas, establezca las siguientes propiedades para la etiqueta:
Propiedad Color = GrisOscuro
Propiedad Tamaño = 18
Propiedad Texto = "Click or tap a task to continue…"

Agregar dos botones de navegación


1. En la pestaña Insertar, pulse o haga clic en Botón y arrastre el botón debajo de la etiqueta.

2. En la barra de fórmulas, establezca las siguientes propiedades para el botón:


Propiedad AlSeleccionar = Navigate(AssignManager; Fade) . Cuando ejecute la aplicación y
haga clic en este botón, irá a la segunda pantalla de la aplicación, con una transición de fundido entre
las pantallas.
Propiedad Texto = "Assign Manager"
3. Cambie el tamaño del botón para dar cabida al texto.

4. Inserte otro botón con las siguientes propiedades:


Propiedad AlSeleccionar = Navigate(ViewProjects; Fade) .
Propiedad Texto = "Update Details"
NOTE
El botón se etiqueta como Update Details, pero primero va a ir a la pantalla ViewProjects para seleccionar
un proyecto para actualizar.

Ejecutar la aplicación
La aplicación aún no hace mucho, pero se puede ejecutar si así lo desea:
1. Pulse o haga clic en la pantalla SelectTask (la aplicación siempre se inicia desde la pantalla seleccionada en
el modo de vista previa de PowerApps Studio).
2. Haga clic o pulse en la esquina superior derecha para ejecutar la aplicación.
3. Pulse o haga clic en uno de los botones para ir a otra pantalla.
4. Haga clic o pulse en la esquina superior derecha para cerrar la aplicación.

Paso 4: Preparación de la pantalla AssignManager


En este paso, se va a usar una galería para mostrar todos los proyectos que se han aprobado pero aún carecen de
administrador. Se agregarán otros controles, para que pueda asignar un administrador.

NOTE
Más adelante, se va a crear en la aplicación una página que permite editar todos los campos de un proyecto (incluido el de
administrador), pero también podría estar bien crear una pantalla como esta.

1. Guarde los cambios que haya realizado hasta ahora.


2. En la barra de navegación izquierda, pulse o haga clic en la pantalla AssignManager.
Actualizar el título e insertar el texto de introducción
1. Cambie [Título] a Assign Manager.
2. Agregue una etiqueta con las siguientes propiedades:
Propiedad Color = GrisOscuro
Propiedad Tamaño = 18
Propiedad Texto = "Select a project, then assign a manager"
Agregar una flecha Atrás para volver a la pantalla SelectTask
1. Pulse o haga clic en la barra azul en la parte superior de la pantalla.
2. En la pestaña Insertar, pulse o haga clic en Iconos y en Izquierda.

3. Mueva la flecha al lado izquierdo de la barra azul y establezca las siguientes propiedades:
Propiedad Color = Blanco
Propiedad Alto = 40
Propiedad AlSeleccionar = Navigate(SelectTask; Fade)
Propiedad Ancho = 40

Agregar y modificar una galería


1. En la pestaña Insertar, pulse o haga clic en Galería y en Vertical.

2. Seleccione Título, subtítulo y cuerpo en el menú Diseño en el panel derecho.


La galería tiene ahora el diseño correcto, pero aún contiene el texto de ejemplo predeterminado. Esto se va
a solucionar a continuación.

3. Establezca las siguientes propiedades para la galería:


Propiedad GrosorDelBorde = 1
Propiedad EstiloDelBorde = Punteado
Propiedad Elementos = Filter('Project Details'; PMAssigned="Unassigned") . Solo se incluyen
en la galería los proyectos que no tienen ningún administrador asignado.

4. En el panel derecho, actualice los campos para que coincidan con la siguiente lista:
ApprovedDate
Status
Title
5. Cambie el tamaño de las etiquetas en la galería según corresponda y quite la flecha del primer elemento de
la galería (no es necesario salir de esta galería).

Ahora la pantalla debería parecerse a la siguiente imagen.

Cambiar el color de un elemento si está seleccionado


1. Seleccione la galería y establezca la propiedad RellenoDePlantilla en If (ThisItem.IsSelected=true,
Orange, White) .
2. Seleccione un elemento en la galería. Ahora la pantalla debería parecerse a la siguiente imagen.

Agregar una etiqueta, entrada de texto y un botón OK para asignaciones de administrador


1. Pulse o haga clic fuera de la galería en la que ha estado trabajando.
2. En la pestaña Insertar, pulse o haga clic en Etiqueta. Arrastre la etiqueta debajo de la galería, a la
izquierda. Establezca las siguientes propiedades para la etiqueta:
Propiedad Tamaño = 20
Propiedad Texto = "Manager:"

3. En la pestaña Insertar, pulse o haga clic en Texto y en Entrada de texto. Arrastre la entrada de texto
debajo de la galería, en el centro. Establezca las siguientes propiedades para la lista desplegable:
Propiedad Predeterminado = ""
Propiedad Alto = 60
Propiedad Tamaño = 20
Propiedad Ancho = 250

4. En la pestaña Insertar, pulse o haga clic en Botón. Arrastre el botón debajo de la galería, a la derecha.
Establezca las siguientes propiedades para el botón:
Propiedad Alto = 60
Propiedad AlSeleccionar = Patch('Project Details'; LookUp('Project Details'; ID =
Gallery1.Selected.ID ); {PMAssigned: TextInput1.Text}) . Para más información, consulte
Análisis en profundidad de una fórmula.
Esta fórmula actualiza la lista Project Details y establece un valor para el campo PMAssigned.
Propiedad Tamaño = 20
Propiedad Texto = "OK"
Propiedad Ancho = 80

Ahora la pantalla completada debería parecerse a la siguiente imagen.


Paso 5: Preparación de la pantalla ViewProjects
En este paso, se cambiarán las propiedades para la galería en la pantalla ViewProjects. Esta galería muestra
elementos de la lista Project Details. Seleccione un elemento en esta pantalla y edite los detalles en la pantalla
UpdateDetails.
1. En la barra de navegación izquierda, pulse o haga clic en la pantalla ViewProjects.
2. Cambie [Título] a "View Projects" .
3. En la barra de navegación izquierda, pulse o haga clic en BrowserGallery1 en ViewProjects.
4. Seleccione Título, subtítulo y cuerpo en el menú Diseño en el panel derecho.

La galería tiene ahora el diseño correcto, con el texto de ejemplo predeterminado.


5. Seleccione el botón Actualizar y establezca su propiedad AlSeleccionar en Refresh('Project Details')
.
6. Seleccione el botón Nuevo elemento y establezca su propiedad AlSeleccionar en
NewForm (EditForm1);; Navigate(UpdateDetails; ScreenTransition.None) .
Agregar una flecha Atrás para volver a la pantalla SelectTask
1. En la barra de navegación izquierda, pulse o haga clic en la pantalla AssignManager.
2. Seleccione la flecha Atrás que agregó allí y cópiela.
3. Pegue la flecha en la pantalla ViewProjects y colóquela a la izquierda del botón Actualizar.

La acompañan todas sus propiedades, incluida la propiedad AlSeleccionar de Navigate(SelectTask;


Fade) .
Cambiar el origen de datos de la galería BrowseGallery1 (GaleríaExamen1)
1. Seleccione la galería BrowseGallery1 y establezca la propiedad Elementos de la galería en
SortByColumns(Filter('Project Details'; StartsWith(Title; TextSearchBox1.Text)); "Title";
If(SortDescending1; Descending; Ascending)) .
Esto establece el origen de datos de la galería en la lista Project Details y usa el campo Título para
búsquedas y clasificación.

2. Seleccione en el primer elemento de la galería y establezca la propiedad AlSeleccionar en


Navigate(UpdateDetails; None) .
3. En el panel derecho, actualice los campos para que coincidan con la siguiente lista:
Status
PMAssigned
Title

Ahora la pantalla completada debería parecerse a la siguiente imagen.

Paso 6: Preparación de la pantalla UpdateDetails


En este paso, se conectará el formulario de edición en la pantalla UpdateDetails al origen de datos, y se harán
algunos cambios en propiedades y campos. En esta pantalla, puede editar los detalles de un proyecto que haya
seleccionado en la pantalla View Projects.
1. En la barra de navegación izquierda, pulse o haga clic en la pantalla UpdateDetails.
2. Cambie [Título] a "Update Details" .
3. En la barra de navegación izquierda, pulse o haga clic en EditForm1 en UpdateDetails.
4. Establezca las siguientes propiedades para el formulario:
Propiedad OrigenDeDatos = 'Project Details'
Propiedad Elemento = BrowseGallery1.Selected
5. Con el formulario aún seleccionado, en el panel derecho, pulse o haga clic en la casilla de los siguientes
campos, en el orden mostrado:
Title
PMAssigned
Status
ProjectedStartDate
ProjectedEndDate
ProjectedDays
ActualDays

6. Seleccione el botón Cancelar y establezca su propiedad AlSeleccionar en ResetForm (EditForm1);;


Back() .
7. Seleccione el botón Guardar y consulte la fórmula de AlSeleccionar: SubmitForm (EditForm1) .
Como se va a usar el control de formulario de edición, se puede utilizar Submit() en lugar de Patch() ,
como antes.
La pantalla completada debería parecerse a la siguiente imagen (si los campos están vacíos, asegúrese de
seleccionar un elemento en la pantalla View Projects).

Paso 7: Ejecución de la aplicación


Ahora que la aplicación está completa, ejecútela para ver cómo funciona. Se agregará un vínculo en el sitio de
SharePoint a la aplicación. Podrá ejecutar la aplicación en el explorador, pero es posible que tenga que compartirla
para que otras personas la ejecuten. Para más información, consulte Uso compartido de las aplicaciones.
Agregar un vínculo a la aplicación
1. En el iniciador de aplicaciones de Office 365, pulse o haga clic en PowerApps.
2. En PowerApps, pulse o haga clic en el botón de puntos suspensivos ( … ) para Project Management app
y en Abrir.

3. Copie la dirección (URL ) de la aplicación en el explorador.

4. En SharePoint, pulse o haga clic en EDITAR VÍNCULOS.


5. Pulse o haga clic en (+) vínculo.

6. Escriba "Project Management app" y pegue la dirección para la aplicación.

7. Pulse o haga clic en Aceptar y en Guardar.

Asignar un administrador a un proyecto


Ahora que la aplicación está en este sitio de SharePoint, se va a asumir el rol de aprobador de proyecto; se
buscarán proyectos sin administrador asignado y se asignará un administrador a uno de ellos. A continuación, se
asumirá el rol de administrador del proyecto y se agregará alguna información sobre un proyecto que se tenga
asignado.
1. En primer lugar, se va a echar un vistazo a la lista Project Details en SharePoint. Dos proyectos tienen el
valor Sin asignar en la columna PMAssigned. Se verán en la aplicación.

2. Pulse o haga clic en el vínculo que ha creado a la aplicación.


3. En la primera pantalla, pulse o haga clic en Assign Manager.

4. En la pantalla Assign Manager, verá los dos proyectos sin asignar en la lista. Seleccione el proyecto New
BI software.

5. En la entrada de texto Manager, escriba "Joni Sherman" y haga clic en OK.


Se aplica el cambio a la lista y la galería se actualiza, de forma que solo se muestra el proyecto sin asignar
restante.

6. Vuelva a la lista de SharePoint y actualice la página. Verá que la entrada del proyecto se ha actualizado con
el nombre del administrador de proyecto.
Actualizar detalles para el proyecto
1. Pulse o haga clic en para volver a la primera pantalla y en Update Details.

2. En la pantalla View Projects, escriba "New" en el cuadro de búsqueda.

3. Haga clic en para el elemento New BI software.

4. En la pantalla Update Details, establezca los valores siguientes:


El campo ProjectedStartDate = "3/6/2017"
El campo ProjectedEndDate = "3/24/2017"
El campo ProjectedDays = "15"

5. Haga clic o pulse para aplicar el cambio a la lista de SharePoint.


6. Cierre la aplicación y vuelva a la lista. Verá que la entrada del proyecto se ha actualizado con los cambios de
fecha y día.

Análisis en profundidad de una fórmula


Se trata de la segunda sección opcional sobre las fórmulas de PowerApps. En la primera, se analizó una de las
fórmulas que PowerApps genera para la galería de examen en una aplicación de tres pantallas. En este análisis en
profundidad, se examinará una fórmula que se usa para la pantalla AssignManager de nuestra segunda
aplicación. Esta es la fórmula:
Revisión (' Project details '; LookUp (' Project details '; ID = Gallery1.Selected.ID ); {PMAssigned:
TextInput1. Text})
¿Qué hace esta fórmula? Cuando selecciona un elemento en la galería y hace clic en el botón Aceptar, la fórmula
actualiza la lista Project Details, lo que establece la columna PMAssigned en el valor que especifique en la
entrada de texto. La fórmula usa funciones para realizar su trabajo:
La función Revisión modifica uno o varios registros de un origen de datos.
La función Búsqueda busca el primer registro de una tabla que satisfaga una fórmula.
Cuando se juntan las funciones en la fórmula, ocurre lo siguiente:
1. Al hacer clic en el botón Aceptar, se llama a la función Revisión para actualizar la lista Project Details.
2. En la función Revisión, la función Búsqueda identifica qué fila de la lista Project Details se debe
actualizar. Para ello, compara el identificador del elemento seleccionado de la galería con el identificador de
la lista. Por ejemplo, el identificador 12 significa que la entrada de New BI software debe actualizarse.
3. Ahora que la función Revisión tiene el identificador correcto, actualiza el campo PMAssigned con el valor
de TextInput1.Text.

Pasos siguientes
El siguiente paso en esta serie de tutoriales es crear un informe de Power BI para analizar proyectos.
Creación de un informe de Power BI para analizar
proyectos
12/11/2019 • 26 minutes to read

NOTE
Este artículo forma parte de una serie de tutoriales sobre el uso de PowerApps, la automatización y el Power BI con
SharePoint Online. Asegúrese de leer la introducción a la serie para hacerse una idea general, así como para obtener
descargas relacionadas.

En esta tarea, vamos a crear un informe de Power BI basado en las dos listas de SharePoint. Trasladaremos los
datos de las listas a Power BI Desktop y los limpiaremos un poco, realizaremos algunas operaciones básicas de
modelado de datos y crearemos un conjunto de objetos visuales que nos proporcionarán cierta información
acerca de los datos.

TIP
El paquete de descarga de este escenario incluye una versión terminada de este informe: project-analysis.pbix.

Repaso rápido de Power BI Desktop


Antes de profundizar en la creación de informes, revisemos Power BI Desktop. Es una herramienta eficaz, con gran
cantidad de características, por lo que nos centraremos en proporcionar información general de las áreas que se
van a utilizar en esta tarea. En Power BI Desktop hay tres áreas de trabajo o vistas principales: vista Informe, vista
Datos y vista Relaciones. Power BI Desktop también incluye el Editor de consultas, que se abre en una ventana
independiente.
La siguiente pantalla muestra los iconos de las tres vistas a la izquierda de Power BI Desktop: Informe, Datos y
Relaciones, de arriba a abajo. La barra amarilla de la izquierda indica la vista activa; en este caso, se muestra la
vista Informe. Para cambiar de vista, seleccione cualquiera de los tres iconos.

La vista Informe tiene cinco áreas principales:


1. La cinta de opciones, que muestra tareas comunes asociadas a informes y visualizaciones.
2. La vista Informe, o lienzo, donde las visualizaciones se crean y se organizan.
3. El área de la pestaña Páginas de la parte inferior, que permite seleccionar o agregar una página del informe.
4. El panel Visualizaciones, donde se cambian las visualizaciones, se personalizan los colores o ejes, se aplican
filtros, se arrastran los campos, etc.
5. El panel Campos, en el que los elementos de consulta y los filtros se pueden arrastrar a la vista Informe, o
bien al área Filtros del panel Visualizaciones.

La vista Datos tiene tres áreas principales:


1. La cinta de opciones, que tiene la pestaña Modelado seleccionada a continuación. En esta pestaña, se crean
tablas y columnas calculadas, y se realizan otros cambios en el modelo de datos.
2. El panel central, que muestra los datos de la tabla seleccionada.
3. El panel Campos, donde se controla cómo se muestran los campos en los informes.

En esta tarea no se usa la vista Relaciones, pero se puede consultar más adelante, después de que trasladar los
datos de lista a Power BI Desktop.
En el Editor de consultas, se crean consultas y se transforman datos y, posteriormente, el modelo de datos
refinados se carga en Power BI Desktop. El Editor de consultas tiene cuatro áreas principales:
1. La cinta de opciones, que tiene muchas opciones para dar forma y transformar los datos que se proporcionan.
2. El panel izquierdo, en el que se enumeran las consultas que se pueden seleccionar, visualizar y dar forma.
3. El panel central, en el que se muestran los datos de la consulta seleccionada y están disponibles para darles
forma.
4. La ventana Configuración de la consulta, que enumera las propiedades de la consulta y los pasos de
transformación de datos que se han aplicado.

Paso 1: Obtención de datos en Power BI Desktop


En este paso, en primer lugar se conectará a las dos listas. Luego limpiará los datos, para lo que debe eliminar las
columnas que no sean necesarias para el análisis de datos. También cambiará los tipos de datos de algunas de las
columnas restantes para que los cálculos se realicen correctamente. Para más información acerca de cómo obtener
y limpiar datos en Power BI Desktop, consulte la sección Obtención de datos del curso de aprendizaje guiado.
Conexión a listas de SharePoint
1. En Power BI Desktop, en la pestaña Inicio, haga clic o pulse en Obtener datos y luego en Más...
2. En el cuadro de diálogo Obtener datos, haga clic o pulse en Lista de SharePoint Online y, luego, en
Conectar.

3. Escriba la dirección URL del sitio de SharePoint y, después, haga clic en Aceptar o pulse en él.

4. Si aparece el siguiente cuadro de diálogo, asegúrese de que ha iniciado sesión con las credenciales
correctas y haga clic o pulse en Conectar.

5. Seleccione Project Details y Project Requests, y haga clic o pulse en Editar.


Las listas se muestran como tablas en el Editor de consultas.

Eliminación de columnas innecesarias de las tablas


1. En el panel de navegación izquierdo, haga clic o pulse en Project Details.
2. En el panel central, seleccione la columna FileSystemObjectType y, después, haga clic o pulse Quitar
columnas.
3. Quitar las dos columnas después de la columna Id: ServerRedirectedEmbedURL y ContentTypeId.

TIP
Utilice la tecla Máyus para seleccionar ambas columnas y, después, haga clic o pulse Quitar columnas.

4. Quite todas las columnas a la derecha de la columna PMAssigned (un total de 22 columnas). La tabla debe
coincidir con la de la siguiente imagen:

5. Repita el proceso que acaba de realizar, ahora para Project Requests: quite FileSystemObjectType,
ServerRedirectedEmbedURL, ContentTypeId y todas las columnas a la derecha de la columna
Approved (un total de 22). La tabla debe coincidir con la de la siguiente imagen:

Cambiar el tipo de datos en las columnas de Project Details


1. Seleccione la columna ProjectedDays, haga clic o pulse Tipo de datos: cualquiera y , luego, Número
entero.
2. Repita el paso anterior en la columna ActualDays.
3. Seleccione la columna ApprovedDate, haga clic o pulse Tipo de datos: cualquiera y, luego, Fecha.

4. Repita el paso anterior en las columnas ProjectedStartDate y ProjectedEndDate.


Cambio del tipo de datos en las columnas de Project Requests
1. Seleccione la columna EstimatedDays, haga clic o pulse Tipo de datos: cualquiera y , luego, Número
entero.
2. Seleccione la columna RequestDate, haga clic o pulse Tipo de datos: cualquiera y, luego, Fecha.
Aplicación y guardado de cambios
1. En la pestaña Inicio, haga clic en Cerrar y aplicar para cerrar el Editor de consultas y vuelva a la ventana
principal de Power BI Desktop.

2. Haga clic o pulse en Archivo y , luego, en Guardar y guarde el proyecto con el nombre project-
analysis.pbix.

Paso 2: Mejora del modelo de datos


Ahora que los datos de las listas de SharePoint se encuentran en Power BI Desktop, pasaremos al modelado de
datos. El modelado de datos puede ser un proceso lento, pero le mostraremos sucintamente varias cosas
interesantes que puede hacer para sacar el máximo partido a los datos de las listas en Power BI Desktop:
Cambiar las relaciones entre dos tablas cualesquiera
Agregar una tabla de fechas para poder realizar cálculos basados en los días laborables
Agregar columnas calculadas para calcular los intervalos de tiempo entre los hitos del proyecto
Agregar medidas para calcular la varianza en los días previstos frentes a los días reales de un proyecto
Una vez completados estos pasos, se pueden crear visualizaciones que saquen provecho de las mejoras en nuestro
modelo. Para más información acerca del modelado de datos en Power BI Desktop, consulte la sección Modelado
del curso de aprendizaje guiado.
Cambiar las relaciones entre tablas
Cuando Power BI Desktop introdujo las listas, creó una relación entre ellas basada en la columna Id de ambas
tablas. En realidad, la relación se establecería entre la columna Id de la tabla Project Requests y la columna
RequestId de la tabla Project Details. Vamos a solucionar ese problema:
1. Haga clic o pulse el icono de la vista Datos.

2. En la pestaña Modelado, haga clic o pulse Administrar relaciones. Permaneceremos en esta pestaña de
la vista Datos para todos los pasos del modelado de datos.

3. Asegúrese de que está seleccionada la relación existente, haga clic o pulse Eliminar y, después, otra vez
Eliminar para confirmar.

4. Haga clic en Nuevo para crear otra relación.


5. En el cuadro de dialogo Crear relación:
a. Para la primera tabla, seleccione Project Requestsy la columna Id.
b. Para la segunda tabla, seleccione Project Detailsy la columna RequestId.
c. La pantalla debe ser como la de siguiente imagen. Cuando esté listo, haga clic o pulse en Aceptar y,
después, en Cerrar.
Adición de una tabla de fechas para facilitar los cálculos de fecha
1. Haga clic o pulse Nueva tabla.

2. Escriba esta fórmula en la barra de fórmulas: Dates = CALENDARAUTO () .

Esta fórmula crea una tabla denominada Dates con una sola columna de fecha. La tabla cubre todas las
fechas de la otra tabla y se actualiza automáticamente si se agregan fechas adicionales (es decir, si se
actualizan los datos).
Tanto esta fórmula como las restantes de esta sección usan expresiones de análisis de datos (DAX), un
lenguaje de fórmulas de Power BI y otras tecnologías. Para más información, consulte Aspectos básicos de
DAX en Power BI Desktop.
3. Presione Entrar para crear la tabla Dates.

Adición de una calculada a la tabla Dates


1. Aún en la tabla de fechas, haga clic o pulse en Nueva columna.

2. Escriba esta fórmula en la barra de fórmulas: IsWeekDay = SWITCH (WEEKDAY (Dates[Date]);


1;0;7;0;1) .
Esta fórmula determina si una fecha de la columna Date es un día laborable. Si la fecha es un día laborable,
la columna IsWeekDay obtiene el valor 1; de lo contrario, obtiene el valor 0.
3. Presione Entrar para agregar la columna IsWeekDay a la tabla Dates.

Adición de una columna calculada a la tabla Project Details


1. En el panel derecho, haga clic o pulse en la tabla Project Details y , después, en Nueva columna.

2. Escriba esta fórmula en la barra de fórmulas:

ApprovedStartDiff = CALCULATE(SUM(Dates[IsWeekday]),
DATESBETWEEN(Dates[Date],
'Project Details'[ApprovedDate],
'Project Details'[ProjectedStartDate]
)
)

Esta fórmula calcula la diferencia, en días, entre el momento en que se aprobó un proyecto y cuando está
previsto que se inicie. Usa la columna IsWeekday de la tabla Dates, por lo solo cuentan los días laborables.
3. Presione Entrar para agregar la columna ApprovedStartDiff a la tabla Project Details.

Adición de una columna calculada a la tabla Project Requests


1. En el panel derecho, haga clic o pulse en la tabla Project Requests y , después, en Nueva columna.

2. Escriba esta fórmula en la barra de fórmulas:


RequestDateAge = CALCULATE(SUM(Dates[IsWeekday]),
DATESBETWEEN(Dates[Date],
'Project Requests'[RequestDate],
NOW()
)
)

Esta fórmula calcula la diferencia, en días, entre la fecha en que se solicitó un proyecto y la fecha de hoy
[AHORA()]. Una vez más, la fórmula solo cuenta los días laborables. Esta columna se utiliza para buscar el
proyecto que más tiempo lleva pendiente.
3. Presione Entrar para agregar la columna RequestDateAge a la tabla Project Requests.

Adición de una medida a la tabla Project Details


1. En el panel derecho, haga clic o pulse en la tabla Project Details y , después, en Nueva medida.

2. Escriba esta fórmula en la barra de fórmulas:

VarProjectedActual = DIVIDE(
SUM('Project Details'[ActualDays]) - SUM('Project Details'[ProjectedDays]),
SUM('Project Details'[ProjectedDays])
)

Esta fórmula calcula la varianza entre días reales y previstos de un proyecto. Se agrega como una medida,
en lugar de como una columna calculada, por lo que devuelve los resultados correctos, independientemente
de cómo se filtren o se agreguen los datos en un informe.
3. Presione Entrar para agregar la medida VarProjectedActual a la tabla Project Details.
Adición de una medida a la tabla Project Requests
1. En el panel derecho, haga clic o pulse en la tabla Project Requests y , después, en Nueva medida.

2. Escriba esta fórmula en la barra de fórmulas:

MaxDaysPending = MAXX(
FILTER('Project Requests', 'Project Requests'[Approved]="Pending"),
'Project Requests'[RequestDateAge]
)

Esta fórmula busca el proyecto más tiempo lleva pendiente, en función de la columna calculada que se ha
definido antes.
3. Presione Entrar para agregar la medida MaxDaysPending a la tabla Project Requests.

Paso 3: Creación de visualizaciones de informes


Ahora estamos en el paso en el que mucha gente piensa cuando piensan en el análisis de datos: la creación de
visualizaciones para poder buscar patrones en los datos. En este paso, crearemos cuatro visualizaciones:
Un gráfico de columnas que muestra los días previstos frente a días reales de los proyectos
Un gráfico de columnas que muestra la varianza de cada proyecto
Una tarjeta que muestra el proyecto que lleva más tiempo pendiente
Una tabla que muestra el tiempo transcurrido entre la aprobación del proyecto y la fecha de inicio previsto
Una vez que hemos creado estas visualizaciones de informes en Power BI Desktop, publicaremos los datos e
informes para el servicio Power BI, con el fin de que podamos crear y compartir paneles. Para más información
acerca de la creación de informes en Power BI Desktop, consulte la sección Visualizaciones del curso de
aprendizaje guiado.
Creación de un gráfico de barras que muestre las fechas previstas frente a las reales
1. Haga clic o pulse el icono de la vista Informe. Permaneceremos en esta vista durante el resto de nuestro
tiempo en Power BI Desktop.

2. En el panel Visualizaciones panel de la derecha, haga clic o pulse Gráfico de columnas agrupadas.

3. Arrastre PMAssigned y Title de Project Details, en el panel Campos, a Eje, en el panel Visualizaciones.

4. Arrastre ActualDays y ProjectedDays de Project Details, en el panel Campos, a Valores, en el panel


Visualizaciones.

5. Ahora la visualización debería parecerse a la siguiente imagen.


6. Arrastre Status desde el panel Campos de Project Details hasta el área Filtros del panel
Visualizaciones y seleccione la casilla Completado.

El gráfico ahora está filtrado y muestra solo los proyectos completos, lo que tiene sentido porque se
comparan días previstos con días reales.
7. Haga clic en las flechas de la esquina superior izquierda del gráfico para subir y bajar por la jerarquía de los
jefes de proyecto y proyectos. En la siguiente imagen, verá cómo se exploran proyectos en profundidad.
Creación de un gráfico de barras que muestre la varianza a partir de las fechas previstas
1. Haga clic o pulse en el lienzo fuera de la visualización que acaba de crear.
2. En el panel Visualizaciones panel de la derecha, haga clic o pulse Gráfico de columnas agrupadas.

3. Arrastre PMAssigned y Title de Project Details, en el panel Campos, a Eje, en el panel Visualizaciones.

4. Arrastre VarProjectedActual de Project Details, en el panel Campos, a Valores, en el panel


Visualizaciones.

5. Arrastre Status desde el panel Campos de Project Details hasta el área Filtros del panel
Visualizaciones y seleccione la casilla Completado.

Ahora la visualización debería parecerse a la siguiente imagen.


En este gráfico se puede ver la variabilidad que hay para los proyectos que ejecutó Irvin Sayers frente a los
que ejecutó Joni Sherman. Explore en profundidad para ver la variabilidad por proyecto y si el número de
días previstos era superior o inferior al de días reales.

6. Para poder crear más visualizaciones, mueva las que ha creado y cámbielas de tamaño para que quepan en
paralelo.

Creación de una tarjeta que muestre el proyecto que lleva más tiempo pendiente
1. Haga clic o pulse en el lienzo fuera de la visualización que acaba de crear.
2. En el panel Visualizaciones de la derecha, haga clic o pulse Tarjeta.
3. Arrastre MaxDaysPending de Project Requests, en el panel Campos, a Campos en el panel
Visualizaciones.

4. Haga clic o pulse en Formato (rodillo de pintura) y, después, en Borde, a Activar.

5. En Título, seleccione Activar y agregue el título "Max days pending approval".

Ahora la visualización debería parecerse a la siguiente imagen.


Después de publicar este informe, vamos a usar este icono para desencadenar una alerta si el valor máximo
de un proyecto pendiente llega a un umbral determinado.
Creación de una tabla que muestre el tiempo transcurrido entre la aprobación del proyecto y la fecha de inicio
previsto
1. Haga clic o pulse en el lienzo fuera de la visualización que acaba de crear.
2. En el panel Visualizaciones de la derecha, haga clic o pulse en Tabla.

3. Arrastre PMAssigned, Title y ApprovedStartDiff de Project Details, en el panel Campos, a Valores, en


el panel Visualizaciones.

4. Arrastre ProjectedStartDate de Project Details, en el panel Campos, al área Filtros del panel
Visualizaciones y seleccione todas las fechas, excepto (En blanco) .

5. Ajuste el tamaño de las columnas de la tabla para que pueda ver todos los datos y ordénelos por
ApprovedStartDiff, de forma descendente. Ahora la visualización debería parecerse a la siguiente imagen.
6. En el área Valores, haga clic en la flecha hacia abajo (o púlsela) de ApprovedStartDiff y haga clic o pulse
Promedio. Ahora se puede ver el tiempo medio que transcurre entre la aprobación de un proyecto y la
fecha de inicio proyectada.

7. Vuelva a hacer clic o a pulsar la flecha hacia abajo de ApprovedStartDiff, haga clic o pulse Formato
condicional y, después, haga clic o pulse Escalas de color de fondo.

8. Establezca los colores de los campos Mínimo y Máximo como se muestra a continuación y haga clic o
pulse Aceptar.
Ahora la visualización debería parecerse a la siguiente imagen.

Como puede ver, los proyectos que ejecuta Irvin Sayers tienden a comenzar mucho más tarde que su
aprobación. Puede que haya factores que no tengan nada que ver con el administrador asignado, pero
merece la pena examinar este factor.
Esto nos lleva al final de la sección del informe y deberíamos tener un informe completo basado en los datos
importados de SharePoint y limpiados y modelados en Power BI Desktop. Si todo ha salido según el plan, el
informe debe ser similar al de la siguiente imagen.
Pasos siguientes
El siguiente paso en esta serie de tutoriales es publicar el informe de proyecto de Power BI y crear un panel.
Publicación del informe de proyecto de Power BI y
creación de un panel
09/11/2019 • 5 minutes to read

NOTE
Este artículo forma parte de una serie de tutoriales sobre el uso de PowerApps, la automatización y el Power BI con
SharePoint Online. Asegúrese de leer la introducción a la serie para hacerse una idea general, así como para obtener
descargas relacionadas.

En esta tarea, vamos a publicar nuestro conjunto de datos y el informe en el servicio Power BI. A continuación, se
creará un panel basado en este informe. Muchas veces, un informe tiene un gran número de visualizaciones y solo
se usa un subconjunto en un panel. En este caso, vamos a agregar cuatro visualizaciones al panel.

Paso 1: Publicación del conjunto de datos y el informe


1. En Power BI Desktop, en la pestaña Inicio, haga clic o pulse en Publicar.

2. Si aún no ha iniciado sesión en el servicio Power BI, especifique una cuenta y, a continuación, haga clic o
pulse en Iniciar sesión.

3. Escriba una contraseña y, a continuación, haga clic o pulse en Iniciar sesión.

4. Elija un destino para el informe y, a continuación, haga clic o pulse en Seleccionar. Se recomienda la
publicación en un área de trabajo del grupo para simplificar el acceso al informe en SharePoint. En este
caso, vamos a publicar en el área de trabajo del grupo denominada Project Management. Para obtener
más información, consulte Colaboración en un área de trabajo de aplicación de Power BI.

5. Una vez finalizada la publicación, haga clic o pulse en Abrir 'project-analysis.pbx' en Power BI.

6. El servicio Power BI carga el informe en un explorador. Haga clic o pulse en el menú situado en la esquina
superior izquierda (a) para ver el panel de navegación izquierdo.

Puede ver que, cuando se hizo la publicación, Power BI Desktop cargó un conjunto de datos (d) y un
informe (c) . Va a crear paneles en el servicio, no en Power BI Desktop, y esta área de trabajo aún no tiene
ningún panel (b) . Vamos a crear uno a continuación.

Paso 2: Configuración de las credenciales para la actualización


1. En el servicio, haga clic o pulse en el en la esquina superior derecha. Después, haga clic o pulse en
Configuración.
2. Haga clic o pulse en Conjuntos de datos y, después, en project-analysis.
3. Expanda Credenciales de origen de datos y, a continuación, haga clic o pulse en Editar credenciales.

4. Seleccione OAuth2 como método de autenticación y, a continuación, haga clic o pulse en Iniciar sesión.

5. Seleccione o inicie sesión en una cuenta que tenga permisos para las listas de SharePoint.

Cuando se complete el proceso, obtendrá el siguiente mensaje en el servicio.

Paso 3: Creación de un panel


1. Para volver al informe, en INFORMES, haga clic o pulse en project-analysis.
2. Haga clic o pulse en el gráfico de la esquina superior izquierda y, después, haga clic o pulse en .
3. Escriba un nombre para el panel al que desea anclarlo y, a continuación, haga clic o pulse en Anclar.

4. Haga clic o pulse en el gráfico de la esquina superior derecha y, después, haga clic o pulse en .

5. Seleccione el panel existente, después, haga clic o pulse en Anclar.


6. Repita el proceso de anclaje con los otros dos objetos visuales.
7. En el panel de navegación izquierdo, haga clic o pulse en el nombre del panel.

8. Revise el panel. Si hace clic en un icono, volverá al informe.

Así concluye la mayor parte del trabajo en Power BI. Si esta fue su primera experiencia de creación de informes y
paneles, ¡enhorabuena! Si ya era un experto, esperamos que haya podido efectuar todos los pasos con rapidez.
Ahora agregaremos alertas para asegurarnos de que sabe cuándo el panel necesita atención.

Pasos siguientes
El siguiente paso en esta serie de tutoriales es configurar alertas de datos para el informe de proyecto de Power BI.
Inserción del informe de proyecto de Power BI en
SharePoint Online
09/11/2019 • 4 minutes to read

NOTE
Este artículo forma parte de una serie de tutoriales sobre el uso de PowerApps, la automatización y el Power BI con
SharePoint Online. Asegúrese de leer la introducción a la serie para hacerse una idea general, así como para obtener
descargas relacionadas.

Ahora vamos a insertar el informe de Power BI en el mismo sitio de SharePoint Online que hospeda nuestras dos
listas. Power BI admite varios métodos de inserción, como la integración directa en las páginas de SharePoint para
vistas móviles y web.
Con este tipo de inserción, Power BI inserta el informe como un elemento web, proporciona un acceso adecuado a
los usuarios y le permite desplazarse desde el informe insertado al informe de powerbi.com. En primer lugar, se va
a generar un vínculo de inserción en Power BI. Posteriormente, se utilizará ese vínculo en una página que vamos a
crear. Para obtener más información sobre cómo insertar, consulte Insertar el elemento web de informes en
SharePoint Online.

Paso 1: Generación de un vínculo de inserción


1. Inicie sesión en Power BI y, en el panel de navegación izquierdo, haga clic o pulse en el nombre del informe.

2. Haga clic o pulse en Archivo y, luego, en Insertar en SharePoint Online.


3. Copie el vínculo de inserción del cuadro de diálogo a un archivo y, a continuación, haga clic o pulse en
Cerrar. Usaremos el vínculo después de haber creado una página de SharePoint.

Paso 2: Inserción del informe


1. Inicie sesión en SharePoint y, a continuación, haga clic o pulse en Contenidos del sitio.

2. Podría incluir solamente un informe en la página principal del equipo, pero le mostraremos cómo crear
también una página independiente para él. Haga clic o pulse en Nueva y, a continuación en Página.

3. Escriba un nombre para la página, como "Project Analysis".

4. Haga clic o pulse en el y , a continuación, en Power BI.


5. Haga clic o pulse en Agregar informe.

6. En el panel adecuado, copie la dirección URL en el cuadro Vínculo del informe de Power BI. Establezca
Mostrar panel de filtros y Mostrar el panel de navegación en Activado.

7. El informe ya se ha insertado en la página. Haga clic en Publicar para hacer que esté disponible para
cualquier persona que pueda acceder al informe subyacente.
Paso 3: Concesión de acceso al informe.
Si usas grupos de Office 365, tal y como se recomienda, asegúrese de que los usuarios que necesitan acceder son
miembros del área de trabajo del grupo en el servicio Power BI. Esto garantiza que los usuarios puedan ver el
contenido de ese grupo. Para obtener más información, consulte Colaboración en un área de trabajo de aplicación
de Power BI.
Así concluye nuestro trabajo en Power BI para este escenario. Empezó extrayendo datos de nuestras listas de
SharePoint en Power BI y ahora se ha cerrado el círculo con la inserción de un informe de Power BI de nuevo en
SharePoint.

Pasos siguientes
El siguiente paso en esta serie de tutoriales consiste en ejecutar íntegramente el flujo de trabajo que hemos creado.
Configurar alertas de datos para el panel de Power
BI
09/11/2019 • 4 minutes to read

NOTE
Este artículo forma parte de una serie de tutoriales sobre el uso de PowerApps, la automatización y el Power BI con
SharePoint Online. Asegúrese de leer la introducción a la serie para hacerse una idea general, así como para obtener
descargas relacionadas.

En esta tarea, se va a agregar una alerta en Power BI que avise de si se está tardando demasiado en aprobar
proyectos pendientes, y un flujo que responda cuando se produzca esa alerta. Para más información sobre las
alertas, consulte Alertas de datos en el servicio Power BI.

Paso 1: Creación de una alerta


1. En el servicio Power BI, abra el panel que creó en la última tarea.
2. En la tarjeta con un solo número, pulse o haga clic en el botón de puntos suspensivos ( … ).

3. Haga clic o pulse .

4. En el panel derecho, pulse o haga clic en Agregar regla de alertas.

5. Observe las opciones disponibles para las alertas, como la frecuencia con la que se debe ejecutar una alerta.
Escriba el valor 25 para Umbral y pulse o haga clic en Guardar y cerrar.
La alerta no se activará ahora mismo, aunque 56 esté por encima del umbral de 25. Se activará cuando se
actualicen los datos, lo que se verá en el recorrido de principio a fin del escenario.
Cuando se activan las alertas, Power BI envía un correo electrónico al creador de la alerta y veremos cómo enviar
correo adicional con Power Automate en el paso siguiente.

Paso 2: Creación de un flujo que responda a la alerta


1. Inicie sesión en flow.microsoft.com y pulse o haga clic en Servicios y en Power BI.

2. Pulse o haga clic en Enviar un correo electrónico al público cuando se desencadene una alerta de
datos de Power BI.
3. Pulse o haga clic en Usar esta plantilla.
4. Si aún no ha iniciado sesión, inicie sesión en Outlook y Power BI, y pulse o haga clic en Continuar.

5. En la lista desplegable Id. de alerta, seleccione Alert for Max days pending approval (Alerta para
máximo de días pendientes de aprobación).

6. En el cuadro A, escriba una dirección de correo electrónico válida.

7. Pulse o haga clic en Editar para ver otros campos que se pueden actualizar.

8. En la parte superior derecha de la pantalla, haga clic en Crear flujo y en Listo.

Se verá esta ejecución de flujo en el recorrido de principio a fin del escenario. Ahora se va a continuar con la última
tarea de este escenario: insertar un informe de Power BI en SharePoint.
Pasos siguientes
El siguiente paso en esta serie de tutoriales es insertar el informe de proyecto de Power BI en SharePoint Online.
Tutorial de principio a fin para el escenario de
integración de SharePoint Online completado
09/11/2019 • 9 minutes to read

NOTE
Este artículo forma parte de una serie de tutoriales sobre el uso de PowerApps, la automatización y el Power BI con
SharePoint Online. Asegúrese de leer la introducción a la serie para hacerse una idea general, así como para obtener
descargas relacionadas.

Se ha tratado una cantidad enorme de datos en esta serie de tutoriales, desde la creación de aplicaciones de
lienzo y flujos hasta la creación de informes y su inserción en SharePoint. Con suerte, habrá aprendido mucho y
visto lo suficiente sobre cómo se integran estas tecnologías, para que pueda integrar aplicaciones de lienzo, flujos
e informes en SharePoint según sus propias necesidades. Antes de terminar, se va a realizar un recorrido del
escenario de principio a fin para ver cómo funcionan juntas todas las partes.

Paso 1: Incorporación de un proyecto a la lista Project Requests


1. En la lista Project Requests, pulse o haga clic en Todos los elementos y en Project Requests app.

2. Haga clic en Abrir, lo que abre la aplicación en una nueva pestaña de explorador.

3. En la aplicación, pulse o haga clic en para crear un elemento.


4. Rellene el formulario con los siguientes valores:
Title = "Mobile devices for design team"
Approved = "Pending"
Description = "The design team will now use Contoso-supplied devices"
EstimatedDays = "30"
ProjectType = "New hardware"
RequestDate = "03/01/2017"
Requestor = "Emily Braun"
5. Haga clic o pulse y cierre la pestaña de explorador.
6. Vuelva a la lista Project Requests, pulse o haga clic en Project Requests app y en Todos los elementos.

7. Compruebe la nueva entrada en la lista.

Paso 2: Aprobación del proyecto


1. Cuando agrega el elemento en el paso 1, se debería ejecutar el flujo y enviar un correo electrónico de
aprobación. Compruebe la bandeja de entrada de la cuenta de correo electrónico del aprobador.
2. Haga clic en Aprobar. El flujo ejecuta otro proceso, y obtiene información similar a la siguiente
directamente en el correo electrónico.

3. Compruebe la bandeja de entrada de la cuenta de correo electrónico del solicitante; debería ver un correo
electrónico de aprobación.

4. Compruebe la entrada actualizada en la lista.

Paso 3: Asignación de un administrador al proyecto


1. En primer lugar, se va a echar un vistazo a la lista Project Details en SharePoint. El nuevo proyecto tiene
el valor Sin asignar en la columna PMAssigned.
2. En el sitio de SharePoint, en el panel izquierdo, pulse o haga clic en Project Management app.
3. En la primera pantalla, pulse o haga clic en Assign Manager.

4. En la pantalla Assign Manager, verá los dos proyectos sin asignar en la lista. Seleccione el proyecto
Mobile devices for design team.

5. En la entrada de texto Manager, escriba "Joni Sherman" y haga clic en OK.


Se aplica el cambio a la lista y la galería se actualiza, de forma que solo se muestra el proyecto sin asignar
restante.

6. Cierre la aplicación y vuelva a la lista de SharePoint. Verá que la entrada del proyecto se ha actualizado con
el nombre del administrador de proyecto.

Paso 4: Incorporación de las estimaciones de tiempo para el proyecto


1. Pulse o haga clic en para volver a la primera pantalla y en Update Details.
2. En la pantalla View Projects, escriba "Mobile" en el cuadro de búsqueda.

3. Haga clic en para el elemento Mobile devices for design team.

4. En la pantalla Update Details, establezca los valores siguientes:


El campo Status = "Not started"
El campo ProjectedStartDate = "3/6/2017"
El campo ProjectedEndDate = "3/24/2017"
El campo ProjectedDays = "15"
5. Haga clic o pulse para aplicar el cambio a la lista de SharePoint.
6. Cierre la aplicación y vuelva a la lista. Verá que la entrada del proyecto se ha actualizado con los cambios
de fecha y día.

Paso 5: Revisión de datos de informe para proyectos existentes


1. En SharePoint Online, pulse o haga clic en Contenidos del sitio y en Páginas del sitio.
2. Abra la página Project Analysis que se creó antes.
3. Revise la visualización de varianza.

Como se señaló cuando se creó esta visualización, hay mucha más varianza en los proyectos ejecutados
por Irvin Sayers que en los de Joni Sherman.
4. Explore en profundidad la visualización y verá que gran parte de la varianza procede de dos proyectos que
tardaron mucho más tiempo del previsto.
5. Revise la tabla que muestra cuánto tiempo tardan los proyectos en pasar de la aprobación a la fecha de
inicio proyectada.

Como se señaló cuando se creó esta visualización, los proyectos que se asignaron a Irvin Sayers tardan
más en iniciarse y dos de ellos están tardando mucho más que el resto.

Paso 6: Respuesta a retrasos en proyectos pendientes


1. En el servicio Power BI, pulse o haga clic en el conjunto de datos project-analysis y después en
ACTUALIZAR AHORA. La actualización desencadena la alerta que se configuró para proyectos
pendientes.
2. Una vez completada la actualización, el Centro de notificaciones en la parte superior derecha muestra
un nuevo icono de notificación.

Esto puede tardar un tiempo, así que vuelva a consultarlo si no lo ve de inmediato.


3. Abra el Centro de notificaciones para ver los detalles de la alerta que se ha activado.

4. Compruebe la bandeja de entrada de la persona que creó la alerta (Megan Bowen, en este caso).

5. Compruebe la bandeja de entrada de la persona que agregó en el flujo de alertas de datos (Allan DeYoung,
en este caso).
6. Ahora que tiene información sobre los proyectos pendientes, puede regresar y aprobar los que tenga
esperando.
Con esto, ha llegado a la conclusión de este tutorial de principio a fin y de esta serie de tutoriales. Puede
continuar su viaje en los siguientes sitios:
PowerApps
Automatización de la energía
Power BI
Comunidad de usuarios avanzados
SharePoint
Comunidad tecnológica de Microsoft
Proporcione su opinión sobre esta serie, sugerencias para adiciones o ideas para contenidos adicionales que le
ayuden a trabajar con las tecnologías tratadas.
Uso de Cognitive Services en PowerApps
05/11/2019 • 15 minutes to read

En este artículo se muestra cómo compilar una aplicación de lienzo básica que usa el Text Analytics API de
Cognitive Services de Azure para analizar el texto. Le mostraremos cómo configurar Text Analytics API y cómo
conectarse a ella con el conector de Text Analytics. Luego se muestra cómo crear una aplicación de lienzo que llama
a la API.

NOTE
Si no está familiarizado con la compilación de aplicaciones en PowerApps, es aconsejable que lea Creación de una aplicación
desde cero antes de profundizar en este artículo.

Introducción a Azure Cognitive Services


Azure Cognitive Services son un conjunto de API, SDK y servicios disponibles para que sus aplicaciones sean más
inteligentes, atractivas y reconocibles. Estos servicios permiten agregar fácilmente a sus aplicaciones características
inteligentes tales como detección de emociones y vídeo; reconocimiento facial, visual y de voz; y comprensión de
narración y lenguaje.
Nos centraremos en la "comprensión del lenguaje" en este artículo, y trabajaremos con la API Text Analytics. La
API permite detectar la opinión, las frases clave, los temas y el idioma del texto. Para empezar, vamos a probar una
demostración de la API; regístrese para obtener una versión preliminar.
Prueba de Text Analytics API
La API tiene una demostración en línea, en la que puede ver cómo funciona y ver el código JSON que el servicio
devuelve.
1. Vaya a la página Text Analytics API.
2. En la sección Véala en acción, utilice el texto de ejemplo o escriba su propio texto. Luego pulse o haga clic
en Analizar.

3. En la página se muestran los resultados con formato en la pestaña texto analizado y la respuesta JSON en
la pestaña JSON . JSON es una forma de representar los datos; en este caso, los datos devueltos por el Text
Analytics API.

Registro para Text Analytics API


La API está disponible como versión preliminar gratuita y está asociada con una suscripción de Azure. La API se
administra en Azure Portal.
1. Si aún no tiene una suscripción de Azure, regístrese para obtener una suscripción gratuita.
2. En esta página, escriba la información del Text Analytics API, tal como se muestra en esta imagen.
Seleccione la tarifa F0 (gratuita).

3. En la esquina inferior izquierda, pulse o haga clic en Crear.


4. En el Panel, pulse o haga clic en la API que acaba de crear.

5. Haga clic o pulse en Claves.

6. Copie una de las claves de la derecha de la pantalla. Esta clave la usará más tarde, cuando cree una conexión
a la API.
Creación de la aplicación
Ahora que Text Analytics API está en funcionamiento, puede conectarse a ella desde PowerApps y compilar una
aplicación que llame a la API. Es una aplicación de una sola pantalla que proporciona una funcionalidad similar a la
demostración de la página Text Analytics API. Vamos a empezar a trabajar.
Creación de la aplicación y adición de una conexión
En primer lugar, cree una aplicación de teléfono vacía y agregue una conexión con el conector de Text Analytics.
Si necesita más información sobre estas tareas, consulte Crear una aplicación desde cero y Administración de las
conexiones en PowerApps.
1. En powerapps.com, elija Iniciar desde cero > (teléfono) > Crear esta aplicación.

2. En el panel central de PowerApps Studio, elija conectar a datos.


3. En el panel Datos, haga clic o pulse en Nueva conexión > Text Analytics.
4. Copie la clave en Clave de cuenta y haga clic o pulse en Crear.
Adición de controles a la aplicación
El siguiente paso para crear aplicación es agregar todos los controles. Normalmente, al compilar aplicaciones, se
agregan fórmulas a los controles sobre la marcha, aunque en este caso nos centraremos primero en los controles y,
después, agregaremos algunas fórmulas en la sección siguiente. La siguiente imagen muestra la aplicación con
todos los controles.

Siga los pasos a continuación para crear esta pantalla. Si se especifica un nombre de control, ese el nombre que se
usará en una fórmula en la sección siguiente.
1. En la pestaña Inicio, pulse o haga clic en Nueva pantalla y en Pantalla desplazable.
2. En Screen2, seleccione [Título] y cámbielo a Text Analysis.
3. Agregue un control Etiqueta para el texto que se escribe.
4. Agregue un control Entrada de texto para que pueda escribir el texto que se va a analizar. Asigne al control
el nombre tiTextToAnalyze. Ahora la aplicación debería parecerse a la siguiente imagen.

5. Agregue tres controles Casilla para poder elegir qué operaciones de API se van a realizar. Asigne a los
controles los nombres chkLanguage, chkPhrases y chkSentiment.
6. Agregue un botón para poder llamar a la API después de seleccionar las operaciones que se van a realizar.
Ahora la aplicación debería parecerse a la siguiente imagen.

7. Agregue tres controles Etiqueta. Los dos primeros contienen los resultados de las llamadas a la API sobre
el idioma y la opinión; el tercero es simplemente una introducción a la galería de la parte inferior de la
pantalla.
8. Agregue un control Galería vertical vacía y, después, agregue un control Etiqueta control a la galería. La
galería contiene los resultados de la llamada a la API sobre frases clave. Ahora la aplicación debería
parecerse a la siguiente imagen.
9. En el panel izquierdo, seleccione Screen1 > puntos suspensivos ( ... ) > Eliminar (no necesita esta pantalla
en la aplicación).
Simplificaremos esta aplicación para centrarnos en llamar a Text Analytics API, pero puede agregar elementos tales
como lógica para mostrar y ocultar los controles en función de las casillas que están activadas, para controlar los
errores si el usuario no selecciona ninguna opción, etc.
Adición de lógica para realizar las llamadas correctas a la API
Ya tiene una aplicación bonita, pero aún no hace nada. Eso se solucionará en un momento. Pero antes de
profundizar en los detalles, vamos a comprender el modelo que la aplicación sigue:
1. La aplicación realiza llamadas específicas a la API en función de las casillas activadas en la aplicación. Al
hacer clic o pulsar Analizar texto, la aplicación realiza 1, 2 o 3 llamadas a la API.
2. La aplicación almacena los datos que devuelve la API en tres colecciones diferentes: languageCollect,
sentimentCollect y phrasesCollect.
3. La aplicación actualiza la propiedad Texto de dos de las etiquetas y la propiedad Elementos de la galería se
actualizan en función de lo que hay en las tres colecciones.
Con esa información, vamos a agregar la fórmula de la propiedad AlSeleccionar del botón. Aquí es donde se
produce la magia.
If( chkLanguage.Value = true;
ClearCollect( languageCollect;
TextAnalytics.DetectLanguage(
{
numberOfLanguagesToDetect: 1;
text: tiTextToAnalyze.Text
}
).detectedLanguages.name
)
);;

If( chkPhrases.Value = true;


ClearCollect( phrasesCollect;
TextAnalytics.KeyPhrases(
{
language: "en";
text: tiTextToAnalyze.Text
}
).keyPhrases
)
);;

If( chkSentiment.Value = true;


ClearCollect( sentimentCollect;
TextAnalytics.DetectSentiment(
{
language: "en";
text: tiTextToAnalyze.Text
}
).score
)
)

Vamos a ver con detalle lo que sucede:


Las instrucciones If son sencillas: si se selecciona una casilla específica, se realiza la llamada a la API para
esa operación.
Dentro de cada llamada, especifique los parámetros adecuados:
En las tres llamadas, especifique tiTextToAnalyze.Text como texto de entrada.
En DetectLanguage() , se codifica numberOfLanguagesToDetect de forma rígida como 1, pero
puede pasar este parámetro en función de alguna lógica de la aplicación.
En frases clave () y DetectSentiment () , Language está codificado de forma rígida como "en",
pero podría pasar este parámetro en función de alguna lógica de la aplicación. Por ejemplo, puede
detectar primero el idioma y luego establecer este parámetro en función de lo que devuelva
DetectLanguage() .
Para cada llamada que se realiza, agregue los resultados a la colección correspondiente:
En languageCollect, agregue el valor de name del idioma que se identificó en el texto.
En phrasesCollect, agregue los valores de keyPhrase que se identificaron en el texto.
En sentimentCollect, agregue el valor de score de la opinión del texto, que es un valor entre 0 y 1,
donde 1 es 100 % positivo.
Presentación de los resultados de las llamadas a la API
Para mostrar los resultados de las llamadas a la API, haga referencia a la colección adecuada en cada control:
1. Establezca la propiedad Text de la etiqueta de idioma en:
"The language detected is " & First(languageCollect).name .
La función First() devuelve el primer registro (y único en este caso) de languageCollect y la aplicación
muestra el valor de name (el único campo) asociado con ese registro.
2. Establezca la propiedad Text de la etiqueta de opinión en:
"The sentiment score is " & Round(First(sentimentCollect.Value).Value; 3)\*100 & "% positive." .
Esta fórmula utiliza también la función First() , obtiene el valor de Value (0-1) del primer y único registro y,
a continuación, le da formato como un porcentaje.
3. Establezca la propiedad Items de la galería de frases clave en: phrasesCollect .
Ahora trabaja con una galería, por lo que no necesita la función First() para extraer un valor único. Usted
hace referencia a la colección y la galería muestra las frases clave en forma de lista.

Ejecutar la aplicación
Ahora que la aplicación ha finalizado, ejecútela para ver cómo funciona: haga clic o pulse el botón de ejecución de
la esquina superior derecha . En la siguiente imagen, se seleccionan las tres opciones y el texto es el mismo que
el texto predeterminado en la página de Text Analytics API.

Si compara la salida de esta aplicación con la página de Text Analytics API del principio de este artículo, verá que
los resultados son los mismos.
Esperamos que ahora comprenda un poco mejor Text Analytics API y que haya disfrutado de ver cómo se
incorpora a una aplicación. Háganos saber si hay otros servicios de Cognitive Services (u otros servicios en
general) que desearía que tratáramos en nuestros artículos. Como siempre, puede enviarnos sus comentarios y sus
preguntas.
Transformar el formulario de InfoPath en PowerApps
12/11/2019 • 27 minutes to read

¿Ha creado grandes contenidos en InfoPath, pero le gustaría ofrecerlos en una plataforma más sólida?

Principales ventajas de PowerApps con respecto a InfoPath


Como la mayoría de los usuarios avanzados de InfoPath, lleva cierto tiempo usando un único conjunto de
aptitudes para crear sus formularios. Está satisfecho con los formularios, pero también sabe que tienen sus
limitaciones: el estilo "clásico", una experiencia para dispositivos móviles no del todo satisfactoria, la incertidumbre
de su viabilidad futura y la imposibilidad de conectar los formularios a otros servicios sin necesidad de escribir
código.
El equipo de PowerApps ha sabido de estos y otros muchos desafíos. Ha trabajado arduamente para incorporar
una mejor experiencia y permitirle crear aplicaciones de lienzo aprovechando sus conocimientos empresariales y
tecnológicos existentes. Mediante PowerApps, se pueden compilar e implementar rápidamente las soluciones
empresariales adecuadas sin escribir código.
Eficacia futura con PowerApps
PowerApps es una plataforma de software como servicio (SaaS ) que está diseñada para permitir la compilación
rápida de aplicaciones de elevada funcionalidad que se pueden implementar en Internet, en SharePoint, en
Dynamics 365, en Teams, en Power BI o en un dispositivo móvil sin ningún esfuerzo extra. Al poderse implementar
con solo facilitar a alguien la dirección URL de la aplicación publicada, también son muy fáciles de actualizar.
Aplicaciones compartidas
¿Ha intentado alguna vez compilar una aplicación y luego publicarla para dispositivos Android o iOS? Es
complicado. Si quiere implementar una segunda aplicación o actualizar una existente, los usuarios deben realizar
muchos más pasos. Con PowerApps esto no ocurre, Los usuarios instalan PowerApps Mobile en sus dispositivos e
inician sesión. Y ya está. Ya tienen todas las aplicaciones de elevada funcionalidad que ha compartido con ellos. En
el futuro, si actualiza esas aplicaciones o les envía aplicaciones nuevas, estas aparecerán en sus dispositivos.
Disponer de aplicaciones móviles sin tener que administrar los dispositivos constituye una gran ventaja para usted
y el negocio.
Hablando de dispositivos móviles
Con PowerApps, se puede aprovechar la funcionalidad del dispositivo móvil del usuario, como la aceleración, la
cámara, la brújula, la información de conexión y las señales de ubicación: y todo ello desde dentro de la aplicación.
Esto abre todo un mundo de posibilidades para compilar aplicaciones orientadas al trabajo. Por supuesto, la
funcionalidad táctil es automática en PowerApps: no es necesario escribir código al compilar la aplicación.
Lista para usar
Con InfoPath, normalmente se trabaja con datos de un origen. Pero las cosas se complican si quiere actualizar otro
origen (por ejemplo, una lista de SharePoint en otra colección de sitios) o conectarse a servicios externos.
Conceptos como el código subyacente le mantienen despierto durante la noche. PowerApps está diseñado para
que en una misma aplicación pueda trabajar con varios orígenes de datos y establecer distintas conexiones de
servicio. Actualmente, más de 200 conectores admiten una combinación de datos locales y en la nube, incluidos
Microsoft Office 365 y servicios de Azure, como Power Automatic y Dynamics 365. También puede conectarse a
una gran variedad de servicios de terceros como Dropbox, Google, Salesforce, Slack y otros destinos populares.
Ahora puede compilar soluciones que se escalan donde lo necesitan los usuarios, no solo en la ubicación original
de los datos.
PowerApps y SharePoint: mejor incluso juntos
PowerApps es una herramienta excelente para mejorar su experiencia de SharePoint de dos maneras. Tiene la
opción de personalizar los formularios para una lista de SharePoint o para crear una aplicación independiente que
trabaje con datos de SharePoint.
Personalizar un formulario de SharePoint es muy útil si quiere personalizar el modo en que los usuarios
agregan, ven o editan elementos de una lista que usan para su trabajo cotidiano. Si hace clic en Personalizar
formularios, se crea una "aplicación de formularios" de una sola pantalla que cambia de modo (nuevo/editar/ver)
en función del contexto. SharePoint administra estas aplicaciones; sus permisos son los mismos que los permisos
de lista para edición y visualización.
Crear una aplicación de lienzo PowerApps desde SharePoint permite ejecutar la aplicación por sí sola en un
dispositivo móvil. También puede insertar la aplicación en una página de SharePoint. Al hacer clic, se crea una
aplicación de tres pantallas (examinar lista, ver detalles y crear o actualizar un elemento). El modelo de permisos o
uso compartido de estas aplicaciones no está vinculado a SharePoint, sino que se administra desde PowerApps.
Ahora que comprende la diferencia entre las dos opciones, la siguiente sección le proporciona una visión general
del uso de cada una de ellas.

Formularios de SharePoint
Los equipos de PowerApps y SharePoint han trabajado juntos para crear una forma de personalización que se
puede usar con SharePoint. Si es como la mayoría de los desarrolladores de InfoPath, ha aprendido a usar InfoPath
para interactuar con SharePoint. SharePoint es fantástico, pero los formularios predeterminados son un poco
básicos y no permiten personalizarlos ni usar la lógica de negocios sin InfoPath. Bueno, eso era antes.
Con PowerApps, ya puede personalizar los formularios de lista como una funcionalidad nativa. Y, al hacerlo,
obtendrá todo el rendimiento de PowerApps. En la siguiente captura de pantalla, puede ver un ejemplo de un
formulario PowerApps con un informe de Power BI insertado. Toda la solución se realizó en menos de 15 minutos.

Otra característica importante de PowerApps es la capacidad de conectarse fácilmente a otra colección de sitios de
SharePoint o a otro entorno desde el mismo formulario. Por ejemplo, ¿quiere crear un formulario que muestre y
actualice al mismo tiempo los datos de SharePoint Online y el entorno local de SharePoint? No hay problema. Si
instala la puerta de enlace de datos local, está en funcionamiento en cuestión de minutos, conectando PowerApps,
Power BI, Power automatic y Azure Logic apps con los datos locales. No se requiere ningún cambio en las reglas
de firewall. Puede seguir un paso más conectando esta aplicación con Power Automatic.

Una aplicación de SharePoint independiente


Use esta técnica si, en lugar de simplemente actualizar la experiencia del formulario de lista, quiere compilar una
aplicación completa e independiente basada en los datos de SharePoint. Esta también es la mejor manera de
comenzar a trabajar, ya que puede familiarizarse con el lienzo de PowerApps y compilar las aplicaciones futuras
desde cualquiera de los distintos orígenes de datos.
Siga estos pasos para comenzar:
1. Abra la lista de SharePoint a partir de la que quiere compilar una aplicación.
2. En la barra de menús, seleccione PowerApps y luego Crear una aplicación.
3. Proporcione un nombre y seleccione Crear.
PowerApps compila una aplicación que se puede personalizar.
Comience con una lista personalizada simple que solo contenga un par de campos de diferentes tipos para la
primera aplicación. Esto le permitirá partir de una base sólida sin verse desbordado. No se preocupe; en poco
tiempo se convertirá en un profesional y podrá abordar aplicaciones complejas. Para obtener ayuda con su primera
aplicación, vea esta documentación o el vídeo de esta comunidad. En los ejemplos siguientes se muestran las tareas
comunes de InfoPath y cómo realizarlas en PowerApps. Cada una de ellas se basa en una aplicación sencilla de lista
de SharePoint.

¿Cómo se consigue con PowerApps?


Ahora que conoce los conceptos fundamentales, vayamos más lejos. Con la primera aplicación conseguida, esta
sección le ayuda a aplicar en PowerApps algunos de los conceptos comunes de InfoPath.
Ocultar, mostrar o bloquear un campo en función de un valor
Los formularios útiles suelen aplicar una eficaz lógica de negocios, por ejemplo, al cambiar el estado de un campo
en función de un valor o una acción. Con PowerApps puede establecer la propiedad DisplayMode de un control
en Editar o Ver para especificar si un usuario puede cambiar el campo. También puede usar una simple fórmula If
para hacerlo de forma condicional. En primer lugar, seleccione la tarjeta que quiere editar y luego el icono de
bloqueo. Este paso desbloquea la tarjeta para que pueda cambiar el valor.

En el panel derecho, desplácese a la propiedad DisplayMode para que pueda editarlo.


En este ejemplo use una fórmula If:
If(ThisItem.Color = "Blue"; DisplayMode.View; DisplayMode.Edit)

Esta fórmula indica que, si el campo Color del elemento actual es Blue, el campo Animal es de solo lectura. Si no,
el campo se puede modificar.
Para ocultar la tarjeta en lugar de hacer que sea de solo lectura, inserte una función similar en la propiedad Visible
justo encima de DisplayMode.
También puede jugar con, por ejemplo, mostrar un botón de aprobación solo si la dirección de correo electrónico
del usuario coincide con la dirección de correo electrónico del aprobador. (Sugerencia: use User (). Correo
electrónico para tener acceso a la dirección de correo electrónico del usuario actual). Por lo tanto, puede
almacenar la dirección de correo electrónico del aprobador en YourDataCard y, a continuación, establecer la
propiedad visible del botón en esta fórmula:
If( YourDataCard.Text = User().Email; true; false )

Formato condicional
De forma similar a como anteriormente ocultó el campo, también puede proporcionar comentarios visuales a los
usuarios. Puede que quiera resaltar texto en rojo si el valor especificado queda fuera del intervalo aceptable o
cambiar el texto y el color del botón de carga después de que el usuario cargue un archivo. Puede hacer ambas
cosas con una función, como If, en propiedades como Color o Visible.
Por ejemplo, podría usar la función If emparejada con la función IsMatch para que el texto del campo de correo
electrónico cambie a color rojo si el usuario no especifica una dirección de correo con el formato correcto en el
cuadro de entrada. Se haría al establecer el valor Color de TextInput1 (donde el usuario escribe una dirección de
correo electrónico) en esta fórmula:
If( IsMatch(TextInput1.Text; Email); Black; Red )

IsMatch admite una gran cantidad de patrones predefinidos, como Correo electrónico, o puede crear los suyos
propios. Para obtener más información sobre el formato condicional, vea este vídeo de la comunidad.
Implementación de seguridad basada en roles
La primera función a tener en cuenta es DataSourceInfo. La información que se obtiene desde el origen de datos
varía, pero a menudo se puede usar esta fórmula para confirmar si el usuario tiene acceso para editar los datos
(sustituya YourDataSource por el nombre del origen de datos):
DataSourceInfo( YourDataSource; DataSourceInfo.EditPermission )

Así, puede mostrar un formulario o un botón únicamente si el usuario tiene acceso para editar. Vea la
documentación de DataSourceInfo para obtener la lista completa de la información que puede consultar en la
función.
Si quiere usar grupos de Active Directory para administrar el acceso a los botones o a los formularios de la
aplicación, deberá profundizar más. Para ello, puede sacar partido de la flexibilidad de PowerApps y crear su propio
conector mediante Microsoft Graph API. Si eso suena complicado, puede seguir este entrada de blog para obtener
instrucciones paso a paso.
Enviar un correo electrónico desde la aplicación
Puede enviar un mensaje de correo electrónico desde PowerApps de muchas formas, pero la más fácil es usar el
conector de Office 365 Outlook. Con este conector, puede enviar un mensaje en su nombre desde la aplicación.
También puede obtener mensajes de correo electrónico y otras tareas que interactúan con el buzón. Existe
documentación o este vídeo de la comunidad sobre el envío de correo electrónico.
Puede enviar un mensaje más complejo (por ejemplo, como parte de un flujo de trabajo de aprobación de
SharePoint) mediante el uso de Power Automatic y la conexión de la aplicación al flujo que cree. Una vez que
conecte la aplicación a Power Automate, habrá abierto toda la potencia de un motor de flujo de trabajo que, como
PowerApps, está muy bien conectada a los datos y servicios externos. Para obtener más información sobre cómo
conectar PowerApps y Power Automate, consulte esta documentación.
Si todavía no ha encontrado la opción de correo electrónico que busca, puede sacar provecho de los conectores de
PowerApps para Benchmark Email, Gmail, MailChimp, Outlook.com, SendGrid o SMTP. La conectividad es lo más
bonito de PowerApps.
Flujos de trabajo
Es difícil hablar de aplicaciones empresariales y lógica de negocios sin un motor de flujo de trabajo. Lo bueno es
que el equipo de PowerApps no ha reinventado la rueda y le proporciona otro motor de flujo de trabajo, En su
lugar, proporcionan un conector sólido al servicio Power Automatic. Puede automatizar procesos y tareas en más
de 200 servicios distintos mediante su sencillo motor de flujo de trabajo. Para obtener más información sobre
cómo conectar PowerApps y Power Automate, consulte esta documentación.
Variables con PowerApps
Al compilar soluciones, es natural pensar que habrá que usar variables. PowerApps ofrece varios tipos de variables,
pero úselas solo cuando sea necesario. En lugar de pensar en obtener datos, almacenarlos en una variable y luego
hacer referencia a esa variable, piense en hacer referencia directamente a esos datos. Comprenderá mejor este
modelo si lo compara con Excel. En Excel, Total no es una variable, sino la suma de otros campos. Por lo tanto, si
quiere usar ese valor en otra parte de la hoja, especifica la celda en la que ha calculado el total. En la
documentación hay una magnífica explicación de todo esto. Esté abierto a un proceso de pensamiento diferente.
Si aun así necesita una variable (hay muchos casos en que será así), esto le ayudará a comprender las distintas
opciones. Tenga en cuenta que, con PowerApps, no tiene que definir las variables. Simplemente use una función
para especificar un nombre y un valor que se van a almacenar, y la variable se crea. Puede ver las variables que ha
creado seleccionando variables en la pestaña vista . las variables se mantienen en la memoria y sus valores se
pierden cuando se cierra la aplicación. Puede crear estos tipos de variables:
Las variables globales son las que se suelen considerar primero. Use la función Set para especificar un valor
para una variable global y haga que esté disponible en toda la aplicación:
Set( YourVariable; YourValue )

Luego puede hacer referencia a YourVariable por nombre en toda la aplicación.


Las variables de contexto solo están disponibles en la pantalla donde se han definido. Al salir de la pantalla,
se restablecen. A menudo se usan para, por ejemplo, almacenar información pasada desde una pantalla
anterior o para realizar un seguimiento de si el formulario se ha enviado. Para establecer una variable de
contexto, use la función UpdateContext, como en este ejemplo:
UpdateContext( { Submitted: "true" } )

Este ejemplo establece el valor de una variable, denominada Submitted, en true. Podría agregar esta
fórmula a la propiedad OnSelect de un botón de envío a fin de realizar un seguimiento de si la información
se ha enviado y cambiar todos los campos a solo lectura.
Las colecciones almacenan tablas de información que se pueden actualizar de forma individual. Use Collect
para crear un carro de la compra, por ejemplo, cuando el usuario etiquete varios elementos de SharePoint
que quiere enviar. Un vídeo de la comunidad muestra ese concepto en acción.
Listas desplegables en cascada
Las listas desplegables en cascada son muy útiles porque permiten, por ejemplo, filtrar las opciones en una lista
desplegable en función del valor seleccionado en la lista desplegable anterior. Para crearlas en PowerApps, a
menudo se utilizan dos orígenes de datos en la aplicación. El primer origen de datos se compone de los datos que
se están viendo o actualizando, y el segundo origen de datos almacena los valores para compilar el efecto en
cascada. Este gráfico muestra un ejemplo del segundo origen de datos con las posibilidades de elección.

En este ejemplo, podría agregar una lista desplegable denominada ddSelectType y establecer su propiedad Items
en esta fórmula:
Distinct( Impacts; Title )

La lista desplegable solo mostraría el costo, el impacto del programa y la programación. Luego podría agregar una
segunda lista desplegable y establecer su propiedad Items en esta fórmula:
Filter( Impacts; ddSelectType.Selected.Value in SCategory )

De esta manera tendríamos listas desplegables en cascada. Para obtener más información, vea esta entrada del
equipo de PowerApps SharePoint: Cascading Dropdowns in 4 Easy Steps! (SharePoint: listas desplegables en
cascada en 4 pasos sencillos) o este vídeo de la comunidad. No se preocupe: sin SharePoint es igual de fácil.
No cree una superaplicación
Con PowerApps, puede llamar a una aplicación desde otra. Así que, en lugar de tener un enorme formulario de
InfoPath tan difícil de mantener, se puede crear un grupo de aplicaciones que se llaman entre sí e incluso se pasan
datos, lo que facilita mucho las labores de desarrollo.
Pasos siguientes
Con PowerApps y la información de este tema, ya tiene todo lo necesario para empezar a crear aplicaciones de una
en una. A medida que avanza, puede ver los útiles vínculos útiles que se ofrecen a continuación, por ejemplo, el
vínculo al sitio de la comunidad de PowerApps. Implíquese en la comunidad y aumente sus conocimientos mucho
más rápido de lo que lo haría por sí mismo.
Referencia sobre fórmulas: una excelente manera de inspirarse mediante la exploración de algunas de las
funciones predeterminadas.
Comunidad de PowerApps: vea los ejemplos, relaciónese con otros usuarios, plantee sus dudas, responda a las
de los demás y contribuya al crecimiento de la comunidad de PowerApps.
Aplicaciones de lienzo para desarrolladores
empresariales, asociados y fabricantes de software
independientes
14/11/2019 • 2 minutes to read

Los desarrolladores tienen la posibilidad de ampliar aplicaciones de lienzo en PowerApps, lo que habilita
soluciones aún más potentes para las organizaciones y los clientes.

Aplicaciones de lienzo para desarrolladores empresariales


Los desarrolladores empresariales permiten que sus organizaciones compilen robustas soluciones personalizadas
en PowerApps:
Cree conectores personalizados: desarrolle conectores personalizados para conectarse a los servicios
web y de datos de su organización. Más información
Cree instancias de Azure Functions: elabore instancias de Azure Functions para ampliar las aplicaciones
con lógica de servidor personalizada. Más información
Inserte aplicaciones: inserte aplicaciones directamente en la experiencia de sus sitios web para crear
soluciones integradas y exponer aplicaciones con las que las personas de su organización ya hacen su
trabajo. Más información
Compile aplicaciones que se puedan usar sin conexión: desarrolle aplicaciones que se puedan usar sin
conexión para que los usuarios puedan ser productivos en todo momento, tanto cuando están en línea como
cuando no tienen conexión. Más información

Aplicaciones de lienzo para ISV y asociados de Microsoft


Tanto los fabricantes de software independientes (ISV ) como los asociados de Microsoft, pueden acelerar la
incorporación de sus clientes si amplían sus productos para que se integren con los datos y procesos empresariales
de los clientes:
Cree y certifique conectores personalizados: suba cualquier producto a la nube de Microsoft mediante
la creación de un conector que permita a PowerApps comunicarse con su servicio. Más información
Presente la solución en AppSource: genere nuevos clientes potenciales para su empresa mediante la
compilación de una aplicación con PowerApps y su posterior publicación en AppSource para la prueben los
clientes nuevos. Más información
Empiece a usarlo hoy mismo de forma gratuita: regístrese gratis en el Plan de la comunidad de
PowerApps y empiece a compilar aplicaciones en un entorno individual dedicado. Más información
Conectores personalizados para aplicaciones de
lienzo
09/11/2019 • 2 minutes to read

Sin necesidad de escribir ningún código, puede crear flujos de trabajo y aplicaciones de lienzo con Azure Logic
apps, Power Automaticy PowerApps. Con el objetivo de ayudarle a integrar sus procesos empresariales y de
datos, dichos servicios ofrecen más de 180 conectores para productos y servicios de Microsoft, así como para
otros servicios, como GitHub, Salesforce y Twitter.
Aunque, a veces, es posible que quiera llamar a API, servicios y sistemas que no están disponibles como
conectores compilados previamente. Para admitir escenarios más específicos, puede compilar conectores
personalizados con acciones y desencadenadores propios. En el sitio de la documentación sobre los conectores
encontrará un conjunto muy completo de tutoriales básicos y avanzados sobre los conectores personalizados.
Recomendamos empezar por la información general sobre los conectores personalizados, pero, si quiere, puede ir
directamente a los siguientes temas para obtener más información sobre un aspecto en concreto:
Creación de un conector personalizado a partir de una definición de OpenAPI
Creación de un conector personalizado a partir de una colección Postman
Creación de un conector personalizado desde cero
Uso de un conector personalizado a partir de una aplicación de PowerApps
Uso compartido de los conectores personalizados en la organización
Envío de conectores para obtener la certificación de Microsoft
Preguntas más frecuentes sobre los conectores personalizados
Integración de aplicaciones de lienzo en sitios web y
otros servicios
14/11/2019 • 7 minutes to read

Las aplicaciones que cree suelen ser más útiles cuando están disponibles en el momento en que los usuarios
realizan su trabajo. Al incrustar aplicaciones de lienzo en un iframe, puede integrar esas aplicaciones en sitios web
y otros servicios, como Power BI o SharePoint.
En este tema se muestra cómo establecer los parámetros para la inserción de aplicaciones y, después, se instará la
aplicación Asset Ordering en un sitio web.

Tenga en mente las siguientes restricciones:


Los únicos usuarios de PowerApps que pueden acceder a la aplicación insertada son los que se encuentran en
el mismo inquilino.
Para acceder a PowerApps mediante Internet Explorer 11, es preciso desactivar la vista de compatibilidad.
También puede integrar las aplicaciones de canvas en SharePoint Online sin usar un iframe. Más información: use
el elemento Web de PowerApps.

Establecer los parámetros URI de la aplicación


Si tiene una aplicación que desea insertar, el primer paso es establecer los parámetros para el identificador
uniforme de recursos (URI), para que el iframe sepa dónde se encuentra la aplicación. El identificador URI tiene la
forma siguiente:

https://apps.powerapps.com/play/[AppID]?source=iframe
IMPORTANT
A partir del 2019 de agosto, el formato del URI ha cambiado de https://web.powerapps.com/webplayer a
https://apps.powerapps.com/play. Actualice cualquier iframe incrustado para que use el nuevo formato de URI. Las
referencias al formato anterior se redirigirán al nuevo URI para garantizar la compatibilidad.
Formato anterior:
https://Web.powerapps.com/WebPlayer/iframeapp? Source = iframe & appId
=/providers/Microsoft.PowerApps/apps/[AppID]

Lo único que tiene que hacer es sustituir el identificador de la aplicación por [AppID ] en el identificador URI
(incluido "[' & ']"). Le mostraremos cómo obtener ese valor en breve, pero primero aquí están todos los
parámetros disponibles en el identificador URI:
[appID ] : proporciona el identificador de la aplicación que se va a ejecutar.
tenantid : es un parámetro opcional para admitir el acceso de invitado y determina en qué inquilino se debe
abrir la aplicación.
screenColor: se usa para proporcionar a los usuarios una mejor experiencia de carga. Este parámetro tiene el
formato RGBA (rojo, verde, azul, alfa) y controla el color de la pantalla mientras se carga la aplicación. Es mejor
establecerlo en el mismo color que el icono de la aplicación.
source: no afecta a la aplicación, pero se recomienda agregar un nombre descriptivo para hacer referencia al
origen de la aplicación insertada.
Por último, puede agregar los parámetros personalizados que desee con la función Param() y esos valores
pueden ser utilizados por la aplicación. Se agregan al final del identificador URI, como
[AppID]?source=iframe&param1=value1&param2=value2 . Estos parámetros son de solo lectura durante el inicio de la
aplicación. Si tiene que cambiarlos, debe volver a iniciar la aplicación. Tenga en cuenta que solo el primer
elemento después de [AppID ] debe tener un "?"; después, use el "&" como se muestra aquí.
Obtener el identificador de aplicación
El identificador de la aplicación está disponible en powerapps.com. Para la aplicación que desea insertar:
1. En powerapps.com, en la pestaña Aplicaciones, pulse o haga clic en los puntos suspensivos ( ... ) y, a
continuación, seleccione Detalles.

2. Copie el Id. de aplicación.


3. Sustituya el valor [AppID] en el identificador URI. Para la aplicación "Pedido de activos", el identificador
URI tiene el siguiente aspecto:

https://apps.powerapps.com/play/76897698-91a8-b2de-756e-fe2774f114f2?source=iframe

Insertar la aplicación en un sitio web


Ahora es muy fácil incrustar aplicaciones, solo hay que agregar el iframe al código HTML del sitio (o a cualquier
otro servicio que admita iframes, como Power BI o SharePoint):

<iframe width="[W]" height="[H]" src="https://apps.powerapps.com/play/[AppID]?


source=website&screenColor=rgba(165,34,55,1)" allow="geolocation; microphone; camera"/>

Especifique los valores de ancho y alto del iframe y sustituya el identificador de la aplicación por [AppID] .

NOTE
Incluya allow="geolocation; microphone; camera" en el código HTML de iframe para permitir que las aplicaciones usen
estas funcionalidades en Google Chrome.

La siguiente imagen muestra la aplicación "Pedido de activos" insertada en un sitio web de ejemplo de Contoso.
Tenga en cuenta los puntos siguientes para autenticar a los usuarios de la aplicación:
Si el sitio web usa autenticación basada en Azure Active Directory (AAD ), no será necesario ningún inicio de
sesión adicional.
Si el sitio web utiliza cualquier otro mecanismo de inicio de sesión o no está autenticado, los usuarios verán un
mensaje de inicio de sesión en el iframe. Después de iniciar sesión, podrán ejecutar la aplicación siempre y
cuando el autor de la aplicación la haya compartido con ellos.
Como ve, insertar aplicaciones es fácil y eficaz. La inserción le permite llevar las aplicaciones a los lugares en los
que usted y sus clientes trabajan (sitios web, paneles de Power BI y páginas de SharePoint, entre otros).
Desarrollo de aplicaciones de lienzo que puedan
ejecutarse sin conexión
04/06/2019 • 13 minutes to read

Los usuarios móviles a menudo necesitan ser productivo incluso cuando tienen limitado o sin conexión. Al
compilar una aplicación de lienzo, puede realizar estas tareas:
Abra PowerApps Mobile y ejecutar aplicaciones sin conexión.
Determinar si una aplicación está sin conexión, en línea o en una conexión de uso medido mediante el objeto
de señal conexión.
Usar colecciones y aprovechar funciones como LoadData y SaveData para el almacenamiento de datos básico
cuando esté sin conexión.

Limitaciones
LoadData y SaveData se combinan para formar un mecanismo sencillo para almacenar pequeñas cantidades de
datos en un dispositivo local. Mediante el uso de estas funciones, puede agregar capacidades sin conexión
sencillas a la aplicación.
Estas funciones están limitadas por la cantidad de memoria de la aplicación disponible, ya que operan en una
colección en memoria. Memoria disponible puede variar en función del dispositivo, el sistema operativo, la
memoria que usa PowerApps Mobile y la complejidad de la aplicación en cuanto a las pantallas y controles. Si
almacena más de unos cuantos megabytes de datos, pruebe la aplicación con los escenarios esperados en los
dispositivos en el que se espera que se ejecute. Generalmente tendrá 70-30 megabytes de memoria disponible.
Las funciones también no resuelven automáticamente los conflictos de combinación cuando un dispositivo está
en línea. Configuración en los datos que se guardan y cómo controlar la reconexión es hasta el fabricante al
escribir expresiones.
Para obtener actualizaciones de capacidades sin conexión, vuelva a este tema y suscribirse a la blog de
PowerApps.

Información general
Al diseñar escenarios sin conexión, primero debe considerar cómo sus aplicaciones funcionan con datos.
Aplicaciones en PowerApps principalmente a los datos mediante un conjunto de conectores que ofrece la
plataforma, como SharePoint, Office 365 y Common Data Service. También puede crear conectores
personalizados que permiten a las aplicaciones tener acceso a cualquier servicio que proporcione un punto de
conexión REST. Podría tratarse de una API web o un servicio como Azure Functions. Todos estos conectores usan
HTTPS a través de Internet, lo que significa que los usuarios deben estar en línea para acceder a los datos y otras
funcionalidades que ofrece un servicio.

Administrar datos sin conexión


En PowerApps, puede filtrar, buscar, ordenar, agregar y manipular los datos de una manera coherente
independientemente del origen de datos. Estos orígenes varían desde colecciones en memoria en la aplicación a
listas de SharePoint para las bases de datos SQL y Common Data Service. Debido a esta coherencia, puede
redirigir fácilmente una aplicación para usar un origen de datos diferente. Lo más importante para escenarios sin
conexión, puede usar colecciones locales para la administración de datos casi sin cambios en la lógica de la
aplicación. De hecho, las colecciones locales son el mecanismo principal para administrar datos sin conexión.

Compilar una aplicación sin conexión


Para mantener el foco en los aspectos del desarrollo de aplicaciones sin conexión, en este tema se muestra un
sencillo escenario centrado en Twitter. Va a crear una aplicación que le permite leer entradas de Twitter y enviar
tweets mientras está sin conexión. Cuando la aplicación se conecta, la aplicación envía los tweets y vuelve a cargar
los datos locales.
En un nivel alto, la aplicación lleva a cabo estas tareas:
Cuando el usuario abre la aplicación:
Si el dispositivo está en línea, la aplicación captura los datos a través del conector de Twitter y rellena
una colección con esos datos.
Si el dispositivo está sin conexión, la aplicación carga los datos de un archivo de caché local mediante el
uso de la LoadData función.
El usuario puede enviar tweets. Si la aplicación está en línea, envía los tweets directamente a Twitter y
actualiza la caché local.
Cada cinco minutos, mientras la aplicación está en línea:
La aplicación envía los tweets en la memoria caché local.
La aplicación actualiza la caché local y se guarda con el SaveData función.
Paso 1: Adición de Twitter a una aplicación de teléfono en blanco
1. En PowerApps Studio, seleccione archivo > New.
2. En el icono Aplicación vacía, seleccione Diseño de teléfono.
3. En la pestaña Vista, seleccione Orígenes de datos.
4. En el datos panel, seleccione agregar origen de datos.
5. Seleccione nueva conexión > Twitter > crear.
6. Escriba sus credenciales, crear la conexión y, a continuación, cierre el datos panel.
Paso 2: Recopilar tweets existentes
1. En el vista de árbol panel, seleccione aplicacióny, a continuación, establezca su OnStart propiedad en
esta fórmula:

If( Connection.Connected;
ClearCollect( LocalTweets; Twitter.SearchTweet( "PowerApps"; {maxResults: 10} ) );;
Set( statusText; "Online data" );
LoadData( LocalTweets; "LocalTweets"; true );;
Set( statusText; "Local data" )
);;
SaveData( LocalTweets; "LocalTweets" );;
2. En el vista de árbol panel, seleccione el menú de puntos suspensivos de la aplicación objeto y, a
continuación, seleccione ejecutar OnStart para ejecutar esa fórmula.

NOTE
El LoadData y SaveData funciones podrían mostrar un error en PowerApps Studio, ya que los exploradores no las
admiten. Sin embargo, realizará con normalidad después de implementar esta aplicación en un dispositivo.

Esta fórmula comprueba si el dispositivo está en línea:


Si el dispositivo está en línea, la fórmula de carga hasta 10 tweets con el término de búsqueda "PowerApps" en
un LocalTweets colección.
Si el dispositivo está sin conexión, la fórmula carga la memoria caché local desde un archivo denominado
"LocalTweets" Si está disponible.
Paso 3: Mostrar los tweets en una galería
1. En el insertar ficha, seleccione galería > altura flexible en blanco.
2. Establecer el elementos propiedad de la galería control LocalTweets .
3. En la plantilla de la galería, agregue tres etiqueta controles y establezca el texto propiedad de cada
etiqueta en uno de estos valores:
ThisItem.UserDetails.FullName & " (@" & ThisItem.UserDetails.UserName & ")"
Text(DateTimeValue(ThisItem.CreatedAtIso); DateTimeFormat.ShortDateTime)
ThisItem.TweetText
4. Poner el texto en la última etiqueta en negrita para que la galería es similar a este ejemplo.

Paso 4: Mostrar el estado de conexión


1. En la galería, insertar una etiqueta y, a continuación, establezca su Color propiedad rojo.
2. Establezca la etiqueta más reciente texto propiedad en esta fórmula:
If( Connection.Connected; "Connected"; "Offline" )

Esta fórmula determina si el dispositivo está en línea. Si es así, la etiqueta muestra conectado; en caso contrario,
muestra Offline.
Paso 5: Agregue un cuadro para redactar tweets
1. En la etiqueta de estado de la conexión, inserte un entrada de texto controlar y cámbiele el nombre
NewTweetTextInput.
2. Establezca el cuadro de entrada de texto predeterminado propiedad "" .

Paso 6: Agregue un botón para enviar el tweet


1. En el cuadro de entrada de texto, agregue un botón y establezca su texto este valor para propiedad:
"Tweet"

2. Establezca el botón OnSelect propiedad en esta fórmula:

If( Connection.Connected;
Twitter.Tweet( ""; {tweetText: NewTweetTextInput.Text} );
Collect( LocalTweetsToPost; {tweetText: NewTweetTextInput.Text} );;
SaveData( LocalTweetsToPost; "LocalTweetsToPost" )
);;
Reset( NewTweetTextInput );;

3. En el OnStart propiedad para el aplicación, agregue una línea al final de la fórmula:

If( Connection.Connected;
ClearCollect( LocalTweets; Twitter.SearchTweet( "PowerApps"; {maxResults: 100} ) );;
Set( statusText; "Online data" );
LoadData( LocalTweets; "LocalTweets"; true );;
Set( statusText; "Local data" )
);;
SaveData( LocalTweets; "LocalTweets" );;
LoadData( LocalTweetsToPost; "LocalTweetsToPost"; true );; // added line
Esta fórmula determina si el dispositivo está en línea:
Si el dispositivo está en línea, envía el tweet inmediatamente.
Si el dispositivo está desconectado, captura el tweet en un LocalTweetsToPost colección y lo guarda en el
dispositivo.
A continuación, la fórmula restablece el texto en el cuadro de entrada de texto.
Paso 7: Busque nuevos tweets
1. En el lado derecho del botón, agregue un temporizador control.

2. Establecer el temporizador duración propiedad 300000.


3. Establecer el temporizador AutoStart y repita propiedades a true.
4. Establecer el temporizador OnTimerEnd en esta fórmula:

If( Connection.Connected;
ForAll( LocalTweetsToPost; Twitter.Tweet( ""; {tweetText: tweetText} ) );;
Clear( LocalTweetsToPost );;
ClearCollect( LocalTweets; Twitter.SearchTweet( "PowerApps"; {maxResults: 10} ) );;
SaveData( LocalTweets; "LocalTweets" );;
)

Esta fórmula determina si el dispositivo está en línea. Si es así, la aplicación envía los tweets todos los elementos
de la LocalTweetsToPost colección y, a continuación, borra la colección.

Probar la aplicación
1. Abra la aplicación en un dispositivo móvil que está conectado a Internet.
Tweets existentes aparecen en la galería y se muestra el estado conectado.
2. Desconectar el dispositivo de Internet mediante la habilitación del modo avión del dispositivo y
deshabilitación de wi-fi.
La etiqueta de estado muestra que la aplicación está Offline.
3. Mientras el dispositivo está sin conexión, escribir un tweet que incluya PowerAppsy, a continuación,
seleccione el Tweet botón.
El tweet se almacena localmente en el LocalTweetsToPost colección.
4. Volver a conectar el dispositivo a Internet mediante la deshabilitación del modo avión del dispositivo y
habilitar wi-fi.
Dentro de cinco minutos, la aplicación envía el tweet, que aparece en la galería.
Esperamos que este artículo le haya proporcionado una idea de las funcionalidades que tiene PowerApps para la
creación de aplicaciones sin conexión. Como siempre, proporcione sus comentarios en nuestro foro y comparta
sus ejemplos de aplicaciones sin conexión en el Blog de la Comunidad de PowerApps.
Proporcionar a los clientes una versión de prueba de
las aplicaciones de lienzo en AppSource
08/10/2019 • 8 minutes to read

¿Es un apasionado de la compilación de aplicaciones de lienzo en PowerApps? ¿Quiere compartir una aplicación
de lienzo con los clientes? AppSource.com admite soluciones de versión de prueba de PowerApps como una
manera de compartir aplicaciones con los clientes y generar clientes potenciales para su empresa.

¿Qué es una solución de versión de prueba?


Una solución de versión de prueba permite a sus clientes probar una aplicación real sin registrarse en un plan de
PowerApps ni instalar ninguna aplicación. Los clientes simplemente inician sesión en AppSource.com con su
cuenta de Azure Active Directory (AAD ) y ejecutan la aplicación en un explorador web. Sin la versión de prueba,
los clientes solo pueden leer acerca de la aplicación o ver un vídeo que la describe. Con la versión de prueba, los
clientes se hacen una idea mejor acerca de la solución y de la funcionalidad de la aplicación. Y tienen una
experiencia de uso real de la aplicación. Los clientes no pueden ver cómo está construida la aplicación, por lo que
la propiedad intelectual está protegida. Recopilamos y compartimos información de clientes potenciales que han
ejecutado la versión de prueba de la aplicación para ayudar en el desarrollo de su negocio.
Este es el ejemplo de la descripción de una aplicación en AppSource.com:

Al seleccionar el vínculo Evaluación gratuita en la descripción de la aplicación, se inicia directamente la versión


de prueba de la aplicación de PowerApps en el explorador del usuario:
¿Cómo se puede crear una solución de versión de prueba?
Crear una aplicación para una solución de versión de prueba es igual que crear cualquier aplicación en
PowerApps, pero se usan datos insertados en lugar de conexiones a datos externos. El uso de datos insertados
reduce la barrera de implementación de la aplicación al cliente, por lo que no supone ningún problema que la
prueben. La solución completa que en última instancia se distribuye a los clientes normalmente incluye
conexiones de datos, pero los datos insertados funcionan bien para una solución de versión de prueba.
PowerApps admite de forma nativa la creación de aplicaciones con datos insertados, por lo que basta con
disponer de datos de ejemplo para la aplicación. Estos datos se deben capturar en un archivo de Excel como una
o varias tablas. A continuación, en PowerApps se extraen los datos de las tablas de Excel en la aplicación y se
trabaja con ellos, en lugar de hacerlo a través de una conexión externa. El siguiente proceso en tres pasos
muestra cómo extraer datos y usarlos en la aplicación.
Paso 1: Importar datos en la aplicación
Suponga que tiene un archivo de Excel con dos tablas: SiteInspector y SitePhotos.

Importe estas dos tablas en PowerApps mediante la opción Agregar datos estáticos a la aplicación.
Ahora dispone de las tablas como orígenes de datos en la aplicación.

Paso 2: Controlar escenarios de solo lectura y de lectura y escritura


Los datos que importó son de tipo estático, por lo tanto, de solo lectura. Si la aplicación es de solo lectura (es
decir, solo muestra los datos al usuario), se hace referencia a las tablas directamente en la aplicación. Por ejemplo,
si desea tener acceso al campo Title de la tabla SiteInspector, utilice SiteInspector.Title en la fórmula.
Si la aplicación es de lectura y escritura, extraiga primero los datos de cada tabla en una colección, que es una
estructura de datos tabulares en PowerApps. A continuación, trabaje con la colección en lugar de con la tabla.
Para extraer datos de las tablas SiteInspector y SitePhotos en las colecciones SiteInspectorCollect y
SitePhotosCollect:

ClearCollect( SiteInspectorCollect; SiteInspector );;


ClearCollect( SitePhotosCollect; SitePhotos )

La fórmula borra ambas colecciones y, a continuación, recopila los datos de cada tabla en la colección adecuada:
Llame a esta fórmula en alguna parte de la aplicación para cargar los datos.
Para ver todas las colecciones de la aplicación, vaya a Archivo > Colecciones.
Para más información, consulte Crear y actualizar una colección en la aplicación.
Ahora, si desea tener acceso al campo Title, use SiteInspectorCollect.Title en la fórmula.
Paso 3: Agregar, actualizar y eliminar datos en la aplicación
Ha visto cómo leer datos directamente y desde una colección; ahora, vamos a mostrarle cómo agregar, actualizar
y eliminar datos de una colección:
Para agregar una fila a una colección, use Collect( DataSource, Item, ... ):

Collect( SiteInspectorCollect;
{
ID: Value( Max( SiteInspectorCollect; ID ) + 1 );
Title: TitleText.Text;
SubTitle: SubTitleText.Text;
Description: DescriptionText.Text
}
)

Para actualizar una fila de una colección, use UpdateIf( DataSource, Condition1, ChangeRecord1 [,
Condition2, ChangeRecord2, ...] ):

UpdateIf( SiteInspectorCollect;
ID = record.ID;
{
Title: TitleEditText.Text;
SubTitle: SubTitleEditText.Text;
Description: DescriptionEditText.Text
}
)

Para eliminar una fila de una colección, use RemoveIf( DataSource, Condition [, ...] ):

RemoveIf( SiteInspectorCollect; ID = record.ID )

NOTE
Las colecciones contienen datos solo mientras se ejecuta la aplicación; los cambios se descartan cuando se cierra la
aplicación.

En resumen, puede crear una versión de la aplicación con datos insertados, que simula la experiencia de la
aplicación con conexión a datos externos. Después de insertar los datos, estará listo para publicar la aplicación
como una solución de versión de prueba en AppSource.com.

¿Cómo muestro mi solución de versión de prueba en AppSource.com?


Ahora que la aplicación está lista, es el momento de publicarla en AppSource.com. Para iniciar este proceso,
rellene el formulario de solicitud en PowerApps.com.
Una vez realizada la solicitud, recibirá un correo electrónico con las instrucciones de envío de la aplicación para
que sea publicada en AppSource.com. También se puede descargar la documentación de incorporación que
contiene todo el proceso de aquí.
Crear un componente para aplicaciones de lienzo
28/05/2019 • 15 minutes to read

IMPORTANT
Esta característica está todavía experimental y está deshabilitado de forma predeterminada. Para obtener más información,
consulte características experimentales y de vista previa.

Los componentes son bloques de creación reutilizables para las aplicaciones de lienzo para que los creadores de
aplicaciones pueden crear controles personalizados para usarlos en una aplicación o entre aplicaciones.
Características avanzadas, como las propiedades personalizadas, habilitar funciones complejas de componentes.
Este artículo presentan los conceptos de componente y algunos ejemplos.
Los componentes son útiles en la creación de aplicaciones más grandes que tienen patrones de control similar. Si
actualiza una definición de componente, todas las instancias de la aplicación reflejan los cambios. También puede
mejorar el rendimiento mediante el uso de uno o más componentes ya no copiar y pegar controles, que duplica la
sobrecarga. Los componentes también facilita el desarrollo en colaboración y normaliza la apariencia y
funcionamiento de una organización.

Requisito previo
Abra el configuración de la aplicación pantalla, seleccione configuración avanzaday habilitar la
característica, así como asegurarse de que representación de aplicación mejorada también está habilitada.

Lienzo de componente
Puede crear un componente de la componentes menú en el insertar pestaña o, como el siguiente gráfico se
muestra, en la barra de navegación izquierdo. Esta lista muestra los componentes que se definen en la aplicación,
ordenada por hora de creación.

Independientemente del enfoque que se adopte, aparecerá un lienzo vacío, donde puede agregar controles como
parte de la definición del componente. Si edita un componente en el lienzo, deberá actualizar las instancias del
mismo componente en otras pantallas de la aplicación y otras aplicaciones.
Si selecciona una pantalla, puede seleccionar un componente de la lista de componentes existentes en la barra de
navegación izquierda o la componentes menú en el insertar ficha. Cuando se selecciona un componente, inserte
una instancia de ese componente en la pantalla, como insertar un control.

Ámbito
Piense en un componente como un cuadro negro encapsulado con propiedades como la interfaz. No se puede
obtener acceso a los controles en el componente desde fuera del componente, y no puede hacer referencia a nada
fuera el componente desde dentro del componente. Si lo intenta, se producirá un error. Restricciones de ámbito de
mantener el contrato de datos de un componente simple y coherente y ayuda a habilitar las actualizaciones de
definición de componente sin problemas, especialmente en las aplicaciones. Puede actualizar el contrato de datos
del componente mediante la creación de una o varias propiedades personalizadas.

Variables
Componentes no son compatibles con el UpdateContext funcionan, pero puede crear y actualizar las variables
en un componente mediante el uso de la establecer función. El ámbito de estas variables se limita al componente,
pero se pueden acceder a ellas desde fuera del componente mediante el aprovechamiento de las propiedades de
salida personalizado.

Importación y exportación
Para importar uno o más componentes de una aplicación a otro, seleccione importar componentes en la lista
desplegable de componentes. Un cuadro de diálogo enumera todas las aplicaciones que contienen los
componentes que tienen permiso para editar. Seleccione una aplicación y, a continuación, seleccione importar
para importar la versión publicada más reciente de todos los componentes en esa aplicación. Después de
importar al menos un componente, puede editar su copia y eliminar cualquiera que no necesita.

Si exporta un componente, cree un archivo local que se puede importar a otra aplicación. Si la aplicación contiene
una versión modificada del mismo componente, se le pedirá que decida si desea reemplazar la versión modificada
o cancelar la importación.

Propiedades personalizadas
Un componente puede recibir valores de entrada y emitir los datos si crea una o varias propiedades
personalizadas. Estos escenarios son avanzados y tendrá que comprender las fórmulas y contratos vinculantes.
Una propiedad de entrada es el modo en que un componente recibe los datos que se usará en el componente.
Propiedades de entrada aparecen en la propiedades ficha del panel derecho, si se selecciona una instancia del
componente. Puede configurar las propiedades de entrada con expresiones o fórmulas, tal como configurar las
propiedades estándar en otros controles. Otros controles disponen de las propiedades de entrada, como el
predeterminado propiedad de un entrada de texto control.
Propiedades de salida pueden emitir el estado de datos o un componente. Por ejemplo, el seleccionados
propiedad en un galería control es una propiedad de salida. Cuando se crea una propiedad de salida, puede
determinar qué otros controles pueden consultar el estado del componente.
Aún más en este tutorial explica estos conceptos.

Crear un componente de ejemplo


En este ejemplo, creará un componente de menú que se parece a este gráfico y en el que puede cambiar el texto y
usar en varias pantallas, aplicaciones o ambas:

1. En PowerApps Studio, cree una aplicación en blanco.


2. En la barra de navegación izquierda, abra la lista de componentes y, a continuación, seleccione nuevo
componente.

3. Al mantener el mouse sobre el componente nuevo, seleccione el botón de puntos suspensivos (...),
seleccione cambiar el nombre dey, a continuación, escriba o pegue MenuComponent.
4. En el panel derecho, establezca el ancho del componente 150 y su alto 250y, a continuación, seleccione
nueva propiedad personalizada.
5. En el nombre para mostrar, nombre de la propiedad, y descripción cuadros, escriba o pegue
elementos.

Cuando se especifica un nombre de propiedad, no incluya espacios porque hará referencia al componente
con este nombre al escribir una fórmula (por ejemplo, ComponentName.PropertyName).
El nombre para mostrar aparece en la propiedades ficha del panel derecho, si selecciona el componente.
Un nombre para mostrar descriptivo le y otros fabricantes comprender el propósito de esta propiedad. El
descripción aparece en una información sobre herramientas si sitúa sobre el nombre para mostrar de esta
propiedad en el propiedades ficha.
6. En el tipo de datos lista, seleccione tablay, a continuación, seleccione crear.

El elementos propiedad está establecida en un valor predeterminado según el tipo de datos que ha
especificado, pero puede establecerlo en un valor que se adapte a sus necesidades. Si especifica un tipo de
datos de tabla o registro, es posible que desee cambiar el valor de la elementos propiedad para que
coincida con el esquema de datos que desea que el componente de entrada. En este caso, va a cambiar a
una lista de cadenas.
Puede establecer el valor de propiedad en la barra de fórmulas si selecciona el nombre de la propiedad en
el propiedades ficha del panel derecho.

Como el gráfico se muestra, también puede editar el valor de propiedad en el avanzadas ficha del panel
derecho.
7. Establezca el componente elementos propiedad en esta fórmula:

Table({Item:"SampleText"})

8. En el componente, inserte un valor en blanco vertical galería control.


9. Asegúrese de que se muestra la lista de propiedades el elementos propiedad (tal como se hace de forma
predeterminada) y, a continuación, establezca el valor de esa propiedad en esta expresión:

MenuComponent.Items

De este modo, el elementos propiedad de la galería control lee y depende de la elementos propiedad del
componente de entrada.
10. Establecer el galería del control BorderThickness propiedad 1 y su Tamañodeplantilla propiedad 50.
11. En la plantilla de la galería control, agregue un etiqueta control.
A continuación, deberá agregar el componente a una pantalla y especificar una tabla de cadenas para el
componente mostrar.
1. En la barra de navegación izquierdo, seleccione la lista de pantallas y, a continuación, seleccione la pantalla
predeterminada.

2. En el insertar pestaña, abra el componentes menú y, a continuación, seleccione MenuComponent.

El nuevo componente se denomina MenuComponent_1 de forma predeterminada.


3. Establecer el elementos propiedad de MenuComponent_1 en esta fórmula:

Table({Item:"Home"}; {Item:"Admin"}; {Item:"About"}; {Item:"Help"})

Esta instancia es similar a este gráfico, pero puede personalizar el texto y otras propiedades de cada
instancia.

Hasta ahora, ha creado un componente y agregarlo a una aplicación. A continuación, creará una propiedad de
salida que refleja el elemento que el usuario selecciona en el menú.
1. Abra la lista de componentes y, a continuación, seleccione MenuComponent.
2. En el panel derecho, seleccione el propiedades pestaña y, a continuación, seleccione nueva propiedad
personalizada.
3. En el nombre para mostrar, nombre de la propiedad, y descripción cuadros, escriba o pegue
seleccionados.
4. En tipo de propiedad, seleccione saliday, a continuación, seleccione crear.
5. En el avanzadas pestaña, establezca el valor de la seleccionados propiedad en esta expresión, ajuste el
número en el nombre de la Galería si es necesario:

Gallery1.Selected.Item

6. En la pantalla predeterminada de la aplicación, agregue una etiqueta y establezca su texto propiedad en


esta expresión, ajuste el número en el nombre del componente si es necesario:

MenuComponent_1.Selected

Tenga en cuenta que MenuComponent_1 es el nombre predeterminado de una instancia, no el nombre


de la definición del componente. Puede cambiar el nombre de cualquier instancia.
7. Mientras mantiene presionada la tecla Alt, seleccione cada elemento en el menú.
El etiqueta control refleja el elemento de menú que ha seleccionado más recientemente.

Limitaciones conocidas
Cuando se redactó este documento, los orígenes de datos no se guardan con los componentes, por lo que se
deshabilitan los formularios y las tablas de datos.
PowerApps no admite colecciones de componentes.
No se puede insertar un componente en una galería, un formulario o una tarjeta de datos.
Una instancia de un componente principal es un local maestro y ámbito de la aplicación. Si cambia una
instancia de patrón, solo las copias del componente dentro de la aplicación reflejará el cambio. Copias en otras
aplicaciones seguirá siendo el mismo, a menos que vuelva a importar la biblioteca de componentes. Todas las
instancias maestras en esas aplicaciones se detectarán automáticamente y actualizadas.
No se puede empaquetar archivos multimedia al importar un componente.
Fórmulas de comportamiento para componentes
29/10/2019 • 4 minutes to read

IMPORTANT
Esta característica sigue siendo experimental y está deshabilitada de forma predeterminada. Para obtener más información,
vea características experimentales y de vista previa.

Especifique una o varias fórmulas de comportamiento que se ejecuten cuando un evento desencadene un cambio
en instancias de componente. Por ejemplo, establezca la propiedad onreset de un componente en una o varias
fórmulas que realicen la inicialización, borren la entrada y restablezcan los valores cuando la función de
restablecimiento se ejecute en las instancias del componente.

OnReset
Con un componente maestro seleccionado, seleccione onreset en la lista desplegable de propiedades (en el lado
izquierdo de la barra de fórmulas) y, a continuación, escriba una o varias fórmulas.

Para probar RESET, configure un control para restablecer el componente. Por ejemplo, establezca la propiedad
alseleccionar de un botón en esta fórmula: RESET(ComponentName).
Ejemplo: restablecer temporizador

En este componente selector de hora, se usan dos variables para mostrar la hora _selectedHour y _selectedMinute.
Cuando el selector se restablece, estas variables se deben restablecer a un valor predeterminado, por ejemplo,
12:12. La propiedad onreset del componente tiene la siguiente fórmula: set (_selectedHour); Set
(_selectedMinute)
Para desencadenar el restablecimiento, vaya a una pantalla e inserte una instancia del componente. Agregue un
botón y configure alseleccionar del botón para llamar a RESET (TimerComponent_instance) para desencadenar
onreset.

Actualizar onreset mediante la propiedad personalizada


Además de restablecer una instancia de componente desde fuera del componente, hay otro método para
desencadenar el restablecimiento desde el interior. "Raise onreset When Changes Values" es una opción al crear
una propiedad de entrada personalizada y permite que los cambios de valor de esta propiedad desencadenen el
restablecimiento del componente. Este método está diseñado para establecer y restablecer el valor predeterminado
fácilmente.
Ejemplo
Este es un ejemplo de revisión de los números de pedido y la actualización de los números. El componente
numérico hacia arriba y hacia abajo se usa para aumentar o disminuir el número de pedidos. Al seleccionar la
galería de la izquierda, se restablece el número predeterminado de componentes numéricos hacia arriba y hacia
abajo para mostrar el número de orden de la herramienta seleccionada. "Elevar el restablecimiento cuando
cambia el valor" hace posible restablecer el valor predeterminado cuando cambia la entrada.
Para ello, Active "elevar el restablecimiento cuando cambia el valor" de la propiedad de entrada
predeterminada. Alreset del componente se establece en set (_NumericValue, ' Numeric UpDown ').
DefaultValue) . _numericValue es la variable para almacenar el valor del valor de pedido actual. Y establecen el
valor predeterminado del control entrada de texto en si (esblanco (_numericValue), ' numérico
verticalmente '. DefaultValue, _numericValue) .
Vista previa: Incrustación de aplicaciones de lienzo en
otras aplicaciones
24/08/2019 • 2 minutes to read

[Este tema es documentación preliminar y está sujeto a modificaciones.]


PowerApps es de alta productividad, una plataforma de desarrollo de bajo código que permite a los creadores de
aplicaciones y permite a cualquier usuario crear experiencias enriquecidas. Al insertar aplicaciones de lienzo en la
aplicación, puede transformar los clientes de forma rápida y sencilla en los responsables de aplicaciones. Los
nuevos responsables de la aplicación pueden ampliar las aplicaciones desde la creación de formularios
personalizados sencillos hasta la adición de pantallas enriquecidas de características y todo lo que hay entre
ellos.Pueden conectarse a datos, crear lógica de negocios y organizar flujos de trabajo desde dentro de la
aplicación. Al permitir que los clientes actúen como responsables de aplicaciones, las aplicaciones y los servicios
pueden, por último, cruzar ese último kilómetro y ajustarse perfectamente a los flujos de trabajo de los clientes, lo
que hace que sean aún más valiosos e indispensables.
El nuevo SDK de inserción de aplicaciones de lienzo permite insertar aplicaciones de lienzo en las aplicaciones.

IMPORTANT
Se trata de una característica de vista previa.
Las vistas previas de características no se han diseñado para un uso de producción y pueden tener una funcionalidad
restringida. Estas características están disponibles antes del lanzamiento oficial para que los clientes puedan tener un
acceso anticipado y proporcionar comentarios.

Uso del SDK y la documentación de la inserción de aplicaciones de


Canvas
Para obtener información sobre cómo descargar y usar el SDK de inserción de aplicaciones de lienzo, descargue
los documentos aquí.
¿Qué son las aplicaciones controladas por modelos
en PowerApps?
25/11/2019 • 3 minutes to read • Edit Online

El diseño de una aplicación controlada por modelos es un enfoque centrado en los componentes para el
desarrollo de la aplicación. Para el diseño de aplicaciones controladas por modelos no se requiere código y las
aplicaciones que crea pueden ser simples o muy complejas. A diferencia del desarrollo de aplicaciones de lienzo,
donde el diseñador tiene control total sobre el diseño de la aplicación, con las aplicaciones controladas por
modelos, la mayoría del diseño lo determina el usuario y viene determinado en gran medida por los
componentes que agrega a la aplicación.

El diseño de las aplicaciones controladas por modelos proporciona las siguientes ventajas:
Entornos de diseño enriquecidos no de código orientados a los componentes
Crear aplicaciones complejas que responden adecuadamente con una IU similar en una variedad de
dispositivos de escritorio a móvil
Amplia capacidad de diseño
Su aplicación se puede distribuir como una solución

Enfoque de la creación de aplicaciones controladas por modelos


Básicamente, la creación de una aplicación controlada por modelos consta de tres áreas de enfoque clave.
Modelar datos profesionales
Definir procesos de negocio
Componer la aplicación
Modelar datos profesionales
Para modelar datos empresariales determine qué datos necesitará la aplicación y cómo se relacionarán los datos
con otros datos. En el diseño controlado por modelos se usa una arquitectura controlada por metadatos para que
los diseñadores puedan personalizar la aplicación sin escribir código. Metadatos significa "datos acerca de datos"
y define la estructura de los datos almacenados en el sistema. Tutorial: Crear una entidad personalizada que
tenga componentes en PowerApps
Definir procesos de negocio
La definición y aplicación de procesos de negocio coherentes es un aspecto clave del diseño de aplicaciones
controladas por modelos. Los procesos coherentes garantizan que los usuarios de la aplicación se centren en su
trabajo y no en recordar realizar un conjunto de pasos manuales. Los procesos pueden ser simples o complejos y
normalmente cambian con el tiempo. Para crear un proceso, en el área Controlado por modelos de
PowerApps.com, seleccione > Personalizaciones avanzadas > Abrir explorador de soluciones. A
continuación, en el panel de navegación de la izquierda en el explorador de soluciones, seleccione Procesos y, a
continuación, Nuevo. Más información: Información general sobre flujos de proceso de negocio y Aplicar lógica
de negocios con Common Data Service.
Componer la aplicación controlada por modelos
Después de modelar los datos y definir los procesos, cree la aplicación seleccionando y configurando los
componentes que necesita usando el diseñador de aplicaciones.

Pasos siguientes
Crear la primera aplicación controlada por modelos
Conocer los componentes de las aplicaciones basadas en modelos
Aplicaciones controladas por modelos de ejemplo
25/11/2019 • 3 minutes to read • Edit Online

En powerapps.com, use una aplicación de ejemplo para explorar posibilidades de diseño y para descubrir
conceptos que puede aplicar cuando se desarrolla sus propias aplicaciones. Cada aplicación de ejemplo usa datos
ficticios para mostrar un escenario del mundo real.
Asegúrese de comprobar la documentación específica de cada aplicación de ejemplo para obtener más detalles.

Obtener aplicaciones de ejemplo


Para ejecutar o editar aplicaciones controladas por modelos de ejemplo, primero se deben introducir las
aplicaciones en una base de datos de Common Data Service. Primero cree un entorno y una base de datos de
prueba y asegúrese de marcar la opción Incluir aplicaciones y datos de ejemplo.
IMPORTANT
Esta opción instala todas las aplicaciones de ejemplo disponibles en la base de datos. Las aplicaciones de ejemplo son para
fines educativos y de demostración y no se recomienda instalarlas en bases de datos de producción.

Personalizar una aplicación de ejemplo


1. Iniciar sesión en powerApps.com
2. En la página Create, pase el cursor por encima de la aplicación de ejemplo y haga clic en Crear esta
aplicación.

3. El diseñador de aplicaciones se abrirá proporcionando varias opciones para personalizar la aplicación.


4. Para ver más opciones de personalización, haga clic en Avanzadas en la navegación izquierda del portal.

Quitar aplicaciones y datos de ejemplo


Eliminar una aplicación de ejemplo requiere eliminar la correspondiente solución administrada.
Al eliminar la solución también se eliminan los datos de ejemplo específicos de las entidades personalizadas de
la aplicación.
Si se realizaron personalizaciones en la aplicación de ejemplo, puede haber dependencias, que se deberán
quitar antes de eliminar la solución.
Pasos
1. Inicie sesión en el portal de administración de PowerApps.
2. Seleccione un entorno.
3. Haga clic en Dynamics 365 Administration Center

4. Seleccione la base de datos de la lista y haga clic en ABRIR.

5. Desplácese a Configuración/Soluciones.
6. Seleccione la solución para la aplicación que se va a eliminar y haga clic Eliminar.

También puede acceder a la lista de soluciones haciendo clic en Avanzadas en el portal de creadores y eliminando
todo lo que hay en la dirección URL después de .dynamics.com/
IMPORTANT
No elimine otras soluciones del sistema a menos que tenga en cuenta su repercusión.

Instalar o desinstalar datos de ejemplo


1. Siga los pasos 1-4 anteriores.
2. Acceda a Configuración/Administración de datos/Datos de ejemplo.
3. Si hay datos de ejemplo instalados, la opción de eliminar está disponible. En caso contrario, estará
disponible la opción de instalar.
Crear la primera aplicación controlada por modelos
desde cero
25/11/2019 • 4 minutes to read • Edit Online

El diseño de una aplicación controlada por modelos es un enfoque centrado en los componentes para el desarrollo
de la aplicación. En este tema, simplificará el modo de crear una aplicación controlada por modelos usando una de
las entidades estándar que esté disponible en el entorno de PowerApps.

TIP
Para obtener todos sobre las aplicaciones controladas por modelos, empiece aquí: Comprender los componentes de
aplicaciones controladas por modelos.

Iniciar sesión en PowerApps


Inicie sesión en PowerApps. Si aún no tiene una cuenta de PowerApps, seleccione el vínculo Introducción
gratuita.

Cree su aplicación controlada por modelos


1. Seleccione el entorno que desee o vaya al Centro de administración de PowerApps para crear uno nuevo.

IMPORTANT
Si el modo de diseño Controlado por modelos no está disponible, puede que tenga que Crear un entorno.

2. En la página Inicio , seleccione Empezar en blanco una aplicación basada en modelos.


3. En la página Crear una nueva aplicación, especifique los siguientes detalles y, a continuación, seleccione
Hecho:
Nombre: escriba un nombre para la aplicación, como Mi primera aplicación.
Nombre único: de forma predeterminada, el nombre único usa el nombre que especifica en la casilla
Nombre sin espacios y precedida por el prefijo del editor y un guión bajo (). Por ejemplo, crecf_Myfirstapp.
Más información: Cambiar el prefijo del editor de soluciones
Descripción: escriba una breve descripción de lo que es o hace la aplicación, como Esta es mi primera
aplicación. Para obtener información acerca de las propiedades adicionales de la aplicación, consulte Crear
una aplicación.
Agregar componentes a la aplicación
En el diseñador de aplicaciones puede agregar componentes a la aplicación.
1. Seleccione la flecha Abrir el diseñador del mapa del sitio para abrir el diseñador del mapa del sitio.

2. En el diseñador del mapa del sitio, seleccione Nueva subárea, en el panel derecho seleccione la pestaña
Propiedades y, a continuación, seleccione las siguientes propiedades.
Tipo: Entidad
Entidad: Cuenta
3. Seleccione Guardar y cerrar.
4. En el lienzo del diseñador de aplicaciones, seleccione Formularios y, en el panel derecho, bajo el grupo
Formularios principales, seleccione el formulario Cuenta.

5. En el lienzo del diseñador de aplicaciones, seleccione Vistas y, a continuación, seleccione las vistas Cuentas
activas, Todas las cuentas y Mis cuentas activas.
6. En el lienzo del diseñador de aplicaciones, seleccione Gráficos y seleccione el gráfico Cuentas por sector.
7. En la barra de herramientas del diseñador de aplicaciones, seleccione Guardar.

Publicar la aplicación
En la barra de herramientas del diseñador de aplicaciones, seleccione Publicar.
Después de que publique la aplicación, la podrá ejecutar o compartir con otros.

Pasos siguientes
En este tema, creó una aplicación controlada por modelos simple.
Para ver cómo quedará la aplicación cuando la ejecute, consulte Ejecutar una aplicación controlada por
modelos en un dispositivo móvil.
Para obtener más información sobre cómo compartir la aplicación, consulte Compartir una aplicación
controlada por modelos.
Para ver una introducción y para obtener todos los detalles sobre cómo crear aplicaciones controladas por
modelos, consulte: Comprender los componentes de aplicaciones controladas por modelos.
Conocer los componentes de las aplicaciones
basadas en modelos
25/11/2019 • 9 minutes to read • Edit Online

Una aplicación controlada por modelos bien diseñada se compone de varios componentes que selecciona usando
el diseñador para crear la apariencia y funcionalidades de la aplicación terminada. Los componentes y
propiedades de componentes que los diseñadores usan para crear una aplicación son los metadatos.
Para conocer cómo cada uno de estos componentes se relaciona con el diseño de la aplicación, se separan aquí
en las categorías de datos, IU, lógica y visualización.

Datos
Estos componentes determinan en qué datos se basará la aplicación y qué diseñador se utiliza para crear o editar
el componente.

COMPONENTE DESCRIPCIÓN DISEÑADOR

Entidad Un artículo con propiedades de las que Diseñador de entidades de PowerApps


se realiza un seguimiento, como un
contacto o una cuenta. Hay disponibles
muchas entidades estándar. Puede
personalizar una entidad estándar que
no sea del sistema (entidad de
producción) o crear una entidad
personalizada desde cero.

Relación Las relaciones de entidades definen Diseñador de entidades de PowerApps


cómo se pueden relacionar las
entidades entre ellas. Existen los tipos
de relaciones: 1: N (uno a varios), N: 1
(varios a uno) y N:N (varios a varios).
Por ejemplo, al agregar un campo de
búsqueda a una entidad se crea una
nueva relación de 1:N entre las dos
entidades y le permite colocar ese
campo de búsqueda en un formulario.

Campo Propiedad que está asociada a una Diseñador de entidades de PowerApps


entidad. Un campo está definido por
un tipo de datos, que determina el tipo
de datos que se pueden introducir o
seleccionar. Por ejemplo: texto, número,
fecha y hora, divisa o búsqueda (crea
una relación con otra entidad). Los
campos suelen usarse con formularios,
vistas y búsquedas.
COMPONENTE DESCRIPCIÓN DISEÑADOR

Campo Conjunto de opciones Este es un tipo especial de campo, que Diseñador de conjunto de opciones de
proporciona al usuario un conjunto de PowerApps
opciones predeterminadas. Cada
opción tiene un valor y una etiqueta
del número. Cuando se agrega a un
formulario, este campo muestra un
control para que el usuario pueda
seleccionar una opción. Hay dos tipos
de conjuntos de opciones; conjuntos de
opciones, donde el usuario solo puede
seleccionar una opción y conjuntos de
opciones de selección múltiple, que
permiten más de una selección.

Más información: Definir datos para su aplicación controlada por modelos

IU
Estos componentes determinan cómo interactúan los usuarios con la aplicación.

COMPONENTE DESCRIPCIÓN DISEÑADOR

Aplicación Determina aspectos básicos de la Diseñador de aplicaciones


aplicación como componentes,
propiedades, tipo de cliente y dirección
URL.

Mapa del sitio Especifica la navegación para su Diseñador del mapa del sitio
aplicación.

Formulario Conjunto de campos de entrada de Diseñador de formularios


datos de una entidad dada que
coincide con los elementos de los que
su organización realiza un seguimiento
para la entidad. Por ejemplo, un
conjunto de campos de entrada de
datos que realizan un seguimiento de
los pedidos anteriores de un cliente
junto con las fechas de nuevo pedido
específicas solicitadas.

Vista Las vistas definen cómo se muestra Diseñador de vistas


una lista de registros para una entidad
específica en la aplicación. Una vista
define las columnas para mostrar, el
ancho de cada columna, el
comportamiento de ordenación y los
filtros predeterminados.
Lógica
Determina los procesos de negocio, reglas y automatización que la aplicación tendrá. Los creadores de
PowerApps usan un diseñador que es específico al tipo de proceso o de regla.

TIPO DE LÓGICA DESCRIPCIÓN DISEÑADOR

Flujo de proceso de negocio Proceso en línea que guía a los Diseñador de flujos de proceso de
usuarios a través de un proceso de negocio
negocio estándar. Por ejemplo, use un
proceso de negocio si desea que todo
el mundo administre las solicitudes de
servicio al cliente de la misma forma, o
para requerir que el personal obtenga
aprobación para una factura antes de
enviar un pedido.

Flujo de trabajo Los flujos de trabajo automatizan los Diseñador de flujos de trabajo
procesos de negocio sin una interfaz de
usuario. Los diseñadores usan flujos de
trabajo para iniciar tareas de
automatización que no requieren
ninguna interacción del usuario.

Acciones Las acciones son un tipo de proceso Diseñador de procesos


que le permiten invocar acciones
manualmente, incluidas acciones
personalizadas, directamente desde un
flujo de trabajo.
TIPO DE LÓGICA DESCRIPCIÓN DISEÑADOR

Regla de negocio Se usa para aplicar lógica de reglas o de Diseñador de reglas de negocio
recomendación a un formulario, por
ejemplo, para establecer los requisitos
de campo, ocultar campos o validar
datos. Los diseñadores de aplicaciones
usan una interfaz básica para
implementar y mantener reglas de
evolución rápida y de uso general.

Flujo Un flujo es un servicio basado en la Microsoft Flow


nube que le permite crear flujos de
trabajo automáticos entre aplicaciones
y servicios para obtener notificaciones,
sincronizar archivos, recopilar datos,
etc.

Más información: Aplicar lógica de negocios a su aplicación controlada por modelos


Opciones adicionales para agregar lógica de negocios personalizada
Use complementos para ampliar los procesos de negocio
Extensiones de flujo de trabajo

Visualizaciones
Determina qué tipo de visualizaciones y de creación de informes tendrá disponible la aplicación.
COMPONENTE DESCRIPCIÓN DISEÑADOR

Gráfico Una única visualización gráfica que Diseñador de gráficos


puede mostrarse en una vista, en un
formulario o bien agregar a un panel.

Panel Funciona como una preferencia para Diseñador de paneles


una o varias visualizaciones gráficas
que proporcionan una visión general
de los datos profesionales en los que se
puede actuar.

Power BI insertado Agregue ventanas y paneles de Power Combinación de diseñador de gráficos,


BI incrustado a la aplicación. Power BI diseñador de paneles y Power BI
es un servicio basado en la nube que
ofrece información detallada de
inteligencia empresarial.

Creación avanzada de aplicaciones controladas por modelos


El explorador de soluciones es una herramienta completa que se usa para la creación avanzada de aplicaciones
controladas por modelos. En el explorador de soluciones puede navegar por una jerarquía formada por todos los
componentes de las aplicaciones usando el panel de navegación que hay a la izquierda de la herramienta.
Para abrir el explorador de soluciones, seleccione Controlado por modelos en el panel izquierdo de
PowerApps.

A continuación, seleccione la pestaña Avanzada.


Más información: Creación y personalización avanzadas de aplicaciones

Temas relacionados
Validar y publicar una aplicación controlada por modelos
Compartir su aplicación controlada por modelos
Definir datos para su aplicación controlada por
modelos
25/11/2019 • 2 minutes to read • Edit Online

Los datos para su aplicación controlada por modelos se define en Common Data Service.
Puede definir los datos de la aplicación mediante los siguientes componentes: entidad, campo y relación.
Para obtener más información acerca de cómo trabajar con estos componentes en Common Data Service para
definir datos para su aplicación controlada por modelos, consulte los temas siguientes en la sección de Common
Data Service:

COMPONENTE TEMA

Entidad Trabajar con entidades

Campo Trabajar con campos

Relaciones Trabajar con relaciones

Paso siguiente
Usar el diseñador de aplicaciones para crear una aplicación
Propiedades de campos comunes de aplicaciones
controladas por modelos
25/11/2019 • 5 minutes to read • Edit Online

Los campos de un formulario muestran controles que los usuarios utilizan para ver o modificar datos de un
registro de entidad. Los campos pueden formatearse para ocupar hasta cuatro columnas en una sección.
Puede acceder a Propiedades comunes de los campos en el explorador de soluciones. En Componentes,
expanda Entidades, expanda la entidad que desea y luego seleccione Formularios. En la lista de formularios,
abra el formulario de tipo Principal. A continuación, haga doble clic en uno de los campos para ver las
propiedades comunes de los campos.

En la siguiente tabla se describen las propiedades que tienen todos los campos. Determinados tipos de campos
tienen propiedades especiales. Se describen en Propiedades de campos especiales.

FICHA PROPIEDAD DESCRIPCIÓN

Presentación Etiqueta Requerido: de forma predeterminada,


la etiqueta se corresponderá con el
nombre para mostrar del campo. Puede
reemplazar ese nombre para el
formulario proporcionando otra
etiqueta aquí.
FICHA PROPIEDAD DESCRIPCIÓN

Mostrar etiqueta en el formulario También puede elegir no mostrar la


etiqueta.

Comportamiento del campo Especifique el comportamiento de nivel


de campo mediante las casillas.

Bloqueo Esto evitará que el campo se quite


accidentalmente del formulario. Esto
evitará que una configuración aplicada
al campo, como controladores de
eventos, se desactive si se quita el
campo. Para quitar este campo que un
personalizador necesitaría borrar este
valor primero.

Visibilidad Mostrar el campo es opcional y se


puede controlar mediante scripts. Más
información: Opciones de visibilidad

Disponibilidad Elija si desea que la pestaña esté


disponible en el teléfono.

Formato Seleccione el número de columnas Cuando la sección que contiene los


que ocupa el control campos tiene más de una columna
puede establecer el campo para ocupar
hasta el número de columnas que tiene
la sección.

Detalles Nombre para mostrar, Nombre y Estos campos de solo lectura son de
Descripción referencia. Haga clic en el botón Editar
para acceder cómodamente a la
definición del campo si desea editarla.

Cada instancia de un campo en el


formulario tiene una propiedad de
nombre para que se le pueda hacer
referencia en los scripts de formulario,
pero este nombre lo administra la
aplicación. La primera instancia del
campo es el nombre del campo
especificado cuando se creó. Más
información: Crear y editar campos

Cada nueva vez que un campo se


incluye en un formulario, se agrega al
nombre un número empezando por 1
al final. Si el nombre del campo es
"new_cost", la primera instancia es
"new_cost", la segunda es "new_cost1"
y así sucesivamente para cada instancia
del campo en el formulario.

Nota: El valor del campo Descripción


proporciona un texto de información
sobre el campo cuando los usuarios
colocan el cursor encima.
FICHA PROPIEDAD DESCRIPCIÓN

Eventos Bibliotecas de formularios Especifique cualquier recurso web de


JavaScript que se usará en el
controlador de eventos OnChange del
campo.

Controladores de eventos Configure las funciones de las


bibliotecas de formularios que deben
llamarse para el evento OnChange del
campo. Más información: Configurar
controladores de eventos

Reglas de negocio Reglas de negocio Visualice y administre las reglas de


negocio que hacen referencia a este
campo. Más información: Crear reglas
de negocio y recomendaciones

Controles Controles Agregue controles y especifique su


disponibilidad en web, teléfono y
tableta.

Pasos siguientes
Utilizar el formulario Principal y sus componentes
Información general sobre propiedades de campos
especiales de aplicaciones controladas por modelos
25/11/2019 • 6 minutes to read • Edit Online

Todos los campos tienen las propiedades enumeradas en Propiedades comunes de los campos, pero
determinados campos tienen propiedades adicionales, como este campo de derecho que se puede abrir desde el
formulario principal de la entidad de caso.

Propiedades de los campos de búsqueda


NOTE
Las opciones descritas en la tabla de abajo solo están disponible para los campos de búsqueda de una sola entidad.

SECCIÓN PROPIEDAD DESCRIPCIÓN

Filtrado de registros relacionados Mostrar solo los registros donde Si esta característica está habilitada, los
registros que se muestran cuando los
usuarios buscan un registro tendrán
SECCIÓN PROPIEDAD DESCRIPCIÓN
filtros adicionales aplicados. Esto ayuda
a realizar búsquedas más relevantes al
establecer el valor de búsqueda.

De forma predeterminada, está


desactivada.

En la tabla siguiente a esta se indican


las combinaciones de relaciones
posibles para filtrar registros
relacionados.*

La primera lista se llena con todas las


relaciones posibles que se pueden usar
para filtrar esta búsqueda. Seleccione
uno.

A continuación, se llena la segunda lista


con todas las relaciones que conectan la
entidad relacionada (seleccionada en la
primera lista) con la entidad de destino.
Seleccione uno.

Active la casilla de verificación Permitir


a los usuarios desactivar el filtro que
permite a los usuarios desactivar el
filtro que defina aquí.

Cuando los usuarios seleccionan la


opción Buscar más registros mientras
establecen el valor para una búsqueda,
ven este cuadro de diálogo.

Si ha seleccionado la opción Permitir a


los usuarios desactivar el filtro
mientras configura el campo de
búsqueda, los usuarios verán la casilla
para desactivar el filtro. De esta manera,
pueden ver un intervalo mayor de
registros. Si desea asegurarse de que
los usuarios vean únicamente un
intervalo limitado de registros definidos
por este filtro, desactive la casilla
Permitir a los usuarios desactivar el
filtro.
SECCIÓN PROPIEDAD DESCRIPCIÓN

Propiedades adicionales Mostrar el cuadro de búsqueda en Puede elegir que no se muestre el


el diálogo de búsqueda cuadro de búsqueda en el cuadro de
diálogo de búsqueda.

Vista predeterminada Esta vista se usa para filtrar los


resultados de la búsqueda en línea y
establecer la vista predeterminada que
se muestra en el cuadro de diálogo de
búsqueda cuando los usuarios
seleccionan la opción Buscar más
registros.

La vista predeterminada también


controla los campos que se incluyen en
búsqueda en línea.

Para búsquedas que solo permiten la


selección de un tipo único de entidad,
los campos mostrados en la búsqueda
en línea están configurados para ser los
primeros dos campos incluidos en la
vista predeterminada. En este ejemplo,
Número de centralita y Correo
electrónico son las primeras dos
columnas de la vista predeterminada
configurada para una búsqueda de
cuenta.

Para búsquedas del sistema que


permiten varios tipos de entidades, se
muestran las primeras dos columnas de
la vista de búsqueda de entidad.

Selector de vista Puede elegir entre tres opciones:

- Desactivado: no permite que los


usuarios seleccionen una vista diferente.
- Mostrar todas las vistas: están
disponibles todas las vistas.
- Mostrar las vistas seleccionadas: al
elegir esta opción, puede usar la tecla
Ctrl y el cursor para elegir las vistas que
deben mostrarse. La vista de búsqueda
de la entidad no se puede deseleccionar.

*Combinaciones de relaciones posibles

RELACIÓN DE LA PRIMERA LISTA RELACIÓN DE LA SEGUNDA LISTA ¿ESTÁ DISPONIBLE?

N:1 1:N Sí

N:1 N:1 Sí

N:1 N:N Sí

1:N 1:N Sí
RELACIÓN DE LA PRIMERA LISTA RELACIÓN DE LA SEGUNDA LISTA ¿ESTÁ DISPONIBLE?

1:N N:1 No

1:N N:N No

N:N 1:N Sí

N:N N:1 No

N:N N:N No

Propiedades de los campos de dos opciones


En la pestaña de formato, los campos de dos opciones tienen las siguientes opciones de formato:
Dos botones de opción: dos controles etiquetados con las etiquetas. Solo se puede seleccionar uno.
Casilla de verificación: una sola casilla de verificación para establecer el valor true o, de lo contrario, false.
Lista: una lista desplegable que incluye ambos valores.
Propiedades de los campos de varias líneas de texto
Los campos de varias líneas de texto y de una sola de línea de texto que usan el formato Text Area tienen una
propiedad Diseño de filas . Con esta propiedad puede especificar un valor de Número de filas o seleccionar
Expandir automáticamente para usar el espacio disponible.

Pasos siguientes
Utilizar el formulario Principal y sus componentes
Traducir texto localizable para aplicaciones
controladas por modelos
25/11/2019 • 9 minutes to read • Edit Online

Si ha personalizado texto de entidad o campo, como etiquetas de campos o valores de lista desplegable, puede
ofrecer a los usuarios de su entorno que no trabajan con la versión del idioma base del entorno texto
personalizado en sus idiomas preferidos.
El proceso consta de los siguientes pasos:
1. Habilitar otros idiomas para el entorno
2. Exportar el texto localizable
3. Obtener el texto localizable traducido
4. Importar el texto localizado

Habilitar otros idiomas para el entorno


Si todavía no ha habilitado los idiomas para el entorno, siga los pasos descritos en Habilitar el idioma para
habilitarlos.

IMPORTANT
Habilitar cada idioma puede llevar varios minutos. Durante este tiempo, puede que otros usuarios del entorno no puedan
usar la aplicación. Debe habilitar los idiomas en el momento en que menos molestias ocasione a los usuarios.

TIP
Mientras habilita los idiomas, anote los valores de LCID usados para cada idioma. Este valor representará el idioma en los
datos exportados del texto localizable. Los códigos de idioma son identificadores de configuración regional de cuatro o cinco
dígitos. Los valores de identificadores de configuración regional válidos pueden encontrarse en el gráfico de identificadores de
configuración regional (LCID).

Exportar el texto localizable


El ámbito del texto localizable que se exportará es la solución no administrada que contiene el texto localizable.
Esto solo se puede hacer usando el explorador de soluciones
Ir a una solución no administrada
1. En el portal de PowerApps, seleccione Soluciones y, a continuación, en la barra de herramientas, seleccione
Cambiar a clásico.
2. En la lista Todas las soluciones seleccione la solución no administrada que desee.
Abra la solución no administrada que contiene el texto localizable y en la barra de menús seleccione Traducciones
> Exportar traducciones.
Debería ver una alerta que indica:

La exportación de etiquetas personalizadas para la traducción puede tardar varios minutos. No haga clic en el
vínculo de exportación de nuevo hasta que la primera exportación haya finalizado. ¿Está seguro de que desea
exportar ahora?

Si desea continuar, haga clic en Aceptar.


Cuando finalice la exportación, puede encontrar un archivo con un nombre parecido a
CrmTranslations_{0}_{1}.zip en la carpeta de descargas donde {0} es el nombre único de la solución y {1} es el
número de versión de la solución.

Obtener el texto localizable traducido


Puede enviar este archivo a un lingüista experto, a una agencia de traducción o a una empresa de localización.
Si sabe traducir el texto o si sólo desea ver el formato, puede extraer el archivo zip que exportó y verá que contiene
dos archivos XML.
[Content_Types].xml
CrmTranslations.xml

Puede abrir el archivo CrmTranslations.xml con. Microsoft Office Excel.

TIP
A menos que normalmente abra archivos XML con Excel, puede que sea más fácil abrir Excel y, después, abrir el archivo
pegando la ruta de acceso al archivo CrmTranslations.xml extraído.

IMPORTANT
Asegúrese de no cambiar el formato del archivo. Si guarda el archivo en otro formato, no podrá volver a importarlo.

Cuando visualice los datos en Excel, consulte la pestaña Etiquetas localizadas.


Cualquier entidad o campo personalizado tendrá celdas vacías para el texto localizable. Agregue los valores
localizados para esos elementos.

NOTE
Si ha cambiado el nombre para mostrar o la descripción de cualquier entidad estándar o campo de la entidad, las cadenas
localizadas seguirán reflejando las traducciones del valor original. Estas deberían localizarse para reflejar el nuevo valor.

La pestaña Cadenas para mostrar contiene el texto que se muestra para otros elementos de la IU, como
comandos de la cinta de opciones, mensajes de error y etiquetas del formulario.
Actualizar el texto localizable en el idioma base
Si cambia el nombre para mostrar para cualquier entidad o campo de la entidad que está incluido en algún
mensaje especial, puede actualizar la información en la pestaña Cadenas para mostrar para usar el nombre
personalizado.

TIP
Aunque la IU expuesta para editar mensajes de entidad del sistema incluye muchas referencias a los nombres de entidad, no
los incluye todos. Mediante esta técnica puede encontrar más. Más información: Editar mensajes de entidad del sistema

Por ejemplo, si cambia el nombre para mostrar de la entidad Cuenta a Compañía, busque en la columna de idioma
base en Cadenas para mostrar las coincidencias siguientes: account , accounts , Account y Accounts y, a
continuación realice las sustituciones correspondientes en company , companies , Company y Companies ,
respectivamente.

IMPORTANT
No haga una búsqueda/sustitución general en el archivo para ello. Debe prestar atención para que el texto coincidente haga
referencia a los nombres que ha cambiado.

Importar el texto localizado


Para importar el texto es necesario comprimir los archivos e importarlos al sistema.
Comprimir los archivos
Una vez realizados los cambios en el archivo CrmTranslations.xml , debe comprimir el archivo junto el archivo
[Content_Types].xml en formato zip. Simplemente seleccione ambos archivos y haga clic con el botón secundario
para abrir el menú contextual. En el menú contextual, elija Enviar a > Carpeta comprimida (en zip).
Importar los archivos
Desde la misma solución no administrada desde la que exportó las traducciones, en el menú elija Traducciones >
Importar traducciones.

Seleccione el archivo que contiene el texto traducido comprimido y, a continuación, seleccione Importar.
Una vez importado el texto traducido, debe publicar todas las personalizaciones para ver los cambios en sus
aplicaciones;

Herramientas de la Comunidad
Easy Translator es una herramienta desarrollada por la comunidad de XrmToolbox. Use Easy Translator para
exportar e importar traducciones con información contextual.

NOTE
Las herramientas de la comunidad no se admiten en Microsoft. Si tiene alguna duda relacionada con la herramienta, póngase
en contacto con el editor. Más información: XrmToolBox.

Pasos siguientes
Opciones regionales y de idioma para la organización
Editar mensajes de entidades del sistema
Diseñar aplicaciones controladas por modelos
usando el diseñador de aplicaciones
25/11/2019 • 3 minutes to read • Edit Online

Con PowerApps, las aplicaciones controladas por modelos están formadas por componentes como entidades,
paneles, formularios, vistas, gráficos y procesos de negocio.
El diseñador de la aplicación ayuda a reunir todos estos componentes rápidamente. Su estructura de información
basada en ventanas y la interfaz simplificada hacen que el proceso de generar una aplicación sea mucho más fácil,
y puede crear aplicaciones que son específicas de las funciones y los roles de negocio sin necesidad de escribir
código.
Cada aplicación que cree puede tener su propio mapa del sitio con el diseñador de mapas del sitio integrado y
fácil de usar. Solo tiene que arrastrar y colocar áreas, grupos, y subáreas al lienzo. Los componentes que
seleccione en el mapa del sitio también se agregan como entidades en el diseñador de la aplicación.
Puede agregar o quitar entidades que necesite, así como agregar otros componentes.
Una vez que ha terminado de agregar componentes, puede validar la aplicación para comprobar si le falta
agregar componentes necesarios, agregarlos y, a continuación publicar la aplicación para los usuarios.
La siguiente tabla muestra los pasos que dará para crear una aplicación.

PASO DESCRIPCIÓN TEMAS RELACIONADOS

Defina propiedades de la aplicación. Creación o edición de aplicaciones

Defina la navegación para una Crear un mapa del sitio para una
aplicación mediante el diseñador del aplicación
mapa del sitio.

Las aplicaciones están formadas por Agregar o editar componentes de la


componentes como paneles, entidades, aplicación
flujos de proceso de negocio,
formularios, vistas y gráficos. Incluya
los necesarios en la aplicación mediante
el diseñador de la aplicación.

Compruebe en su aplicación los Validar y publicar una aplicación


componentes necesarios que no ha
agregado. Después de agregar todos
los componentes necesarios, haga que
la aplicación esté disponible para su
uso.

Otorgue a los usuarios acceso a las Compartir una aplicación controlada


aplicaciones creadas mediante roles de por modelos
seguridad.

Matriz de compatibilidad para el diseñador de la aplicación y el


diseñador del mapa del sitio
La siguiente tabla muestra los sistemas operativos y los exploradores admitidos.

EXPLORADOR/SO WINDOWS 10 WINDOWS 8.1 WINDOWS 8 MAC OS X

Microsoft Edge Sí

Internet Explorer 11 Sí Sí

Internet Explorer 11 Sí
Modern

Internet Explorer 10 Sí

Internet Explorer 10 Sí
Modern

Mozilla Firefox Sí Sí Sí

Google Chrome Sí Sí Sí

Apple Safari Sí

Pasos siguientes
Crear la primera aplicación controlada por modelos desde cero
Crear o editar una aplicación controlada por
modelos utilizando el diseñador de aplicaciones
25/11/2019 • 6 minutes to read • Edit Online

En este tema aprenderá los aspectos básicos de cómo crear y editar una aplicación controlada por modelos
usando el diseñador de aplicaciones basado en mosaicos.

Requisitos previos
Compruebe los requisitos siguientes antes de empezar a crear una aplicación:
Un entorno de PowerApps. Más información: Crear un entorno
Rol de seguridad de administrador del sistema o de personalizador del sistema. Más información: Acerca de los
roles de seguridad predefinidos

Crear una aplicación


1. En la página Inicio de PowerApps, seleccione la opción Empezar en blanco una aplicación basada en
modelos para una aplicación basada en modelos.

IMPORTANT
“Si el modo de diseño Controlado por modelos no está disponible, puede que tenga que Crear un entorno.

2. En la página Crear una nueva aplicación, especifique los siguientes detalles:


Nombre: introduzca un nombre para la aplicación.
Nombre único: El nombre único se completa automáticamente en función del nombre de la
aplicación que especifique. Se prefija con un prefijo del editor. Puede cambiar la parte del nombre
único que editable. El nombre único sólo puede contener caracteres del idioma inglés y números.

NOTE
El prefijo del editor es el texto que se agrega a cualquier entidad o campo creado para una solución que tiene
este editor.

Descripción: Escriba una breve descripción de qué es o hace la aplicación.


Icono: De forma predeterminada, la casilla en miniatura Usar aplicación predeterminada está
activada. Para seleccionar otro recurso web como icono para la aplicación, desactive la casilla y
seleccione un icono de la lista desplegable. Este icono se mostrará en la ventana de vista previa de la
aplicación.
Usar la solución existente para crear la aplicación: Seleccione esta opción para crear la
aplicación desde una lista de soluciones instaladas. Si selecciona esta opción, Listo cambia a
Siguiente en el encabezado. Si selecciona Siguiente, la página Crear aplicaciones desde una
solución existente se abre. En la lista desplegable Seleccione solución, seleccione una solución
desde donde desea crear la aplicación. Si está disponible algún mapa del sitio para la solución
seleccionada, la lista desplegable Seleccione mapa de sitio aparecerá. Seleccione mapa del sitio y,
a continuación, seleccione Listo.

NOTE
Al seleccionar Solución predeterminada cuando se agrega un mapa del sitio, los componentes que están
asociados con ese mapa del sitio se agregan automáticamente a la aplicación.

Elija una página de bienvenida: Esta opción permite elegir entre los recursos web disponibles en
su organización. Las páginas de bienvenida que cree pueden contener información útil para los
usuarios, como vínculos a vídeos, instrucciones de actualización o información de introducción. La
página de bienvenida aparece cuando se abre una aplicación. Los usuarios pueden seleccionar No
mostrar esta pantalla de bienvenida la próxima vez en la página de inicio de sesión para
deshabilitar la página para que no aparezca la próxima vez que se inicie la aplicación. Tenga en
cuenta que la opción No mostrar esta pantalla de bienvenida la próxima vez es una
configuración de usuario y no se puede controlar por los administradores o proveedores de la
aplicación. Para obtener más información acerca de cómo crear un recurso web, por ejemplo, un
archivo HTML que pueda usar como página de bienvenida, consulte: Crear y editar recursos web
para extender la aplicación web.
Para editar propiedades de la aplicación más adelante, vaya a la pestaña Propiedades en el diseñador de
aplicaciones. Más información: Administrar propiedades de aplicaciones

NOTE
No puede cambiar el nombre único y el sufijo de la dirección URL de la aplicación en la pestaña Propiedades.

3. Seleccione Listo o—si seleccionó Usar una solución existente para crear la aplicación—seleccione
Siguiente para elegir entre las soluciones disponibles que se importaron en la organización.
Una nueva aplicación se crea y se muestra en estado de borrador. Verá el lienzo del diseñador de
aplicaciones para la nueva aplicación. Desde ahí puede agregar componentes, como entidades, vistas y
paneles para que su aplicación resulte útil. Más información: Agregar o editar componentes de la aplicación

Editar una aplicación


1. Inicie sesión en PowerApps.

IMPORTANT
“Si el modo de diseño Controlado por modelos no está disponible, puede que tenga que Crear un entorno.

2. En el panel de navegación de la izquierda seleccione Aplicaciones, seleccione una aplicación basada en


modelos y, en la barra de herramientas, seleccione Editar.
3. En el diseñador de aplicaciones, agregue o edite componentes de la aplicación, según sea necesario. Más
información: Agregar o editar componentes de la aplicación
Pasos siguientes
Agregar o editar componentes de la aplicación
Tutorial: Crear un mapa del sitio para una aplicación
controlada por modelos usando el diseñador de
mapas del sitio
25/11/2019 • 20 minutes to read • Edit Online

En este tutorial realizará varias tareas del mapa del sitio, como crear un nuevo mapa del sitio y agregar un área, un
grupo y una subárea.
Los mapas del sitio definen la navegación para su aplicación. Cree un mapa del sitio para su aplicación con
facilidad usando el diseñador de mapas del sitio basado en ventanas. Use el diseñador para arrastrar componentes
al lienzo de diseño, realizar una vista previa del trabajo y publicar inmediatamente el mapa del sitio. Los
personalizadores del sistema o cualquier usuario con los privilegios necesarios pueden crear rápidamente mapas
del sitio para aplicaciones.
El diseñador de mapas del sitio además le permite definir los títulos de áreas, subáreas o grupos en los idiomas
admitidos por el entorno.
Un mapa del sitio predeterminado está disponible. Puede editar este mapa del sitio o configurar mapas del sitio
para nuevas aplicaciones mediante el diseñador de mapas del sitio. El diseñador de mapas del sitio está integrado
con el diseñador de aplicaciones.

Requisitos previos
Compruebe que tiene el rol de seguridad de Administrador del sistema o de Personalizador del sistema o
permisos equivalentes. Concretamente, cualquier usuario con los siguientes privilegios también puede crear
aplicaciones:
Privilegios de Crear, Leer y Escribir para la entidad Aplicación
Privilegios de Leer y Escribir para la entidad Personalizaciones
Privilegios de Leer para la entidad Solución
Puede ver o establecer estos privilegios en la pestaña Personalización de un rol de seguridad.

Cree un mapa del sitio para una aplicación


1. En el lienzo del diseñador de aplicaciones, en el área Mapa del sitio, seleccione el botón Abrir el
diseñador del mapa del sitio .
El diseñador del mapa del sitio abre un lienzo relleno previamente con un área, un grupo y un subárea.
Seleccione la ventana de área, grupo, o subárea para modificar sus propiedades.

NOTE
Al seleccionar Abrir el diseñador del mapa del sitio desde el lienzo del diseñador de aplicaciones, se crea
automáticamente un nuevo mapa del sitio (si no hay un mapa del sitio existente) y da al mapa del sitio el mismo
nombre que el nombre de la aplicación y el mismo nombre único que el nombre único de la aplicación.
2. Agregar un área al mapa del sitio.
3. Agregar un grupo al mapa del sitio.
4. Agregar un subárea a un grupo en el mapa del sitio.
5. Seleccione Guardar.

NOTE
El nuevo mapa del sitio se asocia con la aplicación al volver al diseñador de la aplicación y hacer clic en seleccionar
Guardar. Cuando se configura un mapa del sitio, configurado aparece en la ventana del mapa del sitio; de lo
contrario no se ha configurado aparece en la ventana. Si abre el diseñador del mapa del sitio desde el diseñador de
la aplicación y configura un nuevo mapa del sitio, pero cierra el explorador antes de asociar el mapa del sitio a la
aplicación, el mapa del sitio se asociará automáticamente con la aplicación la próxima vez que abra el diseñador de la
aplicación, en función del nombre único de la aplicación.

6. Seleccione Publish.

Edición del mapa del sitio predeterminado


El entorno incluye un mapa del sitio predeterminado.
1. Abra el explorador de soluciones.
2. En la ventana solución, en la lista Componentes seleccione Extensiones de cliente.
3. En la barra de herramientas del componente, seleccione Agregar existente > Mapa del sitio.
4. En la lista de componentes de la solución, seleccione el mapa del sitio llamado Mapa del sitio y, a
continuación, seleccione Aceptar.
5. Haga doble clic para seleccionar el mapa del sitio que agregó que tiene el nombre para mostrar Mapa del
sitio y está en estado Administrado. También puede seleccionar el mapa del sitio y, en la barra de
herramientas, seleccone Editar.
El mapa del sitio se abre en el diseñador del mapa del sitio.
6. Agregar un área al mapa del sitio.
7. Agregar un grupo al mapa del sitio.
8. Agregar un subárea a un grupo en el mapa del sitio.
9. Seleccione Guardar.
10. Seleccione Publish.
Agregar un área al mapa del sitio
1. Seleccione Agregar en el lienzo del diseñador del mapa del sitio y, a continuación, seleccione Área.
o
En la pestaña Componentes, arrastre la ventana Área para vaciar el cuadro en el lienzo. Verá el cuadro
vacío cuando mueva la ventana a la ubicación correcta en el lienzo.
2. Seleccione el área que acaba de agregar. Verá la pestaña Propiedades resaltada en el panel derecho del
lienzo.
3. Agregue o edite las propiedades del área.
En General, haga lo siguiente:
Ventana: Escriba el título del área en el idioma base de la organización.
Icono: Está seleccionado un icono de aplicación predeterminado. Seleccione otro icono para el área
de la lista de recursos web disponibles en la solución.
Identificador: Se genera un identificador único automáticamente, pero puede introducir otro
diferente si lo desea. Se recomienda usar el identificador proporcionado porque, si el identificador
que especifica no es único, los usuarios podrían recibir un error cuando utilicen la aplicación o usted
podría recibir un error al importar una solución que contenga este mapa del sitio.
Mostrar grupos: Seleccione esta casilla para mostrar grupos de subáreas en el panel de navegación.
En Avanzado, haga lo siguiente:
Más ventanas: Si su organización usa varios idiomas, seleccione un idioma (configuración regional)
para el título, escriba el título y, a continuación, seleccione el botón Agregar . Puede crear, editar o
eliminar títulos para tantos idiomas como use la organización. Sin embargo, puede tener solo un
título por idioma.
Más descripción: Si su organización usa varios idiomas, seleccione un idioma para la descripción,
escriba la descripción y, a continuación, seleccione el botón Agregar . Puede crear, editar o
eliminar descripciones para tantos idiomas como use la organización. Sin embargo, puede tener solo
una descripción por idioma.
Dirección URL: Escriba la dirección URL para representar para la carpeta Dynamics 365 for
Outlook que representa el área.

Agregar un grupo al mapa del sitio


1. En el lienzo del diseñador del mapa del sitio, seleccione el área a la que desea agregar el grupo.

2. Seleccione Agregar y, a continuación, seleccione Grupo.


o
En la pestaña Componentes, arrastre la ventana Grupo a un cuadro vacío del Area en el lienzo. Verá el
cuadro vacío cuando mueva la ventana a la ubicación correcta en el lienzo.
3. Seleccione el grupo que acaba de agregar.
4. En la pestaña Propiedades, agregue o edite las propiedades del grupo:
En General, haga lo siguiente:
Ventana: Escriba el título del grupo en el idioma base de la organización.
Identificador: Se genera automáticamente un identificador único. Escriba otro diferente si es
necesario. Se recomienda usar el identificador automático porque si el identificador que especifica no
es único, podría recibir un error cuando importa una solución que contenga este mapa del sitio.
En Avanzado, haga lo siguiente:
Más ventanas: Si su organización usa varios idiomas, seleccione un idioma (configuración regional)
para el título, escriba el título para el grupo y, a continuación, seleccione el botón Agregar . Puede
crear, editar o eliminar títulos para tantos idiomas como use la organización. Sin embargo, puede
tener solo un título por idioma.
Más descripciones: Si su organización usa varios idiomas, seleccione un idioma para la descripción,
escriba la descripción para el grupo y, a continuación, seleccione el botón Agregar . Puede crear,
editar o eliminar descripciones para tantos idiomas como use la organización. Sin embargo, puede
tener solo una descripción por idioma.
Dirección URL: Escriba la dirección URL para la carpeta Dynamics 365 for Outlook que representa
el grupo.
Establezca como perfil: Seleccione esta casilla para indicar si este grupo representa un perfil de
usuario seleccionable para el área de trabajo. El grupo establecido como perfil seleccionable por el
usuario para a estar disponible como opciones en sus opciones personales. Esto solo se aplica a
grupos dentro del área de Area de trabajo.

Agregar una subárea a un grupo en el mapa del sitio


1. Seleccione Agregar en el lienzo del diseñador del mapa del sitio y, a continuación, seleccione Subárea.
o
En la pestaña Componentes, arrastre la ventana Subárea a un cuadro vacío de la sección Grupo en el
lienzo. Verá el cuadro vacío cuando mueva la ventana a la ubicación correcta en el lienzo.
2. Seleccione el subárea que acaba de agregar.
3. En la pestaña Propiedades, agregue o edite las propiedades de la subárea:
En General, haga lo siguiente:
Tipo: Seleccione si el subárea que agrega es un panel, una entidad, un recurso web, o una dirección
URL.
Entidad: Seleccione la entidad a la que pertenece el subárea. Este campo se deshabilita si el tipo de
subárea es distinto de Entidad en la lista desplegable Tipo.
Dirección URL Especifique una dirección URL para la página principal de la aplicación para mostrar
cuando se seleccione este subárea. Este campo se deshabilita si se ha seleccionado Entidad en la
lista desplegable Tipo.
Panel predeterminado: Seleccione el panel predeterminado para mostrar para este subárea. Este
campo se deshabilita si aún no ha seleccionado Panel en la lista desplegable Tipo.
Ventana: Escriba el título del subárea en el idioma base de la organización.
Icono: Está seleccionado un icono de aplicación predeterminado. Seleccione otro icono para la
subárea de la lista de recursos web disponibles en la solución.
ID. Se genera automáticamente un identificador único. Escriba otro Id. único si es necesario.
Paso de parámetros. Seleccione esta casilla para pasar información acerca del contexto de la
organización y de idioma a la dirección URL. Esta casilla solo está marcada cuando el tipo de subárea
es un recurso web o un subárea basada en dirección URL.
En Avanzado, haga lo siguiente:
Privilegios: Esto define si un subárea se muestra en función de los privilegios disponibles en
cualquier rol de seguridad que se asigne al usuario. Seleccione el nombre de la entidad para
comprobar los privilegios y, a continuación, seleccione las casillas para asignar privilegios.
Más ventanas: Si su organización usa varios idiomas, seleccione un idioma para el título, escriba el
título del subárea y, a continuación, seleccione el botón Agregar. Puede crear, editar o eliminar títulos
para tantos idiomas como use la organización. Sin embargo, puede tener solo un título por idioma.
Más descripciones: Si su organización usa varios idiomas, seleccione un idioma para la descripción,
escriba la descripción del subárea y, a continuación, seleccione el botón Agregar. Puede crear, editar
o eliminar descripciones para tantos idiomas como use la organización. Sin embargo, puede tener
solo una descripción por idioma.
SKU: Seleccione las versiones de Dynamics 365 que muestra este subárea.
Cliente: Seleccione el tipo de cliente que muestra este subárea.
Acceso directo a Outlook: Seleccione el icono para mostrar en Dynamics 365 for Outlook.
Disponibilidad sin conexión: Seleccione esta casilla para hacer que este subárea esté disponible
para los usuarios cuando estén sin conexión en Dynamics 365 for Outlook.

Organizar áreas, grupos, y subáreas


Puede organizar sus áreas, grupos y subáreas, arrastrándolos a nuevas posiciones. Un cuadro contenedor aparece
donde puede colocar las ventanas. Estas son algunas cosas que puede hacer:
Mover una subárea a una nueva posición en el mismo grupo o a otro grupo en la misma área.
Mover una subárea a una nueva posición en un grupo bajo un área diferente.
Mover un grupo a una nueva posición dentro de la misma área.
Mover un grupo a una nueva posición en otra área.
Mover un área una nueva posición.

Clonar un componente en un mapa del sitio


Para realizar una copia de un componente existente, seleccione el componente, en la barra de herramientas,
selecione Clonar. Todos los detalles del componente clonado son iguales a los del componente base excepto el
identificador y el título. El identificador se genera aleatoriamente.
Al clonar un área, el área clonada se agrega a la derecha del área seleccionada actualmente. Al clonar un grupo, el
grupo clonado se agrega a la derecha del grupo seleccionado actualmente. Al clonar una subárea, la subárea
clonada se agrega bajo la subárea seleccionada actualmente.

Eliminar un área, un grupo, o una subárea de un mapa del sitio


Para eliminar un componente del mapa del sitio, seleccione la ventana del componente y en la barra de
herramientas, seleccione Eliminar. Cuando se elimina un área, también se eliminan todos los grupos y las
subáreas del área. De forma similar, cuando se elimina un grupo, se eliminan el grupo y las subáreas que contiene.

Clientes compatibles
En la tabla siguiente se explican los clientes compatibles para diferentes mapas del sitio.

MAPAS DE SITIOS CLIENTES COMPATIBLES

Nuevas aplicaciones Interfaz unificada

Mapa del sitio para la aplicación personalizada de Dynamics Aplicación web heredada y Dynamics 365 for Outlook
365

Aplicaciones basada en modelos (Sales, Centro de ventas, Aplicaciones web heredadas e interfaz unificada
Customer Service, Centro de servicio al cliente, Field Service,
Project Service Automation)

Pasos siguientes
Creación o edición de aplicaciones
Agregar o editar componentes de la aplicación
Tutorial: Agregar o editar componentes de
aplicación controlada por modelos en el diseñador
de aplicaciones de PowerApps
25/11/2019 • 16 minutes to read • Edit Online

En este tutorial aprenderá a agregar y quitar componentes de una aplicación controlada por modelos.
Una aplicación controlada por modelos se compone de distintos componentes. Puede añadir dos tipos de
componentes a una aplicación: artefactos y activos de la entidad. En el contexto del diseñador de la aplicación, las
entidades, panel, y los flujos de proceso de negocio son artefactos de una aplicación. Los activos de entidad
constan de formularios, vistas, gráficos y paneles.
El diseñador de la aplicación hace referencia a metadatos existentes en la solución predeterminada. Puede usarlo
para crear componentes como formularios, vistas, gráficos y paneles.

Diseño del Diseñador de la aplicación


El diseñador de la aplicación tiene dos áreas principales. En la parte izquierda está el lienzo donde se agregan
componentes de la aplicación.

En el lado derecho están las pestañas que usará para seleccionar componentes y establecer propiedades de
componentes.
En el lienzo, verá las áreas para el mapa del sitio, flujo de proceso de negocio, panel y entidades. Cuando
selecciona un panel o un flujo de proceso de negocio o configura un mapa del sitio, el diseñador de la aplicación
agrega automáticamente las entidades que se usan en estos componentes al lienzo. Después de que las
entidades estén en su lugar, todo lo que necesita hacer es seleccionar cada entidad y agregar los activos de
entidad necesarios, tales como formularios, vistas y gráficos.
También puede usar Buscar en el lienzo para buscar componentes en el lienzo. Si selecciona Buscar en el
lienzo, se abre una nueva pestaña de búsqueda a la derecha de las pestañas en el panel derecho.

Abra una aplicación


1. Inicie sesión en PowerApps.
2. Seleccione una aplicación basada en modelos ya existente o seleccione Empezar en blanco. Para obtener
información acerca de cómo crear una aplicación, consulte Creación o edición de una aplicación
controlada por modelos usando el diseñador de aplicaciones.

Agregar un artefacto (entidad, panel, o flujo de proceso de negocio)


Cuando se agrega un panel o un flujo de proceso de negocio a una aplicación, las entidades que usan se agregan
automáticamente a la aplicación. Cuando agrega una entidad, las ventanas de los activos se agregan
automáticamente. Hay dos formas de agregar artefactos al lienzo del diseñador: mediante el botón Agregar
en la barra de comandos o con las ventanas de la pestaña Componentes.
Estos son los pasos para agregar un panel a la aplicación. Use los mismos pasos para agregar un proceso de flujo
de negocio o una entidad.
1. En el lienzo del diseñador de la aplicación, selecciones la ventana Paneles.
En el lienzo del diseñador de la aplicación, el panel derecho muestra los paneles que se encuentran
disponibles en la solución predeterminada.
TIP
Como alternativa, puede realizar una de las acciones siguientes:

Seleccione Agregar y, a continuación, seleccione Paneles.


En la pestaña Componentes, en Artefactos, seleccione Paneles.

2. En el cuadro Buscar, escriba algunas palabras clave para el nombre del panel que busca.
La lista del panel se filtrará para que aparezcan los resultados que coincidan con las palabras claves.
3. Si desea que los usuarios sólo usen paneles seleccionados, active la casilla para los paneles que desee
agregar. Se puede elegir entre los siguientes tipos de paneles:
Paneles clásicos aparecen en la aplicación web y la aplicación Interfaz unificada.
Paneles interactivos solo aparecen en la aplicación Interfaz unificada. Si ha seleccionado el tipo de
cliente de la aplicación como aplicaciones web, la opción Paneles interactivos no se mostrará.
Esos paneles se agregarán a la ventana Panel en el lienzo del diseñador de la aplicación. La ventana Panel
también muestra el número de paneles agregados a la aplicación. Si no selecciona un panel, Todos
aparecerán en vez del recuento de paneles y estarán disponibles todos los paneles para los usuarios
cuando usen la aplicación.
Todas las entidades que utiliza el panel también se agregan al área Vista de la entidad. Por ejemplo, si
agrega el panel Administrador de servicio de atención al cliente, las entidades Caso, Derechos y Cola se
agregan al área Vista de entidad. Para cada entidad, también se agregan las ventanas de sus activos. Puede
usar estas ventanas para agregar formularios, vistas y gráficos. Más información:Agregar o editar
componentes en el diseñador de aplicaciones de PowerApps

4. Si el panel que desea no existe en la solución predeterminada, cree un panel seleccionando Crear nuevo
en la pestaña Componentes en el lado derecho del lienzo.

Se abrirá el diseñador de paneles. Más información: Crear y editar paneles


NOTE
Cuando se agrega un flujo de proceso de negocio o una entidad, la opción Crear nuevo abre el diseñador
correspondiente. Para obtener más información sobre cómo crear flujos de proceso de negocio o entidades,
consulte Crear un flujo de proceso de negocio y Crear una entidad personalizada.

5. Cuando haya terminado de agregar artefactos, en la barra de comandos, seleccione Guardar.

Agregar activos de la entidad (formularios, vistas, gráficos o paneles)


Con los artefactos en su lugar, ahora puede comenzar a agregar activos de la entidad como formularios, vistas,
gráficos y paneles a la aplicación. Además, si está usando al cliente interfaz unificada, también puede agregar
activos de panel de entidad a la aplicación.
En esta sección se describen los pasos para agregar un formulario a la aplicación. Use los mismos pasos para
agregar una vista o un gráfico a la aplicación.
1. En el lienzo del diseñador de la aplicación, seleccione la ventana Formularios de la entidad a la que desee
agregar un formulario.
En el lienzo del diseñador de la aplicación, la fila completa para la entidad está seleccionada. En el lado
derecho verá todos los formularios existentes para la entidad seleccionada.

NOTE
Como alternativa, puede realizar una de las acciones siguientes:

Seleccione Agregar y, a continuación, seleccione Formularios.


En la pestaña Componentes, en Activos de la entidad, seleccione Formularios.

TIP
Para todas las entidades seleccionadas para la aplicación, un botón Más opciones (...) aparece en la lista
Seleccionar entidades en la pestaña Componentes. Para agregar todos los activos para la entidad seleccionada,
seleccione Más opciones (...) y seleccione Agregar todos los activos.

2. Si desea que los usuarios de la aplicación sólo usen formularios seleccionados, active las casillas para los
formularios que desee agregar. Los formularios definen cómo los usuarios verán e interactuarán con los
datos en la aplicación.
La ventana del formulario de la entidad seleccionada mostrará el número de formularios agregados.

Por ejemplo, si no selecciona ningún formulario para una entidad, todos los formularios de la entidad se
mostrarán a los usuarios finales mientras utilizan la aplicación. Este comportamiento es similar para los
gráficos y vistas también, si no se selecciona ninguna vista o gráfico. Esto ayuda a crear aplicaciones
rápidamente cuando necesita trabajar con todos los componentes disponibles; no es necesario seleccionar
cada componente durante el diseño de la aplicación.
Si no se selecciona ningún panel o flujo de procesos de negocio, todos los paneles y los flujos de procesos
negocio estarán disponibles para los usuarios mientras utilizan la aplicación.
NOTE
Para que la aplicación se ejecute, cada entidad que agrega debe tener al menos un formulario activo. Si ha
seleccionado múltiples formularios, el primer formulario activo que aparece en la solución predeterminada se usará
cuando los usuarios ejecuten la aplicación.

3. Si desea agregar un nuevo formulario que no esté disponible en la lista, seleccione Crear nuevo.
En la lista desplegable, seleccione el tipo de formulario que desea crear.

NOTE
La lista desplegable solo está disponible cuando está agregando formularios. No está disponible para las vistas y
gráficos.

Se abre el diseñador de formularios. Más información: Crear y diseñar formularios


Cuando agrega una vista o un gráfico, la opción Crear nuevo abre el diseñador correspondiente. Más
información: Comprender las vistas y Creación o edición de un gráfico del sistema

NOTE
Cuando agrega una vista, puede hacer referencia solo a las vistas públicas que se muestran en el nodo Vistas en el
explorador de soluciones.

4. Seleccione la flecha abajo flecha abajo para expandir la ventana y ver una lista de formularios que se
han agregado.

5. Repita estos pasos para agregar vistas y los gráficos de la entidad a la aplicación.
6. Seleccione Guardar.

Editar o quitar artefactos


Para editar un panel o flujo de proceso de negocio, seleccione la flecha abajo para expandir la
ventana y, a continuación, elija el botón Diseñador del mapa de sitio correspondientes al panel o flujo
del proceso de negocio que desea editar.
El diseñador para el artefacto seleccionado se abre.

Para quitar un panel o flujo de proceso de negocio, seleccione la flecha abajo para expandir la
ventana y, después, seleccione el panel o el flujo de proceso de negocio que desea quitar. En la barra de
comandos, seleccione Quitar.
Otra forma de quitar un panel o flujo de proceso de negocio es desactivando la casilla correspondiente en
la pestaña componentes.
Para editar o quitar una entidad, seleccione la ventana de la entidad y, luego, en la barra de comandos,
seleccione Editar o Quitar. Cuando edita una entidad, el explorador de soluciones se abre, donde puede
realizar cambios a la entidad.
Como alternativa, para quitar un componente, seleccione el panel, el flujo de proceso de negocio o la
ventana de la entidad. En la pestaña Componentes, desactive las casillas de los artefactos que desea
quitar del diseñador.

NOTE
Cuando realice cambios a una entidad—como cambiar un nombre para mostrar o una descripción de la entidad—,
los cambios no aparecerán en el diseñador de la aplicación a menos que los cambios se publiquen en el explorador
de soluciones.

Editar o quitar activos de la entidad


Editar activos de la entidad
1. Seleccione la flecha abajo para expandir la ventana de formularios, vistas, gráficos o paneles.
2. Seleccione el formulario, vista, gráfico o panel que desea editar.
3. En la barra de comandos, seleccione Editar.
o

Seleccione el botón diseñador del mapa de sitio correspondiente en el formulario, la vista, el gráfico o
el panel.
Quitar activos de la entidad
1. Seleccione la flecha abajo para expandir la ventana de formularios, vistas, gráficos o paneles.
2. Seleccione el formulario, vista, gráfico o panel que desea editar.
3. En la barra de comandos, seleccione Quitar.
También puede seleccionar la ventana de los formularios, vistas, gráficos o paneles y, después, en la pestaña
componentes, desactivar las casillas de los activos que quiere quitar del diseñador.

Pasos siguientes
Crear un mapa del sitio para una aplicación

Validar y publicar una aplicación


Agregar la entidad de equipo como opción de
búsqueda en la aplicación
25/11/2019 • 2 minutes to read • Edit Online

Con aplicaciones de la interfaz unificada, para que la entidad de equipo esté disponible en una búsqueda se debe
agregar a la aplicación. Por ejemplo, los registros de contacto tienen la capacidad de asignarse a un usuario o
equipo.

Sin embargo, si la entidad de usuario se incluye en la aplicación pero no la entidad de equipo, solo los registros de
usuario aparecerán en una búsqueda.

Agregue la entidad de equipo a una aplicación


1. Abra la aplicación en el diseñador de aplicaciones.
2. Seleccione la pestaña Componentes, seleccione Entidades y, a continuación, Equipo.
3. Seleccione Guardar y luego seleccione Publicar para hacer que el cambio esté disponible para los usuarios
de la aplicación.
Crear y diseñar formularios de aplicaciones
controladas por modelos
25/11/2019 • 6 minutes to read • Edit Online

Con PowerApps, los formularios ofrecen la interfaz de usuario que emplean los usuarios para interactuar con
los datos que necesitan para realizar su trabajo. Es importante que los formularios que usan los usuarios estén
diseñados para permitirles buscar o especificar la información que necesitan de manera eficaz.
En la solución predeterminada o en una solución no administrada, se pueden crear nuevos formularios o
editar los formularios existentes de todas las entidades que admitan personalizaciones de formularios. En una
solución no administrada, se pueden editar las propiedades administradas para una entidad personalizada no
administrada creada para la solución. Si está viendo una solución administrada, aquí no se pueden crear
nuevos formularios ni editar los formularios existentes entre las entidades. Sin embargo, si las propiedades
administradas de una entidad de la solución administrada están establecidas para admitir personalizaciones,
se pueden agregar o editar formularios a esa entidad.

Tipos de formularios
Hay diferentes tipos de formularios y cada tipo tiene una funcionalidad o uso específico. Más información:
Tipo de formularios en PowerApps.

Actualización frente a entidades clásicas


PowerApps ofrece diversas opciones para diseñar formularios. Con interfaz unificada, la mayoría de las
entidades se actualizaron para adaptarse a la interfaz de dinámica. Las entidades actualizadas, igual que las
entidades personalizadas, incluyen soporte para el cliente, flujos de proceso de negocio y reglas de negocio de
Dynamics 365 for tablets. Al usar estas entidades, puede diseñar una vez e implementar en todos los clientes.
Todavía existen varias entidades, referidas aquí como entidades clásicas, que mantienen la apariencia y las
capacidades de las versiones anteriores. Estas entidades se utilizan menos a menudo. Aquí se enumeran:

Dirección Artículo Comentario de Operación de Conexión


artículo eliminación en masa

Descuento Lista de descuentos Ubicación de Datos adjuntos de Seguimiento


documentos correo electrónico

Objetivo Métrica del objetivo Importar archivo de Producto de la Producto del pedido
origen factura

Lista de precios Elemento de cola Producto de oferta Campo informe Consulta de


consolidación

Vista guardada Servicio Actividad de servicio Sitio de SharePoint Ubicación

Zona de ventas Unidad Unidad de venta

Preguntas frecuentes de visualización de formularios


¿Por qué no el formulario no es visible en el desplegable selector de formularios de mi aplicación?
Un formulario puede no estar disponible porque no se ha agregado a la aplicación.
1. Abra la aplicación en el diseñador de aplicaciones.
2. En la área Vista de la entidad seleccione Formularios junto a la entidad.
3. En la pestaña Componentes compruebe los formularios principales que están incluidos en la
aplicación. Compruebe que el formulario que desea mostrar esté comprobado. De lo contrario,
selecciónelo, guárdelo y, a continuación publique la aplicación.

¿Por qué mi formulario no se muestra como formulario predeterminado en la aplicación?


Un formulario se puede establecer como el formulario predeterminado a través de la configuración de orden
de los formularios o cuando un usuario establece el formulario predeterminado como valor de
personalización.
1. Abra el explorador de soluciones. Expanda la entidad que tiene que los formularios que desea ordenar
y, a continuación seleccione Formularios.
2. En la barra de herramientas seleccione Propiedades del formulario > Conjunto de formularios
principal.
3. Se muestra el orden de los formularios. Seleccione el formulario y utilice las flechas arriba y abajo para
mover el formulario dentro del orden de los formularios. El formulario en la parte superior de la lista es
el formulario predeterminado.

4. Seleccione Aceptar para guardar los cambios del orden de formularios.


5. En la barra de herramientas del diseñador de formularios, seleccione Publicar para hacer que el orden
de los formularios esté disponible en aplicaciones.
Valor de personalización del usuario del orden de formularios
Tenga en cuenta que, cuando un usuario de la aplicación cambia la selección de formularios en el desplegable
del selector de formularios, dicho formulario se vuelve el formulario predeterminado para el usuario. Esta
personalización invalida el formulario predeterminado especificado para la entidad en la aplicación.
Temas relacionados
Asignar un orden de formularios
Controlar el acceso a los formularios
Cómo se presentan los formularios principales en los distintos clientes
Información general del diseñador de formularios
controlado por modelos
25/11/2019 • 4 minutes to read • Edit Online

El nuevo diseñador de formularios controlados por modelos proporciona una moderna experiencia de creación
de WYSIWYG al trabajar con formularios controlados por modelos. Incluye varias mejoras que no están
disponibles en el diseñador de formularios basado en modelos clásico.
El diseñador muestra una vista previa de tiempo real de WYSIWYG (solo interfaz unificada) mientras crea un
formulario. Los cambios en el formulario se reflejan inmediatamente en la vista previa que le habilita para ver
exactamente cómo aparecerá el formulario para los usuarios cuando se publique. Un panel de propiedad siempre
disponible convierte la tarea común de actualizar propiedades en algo rápido y sencillo. Las actualizaciones de las
propiedades también se reflejan inmediatamente en la vista previa de formularios. El panel de campos con
funcionalidad de buscar y filtrar ayuda a los creadores a encontrar y agregar rápidamente campos al formulario.
El panel de componentes facilita detectar y usar componentes y proporciona una rica experiencia de usuario final.
La vista de árbol ayuda a visualizar la jerarquía de campos y componentes del formulario y a buscar y seleccionar
rápidamente un campo o un componente específico en el formulario.
La interfaz del diseñador de formularios tiene las siguientes áreas:
Barra de comandos – Muestra las acciones disponibles como guardar, publicar, deshacer, y rehacer.
Paneles – Muestra paneles con funciones específicas
Panel Campos para agregar campos a un formulario.
Panel Componentes para agregar componentes a un formulario.
Vista de árbol para ver la jerarquía de componentes en el formulario y seleccionarlos.
Vista previa de formularios – Muestra una vista previa en tiempo real del formulario tal como aparecerá para
los usuarios cuando se publique.
El panel de la propiedad – Muestra propiedades del elemento seleccionado y también permite realizar
cambios.
Interruptor de tamaño de vista previa - Cambia el tamaño de la vista previa de formularios ayudando a ver
cómo el formulario aparecerá en diferentes tamaños de pantalla.
Control deslizante de zoom - Acerca o aleja la vista previa de formularios ayudándole a ver más
detalladamente.
Ajuste al ancho - Acción rápida para ajustar la vista previa del formulario al ancho disponible.
Vea también
Crear, editar o configurar formularios usando el diseñador de formularios
Agregar, configurar, mover o eliminar campos de un formulario
Agregar, configurar, mover o eliminar componentes de un formulario
Agregar, configurar, mover o eliminar secciones de un formulario
Agregar, configurar, mover o eliminar pestañas de un formulario
Configurar propiedades de encabezado en el diseñador de formularios
Agregar y configurar un componente de subcuadrícula en un formulario
Agregar y configurar un componente de vista rápida en un formulario
Configurar un componente de búsqueda en un formulario
Use la vista de árbol del diseñador de formularios
Crear y editar campos
Crear, editar o configurar formularios usando el
diseñador de formularios
25/11/2019 • 5 minutes to read • Edit Online

Use el nuevo diseñador de formularios para crear, editar o configurar formularios para aplicaciones controladas
por formularios.

IMPORTANT
El nuevo diseñador de formularios controlado por modelos actualmente no permite editar los formularios de tarjeta. Más
información: Tipos de formularios

Crear un formulario
1. Inicie sesión en PowerApps.
2. En el panel de navegación izquierdo, expanda Datos, y seleccione Entidades.
3. Seleccione una endidad como la entidad de contable y luego seleccione la pestaña Formularios.
4. Seleccione Agregar formulario y, a continuación, seleccione una de las opciones siguientes
Formulario principal
El contenido del nuevo formulario se rellena mediante la definición de formulario principal existente.
Si existen varios formularios principales, el formulario superior de la lista del orden de formularios se
usa para completar el nuevo formulario.
Formulario de creación rápida
Formulario de vista rápida
5. Cuando termine de realizar cambios en el formulario, seleccione Guardar para guardar el formulario, o
seleccione Publicar si desea guardar y hacer que los cambios sean visibles para los usuarios de la aplicación.

Editar un formulario
1. Inicie sesión en PowerApps.
2. En el panel de navegación izquierdo, expanda Datos, y seleccione Entidades.
3. Seleccione una endidad como la entidad de contable y luego seleccione la pestaña Formularios.
4. Seleccione el nombre del formulario que desea editar.
También puede seleccionar la fila de un formulario y, en la barra de comandos, seleccionar Editar
formulario
Otra alternativa consiste en seleccionar ... junto al nombre del formulario y, en el menú, seleccionar
Editar formulario.
5. Cuando termine de realizar cambios en el formulario, seleccione Guardar para guardar el formulario, o
seleccione Publicar si desea guardar y hacer que los cambios sean visibles para los usuarios de la aplicación.

Configurar un formulario
Éstas son las propiedades disponibles para configurar un formulario cuando crea o edita un formulario usando
el diseñador de formularios.
NOMBRE DESCRIPCIÓN

Título Escriba un nombre que tenga significado para otros


creadores y usuarios de la aplicación. Este nombre se
muestra los usuarios de la aplicación. Si los usuarios tienen
acceso a varios formularios para una entidad, usarán este
nombre para diferenciar entre los formularios disponibles.

Se requiere esta propiedad.

Descripción Escriba una descripción que explique las diferencias del


formulario respecto de otros formularios principales. Esta
descripción se muestra solo a los creadores en la lista de
formularios de una entidad en el explorador de soluciones.

Ancho máx. Establezca el ancho máximo (en píxeles) para limitar el ancho
del formulario. El valor predeterminado es 1900.

Se requiere esta propiedad.

Mostrar imagen Mostrar la Imagen principal de la entidad si tiene una


establecida. Este valor permitirá mostrar el campo de imagen
en el encabezado del formulario.

Consulte Habilitar o deshabilitar opciones de entidad para


obtener más información acerca de las opciones de la
entidad.

Vea también
Información general del diseñador de formularios controlado por modelos
Agregar, configurar, mover o eliminar campos de un formulario
Agregar, configurar, mover o eliminar componentes de un formulario
Agregar, configurar, mover o eliminar secciones de un formulario
Agregar, configurar, mover o eliminar pestañas de un formulario
Configurar propiedades de encabezado en el diseñador de formularios
Agregar y configurar un componente de subcuadrícula en un formulario
Agregar y configurar un componente de vista rápida en un formulario
Configurar un componente de búsqueda en un formulario
Use la vista de árbol del diseñador de formularios
Crear y editar campos
Agregar, configurar, mover o eliminar campos de un
formulario
25/11/2019 • 16 minutes to read • Edit Online

Agregar, configurar, mover o eliminar campos usando el diseñador de formularios.

Agregar campos a un formulario


Para agregar campos a un formulario, use el panel Campos. El panel Campos le permite buscar y filtrar y le
ayuda a encontrar rápidamente campos. También incluye la opción de mostrar sólo los campos no usados.

Agregar campos a un formulario mediante arrastrar y colocar


NOTE
Cuando se agregan o mueven campos utilizando arrastrar y colocar tenga en cuenta que la vista previa de formularios es
dinámica y puede representar columnas de varias secciones como apiladas. Para asegurarse de que el campo que se agrega
o mueve está en la columna de la sección correcta, colóquelo o péguelo anclado a otro campo que ya esté en esa columna
de sección.

1. Abra el diseñador de formularios para crear o editar un formulario. Más información: Crear un formulario o
Editar un formulario
2. En la barra de comandos, seleccione Agregar campo, o en el panel izquierdo, seleccione Campos. El panel
Campos está abierto de forma predeterminada cuando se abre el diseñador de formularios.
3. En el panel Campos, busque, filtre o desplácese para encontrar el campo que desee agregar. Si no encuentra
un campo, puede que esté ya en el formulario. Desactive Mostrar solo los campos no usados para ver todos
los campos, incluidos los ya agregados al formulario.
4. En el panel Campos, seleccione un campo y arrástrelo sobre la vista previa de formulario. Cuando arrastra el
campo sobre la vista previa de formulario verá destinos de colocación en los que podrá agregar el campo.
5. Coloque el campo en la ubicación que desea. Tenga en cuenta lo siguiente:
Los campos se pueden colocar antes o después de cualquier componente o campo existente.
Los campos también se pueden colocar en el área vacía de una sección. En este caso, el campo se
agregará en un espacio disponible para distribuir uniformemente campos y componentes a través de
las columnas de sección.
Si mantiene el puntero sobre un encabezado de pestaña cuando arrastra un campo cambiará la pestaña
actualmente seleccionada, permitiendo que agregue el campo a una pestaña diferente.
6. Repita los pasos 3-5 anteriores si desea agregar más campos.
7. En la barra de comandos, seleccione Guardar para guardar el formulario o seleccione Publicar si desea
guardar y hacer que los cambios sean visibles para los usuarios.
Agregar campos a un formulario utilizando selección
1. Abra el diseñador de formularios para crear o editar un formulario. Más información: Crear un formulario o
Editar un formulario
2. En la vista previa de formulario, seleccione otro campo o sección existente. Tenga en cuenta lo siguiente:
Cuando selecciona un campo existente, el nuevo campo se agrega después del campo existente.
Cuando seleccione una sección, el nuevo campo se agrega en un espacio disponible para distribuir
uniformemente campos a través de las columnas de sección.
3. En la barra de comandos, seleccione Agregar campo, o en el panel izquierdo, seleccione Campos. El panel
Campos está abierto de forma predeterminada cuando se abre el diseñador de formularios.
4. En el panel Campos, busque, filtre o desplácese para encontrar el campo que desee agregar. Si no encuentra
un campo, puede que esté ya en el formulario. Desactive Mostrar solo los campos no usados para ver todos
los campos, incluidos los ya agregados al formulario.
5. En el panel Campos , seleccione un campo para agregarlo al formulario. Como alternativa, seleccione ... junto
al campo que desee y, a continuación seleccione Agregar a la sección seleccionada.
6. Repita los pasos 2-5 anteriores si desea agregar más campos.
7. En la barra de comandos, seleccione Guardar para guardar el formulario o seleccione Publicar si desea
guardar y hacer que los cambios sean visibles para los usuarios.

Configurar campos en un formulario


Éstas son las propiedades disponibles para configurar un campo cuando crea o edita un formulario usando el
diseñador de formularios.
Propiedades de campo
ÁREA NOMBRE DESCRIPCIÓN

Opciones de visualización Etiqueta de campo De forma predeterminada, la etiqueta


se corresponderá con el nombre para
mostrar del campo. Puede reemplazar
ese nombre para el formulario
proporcionando otra etiqueta aquí.

Se requiere esta propiedad.

Opciones de visualización Nombre del campo Nombre del campo. Esto procede de las
propiedades de campo de la entidad y
es de solo lectura.

Opciones de visualización Ocultar etiqueta Cuando se selecciona, la etiqueta del


campo está oculta.

Opciones de visualización Campo de solo lectura Cuando se selecciona, el valor del


campo no es editable.

Opciones de visualización Bloquear campo Bloquee este campo para que no se


pueden quitar.

Opciones de visualización Ocultar campo Cuando se selecciona, el campo está


oculto de forma predeterminada y se
puede mostrar con código.

Opciones de visualización Ocultar en teléfono El campo se puede ocultar para


representar una versión condensada
del formulario en pantallas de teléfono.

Formato Ancho de campo Cuando la sección que contiene los


campos tiene más de una columna
puede establecer el campo para ocupar
hasta el número de columnas que tiene
la sección.

Mover campos de un formulario


Puede mover un campo en un formulario mediante arrastrar y colocar o cortar y pegar acciones.
Mover campos en un formulario mediante arrastrar y colocar
1. Abra el diseñador de formularios para crear o editar un formulario. Más información: Crear un formulario o
Editar un formulario
2. En a vista previa de formulario, seleccione el campo que desea mover y arrástrelo y colóquelo. Cuando
arrastra el campo sobre la vista previa de formulario verá destinos de colocación a los que podrá mover el
campo. Tenga en cuenta lo siguiente:
Los campos se pueden colocar antes o después de cualquier componente o campo existente.
Los campos también se pueden colocar en el área vacía de una sección. En este caso, el campo se
agregará en un espacio disponible para distribuir uniformemente campos y componentes a través de
las columnas de sección.
Si mantiene el puntero sobre un encabezado de pestaña cuando arrastra un campo cambiará la pestaña
actualmente seleccionada, permitiendo que agregue el campo a una pestaña diferente.
3. Repita el paso 2 anterior si desea mover más campos.
4. En la barra de comandos, seleccione Guardar para guardar el formulario o seleccione Publicar si desea
guardar y hacer que los cambios sean visibles para los usuarios.
Mover campos en un formulario mediante cortar y pegar
1. Abra el diseñador de formularios para crear o editar un formulario. Más información: Crear un formulario o
Editar un formulario
2. En la vista previa de formulario, seleccione el campo que desee mover.
3. En la barra de comandos, seleccione Cortar.
4. En la vista previa de formulario, seleccione otro componente, campo o sección existente. También puede
cambiar a una pestaña diferente si es necesario.
5. En la barra de comandos, seleccione Pegar o seleccione el botón de contenido adicional, y después seleccione
Pegar delante. Tenga en cuenta lo siguiente:
Cuando selecciona Pegar, el campo movido se pega después del componente o campo existente.
Cuando selecciona Pegar delante, el campo movido se pega delante del componente o campo
existente.
Cuando seleccione una sección, el campo que se está moviendo se agrega en un espacio disponible
para distribuir uniformemente componentes y campos a través de las columnas de sección. La acción
Pegar delante no es aplicable y por tanto no está disponible en este caso.
6. Repita los pasos 2-5 anteriores si desea mover más campos.
7. En la barra de comandos, seleccione Guardar para guardar el formulario o seleccione Publicar si desea
guardar y hacer que los cambios sean visibles para los usuarios.

Eliminar campos de un formulario


1. Abra el diseñador de formularios para crear o editar un formulario. Más información: Crear un formulario
o Editar un formulario
2. En la vista previa de formularios, seleccione el campo que desee eliminar del formulario.
3. En la barra de comandos, seleccione Eliminar.
4. Repita los pasos 2-3 si desea eliminar más campos.
5. En la barra de comandos, seleccione Guardar para guardar el formulario o seleccione Publicar si desea
guardar y hacer que los cambios sean visibles para los usuarios.

NOTE
Si elimina un campo por error, en la barra de comandos seleccione Deshacer para revertir el formulario al estado
anterior.
No puede eliminar un campo que esté bloqueado o sea obligatorio y no se encuentra presente en ninguna otra
parte del formulario.

Crear un nuevo campo de la entidad al editar un formulario


1. Abra el diseñador de formularios para crear o editar un formulario. Más información: Crear un formulario
o Editar un formulario
2. En la barra de comandos, seleccione Agregar campo, o en el panel izquierdo, seleccione Campos. El
panel Campos está abierto de forma predeterminada cuando se abre el diseñador de formularios.
3. En el panel Campos, seleccione + Nuevo campo.
4. En el diálogo Nuevo campo, proporcione el Nombre para mostrar y Nombre para el campo.
5. En el diálogo Nuevo campo, seleccione Tipo de datos y configure cualquier otra propiedad necesaria del
campo.

NOTE
Algunos tipos de campos no están disponibles cuando crea un campo desde el diseñador de formularios. Si un
tipo de campo que desea no está disponible, puede seguir los pasos que se describen en Crear y editar campos
para Common Data Service usando el portal de PowerApps

6. Seleccione Hecho para crear un nuevo campo de la entidad. El campo aparece en el panel Campos.
7. Si desea agregar el campo recién creado al formulario, siga los pasos indicados en la sección Agregar
campos a un formulario.

NOTE
Cuando un campo se crea en la entidad, no está limitado al formulario actual y estará disponible para su uso en
otros sitios.

Vea también
Información general del diseñador de formularios controlado por modelos
Crear, editar o configurar formularios usando el diseñador de formularios
Agregar, configurar, mover o eliminar componentes de un formulario
Agregar, configurar, mover o eliminar secciones de un formulario
Agregar, configurar, mover o eliminar pestañas de un formulario
Configurar propiedades de encabezado en el diseñador de formularios
Agregar y configurar un componente de subcuadrícula en un formulario
Agregar y configurar un componente de vista rápida en un formulario
Configurar un componente de búsqueda en un formulario
Use la vista de árbol del diseñador de formularios
Crear y editar campos
Agregar, configurar, mover o eliminar componentes
de un formulario
25/11/2019 • 14 minutes to read • Edit Online

Gracias al diseñador de formularios, los fabrticantes pueden agregar y configurar fácilmente componentes
populares, como subcuadrícula, vista rápida, control de mando esférico, control deslizante lineal, etc.

Agregar componentes a un formulario


Para agregar componentes a un formulario, use el panel Componentes. El panel Componentes además le
permite buscar buscar rápidamente componentes.

Agregar componentes a un formulario mediante arrastrar y colocar


NOTE
Cuando se agregan o mueven componentes utilizando arrastrar y colocar tenga en cuenta que la vista previa de
formularios es dinámica y puede representar columnas de varias secciones como apiladas. Para asegurarse de que el
componente que se agrega o mueve está en la columna de la sección correcta, colóquelo o péguelo anclado a otro campo
o componente que ya esté en esa columna de sección.

1. Abra el diseñador de formularios para crear o editar un formulario. Más información: Crear un formulario
o Editar un formulario
2. En la barra de comandos, seleccione Agregar componente, o en el panel izquierdo, seleccione
Componentes para ver una lista de componentes disponibles. También puede mantener el mouse sobre
un componente de la lista para ver una imagen de vista previa, la descripción, y otros detalles de ese
componente.
3. En el panel Componentes, busque o desplácese para buscar el componente que desea agregar y a
continuación selecciónelo.
4. Arrastre y coloque el componente sobre la vista previa de formularios. Cuando arrastra el componente
sobre la vista previa de formulario verá destinos de colocación en los que podrá agregar el componente.
Tenga en cuenta lo siguiente:
Los componentes se pueden colocar antes o después de cualquier componente o campo existente.
Los componentes también se pueden colocar en el área vacía de una sección. En este caso, el
componente se agregará en un espacio disponible para distribuir uniformemente campos y
componentes a través de las columnas de sección.
Si mantiene el puntero sobre un encabezado de sección cuando arrastra un componente cambiará la
pestaña actualmente seleccionada, permitiendo que agregue el componente a una pestaña diferente.
Cuando quita el componente, en la mayoría de los casos, verá un diálogo para establecer las
propiedades del componente. Asegúrese de que haya configurado todas las propiedades necesarias
del componente.
5. En el cuadro de diálogo para establecer las propiedades del componente, en Mostrar el componente en,
las opciones Web, Móvil y Tableta se seleccionan de forma predeterminada para garantizar que se usa
el componente cuando el formulario se muestra en la web, aplicación móvil, y aplicación de tableta. En
función de sus requisitos puede borrar algunas de estas opciones para restringir el uso del componente.
Seleccione Listo.
6. Repita los pasos 3-5 anteriores para agregar más componentes.
7. En la barra de comandos, seleccione Guardar para guardar el formulario o seleccione Publicar si desea
guardar y hacer que los cambios sean visibles para los usuarios.
Agregue componentes a un campo en el formulario
1. Abra el diseñador de formularios para crear o editar un formulario. Más información: Crear un formulario o
Editar un formulario
2. En la vista previa de formulario, seleccione un campo existente.
3. En el panel de propiedad, en el área Componentes, seleccione + Componente.
4. El diálogo Agregar componente muestra una lista de componentes que estén disponibles para el tipo de
campo actual. Puede mantener el mouse sobre un componente de la lista para ver una imagen de vista
previa, la descripción, y otros detalles de ese componente.
5. En el diálogo Agregar componente, busque o desplácese para buscar el componente que desea agregar y a
continuación selecciónelo. En la mayoría de los casos, aparece un diálogo para poder establecer las
propiedades del componente. Asegúrese de que haya configurado todas las propiedades necesarias del
componente.
6. En el cuadro de diálogo para establecer las propiedades del componente, en Mostrar el componente en, las
opciones Web, Móvil y Tableta se seleccionan de forma predeterminada para garantizar que se usa el
componente cuando el formulario se muestra en la web, aplicación móvil, y aplicación de tableta. En función
de sus requisitos puede borrar algunas de estas opciones para restringir el uso del componente. Seleccione
Listo.
7. Repita los pasos 2-6 anteriores si desea agregar más componentes al mismo campo o a otro.
8. En la barra de comandos, seleccione Guardar para guardar el formulario o seleccione Publicar si desea
guardar y hacer que los cambios sean visibles para los usuarios.

Configure los componentes en un formulario


1. Abra el diseñador de formularios para crear o editar un formulario. Más información: Crear un formulario o
Editar un formulario
2. En la vista previa de formulario, seleccione un campo existente.
3. En el panel de propiedad, en el área Componentes, seleccione el componente que desee configurar.
4. Es posible que vea un diálogo para establecer las propiedades del componente. Cambie las propiedades del
componente según sea necesario y seleccione Hecho.
5. Repita los pasos 2-4 para configurar más componentes del mismo campo o de otro.
6. En la barra de comandos, seleccione Guardar para guardar el formulario o seleccione Publicar si desea
guardar y hacer que los cambios sean visibles para los usuarios.

Mover componentes de un formulario


Puede mover componentes en un formulario mediante arrastrar y colocar o cortar y pegar acciones.
Mover componentes en un formulario mediante arrastrar y colocar
1. Abra el diseñador de formularios para crear o editar un formulario. Más información: Crear un formulario
o Editar un formulario
2. En a vista previa de formulario, seleccione el componente que desea mover y arrástrelo y colóquelo.
Cuando arrastra el componente sobre la vista previa de formulario aparecerán destinos de colocación en
los que podrá mover el componente.
Tenga en cuenta lo siguiente:
Los componentes se pueden colocar antes o después de cualquier componente o campo existente.
Los componentes también se pueden colocar en el área vacía de una sección. En este caso, el
componente se agregará en un espacio disponible para distribuir uniformemente componentes y
campos a través de las columnas de sección.
Si mantiene el puntero sobre un encabezado de sección cuando arrastra un componente cambiará la
pestaña actualmente seleccionada, permitiendo que agregue el componente a una pestaña diferente.
3. Repita los pasos 2-3 anteriores para mover más componentes.
4. En la barra de comandos, seleccione Guardar para guardar el formulario o seleccione Publicar si desea
guardar y hacer que los cambios sean visibles para los usuarios.
Mover componentes en un formulario mediante cortar y pegar
1. Abra el diseñador de formularios para crear o editar un formulario. Más información: Crear un formulario
o Editar un formulario
2. En la vista previa de formulario, seleccione el componente que desee mover.
3. En la barra de comandos, seleccione Cortar.
4. En la vista previa de formulario, seleccione otro componente, campo o sección existente. Puede cambiar a
una pestaña diferente si es necesario.
5. En la barra de comandos, seleccione Pegar o seleccione el botón de contenido adicional, y después
seleccione Pegar delante.
Tenga en cuenta lo siguiente:
Cuando selecciona Pegar, el componente movido se pega después del componente o campo existente.
Cuando selecciona Pegar delante, el componente movido se pega delante del componente o campo
existente.
Cuando seleccione una sección, el componente que se está moviendo se agrega en un espacio
disponible para distribuir uniformemente componentes y campos a través de las columnas de sección.
La acción Pegar delante no es aplicable y por tanto no está disponible en este caso.
6. Repita los pasos 2-5 anteriores si desea mover más componentes.
7. En la barra de comandos, seleccione Guardar para guardar el formulario o seleccione Publicar si desea
guardar y hacer que los cambios sean visibles para los usuarios.

Eliminar componentes de un formulario


1. Abra el diseñador de formularios para crear o editar un formulario. Más información: Crear un formulario
o Editar un formulario
2. En la vista previa de formularios, seleccione el componente que desea eliminar del formulario y, en la
barra de comandos, seleccione Eliminar.
3. Repita el paso 2 anterior si desea eliminar más componentes.
4. En la barra de comandos, seleccione Guardar para guardar el formulario o seleccione Publicar si desea
guardar y hacer que los cambios sean visibles para los usuarios.

NOTE
Si elimina un componente por error, en la barra de comandos seleccione Deshacer para revertir el formulario al
estado anterior.
No puede eliminar un componente que esté bloqueado ni usar un campo obligatorio que no se encuentra
presente en ninguna otra parte del formulario.

Vea también
Información general del diseñador de formularios controlado por modelos
Crear, editar o configurar formularios usando el diseñador de formularios
Agregar, configurar, mover o eliminar campos de un formulario
Agregar, configurar, mover o eliminar secciones de un formulario
Agregar, configurar, mover o eliminar pestañas de un formulario
Configurar propiedades de encabezado en el diseñador de formularios
Agregar y configurar un componente de subcuadrícula en un formulario
Agregar y configurar un componente de vista rápida en un formulario
Configurar un componente de búsqueda en un formulario
Use la vista de árbol del diseñador de formularios
Crear y editar campos
Agregar, configurar, mover o eliminar secciones de
un formulario
25/11/2019 • 12 minutes to read • Edit Online

Agregar, configurar, mover o eliminar secciones en un formulario usando el diseñador de formularios.

Agregar secciones a un formulario


Para agregar secciones a un formulario, use el panel Componentes.

NOTE
Las secciones solo se pueden agregar a formularios principales y formularios de la vista rápida. Más información: Tipos de
formularios

Agregar secciones a un formulario mediante arrastrar y colocar

NOTE
Cuando se agregan o mueven secciones utilizando arrastrar y colocar tenga en cuenta que la vista previa de formularios es
dinámica y puede representar columnas de varias pestañas como apiladas. Para asegurarse de que la sección que se agrega
o mueve está en la columna de la pestaña correcta, colóquela o péguela anclada a otra sección que ya esté en esa columna
de pestaña.

1. Abra el diseñador de formularios para crear o editar un formulario. Más información: Crear un formulario o
Editar un formulario
2. En la barra de comandos, seleccione Agregar componente, o en el panel izquierdo, seleccione
Componentes.
3. En el panel Componente, seleccione un componente de sección y arrástrelo sobre la vista previa de
formulario. Cuando arrastra la sección sobre la vista previa de formulario verá destinos de colocación en los
que podrá agregar la sección.
4. Coloque la sección en la ubicación que desea. Tenga en cuenta lo siguiente:
Las secciones se pueden colocar antes o después de cualquier sección existente.
Las secciones también se pueden colocar en el área vacía de una pestaña. En este caso la sección se
agregará en un espacio disponible para distribuir uniformemente secciones a lo largo de las columnas
de la pestaña.
Si mantiene el puntero sobre un encabezado de sección cuando arrastra un campo cambiará la pestaña
actualmente seleccionada, permitiendo que agregue la sección a una pestaña diferente.
5. Repita los pasos 3-4 anteriores si desea agregar más secciones.
6. En la barra de comandos, seleccione Guardar para guardar el formulario o seleccione Publicar si desea
guardar y hacer que los cambios sean visibles para los usuarios.
Agregar secciones a un formulario utilizando selección
1. Abra el diseñador de formularios para crear o editar un formulario. Más información: Crear un formulario o
Editar un formulario
2. En la vista previa de formulario, seleccione otra sección o pestaña existente. Observe lo siguiente:
Cuando selecciona un campo existente, la nueva sección se agrega después de la sección existente.
Cuando seleccione una pestaña, la nueva sección se agrega en un espacio disponible para distribuir
uniformemente secciones a lo largo de las columnas de pestaña.
3. En la barra de comandos, seleccione Agregar componente, o en el panel izquierdo, seleccione
Componentes.
4. En el panel Componentes, seleccione un componente de sección para agregarlo al formulario. Como
alternativa, seleccione ... junto al componente de selección que desee y, a continuación seleccione Agregar a
la pestaña seleccionada.
5. Repita los pasos 2-4 anteriores si desea agregar más secciones.
6. En la barra de comandos, seleccione Guardar para guardar el formulario o seleccione Publicar si desea
guardar y hacer que los cambios sean visibles para los usuarios.

Configurar secciones en un formulario


Éstas son las propiedades disponibles para configurar una sección cuando crea o edita un formulario usando el
diseñador de formularios.

ÁREA NOMBRE DESCRIPCIÓN

Opciones de visualización Etiqueta de sección Etiqueta localizable de la sección visible


para los usuarios.

Se requiere esta propiedad.

Opciones de visualización Nombre El nombre único de la sección que se


usa al hacerle referencia en los scripts.
El nombre solo puede contener
caracteres alfanuméricos y de
subrayado.

Se requiere esta propiedad.

Opciones de visualización Ocultar etiqueta Cuando se selecciona, la etiqueta de la


sección está oculta.

Opciones de visualización Bloquear sección Bloquee esta sección para evitar que se
elimine.

Opciones de visualización Ocultar sección Cuando se selecciona, la sección está


oculta de forma predeterminada y se
puede mostrar con código.
ÁREA NOMBRE DESCRIPCIÓN

Opciones de visualización Ocultar en teléfono La sección se puede ocultar para


representar una versión condensada de
este formulario en pantallas de
teléfono.

Formato Columnas Especifique hasta cuatro columnas para


la sección.

Mover secciones de un formulario


Puede mover secciones mediante arrastrar y colocar o cortar y pegar acciones.
Mover secciones en un formulario mediante arrastrar y colocar
1. Abra el diseñador de formularios para crear o editar un formulario. Más información: Crear un formulario o
Editar un formulario
2. En la vista previa de formularios, seleccione la etiqueta de la sección o el espacio vacío dentro de la sección
que desea arrastrar y colocar. Cuando arrastra la sección sobre la vista previa de formulario verá destinos de
colocación a los que podrá mover la sección. Tenga en cuenta lo siguiente:
Las secciones se pueden colocar antes o después de cualquier sección existente.
Las secciones también se pueden colocar en el área vacía de una pestaña. En este caso la sección se
agregará en un espacio disponible para distribuir uniformemente secciones a lo largo de las columnas
de la pestaña.
Si mantiene el puntero sobre un encabezado de sección cuando arrastra un campo cambiará la pestaña
actualmente seleccionada, permitiendo que agregue la sección a una pestaña diferente.
3. Repita el paso 2 anterior si desea mover más secciones.
4. En la barra de comandos, seleccione Guardar para guardar el formulario o seleccione Publicar si desea
guardar y hacer que los cambios sean visibles para los usuarios.
Mover secciones en un formulario mediante cortar y pegar
1. Abra el diseñador de formularios para crear o editar un formulario. Más información: Crear un formulario o
Editar un formulario
2. En la vista previa de formulario, seleccione la sección que desee mover.
3. En la barra de comandos, seleccione Cortar.
4. En la vista previa de formularios, seleccione otra sección o pestaña existente. También puede cambiar a una
pestaña diferente si es necesario.
5. En la barra de comandos, seleccione Pegar o seleccione el botón de contenido adicional, y después seleccione
Pegar delante. Tenga en cuenta lo siguiente:
Cuando selecciona Pegar, la sección movida se pega después de la sección existente.
Cuando selecciona Pegar delante, la sección movida se pega delante de la sección existente.
Cuando seleccione una pestaña, la sección movida se agrega en un espacio disponible para distribuir
uniformemente secciones a lo largo de las columnas de pestaña. La acción Pegar delante no es
aplicable y por tanto no está disponible en este caso.
6. Repita los pasos 2-5 anteriores si desea mover más secciones.
7. En la barra de comandos, seleccione Guardar para guardar el formulario o seleccione Publicar si desea
guardar y hacer que los cambios sean visibles para los usuarios.

Eliminar secciones de un formulario


1. Abra el diseñador de formularios para crear o editar un formulario. Más información: Crear un formulario
o Editar un formulario
2. En la vista previa de formularios, seleccione la sección que desee eliminar del formulario.
3. En la barra de comandos, seleccione Eliminar.
4. Repita los pasos 2-3 anteriores si desea eliminar más secciones.
5. En la barra de comandos, seleccione Guardar para guardar el formulario o seleccione Publicar si desea
guardar y hacer que los cambios sean visibles para los usuarios.

NOTE
Las secciones solo se pueden eliminar en formularios principales y formularios de la vista rápida. Más
información: Tipos de formularios
Si elimina una sección por error, en la barra de comandos seleccione Deshacer para revertir el formulario al
estado anterior.
No puede eliminar una sección que contenga un campo obligatorio o bloqueado.
No puede eliminar una sección que esté bloqueada.
Una pestaña necesita tener al menos una sección en cada columna de pestaña. Si elimina la última sección
restante de una columna de pestaña se agregará automáticamente una nueva sección.

Vea también
Información general del diseñador de formularios controlado por modelos
Crear, editar o configurar formularios usando el diseñador de formularios
Agregar, configurar, mover o eliminar campos de un formulario
Agregar, configurar, mover o eliminar componentes de un formulario
Agregar, configurar, mover o eliminar pestañas de un formulario
Configurar propiedades de encabezado en el diseñador de formularios
Agregar y configurar un componente de subcuadrícula en un formulario
Agregar y configurar un componente de vista rápida en un formulario
Configurar un componente de búsqueda en un formulario
Use la vista de árbol del diseñador de formularios
Crear y editar campos
Agregar, configurar, mover o eliminar pestañas de
un formulario
25/11/2019 • 11 minutes to read • Edit Online

Agregar, mover o eliminar pestañas en un formulario usando el diseñador de formularios.

Agregar pestañas a un formulario


Para agregar pestañas a un formulario, use el panel Componentes.

NOTE
Solo se pueden agregar pestañas a los formularios principales. Más información: Tipos de formularios

Agregar pestañas a un formulario mediante arrastrar y colocar


1. Abra el diseñador de formularios para crear o editar un formulario. Más información: Crear un formulario o
Editar un formulario
2. En la barra de comandos, seleccione Agregar componente, o en el panel izquierdo, seleccione
Componentes.
3. En el panel Componente, seleccione un componente de pestaña y arrástrelo y colóquelo sobre la vista previa
de formulario. Cuando arrastra la pestaña sobre la vista previa de formulario verá destinos de colocación en
los que podrá agregar la pestaña. Tenga en cuenta lo siguiente:
Las pestañas se pueden colocar antes o después de cualquier pestaña existente manteniendo el cursor
sobre los encabezados de la pestaña.
Las pestañas también se pueden colocar antes o después de la pestaña actual manteniendo el cursor
sobre el borde izquierdo o derecho de la pestaña actual.
4. Repita el paso 3 anterior si desea agregar más pestañas.
5. En la barra de comandos, seleccione Guardar para guardar el formulario o seleccione Publicar si desea
guardar y hacer que los cambios sean visibles para los usuarios.
Agregar pestañas a un formulario utilizando selección
1. Abra el diseñador de formularios para crear o editar un formulario. Más información: Crear un formulario o
Editar un formulario
2. En la vista previa de formulario, seleccione otra pestaña o el formulario. Tenga en cuenta lo siguiente:
Cuando selecciona una pestaña existente, la nueva pestaña se agregará después de la pestaña
existente.
Cuando se selecciona el formulario, la nueva pestaña se agregará como la última pestaña del
formulario.
3. En la barra de comandos, seleccione Agregar componente, o en el panel izquierdo, seleccione
Componentes.
4. En el panel Componentes, seleccione un componente de pestaña para agregarlo al formulario. Como
alternativa, seleccione ... junto al componente de pestaña que desee y, a continuación seleccione Agregar a
formulario.
5. Repita los pasos 2-4 anteriores si desea agregar más pestañas.
6. En la barra de comandos, seleccione Guardar para guardar el formulario o seleccione Publicar si desea
guardar y hacer que los cambios sean visibles para los usuarios.

Configurar las pestañas en un formulario


Éstas son las propiedades disponibles para configurar una pestaña cuando crea o edita un formulario usando el
diseñador de formularios.

ÁREA NOMBRE DESCRIPCIÓN

Opciones de visualización Etiqueta de pestaña Etiqueta localizable de la pestaña visible


para los usuarios.

Se requiere esta propiedad.

Opciones de visualización Nombre El nombre único de la pestaña que se


usa al hacerle referencia en los scripts.
El nombre solo puede contener
caracteres alfanuméricos y de
subrayado.

Se requiere esta propiedad.

Opciones de visualización Expandir esta ficha de forma El estado de la ficha puede alternar
predeterminada entre expandida o contraída usando
scripts de formulario o cuando los
usuarios seleccionan la etiqueta. Elija el
estado predeterminado para la
pestaña.

Opciones de visualización Ocultar pestaña Cuando se selecciona, la pestaña está


oculta de forma predeterminada y se
puede mostrar con código.

Opciones de visualización Ocultar en teléfono La pestaña se puede ocultar para


representar una versión condensada de
este formulario en pantallas de
teléfono.

Formato Diseño Las pestañas pueden tener hasta tres


columnas. Use las opciones para
establecer el número de pestañas y qué
porcentaje del ancho total deben
ocupar.

Mover pestañas en un formulario


Puede mover pestañas en un formulario mediante arrastrar y colocar o cortar y pegar acciones.
Mover pestañas en un formulario mediante arrastrar y colocar
1. Abra el diseñador de formularios para crear o editar un formulario. Más información: Crear un formulario o
Editar un formulario
2. En a vista previa de formulario, seleccione el encabezado de la pestaña que desea mover y arrástrelo y
colóquelo. Cuando arrastra la pestaña sobre la vista previa de formulario verá destinos de colocación en los
que podrá mover la pestaña. Tenga en cuenta lo siguiente:
Las pestañas se pueden colocar antes o después de cualquier pestaña existente manteniendo el cursor
sobre los encabezados de la pestaña.
Las pestañas también se pueden colocar antes o después de la pestaña actual manteniendo el cursor
sobre el borde izquierdo o derecho de la pestaña actual.
3. Repita el paso 2 si desea mover más pestañas.
4. En la barra de comandos, seleccione Guardar para guardar el formulario o seleccione Publicar si desea
guardar y hacer que los cambios sean visibles para los usuarios.
Mover pestañas en un formulario mediante cortar y pegar
1. Abra el diseñador de formularios para crear o editar un formulario. Más información: Crear un formulario o
Editar un formulario
2. En la vista previa de formulario, seleccione la pestaña que desee mover.
3. En la barra de comandos, seleccione Cortar.
4. En la vista previa de formulario, seleccione otra pestaña o el formulario.
5. En la barra de comandos, seleccione Pegar o seleccione el botón de contenido adicional, y después seleccione
Pegar delante. Tenga en cuenta lo siguiente:
Cuando selecciona Pegar, la pestaña movida se pega después de la pestaña existente.
Cuando selecciona Pegar delante, la pestaña movida se pega delante de la pestaña existente.
Cuando se selecciona el formulario, la pestaña movida se agregará como la última pestaña del
formulario. La acción Pegar delante no es aplicable y por tanto no está disponible en este caso.
6. Repita los pasos 2-5 anteriores si desea mover más pestañas.
7. En la barra de comandos, seleccione Guardar para guardar el formulario o seleccione Publicar si desea
guardar y hacer que los cambios sean visibles para los usuarios.

Eliminar pestañas en un formulario


1. Abra el diseñador de formularios para crear o editar un formulario. Más información: Crear un formulario
o Editar un formulario
2. En la vista previa de formularios, seleccione la pestaña que desee eliminar del formulario.
3. En la barra de comandos, seleccione Eliminar.
4. Repita los pasos 2-3 anteriores si desea eliminar más pestañas.
5. En la barra de comandos, seleccione Guardar para guardar el formulario o seleccione Publicar si desea
guardar y hacer que los cambios sean visibles para los usuarios.
NOTE
Solo se pueden eliminar pestañas en los formularios principales. Más información: Tipos de formularios
Si elimina una pestaña por error, en la barra de comandos seleccione Deshacer para revertir el formulario al
estado anterior.
No puede eliminar una pestaña que contenga secciones con campos obligatorios o bloqueados.
No puede eliminar una pestaña que tenga secciones bloqueadas.
Un formulario debería tener al menos una pestaña. No puede eliminar la última pestaña que quede en el
formulario.

Vea también
Información general del diseñador de formularios controlado por modelos
Crear, editar o configurar formularios usando el diseñador de formularios
Agregar, configurar, mover o eliminar campos de un formulario
Agregar, configurar, mover o eliminar componentes de un formulario
Agregar, configurar, mover o eliminar secciones de un formulario
Configurar propiedades de encabezado en el diseñador de formularios
Agregar y configurar un componente de subcuadrícula en un formulario
Agregar y configurar un componente de vista rápida en un formulario
Configurar un componente de búsqueda en un formulario
Use la vista de árbol del diseñador de formularios
Crear y editar campos
Configurar propiedades de encabezado en el
diseñador de formularios
25/11/2019 • 20 minutes to read • Edit Online

Los creadores pueden controlar la densidad de encabezados de formularios basados en modelo para que se
ajusten a las necesidades de cualquiera que utilice el formulario.

NOTE
Esta característica solo está disponible con entornos suscritos a las características de la versión de vista previa temprana de
2019 oleada 2. Más información: Adhesión temprana a la segunda oleada de la versión 2019

Encabezado de alta densidad


El encabezado del formulario de alta densidad garantiza que la información clave esté siempre visible para los
usuarios. Con el encabezado de alta densidad, el título del registro nunca se trunca. Incluso los títulos de registro
largos se muestran en varias líneas. De forma similar, el encabezado de alta densidad también garantiza que
hasta cuatro valores de campo sean directamente visibles en el encabezado y nunca se trunquen u oculten.
Para asegurarse de que la información clave estén siempre es visible, el marco de trabajo muestra valores de
campo de sólo lectura y los usuarios no pueden editar directamente los valores de campo del encabezado.
Tampoco se permiten visualizaciones como componentes personalizados o recursos web.
Cuando un formulario no especifica la densidad del encabezado o cuando se crea un nuevo formulario, el marco
de trabajo adopta de manera predeterminada el encabezado de alta densidad.

Encabezado de baja densidad


El encabezado de formulario de baja densidad permite a los usuarios editar directamente los valores de campo
del encabezado. También permiten visualizaciones como componentes personalizados y recursos web.
No obstante, a menudo tienen el inconveniente de que se trunque o no esté visible información clave. El
encabezado de baja densidad trunca el título del registro así como valores de campo que se muestran en el
encabezado. A menudo solo uno o dos campos son directamente visibles en el encabezado y el resto se
desbordan y se muestran en un control flotante que requiere un clic adicional.
Configurar densidad de encabezado
Para configurar la densidad del encabezado de un formulario basado en modelo, siga estos pasos:
1. Abra el diseñador de formularios para crear o editar un formulario.
2. Seleccione el encabezado del formulario seleccionando el encabezado en la vista previa de formularios o
mediante la vista de árbol.
3. En el panel de propiedades, seleccione Alta densidad para usar el encabezado de formulario de alta
densidad o desactívelo para usar el encabezado de formulario de baja densidad.
4. En la barra de comandos, seleccione Guardar para guardar el formulario o seleccione Publicar para guardar
y hacer que los cambios sean visibles para los usuarios.

NOTE
Utilice el nuevo de diseñador de formularios. El diseñador de formularios clásico no ofrece la posibilidad de configurar la
densidad de encabezado.

Control flotante de encabezado


Se muestra el control flotante de encabezado cuando los usuarios seleccionan el botón de contenido adicional en
el encabezado del formulario. También permite a los usuarios editar valores de campo y también muestra
visualizaciones como componentes personalizados o recursos web que forman parte del encabezado de
formulario.
El comportamiento del control de flotante de encabezado cambia en función de la configuración densidad de
encabezado.
Control flotante de encabezado de alta densidad
Con un encabezado de formulario de alta densidad el control flotante de encabezado muestra todos los campos
de encabezado incluidos los cuatro campos que se muestran directamente en el encabezado. El marco de trabajo
muestra de forma predeterminada el control flotante de encabezado cuando se usa el encabezado de alta
densidad. Los creadores pueden controlar la visibilidad del control flotante de encabezado con un encabezado de
alta densidad.
Control flotante de encabezado de baja densidad
Con un encabezado de formulario de baja densidad el control flotante de encabezado muestra sólo campos de
desbordamiento, como campos que el formulario no puede mostrar directamente en el encabezado con el ancho
del formulario. El control flotante de encabezado también se muestra o se oculta automáticamente en función del
número de campos en el encabezado y el ancho del formulario. Los creadores no pueden controlar la visibilidad
del control flotante de encabezado cuando se usa un encabezado de baja densidad.

Mostrar u ocultar el control flotante del encabezado


Para mostrar u ocultar el control flotante de encabezado para un formulario basado en modelo, siga estos pasos:
1. Abra el diseñador de formularios para crear o editar un formulario.
2. Seleccione el encabezado del formulario en la vista previa de formularios o utilice la vista de árbol para
seleccionarlo.
3. En el panel de la propiedad, seleccione Alta densidad para usar un encabezado de formulario de alta
densidad.
4. En el panel de propiedades, seleccione Mostrar control flotante del encabezado para hacer que el control
de encabezado sea visible o desactívelo para ocultar el control flotante de encabezado.
5. En la barra de comandos, seleccione Guardar para guardar el formulario o seleccione Publicar para guardar
y hacer que los cambios sean visibles para los usuarios.

NOTE
Utilice el nuevo de diseñador de formularios. El diseñador de formularios clásico no ofrece la posibilidad de mostrar u
ocultar el control flotante de encabezado.
La visibilidad del control flotante de encabezado solo se pueden controlar cuando se usa un encabezado de formulario
de alta densidad. Cuando se utiliza un encabezado de baja densidad, el control flotante de encabezado se muestra o se
oculta automáticamente en función del número de campos en el encabezado y el ancho del formulario.
Una imagen de una entidad se mostrará en el encabezado solo si el atributo Imagen principal se define para la
entidad y se habilita la propiedad de formulario Mostrar imagen en el formulario. Más información: Campos de
imagen.
Los programadores pueden especificar una imagen para una entidad mediante el atributo
EntityMetadata.PrimaryImageAttribute.

Mensajes del diseñador de formularios relacionados con encabezados


de formulario
Cuando se editan formularios con el diseñador de formularios nuevo o clásico, es posible que vea algunos
mensajes relacionados con los encabezados del formulario. Debajo puede encontrar los detalles de cada mensaje
y por qué lo está viendo.
Hemos actualizado el formulario para mostrar un encabezado de alta densidad que muestra más datos. Puede
editar este valor en las propiedades del encabezado.
Este mensaje se muestra en el diseñador de formularios cuando un creador crea un nuevo formulario principal
(incluso mediante Guardar como acción) o edita un formulario principal que no se ha configurado previamente
para la densidad de encabezado.
El marco de trabajo utiliza de manera predeterminada el encabezado de alta densidad y este mensaje ayuda a los
creadores a ser más conscientes de ese comportamiento. Los creadores pueden reemplazar el valor
predeterminado del marco de trabajo en cualquier momento configurando manualmente la densidad del
encabezado de formulario como se indicó antes.
Este formulario no utiliza el encabezado de alta densidad, acceda al valor en las propiedades del encabezado.
El encabezado de alta densidad ayuda a mostrar más datos.
Este mensaje se muestra en el diseñador de formularios cuando un creador abre un formulario principal para
editar que está configurado para usar el encabezado de baja densidad.
El mensaje ayuda a incrementar el conocimiento sobre el encabezado de alta densidad y sus beneficios.
Campo movido a control flotante de encabezado: El encabezado admite mostrar hasta cuatro valores de
campo de sólo lectura. El campo nombre para mostrar del campo ahora solo estará disponible desde el control
flotante.
Este mensaje se muestra en el diseñador de formularios cuando un formulario usa el encabezado de alta
densidad con el control flotante de encabezado visible.
El encabezado de alta densidad muestra valores de solo lectura de los primeros cuatro campos del encabezado.
Cuando los creadores agregan un campo en el encabezado en las cuatro posiciones superiores, hace que un
campo existente que se mostraba directamente en el encabezado pase a estar extendido y sea visible solo en el
control flotante de encabezado.
El mensaje informa al creador del cambio y confirma si continuar con la acción.
Superado límite de campo de encabezado: El encabezado permite mostrar hasta cuatro valores de campo de
sólo lectura. Quite campos no utilizados para agregar más.
Este mensaje se muestra en el diseñador de formularios cuando un formulario usa el encabezado de alta
densidad con el control flotante de encabezado oculto.
El encabezado de alta densidad muestra valores de solo lectura de hasta cuatro campos en el encabezado. Puesto
que el control flotante de encabezado está oculto, los usuarios no podrán ver los campos adicionales.
El mensaje informa al creador que ya hay cuatro campos en el encabezado y evita agregar campos adicionales en
el encabezado que los usuarios no podrán ver.
El encabezado no muestra componentes personalizados: El encabezado permite mostrar hasta cuatro valores
de campo de sólo lectura. Quite el componente personalizado del campo antes de agregarlo al encabezado.
Este mensaje se muestra en el diseñador de formularios cuando un formulario usa el encabezado de alta
densidad con el control flotante de encabezado oculto.
El encabezado de alta densidad muestra valores de solo lectura de campos en el encabezado. Puesto que el
control flotante de encabezado está oculto, los usuarios no podrán ver ningún componente personalizado
asociada a los campos del encabezado.
El mensaje informa al creador que está intentando agregar un campo con un componente personalizado
asociada al encabezado y debe quitar el componente personalizado antes de agregar el campo al encabezado.
Esto se debe a que los usuarios no podrán ver el componente personalizado en el encabezado.
El encabezado muestra valores de campo de solo lectura: El encabezado permite mostrar hasta cuatro valores
de campo de sólo lectura. Para proporcionar funciones de edición al usuario, agregue campo a una sección del
formulario.
Este mensaje se muestra en el diseñador de formularios cuando un formulario usa el encabezado de alta
densidad con el control flotante de encabezado oculto.
El encabezado de alta densidad muestra valores de solo lectura de campos en el encabezado. Puesto que el
control flotante de encabezado está oculto, los usuarios no podrán editar los valores de campo.
El mensaje informa al creador de que los campos agregados al encabezado serán de solo lectura y que los
campos que deseen que los usuarios editen también se deben agregar a una sección del formulario.
Los valores de campo del encabezado no se pueden editar: Si mueve un campo del cuerpo al encabezado se
mostrará como valor de sólo lectura. Para mantener la capacidad de edición, copie el campo al encabezado.
Este mensaje se muestra en el diseñador de formularios solo para formularios que usan un encabezado de alta
densidad con el control flotante de encabezado oculto.
El encabezado de alta densidad muestra valores de solo lectura de campos en el encabezado. Puesto que el
control flotante de encabezado está oculto, los usuarios no podrán editar los valores de campo.
El mensaje informa al creador de que está intentando mover un campo del cuerpo del formulario al encabezado
del formulario. Si l hace, lo convertirá en de sólo lectura. Da al creador la opción de mover el campo al
encabezado o de agregar una copia del campo al encabezado. Si mueve el campo al encabezado hará que el
campo no esté disponible en la ubicación original en el cuerpo del formulario para que los usuarios lo editen. Si
agrega una copia del campo al encabezado se quedará el campo en la ubicación original tal como está,
garantizando que los usuarios puedan continuar para editándolo en el cuerpo del formulario.
Los encabezados del formulario se establecen de forma predeterminada ahora como de alta densidad para
mostrar más datos. Use el nuevo diseñador de formularios para editar la densidad de encabezado.
Este mensaje se muestra en el diseñador de formularios clásico cuando un creador abre un formulario principal
para editar y está configurado para usar el encabezado de baja densidad.
El mensaje ayuda a aumentar el conocimiento sobre el encabezado de alta densidad y sus beneficios y que los
creadores deben usar el nuevo diseñador de formularios para configurar la densidad de encabezado.
Este formulario usa el encabezado de alta densidad. Para obtener la mejor experiencia de creación con este
formulario, use el nuevo diseñador de formularios.
Este mensaje se muestra en el diseñador de formularios clásico cuando un creador abre un formulario principal
para editar y está configurado para usar el encabezado de alta densidad.
El diseñador de formularios clásico no proporciona una experiencia de creación WYSIWYG. Tampoco detecta ni
previene o advierte a los creadores de las implicaciones de cambios que realizan en el encabezado del
formulario. Por ejemplo, cuando edita un formulario que está usando el encabezado de alta densidad con el
control flotante de encabezado oculto, el diseñador de formularios clásico no evita que los creadores agreguen
más de cuatro campos al encabezado aunque este campo no estará disponible a los usuarios.
El mensaje informa al creadores que cuando edite un formulario que está usando el encabezado de alta densidad
deben usar el nuevo diseñador de formularios. Esto ayuda a garantizar que el creador conoce el impacto de sus
cambios en el encabezado del formulario.

Vea también
Información general del diseñador de formularios controlado por modelos
Crear, editar o configurar formularios usando el diseñador de formularios
Agregar, configurar, mover o eliminar campos de un formulario
Agregar, configurar, mover o eliminar componentes de un formulario
Agregar, configurar, mover o eliminar secciones de un formulario
Agregar, configurar, mover o eliminar pestañas de un formulario
Agregar y configurar un componente de subcuadrícula en un formulario
Agregar y configurar un componente de vista rápida en un formulario
Configurar un componente de búsqueda en un formulario
Use la vista de árbol del diseñador de formularios
Crear y editar campos
Agregar y configurar un componente de
subcuadrícula en un formulario
25/11/2019 • 5 minutes to read • Edit Online

Un formulario que muestra los detalles de un registro puede usar un componente de subcuadrícula para
mostrar la lista de registros relacionados o no relacionadas en un formato tabular. Los fabricantes pueden
agregar y configurar un componente de subcuadrícula con el diseñador de formularios.

Agregar un componente de subcuadrícula


Puede agregar un componente de subcuadrícula de la misma forma que agrega cualquier otro componente.
Más información: Agregar, configurar, mover o eliminar componentes de un formulario

Configurar un componente de subcuadrícula


Éstas son las propiedades disponibles para configurar cuando utiliza un componente de subcuadrícula en un
formulario usando el diseñador de formularios.

ÁREA NOMBRE DESCRIPCIÓN

Opciones de visualización Etiqueta Etiqueta localizable de la subcuadrícula


visible para los usuarios.

Se requiere esta propiedad.

Opciones de visualización Nombre Nombre único de la subcuadrícula que


se usa al hacerle referencia en los
scripts. El nombre solo puede contener
caracteres alfanuméricos y de
subrayado.

Se requiere esta propiedad.

Opciones de visualización Ocultar en teléfono La subcuadrícula se puede ocultar para


representar una versión condensada
del formulario en pantallas de teléfono.

Opciones de visualización Mostrar registros relacionados Cuando se seleccionada, la


subcuadrícula muestra solo los
registros relacionados con el registro
actual que se muestra en el formulario.

La lista desplegable Entidad también


se filtra para enumerar únicamente las
entidades relacionadas con la entidad
actual.
ÁREA NOMBRE DESCRIPCIÓN

Opciones de visualización Entidad La entidad cuyos registros desea


mostrar en la subcuadrícula.

Cuando se selecciona Mostrar


registros relacionados, la lista de
entidades se filtra para mostrar
únicamente las entidades relacionadas
con la entidad actual. Además del
nombre de entidad, el nombre del
campo de búsqueda también se
muestra entre paréntesis.

Opciones de visualización Vista predeterminada La vista de la entidad seleccionada en


la propiedad Entidad que se usará
para obtener y mostrar la lista de
registros en la subcuadrícula.

Opciones de visualización Permitir que los usuarios cambien Cuando está seleccionada, los usuarios
la vista de la aplicación pueden cambiar de la
Vista predeterminada a otra vista de
la entidad seleccionada en la propiedad
Entidad.

Opciones de visualización Mostrar todas las vistas Cuando está seleccionada, los usuarios
de la aplicación pueden cambiar de la
Vista predeterminada a todas las
demás vistas de la entidad
seleccionada en la propiedad Entidad.

Esta propiedad sólo está disponible


cuando se selecciona Permitir que los
usuarios cambien la vista.

Opciones de visualización Vistas seleccionadas Una lista de vistas de la entidad


seleccionada en la propiedad Entidad
que los usuarios de la aplicación
pueden cambiar de la Vista
predeterminada.

Esta propiedad sólo está disponible


cuando se selecciona Permitir que los
usuarios cambien la vista y se
desactiva Mostrar todas las vistas.

Vea también
Información general del diseñador de formularios controlado por modelos
Crear, editar o configurar formularios usando el diseñador de formularios
Agregar, configurar, mover o eliminar campos de un formulario
Agregar, configurar, mover o eliminar componentes de un formulario
Agregar, configurar, mover o eliminar secciones de un formulario
Agregar, configurar, mover o eliminar pestañas de un formulario
Configurar propiedades de encabezado en el diseñador de formularios
Agregar y configurar un componente de vista rápida en un formulario
Configurar un componente de búsqueda en un formulario
Use la vista de árbol del diseñador de formularios
Crear y editar campos
Agregar y configurar un componente de vista
rápida en un formulario
25/11/2019 • 3 minutes to read • Edit Online

Un formulario principal que muestra los detalles de un registro puede usar un componente de vista rápida para
mostrar detalles de solo lectura de un registro relacionado (consulta). Los datos mostrados por el componente
de vista rápida están definidos por el formulario de vista rápida de la entidad relacionada. Cuando no hay
ningún registro relacionado, como una consulta, el componente de vista rápida se oculta automáticamente.

Agregar un componente de vista rápida


Puede agregar un componente de vista rápida de la misma forma que agrega cualquier otro componente. Más
información: Agregar, configurar, mover o eliminar componentes de un formulario

Configurar un componente de vista rápida


Éstas son las propiedades disponibles para configurar cuando utiliza un componente de vista rápida en un
formulario usando el diseñador de formularios.

ÁREA NOMBRE DESCRIPCIÓN

Opciones de visualización Etiqueta Etiqueta localizable de la vista rápida


visible para los usuarios.

Se requiere esta propiedad.

Opciones de visualización Nombre El nombre único de la vista rápida que


se usa al hacerle referencia en los
scripts. El nombre solo puede contener
caracteres alfanuméricos y de
subrayado.

Se requiere esta propiedad.

Opciones de visualización Ocultar etiqueta Cuando se selecciona, la etiqueta de la


vista rápida está oculta.
ÁREA NOMBRE DESCRIPCIÓN

Opciones de visualización Formularios de vista rápida Una lista de formularios de vista rápida
que se muestran a los usuarios de la
aplicación.

Para configurar la lista de formularios


de vista rápida

Seleccione Seleccionar formularios…


y en el desplegable Búsqueda
seleccione un campo de búsqueda
donde desea mostrar un formulario de
vista rápida.

Según el campo de búsqueda que


seleccione en el desplegable
Búsqueda, verá desplegables que le
permitan seleccionar formularios de
vista rápida para una o varias
entidades.

Vea también
Información general del diseñador de formularios controlado por modelos
Crear, editar o configurar formularios usando el diseñador de formularios
Agregar, configurar, mover o eliminar campos de un formulario
Agregar, configurar, mover o eliminar componentes de un formulario
Agregar, configurar, mover o eliminar secciones de un formulario
Agregar, configurar, mover o eliminar pestañas de un formulario
Configurar propiedades de encabezado en el diseñador de formularios
Agregar y configurar un componente de subcuadrícula en un formulario
Configurar un componente de búsqueda en un formulario
Use la vista de árbol del diseñador de formularios
Crear y editar campos
Configurar un componente de búsqueda en un
formulario
25/11/2019 • 3 minutes to read • Edit Online

Un campo de búsqueda se puede usar para vincular con un registro en otra entidad. Se utiliza un componente
de búsqueda automáticamente cuando un campo de búsqueda se agrega a un formulario. Los fabricantes
pueden configurar un componente de búsqueda con el diseñador de formularios.

Configurar un componente de búsqueda


Éstas son las propiedades disponibles para configurar cuando utiliza un componente de búsqueda en un
formulario usando el diseñador de formularios.

ÁREA NOMBRE DESCRIPCIÓN

Opciones de visualización Entidad La entidad relacionada con la que el


campo de búsqueda se conecta.

Opciones de visualización Vista predeterminada La vista de la entidad seleccionada en


la propiedad Entidad que se puede
usar para obtener y mostrar la lista de
registros que los usuarios de la
aplicación pueden usar en el
desplegable de búsqueda.

Opciones de visualización Permitir que los usuarios cambien Cuando está seleccionada, los usuarios
la vista de la aplicación pueden cambiar de la
Vista predeterminada a otra vista de
la entidad seleccionada en la propiedad
Entidad.

Opciones de visualización Mostrar todas las vistas Cuando está seleccionada, los usuarios
de la aplicación pueden cambiar de la
Vista predeterminada a todas las
demás vistas de la entidad seleccionada
en la propiedad Entidad.

Esta propiedad sólo está disponible


cuando se selecciona Permitir que los
usuarios cambien la vista.

Opciones de visualización Vistas seleccionadas Una lista de vistas de la entidad


seleccionada en la propiedad Entidad a
la que los usuarios de la aplicación
pueden cambiar desde la Vista
predeterminada.

Esta propiedad sólo está disponible


cuando se selecciona Permitir que los
usuarios cambien la vista y se
desactiva Mostrar todas las vistas.

Vea también
Información general del diseñador de formularios controlado por modelos
Crear, editar o configurar formularios usando el diseñador de formularios
Agregar, configurar, mover o eliminar campos de un formulario
Agregar, configurar, mover o eliminar componentes de un formulario
Agregar, configurar, mover o eliminar secciones de un formulario
Agregar, configurar, mover o eliminar pestañas de un formulario
Configurar propiedades de encabezado en el diseñador de formularios
Agregar y configurar un componente de subcuadrícula en un formulario
Agregar y configurar un componente de vista rápida en un formulario
Use la vista de árbol del diseñador de formularios
Crear y editar campos
Use la vista de árbol del diseñador de formularios
25/11/2019 • 2 minutes to read • Edit Online

El panel Vista de árbol muestra una jerarquía visual de componentes del formulario. Los iconos en la ayuda
de la vista de árbol ayudan a identificar rápidamente el tipo de campo o de componente.
También puede usar la vista de árbol para seleccionar los campos y los componentes presentes en el
formulario. La vista de árbol resulta útil cuando desea seleccionar elementos ocultos que no aparecen en la
vista previa de formulario.
Puede expandir o contraer nodos en la vista de árbol para ver u ocultar los elementos de un nodo. Cuando
selecciona un elemento de la vista de árbol, pasa destacarse en la vista previa del formulario, y el panel de
propiedades muestra las propiedades del elemento.

Abra la vista de árbol


1. Abra el diseñador de formularios para crear o editar un formulario.
Más información: Crear un formulario o Editar un formulario
2. En el panel izquierdo, seleccione Vista de árbol.

Vea también
Información general del diseñador de formularios controlado por modelos
Crear, editar o configurar formularios usando el diseñador de formularios
Agregar, configurar, mover o eliminar campos de un formulario
Agregar, configurar, mover o eliminar componentes de un formulario
Agregar, configurar, mover o eliminar secciones de un formulario
Agregar, configurar, mover o eliminar pestañas de un formulario
Configurar propiedades de encabezado en el diseñador de formularios
Agregar y configurar un componente de subcuadrícula en un formulario
Agregar y configurar un componente de vista rápida en un formulario
Configurar un componente de búsqueda en un formulario
Crear y editar campos
Tipo de formularios de aplicaciones controladas por
modelos en PowerApps
25/11/2019 • 2 minutes to read • Edit Online

Hay diferentes tipos de formularios y cada tipo tiene una funcionalidad o uso específico. La siguiente tabla
describe los tipos de formularios disponibles.

TIPO DE FORMULARIO DESCRIPCIÓN MÁS INFORMACIÓN

Principal Usado en aplicaciones basadas en Consideraciones de diseño para los


modelos, Dynamics 365 para tabletas formularios principales
y Dynamics 365 for Outlook.

Estos formularios ofrecen la interfaz de


usuario principal para interactuar con
los datos de la entidad.

Creación rápida Usado en aplicaciones basadas en Crear y editar formularios de creación


modelos, Dynamics 365 para tabletas rápida
y Dynamics 365 for Outlook.

Para las entidades actualizadas, estos


formularios proporcionan un
formulario básico optimizado para
crear nuevos registros.

Vista rápida Usado en aplicaciones basadas en Crear y editar formularios de vista


modelos, Dynamics 365 para tabletas rápida
y Dynamics 365 for Outlook.

Para las entidades actualizadas, estos


formularios aparecen dentro del
formulario principal para mostrar los
datos adicionales de un registro al que
hace referencia un campo de
búsqueda en el formulario.

Tarjeta Usado en vistas para las aplicaciones Crear un formulario de tarjeta


PowerApps. Los formularios de tarjeta
están diseñados para mostrar
información en un formato compacto
adecuado para dispositivos móviles.

Aunque cada tipo de formulario tiene necesidades específicas, cuando trabaje con formularios use el editor de
formularios. Más información: Información general de la interfaz de usuario del editor de formularios

Pasos siguientes
Información general de la interfaz de usuario del editor de formularios
Crear o editar formularios principales de aplicaciones
controladas por modelos
25/11/2019 • 4 minutes to read • Edit Online

En este tema aprenderá a crear o editar un formulario principal para una entidad.
Al crear un nuevo formulario para una entidad, el tipo de formulario es Principal. Cuando se abre el formulario
principal, es idéntico al formulario denominado Información. Puede agregar o editar campos, secciones, pestañas,
navegación y propiedades asociadas al formulario y, a continuación, guardar el formulario.
Cada formulario principal se compone de una o varias pestañas. Cada ficha tiene una o varias secciones. Cada
sección contiene uno o varios campos o IFRAMES. Si desea basar su nuevo formulario en uno existente, puede
clonar un formulario.
Compruebe que tiene el rol de seguridad de Administrador del sistema o de Personalizador del sistema o permisos
equivalentes para realizar esta tarea.

Cómo crear o editar un formulario principal


1. Inicie sesión en PowerApps.

IMPORTANT
“Si el modo de diseño Controlado por modelos no está disponible, puede que tenga que Crear un entorno.

2. Expanda Datos, seleccione Entidades, seleccione la entidad que desee y, a continuación, seleccione la
pestaña Formularios.
3. Para crear un nuevo formulario principal, en la barra de herramientas seleccione Agregar formulario >
Formulario principal.
-O bien - Para editar un formulario principal existente, seleccione cualquiera de los formularios cuyo Tipo
sea Principal.
4. Cambie el diseño del formulario de cualquiera de las siguientes maneras, según corresponda:
Adición de una ficha a un formulario
Adición de secciones a un formulario
Adición de campos a un formulario
Agregar o editar un IFRAME de formulario
Agregar o editar una subcuadrícula en un formulario
Agregar o editar un recurso web de formulario
Adición o edición de la navegación del formulario para las entidades relacionadas
Edición de encabezados y pies de página de formularios
Quitar una pestaña, sección, campo o IFRAME
Habilitar o deshabilitar el Asistente de formulario
5. Edite las propiedades de las partes del formulario según sea necesario:
Edición de propiedades de formularios
Edición de las propiedades de campos de formulario
Edición de las propiedades de ficha
Edición de las propiedades de sección
6. Agregue los scripts de eventos que sea necesario.
7. Determine qué roles de seguridad podrán ver el formulario. Más información: Asignar roles de seguridad a
un formulario
8. *Muestre una vista previa del aspecto que tendrá el formulario principal y cómo funcionan los eventos:
En la ficha Inicio, seleccione Vista previa y, a continuación, seleccione Formulario de creación,
Formulario de actualización o Formulario de sólo lectura.
Para cerrar el formulario Vista previa, en el menú Archivo, seleccione Cerrar.
9. Cuando haya terminado de editar el formulario, seleccione Guardar como. Escriba un nombre para el
formulario y, a continuación, seleccione Aceptar.
10. Cuando haya completado las personalizaciones, publíquelas:
Para publicar las personalizaciones únicamente para el componente que está editando actualmente, en
Componentes, haga clic en la entidad en la que ha estado trabajando, y haga clic en Publicar.
Para publicar personalizaciones de todos los componentes no publicados a la vez, en Componentes,
haga clic en Entidades y, en la barra de comandos, haga clic en Publicar todas las personalizaciones.
Pasos siguientes
Información general de la interfaz de usuario del editor de formularios
Crear o editar formularios de creación rápida de
aplicaciones controladas por modelos para lograr
una experiencia optimizada de entrada de datos
25/11/2019 • 12 minutes to read • Edit Online

En este tema, creará y editará un formulario de creación rápida.


Con los formularios de creación rápida, la aplicación puede tener una experiencia simplificada de entrada de datos
totalmente compatibles con la lógica definida por scripts de formulario y reglas de negocio. En una aplicación
controlada por modelos de PowerApps, los formularios de creación rápida aparecen al seleccionar el botón Crear
en la barra de navegación o al elegir + Nuevo al crear un registro nuevo desde una búsqueda o subcuadrícula.
Las aplicaciones móviles de Dynamics 365 usan formularios de creación rápida para crear registros nuevos. Si una
entidad ya tiene un formulario de creación rápida configurado, las aplicaciones móviles usan ese formulario. Si una
entidad no tiene configurado un formulario de creación rápida, PowerApps genera un formulario creación rápida
para crear registros en las aplicaciones móviles basadas en la definición del formulario principal.

Entidades con formularios de creación rápida


De forma predeterminada, solo las siguientes entidades del sistema tienen formularios de creación rápida.

Cuenta Respuesta de campaña Caso Competidor

Contacto Cliente potencial Oportunidad

Aunque puede crear formularios de creación rápida para entidades de actividad del sistema, a excepción de la
entidad Cita, estas no admiten formularios de creación rápida. Con el lanzamiento de Microsoft Dynamics 365,
versión 9.0, la entidad Cita incluye un formulario de creación rápida para utilizar con la Interfaz unificada.
Actualmente, la opción de deshabilitar el formulario de creación rápida para la entidad Cita no se admite.
Cualquiera de las otras entidades actualizadas y todas las entidades personalizadas se pueden habilitar para
admitir estos formularios seleccionando Permitir creación rápida en la definición de la entidad y creando un
formulario de creación rápida para la entidad.
Puede habilitar entidades de actividad personalizadas para admitir formularios de creación rápida y puede crear
formularios de creación rápida para esas entidades. Sin embargo, el formulario de creación rápida para entidades
de actividad personalizadas no se usará cuando los usuarios seleccionen Crear en la barra de navegación. Estos
formularios de creación rápida se pueden usar solo cuando los usuarios agregan un nuevo registro para un
subcuadrícula que muestra esa entidad de actividad personalizada específica.

Crear un formulario de creación rápida


Aunque puede definir varios formularios de creación rápida, solo uno puede usarlo todo el mundo. El formulario
que todo el mundo usará se establece mediante el pedido de formulario. Los formularios de creación rápida no se
pueden asignar a los roles de seguridad y no proporcionan al usuario la capacidad de cambiar formularios.
NOTE
La entidad debe tener la opción Permitir creación rápida habilitada para que el formulario de creación rápida se
muestre.
También deberá agregar la entidad y el formulario de creación rápida a la aplicación.
Algunos campos, como el campo CREATEDON, no están disponibles para agregar a un formulario de creación rápida.

Cómo crear un formulario de creación rápida


1. Inicie sesión en PowerApps.

IMPORTANT
“Si el modo de diseño Controlado por modelos no está disponible, puede que tenga que Crear un entorno.

2. Expanda Datos, seleccione Entidades, seleccione la entidad que desee y, a continuación, seleccione la
pestaña Formularios.
3. En la barra de herramientas seleccione Agregar formulario > Formulario de creación rápida.
4. En el diseñador de formularios arrastre los campos que desee del Explorador de campos a las secciones
del formulario.
5. Cuando haya terminado, seleccione Guardar.
6. Seleccione Publicar para ver el nuevo formulario en la aplicación.

Editar un formulario de creación rápida


Aunque los formularios de creación rápida admiten scripts de formulario y reglas de negocio, su objetivo es
diferente del de los formularios principales y no admiten todas las capacidades de los formularios principales. Los
formularios de creación rápida siempre tienen una sección con tres columnas. No puede agregar más secciones o
columnas.
Los siguientes controles no se pueden agregar a formularios de creación rápida:
Subcuadrículas
Formularios de vista rápida
Recursos web
iFrames
Notas
Mapas de Bing
Si agrega un campo compuesto a un formulario de creación rápida, este se mostrará como un campo separado.
Para editar un formulario de creación rápida
1. Inicie sesión en PowerApps.

IMPORTANT
Si el modo de diseño Controlado por modelos no está disponible, puede que tenga que Crear un entorno.
2. Expanda Datos, seleccione Entidades, seleccione la entidad que desee y, a continuación, seleccione la
pestaña Formularios.
3. En la lista de formularios, seleccione uno cuyo Tipo sea Creación rápida.
4. Arrastre los campos que desee del Explorador de campos a las secciones del formulario.
Consulte Configurar controladores de eventos para obtener información sobre la edición de controladores
de eventos de scripts de formularios.
5. Cuando haya terminado, seleccione Guardar.
6. Seleccione Publicar para ver el formulario modificado en la aplicación.

Comportamiento de formulario de la propiedad Permitir creación


rápida para actividades
Introducida en la actualización 9.1.0.2007, la propiedad Permitir creación rápida se puede habilitar o deshabilitar
para todas las actividades estándar, salvo citas periódicas. Esta propiedad le permite cambiar el formulario que se
muestra de forma predeterminada para la mayoría de las actividades. De forma predeterminada, se habilita la
propiedad Permitir creación rápida y el formulario de creación de creación rápida es el formulario que se
muestra en las áreas de aplicación y las entidades de actividad que lo admiten.

Comportamiento de visualización del formulario de cliente de la interfaz unificada


En la siguiente tabla se indica qué formulario aparece de forma predeterminada cuando la propiedad Permitir
creación rápida está habilitada en el cliente de la interfaz unificada.

UBICACIÓN EN LA QUE SE ACCEDE AL FORMULARIO FORMULARIO MOSTRADO

Cuadrícula asociada a actividad específica Creación rápida

Subcuadrícula de actividades específicas Creación rápida

Cuadrícula de actividades (activitypointer) Creación rápida


UBICACIÓN EN LA QUE SE ACCEDE AL FORMULARIO FORMULARIO MOSTRADO

Cuadrícula asociada de actividades (activitypointer) Creación rápida

Subcuadrícula de actividades (activitypointer) Creación rápida

Barra de comandos global + botón1 Creación rápida

Muro de escala de tiempo Creación rápida

Cuadrícula de actividades (activitypointer) Principal

Cuadrícula de actividades específicas Principal

1Las actividades aparecen en los botones globales Crear o + Nuevo cuando se habilita la propiedad Permitir
creación rápida. En este caso, se utiliza el formulario de creación rápida si existe o el formulario principal si no. Si
está deshabilitado Permitir creación rápida, la entrada para la entidad no aparecerá.
Comportamiento de visualización de formulario del cliente web clásico
En la siguiente tabla se indica qué formulario aparece de forma predeterminada cuando la propiedad Permitir
creación rápida está habilitada en el cliente web clásico.

UBICACIÓN EN LA QUE SE ACCEDE AL FORMULARIO FORMULARIO MOSTRADO

Cuadrícula asociada a actividad específica Creación rápida

Subcuadrícula de actividades específicas Creación rápida

Cuadrícula de actividades (activitypointer) Principal

Cuadrícula asociada de actividades (activitypointer) Principal

Subcuadrícula de actividades (activitypointer) Principal

Barra de comandos global + botón Principal

Cuadrícula de actividades específicas Principal

Comportamiento social del panel del cliente web clásico


El panel social es un caso especial porque no usa la propiedad Permitir creación rápida pero usa formularios
diferentes para diferentes entidades de actividad según lo indicado aquí.

ACTIVIDAD FORMULARIO MOSTRADO

Tarea Creación rápida

Llamada de teléfono Creación rápida

Correo electrónico Principal

Cita Principal

Actividad personalizada Principal


Importar soluciones con comportamiento de valor Permitir creación rápida
Cuando importa una solución de la versión 8.2 independientemente del valor de la propiedad Permitir creación
rápida en la solución, se restablecerán las siguientes entidades al valor de visualización del formulario
predeterminado y el formulario principal mostrará: tarea, llamada de teléfono, correo electrónico, y cita. En esta
situación, necesitará restablecer la opción Permitir creación rápida de nuevo a habilitada para aquellas
entidades de actividad después de importar.
Si existe una personalización creada en una solución de la versión 9.0 a entidades donde está habilitada Permitir
creación rápida , el valor no cambiará después de importar. Sin embargo, si ha establecido la opción Permitir
creación rápida como deshabilitada para entidades de tarea, llamada de teléfono, correo electrónico y cita, el
valor se sobrescribirá como habilitada. En esta situación, necesitará restablecer la opción Permitir creación
rápida de nuevo a deshabilitada para aquellas entidades de actividad después de importar.
Vea también
Información general de la interfaz de usuario del editor de formularios
Crear un formulario de vista rápida de una
aplicación controlada por modelos para ver
información sobre una entidad relacionada
25/11/2019 • 6 minutes to read • Edit Online

En este tema aprenderá a crear un formulario de vista rápida y a agregar un control de vista rápida a un
formulario principal.
Un formulario de vista rápida se puede agregar a otro formulario como un control de vista rápida. Proporciona
una plantilla para ver información sobre un registro de entidad relacionada dentro de un formulario de otro
registro de entidad. Esto significa que los usuarios de la aplicación no necesitan navegar a otro registro para ver
la información que necesitan para realizar su trabajo.
Los controles de vista rápida están asociados a un campo de búsqueda que se incluye en un formulario. Si el
valor del campo de búsqueda no está configurado, el control de vista rápida no estará visible. Los datos de los
controles de vista rápida no se pueden editar y formularios de vista rápida no admiten scripts de formularios.
Dado que los formularios de vista rápida se ven mediante un control de vista rápida en un formulario, no
incluyen las áreas de encabezado, pie de página y navegación. Los roles de seguridad no se pueden asignar a
formularios de vista rápida ni se pueden activar o desactivar.

Crear un formulario de vista rápida


Puede crear formularios de vista rápida mediante el editor de formularios de forma similar al proceso de creación
de otros formularios. Los formularios de vista rápida son de solo lectura. Úselos para crear formularios solo con
fines de lectura.
1. Inicie sesión en PowerApps.

IMPORTANT
“Si el modo de diseño Controlado por modelos no está disponible, puede que tenga que Crear un entorno.

2. Expanda Datos, seleccione Entidades, seleccione la entidad que desee y, a continuación, seleccione la
pestaña Formularios.
3. En la barra de herramientas seleccione Agregar formulario > Formulario de vista rápida.
4. En la barra de herramientas del editor de formularios, seleccione Propiedades del formulario.
5. En el cuadro de diálogo Propiedades del formulario, escriba un Nombre del formulario y una
Descripción para distinguir este formulario de vista rápida de cualquier otro. Seleccione Aceptar para
cerrar el cuadro de diálogo Propiedades del formulario.
6. En el diseñador de formularios arrastre los campos que desee del Explorador de campos a la sección del
formulario.
IMPORTANT
Si agrega un campo y elige Requisito de campo > Requerido por la empresa y después lo guarda, no podrá
eliminar el campo.

7. Para guardar el formulario y cerrar el editor de formularios, seleccione Guardar.


8. Seleccione Publicar para ver el nuevo formulario en la aplicación.

Editar un formulario de vista rápida


Los formularios de vista rápida tienen un diseño simplificado porque se han diseñado para visualizarse en una
sección del formulario. Solo está disponible una pestaña de una sola columna. Solo puede agregar secciones,
campos, subcuadrículas y espaciadores adicionales de una sola columna.

NOTE
No puede eliminar un campo que sea Requerido por la empresa. Recibirá este mensaje si intenta eliminar el campo: "El
campo que intenta quitar es necesario para el sistema o la empresa". Si no desea el campo del formulario, debe eliminar el
formulario completo y volver a crearlo.

Cuando edite un formulario de vista rápida, debe publicar los cambios antes de que estén visible en la aplicación.

Agregar un control de vista rápida a un formulario principal


Los formularios de vista rápida pueden agregarse solo a un formulario principal donde exista un campo de
búsqueda que tenga como destino la entidad del formulario de vista rápida.
1. Inicie sesión en PowerApps.

IMPORTANT
“Si el modo de diseño Controlado por modelos no está disponible, puede que tenga que Crear un entorno.

2. Expanda Datos, seleccione Entidades, seleccione la entidad que desee y, a continuación, seleccione la
pestaña Formularios.
3. Seleccione un formulario cuyo Tipo sea Principal.
4. En el diseñador de formularios seleccione la pestaña Insertar y, a continuación, en la barra de
herramientas seleccione Formulario de vista rápida.
5. En el cuadro de diálogo Propiedades de control de vista rápida, establezca las propiedades del control
de vista rápida, como Nombre, Etiqueta y Formulario de vista rápida. Más información: Propiedades
de control de vista rápida.
6. Seleccione Aceptar para cerrar el cuadro de diálogo Propiedades de control de vista rápida.
7. Seleccione la pestaña Inicio y, a continuación, seleccione Publicar para que el control de vista rápida
aparezca en el formulario.

Pasos siguientes
Crear y diseñar formularios
Crear o editar formularios de creación rápida
Crear un formulario de tarjeta
25/11/2019 • 4 minutes to read • Edit Online

Los formularios de tarjeta se utilizan en vistas para aplicaciones de la interfaz unificada. Los formularios de tarjeta
están diseñados para mostrar información en un formato compacto adecuado para dispositivos móviles. Por
ejemplo, el formulario de tarjeta predeterminado para la vista Mis cuentas activas define la información mostrada
para cada registro de cuenta.

Aunque los formularios de tarjeta se pueden crear y editar igual que otros tipos de formularios, los formularios de
tarjeta se agregan a aplicaciones de forma diferente. En lugar de agregar un formulario como componente de
aplicación, los formularios de tarjeta personalizados se agregan a vistas mediante el control Cuadrícula de solo
lectura.

Crear un formulario de tarjeta


1. Para crear un formulario de tarjeta, inicie sesión en PowerApps.
2. Expanda Datos, seleccione Entidades, seleccione la entidad que desee y, a continuación, seleccione la pestaña
Formularios.
3. En la barra de herramientas, seleccione Agregar formulario y luego seleccione Formulario de tarjeta. Como
alternativa, puede abrir un Tipo de formulario existente que sea un formulario de Tarjeta para editarlo.
4. Agregue los campos que desee. Se recomienda limitar el número de campos para que el formulario se muestre
correctamente en pantallas pequeñas.
5. Seleccione Guardar y, a continuación, Publicar.

Agregar un formulario de tarjeta a una vista


1. Inicie sesión en PowerApps.
2. Expanda Datos, seleccione la entidad que desee y, a continuación, seleccione la pestaña Vistas.
3. Seleccione la vista que desee y, en la barra de herramientas del diseñador de vistas, seleccione Cambiar a
clásica.
4. Seleccione Controles personalizados del panel Tareas comunes.
5. Seleccione Agregar control de la lista de controles, seleccione Cuadrícula de solo lectura y, a
continuación, seleccione Agregar.

NOTE
Hay dos controles de cuadrícula de solo lectura. El control de cuadrícula de solo lectura predeterminado que se llama
Cuadrícula de solo lectura (predeterminada) no admite formularios de tarjeta personalizados.

6. En la página de propiedades Cuadrícula de solo lectura configure las propiedades siguientes y, a


continuación seleccione Aceptar.

Formulario de tarjeta. Seleccione el icono de lápiz y luego seleccione el formulario de tarjeta


que desea mostrar en la vista. De forma predeterminada, entidad principal asociada a la vista ya está
seleccionada, pero puede cambiarla.
Comportamiento de redistribución. Si desea cambiar si el formulario de tarjeta se muestra al
cambiar de tamaño, seleccione el icono de lápiz . Más información: Permitir que la cuadrícula se
redistribuya en la lista
Seleccione los tipos de clientes: Web, Teléfono, o Tableta, donde desea que se muestre el control de
Cuadrícula de solo lectura.
7. Seleccione Aceptar para cerrar la página de propiedades de Controles personalizados.
8. En la barra de herramientas del diseñador de vistas clásica, seleccione Guardar y cerrar.

Vea también
Usar controles personalizados para visualizaciones de datos de aplicaciones controladas por modelos
Información general de la interfaz de usuario del
editor de formularios de aplicaciones controladas
por modelos
25/11/2019 • 13 minutes to read • Edit Online

El editor de formularios muestra comandos en tres pestañas: Archivo, Inicio e Insertar.


Pestaña Archivo
Pestaña Inicio
Insertar la ficha
El editor de formularios se divide en tres áreas: navegación, cuerpo y explorador.

Navegación
Ubicada en la parte izquierda, use el área de navegación para controlar el acceso a las entidades relacionadas o
agregar vínculos a las direcciones URL que deben mostrarse en el panel principal del formulario. Para modificar
la navegación debe seleccionar primero el comando Navegación en el grupo Seleccionar de la ficha Inicio.
Los formularios principales proporcionan opciones de navegación a través de la barra de navegación, pero usan
los mismos datos en el área de navegación para controlar las opciones de navegación que están disponibles. Más
información: Editar navegación
Cuerpo
Ubicada en el centro, use el área del cuerpo para controlar el diseño del formulario. Puede seleccionar y arrastrar
elementos de formulario para colocarlos. Al hacer doble clic en un elemento se abrirán las propiedades del
elemento.
De manera predeterminada, para los formularios principales de Caso, Contacto y Cuenta, la primera sección en
la pestaña Resumen muestra el formulario de cuenta o tarjeta de contacto del tipo Vista rápida. Para las
entidades personalizadas, esta sección no está disponible de forma predeterminada. Puede insertar una sección
nueva y un formulario de vista rápida en ella. El formulario de tarjeta muestra un máximo de cinco campos. Con
la excepción de los campos, no es posible mostrar otros controles en la ventana Azul aunque el formulario de
vista rápida lo contenga.
NOTE
Para mantener el formato de tarjeta (como se muestra en la siguiente imagen), se recomienda no mover el formulario de
vista rápida a ninguna otra sección del formulario.

Más información: Crear y editar formularios de vista rápida


Para agregar un campo, selecciónelo en el Explorador de campos y arrástrelo a una sección.
Para agregar un elemento que no sea un campo, seleccione la ubicación donde desee colocarlo y
use el comando adecuado de la ficha Insertar para agregarlo.
Para quitar un elemento, selecciónelo y use el comando Quitar del grupo Editar de la ficha Inicio.
Para editar las opciones de Encabezado o Pie de página del formulario debe seleccionar primero
el comando correspondiente en el grupo Seleccionar de la ficha Inicio.
Explorador
Ubicada en el lado derecho, el área del explorador incluye contenido dependiente del contexto.
Al seleccionar Cuerpo, Encabezado o Pie de página en el grupo Seleccionar de la ficha Inicio, verá el
Explorador de campos. Use el Explorador de campos para arrastrar los campos que desee mostrar en una
sección del formulario o en el encabezado o pie de página. Puede incluir el mismo campo varias veces en un
formulario. Use el botón Nuevo campo como acceso directo para crear un nuevo campo.
Al seleccionar Navegación en el grupo Seleccionar de la ficha Inicio, verá el Explorador de relaciones.
Arrastre las relaciones a uno de los grupos dentro del área de navegación. No puede agregar la misma relación
dos veces. Las relaciones están disponibles en función de su configuración. Si configura una relación para que no
se muestre, no aparecerá en el Explorador de relaciones. Para obtener información acerca de cómo configurar
las opciones de visualización predeterminadas para las relaciones, consulte Elemento del panel de navegación
para una entidad principal.
Puede usar los botones Nueva 1:N y Nueva N:N como acceso directo para agregar nuevas relaciones entre
entidades.

Pestaña Archivo
Seleccione la pestaña Archivo para agregar o ver las siguientes opciones:
Nueva actividad agrega una nueva actividad
Nuevo registro agrega nuevo registro
Herramientas utiliza opciones como Importar datos, Detección de duplicados y Asistente para eliminación
en masa
Opciones Cambie la configuración de visualización predeterminada para personalizar la solución
predeterminada y administre las plantillas de correo
General
Sincronización
Actividades
Formatos
Plantillas de correo electrónico
Firmas de correo electrónico
Correo electrónico
Privacidad
Idiomas
Ayuda
Cerrar

Pestaña Inicio
La pestaña Inicio muestra los comandos de la tabla siguiente:

AGRUPAR COMANDO DESCRIPCIÓN

Guardar Guardar (Ctrl+S) Guarde el formulario.

Guardar como Crear una copia de este formulario con


otro nombre.

Guardar y cerrar Guardar el formulario y cerrar el editor


de formularios.

Publicar Publicar el formulario. Más información:


Publicación de personalizaciones

Editar Cambiar propiedades Cambiar las propiedades del elemento


seleccionado en el cuerpo.

Consulte las siguientes secciones en


función del elemento seleccionado:

- Propiedades de la ficha
- Propiedades de las secciones
- Propiedades comunes de los campos
- Propiedades de campos especiales
- Propiedades de subcuadrícula
- Propiedades del control de vista
rápida

Quitar Quite el elemento seleccionado.

Deshacer (Ctrl+Z) Deshaga la acción anterior.


AGRUPAR COMANDO DESCRIPCIÓN

Rehacer (Ctrl+Y) Rehacer la acción anterior.

Seleccionar Cuerpo Editar el cuerpo principal del formulario.

Encabezado Editar el encabezado del formulario.

Pie de página Edite el pie de página del formulario.

Navegación Edite la navegación del formulario.

Más información: Editar navegación

Formulario Reglas de negocio Ver, editar o crear nuevas reglas de


negocio con el explorador de reglas de
negocio. Nota: Para los formularios
interactivos, solo se admite el ámbito
de "Entidad" y "Todos los formularios".

Más información: Crear y editar reglas


de negocio

Propiedades del formulario Más información: Propiedades de


formularios

Vista previa Utilice esta para ver el aspecto del


formulario después de que se ha
publicado. También puede obtener una
vista previa para probar secuencias
asociadas desde eventos.

Habilitar roles de seguridad Use esta opción para establecer los


roles de seguridad que tendrán acceso
a los formularios. Más información:
Controlar el acceso a los formularios
Importante: si crea un nuevo
formulario, solo los roles de seguridad
de administrador del sistema y de
personalizador del sistema tendrán
acceso al formulario. Debe asignar el
acceso a otros roles de seguridad para
que los usuarios puedan usarlo.

Mostrar dependencias Vea los componentes de la solución


que dependen de este formulario y los
componentes de la solución necesarios
para este formulario.
AGRUPAR COMANDO DESCRIPCIÓN

Propiedades administradas El comando de propiedades


administradas tiene dos propiedades
Personalizable y Puede eliminarse.
Si se configuran estas propiedades
como falso, el formulario no se podrá
personalizar y no se podrá eliminar una
vez que se haya incluido en una
solución, exportado la solución como
una solución administrada e importado
la solución administrada en otro
entorno. Más información: Propiedades
administradas

Actualizar Combinar formularios Si procede, esta opción permite


combinar este formulario con un
formulario de una versión anterior del
formulario de Dynamics 365

Insertar la ficha

La pestaña Insertar muestra los comandos en la tabla siguiente:

GRUPO COMANDO DESCRIPCIÓN

Sección Agregue una sección a una pestaña


seleccionada. Puede incluir una sección
con una a cuatro columnas.

También puede insertar un panel de


referencia en los formularios
interactivos. El panel de referencia
también se agrega como sección al
formulario Principal: experiencia
interactiva. De forma predeterminada la
sección Panel de referencia se agrega
los formularios de caso, cuenta,
contacto y entidad personalizada.

Más información: Propiedades de


sección

3 Pestañas Tres columnas Inserte una pestaña de tres columnas


del mismo ancho.

Más información: Propiedades de


pestaña

Tres columnas Inserte una pestaña de tres columnas


con la columna central más ancha.

2 Pestañas Dos columnas Insertar una pestaña de dos columnas


con la columna derecha más ancha.
GRUPO COMANDO DESCRIPCIÓN

Dos columnas Insertar una pestaña de dos columnas


con la columna izquierda más ancha.

Dos columnas Insertar una pestaña de dos columnas


del mismo ancho.

1 Pestaña Una columna Insertar una pestaña de una columna.

Control Subcuadrícula Dé formato a una subcuadrícula e


insértela en el formulario.

Más información: Propiedades de


subcuadrícula

Separador Inserte un espacio vacío.

Formulario de vista rápida Insertar un formulario de vista rápida.

Más información: Propiedades de


control de vista rápida

Recurso de web Inserte un recurso web para incrustar


contenido de otras ubicaciones en una
página.

Más información: Propiedades de


recursos web

IFRAME Puede agregar un IFRAME a un


formulario para integrar contenido de
otro sitio web en un formulario.

Escala de tiempo Inserte un control de escala de tiempo


en el formulario. Este control muestra
la escala de tiempo de actividades
relacionadas con la entidad en un
formulario.

Vínculo de navegación Con esta opción, puede insertar un


vínculo en una navegación del
formulario.

Temporizador Inserte un control de temporizador en


un formulario de entidad para realizar
un seguimiento del tiempo con un SLA.
Más información: Agregar un control
de temporizador

Busque en Knowledge Base Inserte un control de búsqueda que los


usuarios pueden usar para buscar en
los artículos de conocimientos. Más
información: Control de búsqueda de
Knowledge Base
GRUPO COMANDO DESCRIPCIÓN

Asistente de relaciones Con esta opción, puede insertan un


control del asistente de relaciones en el
formulario.

NOTE
No se admiten los componentes siguientes en los formularios principales:
Mapas de Bing
Yammer
Fuentes de actividades

Pasos siguientes
Utilizar el formulario Principal y sus componentes
Propiedades de formularios de aplicaciones
controladas por modelos
25/11/2019 • 5 minutes to read • Edit Online

Puede acceder a Propiedades de formularios en el explorador de soluciones. En Componentes, expanda


Entidades, expanda la entidad que desea y luego seleccione Formularios. En la lista de formularios, abra el
formulario de tipo Principal. A continuación, en la pestaña Inicio, seleccione Propiedades del formulario.

La tabla siguiente enumera las propiedades de formularios:

PESTAÑA PROPIEDAD DESCRIPCIÓN

Eventos Bibliotecas Administre los


de recursos web
formularios de JavaScript
que estarán
disponibles en
el formulario y
el orden en
que se
cargarán.
PESTAÑA PROPIEDAD DESCRIPCIÓN

Controlador Configure las


es de funciones de
eventos. JavaScript de
las bibliotecas
de formularios
que se
ejecutarán
para los
eventos de
formulario
OnLoad y
OnSave , y el
orden en que
se ejecutarán.

Mostrar Nombre del Escriba un


formulario nombre
descriptivo
para las
personas. Este
nombre se
mostrará a las
personas
cuando usen
el formulario.
Si pueden
usar
formularios
múltiples
configurados
para la
entidad,
usarán este
nombre para
diferenciar los
formularios
disponibles.

Descripción Escriba una


descripción
que explique
las diferencias
de este
formulario
respecto de
otros
formularios
principales.
Esta
descripción se
muestra solo
en la lista de
formularios de
una entidad
en el
explorador de
soluciones.
PESTAÑA PROPIEDAD DESCRIPCIÓN

Asistente de Seleccione la
formulario casilla si desea
habilitar el
asistente de
formularios o
ver el
formulario
ampliado de
forma
predetermina
da.

Navegación Puede elegir


de páginas no mostrar
los elementos
de
navegación.

En los
formularios de
entidades
actualizadas
esto significa
que el valor
del nombre
principal del
registro que
se muestra
actualmente
no aparecerá
en la barra de
navegación
para permitir
la navegación
a las vistas
asociadas.

En formularios
con la
presentación
clásica, las
opciones de
navegación
para elegir las
vistas
asociadas en
el lado
izquierdo del
formulario no
se mostrarán.
PESTAÑA PROPIEDAD DESCRIPCIÓN

Imagen Cuando una Presentación Establezca el


entidad tiene ancho
un campo de máximo (en
imagen y se píxeles) para
establece la limitar el
opción ancho del
Imagen formulario. El
principal de valor
las entidades, predetermina
este valor do es 1900.
habilitará el
campo de
imagen en el
encabezado
de este
formulario.

Consulte
Habilitar o
deshabilitar
opciones de
entidad para
obtener más
información
acerca de las
opciones de la
entidad.

Presentación Escriba en
píxeles el
ancho
máximo que
desea para el
formulario
aquí.

Parámetros Parámetros Todos los


formularios se
pueden abrir
con código
mediante una
dirección URL.
La dirección
URL también
puede
contener
datos que se
pueden
transferir al
formulario
mediante una
cadena de
consulta
anexada a la
dirección URL.
Las cadenas
de consulta se
parecen a este
ejemplo:
?
p_firstName=Jim&p_lastName=Daly
PESTAÑA PROPIEDAD Como medida
DESCRIPCIÓN
de seguridad,
los
formularios
no aceptarán
parámetros
de cadena de
consulta
desconocidos.
Use esta lista
de
parámetros
para
especificar
parámetros
que este
formulario
debe aceptar
para admitir el
código que
transferirá los
datos a los
formularios
con una
cadena de
consulta.

Se
comprobarán
el nombre y el
tipo de datos,
y el formulario
no se abrirá si
se le
transfieren
parámetros
de cadena de
consulta no
válidos.

Nota: El
nombre no
puede
comenzar con
un guion bajo
() o crm_.
Debe empezar
con caracteres
alfanuméricos
seguidos de
un guion bajo
(_). Por
ejemplo,
parameter_1
o
1_parameter.
El nombre no
puede
contener
guiones (-),
dos puntos (:),
punto y coma
(;), comas (,) o
puntos (.).
PESTAÑA PROPIEDAD DESCRIPCIÓN
Dependencia Campos Cada
s que no son dependiente controlador
de eventos s de eventos
tiene una
propiedad
Campos
dependiente
s similar para
registrar
cualquier
campo que
sea necesario
para el script.
Si alguien
intenta
eliminar los
campos
dependientes,
no podrá
hacerlo.

Algunos
scripts
funcionan en
el formulario
pero no se
configuran en
un
controlador
de eventos.
Los scripts
que se inician
desde la barra
de comandos
no tienen un
lugar donde
los campos
dependientes
puedan
registrarse.
Esta
propiedad de
formulario
proporciona
un lugar para
que los
campos
dependientes
de dichos
scripts
puedan
registrarse.

Pasos siguientes
Utilizar el formulario Principal y sus componentes
Información general de propiedades de
subcuadrícula para formularios principales de
aplicaciones controladas por modelos
25/11/2019 • 11 minutes to read • Edit Online

Puede configurar una subcuadrícula en un formulario para presentar una lista de registros o un gráfico.
Seleccione Solo mostrar gráfico en la ficha Mostrar para mostrar un gráfico en lugar de una lista.
Puede acceder a las Propiedades de subcuadrícula desde el sitio de PowerApps.
1. En el sitio de PowerApps seleccione Controlado por modelos (parte inferior izquierda del panel de
navegación).

2. Expanda Datos, seleccione Entidades, seleccione la entidad que desee y, a continuación, seleccione la
pestaña Formularios.
3. En la lista de formularios, abra el formulario de tipo Principal. Luego en la pestaña Insertar, seleccione
Subcuadrícula para ver propiedades de subcuadrícula.
FICHA PROPIEDAD DESCRIPCIÓN

Presentación Nombre Requerido: nombre único de la


subcuadrícula que se usa al hacerle
referencia en los scripts. El nombre solo
puede contener caracteres
alfanuméricos y de subrayado.

Etiqueta Requerido: etiqueta localizable de la


subcuadrícula visible para los usuarios.

Mostrar etiqueta en el formulario Si la etiqueta debería mostrarse en el


formulario. Es necesario si habilita
Mostrar cuadro de búsqueda.
También puede elegir el color del
encabezado del panel.
FICHA PROPIEDAD DESCRIPCIÓN

Registros Elija entre dos opciones:

- Solo los registros relacionados: la


subcuadrícula solo mostrará los
registros relacionados con el registro
actual.
- Todos los tipos de registros: la
subcuadrícula mostrará los registros
filtrados solo por la vista
predeterminada o, si está habilitado el
selector de la vista, todas las vistas que
el usuario elija.

La opción que elija afectará al


comportamiento de control de
visualización de lista. Más información:
Mostrar comportamiento de la lista

Entidad En función de la opción que elija para


Registros, esta lista mostrará una de
las opciones:

- Solo los registros relacionados:


una lista de entidades relacionadas con
esta entidad con el nombre del campo
de búsqueda en la entidad que define
la relación entre paréntesis.
- Todos los tipos de registros: una
lista de todas las entidades.

Vista predeterminada Seleccione la vista que se aplicará de


forma predeterminada. Si no habilita
otras vistas mediante la propiedad
Selector de vista. Esta será la única
vista.

Use el botón Editar para abrir la vista


predeterminada para editar. Use el
botón Nuevo para crear una vista
nueva para usar para esta
subcuadrícula.

Mostrar cuadro de búsqueda Muestra el cuadro de búsqueda.


Cuando se selecciona esta opción se
requiere la opción Mostrar etiqueta
en el formulario.

Mostrar índice Solo los formularios que utilizan los


formularios clásicos admiten la opción
de mostrar índice.

Seleccione esta casilla si desea que esté


disponible el índice alfabético con la
lista. Esto le permite pasar a registros
que comiencen con una letra o número
determinado.
FICHA PROPIEDAD DESCRIPCIÓN

Selector de vista Tiene tres opciones:

- Desactivado: solo se puede usar la


vista predeterminada.
- Mostrar todas las vistas: permite a
los usuarios seleccionar cualquier vista.
- Mostrar las vistas seleccionadas:
use la tecla Ctrl con el cursor para
seleccionar las vistas disponibles que
desee mostrar.

Gráfico predeterminado Seleccione el gráfico para mostrar si


Solo mostrar gráfico está
seleccionado.

Solo mostrar gráfico En lugar de una lista de registros, se


mostrará un gráfico.

Mostrar selección de gráfico Si se selecciona Solo mostrar gráfico,


permite a las personas seleccionar
distintos gráficos.

Disponibilidad Especifique si la sección debe estar


disponible en el teléfono.

Formato Diseño Seleccione el número de columnas


que ocupa el control.

Cuando la sección que contiene la


subcuadrícula tiene más de una
columna, puede establecer que el
campo ocupe hasta el número de
columnas que tiene la sección.

Diseño de filas Número de filas determinará cuántos


registros se muestran en una página de
una subcuadrícula.

Si se selecciona Expandir
automáticamente para usar el
espacio disponible, el formulario
permitirá espacio para dos registros y
expandirá el espacio a medida que el
número de registros aumente. Si el
número excede Número de filas, los
usuarios pueden navegar a páginas
adicionales para ver los registros.

Si Expandir automáticamente para


usar el espacio disponible no está
seleccionado, el formulario
proporcionará espacio para el número
de registros definidos en Número de
filas y las personas podrán navegar a
páginas adicionales para ver registros
adicionales.
FICHA PROPIEDAD DESCRIPCIÓN

Controles Controles Elija para agregar controles y seleccione


el botón de radio para que tenerlos
para web, teléfono o tableta.

En formularios que utilizan la presentación clásica, las acciones realizadas en una subcuadrícula están disponibles
en la cinta de opciones. Los desarrolladores pueden personalizar el comportamiento de estas acciones o agregar
acciones adicionales personalizando la cinta de opciones.
En formularios que utilizan los formularios actualizados, las acciones para las subcuadrículas se colocan cerca de
la subcuadrícula, para que sea más fácil acceder a ellas. Sin embargo, la barra de comandos no permite agregar
acciones personalizadas. Los desarrolladores pueden editar la cinta de opciones para modificar las acciones para
las tres acciones restantes: mostrar la lista, agregar registro y eliminar registro.

Mostrar comportamiento de la lista


Al mostrar una lista en formularios con los formularios actualizados, cada subcuadrícula incluye el botón Abrir
vista en la esquina superior derecha cuando la entidad también aparece como una de las entidades incluidas
en el área de navegación del editor de formularios. Al elegir este botón se abrirá la vista. El comportamiento
cambiará en función de la opción elegida para la propiedad Registros.
Al seleccionar Solo los registros relacionados, la vista se abrirá usando una de las vistas asociadas en la misma
ventana. Para volver al formulario, use el botón Atrás o elija el valor del nombre principal del registro actual en la
barra de navegación.
Al seleccionar Todos los tipos de registros, la vista se abrirá en una nueva ventana.

Agregar comportamiento del registro


Al mostrar una lista en formularios con los formularios actualizados, cada subcuadrícula incluye el botón
Agregar registro en su lado superior derecho. Al elegir este botón podrá agregar un registro. Este
comportamiento cambiará en función de la opción elegida para la propiedad Registros y si la búsqueda es para
los registros de actividad.
Al seleccionar Solo los registros relacionados el comportamiento predeterminado es el comportamiento para
agregar los registros existentes. Los usuarios ven una búsqueda en línea para buscar un registro existente
primero. Esto ayuda a evitar la creación de registros duplicados. Si no puede encontrar un registro de existente,
puede seleccionar la opción Nuevo. Cuando se cree un nuevo registro, las asignaciones de campos definidas en
la relación se aplicarán. Más información: Asignar campos de entidades
Al seleccionar Todos los tipos de registros el comportamiento predeterminado es agregar un nuevo registro. El
formulario de creación rápida se mostrará si la entidad de destino tiene uno. De lo contrario, aparecerá el
formulario principal de la entidad predeterminada.
Si la subcuadrícula muestra actividades, las personas deberán elegir primero el tipo de actividad y después ver el
comportamiento de "agregar registro nuevo".

Eliminar comportamiento del registro


Cuando selecciona un registro en una subcuadrícula, el botón Eliminar aparece en la parte derecha de la fila.
El comportamiento de esta acción de eliminación es diferente según el tipo de relación con la entidad actual.
Cuando la subcuadrícula usa una relación 1:N (uno a varios), el comportamiento de eliminación de registro
normal es mostrar un diálogo de confirmación antes de eliminar el registro.
Cuando la subcuadrícula usa una relación N:N (varios a varios), el registro de la entidad de relación (o
intersección) relacionado con dos registros se elimina sin una confirmación y el registro no se mostrará más en la
subcuadrícula. No obstante, el registro que se mostraba no se elimina.

Pasos siguientes
Utilizar el formulario Principal y sus componentes
Información general de propiedades de pestaña para
formularios de aplicaciones controladas por modelos
25/11/2019 • 3 minutes to read • Edit Online

En el cuerpo de un formulario, las pestañas proporcionan separación horizontal. Las pestañas tienen una etiqueta
que puede mostrarse. Si se muestra la etiqueta, las pestañas se pueden expandir o contraer para mostrar u ocultar
su contenido eligiendo la etiqueta.
Las pestañas contienen hasta tres columnas y el ancho de cada columna se puede establecer en un porcentaje del
ancho total. Al crear una nueva pestaña, cada columna se rellena previamente con una sección.
Puede acceder a las Propiedades de pestaña desde el sitio de PowerApps.
1. En el sitio de PowerApps seleccione Controlado por modelos (parte inferior izquierda del panel de
navegación).

2. Expanda Datos, seleccione Entidades, seleccione la entidad que desee y, a continuación, seleccione la
pestaña Formularios.
3. En la lista de formularios, abra el formulario de tipo Principal. A continuación, haga doble clic dentro de
una de las pestañas en el lienzo del formulario para ver las propiedades de las pestañas.

La siguiente tabla muestra las propiedades que se pueden definir para las pestañas en el formulario:
FICHA PROPIEDAD DESCRIPCIÓN

Presentación Nombre Requerido: el nombre único de la


pestaña que se usa al hacerle referencia
en los scripts. El nombre solo puede
contener caracteres alfanuméricos y de
subrayado.

Etiqueta Requerido: etiqueta localizable de la


pestaña visible para los usuarios.

Muestra la etiqueta de esta ficha en Cuando se muestra la etiqueta, los


el formulario usuarios pueden seleccionar en esta
para alternar entre expandir o contraer
la pestaña. Elija si desea mostrar la
etiqueta.

Expandir esta ficha de forma El estado de la ficha puede alternar


predeterminada entre expandida o contraída usando
scripts de formulario o cuando los
usuarios seleccionan la etiqueta. Elija el
estado predeterminado para la pestaña.

Visible de forma predeterminada Mostrar la pestaña es opcional y se


puede controlar mediante scripts. Elija
si desea que la pestaña sea visible. Más
información: Opciones de visibilidad

Disponibilidad Elija si desea que la pestaña esté


disponible en el teléfono.

Formato Diseño Las pestañas pueden tener hasta tres


columnas. Use las opciones para
establecer el número de pestañas y qué
porcentaje del ancho total deben
ocupar.

Eventos Bibliotecas de formularios Especifique cualquier recurso web de


JavaScript que se usará en el
controlador de eventos
TabStateChange de la pestaña.

Controladores de eventos Configure las funciones de las


bibliotecas que deben llamarse para el
evento TabStateChange de la
pestaña. Más información: Configurar
controladores de eventos

Pasos siguientes
Utilizar el formulario Principal y sus componentes
Consideraciones de diseño para formularios
principales de aplicaciones controladas por modelos
25/11/2019 • 6 minutes to read • Edit Online

Los formularios principales son la interfaz de usuario principal donde los usuarios ven y interactúan con los datos.
Los formularios principales proporcionan el rango de opciones más amplio y están disponibles para aplicaciones
controladas por modelos, a excepción de Dynamics 365 for phones.
Uno de los objetivos principales del diseño de formularios principales es que se diseñan una vez y se implementan
en cualquier ubicación. El mismo formulario principal que diseña para una aplicación basada en modelos también
se usa en Dynamics 365 for Outlook y Dynamics 365 para tabletas. La ventaja de este método es que no es
necesario integrar cambios en formularios diferentes. No obstante, existen varios factores importantes a
considerar en el diseño de estos formularios.

Formularios personalizados para distintos grupos


Debido a la posibilidad de crear varios formularios principales y asignar distintos roles de seguridad a cada
formulario, puede presentar a los grupos distintos de su organización un formulario optimizado según el uso que
hagan de la aplicación. Incluso puede proporcionar a cada grupo distintas opciones de modo que tengan diferentes
formularios para elegir. Más información: Controlar el acceso a los formularios
Puede prever que los administradores y responsables de la toma de decisiones deseen formularios optimizados
para proporcionar una referencia rápida a los puntos de datos principales. Podrán ver gráficos más que las listas y
es posible que no introduzcan una gran cantidad de datos.
Las personas que interactúan directamente con los clientes pueden necesitar formularios adaptados a las tareas
que realizan con más frecuencia. Es posible que deseen que los formularios permitan una entrada de datos más
eficaz.
Necesitará averiguar las personas de su organización que los desean y necesitan. Este suele ser un proceso
repetitivo donde se recopila la entrada, se intentan distintas acciones y se compilan formularios para los usuarios.
Tenga en cuenta que tiene una variedad de herramientas disponibles y que no todo se tiene que realizar en el
formulario. Use las reglas de negocio, los procesos de flujo de trabajo, los diálogos y los flujos de procesos de
negocio así como los formularios para proporcionar una solución que funcione para su organización.
Tendrá que equilibrar esto con el tiempo que desee invertir administrando formularios. Crear y editar formularios
es relativamente fácil, pero si crea más formularios, tiene que administrar más formularios.

Diferencias de presentación
Aunque no es necesario administrar formularios múltiples para cada presentación, debe considerar la forma que
tomarán de las diferencias en la presentación en el formulario principal. Presentaciones de formularios principales
describe las distintas formas en que se puede presentar el formulario principal. Los factores principales a tener en
cuenta son:
Dynamics 365 for tablets no permite agregar recursos web de imagen, HTML o Silverlight a formularios.
El diseño de formularios de Dynamics 365 for tablets se genera automáticamente en función del formulario
principal. No hay ningún editor de formularios especial para formularios de Dynamics 365 for tablets. Debe
comprobar que la presentación de formularios funcione correctamente para los clientes.
Si tiene scripts incompatibles que interactúan con los elementos DOM encontrados en la aplicación web,
dichos scripts no funcionarán en los formularios de Dynamics 365 for tablets porque los mismos elementos
DOM no están disponibles.
Los formularios del panel de lectura de Dynamics 365 for Outlook no permiten el uso de scripts. La
visibilidad de elementos de formulario depende de la configuración predeterminada y no se puede cambiar
en tiempo de ejecución mediante scripts.

Rendimiento de los formularios


Los formularios que se cargan lentamente o que no responden rápidamente afectarán a la productividad y la
adopción por parte del usuario de la aplicación. Optimizar el rendimiento del formulario ofrece varias
recomendaciones que debe tener en cuenta al diseñar formularios para que las personalizaciones no afecten
negativamente al rendimiento del formulario.
Pasos siguientes
Crear y diseñar formularios
Crear y editar formularios de creación rápida
Cómo se presentan los formularios principales de
aplicaciones controladas por modelos en los distintos
dispositivos
25/11/2019 • 20 minutes to read • Edit Online

El formulario principal se usa en todos los clientes de aplicación basada en modelos Este formulario proporciona
una experiencia de usuario coherente si alguien usa un explorador web, Dynamics 365 para teléfonos, Dynamics
365 para tabletas o Dynamics 365 for Outlook.

Formularios principales
Cualquier formulario principal que exista para una entidad se puede presentar de forma diferente en función de
los factores de la siguiente tabla. Cuando diseñe un formulario principal, considere cómo funciona en cada
presentación distinta.

PRESENTACIÓN DESCRIPCIÓN

Actualizado Para las Entidades actualizadas y entidades clásicas y cualquier


entidad personalizada de Dynamics 365 (online) y Dynamics
365 (on-premises), el formulario actualizado proporciona una
nueva experiencia de usuario. Estos formularios tienen el
novísimo diseño de la barra de comandos y permiten usar
características adicionales como el autoguardado y los flujos
de procesos de negocio.

Dynamics 365 for tablets Dynamics 365 for tablets muestra el contenido del formulario
principal de una forma optimizada para tabletas.

Dynamics 365 for phones Dynamics 365 for phones muestra el contenido del formulario
principal de una forma optimizada para teléfonos.

Clásico Estos formularios son para las entidades que no se han


actualizado. Usan la cinta de opciones en lugar de la barra de
comandos y el panel de navegación del lado izquierdo del
formulario.

Estos formularios tienen un diseño de dos columnas.

Formularios actualizados
Este diagrama representa componentes comunes que se encuentran en formularios de entidad actualizados.
Para las entidades actualizadas, el diseño del formulario funciona con una gran variedad de visualizaciones y
tamaños de ventana. A medida que el ancho de la ventana disminuye, las columnas de la ficha bajan para que
pueda desplazarse y trabajar con ellas en lugar de comprimirse o requerir que se desplaza a la derecha.
La siguiente tabla resume los componentes disponibles en el formulario principal para las entidades actualizadas.

COMPONENTE RESUMEN

Barra de navegación Use los datos del mapa del sitio para proporcionar la
capacidad de pasar a diferentes áreas de la aplicación.

El panel de navegación usado en los formularios clásicos no se


incluye en el formulario actualizado. En el contexto de un
registro, la barra de navegación proporciona acceso a las
vistas de registros relacionados. En lugar de navegar hasta los
registros relacionados con el panel de navegación o mediante
la barra de navegación, si agrega subcuadrículas configuradas
para mostrar registros de entidad relacionados útiles mejorará
la experiencia para la mayoría de los usuarios.

Barra de comandos Use los datos definidos para que las cintas de opciones
ofrezcan comandos relevantes para el registro.

Se muestran los cinco primeros comandos seguidos de


puntos suspensivos ( ), lo que proporciona un menú de
control flotante para elegir comandos adicionales.

Imagen Cuando una entidad tiene un campo de imagen y la opción


Imagen principal de la entidad está definida en Imagen
predeterminada, se puede mostrar una imagen en el
encabezado cuando el formulario se configura para mostrar la
imagen.

Encabezado Los campos colocados en el encabezado siguen siendo visibles


cuando los usuarios bajan por el cuerpo del formulario.

Hasta cuatro campos se pueden poner en el encabezado. No


se permiten varias líneas de texto, recursos web o iFrames en
el encabezado. El encabezado y el pie de página comparten
algunas propiedades con las secciones.
COMPONENTE RESUMEN

Control de proceso Cuando una entidad tiene flujos de proceso de negocio


activos, el control de proceso aparece debajo del encabezado.
Más información: Flujos de proceso de negocio

Cuerpo El cuerpo es la parte desplazable del formulario que contiene


las fichas.

Fichas En el cuerpo del formulario, las pestañas proporcionan


separación horizontal. Las pestañas tienen una etiqueta que
puede mostrarse. Si se muestra la etiqueta, las pestañas se
pueden expandir o contraer para mostrar u ocultar su
contenido seleccionando la etiqueta.

Las pestañas contienen hasta tres columnas y el ancho de


cada columna se puede establecer en un porcentaje del ancho
total. Al crear una nueva pestaña, cada columna se rellena
previamente con una sección.

Secciones Una sección ocupa el espacio disponible en una columna de la


ficha. Las secciones tienen una etiqueta que se puede
mostrarse y una línea se puede mostrar debajo de la etiqueta.

Las secciones pueden tener hasta cuatro columnas e incluyen


opciones para visualizar como se mostrarán las etiquetas de
los campos en la sección.

Campos Los cambios muestran controles que los usuarios utilizan para
ver o modificar datos del registro de entidad. Los campos
pueden formatearse para ocupar hasta cuatro columnas en
una sección.

Separador Un espaciador permite agregar un campo vacío a una


columna de sección.

Subcuadrículas Las subcuadrículas permiten la presentación de una lista


dentro del formulario. La capacidad de mostrar gráficos con
una subcuadrícula no está disponible en formularios de
entidades actualizadas.

Formulario de vista rápida Un formulario de vista rápida muestra datos de un registro al


que hace referencia un campo de búsqueda en el formulario.
La entidad que es el destino de la búsqueda debe tener un
formulario de vista rápida para que se pueda agregar uno al
formulario. Más información: Crear y editar formularios de
vista rápida

Recursos web Es posible agregar recursos HTML y web de Microsoft


Silverlight a los formularios principales, pero tales recursos no
se mostrarán cuando se utilice Dynamics 365 for phones y
Dynamics 365 for tablets.
COMPONENTE RESUMEN

iFrame Marco flotante que configura para mostrar una página web
de otro sitio web. Importante:
Cuando la página mostrada en un iFrame está en otro
dominio, los exploradores aplican un nivel alto de
seguridad. Esto puede complicar los requisitos para
que el contenido de un iFrame interactúe con los
datos del formulario.
No se puede mostrar un formulario de entidad en un
iFrame incrustado en otro formulario de entidad.

Mapas de Bing Cuando el control se encuentra en un formulario de una


entidad actualizada y el valor de configuración del sistema
Habilitar los Mapas de Bing está habilitada con una clave
válida de los mapas de Bing, este control se puede usar una
vez en un formulario para mostrar la ubicación de una de las
direcciones de una entidad actualizada. Más información:
Configurar mapas de Bing

Pie de página Cualquier número de campos, recursos web o iFrames se


agregará al pie de página. Los campos son de solo lectura
cuando se muestran en el pie de página. El encabezado y el
pie de página comparten algunas propiedades con las
secciones.

Barra de estado La barra de estado muestra el campo de estado del registro,


un área de notificación y un botón Guardar.

Formularios de Dynamics 365 para teléfonos y tabletas


La mayoría de las entidades del sistema y las entidades personalizadas se encuentran disponibles para Dynamics
365 for phones y Dynamics 365 for tablets. El formulario principal de estas entidades se transforma en una
presentación optimizada para teléfonos o tabletas.
Entidades habilitadas de Dynamics 365 para teléfonos y tabletas
Solo las entidades que están habilitadas para Dynamics 365 for phones y Dynamics 365 for tablets utilizan esta
presentación del formulario principal. Más información: Entidades mostradas en Dynamics 365 for phones y
Dynamics 365 for tablets
Diseño de formularios
Dynamics 365 for phones y Dynamics 365 for tablets toma muchos de los elementos del formulario principal y
los muestra de forma optimizada para teléfonos y tabletas. Los siguientes diagramas muestran el reflujo desde la
aplicación web a las aplicaciones para tableta y teléfono.
Aplicación web
Aplicación para tabletas

Aplicación para teléfonos

Los elementos de formulario se transforman en un diseño panorámico amplio en Dynamics 365 for tablets, donde
los usuarios pueden pasar el dedo por la pantalla para cambiar los elementos visibles en una ventana gráfica. En
Dynamics 365 for phones, los usuarios deslizan la pantalla para ver otra columna, o panel de elementos, y el
control de proceso aparece sobre cada columna.
Elemento de la ventana gráfica
Los siguientes elementos están siempre visibles dentro de la ventana gráfica en el contexto de un formulario:
Barra de navegación
La barra de navegación es una presentación del mapa del sitio optimizada para el funcionamiento táctil. Más
información: Cambiar opciones de navegación
Inicio
El botón de inicio lleva a los usuarios al panel que es la página de inicio para Dynamics 365 for phones y
Dynamics 365 for tablets.
Control de proceso
Si la entidad tiene un proceso de negocio habilitado, aparecerá en la esquina superior derecha junto al control de
búsqueda en Dynamics 365 for tablets, y en la parte superior de la pantalla en Dynamics 365 for phones.
Buscar
Los usuarios pueden pulsar el control de búsqueda para abrir la pantalla para buscar registros.
Barra de comandos
De forma predeterminada, algunos de los comandos que aparecen en la aplicación ejecutándose en un explorador
web no aparecen en las aplicaciones de Dynamics 365 for phones y Dynamics 365 for tablets. De manera similar a
la aplicación web, la barra de comandos es contextual, por lo que los comandos disponibles cambian en función de
lo que se visualice o seleccione. Más información: Cambiar comandos
Elementos de formulario
Los elementos de formulario mostrados se toman del formulario principal y aparecen como una serie de paneles
que los usuarios ven a través de la ventana gráfica.
En Dynamics 365 for tablets el primer panel muestra la información de contacto de las relaciones existentes para
el registro. En Dynamics 365 for phones, el primer panel también muestra campos de encabezado del formulario
sobre las ventanas de relación.

Para los formularios Contacto y Usuario, el elemento muestra una tarjeta de comunicación correspondiente al
registro. La tarjeta de comunicación proporciona botones para iniciar la comunicación con el contacto. Para otras
entidades, aparece una tarjeta de comunicación si hay un formulario de vista rápida Contacto incrustado en el
formulario principal.
Puede mostrar ventanas adicionales de acuerdo con las relaciones de las entidades, pero no es posible
personalizar las ventanas de las siguiente entidades:

ENTIDAD MOSAICOS

Cuenta Propietario

Contacto Nombre de la compañía, propietario


ENTIDAD MOSAICOS

Cliente potencial Propietario

Oportunidad Cuenta, propietario

Puede personalizar las ventanas restantes con el editor de formularios. El orden es fijo, pero puede establecer qué
elementos son visibles en el panel de relaciones.
En Dynamics 365 for tablets, el segundo panel comienza con el nombre de la primera pestaña del formulario.
Todos los campos que están incluidos en el encabezado se incluyen; posteriormente, se agrega el contenido de la
primera pestaña. En Dynamics 365 for phones, los encabezados aparecen en la primera columna.

Si hay un flujo de proceso activo para el formulario, la tercera pestaña muestra las tareas de la fase actual del
proceso en Dynamics 365 for tablets. En Dynamics 365 for phones, el control de proceso flota sobre los paneles,
se expande sobre el panel actual del usuario cuando se selecciona, y siempre es visible y permite actuar.
Los paneles restantes del formulario incluyen el contenido de las pestañas del formulario. Las subcuadrículas
encontradas se muestran como un panel diferente.
El formulario de Dynamics 365 for phones y Dynamics 365 for tablets siempre muestra las etiquetas de pestañas
y subcuadrículas. El valor de Mostrar etiqueta en el formulario no se aplica.

NOTE
Para optimizar el rendimiento de los dispositivos móviles, el número de objetos está limitada a 5 pestañas o 75 campos y 10
subcuadrículas.

Los formularios para Dynamics 365 for phones y Dynamics 365 for tablets no admiten lo siguiente:
Mapas de Bing
Yammer
Fuentes de actividades
Temas
Además, las imágenes de la entidad son visibles en las vistas de lista y tarjetas de contacto, pero no dentro del
formulario real.
Varios formularios
Dynamics 365 for phones y Dynamics 365 for tablets admite varios formularios, pero no proporcionan a los
usuarios ningún método para cambiar entre formularios si pueden acceder a más de uno. Los usuarios verán el
primer formulario del pedido de formularios al que tengan acceso.
Por ejemplo, si tiene los siguientes formularios principales para la entidad de oportunidad y ha asignado los
siguientes roles de seguridad a cada uno, verá el pedido de formularios indicado en la tabla siguiente.

PEDIDO DE FORMULARIOS NOMBRE DEL FORMULARIO ROLES DE SEGURIDAD

1 Primer formulario de ventas Comercial

2 Segundo formulario de ventas Comercial y jefe de ventas

3 Tercer formulario de ventas Jefe de ventas

4 Cuarto formulario de ventas Vicepresidente de ventas

Los usuarios con el rol de comercial siempre verán el primer formulario de ventas.
Los usuarios con el rol de jefe de ventas siempre verán el segundo formulario de ventas.
Los usuarios con el rol de vicepresidente de ventas siempre verán el cuarto formulario de ventas.

Formularios clásicos
En el siguiente diagrama se muestran los componentes principales del formulario usados en la presentación
clásica.

Los formularios de entidades actualizadas han heredado muchos componentes de los formularios clásicos,
aunque hay diferencias significativas.
Los formularios que usan la presentación clásica no incluyen la barra de navegación y la cinta de opciones se usa
en lugar de la barra de comandos. Estos formularios no admiten las imágenes de entidad, el control de proceso,
los formularios de vista rápida, el guardado automático ni los mapas de Bing. Los campos del encabezado no se
pueden editar.
El Asistente de formulario se expone para determinadas entidades, como Article .

Pasos siguientes
Creación y diseño de formularios
Controlar el acceso a formularios de aplicaciones
controladas por modelos
25/11/2019 • 9 minutes to read • Edit Online

Hay dos formas para controlar el acceso a los formularios principales:


Desactivar un formulario principal
Puede establecer un estado activo o inactivo para los formularios principales. Esta característica se incluyó
inicialmente para administrar los nuevos formularios incluidos cuando los entornos de Common Data
Service realizaban una actualización, pero se puede usar para impedir que los usuarios puedan usar
formularios principales.
Asignar roles de seguridad al formulario principal
Use este método para poner un formulario principal a disposición de grupos específicos.
Diferentes personas de la organización pueden interactuar con los mismos datos de maneras distintas. Los
administradores pueden depender de la capacidad de buscar rápidamente información en un registro y el
personal de servicio podría necesitar un formulario que simplifique la entrada de datos. Puede satisfacer distintos
requisitos mediante la asignación de formularios a los roles de seguridad a los que pertenecen los distintos
grupos de usuarios.
Para conocer los procedimientos paso a paso, consulte Assign security roles to forms.
Si tiene más de un formulario principal u otro tipo de formulario definido para una entidad, puede seleccionar los
formularios que podrán utilizar los usuarios en función de sus roles de seguridad. Dado que cada entidad debe
poder mostrar un formulario para cualquier usuario, al menos un formulario debe designarse como formulario
de "reserva" (un formulario visible para los usuarios cuyos roles de seguridad no tienen ningún formulario
explícitamente asignado).

NOTE
Los formularios de creación rápida, vista rápida y formularios de tarjeta no se pueden asignar a roles de seguridad.

En el editor de formularios o desde la cuadrícula de formularios puede asignar roles de seguridad a un formulario
principal. No obstante, mientras haya solo un formulario para la entidad, no podrá desactivar la opción
Habilitado para reserva en el cuadro de diálogo Asignar roles de seguridad. En este caso, aunque haya
asignado roles de seguridad al formulario, cualquier persona asociada a un rol de seguridad que no incluyó podrá
ver el formulario debido a que está habilitado para reserva.
Después de crear un segundo formulario principal para la entidad, podrá desactivar la opción Habilitado para
reserva para uno de ellos. El sistema siempre garantizará que al menos un formulario esté habilitado para
reserva.
Si tiene más de un formulario principal, puede especificar que un orden de formularios para controlar el
formulario que podrá ver un usuario sea aquel que ve de forma predeterminada. Si hay más de un formulario
que pueden usar, puede cambiar los formularios y aquel que elija será su formulario predeterminado hasta que
elija otro. Esta preferencia se almacena en el explorador. Si usa un equipo o un explorador diferente, verá el
formulario predeterminado original.
Estrategias para administrar el formulario de reserva
Algunas estrategias para administrar el formulario de reserva son:
Todos los usuarios ven el mismo formulario
Si no requiere formularios múltiples para una entidad, no necesita un formulario de reserva.
Crear un formulario de contingencia
Si usa formularios basados en roles porque desea limitar la información que los usuarios pueden ver o editar,
considere la posibilidad de crear un formulario que muestre la información mínima. A continuación, en el cuadro
Asignar roles de seguridad, seleccione Mostrar solo a estos roles de seguridad determinados, pero no
seleccione ningún rol excepto el de administrador del sistema y seleccione Habilitado para reserva. El resultado
es que este formulario nunca lo verá nadie excepto el administrador del sistema y cualquier usuario cuyos roles
de seguridad no se hayan asociado a un determinado formulario. Podría incluir un recurso web HTML en el
formulario con la información sobre los motivos de mostrar poca información en el formulario y un vínculo a
información sobre cómo solicitar que se le agregue a un rol de seguridad asociado a un formulario o incluir un
nuevo rol de seguridad para un formulario.

NOTE
No se puede incluir un recurso web en un encabezado o pie de página de formulario.

Crear un formulario genérico


Si usa formularios basados en roles para proporcionar una experiencia personalizada en función del rol de un
usuario, puede establecer el formulario menos especializado como formulario de reserva y configurarlo para que
todo el mundo pueda verlo. A continuación, cree formularios personalizados para roles de seguridad específicos y
configúrelos para que se muestren únicamente a los roles de seguridad que los necesiten. No habilite estos
formularios para reserva. Por último, en la lista Formularios, utilice el diálogo Orden de los formularios para
especificar los formularios que desee mostrar clasificándolos del más exclusivo al menos exclusivo. El formulario
de reserva estará en la parte inferior de la lista. Con esta estrategia, los usuarios que vean el formulario
personalizado para su rol como formulario predeterminado, todavía podrán usar el selector de formulario para
seleccionar el formulario más común si lo desean. Cualquier formulario que seleccionen se mantendrá como su
formulario predeterminado hasta que seleccionen otro.

Usar el scripting de formularios


El contexto del formulario de cliente API (formContext) proporciona una referencia al formulario o a un elemento
en el formulario, como por ejemplo, un control de vista rápida o una fila de una cuadrícula editable, en el que se
ejecuta el código actual. Más información: Contexto de formulario de la API del cliente

IMPORTANT
El objeto Xrm.Page está obsoleto, y ahora debe utilizar el método getFormContext de la pasada en objeto de contexto de
ejecución para devolver referencia al formulario adecuado o a un elemento en el formulario.

Vea también
Asignar roles de seguridad a formularios
Agregar un campo a un formulario de aplicación
controlada por modelos
25/11/2019 • 3 minutes to read • Edit Online

Si un formulario de PowerApps para una entidad estándar no cumple los requisitos empresariales de su
organización, puede personalizar el formulario cambiando los campos existentes o agregando nuevos campos. Si
bien puede que sea más fácil editar los campos existentes en un formulario, a veces es mejor agregar un campo
para abordar un escenario específico de negocio.
En este tema, agregará un campo a un formulario.
1. Inicie sesión en PowerApps.

IMPORTANT
“Si el modo de diseño Controlado por modelos no está disponible, puede que tenga que Crear un entorno.

2. Expanda Datos, seleccione Entidades, seleccione la entidad que desee y, a continuación, seleccione la
pestaña Formularios.
3. En la lista, abra un formulario con el tipo Principal para editarlo.
4. En el formulario, haga clic en la sección a la que desea agregar un campo y, en el panel Explorador de
campos, haga doble clic en el campo desee agregar al formulario.

TIP
Cuando agrega un campo de conjunto de opciones en el formulario, la lista desplegable que contiene los valores del
conjunto de opciones puede mostrar sólo dos valores. Los usuarios deben desplazarse para ver más valores de la
lista. Si desea mostrar más de dos valores sin que los usuarios tengan que desplazarse, agregue uno o varios
controles Separador bajo el campo del conjunto de opciones en el formulario. Cada control Separador
proporciona un espacio para un valor de conjunto de opciones adicional. Por ejemplo, si desea mostrar cuatro
valores en la lista desplegable sin desplazarse, agregue dos controles Separador bajo el campo del conjunto de
opciones en el formulario.

5. Para mostrar una vista previa del aspecto que tendrá el formulario y cómo funcionan los eventos:
a. En la ficha Inicio, haga clic en Vista previa y, a continuación, seleccione Formulario de creación,
Formulario de actualización o Formulario de sólo lectura.
b. Para cerrar el formulario de vista previa, haga clic en Cerrar .
c. Para publicar personalizaciones del formulario está editando, con el formulario abierto, haga clic en
Publicar.
6. Cuando haya terminado de editar el formulario, haga clic en Guardar y cerrar.
7. Para publicar las personalizaciones de todos los componentes no publicados a la vez, haga clic en Archivo
y luego haga clic en Publicar todas las personalizaciones.
NOTE
La publicación de personalizaciones pueden interferir en el funcionamiento normal del sistema. Le recomendamos que
publique cuando perjudique menos a los usuarios.

Pasos siguientes
Crear y diseñar formularios
Mostrar u ocultar elementos de formularios de
aplicaciones controladas por modelos
25/11/2019 • 2 minutes to read • Edit Online

Varios tipos de elementos de formulario tienen la opción para mostrarse u ocultarse de forma predeterminada.
Todos los recursos web, fichas, secciones, campos e iFrames proporcionan esta opción. Con scripts de formulario
o reglas de negocio, la visibilidad de estos elementos se puede controlar para crear un formulario dinámico para
proporcionar una interfaz de usuario que se adapte a las condiciones del formulario.

NOTE
Ocultar elementos de formulario no es una forma recomendada para imponer la seguridad. Existen varias formas en que
los usuarios pueden ver todos los elementos y datos en el formulario cuando los elementos están ocultos.

En lugar de diseñar formularios que dependen de scripts para controlar la visibilidad de opciones, piense si flujo
de proceso de negocio, un diálogo o el cambio a otro formulario pueden ajustarse mejor a sus requisitos. Si usa
scripts, asegúrese de que los elementos que puedan estar ocultos estén ocultos de forma predeterminada.
Muéstrelo solo con scripts cuando su lógica lo exija. De esta forma no se mostrará en las presentaciones que no
admiten scripts.

Pasos siguientes
Información general de la interfaz del editor de formularios
Cambiar la navegación en un formulario de
aplicación controlada por modelos
25/11/2019 • 5 minutes to read • Edit Online

La navegación en un formulario permite que los usuarios de la aplicación vean listas de registros relacionados.
Cada relación de entidad tiene propiedades para controlar si se debe mostrar. Más información: Elemento del
panel de navegación para una entidad principal
Las relaciones de entidad configuradas para mostrarse se pueden reemplazar en el editor de formularios. También
puede incluir vínculos de navegación para mostrar recursos web u otros sitios web mediante la navegación del
formulario.
Para ver instrucciones paso a paso, consulte Crear y editar relaciones de entidades para Common Data Service
Para habilitar la edición de la navegación debe seleccionar primero Navegación en el grupo Seleccionar de la
pestaña Inicio del diseñador de formularios.

En el panel derecho, en Explorador de relaciones puede filtrar por las relaciones 1:N (uno a varios) o N:N
(varios a varios), o ver todas las relaciones disponibles. La opción Mostrar únicamente la casilla de
verificación sin usar de relaciones está deshabilitada y seleccionada. Cada una de las relaciones se puede
agregar una vez.

Para agregar una relación desde el Explorador de relaciones haga doble clic en la relación y se agregará debajo
de la relación actualmente seleccionada en el área de navegación. Haga doble clic en una relación en el área de
navegación y podrá cambiar la etiqueta en la pestaña Visualización. Asimismo, en la pestaña Nombre, puede
obtener información sobre la relación. Use el botón Editar para abrir la definición de la entidad.
Hay cinco grupos en el área de navegación. Puede arrastrarlos para cambiar su ubicación y hacer doble clic
encima para cambiar la etiqueta, pero no puede quitarlos. Estos grupos solo se mostrarán cuando contengan algo.
Si no desea que un grupo aparezca, no le agregue ningún elemento.
Use el botón Vínculo de navegación en el grupo Control de la ficha Insertar para agregar un vínculo a un
recurso web o una dirección URL externa.

Propiedades de los vínculos de navegación


Los vínculos de navegación tienen las siguientes propiedades:

PROPIEDAD DESCRIPCIÓN

Nombre Requerido: texto que se muestra como una etiqueta.

Icono Use un recurso web de 32 x 32 píxeles. Se recomienda usar


una imagen PNG con un fondo transparente.

Recurso web Especifique un recurso web para mostrar en el panel principal


del formulario.

Dirección URL externa Especifique la dirección URL de una página para mostrar en el
panel principal del formulario.

Avisos de privacidad
Cuando agrega el control de vista previa de sitios web a un formulario, al cargarse, se enviará a Bing (un servicio
al consumidor) cierta información de identificación del dispositivo (el nombre del dispositivo, como iPhone, el
sistema operativo y la versión del sistema operativo, el explorador y la versión del explorador). Por tanto, los datos
de cliente enviados a Bing estarán sujetos a la Declaración de privacidad de Microsoft. Al agregar este control,
manifiesta su conformidad para que este conjunto limitado de datos se envíe el servicio Bing. Tenga en cuenta
que puede quitar el control en cualquier momento para dejar de usar esta funcionalidad.
Cuando agrega el control multimedia a un formulario, se enviará cierta información sobre el dispositivo que
permite identificarlo (el nombre del dispositivo, como iPhone, el sistema operativo y la versión del sistema
operativo, el explorador y la versión del explorador) al servicio al que está llamando (por ejemplo, YouTube o
Servicios multimedia de Azure) y esta información quedará sujeta a los términos de la declaración de privacidad
de ese servicio. Al agregar este control, está de acuerdo en que este conjunto limitado de datos se envíe al servicio
externo al que está llamando. Tenga en cuenta que puede quitar el control en cualquier momento para dejar de
usar esta funcionalidad.

Pasos siguientes
Información general de la interfaz de usuario del editor de formularios
Agregar navegación de formulario de aplicación
controlada por modelos para entidades relacionadas
25/11/2019 • 5 minutes to read • Edit Online

En este tema, usará el panel de navegación de formulario que se usa para agregar vínculos a las entidades
relacionadas. Cuando el usuario de una aplicación hace clic en uno de estos vínculos en un registro, se muestra la
vista asociada para la entidad.
1. Inicie sesión en PowerApps.

IMPORTANT
“Si el modo de diseño Controlado por modelos no está disponible, puede que tenga que Crear un entorno.

2. Expanda Datos, seleccione Entidades, seleccione la entidad que desee y, a continuación, seleccione la
pestaña Formularios.
3. En la lista, abra un formulario con el tipo Principal para editarlo.
4. Para agregar un vínculo a una entidad relacionada, en la pestaña Inicio, en el grupo Seleccionar, elija
Navegación.
El panel Explorador de relaciones se abre en la parte derecha del editor de formularios.
5. En el panel Explorador de relaciones, en la lista Filtro, seleccione una de las siguientes opciones:
Relaciones disponibles. Muestra todas las entidades que pueden relacionarse con la entidad con la
que está asociado el formulario.
Relaciones de 1:N. Muestra las entidades que pueden relacionarse en una relación de 1:N con la
entidad con la que está asociado el formulario.
Relaciones de N:N. Muestra las entidades que pueden relacionarse en una relación de N:N con la
entidad con la que está asociado el formulario.

NOTE
Si no aparece ninguna entidad relacionada en el panel Explorador de relaciones, no puede crear un vínculo en este
formulario con una entidad relacionada.

6. Seleccione la entidad relacionada con la que desea establecer el vínculo, arrástrela hasta el Panel de
navegación y colóquela donde desee que se muestre.

TIP
También puede crear una nueva relación eligiendo Nueva 1:N o Nueva N:N en el panel Explorador de relaciones.

7. Para modificar las propiedades de este o cualquier otro vínculo a una entidad relacionada en el Panel de
navegación, seleccione el vínculo y, a continuación, en la pestaña Inicio elija Cambiar propiedades.
8. En el cuadro de diálogo Propiedades de la relación, en la pestaña Mostrar, escriba una nueva etiqueta
para mostrar.
9. En la pestaña Nombre, elija Editar para ver o modificar los detalles asociados con el registro de relación.
10. Elija Aceptar.
11. Obtenga una vista previa para comprobar cómo aparecerá el formulario principal y cómo funcionarán los
eventos:
a. En la pestaña Inicio, elija Vista previa y, a continuación, seleccione Formulario de creación,
Formulario de actualización o Formulario de sólo lectura.
b. Para cerrar el formulario Vista previa, en el menú Archivo, elija Cerrar.
12. Cuando haya terminado de modificar el formulario, elija Guardar y cerrar para cerrarlo.
13. Cuando haya completado las personalizaciones, publíquelas:
Para publicar las personalizaciones únicamente para el componente que está editando actualmente,
en la barra de navegación o en el panel de navegación, elija la entidad en la que ha estado trabajando,
y elija Publicar.
Para publicar personalizaciones de todos los componentes no publicados a la vez, en el Panel de
navegación, elija Entidades y, en la barra de comandos, elija Publicar todas las personalizaciones.

NOTE
La instalación de una solución o la publicación de personalizaciones puede interferir en el funcionamiento normal del sistema.
Le recomendamos que programe la importación de una solución cuando perjudique lo menos posible a los usuarios.

Pasos siguientes
Crear y editar relaciones entre entidades para Common Data Service
Utilizar el formulario principal de la aplicación
controlada por modelos y sus componentes
25/11/2019 • 14 minutes to read • Edit Online

Los formularios en las aplicaciones basadas en la interfaz unificada proporcionan una mejor experiencia de
usuario para la productividad óptima de agentes y ayudan a mantener el contexto mientras se trabaja en
registros relacionados. Puede ver los formularios en el explorador de soluciones. El tipo de formulario de los
formularios nuevos es Principal.
En este tema se explica cómo editar un formulario principal y agregar, modificar o cambiar varios elementos del
formulario.

Abrir el editor de formularios


Para editar un formulario o agregar o cambiar elementos, use el editor de formularios. El editor de formularios
permite editar los formularios para todas las aplicaciones basadas en la interfaz unificada.
Siga las instrucciones a continuación para acceder al editor de formularios.

NOTE
Si crea componentes de la solución nuevos en el proceso de edición del formulario, los nombres de los componentes
usarán el prefijo de personalización del editor de soluciones de la solución predeterminada y estos componentes solo se
incluirán en la solución predeterminada. Si desea que los nuevos componentes de la solución se incluyan en una solución
no administrada específica, abra el editor de formularios a través de esa solución no administrada.

Acceda al editor de formularios a través del diseñador de aplicaciones en PowerApps


1. Inicie sesión en PowerApps.
2. En el panel de navegación de la izquierda seleccione Aplicaciones, seleccione la aplicación que desee y,
en la barra de herramientas, seleccione Editar.

3. En el lienzo del diseñador de aplicaciones, selecciones la flecha hacia abajo junto a una entidad para
ver los formularios disponibles para esa entidad.

4. Seleccione el botón para abrir el diseñador correspondiente al formulario que se va a editar.

5. En el diseñador de formularios, realice los cambios y seleccione Guardar para guardar los cambios y
Publicar para publicarlos para su uso en la aplicación.
NOTE
Si se han realizado otros cambios en la aplicación, publíquelos utilizando la opción de publicación de nivel de aplicación.
Consulte Validar y publicar una aplicación mediante el diseñador de aplicaciones para obtener más información.

NOTE
El formulario principal del cliente web también es compatible con el Centro de servicio al cliente y está disponible para
editar con el diseñador de aplicaciones.

Acceso al editor de formularios a través de la solución predeterminada


1. Inicie sesión en PowerApps.
2. Expanda Datos, seleccione Entidades, seleccione la entidad que desee y, a continuación, seleccione la
pestaña Formularios.
3. En la lista de formularios, abra el formulario de tipo Principal.
Acceso al editor de formularios de una solución no administrada
1. Abra soluciones.
2. Haga doble clic en la solución no administrada que desea utilizar. El tipo de solución, administrada o no
administrada, se muestra en la columna Tipo de paquete.
3. En la lista de componentes, busque la entidad con el formulario que desea editar. Si la entidad no está
presente, deberá agregarla.
Agregar una entidad para una solución no administrada
1. Con la solución no administrada abierta en el explorador de soluciones, seleccione el nodo Entidades y,
en la barra de herramientas situada encima de la lista, seleccione Agregar existente.

2. En el cuadro de diálogo Seleccionar componentes de la solución, con el selector Tipo de


componente definido en Entidad, seleccione la entidad que desee agregar y seleccione Aceptar.
3. Si aparece el cuadro de diálogo Faltan componentes necesarios, puede seleccionar No, no incluir los
componentes necesarios si no se piensa exportar esta solución no administrada a otra organización. Si
no desea incluir los componentes necesarios que faltan en este momento, puede agregarlos más adelante.
Recibirá una notificación de nuevo si exporta esta solución en el futuro.
4. En el explorador de soluciones, expanda la entidad con el formulario que desee editar y seleccione
Formularios.
5. En la lista de formularios, abra el formulario de tipo Principal.
Publicar los cambios para su uso en la aplicación
Determinadas personalizaciones que realizan cambios en la interfaz de usuario requieren que se publiquen antes
de que los usuarios puedan usarlas en la aplicación. Para publicar la personalización, en la barra de herramientas
del explorador de soluciones, seleccione Publicar todas las personalizaciones.

Interfaz de usuario del editor de formularios


Para conocer en detalle la interfaz de usuario del editor de formularios, consulte Información general de la
interfaz de usuario del editor de formularios.

Propiedades del formulario


Para conocer en detalle las propiedades del formulario, consulte Propiedades del formulario.

Opciones de visibilidad
Varios tipos de elementos de formulario tienen la opción para mostrarse u ocultarse de forma predeterminada.
Pestañas, secciones y campos proporcionan esta opción. Con scripts de formulario o reglas de negocio, la
visibilidad de estos elementos se puede controlar para crear un formulario dinámico para proporcionar una
interfaz de usuario que se adapte a las condiciones del formulario.

NOTE
Ocultar elementos de formulario no es una forma recomendada para imponer la seguridad. Existen varias formas en que
los usuarios pueden ver todos los elementos y datos en el formulario cuando los elementos están ocultos. Para obtener
más información, consulte Mostrar u ocultar elementos de formulario.

Propiedades de las pestañas


En el cuerpo de un formulario, las pestañas proporcionan separación horizontal. Las pestañas tienen una
etiqueta que puede mostrarse. Si se muestra la etiqueta, las pestañas se pueden expandir o contraer para
mostrar u ocultar su contenido eligiendo la etiqueta. Para conocer en detalle las propiedades de la pestaña,
consulte Propiedades de la pestaña.

Propiedades de las secciones


Una sección en un formulario ocupa el espacio disponible en una columna de la ficha. Las secciones tienen una
etiqueta que se puede mostrarse y una línea se puede mostrar debajo de la etiqueta. Para conocer en detalle las
propiedades de la sección, consulte Propiedades de la sección.

Escala de tiempo
La línea de tiempo muestra actividades relacionadas para una entidad específica.
Se admiten los siguientes tipos de actividades: tarea, cita, llamada de teléfono, correo electrónico, actividad social,
actividad personalizada.
La escala de tiempo también muestra notas y publicaciones del sistema y del usuario. Muestra las actividades
que tienen el campo Referente a definido como la entidad que está visualizando. Para notas, el campo
Referente a no se muestra al usuario; Es implícito cuando se creó desde la escala de tiempo.
Cada actividad que aparece en la escala de tiempo tendrá las mismas acciones rápidas que están disponibles en
la barra de comandos de la actividad.
Propiedades comunes de los campos
Para conocer en detalle las propiedades de campos comunes, consulte Propiedades de campos comunes.

Propiedades de campos especiales


Las propiedades de todos los campos aparecen en Propiedades comunes de los campos, pero algunos campos
tienen propiedades adicionales. Para obtener más información, consulte Propiedades de campos especiales.

Propiedades de subcuadrícula
Puede configurar una subcuadrícula en un formulario para presentar una lista de registros o un gráfico. Para
conocer en detalle las propiedades de la subcuadrícula, consulte Propiedades de la subcuadrícula.

Propiedades del control de vista rápida


Un control de vista rápida sobre un formulario muestra datos de un registro seleccionado en una búsqueda en el
formulario. Para explorar las propiedades del control de vista rápida, consulte Propiedades del control de vista
rápida.

Propiedades de recurso web


Puede agregar o editar recursos web en un formulario para aumentar su atractivo o utilidad para los usuarios de
la aplicación. Los recursos web habilitados para formularios son imágenes, archivos HTML o controles de
Silverlight. Conocer en detalle las propiedades de recursos web. Vaya a Propiedades de recursos web.

Propiedades de IFRAME
Puede agregar los iFrame a un formulario para integrar contenido de otro sitio web en un formulario. Para
conocer más sobre las propiedades de IFRAME, consulte Propiedades de IFRAME.

Editar la navegación
La navegación en el formulario permite que los usuarios vean listas de registros relacionados. Cada relación de
entidad tiene propiedades para controlar si se debe mostrar. Más información: Elemento del panel de navegación
para una entidad principal
Las relaciones de entidad configuradas para mostrarse se pueden reemplazar en el editor de formularios.
Para ver instrucciones paso a paso, consulte Agregar navegación del formulario para las entidades relacionadas.
Para habilitar la edición de la navegación debe seleccionar primero Navegación en el grupo Seleccionar de la
ficha Inicio.
En el Explorador de relaciones puede filtrar por las relaciones 1: N (uno a varios) o N:N (varios a varios), o ver
todas las relaciones disponibles. La opción Mostrar únicamente la casilla de verificación sin usar de
relaciones está deshabilitada y seleccionada. Cada una de las relaciones se puede agregar una vez.
Para agregar una relación desde el Explorador de relaciones haga doble clic y se agregará debajo de la
relación actualmente seleccionada en el área de navegación. Haga doble clic en una relación en el área de
navegación y podrá cambiar la etiqueta en la pestaña Visualización. En la pestaña Nombre, puede obtener
información sobre la relación. Use el botón Editar para abrir la definición de la entidad.
Hay cinco grupos en el área de navegación. Puede arrastrarlos para cambiar su ubicación y hacer doble clic
encima para cambiar la etiqueta, pero no puede quitarlos. Estos grupos solo se mostrarán cuando contengan
algo. Si no desea que un grupo aparezca, no le agregue ningún elemento.
Configurar controladores de eventos
Un controlador de eventos se compone de una referencia a un recurso web de JavaScript y a una función
definida dentro de ese recurso web que se ejecutará cuando se produzca el evento. Para obtener más
información sobre la configuración de controladores de eventos, consulte Configurar controladores de eventos.

Pasos siguientes
Crear y diseñar formularios
Crear y editar formularios de creación rápida
Crear y editar formularios de vista rápida
Abrir el editor de formularios de una aplicación
controlada por modelos
25/11/2019 • 4 minutes to read • Edit Online

El editor de formularios es donde debe diseñar los formularios colocando componentes como secciones, pestañas,
campos y controles sobre el lienzo del editor de formularios. En este tema aprenderá varias formas de acceder al
editor de formularios.
Si crea componentes de la solución nuevos en el proceso de edición del formulario, como recursos web, los
nombres de los componentes usarán el prefijo de personalización del editor de soluciones de la solución
predeterminada y estos componentes solo se incluirán en la solución predeterminada. Si desea que los nuevos
componentes de la solución se incluyan en una solución no administrada específica, debe abrir el editor de
formularios a través de esa solución no administrada.

Acceder al editor de formularios desde el sitio de PowerApps


1. Inicie sesión en PowerApps.
2. Seleccione Datos > Entidades y, a continuación, seleccione la entidad que desee, como la entidad Cuenta.
3. Seleccione la pestaña Formularios y abra el formulario que desee, como el formulario principal Cuenta.

Acceder al editor de formularios desde el explorador de soluciones


1. Abra el explorador de soluciones.
2. En Componentes, expanda Entidades y, a continuación, expanda la entidad que desea y haga clic en
Formularios.
3. En la lista de formularios, haga clic en el formulario que desea editar.

Acceder al editor de formularios mediante la barra de comandos dentro


de una aplicación controlada por modelos
1. Abra un registro.
2. Si hay varios formularios principales para la entidad, compruebe que el formulario es el que desea editar. Si
no lo es, use el selector de formularios para elegir el formulario que desea editar.
3. Seleccione el botón Más comandos
4. Seleccione Editor de formularios.

Acceder al editor de formularios desde la aplicación


Puede acceder al editor de formularios a través de la barra de comandos o la cinta, en función de la entidad.
Ambos métodos abrirán el formulario en el contexto de la solución predeterminada.

Acceso al editor de formularios de una solución no administrada


1. Abra soluciones.
2. Haga doble clic en la solución no administrada que desea utilizar.
3. Busque la entidad con el formulario que desea editar. Si la entidad no está presente, deberá agregarla. Más
información: Agregar una entidad a una solución no administrada
Agregar una entidad para una solución no administrada
1. Seleccione el nodo Entidades y, en la barra de herramientas situada encima de la lista, haga clic en
Agregar existente.
2. En el cuadro de diálogo Seleccionar componentes de la solución, con el selector Tipo de componente
definido en Entidad, seleccione la entidad que desee agregar y haga clic en Aceptar.
3. Si aparece el cuadro de diálogo Faltan componentes necesarios, puede hacer clic en No, no incluir los
componentes necesarios si no piensa exportar esta solución no administrada a otro entorno. Si elige no
incluir los componentes necesarios que faltan en este momento, puede agregarlos más adelante. Recibirá
una notificación de nuevo si exporta esta solución en el futuro.
4. En el explorador de soluciones, expanda la entidad con el formulario que desee editar y seleccione
Formularios.
5. En la lista de formularios, haga doble clic en el formulario que desea editar.

Pasos siguientes
Creación y diseño de formularios
Propiedades de iFrame para formularios principales
de aplicaciones controladas por modelos
25/11/2019 • 5 minutes to read • Edit Online

Puede agregar los iFrame a un formulario para integrar contenido de otro sitio web en un formulario.
Para ver las propiedades de IFrame, siga estos pasos.
1. Inicie sesión en PowerApps.
2. Expanda Datos, seleccione Entidades, seleccione la entidad que desee y, a continuación, seleccione la
pestaña Formularios.
3. En la lista de formularios, abra un formulario de tipo Principal. Luego en la pestaña Insertar, seleccione
IFRAME para ver propiedades de IFRAME.

NOTE
Los formularios no están diseñados para mostrarse en un iFrame.

FICHA PROPIEDAD DESCRIPCIÓN

Generales Nombre Requerido: nombre único para el


iFrame. El nombre solo puede contener
caracteres alfanuméricos y de
subrayado.
FICHA PROPIEDAD DESCRIPCIÓN

Dirección URL Requerido: dirección URL de la página


que se mostrará en el iFrame.

Pasar código tipo de objeto de Los datos de la organización, el usuario


registro e id. único como y el registro se pueden pasar al iFrame.
parámetros Más información: Transferir parámetros
a iFrames

Etiqueta Requerido: etiqueta para mostrar para


el iFrame.

Mostrar etiqueta en el formulario Si la etiqueta debe mostrarse.

Restringir scripting entre marcos Se considera un riesgo de seguridad


cuando sea posible permitir que las páginas de un sitio web
distinto interactúen con la aplicación
Dynamics 365 mediante scripts. Use
esta opción para limitar el scripting
entre marcos en las páginas de las que
no tiene el control.

Visible de forma predeterminada Mostrar el iFrame es opcional y se


puede controlar mediante scripts. Más
información: Opciones de visibilidad

Habilitar para móvil Seleccione en la casilla para habilitar el


iFrame para móviles.

Formato Seleccione el número de columnas Cuando la sección que contiene los


que ocupa el control iFrame tiene más de una columna
puede establecer el campo para ocupar
hasta el número de columnas que tiene
la sección.

Seleccione el número de filas que Puede controlar el alto de los iFrame


ocupa el control especificando el número de filas que
ocupa el control.

Expandir automáticamente para En lugar de establecer el alto mediante


usar el espacio disponible un número de filas, puede permitir que
el alto del iFrame se expanda el espacio
disponible.

Seleccione el tipo de Tiene tres opciones:


desplazamiento para el iFrame
- Como sea necesario: muestra barras
de desplazamiento cuando el tamaño
del iFrame es mayor que el espacio
disponible.
- Siempre: siempre se muestran barras
de desplazamiento.
- Nunca: nunca se muestran barras de
desplazamiento.

Mostrar borde Muestra un borde alrededor del iFrame.


FICHA PROPIEDAD DESCRIPCIÓN

Dependencias Campos dependientes Un iFrame pueden interactuar con los


campos del formulario mediante el
script. Si se quita un campo del
formulario, el script del iFrame se puede
interrumpir. Agregue campos a los que
hagan referencia los scripts de los
iFrame en Campos dependientes para
que no puedan quitarse
accidentalmente.

Pasar parámetros a iFrame


La información del registro se puede pasar habilitando la opción Pasar código tipo de objeto de registro e id.
único como parámetros. Los valores que se pasan son:

PARÁMETRO DESCRIPCIÓN

orglcid LCID de idioma predeterminado de la organización.

orgname El nombre de la organización.

userlcid LCID de idioma preferido del usuario

type Código de tipo de entidad. Este valor puede ser diferente para
las entidades personalizadas en distintas organizaciones. Use
typename en su lugar.

typename Nombre del tipo de entidad.

id El valor de identificador del registro. este parámetro no incluye


un valor hasta que se guarda el registro de la entidad.

Pasos siguientes
Utilizar el formulario Principal y sus componentes
Optimizar el rendimiento de los formularios de
aplicaciones controladas por modelos
25/11/2019 • 4 minutes to read • Edit Online

Los formularios que se cargan lentamente pueden reducir la productividad y la adopción por parte del usuario.
Siga estas recomendaciones para maximizar la velocidad de carga de los formularios. Muchas de las prácticas
recomendadas describen la forma en que un programador puede implementar scripts de formularios para la
organización. Asegúrese de discutir estas prácticas recomendadas con los programadores que crean scripts de
formularios para los formularios.

Diseño de formularios
Considere la interacción que el usuario tendrá con el formulario y la cantidad de datos que se deben mostrar en él.
Mantenga el número de campos al mínimo
Cuanto más campos tenga en un formulario, más datos deberá transferir a través de Internet o de a una intranet
para ver cada registro.

Scripts de formularios
Si tiene personalizaciones que usan scripts de formularios, asegúrese de que el desarrollador comprende estas
estrategias para mejorar el rendimiento.
Evite incluir bibliotecas de recursos web de JavaScript que no necesite
Cuantos más scripts agregue al formulario, más tiempo tardará en descargarlos. Por lo general, los scripts se
almacenan en caché en el explorador después de cargarse la primera vez, pero el rendimiento la primera vez que
se ve un formulario suele crear una impresión considerable.
Evite cargar todos los scripts en el evento Onload
Si tiene código que únicamente admite los eventos OnChange para campos o el evento OnSave , asegúrese de
definir la biblioteca de scripts con el controlador de eventos para dichos eventos en lugar del evento OnLoad . De
esta manera, la carga de estas bibliotecas se puede aplazar y aumentar el rendimiento cuando el formulario se
carga.
Use las fichas contraídas para aplazar la carga de recursos web
Cuando se incluyen recursos web o IFRAMES en secciones en una pestaña contraída, estos no se cargarán si la
pestaña está contraída. Se cargarán cuando se expanda la ficha. Cuando el estado de la ficha cambia, se produce el
evento TabStateChange . Ningún código necesario para admitir recursos web o IFRAMEs en fichas contraídas
puede usar controladores de eventos para el evento TabStateChange ni reducir código que, de otro modo,
debería producirse en el evento OnLoad .
Defina las opciones predeterminadas de visibilidad
Evite usar scripts de formularios en el evento OnLoad que oculten elementos de formulario. En su lugar, defina las
opciones predeterminadas de visibilidad de los elementos de formulario que podrían ocultarse para no ser visibles
de forma predeterminada cuando el formulario se carga. A continuación, use los scripts en el evento OnLoad para
mostrar los elementos de formulario que desee mostrar.

Barra de comandos o cinta


Tenga en cuenta estas prácticas recomendadas al editar la barra de comandos o la cinta de opciones.
Mantenga el número de controles al mínimo
En la barra de comandos o la cinta de opciones del formulario, evalúe qué controles son necesarios y oculte
aquellos que no necesite. Cada control que se muestra aumenta los recursos necesarios para descargarse en el
explorador.

Pasos siguientes
Crear y diseñar formularios
Propiedades de sección para formularios principales
de aplicaciones controladas por modelos
25/11/2019 • 5 minutes to read • Edit Online

Una sección en un formulario ocupa el espacio disponible en una columna de la ficha. Las secciones tienen una
etiqueta que se puede mostrarse y una línea se puede mostrar debajo de la etiqueta.
Las secciones pueden tener hasta 4 columnas e incluyen las opciones para mostrar cómo las etiquetas de los
campos de la sección se muestran.
Los encabezados y pies de página son similares a las secciones pero no se pueden quitar. Si no contienen nada no
se mostrarán.
Puede acceder a las Propiedades de sección desde el sitio de PowerApps.
1. Inicie sesión en PowerApps.
2. Expanda Datos, seleccione Entidades, seleccione la entidad que desee y, a continuación, seleccione la
pestaña Formularios.
3. En la lista de formularios, abra el formulario de tipo Principal. A continuación, haga doble clic en una de
las secciones para ver las propiedades de la sección.

PESTAÑA PROPIEDAD DESCRIPCIÓN


PESTAÑA PROPIEDAD DESCRIPCIÓN

Presentación Nombre Requerido: nombre único de la sección


que se usa al hacerle referencia en los
scripts. El nombre solo puede contener
caracteres alfanuméricos y de
subrayado.

Etiqueta Requerido: etiqueta localizable de la


sección visible para los usuarios.

Muestra la etiqueta de esta sección Las secciones a menudo se usan sin


en el formulario etiquetas para controlar el formato de
los campos que contienen.

Mostrar una línea en la parte Una línea en la parte superior de la


superior de la sección sección puede ayudar al dividir el
diseño del formulario.

Ancho de la etiqueta de campo Requerido: defina un valor entre 50 y


250 para especificar el espacio
permitido para las etiquetas de campo.

Los elementos de encabezados y pies


de página de también tienen esta
propiedad.

Visibilidad Mostrar la sección es opcional y se


puede controlar mediante scripts. Más
información: Opciones de visibilidad

Disponibilidad Elija si desea que la pestaña esté


disponible en el teléfono.

Bloquear la sección en el formulario Esto evitará que la sección se quite


accidentalmente y que los usuarios
quiten el contenido.

Al quitar una sección no solo se quita la


sección, sino también cualquier campo
que contenga.

Alguien que desea quitar esta sección


necesitaría cambiar esta configuración
antes de eliminarla.

Formato Diseño Especifique hasta cuatro columnas para


incluir en la sección.
Los componentes de encabezados y
pies de página de también tienen esta
propiedad.

Alineación de etiqueta de campo Las etiquetas de los campos dentro de


la sección se pueden alinear a izquierda,
derecha o centradas.

Posición de etiqueta de campo Las etiquetas de los campos de la


sección pueden colocarse en el lateral o
la parte superior de los campos.
También se puede agregar un nuevo tipo de sección llamado Panel de referencia. Un panel de referencia es una
sección de una sola columna. Puede insertar subcuadrículas, control de vista rápida o un control de búsqueda en
la Knowledge Base dentro de una sección del panel de referencia. Cada control que agregó en el panel de
referencia aparece como una pestaña vertical en el panel en tiempo de ejecución. Puede arrastrar y soltar los
distintos controles en la sección del panel de referencia. La pestaña predeterminada en tiempo de ejecución es el
primer control agregado en el panel de referencia. Las otras pestañas aparecen en el orden en el cual se agregan
en el editor de formularios. Para eliminar una pestaña, use la tecla Eliminar del teclado.
Cuando se inserta un panel de referencia, se agrega de forma predeterminada como última sección en la pestaña.
Puede agregar un solo panel referencia por formulario.

IMPORTANT
De forma predeterminada, la sección del panel de referencia está bloqueada en estos formularios estándar: casos, cuentas y
contactos. Para quitarla o cambiarla, debe desbloquearla.

Pasos siguientes
Utilizar el formulario Principal y sus componentes
Configurar un mapa en un formulario
25/11/2019 • 4 minutes to read • Edit Online

De forma predeterminada, el control de mapas de Bing se configura en el formulario principal para las entidades
de cuenta y contacto, lo que proporciona la capacidad de mostrar un mapa en registros de entidad. Aunque no
está configurado de forma predeterminada, el control de mapas de Bing puede agregarse a la entidad de usuario
del sistema. El control de mapas de Bing también se puede usar con algunas entidades incluidas con aplicaciones
basadas en modelo en Dynamics 365, como Dynamics 365 Sales y Dynamics 365 Customer Service. Por ejemplo,
las entidades cliente potencial, oferta, pedido, facturación, y competidor. El control de mapas de Bing no se puede
usar con entidades personalizadas.
Cuando está habilitado, el mapa muestra la ubicación especificada en los campos compuestos de dirección para el
registro dado.
IMPORTANT
Para usar mapas debe estar habilitada la configuración del sistema Mostrar Mapas de Bing en los formularios. Más
información: Habilitar mapas para el entorno
Puede quitar el área de mapas de Bing en el editor de formularios o volver a agregarlo con el botón Mapas de
Bing en la ficha Insertar del editor de formularios clásico.

Habilitar mapas para el entorno


1. Abra una aplicación basada en modelo y después seleccione Configuración > Configuración avanzada.
2. Seleccione Configuración > Administración > Configuración del sistema.
3. En la pestaña General, seleccione Mostrar mapas de Bing en formularios y a continuación seleccione
Aceptar.

Configurar un mapa
1. Inicie sesión en PowerApps.
2. Vaya a Datos > Entidades y seleccione la entidad que desea configurar un mapa en el formulario principal.
3. Seleccione la pestaña Formularios y seleccione el formulario principal y, en la barra de comandos
seleccione Cambiar a clásico.
4. En el diseñador de formularios clásico, haga doble clic en el control Vista del mapa para ver y editar las
propiedades. Más información: Ver y editar propiedades de mapa
Para quitar el control de mapa del formulario, seleccione el control Vista de mapa y después presione la tecla
Eliminar.

Vea y edite propiedades de mapa


PESTAÑA PROPIEDAD DESCRIPCIÓN

Generales Etiqueta Requerido: etiqueta para mostrar para


mapas de Bing.

Mostrar etiqueta en el formulario Si la etiqueta debe mostrarse.

Seleccione una dirección para Elija qué dirección se debe usar para
utilizar con este control de mapas proporcionar datos para el mapa.
de Bing

Visible de forma predeterminada Mostrar Mapas de Bing es opcional y se


puede controlar mediante reglas de
negocio o scripts. Más información:
Opciones de visibilidad

Formato Seleccione el número de columnas Cuando la sección que contiene mapas


que ocupa el control de Bing tiene más de una columna
puede establecer el campo para ocupar
hasta el número de columnas que tiene
la sección.

Seleccione el número de filas que Puede controlar el alto de mapas de


ocupa el control Bing especificando varias filas.

Expandir automáticamente para Puede permitir que el alto de mapas de


usar el espacio disponible Bing se expanda el espacio disponible.
Vea también
Crear y diseñar formularios de aplicaciones controladas por modelos
Asignar orden de formularios de aplicación
controlada por modelos
25/11/2019 • 2 minutes to read • Edit Online

Si tiene varios formularios principales, de creación rápida, vista rápida o formularios de tarjetas para una entidad,
puede establecer un orden para los formularios. El orden de formularios determine qué formularios disponibles se
mostrarán de forma predeterminada. Los formularios principales disponibles se pueden controlar mejor si se
asignan roles de seguridad al formulario. Consulte Controlar el acceso a los formularios para obtener más
información.
No puede asignar roles de seguridad a formularios de creación rápida, vista rápida o formularios de tarjetas por lo
que el único formulario que podrá usar todo el mundo es el que se encuentra en la parte superior del orden de
formularios.

Para asignar un orden de formularios


1. Abra el explorador de soluciones, expanda la entidad que desee y seleccione Formularios.
2. En la barra de herramientas de la lista de formularios, seleccione Orden de los formularios.

3. Elija Conjunto de formularios principal, Formulario de creación rápida establecido, Conjunto de


formularios de vista rápida o Conjunto de formularios de tarjeta, según el tipo de formularios con el
que desee trabajar. Más información: Tipo de formularios.
4. El diálogo Orden de los formularios es una lista simple donde puede mover un formulario seleccionado
hacia arriba o abajo en el orden de formularios.
5. Después de establecer el orden deseado, haga clic en Aceptar para cerrar el cuadro de diálogo.

Pasos siguientes
Cambiar la navegación en un formulario
Configurar controladores de eventos para
formularios de aplicaciones controladas por modelos
25/11/2019 • 7 minutes to read • Edit Online

Los controladores de eventos de formularios para formularios de PowerApps pueden configurarse para las
siguientes áreas en un formulario:

ELEMENTO EVENTO DESCRIPCIÓN

Formulario OnLoad Se produce cuando el formulario se


carga.

OnSave Se produce cuando se guardan los


datos.

Pestaña TabStateChange Se produce cuando se expande o


contrae la ficha.

Campo OnChange Se produce cuando los datos del


campo cambian y el control pierde el
foco.

IFRAME OnReadyStateComplete Se produce cuando se carga el


contenido de un IFRAME.

Un controlador de eventos se compone de una referencia a un recurso web de JavaScript y a una función
definida dentro de ese recurso web que se ejecutará cuando se produzca el evento. Cada elemento puede tener
hasta 50 controladores de eventos independientes configurados.

IMPORTANT
La configuración de un controlador de eventos puede provocar errores de script que pueden causar que el formulario no
se cargue o no funcione correctamente. Si no es el desarrollador del script, asegúrese de comprender exactamente qué
opciones de configuración requiere el script.
No configure un controlador de eventos de script mediante una biblioteca que no proceda de un origen de confianza. Los
scripts se pueden usar para realizar las acciones que un usuario podría realizar y un script mal redactado puede afectar
considerablemente al rendimiento de un formulario.
Después de configurar un controlador de eventos, pruébelo siempre para comprobar que funciona correctamente.

Para configurar un controlador de eventos


1. En el editor de formularios, seleccione el elemento con el evento para el que desea configurar un
controlador.
2. En la pestaña Inicio, en el grupo Editar, seleccione Cambiar propiedades o simplemente haga doble clic
en el elemento.
3. En el cuadro de diálogo de propiedades del elemento, seleccione la ficha Eventos.
4. Expanda el área Bibliotecas de formularios. Si la biblioteca que contiene la función que desea establecer
como el controlador de eventos no se muestra en la lista, agréguela.
5. Para agregar una biblioteca de formularios a un controlador de eventos:
a. En la sección Bibliotecas de formularios de la Lista de eventos, seleccione Agregar.
b. Busque el recurso web de JavaScript en la lista de recursos web disponibles. Selecciónelo y
después Agregar.
Si el recurso web de JavaScript que necesita no existe, seleccione Nuevo para abrir un formulario
de recurso web nuevo y cree uno.
c. Para crear un recurso web de JavaScript:
a. En el formulario de recurso web, establezca las propiedades siguientes:

PROPIEDAD VALOR

Nombre Requerido. Especifique el nombre del recurso


web.

Nombre para mostrar Requerido. Escriba el nombre para mostrar en la


lista de recursos web.

Descripción Opcional. Escriba una descripción del recurso web.

Tipo Requerido. Seleccione Script (JScript).

Idioma Opcional. Seleccione uno de los idiomas


disponibles para su organización.

b. Si se le ha proporcionado un script, se recomienda encarecidamente utilizar el botón


Examinar para buscar el archivo y cargarlo.
O bien, puede seleccionar el botón Editor de texto y pegar o escribir el contenido del script
en el diálogo Editar contenido.

NOTE
Dado que este editor de texto simple no ofrece ninguna característica para comprobar si el script es
correcto, debe intentar usar una aplicación independiente como Visual Studio para editar scripts y
cargarlos a continuación.

c. Seleccione Guardar y cierre el cuadro de diálogo de recursos web.


d. El recurso web que ha creado aparece ahora seleccionado en el diálogo Buscar registro.
Seleccione Agregar para cerrar el cuadro diálogo.
6. En la sección Controladores de eventos, seleccione el evento para el que desee establecer un
controlador de eventos.
7. Seleccione Agregar para abrir el cuadro de diálogo Propiedades del controlador.
8. En la ficha Detalles elija la biblioteca adecuada y escriba el nombre de la función que debe ejecutarse
para el evento.
9. De forma predeterminada, el controlador de eventos está habilitado. Desactive la casilla de verificación
Habilitado si no desea habilitar este evento.
Algunas funciones requieren que se pase un contexto de ejecución a la función. Seleccione Pasar el
contexto de ejecución como primer parámetro si es necesario.
Algunas funciones pueden aceptar un conjunto de parámetros para controlar el comportamiento de una
función. Si es necesario, introdúzcalos en Lista de parámetros separados por coma que se transmitirá
a la función.
10. En la ficha Dependencias, agregue los campos de los que depende el script en el área Campos
dependientes.
11. Seleccione Aceptar para cerrar el cuadro de diálogo Propiedades del controlador.
12. Cuando el controlador de eventos esté introducido, podrá cambiar el orden en el que la función se
ejecutará en relación con cualquier otra función mediante las flechas verdes para moverla arriba o abajo.
13. Seleccione Aceptar para cerrar el cuadro de diálogo de propiedades del elemento.
14. Seleccione Guardar para guardar los cambios. Seleccione Publicar para publicar el formulario.

NOTE
Aunque la interfaz de usuario (UI) le permite cambiar el orden en que los scripts se cargan utilizando las flechas verdes
arriba y abajo, los scripts no se cargan en realidad de forma secuencial.

Pasos siguientes
Utilizar el formulario Principal y sus componentes
Deshabilitar el guardado automático en una
aplicación controlada por modelos
25/11/2019 • 9 minutes to read • Edit Online

El guardado automático ayuda a los usuarios de la aplicación a centrarse en el trabajo sin tener que administrar el
almacenamiento de datos en el formulario. La mayoría de las personas apreciará no tener que guardar datos de
forma explícita que cada vez actualice un registro, pero algunas organizaciones pueden tener personalizaciones que
fueron diseñadas para guardarse de forma explícita. Para estas organizaciones existen opciones para administrar la
forma de aplicar el autoguardado.

Autoguardado de trabajos
De forma predeterminada, todos los formularios de las entidades actualizadas y clásicas tendrán el autoguardado
habilitado. Una vez creado un registro (guardado en un principio), los cambios realizados en un formulario se
guardarán automáticamente treinta segundos después del cambio. Si no se realiza ningún cambio en el formulario,
el guardado automático no se producirá mientras el formulario esté abierto. Después de realizar un cambio, el
período de 30 segundos antes del autoguardado vuelve a empezar. El campo que alguien está editando
actualmente no se incluye en un autoguardado. Si otra persona ha actualizado el mismo registro mientras lo
editaba, esos cambios se recuperarán y mostrarán en el formulario al realizar el autoguardado.
Con el autoguardado habilitado, el botón de guardar solo aparece al guardar inicialmente el registro. Una vez
creado el registro, el botón de guardar en la barra de comandos no aparece, pero puede verse un en la esquina
inferior derecha, que aparecerá si existen cambios sin guardar. Este control también se muestra si el autoguardado
está deshabilitado.
Puede seleccionar este botón para guardar el registro y actualizar datos en el formulario de forma inmediata.
Cuando el autoguardado está habilitado, el registro se guardará cada vez que navegue fuera de un registro o cierre
la ventana independiente que muestra un registro. No es necesario para el botón Guardar y cerrar que aparece en
los formularios de entidades que no se actualizan.

¿Debe deshabilitar el autoguardado?


Si tiene complementos, flujos de trabajo o scripts de formularios que se ejecuten al guardar un registro, se
ejecutarán que vez que se realice el autoguardado. Esto puede llevar a comportamientos indeseables si estas
extensiones no fueron diseñadas para funcionar con el autoguardado. Independientemente de si el autoguardado
está habilitado, los complementos, flujos de trabajo y scripts de formularios se deben diseñar para buscar cambios
específicos, y no deben ejecutarse indistintamente para cada evento de guardar.
Si tiene la auditoría configurada para una entidad, cada operación de guardar se trata como una actualización
independiente. Si alguien se queda en un formulario con cambios sin guardar durante más de treinta segundos,
verá una entrada adicional solo si se agregan más datos tras realizar el autoguardado. Si tiene informes que
dependen de datos de auditoría y trata cada guardado como "toque" individual de un registro, es posible que se
produzca un aumento de la periodicidad de los toques. Si usa este método, debe tener en cuenta que los
comportamientos de un usuario individual lo convierten en una métrica no fiable con o sin el autoguardado
habilitado.

Deshabilitar el autoguardado para la organización


Si determina que el autoguardado ocasionará problemas con las extensiones que está usando, puede deshabilitarlo
para la organización. No hay ningún valor para deshabilitar el autoguardado para entidades o formularios
individuales.
1. Vaya a Configuración > Administración.
2. Elija Configuración del sistema.
3. Para la opción Habilitar autoguardado para todos los formularios, seleccione No.

Deshabilitar el autoguardado para un formulario


Si desea deshabilitar el autoguardado para formularios específicos de entidad, puede agregar código al evento
OnSave de una entidad.

NOTE
El guardado automático se deshabilitará para el formulario, pero los datos se guardarán al seleccionar el de la esquina
inferior derecha. Si intenta desplazarse fuera de un formulario o cerrar un formulario donde se han cambiado los datos, se les
pedirá que guarden los cambios para poder salir o cerrar el formulario.

1. Inicie sesión en PowerApps.


2. Expanda Datos, seleccione Entidades, seleccione la entidad que desee y, a continuación, seleccione la
pestaña Formularios.
3. Abra el formulario que desee editar.
4. Cree un recurso web de JavaScript y agréguelo al formulario:
a. En el editor de formularios, en el grupo Formulario elija Propiedades de formulario.
b. En la ficha Eventos, debajo de Bibliotecas de formularios, elija Agregar.
c. En el cuadro de diálogo Buscar registro, elija Nuevo.
d. En el formulario de recursos web, especifique la siguiente información:

Nombre preventAutoSave

Nombre para mostrar Impedir el autoguardado

Tipo Script (JScript)

e. Junto al campo Tipo, elija Editor de texto.


f. En el campo Origen, pegue el siguiente código:

function preventAutoSave(econtext) {
var eventArgs = econtext.getEventArgs();
if (eventArgs.getSaveMode() == 70 || eventArgs.getSaveMode() == 2) {
eventArgs.preventDefault();
}
}

g. Seleccione Aceptar para cerrar el editor de texto.


h. Elija Guardar para guardar el recurso web y cierre la ventana del recurso web.
i. En el diálogo Buscar registro, el nuevo recurso web que ha creado estará seleccionado. Elija
Agregar para cerrar el cuadro diálogo.
5. Configurar el evento OnSave:
a. En la ventana Propiedades de formulario, en la sección Controladores de eventos, defina
Evento en OnSave.
b. Seleccione Agregar.
c. En la ventana Propiedades del controlador, establezca Biblioteca en el recurso web que agregó
en el paso anterior.
d. Escriba ‘ preventAutoSave ’ en el campo Función. Distingue mayúsculas de minúsculas. No incluya las
comillas.
e. Asegúrese de que la opción Habilitado se encuentre activada.
f. Active Pasar el contexto de ejecución como primer parámetro.

IMPORTANT
Si no realiza este paso, el script no funcionará.

El diálogo Propiedades del controlador debe verse así. El prefijo de personalización "new_" puede
variar según el prefijo de personalización definido para el editor predeterminado para la
organización.

g. Seleccione Aceptar para cerrar el cuadro de diálogo Propiedades del controlador.


h. Si hay otros controladores de eventos para el evento OnSave , use las flechas verdes para moverlo a la
parte superior.
6. Seleccione Aceptar para cerrar el cuadro de diálogo Propiedades del formulario.
7. Seleccione Guardar y cerrar para cerrar el formulario.
8. En el explorador de soluciones, seleccione Publicar todas las personalizaciones.
Después de aplicar este script al evento OnSave , cuando los usuarios editen un registro mediante este formulario,
el mensaje cambios no guardados aparecerá en la esquina inferior derecha de formulario como si el
autoguardado no estuviese deshabilitado. Pero este mensaje no desaparecerá hasta que los usuarios seleccionen el
situado al lado.

Pasos siguientes
Creación y diseño de formularios
Agregar la pestaña documentos de SharePoint al
formulario principal de una entidad
25/11/2019 • 5 minutes to read • Edit Online

[Este tema es documentación preliminar y está sujeto a modificaciones.]


Agregar una pestaña en un formulario de entidad principal para documentos de SharePoint ayuda a los usuarios a
detectar y usar las características de integración de SharePoint que están disponibles en una aplicación basada en
modelo.

IMPORTANT
Debe habilitar la administración de documentos para usar esta característica. Más información: Administrar los documentos
utilizando SharePoint

Agreguar la pestaña de documentos en FormXML


1. Cree una nueva solución. Inicio sesión en PowerApps y vaya a Soluciones, seleccione Nueva solución y
especifique la información necesaria y opcional. Más información: Crear una solución
2. Agregue la entidad a la solución donde desee agregar la pestaña de documentos en el formulario principal.
Se admiten todas las entidades estándar y personalizadas. Más información: Agreguar un componente
existente a una solución
3. Incluya el formulario de la entidad en la solución, como el formulario principal para la entidad de cuenta.
Junto a la entidad, seleccione ... y a continuación seleccione Editar. Seleccione la pestaña Formularios. Si el
formulario que desea falta, agréguelo.
4. Agregue una pestaña de una columna al formulario principal. Para ello, en el diseñador de formularios
seleccione el área en el lienzo del formulario, seleccione Agregar componentey, a continuación seleccione
1 Pestaña de 1 columna.
5. En el diseñador de formularios seleccione Nueva pestaña en el lienzo del diseñador de formularios,
seleccione Agregar campo, y agregue el campo como Dirección 1: Ciudad desde el panel izquierdo. Puede
usar cualquier campo numérico o de texto para la pestaña.

6. Cambiar el nombre de la etiqueta de la pestaña. Para ello, seleccione Nueva pestaña y, en el panel derecho
de propiedades reemplace Nueva pestaña con algo más descriptivo, como Archivos.
7. Seleccione Guardar y Publicar, y luego cierre el editor de formularios.
8. En la página principal del fabricante de PowerApps, seleccione Soluciones, seleccione la solución y
seleccione Exportación para exportar la solución como una solución no administrada. Más información:
Exportar soluciones
9. Extraiga la solución y abra el archivo customization.xml con un editor de XML o texto.
10. En customization.xml busque label description="Files" (o el nombre que dio a la etiqueta de la pestaña en
el paso anterior).
11. Desplácese hasta el elemento field name” del id de control, como control id="address1_city" y reemplace
el elemento completo con el Ejemplo de XML en este tema.
12. Cree estas modificaciones en el ejemplo XML.
a. Localice el elemento RelationshipName y reemplácelo con el nombre de esquema que aparece como
entityLogicalName_SharePointDocument. Por ejemplo, para la entidad de cuentas el nombre de esquema
para la relación es Account_SharePointDocument, que es el nombre de esquema para el ejemplo de XML de
este tema. Para buscar el nombre para una entidad distinta, vaya a Configuración > Personalizaciones >
Personalizar el sistema > Entidades > seleccione la entidad > seleccione Relaciones de 1: N. Busque
Entidad relacionada de tipo SharePointDocument.

b. Cree un identificador global único (guid) y reemplace el guid uniqueid existente ubicado en el elemento
control que pegó en el paso anterior al tiempo que conserva las llaves {}.

. Guarde los cambios en customizations.xml.


13. Abra el archivo solution.xml y aumente el valor de elemento Versión. Por ejemplo, cambie de 1.1.0.0 a
1.2.0.0.
14. Empaquete todos los archivos de solución en una carpeta comprimida e impórtela en su entorno. Si recibe
un error que debe eliminar la solución anterior, hágalo. Más información: Importar, actualizar y actualizar
soluciones

Ejemplo de XML para agregar la pestaña de documentos a un


formulario
<control id="DocumentSubGrid" classid="{E7A81278-8635-4d9e-8D4D-59480B391C5B}" indicationOfSubgrid="true"
uniqueid="{9cd66b5c-8b7a-6433-c5a5-46a7245dd534}">
<parameters>
<ViewId>{0016F9F3-41CC-4276-9D11-04308D15858D}</ViewId>
<IsUserView>false</IsUserView>
<RelationshipName>Account_SharepointDocument</RelationshipName>
<TargetEntityType>sharepointdocument</TargetEntityType>
<AutoExpand>Fixed</AutoExpand>
<EnableQuickFind>false</EnableQuickFind>
<EnableViewPicker>true</EnableViewPicker>
<ViewIds />
<EnableJumpBar>false</EnableJumpBar>
<ChartGridMode>Grid</ChartGridMode>
<VisualizationId />
<IsUserChart>false</IsUserChart>
<EnableChartPicker>false</EnableChartPicker>
<RecordsPerPage>10</RecordsPerPage>
<HeaderColorCode>#F3F3F3</HeaderColorCode>
</parameters>
</control>

Vea también
Administrar los documentos con SharePoint
Insertar una aplicación de lienzo en un formulario
controlado por modelos
25/11/2019 • 3 minutes to read • Edit Online

Las aplicaciones de lienzo permiten a proveedores fácilmente diseñar y crear diseños personalizados con
diseñador de aplicaciones de lienzo WYSIWYG de poco código. Las aplicaciones de lienzo también permiten a los
proveedores conectar y mostrar datos de más de 200 orígenes de datos en sus formularios.
Con aplicaciones incrustadas de lienzo, los proveedores pueden aportar la fuerza de aplicaciones de lienzo a sus
formularios controlados por modelos. Con aplicaciones incrustadas de lienzo, puede crear fácilmente áreas
visuales completas en un formulario y mostrar datos pantalla de diversos orígenes directamente al lado de datos
de Common Data Service.

Las aplicaciones de lienzo se insertan en formularios controlados por modelos igual que se agregan otros
controles personalizados. Una aplicación incrustada de lienzo incluye capacidades completas de integración de
datos que aportan datos contextuales del formulario controlado por modelos del host a la aplicación incrustada de
lienzo. Más información: Agregar una aplicación de lienzo incrustada en un formulario basado en modelos.
Tras agregar una aplicación incrustada de lienzo al formulario controlado por modelos, aprenda a compartir la
aplicación incrustada de lienzo con otros usuarios. Más información: Compartir una aplicación incrustada de
lienzo.
Para las directrices acerca de cómo trabajar con aplicaciones incrustadas de lienzo, así como sugerencias útiles
para solucionar problemas que puede encontrar, consulte: Directrices acerca de cómo trabajar con aplicaciones
incrustadas de lienzo.

Vea también
¿Qué son las aplicaciones de lienzo en PowerApps?
Agregar y configurar un control de aplicaciones de lienzo en PowerApps
Información general sobre conectores de aplicaciones de lienzo para PowerApps
Agregar una aplicación de lienzo incrustada en un formulario basado en modelos
Editar una aplicación de lienzo incrustada en un formulario basado en modelos
Personalizar el tamaño y orientación de la pantalla de una aplicación de lienzo insertada en un formulario basado
en modelos
Realice acciones predefinidas en el formulario de host desde una aplicación de lienzo insertada
Propiedades y acciones del control ModelDrivenFormIntegration
Compartir una aplicación incrustada de lienzo
Directrices acerca de cómo trabajar con aplicaciones de lienzo incrustadas
Migrar aplicaciones de lienzo insertadas en formularios basados en modelos creados mediante la versión de vista
previa pública a la más reciente
Agregar una aplicación de lienzo incrustada en un
formulario basado en modelos
25/11/2019 • 11 minutes to read • Edit Online

En este tema se explica cómo insertar una nueva aplicación de lienzo en un formulario basado en modelos.
Imagine que desee crear una nueva aplicación de lienzo e incrustarla en un formulario principal para la entidad
de cuentas. Para ello, siga estos pasos:
1. Inicie sesión en PowerApps.
2. Creación o edición del formulario principal de una entidad, entidad Cuentas en nuestro ejemplo.
3. En la barra de comandos, seleccione Cambiar a clásico para abrir el formulario en el diseñador de
formularios clásico.
4. En el diseñador de formularios clásicos, seleccione la sección del formulario donde desea que aparezca la
aplicación incrustada de lienzo.
5. Usando el panel de campos, agregue un campo obligatorio, como Nombre de cuenta.

IMPORTANT
Use siempre un campo obligatorio que siempre tiene garantizado un valor. Si el campo no tiene un valor, su
aplicación incrustada de lienzo no se actualizará como respuesta a cualquier cambio en los datos del formulario
controlado por modelos de host.

6. Con este campo seleccionado, en la pestaña Inicio, en el grupo Editar, haga clic en Cambiar propiedades.
7. En el cuadro de diálogo Propiedades de campo , seleccione la pestaña Controles .
8. En la pestaña Controles seleccione Agregar control.
9. En el cuadro de diálogo Agregar control , en la lista de controles disponibles, seleccione Aplicación de
lienzo y después seleccione Agregar.
10. En el cuadro de diálogo Propiedades de campo, en la lista de controles seleccione Aplicación de lienzo y
seleccione la opción Web.
11. En la sección debajo de la lista de controles, la lista de propiedades disponible para el control de aplicaciones
de lienzo se muestra.
La propiedad Nombre de entidad especifica la entidad que proporcionará los datos a la aplicación
incrustada de lienzo. Se establecerá en la entidad que contiene el campo que se agregó en un paso
anterior.
Tenga en cuenta que, aunque esta propiedad parece cambiable, cambiarla no tendrá ningún
efecto en la aplicación incrustada de lienzo. Está previsto que solo sirva como referencia para
usted.
La propiedad Identificador de la aplicación especifica el identificador de la aplicación incrustada de
lienzo. Se generará y rellenará automáticamente en su lugar cuando se cree la aplicación de lienzo.
Tenga en cuenta que, los cambios efectuados en el valor Identificador de la aplicación
rompen el vínculo entre el formulario controlado por modelos y la aplicación incrustada de
lienzo.
12. Seleccione Personalizar para crear o editar la aplicación de lienzo. Esto abre PowerApps Studio en una
nueva pestaña.
NOTE
Si abrir PowerApps Studio está bloqueado debido a un bloqueador de elementos emergentes de explorador web,
debe habilitar el sitio de make.powerapps.com o temporalmente deshabilitar el bloqueador de elementos
emergentes y después seleccionar Personalizar de nuevo.

13. En PowerApps Studio, observe que hay un control ModelDrivenFormIntegration especial en el panel
izquierdo. Este control es responsable de llevar datos contextuales del formulario controlado por modelos del
host a la aplicación incrustada de lienzo.
14. Observe que un control de formulario de la aplicación de lienzo se agregó automáticamente a la aplicación de
lienzo incrustada y muestra los datos que se le pasan desde el formulario basado en modelos de host
mediante el control de ModelDrivenFormIntegration.
15. Seleccione la pestaña Vista y, a continuación seleccione Orígenes de datos. Observe que un origen de datos
para la entidad principal del formulario basado en modelos host, Cuentas en este caso, se agregó
automáticamente a la aplicación de lienzo incrustada.
16. Seleccione el control Form1 y observe que la propiedad DataSource está establecida en Cuentas.
17. Con el control Form1 aún seleccionado, observe que la propiedad Item está establecida en
ModelDrivenFormIntegration.Item.

NOTE
La aplicación de lienzo incrustada tiene acceso total al registro desde el formulario basado en modelos host
mediante ModelDrivenFormIntegration.Item. Por ejemplo, para obtener el valor de un campo con el nombre
accountnumber y el nombre para mostrar Número de cuenta, puede usar
ModelDrivenFormIntegration.Item.accountnumber o ModelDrivenFormIntegration.Item.'Número de
cuenta'.

18. En el panel de propiedades en la derecha, junto a Campos, seleccione Editar campos.


19. Seleccione + Agregar campo para agregar otro campo al formulario de aplicación de lienzo o para
reorganizar campos existentes mediante arrastrar y colocar. Cierre el panel de datos cuando termine de
agregar y reorganizar campos.
20. Seleccione la pestaña Archivo y, a continuación, seleccione Guardar.
21. Seleccione la pestaña La nube. Proporcione un nombre único para la aplicación y después seleccione
Guardar en la parte inferior derecha. Tenga en cuenta lo siguiente:
Guardar una aplicación por primera vez publica automáticamente la aplicación.
En las operaciones de guardar posteriores, seleccione Publicar y después seleccione Publicar esta
versión para que los cambios pasen a estar disponibles.
22. En el menú, seleccione Atrás.
23. Seleccione la pestaña del explorador que tiene el diseñador de formularios clásico abierto. Observe que la
propiedad Identificador de la aplicación del control de apliaciones de lienzo ahora tiene un valor
automáticamente rellenado.

NOTE
El diseñador de formularios tiene un vínculo directo con PowerApps Studio que se abrió en otra pestaña del
explorador en un paso anterior.
El diseñador de formularios escucha para recibir el Identificador de la aplicación que se le envía.
El Identificador de la aplicación se envía al diseñador de formularios cuando se guarda la aplicación.

24. En el cuadro de diálogo Propiedades de campo , seleccione la pestaña Mostrar .


25. Desactive Mostrar etiqueta en el formulario y seleccione Aceptar.
Si ya tiene una aplicación de lienzo insertada en este formulario se muestra un mensaje que indica
“solo una aplicación de lienzo se puede habilitar en un formulario.” Para agregar la aplicación nueva de
lienzo primero debe deshabilitar la aplicación incrustada actual de lienzo. Después, habilite la nueva
aplicación incrustada de lienzo.
26. En la pestaña Inicio, seleccione Guardar y, después, seleccione Publicar.
Tras agregar una aplicación incrustada de lienzo al formulario controlado por modelos, comparta la aplicación
incrustada de lienzo con otros usuarios. Más información: Compartir una aplicación incrustada de lienzo.
Cuando los usuarios abren una aplicación controlada por modelos (solo interfaz unificada) que incluya el
formulario que ha modificado ven la aplicación incrustada de lienzo en el formulario. Cambiar el registro
mostrado en el formulario principal cambia el contexto de datos que se pasa al formulario y la aplicación
incrustada se actualiza para mostrar los datos relevantes.
Este tema le ha mostrado cómo empezar a insertar una aplicación de lienzo en un formulario controlado por
modelos. Puede personalizar la aplicación incrustada de lienzo aún más para conectar datos e incorporarlos
desde diversos orígenes de datos. Use las funciones de filtro, Buscar y búsqueda y el contexto pasados desde el
formulario controlado por modelos de host para filtrar o para encontrar registros específicos en esos orígenes
de datos. Use el editor de aplicaciones de lienzo WYSIWYG para diseñar fácilmente la interfaz para que cumpla
los requisitos.

Vea también
Insertar una aplicación de lienzo en un formulario controlado por modelos
Editar una aplicación de lienzo incrustada en un formulario basado en modelos
Personalizar el tamaño y orientación de la pantalla de una aplicación de lienzo insertada en un formulario
basado en modelos
Realice acciones predefinidas en el formulario de host desde una aplicación de lienzo insertada
Propiedades y acciones del control ModelDrivenFormIntegration
Compartir una aplicación incrustada de lienzo
Directrices acerca de cómo trabajar con aplicaciones de lienzo incrustadas
Migrar aplicaciones de lienzo insertadas en formularios basados en modelos creados mediante la versión de
vista previa pública a la más reciente
Editar una aplicación de lienzo incrustada en un
formulario basado en modelos.
25/11/2019 • 3 minutes to read • Edit Online

En este tema se explica cómo editar una aplicación de lienzo incrustada en un formulario basado en modelos.

Edición de la aplicación de lienzo directamente


Puede editar una aplicación de lienzo incrustada en un formulario basado en modelos igual que cualquier otra
aplicación de lienzo. Para obtener pasos sobre cómo editar una aplicación de lienzo consulte: Editar una aplicación
de lienzo

Edición de la aplicación de lienzo mediante el formulario basado en


modelos
Una opción alternativa es editar la aplicación de lienzo incrustada mediante el formulario basado en modelos.
Imagine que desee editar una aplicación de lienzo incrustada en un formulario llamado Formulario principal de
cuenta para la entidad Cuentas. Para ello, siga estos pasos:
1. Inicie sesión en PowerApps.
2. Edición del formulario llamado Formulario principal de cuenta para la entidad Cuentas.
3. En la barra de comandos, seleccione Cambiar a clásico para abrir el formulario en el diseñador de
formularios clásico.
4. En el diseñador de formularios clásico, seleccione el campo que está personalizado para mostrar la aplicación
de lienzo incrustada.
5. Con este campo seleccionado, en la pestaña Inicio, en el grupo Editar, haga clic en Cambiar propiedades.
6. En el cuadro de diálogo Propiedades de campo , seleccione la pestaña Controles .
7. En el cuadro de diálogo Propiedades de campo, en la lista de controles seleccione Aplicación de lienzo.
8. En la sección bajo la lista de controles, seleccione Personalizar para editar la aplicación de lienzo. Esto abre la
aplicación de lienzo para editar, en PowerApps Studio, en una nueva pestaña.

NOTE
Si abrir PowerApps Studio está bloqueado debido a un bloqueador de elementos emergentes de explorador web,
debe habilitar el sitio de make.powerapps.com o temporalmente deshabilitar el bloqueador de elementos
emergentes y después seleccionar Personalizar de nuevo.

9. Cuando finalice de hacer cambios, seleccione la pestaña Archivo y, a continuación seleccione Guardar.
10. Para que los cambios pasen a estar disponibles a los usuarios finales, seleccione Publicar y luego seleccione
Publicar esta versión.

Vea también
Insertar una aplicación de lienzo en un formulario controlado por modelos
Agregar una aplicación de lienzo incrustada en un formulario basado en modelos
Personalizar el tamaño y orientación de la pantalla de una aplicación de lienzo insertada en un formulario basado
en modelos
Realice acciones predefinidas en el formulario de host desde una aplicación de lienzo insertada
Propiedades y acciones del control ModelDrivenFormIntegration
Compartir una aplicación incrustada de lienzo
Directrices acerca de cómo trabajar con aplicaciones de lienzo incrustadas
Migrar aplicaciones de lienzo insertadas en formularios basados en modelos creados mediante la versión de vista
previa pública a la más reciente
Personalizar el tamaño y orientación de la pantalla
de una aplicación de lienzo insertada en un
formulario basado en modelos
25/11/2019 • 2 minutes to read • Edit Online

Este tema explica cómo personalizar el tamaño y orientación de la pantalla de una aplicación de lienzo insertada
en un formulario basado en modelos
1. Siga los pasos para agregar o editar aplicación de lienzo incrustada en un formulario basado en modelos.
Agregar una aplicación de lienzo incrustada en un formulario basado en modelos
Editar una aplicación de lienzo incrustada en un formulario basado en modelos
2. Con la aplicación de lienzo abierta en PowerApps Studio, seleccione la pestaña Archivo y, a continuación
seleccione Configuración de la aplicación.
3. Seleccione la pestaña Tamaño de pantalla + orientiation. De forma predeterminada, el Tamaño se ajusta
como Personalizado.
4. Seleccione en la lista de opciones disponibles de Tamaño y Orientación o seleccione Personalizado y
proporcione la configuración que desea para Ancho y Alto.

NOTE
Cuando el Tamaño se establece como Personalizado, se deshabilita Orientación ya que se determina en función
del Ancho y Alto que especifique.

5. Cuando finalice de hacer cambios, seleccione la pestaña Archivo y, a continuación seleccione Guardar.
6. Para que los cambios pasen a estar disponibles a los usuarios finales, seleccione Publicar y luego seleccione
Publicar esta versión.

Vea también
Insertar una aplicación de lienzo en un formulario controlado por modelos
Agregar una aplicación de lienzo incrustada en un formulario basado en modelos
Editar una aplicación de lienzo incrustada en un formulario basado en modelos
Realice acciones predefinidas en el formulario de host desde una aplicación de lienzo insertada
Propiedades y acciones del control ModelDrivenFormIntegration
Compartir una aplicación incrustada de lienzo
Directrices acerca de cómo trabajar con aplicaciones de lienzo incrustadas
Migrar aplicaciones de lienzo insertadas en formularios basados en modelos creados mediante la versión de vista
previa pública a la más reciente
Realice acciones predefinidas en el formulario
basado en modelos host desde una aplicación de
lienzo insertada
25/11/2019 • 6 minutes to read • Edit Online

Las aplicaciones de lienzo incrustadas permiten realizar acciones predefinidas en el formulario basado en
modelos host. Estas acciones permiten a creadores navegar, actualizar y guardar el formulario basado en modelos
host. Con estas acciones, una aplicación de lienzo incrustada puede actuar como parte más integral del
formulario basado en modelos y de la aplicación basada en modelos.
El objeto ModelDrivenFormIntegration ahora incluye los siguientes nuevos métodos para permitir a los
creadores realizar acciones en el formulario basado en modelos host.
NavigateToMainForm(entityName, mainFormName, recordId)
Navega el formulario basado en modelos host a un formulario principal y muestra el registro especificado.
entityName - Parámetro de cadena requerido que especifica la entidad principal del formulario principal.
formName - Parámetro de cadena requerido que especifica el nombre del formulario principal al que
navegar.
recordId - Parámetro de cadena requerido que especifica el identificador del registro para mostrar en el
formulario principal.
Al llamar al método NavigateToMainForm se pueden mostrar los siguientes mensajes de error.

MENSAJE DE ERROR INSTRUCCIONES PARA LA RESOLUCIÓN DE PROBLEMAS

No se encuentra la entidad: [EntityName] Compruebe el valor del parámetro entityName y asegúrese


de que es un nombre de entidad válido y que el usuario tiene
acceso a él.

No se encuentra el formulario: [FormName] Compruebe el valor del parámetro mainFormName y


asegúrese de que es un nombre de formulario principal y que
el usuario tiene acceso a él.

Se produjo un problema al cargar el registro. Compruebe el valor del parámetro recordId y asegúrese de
que es un identificador de registro válido y que el usuario
tiene acceso a él.

NavigateToView(entityName, viewName )
Navega el formulario basado en modelos host a una vista.
entityName - Parámetro de cadena requerido que especifica la entidad principal de la vista.
viewName - Parámetro de cadena requerido que especifica el nombre del formulario principal al que
navegar.
Al llamar al método NavigateToView se pueden mostrar los siguientes mensajes de error.

MENSAJE DE ERROR INSTRUCCIONES PARA LA RESOLUCIÓN DE PROBLEMAS


MENSAJE DE ERROR INSTRUCCIONES PARA LA RESOLUCIÓN DE PROBLEMAS

No se encuentra la entidad: [EntityName] Compruebe el valor del parámetro entityName y asegúrese


de que es un nombre de entidad válido y que el usuario tiene
acceso a él.

No se encuentra la vista: [ViewName] Compruebe el valor del parámetro viewName y asegúrese de


que es un nombre de vista válido y que el usuario tiene
acceso a él.

OpenQuickCreateForm(entityName )
Abre el formulario de creación rápida predeterminado para una entidad.
entityName - Parámetro de cadena requerido que especifica la entidad principal del formulario de creación
rápida.
Al llamar al método OpenQuickCreateForm se pueden mostrar los siguientes mensajes de error.

MENSAJE DE ERROR INSTRUCCIONES PARA LA RESOLUCIÓN DE PROBLEMAS

No se encuentra la entidad: [EntityName] Compruebe el valor del parámetro entityName y asegúrese


de que es un nombre de entidad válido y que el usuario tiene
acceso a él.

RefreshForm(showPrompt)
Actualiza los datos en el formulario basado en modelos host.
showPrompt - Parámetro booleano requerido que indica si un mensaje de confirmación se debe mostrar al
usuario antes de guardar los datos sin guardar en el formulario basado en modelos host. Los valores de deben
ser “True “o “False”.
Al llamar al método RefreshForm se pueden mostrar los siguientes mensajes de error.

MENSAJE DE ERROR INSTRUCCIONES PARA LA RESOLUCIÓN DE PROBLEMAS

Utilice "true" o "false" como valor del parámetro. Compruebe el valor del parámetro showPrompt y asegúrese
que es ”True” o ”False”.

SaveForm()
Guarda los datos en el formulario basado en modelos host.

NOTE
Si no ve IntelliSense en los métodos para realizar acciones predefinidas en las aplicaciones de lienzo incrustadas que se
crearon antes de que la funcionalidad estuviera disponible; guarde, cierre y vuelva a abrir la aplicación.

Vea también
Insertar una aplicación de lienzo en un formulario controlado por modelos
Agregar una aplicación de lienzo incrustada en un formulario basado en modelos
Editar una aplicación de lienzo incrustada en un formulario basado en modelos
Personalizar el tamaño y orientación de la pantalla de una aplicación de lienzo insertada en un formulario basado
en modelos
Propiedades y acciones del control ModelDrivenFormIntegration
Compartir una aplicación incrustada de lienzo
Directrices acerca de cómo trabajar con aplicaciones de lienzo incrustadas
Migrar aplicaciones de lienzo insertadas en formularios basados en modelos creados mediante la versión de vista
previa pública a la más reciente
Propiedades y acciones del control
ModelDrivenFormIntegration
25/11/2019 • 4 minutes to read • Edit Online

Las aplicaciones de lienzo incrustadas en formularios basados en modelos incluyen un control especial llamado
ModelDrivenFormIntegration. Este control es responsable de llevar datos contextuales del formulario
controlado por modelos del host a la aplicación incrustada de lienzo.
En este tema se explican las propiedades y acciones disponibles en el control de ModelDrivenFormIntegration.

PROPIEDAD O ACCIÓN DESCRIPCIÓN

DataSource Debe establecerse en el origen de datos conectado a la


entidad principal del formulario basado en modelos host.
Establezca automáticamente cuando incruste una nueva
aplicación de lienzo.

Elemento Propiedad de solo lectura que permite a la aplicación de


lienzo incrustada acceder al registro desde el formulario
basado en modelos host.
Por ejemplo, para obtener el valor de un campo con el
nombre accountnumber y el nombre para mostrar Número
de cuenta, puede usar
ModelDrivenFormIntegration.Item.accountnumber o
ModelDrivenFormIntegration.Item.'Número de cuenta'.

OnDataRefresh La fórmula en esta propiedad se evalúa cuando el formulario


basado en modelos host guarda datos.
Úsela para actualizar el origen de datos conectado a la
entidad principal del formulario basado en modelos host y
para realizar otras acciones como ajustar o actualizar
variables.
Por ejemplo, al establecerlo en la fórmula de abajo se
actualizará el origen de datos Cuentas y se establecerá una
variable llamada CurrentAccountNumber con el valor del
campo Número de cuenta del registro actual.
Refresh(Cuentas); Set(CurrentAccountNumber,
ModelDrivenFormIntegration.Item.'Número de cuenta')

RefreshForm Actualiza los datos en el formulario basado en modelos host.


Vea Realizar acciones predefinidas en el formulario host para
los detalles.

SaveForm Guarda los datos en el formulario basado en modelos host.


Vea Realizar acciones predefinidas en el formulario host para
los detalles.

NavigateToMainForm Navega el formulario basado en modelos host a un


formulario principal y muestra el registro especificado.
Vea Realizar acciones predefinidas en el formulario host para
los detalles.
PROPIEDAD O ACCIÓN DESCRIPCIÓN

NavigateToView Navega el formulario basado en modelos host a una vista.


Vea Realizar acciones predefinidas en el formulario host para
los detalles.

OpenQuickCreateForm Abre el formulario de creación rápida predeterminado para


una entidad.
Vea Realizar acciones predefinidas en el formulario host para
los detalles.

Datos La propiedad de sólo lectura usada por el marco de trabajo


para enviar algunos datos clave del formulario basado en
modelos host a la aplicación de lienzo incrustada.
No use esta propiedad. Use el elemento para tener acceso al
registro del formulario basado en modelos host.

Vea también
Insertar una aplicación de lienzo en un formulario controlado por modelos
Agregar una aplicación de lienzo incrustada en un formulario basado en modelos
Editar una aplicación de lienzo incrustada en un formulario basado en modelos
Personalizar el tamaño y orientación de la pantalla de una aplicación de lienzo insertada en un formulario basado
en modelos
Realice acciones predefinidas en el formulario de host desde una aplicación de lienzo insertada
Compartir una aplicación incrustada de lienzo
Directrices acerca de cómo trabajar con aplicaciones de lienzo incrustadas
Migrar aplicaciones de lienzo insertadas en formularios basados en modelos creados mediante la versión de vista
previa pública a la más reciente
Compartir una aplicación incrustada de lienzo
25/11/2019 • 3 minutes to read • Edit Online

En este tema se explica cómo compartir una aplicación incrustada de lienzo que ha creado ya.
Una vez que haya creado y haya agregado una aplicación incrustada de lienzo a un formulario controlado por
modelos deberá realizar pasos para garantizar que todos los usuarios que tienen acceso al formulario
controlado por modelos también accedan a la aplicación de lienzo y los datos que usa. Consulte las directrices
siguientes:
Comparta la aplicación incrustada de lienzo con todos los usuarios de su organización o usuarios del grupo
de seguridad o específicos. Más información: Compartir una aplicación.
Asegúrese de que los usuarios tienen permisos adecuados para cualquier entidad de Common Data Service
que su aplicación incrustada de lienzo use. Más información: Administrar permisos de entidades
Asegúrese de que los usuarios tienen permisos adecuados para datos de cualquier servicio de nube que su
aplicación incrustada de lienzo use, como SharePoint o OneDrive. Los pasos para compartir son específicos
para cada servicio en la nube y salen de alcance de PowerApps.

NOTE
Actualmente no puede usar el privilegio Aplicación de lienzo en un rol de seguridad para conceder acceso a usuarios de
aplicaciones a una aplicación incrustada o independiente de lienzo.

Las aplicaciones de lienzo incrustadas también reconocen las soluciones. De forma predeterminada se crean
aplicaciones incrustadas de lienzo en la misma solución que el formulario controlado por modelos. Para mover
la aplicación incrustada de lienzo de un entorno a otras aplicaciones de lienzo incrustadas de exportación e
importación como parte de una solución igual que como cualquier otro componente.

Vea también
Insertar una aplicación de lienzo en un formulario controlado por modelos
Agregar una aplicación de lienzo incrustada en un formulario basado en modelos
Editar una aplicación de lienzo incrustada en un formulario basado en modelos
Personalizar el tamaño y orientación de la pantalla de una aplicación de lienzo insertada en un formulario
basado en modelos
Realice acciones predefinidas en el formulario de host desde una aplicación de lienzo insertada
Propiedades y acciones del control ModelDrivenFormIntegration
Directrices acerca de cómo trabajar con aplicaciones de lienzo incrustadas
Migrar aplicaciones de lienzo insertadas en formularios basados en modelos creados mediante la versión de
vista previa pública a la más reciente
Directrices acerca de cómo trabajar con aplicaciones
de lienzo incrustadas
25/11/2019 • 10 minutes to read • Edit Online

En este tema se proporcionan directrices acerca de cómo trabajar con aplicaciones del lienzo incrustadas así
como sugerencias útiles para solucionar los problemas que puede encontrar.
Las aplicaciones de lienzo incrustadas se admiten solo con aplicaciones controladas por modelos de interfaz
unificada.
Puede habilitar solo una aplicación insertada del lienzo por formulario.
Puede tener múltiples aplicaciones incrustadas del lienzo agregadas al formulario pero puede habilitar
solo una a la vez.
Si intenta habilitar más de una aplicación insertada del lienzo en un formulario controlado por
modelos, recibirá un mensaje “solo una aplicación del lienzo se puede habilitar en un formulario.”
Para habilitar o deshabilitar una aplicación incrustada del lienzo consulte Habilitar una aplicación de
lienzo incrustada y Deshabilitar una aplicación incrustada de lienzo.
Cuando agrega una aplicación de lienzo incrustada a un formulario basado en modelos, use siempre un
campo obligatorio que tiene garantizado siempre un valor. Si el campo no tiene un valor su aplicación
incrustada de lienzo no se actualizará como respuesta a cualquier cambio en los datos del formulario
controlado por modelos de host.
Publicar un formulario controlado por modelos tampoco publica la aplicación de lienzo incrustada.
Las aplicaciones incrustadas de lienzo tiene que publicarse independientemente del formulario
controlado por modelos del host. Más información: Publicación una aplicación.
Si abre PowerApps Studio para crear o editar una aplicación incrustada de lienzo mediante el botón
Personalizar en las propiedades del control de aplicaciones de la lona está bloqueado debido a un
bloqueador de elementos emergentes de explorador web, debe habilitar el sitio de make.powerapps.com o
temporalmente deshabilitar el bloqueador de elementos emergentes y después seleccionar Personalizar de
nuevo.
Las aplicaciones incrustadas de lienzo no se muestran al crear un nuevo registro ya que necesitan que se les
pase un contexto de registro.
El objeto de ModelDrivenFormIntegration.Item es de solo lectura.
Para devolver datos por escrito debe usar el conector Common Data Service. Más información:
Common Data Service
Las aplicaciones incrustadas del lienzo se pueden crear solo a través del formulario controlado por modelos
del host.
Agregar aplicaciones de lienzo existentes como incrustadas en formularios basados en modelos no se
admite actualmente.
En una futura actualización se proporcionará soporte para incrustar una aplicación de lienzo existente
en un formulario basado en modelos mediante el identificador de la aplicación.
Cuando vea un formulario controlado por modelos con una aplicación incrustada de lienzo, si recibe un
mensaje de error del estilo “no hemos encontrado la aplicación” asegúrese de que la aplicación incrustada de
lienzo esté en la misma solución que el formulario controlado por modelos.
Cuando se ve un formulario controlado por modelos con una aplicación incrustada de lienzo, si recibe un
mensaje de error como “parece que no tiene acceso a la aplicación. Solicite al propietario que la comparta
con usted” asegúrese de que el autor ha compartido la aplicación incrustada de lienzo con usted. Más
información: Compartir una aplicación incrustada de lienzo.
Ya no es posible agregar una aplicación de lienzo en el control de subcuadrícula.
En el lanzamiento de vista previa, los creadores pudieron agregar una aplicación de lienzo en un
control de subcuadrícula. Con la incrustación de aplicaciones de lienzo en formularios basados en
modelo ahora disponible de manera generalizada, la adición de una aplicación de lienzo incrustada en
un formulario basado en modelo se simplifica al campo.
Esto hace que sea más fácil para los creadores ya que no tienen que decidir de antemano si pasan el
registro (formulario principal) como el contexto de datos o una lista de registros relacionados con el
registro actual (formulario principal).
Los creadores siempre empiezan con un campo y pueden tener acceso tanto al registro actual
(formulario principal) como a una lista de registros relacionados con el registro actual (formulario
principal).
Para obtener acceso a la lista de registros relacionados en la aplicación de lienzo, los creadores pueden
usar el conector de Common Data Service y la función Filtro con la funcionalidad Mejorar la
experiencia de orígenes de datos y vistas de Common Data Service habilitada en la aplicación de
lienzo.
Por ejemplo, para tener acceso a la vista Contactos activos de la entidad Contactos, los creadores
pueden usar: Filter (Contacts, 'Contacts (Views)'.'Active Contacts' ).
Las aplicaciones de lienzo existentes que usen el control de subcuadrícula continuarán funcionando.
Sin embargo, se recomienda migrar estas aplicaciones para usar un campo en su lugar. Más
información: Migrar aplicaciones de lienzo insertadas en formularios basados en modelos que usan
una lista de registros relacionados con el registro actual (formulario principal).

Habilitar una aplicación incrustada de lienzo


1. Seleccione el campo que está personalizado para mostrarse como una aplicación incrustada de lienzo.
2. En el diálogo Propiedades de campo, seleccione la pestaña Controles.
3. En la lista de controles seleccione Aplicación de lienzo y seleccione la opción Web .
4. Seleccione Aceptar.

Deshabilitar una aplicación incrustada de lienzo


1. Seleccione el campo que está personalizado para mostrarse como una aplicación incrustada de lienzo.
2. En el diálogo Propiedades de campo, seleccione la pestaña Controles.
3. En la lista de controles seleccione el control predeterminado y seleccione la opción Web.
4. Seleccione Aceptar.

Problemas y limitaciones conocidos con aplicaciones incrustadas de


lienzo
El control personalizado de aplicación de lienzo solo es compatible para usarlo con el tipo de cliente Web .
Actualmente, no se admiten los tipos de cliente Teléfono y Tableta .
El control ModelDrivenFormIntegration no proporciona un valor para campos de una entidad relacionada.
Por ejemplo, cuando el control ModelDrivenFormIntegration está conectado a la entidad Cuentas, el
uso de ModelDrivenFormIntegration.Item.’Primary Contact’’.Full Name’ no devolverá un valor.
Para obtener acceso a campos de una entidad relacionada, los creadores puede usar cualquiera de las
expresiones enumeradas aquí:
LookUp (Accounts, Account = GUID (First(ModelDrivenFormIntegration.Data ).ItemId )).'Primary
Contact'.'Full Name'
ItemId está vacío en el momento de creación pero tendrá un valor en tiempo de
ejecución.
LookUp (Accounts, Account = ModelDrivenFormIntegration.Item.Account).'Primary
Contact'.'Full Name' (Esta expresión es más fácil de leer, pero la anterior tendrá un
comportamiento ligeramente mejor.)
No puede usar el privilegio Aplicación de lienzo en un rol de seguridad para conceder acceso a usuarios de
la aplicación a una aplicación incrustada o independiente de lienzo. Para obtener más información sobre
compartir una aplicación incrustada de lienzo, consulte: Compartir una aplicación incrustada de lienzo.
Si responde escribiendo los mismos datos que se muestran en el formulario controlado por modelos de host,
el formulario seguirá mostrando datos antiguos hasta que se actualice. Una forma simple de hacer esto es
usar el método RefreshForm.

Vea también
Insertar una aplicación de lienzo en un formulario controlado por modelos
Agregar una aplicación de lienzo incrustada en un formulario basado en modelos
Editar una aplicación de lienzo incrustada en un formulario basado en modelos
Personalizar el tamaño y orientación de la pantalla de una aplicación de lienzo insertada en un formulario
basado en modelos
Realice acciones predefinidas en el formulario de host desde una aplicación de lienzo insertada
Propiedades y acciones del control ModelDrivenFormIntegration
Compartir una aplicación incrustada de lienzo
Migrar aplicaciones de lienzo insertadas en formularios basados en modelos creados mediante la versión de
vista previa pública a la más reciente
Migrar aplicaciones de lienzo insertadas en
formularios basados en modelos creados mediante
la versión de vista previa pública
25/11/2019 • 8 minutes to read • Edit Online

IMPORTANT
Con la versión más reciente, las aplicaciones de lienzo incrustadas en formularios basados en modelos están disponibles en
general. Las aplicaciones de lienzo incrustadas en formularios basados en modelos mediante la versión de vista previa
pública deben migrarse a nuevas aplicaciones incrustadas creadas mediante la última versión. Pronto dejará de prestarse
soporte técnico para aplicaciones de lienzo insertadas en formularios basados en modelos creados mediante la versión de
vista previa pública

Para migrar aplicaciones de lienzo incrustadas en formularios basados en modelos mediante la versión de vista
previa pública a la más reciente, los creadores primero deben crear una nueva aplicación de lienzo incrustada
creada mediante la última versión. A continuación los creadores pueden copiar los controles desde la aplicación
de lienzo incrustada existente a la nueva, agregar orígenes de datos requeridos y actualizar referencias rotas si
las hay. A continuación se proporcionan los pasos detallados.
1. Inicie sesión en PowerApps.
2. Abra la aplicación de lienzo incrustada creada con la versión de vista previa pública para editar en PowerApps
Studio. Para obtener pasos sobre cómo editar una aplicación de lienzo consulte: Editar una aplicación de
lienzo.
3. En una nueva pestaña del explorador, siga los pasos para agregar una nueva aplicación de lienzo incrustada
en un formulario basado en modelos.
4. Copie los controles de la aplicación de lienzo incrustada creada con la versión de vista previa pública a la
nueva aplicación de lienzo incrustada, una sola pantalla cada vez mediante los pasos indicados a continuación.
a. Seleccione la pestaña del explorador del paso 2, que tiene la aplicación de lienzo incrustada, creada con
la versión de vista previa pública, abierta en PowerApps Studio.
b. Seleccione una pantalla para copiar los controles.
c. Use Ctrl + A para seleccionar todos los controles en la pantalla.
d. Use Ctrl + C para copiar todos los controles seleccionados.
e. Seleccione la pestaña del explorador del paso 3, que tiene la nueva aplicación de lienzo incrustada
creada con la versión más reciente.
f. Seleccionar una pantalla o agregue una nueva.
g. Use Ctrl + V para pegar los controles en la pantalla seleccionada.
h. Repita los pasos para copiar cada pantalla.
5. Cuando termine de copiar todas las pantallas, seleccione la pestaña del explorador del paso 3, que tiene la
nueva aplicación de lienzo incrustada creada con la versión más reciente.
6. Actualice todos lugares donde se accede al registro del formulario basado en modelos host. Reemplace
First(ModelDrivenFormIntegration.Data) con ModelDrivenFormIntegration.Item.
7. Agregue los orígenes de datos que faltan en la nueva aplicación de lienzo incrustada.
8. Actualice todas las referencias rotas en la nueva aplicación de lienzo incrustada.
9. Cuando finalice de hacer cambios, seleccione la pestaña Archivo y, a continuación seleccione Guardar.
10. Para que los cambios pasen a estar disponibles a los usuarios finales, seleccione Publicar y luego seleccione
Publicar esta versión.

Migrar aplicaciones de lienzo insertadas en formularios basados en


modelos que usan una lista de registros relacionados con el registro
actual (formulario principal)
En la versión de vista previa, para insertar una aplicación de lienzo en un formulario basado en modelos, los
creadores tenían que decidir con antelación si querían pasar el registro actual (formulario principal) como
contexto de datos o una lista de registros relacionados con el registro actual (formulario principal). A
continuación tenían que agregar el control de la aplicación de lienzo a un control de campo o de subcuadrícula.
Con la última versión, agregar una aplicación de lienzo incrustada en un formulario basado en modelos se ha
simplificado y agilizado solo al campo. Los creadores pueden seguir accediendo fácilmente a la lista de registros
relacionados directamente en la aplicación de lienzo mediante el conector Common Data Service.
Para migrar una aplicación de lienzo insertada en un formulario basado en modelos que usa una lista de
registros relacionados con el registro actual (formulario principal), siga estos pasos.
1. Siga los pasos de la sección anterior para migrar aplicaciones de lienzo incrustadas en formularios basados
en modelos creadas mediante la versión de vista previa pública a la versión más reciente.
2. Mediante el conector Common Data Service, agregue un origen de datos para la entidad relacionada a la
aplicación. Para obtener más información sobre cómo agregar un origen de datos en una aplicación de lienzo,
consulte Agregar una conexión de datos a una aplicación de lienzo en PowerApps.
3. Cuando se usa el origen de datos de la entidad relacionada para un control como Galería o Tabla de datos,
use la función Filtro para filtrar los registros a los que están relacionados con el registro actual (formulario
principal). El registro actual (formulario principal) está disponible mediante
ModelDrivenFormIntegration.Item.

NOTE
La aplicación de lienzo incrustada tiene acceso total al registro desde el formulario basado en modelos host
mediante ModelDrivenFormIntegration.Item. Por ejemplo, para obtener el valor de un campo con el nombre
accountnumber y el nombre para mostrar Número de cuenta, puede usar
ModelDrivenFormIntegration.Item.accountnumber o ModelDrivenFormIntegration.Item.'Número de
cuenta'.

4. Con las actualizaciones recientes Common Data Service ahora también ofrece soporte para usar vistas de
entidad como filtro. Consulte esta entrada de blog para los detalles: Selección mejorada de origen de datos y
Common Data Service vistas.

Vea también
Insertar una aplicación de lienzo en un formulario controlado por modelos
Agregar una aplicación de lienzo incrustada en un formulario basado en modelos
Editar una aplicación de lienzo incrustada en un formulario basado en modelos
Personalizar el tamaño y orientación de la pantalla de una aplicación de lienzo insertada en un formulario basado
en modelos
Realice acciones predefinidas en el formulario de host desde una aplicación de lienzo insertada
Propiedades y acciones del control ModelDrivenFormIntegration
Compartir una aplicación incrustada de lienzo
Directrices acerca de cómo trabajar con aplicaciones de lienzo incrustadas
Insertar un informe de Power BI en un formulario
basado en modelos
25/11/2019 • 10 minutes to read • Edit Online

Puede usar informes de Power BI en aplicaciones basadas en modelos PowerApps para incluir informes y análisis
enriquecido en los formularios del sistema y permitir a los usuarios conseguir más. Esto desbloquea la capacidad
de agregar datos en entre los sistemas, y adaptarlos al contexto de un solo registro.

Requisitos previos
Insertar contenido de Power BI es una característica opcional y está deshabilitada en todos los entornos de forma
predeterminada. Debe habilitarla para poder insertar contenido de Power BI. Más información: Visualizaciones de
Power BI en la organización.
Esta característica requiere exportar una solución, modificarla para agregar el fragmento de código XML, y luego
volver a importarla al entorno. Asegúrese de importar los cambios en el entorno de destino mediante una solución
administrada únicamente. Vea Importar, actualizar y exportar soluciones para obtener instrucciones sobre instalar
una actualización en una solución administrada existente.

Insertar sin filtrado contextual


Puede usar los informes y ventanas de Power BI simplemente insertándolos, y obtener el mismo informe exacto.
Esto no implica contextualizarlos en el formulario actual basado en modelos y, por tanto, obtiene el mismo informe
o ventana en todos los registros de la entidad. Por ejemplo, el siguiente informe muestra la ubicación geográfica de
todas las cuentas a la vez, y es muy útil para mostrar la información de resumen.

Puede insertar una sección que hospede informes y ventanas de Power BI en los formularios del sistema
agregando el fragmento de código siguiente en el bloqueo <sections> del XML del formulario. A continuación,
importe la solución en el entorno de destino.
<section id="{d411658c-7450-e1e3-bc80-07021a04bcc2}" locklevel="0" showlabel="true" IsUserDefined="0"
name="tab_4_section_1" labelwidth="115" columns="1" layout="varwidth" showbar="false">
<labels>
<label languagecode="1033" description="Unfiltered Power BI embedding demo"/>
</labels>
<rows>
<row>
<cell id="{7d18b61c-c588-136c-aee7-03e5e74a09a1}" showlabel="true" rowspan="20" colspan="1"
auto="false">
<labels>
<label languagecode="1033" description="Accounts (Parent Account)"/>
</labels>
<control id="unfilteredreport" classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}">
<parameters>
<PowerBIGroupId>00000000-0000-0000-0000-000000000000</PowerBIGroupId>
<PowerBIReportId>544c4162-6773-4944-900c-abfd075f6081</PowerBIReportId>
<TileUrl>https://xyz.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-
abfd075f6081</TileUrl>
</parameters>
</control>
</cell>
</row>
<row/>
</rows>
</section>

IMPORTANT
Asegúrese de usar el control classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}" como se indica en el XML de ejemplo.

En esta tabla se describen las propiedades del ejemplo anterior.

PROPIEDAD DESCRIPCIÓN

PowerBIGroupId El Id. del área de trabajo de Power BI. El área de trabajo


predeterminada del usuario es siempre 00000000-0000-
0000-0000-000000000000. Puede comprobar el Id. de
cualquier área de trabajo viendo su dirección URL. Por
ejemplo, https://xyz.powerbi.com/groups/0ddbe381-256d-
44bc-93de-34e47f3d9ab4/.

PowerBIReportId La identificación del informe de Power BI. Reemplace esto con


el informe que desea insertar. Puede comprobar el Id. de
cualquier informe viendo su dirección URL. Por ejemplo,
https://xyz.powerbi.com/groups/me/reports/544c4162-6773-
4944-900c-abfd075f6081.

TileUrl La dirección URL del informe o la ventana de Power BI que


desea insertar. Asegúrese de usar el nombre de instancia
correcto de Power BI (reemplace msit.powerbi.com por el
suyo) y el Id. de informe (reemplace reportId=544c4162-
6773-4944-900c-abfd075f6081 por el suyo). Por ejemplo,
https://xyz.powerbi.com/reportEmbed?reportId=544c4162-
6773-4944-900c-abfd075f6081.

Insertar con filtrado contextual


Puede hacer que los informes y ventanas de Power BI sean más significativos aplicando filtros contextuales al
formulario basado en modelos, de forma que el informe o la ventana se basen en filtros de atributos del registro
actual. Por ejemplo, el siguiente informe muestra la ubicación geográfica de una cuenta, filtrando el informe de
Power BI con el nombre de cuenta. Esto permite que un informe solo muestre información contextualizada para
todos los registros de la entidad.

El filtrado se realiza agregando un elemento <PowerBIFilter> en el bloque <parameter> como se muestra aquí.
Puede usar cualquier atributo de entidad del formulario para generar expresión de filtro. Más información:
Construir filtros para comprender cómo crear sus propios filtros.

<control id="filteredreport" classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}">


<parameters>
<PowerBIGroupId>00000000-0000-0000-0000-000000000000</PowerBIGroupId>
<PowerBIReportId>544c4162-6773-4944-900c-abfd075f6081</PowerBIReportId>
<TileUrl>https://xyz.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081</TileUrl>
<PowerBIFilter>{"Filter": "[{\"$schema\":\"basic\",\"target\":{\"table\":\"My Active
Accounts\",\"column\":\"Account Name\"},\"operator\":\"In\",\"values\":[$a],\"filterType\":1}]", "Alias":
{"$a": "name"}}</PowerBIFilter>
</parameters>
</control>

Tenga en cuenta que se usa el mismo control que la inserción del informe sin filtrar y, por tanto, el Id. de clases
control se mantiene sin cambios.
En esta tabla se describen las propiedades adicionales utilizadas en el ejemplo anterior.

PROPIEDAD DESCRIPCIÓN

PowerBIFilter La expresión de filtro que contextualiza el informe de Power BI


pasando los atributos de formulario como parámetros. Para
hacer que sea más legible, el filtro se construye como se
muestra aquí.
{
"Filter": "[{
\"$schema\":\"basic\",
\"target\":{
\"table\":\"My Active Accounts\",
\"column\":\"Account Name\"
},
\"operator\":\"In\",
\"values\":[$a, $b],
\"filterType\":1
}]",
"Alias": {
"$a": "firstname",
"$b":"lastname"
}
}

La parte de destino de la expresión anterior identifica la tabla y la columna a la que aplicar filtros. El operador
identifica la lógica y los valores identifican los últimos datos pasados desde la aplicación basada en modelos de
PowerApps. Para parametrizar de una forma genérica, los valores son construidos mediante alias. En la expresión
anterior, se pasa el valor de firstname y lastname de una cuenta, y se busca cualquiera de ellos en la columna
Nombre de cuenta en el informe de Power BI. Tenga en cuenta que firstname y lastname son los nombres
únicos de los atributos de la entidad de cuenta, cuyo valor será pasado aquí.
Puede crear expresiones de filtro más complejas consultando ejemplos de Construir los filtros y proporcionando
los valores adecuados para $schema y filterType. Asegúrese de escapar cada literal en la parte de filtro con ", para
generar JSON correctamente.

Problemas y limitaciones conocidos


1. Esta integración solo está disponible en el cliente de la interfaz unificada, en exploradores web y los
dispositivos móviles compatibles.
2. Al abrir este formulario en el diseñador de formularios de PowerApps no se mostrará el control en una
forma significativa. Esto se debe a que el control se personaliza fuera del diseñador de formularios.
3. Los usuarios se autenticarán en Power BI automáticamente con su nombre de usuario y contraseña de
PowerApps. Si no existe una cuenta de Power BI con credenciales coincidentes, un inicio de sesión mensaje
se muestra como se ilustra aquí.

4. No se mostrarán datos si una cuenta incorrecta se usa para iniciar sesión en Power BI. Para iniciar sesión
con las credenciales correctas, cierre sesión y, a continuación vuelva a iniciar sesión.
5. La vista de los datos de informe que se muestran en PowerApps es igual que en Power BI, y los roles de
seguridad y los privilegios de PowerApps no afectan a los datos que se muestran. Por lo tanto, los datos son
esencialmente iguales que los que vería el creador del conjunto de datos de Power BI. Para aplicar las
restricciones de acceso a datos similares a los roles de seguridad y equipos de PowerApps, use Seguridad de
nivel de fila (RLS ) con Power BI.
6. Si el formulario no muestra el informe de Power BI después de importar la solución y de publicar las
personalizaciones, ábrala en el editor de formularios basados en modelos y guárdelo, para que se genere el
JSON de formulario.
Vea también
Insertar un panel de Power BI en un panel personal basado en modelos de PowerApps
Usar Power BI con aplicaciones de Dynamics 365
Importar, actualizar y exportar soluciones
Conocer las vistas de las aplicaciones controladas
por modelos
25/11/2019 • 10 minutes to read • Edit Online

Con las aplicaciones de PowerApps, utilice vistas para definir cómo se muestra una lista de registros para una
entidad específica en la aplicación. Las vistas definen:
Las columnas que aparecen
Qué ancho debe tener cada columna
Cómo debe ordenarse la lista de registros de forma predeterminada
Qué filtros predeterminados se deben aplicar para limitar los registros que aparecerán en la lista
Una lista desplegable de vistas con frecuencia se muestra en la aplicación para que la gente tiene distintas
opciones para vistas de datos de la entidad.
Los registros que están visibles en vistas individuales se muestran en una lista, a veces denominada cuadrícula,
que a menudo proporciona opciones para que los usuarios puedan cambiar el orden predeterminado, el ancho
de columna, y filtros para ver más fácilmente los datos importantes para ellos. Las vistas definen también el
origen de datos para los gráficos que se usan en la aplicación.

Tipos de vistas
Existen tres tipos de vistas: personales, del sistema y públicas.
Este tema aborda cómo los administradores y personalizadores del sistema trabajan con vistas del sistema y
públicas.
Vistas personales
Usted y cualquiera que tenga al menos el nivel de acceso Usuario a las acciones de la entidad Vista guardada
también pueden crear vistas personales. Como administrador del sistema, usted puede modificar el nivel de
acceso de cada acción en el rol de seguridad para controlar la profundidad a la que los usuarios pueden crear,
leer, escribir, eliminar, asignar o compartir vistas personales.
Las vistas personales son propiedad de personas individuales y debido a su acceso predeterminado de nivel de
usuario, solo son visibles para esas personas o cualquiera que hayan elegido para compartir sus vistas
personales. Puede crear vistas personales guardando una consulta que defina mediante Búsqueda avanzada o
mediante las opciones Guardar filtros como vistas nuevas y Guardar filtros en la vista actual en la lista de vistas.
Estas vistas suelen incluirse en la parte inferior de las listas de vistas del sistema o públicas que estén disponibles
en la aplicación. Aunque puede crear una vista personal nueva basada en una vista del sistema o pública, no
puede crear una vista del sistema o pública basada en una vista personal.
Vistas del sistema
Como administrador o personalizador del sistema, puede editar vistas del sistema. Las vistas del sistema son
vistas especiales de las que depende la aplicación, que existen para entidades del sistema o se crean
automáticamente cuando se crean entidades personalizadas. Estas vistas tienen finalidades específicas y algunas
funcionalidades adicionales.

VISTAS DEL SISTEMA DESCRIPCIÓN


VISTAS DEL SISTEMA DESCRIPCIÓN

Búsqueda rápida La vista predeterminada que se usa cuando se realizan


búsquedas mediante Búsqueda rápida. Esta vista también
define los campos en los que se busca al usar las capacidades
de búsqueda de las vistas de Búsqueda rápida y Búsqueda.

Búsqueda avanzada La vista predeterminada usada para mostrar los resultados


cuando se utiliza Búsqueda avanzada. Esta vista también
define las columnas que se usan de forma predeterminada
cuando se crean nuevas vistas ni vistas personales o públicas
personalizadas sin definir una vista para usar como plantilla.

Asociadas La vista predeterminada que muestra las entidades


relacionadas para un registro.

Búsqueda La vista que ve al seleccionar un registro para definir para un


campo de búsqueda.

Estas vistas no aparecen en el selector de la vista y no puede usarlas en sublistas en un formulario o como una
lista en un panel. No puede eliminar o desactivar estas vistas. Más información: Quitar vistas
Las vistas del sistema son propiedad de la organización, por lo que todos puedan verlas. Por ejemplo, todos
tienen acceso a nivel de organización a registros de lectura para la entidad Vista (savedquery). Estas vistas están
asociadas con entidades específicas y son visibles en el explorador de soluciones. Puede incluir estas vistas en
soluciones porque están asociadas con la entidad.
Vistas públicas
Las vistas públicas son vistas de uso general que puede personalizar como desee. Estas vistas están disponibles
en el selector de vistas y puede utilizarlas en subcuadrículas en un formulario o como lista en un panel. Algunas
vistas públicas existen de forma predeterminada para entidades del sistema y para cualquier entidad
personalizada. Por ejemplo, al crear una nueva entidad personalizada, tendrá la siguiente combinación de vistas
públicas y del sistema.

NOMBRE ESCRIBA

Nombre plural de entidad activo Pública

Nombre plural de entidad inactivo Pública

Búsqueda rápida de nombre plural de entidad activa Búsqueda rápida

Vista de búsqueda avanzada de nombre de entidad Búsqueda avanzada

Vista asociada de nombre de entidad Asociadas

Vista de búsqueda de nombre de entidad Búsqueda

Puede crear vistas públicas personalizadas. Puede eliminar cualquier vista pública personalizada creada en una
solución no administrada. No puede eliminar ninguna vista pública definida por el sistema. Las vistas públicas
personalizadas agregadas importando una solución administrada pueden tener propiedades administradas
establecidas que pueden impedir que se eliminen, excepto desinstalando la solución administrada.

Lugares donde puede acceder al editor de vistas para crear o editar


vistas
Sitio de PowerApps: puede acceder al diseñador de vistas en el área Controlado por modelos > pestaña
Datos > Entidades > Vista. Abra una vista existente o cree una nueva. Más información: Crear o editar una
vista
Diseñador de aplicaciones: si está trabajando con una aplicación, puede que desee usar el diseñador de
aplicaciones, que ofrece una IU intuitiva y simple con capacidades de arrastrar y colocar para las vistas
creadas. Más información: Tutorial: Crear y editar vistas públicas o del sistema usando el diseñador de
aplicaciones
Explorador de soluciones: si ya tiene experiencia con Dynamics 365, es posible que desee utilizar el
explorador de soluciones. Más información: Navegar a áreas de creación y personalización avanzadas de
aplicaciones

Personalizar vistas
Como personalizador del sistema, puede personalizar las vistas a través de controles haciendo que las
cuadrículas (listas) sean editables y compatibles para Interfaz unificada. Se usan los controles siguientes:
Cuadrícula editable Permite a los usuarios editar en línea con gran detalle directamente desde cuadrículas y
subcuadrículas tanto si usan una aplicación web, tableta o teléfono. Más información: Crear cuadrículas
editables mediante el control personalizado Cuadrículas editables
Cuadrícula de solo lectura: Ofrece una experiencia de visualización e interacción óptima para cualquier
tamaño de pantalla u orientación, como móviles y tabletas, usando principios de diseño receptivos. Más
información: Especificar propiedades para aplicaciones de Interfaz unificada

Pasos siguientes
Creación o edición de vistas
Crear o editar una vista de aplicación controlada por
modelos
25/11/2019 • 3 minutes to read • Edit Online

En este tema, creará una nueva vista pública personalizada. También editará una vista existente.
Crea una vista
1. Inicie sesión en PowerApps.

IMPORTANT
“Si el modo de diseño Controlado por modelos no está disponible, puede que tenga que Crear un entorno.

2. Expanda Datos, seleccione Entidades, seleccione la entidad Cuenta que desee y, a continuación,
seleccione la pestaña Vistas.
3. En la barra de herramientas, seleccione Agregar vista.
4. En el cuadro de diálogo Ver propiedades, indique un Nombre, como Cuentas con 25 o más
empleados, opcionalmente una Descripción para la vista y, a continuación seleccione Aceptar.

5. En el panel derecho de tareas comunes, seleccione Agregar columnas, en el cuadro Agregar columnas
seleccione Número de empleados y, a continuación seleccione Aceptar.
6. En el panel derecho de tareas comunes, seleccione Editar criterios de filtrado, en el cuadro de diálogo
Editar criterios de filtrado, seleccione Número de empleados, seleccione Es mayor o igual que y, a
continuación, introduzca 25.

7. Seleccione Aceptar para cerrar el cuadro de diálogo Editar criterios de filtrado y, a continuación,
seleccione Guardar y cerrar en el editor de la vista.
8. Tenga en cuenta que la vista ahora está disponible en la pestaña Vistas en el sitio de PowerApps, lo que
permite agregarla a una aplicación.
Edite una vista
1. En la pestaña Vistas en el sitio de PowerApps, seleccione la vista Número de empleados.
2. Cambie el Nombre de la vista a Número de empleados con 25 o más empleados de Arizona y, a
continuación, seleccione Aceptar.
3. En el panel derecho de tareas comunes, seleccione Agregar columnas, en el cuadro de diálogo Agregar
columnas seleccione Dirección 1: ciudad y, a continuación seleccione Aceptar.
4. En el panel derecho de tareas comunes, seleccione Edite criterios de filtrado, en el cuadro de diálogo
Editar criterios de filtrado agregue una segunda cláusula de filtro. Seleccione Dirección 2: estado o
provincia, seleccione Igual a y, a continuación, Arizona.
5. Seleccione Aceptar para cerrar el cuadro de diálogo Editar criterios de filtrado y, a continuación,
seleccione Guardar y cerrar en el editor de la vista.

Cree una nueva vista a partir de una vista existente


Siga el procedimiento para editar una vista, pero en lugar de elegir Guardar y cerrar, seleccione Guardar como y
escriba un nuevo Nombre y una Descripción de la vista.
Pasos siguientes
Elija y configure columnas
Edite criterios de filtrado
Configurar la ordenación
Acceso a una definición de vista de aplicación
controlada por modelos en PowerApps
25/11/2019 • 4 minutes to read • Edit Online

En este tema abrirá una definición de vista para mostrar propiedades y opciones para configurar la vista. Existen
varias formas de acceder a definiciones de vista en PowerApps.

Abra una vista para editar en el último diseñador de vistas


IMPORTANT
La versión más reciente del diseñador de vistas está funcionando actualmente en vista previa. Algunas características como el
filtrado avanzado, controles personalizados, así como propiedades de columnas aún no se admiten. Para realizar estas tareas
Abra una vista para editar en el explorador de soluciones.

1. Inicie sesión en PowerApps.

IMPORTANT
“Si el modo de diseño Controlado por modelos no está disponible, puede que tenga que Crear un entorno.

2. Expanda Datos, seleccione Entidades y, a continuación, seleccione la entidad que desee, como la entidad
Cuenta.
3. Seleccione la ficha Vistas.
4. Seleccione la vista que desea abrir como, por ejemplo, la vista Todas las cuentas de la entidad de cuenta.

5. En el editor de vistas puede realizar varias tareas:


Ordenar registros en una vista
Elegir y configurar columnas en vistas

Abra una vista para editarla desde una aplicación web heredada
En cualquier vista de lista para una entidad de una aplicación web heredada, en la barra de comandos encontrará
los siguientes comandos tras seleccionar el botón de puntos (...):
Vista: Abre la definición de la vista actual de la solución predeterminada.
Nueva vista del sistema: Abre una ventana nueva para crear una nueva vista de la entidad actual en la
solución predeterminada.
Personalizar entidad: Le llevará a la definición de la entidad actual en la solución predeterminada donde
puede seleccionar Vistas.
Vistas del sistema: Abre la misma que ventana que Personalizar entidad, pero con Vistas seleccionado.

Abrir una vista para editarla en el Explorador de soluciones


1. Abra el explorador de soluciones.
2. En Componentes, expanda Entidades y, a continuación, expanda la entidad que desea.
3. Seleccione Vistas.
4. Haga doble clic en la vista que desea abrir. Esto abrirá el diseñador de vistas clásico.

Esta lista de vistas tiene cuatro filtros que puede usar para encontrar las vistas que desea más fácilmente:
Todas las vistas activas
Vistas públicas activas
Vistas públicas inactivas
Vistas activas definidas por el sistema
Si la entidad con la que está asociada la vista forma parte de una solución no administrada, puede crear o editar
vistas para esa entidad en la solución predeterminada. Las vistas del sistema se asocian con una entidad y no están
disponibles como componentes de soluciones independientes. A diferencia de los campos, las vistas no usan un
prefijo de personalización en un nombre único que deba ser coherente en una solución, de modo que no es
necesario crear vistas en el contexto de una solución.

Pasos siguientes
Comprender las vistas
Crear y editar vistas públicas o del sistema de
aplicaciones controladas por modelos
25/11/2019 • 14 minutes to read • Edit Online

En este tema realizará varias tareas necesarias para trabajar con las vistas, como crear una vista pública, agregar
una vista existente a una aplicación y cambiar las columnas, los filtros y el criterio de ordenación para una vista.
En PowerApps, las vistas definen cómo se muestran los registros de una entidad específica. Una vista define lo
siguiente:
Las columnas (atributos) que aparecen
Ancho de las columnas
Cómo se ordenan los registros de forma predeterminada
Qué filtros se aplican para determinar qué registros aparecen en la lista de forma predeterminada
Las vistas se clasifican generalmente en tres tipos:
Personal: los usuarios individuales pueden crear vistas personales según sus requisitos personales. Estas vistas
solo son visibles para el usuario que las creó y para cualquier usuario con el que hubiera elegido compartirlas.
Pública: como creador de aplicaciones, puede crear y editar vistas públicas para adaptarse a los requisitos de
su organización. Estas vistas están disponibles en el selector de vistas y puede utilizarlas en subcuadrículas en
un formulario o como lista en un panel.
Sistema: como creador de aplicaciones, también puede modificar vistas del sistema para cumplir los requisitos
de su organización. Son vistas especiales de las que depende la aplicación, que existen para entidades del
sistema o se crean automáticamente cuando se crean entidades personalizadas. Estas vistas están disponibles
para algunos o para todos los usuarios, en función de sus permisos.
Más información: Comprender las vistas

Crear una vista pública en PowerApps


Como creador de aplicaciones, puede crear y editar vistas públicas usando PowerApps.
1. Inicie sesión en PowerApps.

IMPORTANT
“Si el modo de diseño Controlado por modelos no está disponible, puede que tenga que Crear un entorno.

2. Expanda Datos, seleccione Entidades, seleccione la entidad que desee y, a continuación, seleccione la
pestaña Vistas.
3. En la barra de herramientas, seleccione Agregar vista.
4. En el cuadro de diálogo Crear vista, introduzca un nombre y, si lo desea, una descripción, y, a continuación,
seleccione Crear.
5. En el diseñador de vistas, seleccione la columna más para agregar las columnas adicionales que desee
mostrar en la vista. Más información: Agregar una columna a su vista en diseñador de aplicaciones
6. En el diseñador de vistas, puede realizar las tareas siguientes:
Para cambiar el filtro de la columna seleccione el encabezado de columna que desea filtrar y en la lista
desplegable seleccione Filtrar por.
Para cambiar el orden de la columna seleccione el encabezado de columna que desea filtrar y en la lista
desplegable seleccione Filtrar Ordenar de la A a la Z u Ordenar de la Z a la A.
Configure el ancho de columna haciendo clic en la columna y arrastrándola a la posición deseada.
Reordene las columnas arrastrando una columna hasta la posición que desee.

NOTE
También puede cambiar el orden de la columna haciendo clic en el encabezado de columna y seleccionando Mover a
la derecha o Mover a la izquierda.

7. Elija Publicar para guardar la vista y hacer que esté disponible para otros usuarios de su organización.

Trabajar con vistas en el diseñador de aplicaciones


En la siguiente sección se describe cómo crear y editar las vistas en diseñador de aplicaciones.
Abrir y agregar una vista en el diseñador de aplicaciones.
En los pasos siguientes se explica cómo abrir y agregar una vista en el diseñador de aplicaciones.
1. En PowerApps seleccione Aplicaciones en el panel de navegación de la izquierda, seleccione ... junto a la
aplicación que desee y seleccione Editar.
2. En sección Vista de entidad del diseñador de aplicaciones, seleccione Vistas.
En este ejemplo, hemos seleccionado Vistas en la entidad Cuenta.
3. Para agregar una vista, selecciónela usando tipos de vista como Pública, Búsqueda avanzada, Asociada y
Búsqueda. La vista se agregar automáticamente a la lista Vistas.

NOTE
Las vistas se muestran en función de la entidad que ha seleccionado. Por ejemplo, si selecciona Cuenta, se muestran
las vistas relacionadas con la entidad Cuenta.

Para obtener más información sobre el diseñador de aplicaciones: Diseñar aplicaciones de negocio personalizadas
mediante el diseñador de aplicaciones
Agregue una columna a la vista en diseñador de aplicaciones
Las vistas muestran registros en una tabla que contiene filas y columnas. Cada fila es un registro y los campos que
se muestra desde el registro dependen de las columnas que agregue a la vista.
1. En el diseñador de la aplicación, seleccione la vista de la entidad que desea y en el panel derecho junto a la
vista que desee seleccione editar (botón de lápiz).
2. En la ficha Componentes, seleccione la lista Atributos de columna de la Entidad principal o la Entidad
relacionada.

3. En la lista, seleccione el atributo que desee y arrástrelo hacia el encabezado de la columna. También puede
agregar el atributo haciendo doble clic en él.
4. Repita el paso 3 hasta que haya agregado todos los atributos que desee mostrar en la vista.
A medida que agrega atributos, puede arrastrarlos a cualquier posición entre los encabezados de columna
existentes. También puede mover columnas después de agregarlas a la vista.
Defina los criterios de filtro en diseñador de la aplicación
Puede establecer criterios de filtrado para que solo se muestre un subconjunto de registros en una vista. Cuando
un usuario abre la vista, se muestran solo los registros que cumplan los criterios de filtro definidos. Puede
seleccionar campos para filtrar entre las entidades principales y las relacionadas.
1. En el diseñador de aplicaciones, expanda la sección Criterios de filtro.

2. Seleccione Agregar filtro.


3. Seleccione un atributo de la lista desplegable de la primera columna.
4. Seleccione un operador de la lista desplegable de la segunda columna.

5. Escriba un valor por el que filtrar la tercera columna.


Puede filtrar los datos según los atributos de entidades relacionadas, además de la entidad principal.
1. En la ficha Componentes, seleccione la lista Atributos de columna para Entidad relacionada,
seleccione la flecha hacia abajo Seleccionar una entidad en el campo superior y, después, elija la entidad
que desee.
Así se agregará una sección independiente.
2. Repita los pasos 2 a 5 del procedimiento anterior.
Más información: Crear y editar relaciones entre entidades
Agrupar varios filtros en el diseñador de aplicaciones
Puede agregar varios filtros para la vista si desea filtrar los registros usando más de un campo.
1. Seleccione los filtros que desea agrupar.
2. Seleccione Agrupar con Y o Agrupar con O para agrupar los filtros.

Al seleccionar Agrupar por Y, solo los registros que satisfagan ambos criterios se muestran en la vista. Si
selecciona Agrupar por O, se muestran los registros que cumplan cualquiera de los criterios de filtro. Por
ejemplo, para mostrar solo los registros que tienen prioridad Alta o Normal y el estado de Activo, seleccione
Agrupar por Y.
Para quitar el filtro de un grupo, seleccione el grupo y seleccione Desagrupar.
Establecer el criterio de ordenación primario y secundario de las columnas del diseñador de aplicaciones
Cuando se abre una vista, se ordenan los registros que se muestra en el orden que se establece cuando se crea la
vista. De forma predeterminada, los registros se ordenan según la primera columna en una vista cuando no se
selecciona ningún orden. Puede elegir ordenar por una sola columna, o bien, elegir dos columnas —una principal
y otra secundaria— para ordenar. Cuando se abre la vista, los registros se ordenan primero por la columna que
desea usar para la ordenación principal y, después, por la columna que desea usar para la ordenación secundaria.

NOTE
Solo puede establecer ordenaciones principales y secundarias para los atributos de columna que ha agregado desde la
entidad principal.

1. Seleccione la columna que desea usar para la ordenación.


2. Seleccione la flecha abajo y, después, elija Ordenación principal u Ordenación secundaria.
Si quita la columna elegida para el orden principal, la columna elegida para el orden secundario se convierte en la
principal.
Definir un recurso web en diseñador de aplicaciones
Especifique un recursos web de tipo script, para asociar a una columna en la vista. Estos scripts ayudan a mostrar
iconos para las columnas.
1. Seleccione la columna a la que desea agregar el recurso web.
2. En la pestaña Propiedades, seleccione Avanzadas.
3. En la lista despegable Recurso web, seleccione el recurso web que desee usar.
4. En el cuadro de texto Nombre de función, escriba un nombre de función.
Editar una vista pública o del sistema en diseñador de la aplicación
Puede cambiar la forma en que se muestra una vista pública o de sistema agregando, configurando o quitando
columnas.

1. En la lista Vistas de una entidad, seleccione la flecha abajo Mostrar la lista de referencias .

2. Junto a la vista que desea editar, seleccione Abrir el diseñador de vistas .


La vista se abre en el diseñador de vistas.
Cuando edite una vista pública o de sistema, debe guardar y publicar los cambios antes de que estén visibles en la
aplicación.

Herramientas de la Comunidad
Ver diseño del Duplicador y Ver diseñador son herramientas que la comunidad XrmToolbox desarrolló para
PowerApps.
Más información: Herramientas del desarrollador.

NOTE
Estas herramientas se proporcionan por XrmToolBox y no se admiten por Microsoft. Si tiene alguna duda relacionada con la
herramienta, póngase en contacto con el Editor. Más información: XrmToolBox.

Pasos siguientes
Crear relaciones 1: N (uno a varios) o N:1 (varios a uno)
Elegir y configurar columnas en vistas de aplicaciones
controladas por modelos
25/11/2019 • 5 minutes to read • Edit Online

Junto con los criterios de filtro, las columnas visibles en una vista de PowerApps son muy importantes para el
valor proporcionado por la vista. En este tema, creará o editará vistas realizando las siguientes tareas:
Abrir el editor de vistas
Agregar columnas
Quitar columnas
Cambiar el ancho de columna
Mueva una columna

IMPORTANT
La versión más reciente del diseñador de vistas está funcionando actualmente en vista previa. Algunas características como
habilitar o deshabilitar la presencia de una columna y agregar una columna de búsqueda aún no se admiten. Para realizar
estas tareas abra la vista en el diseñador clásico de vistas.
Habilite o deshabilite presencia para una columna
Agregue columnas de búsqueda

Abrir el editor de vistas


1. Inicie sesión en PowerApps.
2. Expanda Datos, seleccione Entidades, seleccione la entidad que desee y, a continuación, seleccione la
pestaña Vistas.

3. Seleccione una vista existente para abrirla o, en la barra de herramientas, seleccione Agregar vista.
Agregar columnas
Puede incluir las columnas de la entidad actual o de cualquier entidad relacionada que tenga una relación de
entidad 1:N con la entidad actual.
Por ejemplo, es posible que desee mostrar el propietario de una entidad propiedad del usuario en una columna.
Puede elegir el campo Propietario de la entidad actual para mostrar el nombre del propietario. Esto aparecerá
como un vínculo para abrir el registro Usuario de la persona que es el propietario.
Si desea que muestre el número de teléfono del propietario del registro, debe seleccionar Usuario propietario
(usuario) en el cuadro desplegable Tipo de registro y luego seleccione el campo Teléfono principal.
Agregue columnas a vistas
1. Mientras crea y edita las vistas, asegúrese que el panel Campos está abierto. Si no es así, seleccione
Agregar campos en la barra de herramientas.

2. Seleccione los campos que desee agregar al diseñador de vistas. Esto agrega el campo como una columna
en la mano derecha de la vista.
3. Seleccione la pestaña Relacionado para ver las entidades relacionadas y los campos correspondientes.
Al agregar columnas, se incrementará el ancho de la vista. Si el ancho de la vista supera el espacio disponible para
mostrarlo en la página, las barras horizontales de navegación permitirán desplazarse y ver las columnas ocultas.

TIP
Si la vista filtra los datos de un determinado campo para mostrar únicamente los registros con determinado valor, no incluya
esa columna en la vista. Por ejemplo, si solo muestra registros activos, no incluya la columna de estado en la vista. En su
lugar, asigne un nombre a la vista para indicar que todos los registros que se muestran en la vista están activos.
NOTE
Al agregar columnas a las vistas de búsqueda para entidades actualizadas, solo las primeras tres columnas se mostrarán.

Quitar columnas
1. Seleccione el encabezado de la columna que desee quitar.
2. En el menú desplegable, seleccione Quitar.
Cambiar el ancho de columna
1. Pase el puntero por el área entre las columnas de la vista.
2. Una línea aparece y el cursor se convierte en una flecha doble.
3. Arrastre la columna hasta el ancho adecuado.
Mueva una columna
Haga clic en el encabezado de columna y arrástrelo a la ubicación correcta.

TIP
También puede seleccionar el encabezado de la columna que desea mover y desde el desplegable seleccione Mover a la
derecha o Mover a la izquierda.

Pasos siguientes
Creación o edición de vistas
Crear cuadrículas (listas) editables de aplicaciones
controladas por modelos mediante el control
personalizado Cuadrícula editable
25/11/2019 • 9 minutes to read • Edit Online

En versiones anteriores de Dynamics CRM, los usuarios no podían introducir datos directamente en cuadrículas (a
veces denominadas las listas) o subcuadrículas de formularios. Tenían que seleccionar en el registro en la
cuadrícula para abrir un formulario, modificar los datos, y luego guardarlos, lo que requería varios pasos. Con las
cuadrículas editables, los usuarios pueden editar en línea con gran detalle directamente desde cuadrículas y
subcuadrículas tanto si usan una aplicación web, tableta o teléfono.

Cuando se habilitan cuadrículas editables a través del control personalizado Cuadrículas editables, los usuarios
pueden editar la mayoría de los tipos de campos, incluidos campos de búsqueda básicos y conjuntos de opciones.
Las cuadrículas editables admiten:
Edición en línea de registros en el nivel de entidad o subcuadrícula (incluye entidades personalizadas)
Vistas del sistema y vistas personales
Clientes web y móviles
Navegación con un teclado o un mouse
Agrupación y orden (puede agrupar/ordenar por cualquier columna de la vista actual)
Filtrado
Mover y cambiar el tamaño de columnas
Paginación
Guardar cambios de sesión a otra para agrupar, ordenar, filtrar, paginar y mover y cambiar de tamaño
columnas
Configuración de búsqueda
Campos calculados y campos consolidados
Reglas de negocio (campo Mostrar mensaje de error, Establecer valor de campo, Establecer Requerido por
la empresa, Establece valor predeterminado, Bloquear o desbloquear)
Eventos JavaScript
Habilitar o deshabilitar celdas en función del rol de seguridad
Los usuarios pueden seguir usando búsqueda y gráficos, y pueden acceder a la barra de acción como
cuadrículas de solo lectura

Hacer editables las cuadrículas principales


1. Abra el explorador de soluciones.
2. En la lista Entidades, abra la entidad adecuada, seleccione la pestaña Controles, y después seleccione
Agregar control.

3. En el cuadro de diálogo Agregar control, seleccione Cuadrícula editable, y después seleccione Agregar.
4. En la fila Cuadrícula editable que se agrega, seleccione los factores de forma que desea aplicar a la
cuadrícula. Esto convierte al control de cuadrícula editable en el control predeterminado para el factor de
forma seleccionado.

NOTE
En tiempo de ejecución, los usuarios cambiar entre cuadrículas editables y cuadrículas de solo lectura.

5. Para agregar una búsqueda, en el grupo de opciones Cuadrícula editable, seleccione Agregar búsqueda
y en el cuadro de diálogo Configurar propiedad “Agregar búsqueda”:
a. En la lista Vistas disponibles, seleccione la vista a la que agregar la búsqueda (por ejemplo,
seleccione Mis cuentas activas).
b. En la lista Columnas disponibles, seleccione la columna de búsqueda para agregar (por ejemplo,
seleccione Contacto principal).
c. En la lista Vista predeterminada, seleccione el origen de datos del campo de búsqueda.
d. Si desea limitar los registros mostrados, seleccione la casilla Mostrar solo los registros donde,
continuación, seleccione los criterios en la lista y, por último, seleccione Aceptar.

6. Si tiene una cuadrícula anidada, seleccione el botón de lápiz para Vista de cuadrícula anidada y
seleccione la entidad y la vista de cuadrícula anidadas. Para el Id. principal de cuadrícula anidada
seleccione la relación de las entidades. Por ejemplo, el campo ParentAccountID conecta las entidades
Cuenta y Contacto.

NOTE
Las cuadrículas anidadas solo están disponibles para teléfonos y tabletas, no para la web.

7. Si no desea permitir que el usuario agrupe datos por cualquier columna de la vista (conviene ahorrar
espacio, por ejemplo), en la fila Agrupar por columna, seleccione el botón de lápiz y, en el cuadro de
diálogo Configura propiedad “Agrupar por columna”, seleccione Deshabilitado y, a continuación,
seleccione Aceptar.

TIP
Esto es sobre todo útil para subcuadrículas de formularios.

8. Si desea agregar eventos de JavaScript, seleccione la pestaña Eventos y luego seleccione las entidades, los
campos y los eventos adecuados. Más información: Documentación para desarrolladores: Usar cuadrículas
editables

9. Para guardar el trabajo, seleccione Guardar en la barra de acciones.


10. Cuando esté listo para realizar los cambios disponibles para su equipo, seleccione Publicar en la barra de
acciones.
11. Para comprobar los cambios, vaya a la vista que especificó en el paso 5, y realice algunos cambios de
edición en línea.

Hacer editable una subcuadrícula en un formulario


NOTE
Para guardar un cambio de cuadrícula editable en una subcuadrícula, el usuario debe guardarlo explícitamente antes de
salir del formulario.
Si usa formularios antiguos (versiones anteriores a Dynamics CRM 2016) y habilita una cuadrícula editable en una
subcuadrícula, la subcuadrícula editable no se representará. Los administradores del sistema pueden desactivar los
formularios antiguos en la configuración del sistema, si es necesario.

1. Abra el explorador de soluciones.


2. Abra el formulario que contiene la subcuadrícula.
3. Seleccione el control adecuado, y después seleccione Cambiar propiedades en la cinta de opciones.
4. En el cuadro de diálogo Establecer propiedades, seleccione Controles, seleccione Agregar control, y
siga los mismos pasos indicados anteriormente.

Entidades estándar admitidas

Web/tableta/teléfono Solo tableta/teléfono Web solo

Cuenta Actividad Campaña

Cita Datos adjuntos Actividad de la campaña

Recurso que se puede reservar Elemento de la regla de perfil de acceso Respuesta de campaña
al canal
Reserva de recursos que se pueden Perfil de acceso al canal
reservar Dirección de competidor
Regla de perfil de acceso al canal
Encabezado de reserva de recursos que Conexión
se pueden reservar Contrato
Rol de conexión
Categoría de recurso que se puede Plantilla de derecho
reservar Firma de correo electrónico
Parte externa
Asociación de categoría de recurso que Plantilla de correo electrónico
se puede reservar Fax
Proceso expirado
Característica del recurso que se puede Carta
reservar Producto de la factura
Lista de marketing
Grupo de recursos que se pueden Incidente de artículo de conocimientos
reservar Posición
Cliente potencial a ventas de la
Estado de reserva oportunidad Campaña exprés

Caso Proceso Cita periódica

Categoría Buzón Documentación de ventas

Característica Proceso nuevo SLA


Característica Proceso nuevo SLA

Competidor Nota

Contacto Producto de oportunidad

Correo electrónico Proceso de ventas de la oportunidad

Derecho Producto del pedido

Comentarios Organización

Factura Proceso de teléfono a caso

Artículo de conocimientos Elemento de lista de precios

Vistas del artículo de conocimiento Elemento de cola

Registro de Knowledge Base Producto de oferta

Cliente potencial Documento de SharePoint

Oportunidad Proceso de traducción

Pedido

Llamada de teléfono

Lista de precios

Producto

Cola

Oferta

Modelo de clasificación

Valor de la clasificación

Instancia de KPI de SLA

Actividad social

Perfil social

Error de sincronización

Tarea

Equipo

Usuario

Tipos de datos que no se pueden editar en una cuadrícula editable


Los siguientes tipos de datos no se pueden editar en cuadrículas editables: campos de búsqueda de clientes y
Partylist; campos compuestos (dirección); campos de estado; campos relacionados con entidades de búsqueda
(por ejemplo, la entidad de cuenta incluye una búsqueda de contacto, donde el campo de contacto se puede editar
pero el campo EmailAdress (contacto) no se puede editar).

Pasos siguientes
Usar métodos abreviados de teclado en cuadrículas editables
Ordenar registros en una vista de aplicación
controlada por modelos
25/11/2019 • 2 minutes to read • Edit Online

Al crear o editar una vista puede configurar el criterio de ordenación ascendente o descendente.
1. Inicie sesión en PowerApps.
2. Expanda Datos, seleccione Entidades y, a continuación, seleccione la entidad que desee, como Cuentas.
3. Seleccione la pestaña Vistas y, si se muestra, seleccione Quitar filtro y, a continuación, abra la vista que
desee, como Cuentas activas.
4. En el diseñador de vistas, seleccione Configurar orden.

5. En el cuadro de diálogo Configurar orden, en la lista Ordenar por, seleccione la columna que desea
ordenar y, a continuación, seleccione Orden ascendente u Orden descendente.
6. Seleccione Aceptar para cerrar el cuadro de diálogo Configurar orden.

Pasos siguientes
Creación o edición de vistas
Editar criterios de filtro y cambiar el orden en vistas
de aplicaciones controladas por modelos
25/11/2019 • 2 minutes to read • Edit Online

Junto con las columnas que se muestran en la vista, los criterios de filtro que se aplican a una vista son parte
fundamental del valor proporcionado por la vista.
1. Cuando cree o edite la vista en el diseñador de vistas, en el panel Tareas comunes derecho seleccione
Editar criterios de filtrado.
2. El cuadro de diálogo muestra una interfaz de usuario similar a Búsqueda avanzada. Puede usar las
cláusulas Y y O para especificar y agrupar criterios seleccionando la cláusula de filtro y luego seleccionando
Agrupar con Y o Agrupar con O.

3. Seleccione Aceptar para guardar y cerrar el cuadro de diálogo Editar criterios de filtrado.
Para obtener más información sobre cómo crear cláusulas de filtro, consulte Crear, editar o guardar búsquedas
avanzadas.

Pasos siguientes
Comprender las vistas
Propiedades administradas de aplicaciones
controladas por modelos para vistas
25/11/2019 • 2 minutes to read • Edit Online

Si crea una vista pública personalizada en PowerApps que desea incluir en una solución administrada que
distribuirá, tiene la opción de limitar la capacidad de personalizar la vista a cualquier usuario que esté instalando la
solución.
De forma predeterminada, la mayoría de las vistas tienen la propiedad administrada Personalizable establecida
como verdadero para que los usuarios puedan personalizarlas. A menos que tenga una razón muy buena para
cambiar esto, se recomienda permitir que los usuarios personalicen las vistas en la aplicación.

Establecer las propiedades administradas para una vista


1. Abra el explorador de soluciones, expanda Entidades, seleccione la entidad que desee y, a continuación,
seleccione Vistas.
2. Seleccione una vista pública personalizada.
3. En la barra de menús, seleccione Más acciones > Propiedades administradas.

4. Establezca las opciones de Personalizable o Puede eliminarse en Verdadero o Falso.


NOTE
Este valor no surte efecto hasta que exporte una solución que contenga la vista como solución administrada y la instale en
otro entorno.

Pasos siguientes
Comprender las vistas
Especificar una vista predeterminada de aplicación
controlada por modelos
25/11/2019 • 2 minutes to read • Edit Online

A menos que alguien haya fijado una vista diferente en su aplicación como su predeterminada personal, se verá la
vista predeterminada que especifique como el creador de la aplicación. Puede establecer cualquier vista pública
como vista predeterminada de una entidad.

Establecimiento de vistas predeterminadas para una entidad


1. Abra el explorador de soluciones, expanda Entidades, seleccione la entidad que desee y, a continuación,
seleccione Vistas.
2. Seleccione una vista pública.
3. En la barra de menús, seleccione Más acciones > Establecer como predeterminado.

4. En la barra de herramientas del explorador de soluciones, seleccione Publicar todas las


personalizaciones.

Pasos siguientes
Comprender las vistas
Eliminar o desactivar una vista de aplicación
controlada por modelos
25/11/2019 • 2 minutes to read • Edit Online

Puede que tenga una vista que no desea que la vea nadie. Según el tipo de vista, puede eliminarla o desactivarla.

Eliminar una vista


Puede eliminar cualquier vista pública personalizada. Use los pasos descritos en Acceso a definiciones de vistas
para buscar la vista que desee eliminar y utilice el comando Eliminar. Una vez que compruebe que realmente
desea eliminar la vista, se eliminará permanentemente.
Si no desea eliminar la vista de forma permanente, puede desactivarla.

Desactive o active vistas


No se pueden eliminar ni desactivar las vistas del sistema, incluidas las vistas públicas que ha creado el sistema.
Puede desactivar cualquier vista pública, incluidas las vistas públicas que ha creado el sistema.
Desactive o active una lista pública
1. Acceda a Vistas del sistema, tal y como se describe en Acceso a definiciones de vistas.
2. Seleccione una vista pública. Para ver las vistas inactivas, use la vista Vistas públicas inactivas.
3. En la barra de menús, seleccione Más acciones y seleccione Desactivar o Activar.
4. Seleccione Publicar todas las personalizaciones.

Pasos siguientes
Crear o editar vistas
Aplicar la lógica empresarial personalizada con
reglas de negocio y flujos en aplicaciones basadas en
modelos
25/11/2019 • 3 minutes to read • Edit Online

Definir y forzar procesos de negocio coherentes es una de las principales razones por las que las personas utilizan
aplicaciones basadas en modelos. Los procesos coherentes garantizan a los usuarios que usan una aplicación
basada en modelos que puedan concentrarse en su trabajo y no en recordar realizar un conjunto de pasos
manuales.

Reglas de negocio
Las reglas de negocio proporcionan una interfaz básica para implementar y mantener reglas de evolución rápida
y de uso general. El ámbito der una regla de negocio define si la regla de negocio se ejecutará:

Si selecciona este elemento… El ámbito se establece como...

Entidad Todos los formularios y el servidor

Todos los formularios Todos los formularios

Formulario específico (formulario de Cuenta, por ejemplo) Sólo ese formulario

Para obtener más información sobre cómo definir reglas de negocio que se aplique a un formulario en una
aplicación basada en modelos, consulte Crear reglas de negocio para aplicar lógica en un formulario de
aplicaciones controladas por modelos.

NOTE
Para definir una regla de negocio para una entidad para que se aplique en el servidor o a aplicaciones de lienzo y
aplicaciones basadas en modelos, consulte Crear una reglas de negocio para una entidad.

Flujos
Microsoft Flow incluye varios tipos de procesos, cada uno diseñado con un objetivo:
Flujos automatizados. Cree un flujo que realizará una o varias tareas automáticamente después de que un
evento lo desencadene. Más información: Crear un flujo
Flujos de botones. Realice tareas repetitivas simplemente tocando un botón en su dispositivo móvil. Más
información: Introducción a flujos de botones
Flujos programados. Cree un flujo que realizará una o varias tareas en un programa como una vez al día,
en una fecha específica, o después de una determinada hora. Más información: Ejecutar flujos en un
programa
Flujos de proceso de negocio. Asegúrese de que los usuarios especifiquen datos de manera coherente y
siguen los mismos pasos cada vez que trabajan con una aplicación mediante la creación de un flujo de
proceso de negocio. Más información: Información general sobre flujos de proceso de negocio
Flujos de trabajo y acciones. Los personalizadores de Dynamics 365 puede estar familiarizados con los
procesos clásicos de Common Data Service, que son flujos de trabajo y acciones. Más información: Usar
procesos de flujo de trabajo e Información general sobre acciones

Paso siguiente
Crear reglas de negocio para aplicar lógica en un formulario de aplicaciones basadas en modelos
Vea también
Aplicar la lógica de negocios con Common Data Service
Crear reglas de negocio y recomendaciones para
aplicar lógica en un formulario de aplicaciones
controladas por modelos
25/11/2019 • 12 minutes to read • Edit Online

En este tema se muestra cómo crear reglas de negocio y recomendaciones para aplicar lógica del formulario en
una aplicación basada en modelos sin escribir código de JavaScript ni crear complementos. Las reglas de
negocio proporcionan una interfaz básica para implementar y mantener reglas de rápida evolución y de uso
general. Se pueden aplicar a formularios principales y de creación rápida y funcionan en aplicaciones basadas
en modelos, aplicaciones web heredadas, Dynamics 365 para tabletas, Dynamics 365 for Outlook (modo con o
sin conexión).

NOTE
Para definir una regla de negocio para una entidad para que se aplique a todos los formularios y servidores, consulte
Crear una reglas de negocio para una entidad.

Combinando condiciones y acciones puede realizar cualquiera de las siguientes reglas de negocio:
Establecer valores de campo
Borrar valores de campos
Establecer niveles de requisitos de campo
Mostrar u ocultar campos
Habilitar o deshabilitar campos
Validar datos y mostrar mensajes de error
Cree recomendaciones de negocio basadas en inteligencia empresarial.

Crear reglas de negocio o recomendaciones de negocio


1. Abra el explorador de soluciones.
2. Abra la entidad para la que desea crear reglas de negocio (por ejemplo, abra la entidad Cuenta), y haga
doble clic en Reglas de negocio.
3. Seleccione Nuevo.
La ventana del diseñador de reglas de negocio se abre con una sola condición ya creada para usted.
Cada regla empieza con una condición. La regla de negocio toma una o varias acciones basadas en esa
condición.

TIP
Si desea modificar una regla de negocio existente, debe desactivarla para poder editarla.

4. Agregue una descripción, si lo desea, en el cuadro de descripción en la esquina superior izquierda de la


ventana.
5. Establezca el ámbito, según lo siguiente:

Si selecciona este elemento… El ámbito se establece como...

Entidad Todos los formularios y el servidor

Todos los formularios Todos los formularios

Formulario específico (formulario de Cuenta, por Sólo ese formulario


ejemplo)

6. Agregar condiciones. Para agrega más condiciones a su regla de negocio:


a. Arrastre el componente Condición de la pestaña Componentes hasta un signo más en el
diseñador.

b. Para establecer propiedades para la condición, haga clic en el componente Condición en la


ventana del diseñador y, a continuación establezca las propiedades en la pestaña Propiedades a
la derecha de la pantalla. A medida establezca propiedades, se crea una expresión en la parte
inferior de la pestaña Propiedades.
c. Para agregar una cláusula adicional (AND u OR ) a la condición, haga clic en Nuevo en la pestaña
Propiedades para crear una nueva regla y, a continuación establezca las propiedades para dicha
regla. En el campo Lógica de la regla puede especificar si agrega la nueva regla como AND u
OR.

d. Cuando termine de establecer propiedades para la condición, haga clic en Aplicar.


7. Agregar acciones. Para agregar una acción:
a. Arrastre uno de los componentes de acción desde la pestaña Componentes hasta un signo más
junto al componente Condición. Arrastre la acción a un signo más junto a una marca de
verificación si desea que la regla de negocio realice esa acción cuando la condición se cumple, o a
un signo más junto a una x si desea que la regla de negocio realice esa acción si la condición no
se cumple.

b. Para establecer propiedades para la acción, haga clic en el componente Acción en la ventana del
diseñador y, a continuación establezca las propiedades en la pestaña Propiedades.
c. Cuando termine de establecer propiedades, haga clic en Aplicar.
8. Agregar una recomendación de negocio. Para agregar una recomendación de negocio:
a. Arrastre el componente Recomendación desde una pestaña Componentes hasta un signo más
junto a un componente Condición. Arrastre el componente Recomendación a un signo más
junto a una marca de verificación si desea que la regla de negocio realice esa acción cuando la
condición se cumple, o a un signo más junto a una x si desea que la regla de negocio realice esa
acción si la condición no se cumple.
b. Para establecer propiedades para la recomendación, haga clic en el componente
Recomendación en la ventana del diseñador y, a continuación establezca las propiedades en la
pestaña Propiedades.
c. Para agregar más acciones a la recomendación, arrástrelas desde la pestaña Componentes y, a
continuación establezca propiedades para cada acción en la pestaña Propiedades.

NOTE
Al crear una recomendación, se agrega una sola acción de forma predeterminada. Para ver todas las
acciones en una recomendación, haga clic en Detalles en el componente Recomendación.

d. Cuando termine de establecer propiedades, haga clic en Aplicar.


9. Para validar la regla de negocio, haga clic en Validar en la barra de acciones.
10. Para guardar la regla de negocio, haga clic en Guardar en la barra de acciones.
11. Para activar la regla de negocio, selecciónela en la ventana Explorador de soluciones y, a continuación
haga clic en Activar. No puede activar la regla de negocio desde la ventana del diseñador.

TIP
A continuación se proporcionan algunas sugerencias a tener presentes mientras trabaja en reglas de negocio en la
ventana del diseñador:
Para realizar una instantánea de todo en la ventana Reglas de negocio, haga clic en Instantánea en la barra de
acciones. Esto es útil, por ejemplo, si desea compartir y obtener comentarios en la regla de negocio de un miembro
del equipo.
Use el minimapa para navegar rápidamente a distintas partes del proceso. Esto es útil cuando tiene un proceso
complicado que se desplaza fuera de la pantalla.
A medida que agregue condiciones, acciones, y recomendaciones de negocio a la regla de negocio, se crea el código
para la regla de negocio y aparece en la parte inferior de la ventana del diseñador. Este código es de solo lectura.

Buscar los mensajes de error que se usan en reglas de negocio


Si tiene más de un idioma aprovisionado para su organización, deseará localizar los mensajes de error que
haya configurado. Cada vez que se establece un mensaje, el sistema genera la etiqueta. Si exporta las
traducciones de su organización, puede agregar versiones localizadas de sus mensajes y luego importar las
etiquetas nuevamente en el sistema, de modo que los usuarios que utilicen otros idiomas distintos del idioma
base puedan ver los mensajes traducidos.

Problemas comunes
En esta sección se describen los problemas comunes que se pueden producir al usar reglas de negocio.
El campo Nombre completo no es compatible con aplicaciones de la interfaz unificada
Las acciones o condiciones que usan un campo Nombre completo (nombre completo) no se admiten en
aplicaciones basadas en la interfaz unificada. Como alternativa, puede usar acciones o condiciones con los
campos Nombre de pila (firstname) y Apellido (lastname).
¿No se está desencadenando su regla de negocio para un formulario?
Una regla de negocio puede no ejecutarse debido a que el campo al que se hace referencia en la regla de
negocio no se incluye en el formulario.
1. Abra el explorador de soluciones. Expanda la entidad deseada y seleccione Formularios.
2. Abra el formulario que desea y en la cinta del diseñador de formularios seleccione Reglas de negocio.
3. En el diseñador de formularios, abra la regla de negocio.
4. En el diseñador de reglas de negocio seleccione cada condición y acción para comprobar todos los
campos a los que se hace referencia en cada condición y acción.

5. Compruebe que cada campo al que se hace referencia en la regla de negocio también está incluido en el
formulario. De lo contrario, agregue el campo que falta al formulario.

Preguntas más frecuentes


¿Pueden las reglas de negocio desbloquear campos de un formulario de solo lectura?
Sí, una regla de negocio puede desbloquear campos y editar acciones en un formulario de sólo lectura.
¿Cómo soluciono problemas de una regla de negocio que no funciona?

Consulte ¿No se desencadena la regla de negocio para un formulario? en este tema.

Vea también
Crear una lógica de negocios personalizada con procesos
Crear un flujo de proceso de negocio
Crear o editar un gráfico del sistema de una
aplicación controlada por modelos
25/11/2019 • 2 minutes to read • Edit Online

En este tema aprenderá a crear un gráfico del sistema. Los gráficos del sistema son gráficos propiedad de la
organización, que los pone a disposición de cualquier persona con acceso para leer los datos que ejecutan la
aplicación. Los gráficos del sistema no se pueden asignar ni compartir con usuarios específicos de la aplicación.
1. Inicie sesión en PowerApps.

IMPORTANT
“Si el modo de diseño Controlado por modelos no está disponible, puede que tenga que Crear un entorno.

2. Expanda Datos, seleccione Entidades, seleccione la entidad que desee y, a continuación, seleccione la
pestaña Gráficos.
3. En la barra de herramientas, seleccione Agregar gráfico.
4. Especifique el tipo de gráfico y cómo se mostrarán los datos en el gráfico.
Introduzca el nombre del gráfico, como Número de empleados por cuenta.
En las listas desplegables de Seleccionar campo:
En la lista desplegable del eje Serie de Seleccionar campo, seleccione un campo como
Número de empleados.
En la lista desplegable del eje Categoría de Seleccionar campo, seleccione un campo como
Nombre de cuenta.
Agregue una descripción para identificar la finalidad del gráfico, como Este gráfico de columnas
muestra el número de empleados por nombre de cuenta.

5. Seleccione Guardar y cerrar.


Problemas conocidos
En el diseñador de gráficos, no se admite agregar una orden en algunos campos calculados y produce un error. Los
campos calculados que producen esto están usando otros campos calculados, un campo de entidad relacionado, o
un campo local en la entidad.

Pasos siguientes
Crear o editar paneles
Crear o editar paneles de aplicaciones controladas
por modelos
25/11/2019 • 4 minutes to read • Edit Online

Existen dos tipos de paneles: paneles de usuario y paneles del sistema. Un usuario de la aplicación puede crear un
panel visible solo para él en las áreas de la aplicación para las que tenga privilegio. Un administrador o
personalizador crea o personaliza paneles del sistema que, cuando se publican, están visibles para todos los
usuarios de la aplicación. Un usuario puede optar por establecer su panel de usuario como predeterminado y
reemplazar el panel del sistema. Este tema se centra en los paneles de sistema.

Crea un panel
1. Inicie sesión en PowerApps.

IMPORTANT
“Si el modo de diseño Controlado por modelos no está disponible, puede que tenga que Crear un entorno.

2. Expanda Datos, seleccione Entidades, seleccione la entidad en la que desee que se base el panel, como la
entidad Cuenta y, a continuación, seleccione la pestaña Paneles.
3. En la barra de herramientas seleccione Agregar un panel y, a continuación, elija un diseño de 2, 3 o 4
columnas.
4. En el cuadro de diálogo Panel: Nuevo escriba un nombre para el panel.
5. Seleccione una de las áreas del componente y seleccione el icono para un gráfico o una lista.
Puede tener hasta seis componentes en el panel.
6. Por ejemplo, si agrega un gráfico, en el cuadro de diálogo Agregar componente, seleccione valores para
Tipo de registro, Ver y Gráfico y, a continuación seleccione Agregar para agregar el gráfico al panel.
7. Cuando haya terminado de agregar componentes al panel, seleccione Guardar y luego Publicar.

Editar un panel existente


1. Inicie sesión en PowerApps.

IMPORTANT
“Si el modo de diseño Controlado por modelos no está disponible, puede que tenga que Crear un entorno.

2. Expanda Datos, seleccione Entidades, seleccione la entidad en la que desee que se base el panel, como la
entidad Cuenta y, a continuación, seleccione la pestaña Paneles.
3. Abra un panel, seleccione una de las áreas del componente y, a continuación, en la barra de herramientas,
seleccione Editar componente.
4. En el cuadro de diálogo Establecer propiedades, puede realizar cambios en un gráfico o lista, como
cambiar la entidad o la vista predeterminada, agregar un seleccionador de gráfico o hacer que el panel esté
disponible en las aplicaciones móviles. Cuando esté listo, seleccione Establecer.
Para obtener más información sobre cómo establecer propiedades de los componentes del panel, consulte
Establecer las propiedades para un gráfico o una lista incluidos en un panel.
5. Cuando haya completado sus cambios asegúrese de guardarlos y después publíquelos.
Tareas adicionales de paneles del sistema que puede realizar son:
Quitar una lista o un gráfico de un panel
Agregar una lista o un gráfico a un panel
Establecer el panel predeterminado
Usar roles de seguridad para crear un panel visible solo para determinados roles

Pasos siguientes
Establecimiento de propiedades para un gráfico o una lista incluidos en un panel
Configurar paneles de experiencia interactiva de
aplicaciones controladas por modelos
25/11/2019 • 23 minutes to read • Edit Online

Los paneles de experiencia interactiva pueden convertirse en un área de trabajo integral para los usuarios de las
aplicaciones, como representantes de servicio, para ver la información sobre la carga de trabajo y actuar. Son
totalmente configurables, están basados en roles de seguridad y proporcionan la información de carga de trabajo
a través de secuencias múltiples en tiempo real. Los usuarios de panel interactivo no necesitan navegar por la
aplicación en busca de un registro específico; pueden actuar sobre él directamente desde el panel.
Los paneles de experiencia interactiva se ofrecen en dos formatos: de varias secuencias y de secuencia única.
Además, los paneles de varias secuencias pueden ser paneles específicos de la página principal o de la entidad.
Los paneles específicos de la entidad se configuran en una parte diferente de la interfaz de usuario y se precargan
parcialmente con información de configuración específica de la entidad.
Los paneles de varias secuencias muestran datos en tiempo real sobre varias secuencias de datos. No hay un
límite en el número de secuencias que puede configurar en el panel. Los datos de una secuencia se pueden basar
únicamente en una entidad, pero cada secuencia se puede basar en otra entidad. En los paneles específicos de la
entidad, todas las secuencias se basan en la misma entidad. Los datos fluyen desde distintas vistas o colas, por
ejemplo, Mis actividades, Mis casoso Casos de la cola bancarios.
Los paneles de secuencia única muestran datos en tiempo real a lo largo de una secuencia basados en una vista o
cola de la entidad. Las ventanas se colocan en la parte derecha de los paneles y se muestran siempre. Los paneles
de secuencia única suelen ser útiles para los clientes potenciales o administradores del servicio de nivel 2, que
supervisan menos casos, pero más complejos o remitidos a una instancia superior.
Los paneles de varias secuencias y de secuencia única contienen gráficos interactivos que proporcionan un
recuento de registros relevantes, como casos por prioridad o por estado. Estos gráficos también actúan como
filtros visuales. Los filtros visuales (gráficos interactivos) se basan en varias entidades y en los paneles de
secuencia única, la entidad en la secuencia de datos define la entidad de filtro visual.
Los usuarios pueden aplicar filtrado adicional con filtros globales y filtros temporales. El filtro global trabaja en un
nivel de campo en todos los gráficos, y también en secuencias y ventanas que se basan en la entidad de filtro
(especifique la entidad de filtro al configurar los filtros visuales).

NOTE
Los paneles interactivos son compatibles con soluciones y se pueden exportar y luego importar en otro entorno como
solución. Sin embargo, las colas en las que se basan las secuencias y las ventanas no son compatibles con soluciones. Antes
de importar la solución del panel en el sistema de destino, las colas tienen que crearse manualmente en el sistema de
destino en Configuración > Administración de servicios > Colas. Después de crear las colas, importe la solución de
panel en el sistema de destino, y a continuación edite las secuencias o las ventanas que se basan en las colas para asignar las
colas recién creadas adecuadamente.

Las ilustraciones de este tema muestran paneles de varias secuencias y de secuencia única con el panel del
encabezado. Debajo del encabezado se ven filtros visuales y secuencias. En el panel de secuencia única también se
ven ventanas. Para cada tipo de panel, puede elegir entre varios diseños diferentes que también se muestran. El
encabezado del panel contiene los siguientes controles e iconos que se pueden seleccionar, de izquierda a derecha:
selector de paneles, actualizar, icono de filtro visual, icono de filtro global y filtro temporal.
Vista estándar del panel de varias secuencias
En el panel de varias secuencias, verá una fila de filtros visuales en la parte superior con las secuencias de datos
por debajo de ellos.

Vista de ventana del panel de varias secuencias


El mismo panel, solo en la vista de ventana.

Diseños de paneles de varias secuencias


Para los paneles de varias secuencias, puede elegir entre cuatro diseños diferentes.
Panel específico de la entidad de varias secuencias
El panel específico de la entidad para la entidad de caso aparece aquí.

Panel de secuencia única


El panel de secuencia única contiene la secuencia de datos a la izquierda y filtros visuales y las ventanas a la
derecha.
Diseños de paneles de secuencia única
Para los paneles de secuencia única, puede elegir entre cuatro diseños diferentes.

Configurar campos de filtro y roles de seguridad para los paneles


interactivos
Cuando configura paneles interactivos, la primera tarea es habilitar campos de filtro y roles de seguridad, para que
se puedan configurar paneles interactivos para ellos. Los paneles interactivos ahora están habilitados para todas
las entidades y entidades personalizadas de forma predeterminada.
Configurar campos de filtro
Para que un campo aparezca en el filtro global y se incluya en el orden de secuencia de datos, debe establecer dos
indicadores:
Aparece en el filtro global en la experiencia interactiva
Se puede ordenar en el panel de experiencia interactiva
En este ejemplo hay dos opciones interactivas del panel disponibles en la entidad Caso para el campo
IsEscalated.
Configurar la opción 'Aparece en el filtro global en la experiencia interactiva'
1. Abra el explorador de soluciones.
2. En Componentes, expanda Entidades y, a continuación, expanda la entidad que desea.
3. En el panel de navegación, seleccione Campos y en la cuadrícula, haga doble clic en el campo que desee
habilitar.
4. En la pestaña General, seleccione la casilla Aparece en el filtro global en la experiencia interactiva.
Seleccione Guardar y cerrar.
5. Seleccione Publicar todas las personalizaciones para que los cambios surtan efecto.
Los campos que habilita para Aparece en el filtro global en la experiencia interactiva aparecen en la ventana
de control flotante de filtro global cuando se hace clic en el icono de filtro global en el encabezado del panel. En la
ventana de control flotante, los representantes de servicio pueden seleccionar los campos que desean filtrar
globalmente, en gráficos, y también en secuencias y ventanas que se basan en la entidad de filtro.
La ventana de control flotante de filtro global se muestra aquí:
TIP
Cuando se configura un filtro visual basándose en los campos como prioridad o estado, una práctica recomendada también
es permitir que estos campos (prioridad, estado) aparezcan en el filtro global.

Configurar la opción 'Se puede ordenar en el panel de experiencia interactiva'


1. Abra el explorador de soluciones.
2. En Componentes, expanda Entidades y, a continuación, expanda la entidad que desea.
3. En el panel de navegación, seleccione Campos y en la cuadrícula, haga doble clic en el campo que desee
habilitar.
4. En la pestaña General, seleccione la casilla Se puede ordenar en el panel de experiencia interactiva.
Seleccione Guardar y cerrar.
5. Seleccione Publicar todas las personalizaciones para que los cambios surtan efecto.
Los campos que configure para ordenación aparecerán en la lista desplegable en el encabezado de la secuencia.
El siguiente ejemplo muestra el cuadro de diálogo de control flotante con la lista de campos disponibles para
ordenar, en la lista desplegable. La ordenación predeterminada siempre se establece en el campo Fecha de
modificación.

Habilitar roles de seguridad


Seleccione y habilite roles de seguridad que podrán ver los paneles interactivos.
Habilitar roles de seguridad para paneles interactivos
1. Abra el explorador de soluciones.
2. En Componentes, seleccione Paneles.
3. En la cuadrícula, seleccione el panel interactivo que desea y seleccione Habilitar roles de seguridad en la
barra de tareas.
4. En el diálogo Asignar roles de seguridad, seleccione la opción Mostrar solo a estos roles de seguridad
determinados y seleccione los roles que desea habilitar. Seleccione Aceptar.
5. Seleccione Publicar todas las personalizaciones para que los cambios surtan efecto.
Configurar paneles de experiencia interactiva
En la siguiente sección se describe cómo configurar los diferentes tipos de paneles interactivos.
Configure un panel interactivo de varias secuencias utilizando el diseño de 4 columnas
1. Inicie sesión en PowerApps.
2. Seleccione Datos > Entidades > seleccione la entidad que desee.
3. Seleccione la pestaña Paneles y, a continuación, en la barra de herramientas seleccione Agregar panel.
4. Elija el diseño, 2, 3 o 4 de ancho de las columnas.
5. Cuando se abre el formulario del panel, rellene la información de filtro en la parte superior del formulario,
como se indica aquí.

Entidad de filtro: Los filtros visuales y los atributos de filtro global se basan en esta entidad.
Vista de entidad: Los filtros visuales se basan en esta vista.
Filtrar por: El campo al que se aplica el filtro temporal.
Plazo de tiempo: El valor predeterminado del filtro temporal para el campo Filtrar por.
Una vez especificada la información de filtrado, comience a agregar componentes para los gráficos y las
secuencias de datos. Para agregar un componente, simplemente seleccione el elemento del centro del gráfico o la
secuencia y, cuando aparezca el cuadro de diálogo, seleccione la información necesaria de la lista desplegable,
como se muestra en las siguientes ilustraciones.
Agregue el gráfico de anillos Casos por prioridad.
Algunos gráficos, como los gráficos de barras o los gráficos circulares, se generan mostrando los datos
almacenados en el sistema. Los gráficos de anillos y gráficos de etiqueta cargan se cargan como imágenes
estáticas y no aparecen en la vista previa de los datos reales.

NOTE
Los gráficos configurados para los filtros visuales pueden usar los campos de la entidad Filtro y también entidades
relacionadas. Cuando se usan los gráficos basados en campos de entidad relacionados, los representantes del servicio al
cliente pueden filtrar gráficos con estos campos de entidad relacionados. Los campos que se basan en la entidad relacionada
tienen normalmente el siguiente formato en la ventana de configuración de gráficos: "nombre del campo (nombre de la
entidad)", como el campo Modificado por (delegado). Para crear gráficos de varias entidades, debe agregar campos de
una entidad relacionada a cualquiera de las vistas y luego usar estos campos mientras crea gráficos.

A continuación, hay que configurar las secuencias. Al igual que ocurre al agregar componentes en los gráficos,
seleccione el elemento dentro del panel de secuencia. Cuando aparezca el cuadro de diálogo, seleccione Vista o
Cola en función del elemento que desea que use la secuencia. Introduzca la información requerida tal y como se
muestra en la ilustración siguiente.
Configure la secuencia para los Elementos disponibles para trabajar en ellos como se muestra aquí:
NOTE
La opción Cola está disponible en el cuadro de diálogo solo para entidades habilitadas para cola. En el caso de los paneles
de entidad, si la entidad no está habilitada para cola, no verá la opción Cola en el cuadro de diálogo. Solo puede usar la
opción Vista en la secuencia de paneles para las entidades que no están habilitadas para cola.

La siguiente ilustración es un ejemplo de un panel de gráficos completamente y un panel de secuencias:

Después de completar la configuración del panel, guárdelo y publique las personalizaciones para que los cambios
surtan efecto.
Editar o eliminar secuencias individuales de un panel existente
1. Inicie sesión en PowerApps.
2. Seleccione Datos > Entidades > seleccione la entidad que desee. Seleccione la ficha Paneles.
O bien
Abra el explorador de soluciones y, a continuación, en Componentes seleccione Paneles.
3. En la cuadrícula, seleccione el nombre del panel interactivo que desea editar para abrirlo.
4. Seleccione la secuencia que desea editar para seleccionarla y luego seleccione Editar componente.
5. En función de si desea agregar una vista o una cola a la secuencia, seleccione los detalles de la vista o la
cola para la secuencia y, a continuación seleccione Establecer.
6. Seleccione Guardar.
También puede eliminar una secuencia individual de un panel. Para ello, seleccione la secuencia y, en la barra de
comandos, seleccione Eliminar.
Configurar un panel específico de la entidad
Un panel específico de la entidad es un panel de varias secuencias. La configuración de este panel es similar a
configurar un panel de varias secuencias de la página principal, pero se realiza en un lugar distinto de la interfaz
de usuario y hay otras diferencias de menor importancia.
Por ejemplo, en lugar de seleccionar una entidad, algunos campos del panel específico de la entidad se
preestablecen en la entidad para la que está creando el panel.
1. Inicie sesión en PowerApps.
2. Seleccione Datos > Entidades > seleccione la entidad que desee.
3. Seleccione la pestaña Paneles y, a continuación, en la barra de herramientas seleccione Agregar panel.
4. Elija el diseño, 2, 3 o 4 de ancho de las columnas.
5. Cuando se abre el formulario del panel, la Entidad de filtro se preestablece en la entidad para la que está
creando el panel. La lista desplegable Vista de entidad contiene las vistas disponibles para la entidad.
Seleccione la vista y rellene el resto de la información necesaria en la página.
El resto de instalación es muy similar a la instalación del panel de varias secuencias de página principal que se
describe en la sección anterior.
Configurar un panel de secuencia única
La configuración de un panel de secuencia única es similar a la del panel de varias secuencias. Todos los pasos de
navegación de la interfaz de usuario son los mismos que para el panel de varias secuencias. Puede elegir un
diseño que incluya ventanas o el diseño que no las incluye. Si se incluyen ventanas, siempre se muestran en el
panel. Para configurar una ventana, seleccione el icono del centro de la ventana. Cuando se abre la ventana
Agregar ventana, complete los datos necesarios. La ilustración siguiente es un ejemplo de configuración de
ventanas.

Configurar los colores del panel


Para todos los campos del tipo Conjunto de opciones y Dos opciones, como Tipo de caso, Se ha remitido a
una instancia superior o Prioridad de la entidad Caso, puede configurar un color determinado que aparecerá
en los gráficos y secuencias para valores de campos específicos. Por ejemplo, los casos prioritarios se pueden
mostrar en rojo, los casos de prioridad media en azul, y los casos de prioridad baja en verde en los gráficos
interactivos. En las secuencias, habrá una barra vertical fina de color junto a la descripción del elemento de trabajo.
NOTE
La codificación de color no está disponible para los gráficos de etiqueta y los gráficos de anillos. Estos gráficos aparecen en el
panel en tonos de blanco, gris, y negro.

1. Abra el explorador de soluciones.


2. En Componentes, expanda Entidades y, a continuación, expanda la entidad que desea. Si no se muestra la
entidad que desea, seleccione Agregar existentes para agregarla.
3. En el panel de navegación, seleccione Campos. En la cuadrícula, haga doble clic en el campo para el que
desea configurar el color.
4. En la pestaña General, en la subárea Tipo, seleccione Sí y, a continuación, seleccione Editar.
5. Cuando aparezca el diálogo Modificar valor de lista, establezca el nuevo valor en el cuadro de texto
Color. Seleccione Aceptar.
Seleccione Guardar y cerrar.
6. Seleccione Publicar para que los cambios surtan efecto.
En el siguiente ejemplo, modificamos el color para el campo Se ha remitido a una instancia superior. Use el
botón Editar para abrir el cuadro de diálogo Modificar valor de lista:

Cuando se abra el cuadro de diálogo Modificar valor de lista, elija el color como se muestra aquí:
De forma similar, si va al campo Prioridad para modificar los colores de las opciones de prioridad de casos, elija
el color en la subárea Opciones de la pestaña General, tal como se muestra a continuación:

Vea también
Crear o editar paneles
Establecer propiedades para un gráfico o una lista de
una aplicación controlada por modelos incluidos en
un panel
25/11/2019 • 5 minutes to read • Edit Online

Para editar un gráfico o componente de lista desde el diseñador de paneles, seleccione el gráfico o o la lista que
desee y seleccione Editar componente en la barra de herramientas del diseñador de paneles.

Se abrirá el cuadro de diálogo Establecer propiedades.


Puede definir las siguientes propiedades del gráfico en el cuadro de diálogo Establecer propiedades:
Nombre. Nombre único para el gráfico. El sistema sugiere un valor, pero puede cambiarlo.
Etiqueta. La etiqueta que aparece en la parte superior del gráfico.
Mostrar etiqueta en el panel. Active o desactive esta casilla para mostrar u ocultar la etiqueta del gráfico.
Entidad. Seleccione la entidad (tipo de registro) en la que se basará el gráfico. Este valor determina los
valores disponibles para las propiedades de Vista predeterminada y Gráfico predeterminado.
Vista predeterminada. Seleccione la vista usada para recuperar los datos para el gráfico.
Gráfico predeterminado. Seleccione el gráfico predeterminado que desea mostrar al abrir el panel por
primera vez. Los valores disponibles están determinados por el valor establecido para la propiedad Entidad.
Esta propiedad trabaja junto con las propiedades Mostrar selección de gráfico. Un usuario pueda cambiar
el tipo de gráfico si está activada la opción Mostrar selección de gráfico, pero el gráfico revertirá al
gráfico predeterminado la próxima vez que se abra el panel.
Solo mostrar gráfico. Active esta casilla si desea mostrar solo el gráfico. Desactive esta casilla si desea
mostrar el gráfico y sus datos asociados.
Mostrar selección de gráfico. Active esta casilla para permitir a los usuarios modificar el tipo de gráfico
(columna, barra, circular, etc.) cuando usen el panel. Si el usuario cambia el tipo de gráfico, los valores no se
guardan. El tipo de gráfico vuelve al valor de Gráfico predeterminado al cerrarse el panel.
Puede definir las siguientes propiedades de lista en el cuadro de diálogo Establecer propiedades:
Nombre. Nombre único para la lista. El sistema sugiere un valor, pero puede cambiarlo.
Etiqueta. La etiqueta que aparece en la parte superior de la lista.
Mostrar etiqueta en el panel. Active o desactive esta casilla para mostrar u ocultar la etiqueta de la lista.
Entidad. Seleccione la entidad (tipo de registro) en la que se basará la lista. Este valor determina los
valores disponibles para la propiedad de Vista predeterminada.
Vista predeterminada. Seleccione la vista que se usa para recuperar los datos de la lista. Un usuario
puede cambiar la vista, pero la lista revertirá a la vista predeterminada la próxima vez que se abra el panel.
Mostrar cuadro de búsqueda. Seleccione esta casilla si desea mostrar un cuadro de búsqueda en la parte
superior de la lista. Si el cuadro de búsqueda está incluido, usted u otros usuarios pueden buscar registros
en la lista en tiempo de ejecución.
Mostrar índice. Seleccione esta casilla si desea mostrar los filtros de la A a la Z en la parte inferior de la
lista. Cuando se muestran los filtros de la A a la Z, usted u otros usuarios pueden seleccionar una letra para
pasar a los registros que comiencen con esa letra.
Selector de vista. Seleccione uno de los siguientes valores:
Desactivado. No mostrar el selector de vistas. Usted u otros usuarios no podrán cambiar las vistas
en tiempo de ejecución.
Mostrar todas las vistas. Proporciona una lista completa de vistas asociadas con el valor
establecido en la propiedad Entidad.
Mostrar las vistas seleccionadas. Seleccione esta opción para limitar la lista de vistas disponibles
en tiempo de ejecución. Para seleccionar vistas específicas para mostrar, mantenga presionada la
tecla Ctrl y pulse o seleccione cada vista que desee incluir.

Pasos siguientes
Creación o personalización de paneles
Configurar el control de notas de una aplicación
controlada por modelos para acceder a información
sobre las publicaciones
25/11/2019 • 3 minutes to read • Edit Online

En los formularios de PowerApps de determinadas entidades del sistema que usan los formularios actualizados, el
control de notas proporciona la capacidad de tener acceso a la información de Publicaciones, Actividades y
Notas. Para las entidades personalizadas en las que ha habilitado notas y actividades, verá solo Notas y
Actividades. Para incluir Publicaciones, debe habilitarlas para la entidad personalizada.

Habilitar publicaciones para una entidad personalizada


1. Vaya Configuración > .Configuración de fuentes de actividades
2. Abra el registro de la entidad personalizada.
3. Asegúrese de que la opción Habilita los muros para este tipo de formulario de registro está
seleccionada y guarde el registro.
4. En la barra de comandos, seleccione Activar.
5. Si necesita habilitar muros, debe publicar la entidad.
De manera predeterminada, para las entidades del sistema el control notas está colocado en una sección del panel
social en el centro de una ficha de tres columnas en la parte superior del formulario. Puede aparecer en un
formulario solo una vez. Puede mover o quitar el control notas. Para volver a agregarlo, use el botón Notas del
grupo Control de la ficha Insertar.
En la siguiente tabla se describen las propiedades para el control Notas.

PESTAÑA PROPIEDAD DESCRIPCIÓN

Mostrar Etiqueta Requerido: aunque la etiqueta no


aparece de forma predeterminada, se
requiere una etiqueta.

Mostrar etiqueta en el formulario También puede elegir mostrar la


etiqueta.

Bloquear el campo en el formulario Esto evitará que las notas se quiten


accidentalmente del formulario.

Ficha predeterminada Seleccione la ficha que debe mostrarse


de forma predeterminada. Las opciones
son:

- Actividades
- Publicaciones
- Notas
PESTAÑA PROPIEDAD DESCRIPCIÓN

Formato Seleccione el número de columnas Cuando la sección que contiene el


que ocupa el control control de notas tiene más de una
columna, puede establecer que el
campo ocupe hasta el número de
columnas que tiene la sección.

Número de filas Para controlar el alto del control de


notas seleccione el número de filas que
ocupa el control.

Expandir automáticamente para En lugar de establecer el alto mediante


usar el espacio disponible un número de filas, puede permitir que
el alto del control de notas se expanda
el espacio disponible.

Pasos siguientes
Abrir el editor de formularios
Propiedades de los controles de vista rápida de
aplicaciones controladas por modelos
25/11/2019 • 3 minutes to read • Edit Online

Un control de vista rápida en un formulario de aplicación basada en modelos muestra datos de un registro
seleccionado en una búsqueda en el formulario. Los datos que se muestran en el control se definen mediante un
formulario de vista rápida. Los datos que se muestran no se pueden editar, pero cuando el campo principal se
incluye en el formulario de vista rápida, se convierte en un vínculo para abrir el registro relacionado. Más
información: Crear y editar formularios de vista rápida

Puede acceder a las Propiedades de controles de vista rápida desde el sitio de PowerApps.
1. Inicie sesión en PowerApps.
2. Expanda Datos, seleccione Entidades, seleccione la entidad que desee y, a continuación, seleccione la
pestaña Formularios.
3. En la lista de formularios, abra el formulario de tipo Principal. A continuación, en la pestaña Insertar,
seleccione Formulario de vista rápida para ver las propiedades de control de vista rápida.
PROPIEDAD DESCRIPCIÓN

Nombre Requerido: nombre único para el formulario de vista rápida


que se usa al hacerle referencia en los scripts.

Etiqueta Requerido: etiqueta para mostrar para el formulario de vista


rápida.

Mostrar etiqueta en el formulario Muestra la etiqueta en el formulario.

Campo de búsqueda Seleccione uno de los campos de búsqueda incluidos en el


formulario.

Entidad relacionada Este valor depende de la opción de Campo de búsqueda


que elija. Suele ser la entidad principal de la relación de
entidad 1:N para la búsqueda.

Si la entidad incluye una búsqueda de Cliente potencial que


pueda aceptar una cuenta o un contacto, en el campo
Formulario de vista rápida puede elegir un formulario de
vista rápida para la cuenta y el contacto cambiando este valor
y después eligiendo otro formulario de vista rápida.
PROPIEDAD DESCRIPCIÓN

Formulario de vista rápida Si la Entidad relacionada tiene formularios de vista rápida


puede seleccionarlos aquí. De lo contrario, seleccione Nuevo
para crear uno.

Seleccione Editar para cambiar el formulario de vista rápida


seleccionado.

Propiedades adicionales Puede especificar el estilo de representación predeterminado


seleccionando la casilla.

Pasos siguientes
Utilizar el formulario Principal y sus componentes
Controles adicionales para Dynamics 365 para
teléfonos y tabletas
25/11/2019 • 20 minutes to read • Edit Online

Puede usar un completo conjunto de controles adicionales para crear una experiencia más táctil en Dynamics 365
para teléfonos y tabletas. Esto incluye los controles deslizantes, modificadores, reproductor multimedia, máscaras
de entrada, calendario, y otros controles.

NOTE
Puede usar estos controles adicionales solo con las aplicaciones móviles. No se admiten en la aplicación web.

Para usar estos controles en el editor de formularios:


1. Haga doble clic en el campo o la lista a la que desea agregar el control.
2. Haga clic en la pestaña Controles.
3. Haga clic en Agregar control.
4. Seleccione el control que desee y, a continuación, haga clic en Agregar.

NOTE
Hay diferentes controles disponibles según el tipo de campo o lista. Por ejemplo, los controles de control deslizante
pueden estar disponibles solo para campos numéricos o de divisa, y el control de calendario solo está disponible para
listas.

5. Seleccione los dispositivos en los que desea que aparezca el control (teléfono, tableta, o ambos). Los
controles no están disponibles para campos de encabezado de teléfono.
6. Configure los valores para cada propiedad.
7. Haga clic en Aceptar cuando haya terminado de configurar el control.
A continuación se ofrecen descripciones de cada control que puede usar en formularios de Dynamics 365 para
teléfonos y tabletas.

Control del calendario


Use este control para configurar formularios de modo que aparezcan como vista de calendario en Dynamics 365
para teléfonos y tabletas. También puede usar este control para reemplazar paneles, listas, o cuadrículas de entidad
para teléfonos y tabletas.

PROPIEDAD DESCRIPCIÓN

Fecha de inicio Defina la fecha y hora del comienzo del elemento a visualizar
en la vista de calendario. Los valores disponibles son
cualquiera de las columnas de esta vista de tipo fecha.
PROPIEDAD DESCRIPCIÓN

Fecha de finalización Defina la fecha y hora del final del elemento a visualizar en la
vista de calendario. Los valores disponibles son cualquiera de
las columnas de esta vista de tipo fecha.

Duración Duración en minutos. Si especifica un valor para Fecha de


finalización, se omite Duración.

Descripción Este es el pie de imagen que desea ver para elementos del
calendario.

La duración mínima que aparece en el calendario es de 30 minutos. Los elementos que tengan menos una
duración de menos de 30 minutos aparecerán con una duración de 30 minutos.
El control calendario admite todos los comportamientos de fecha (Local del usuario, Solo fecha e Independiente de
la zona horaria).

Control de escala de tiempo


Proporcione una escala de tiempo de artículos de noticias y tweets de Twitter recientes y relevantes para una
cuenta.

PROPIEDAD DESCRIPCIÓN

CC_Timeline_Title Propiedad a asignar para el título de cada elemento de la


escala de tiempo.

CC_Timeline_Title_Desc Descripción para el título.

CC_Timeline_Label1 Campo que se mostrará bajo el título del elemento de la escala


de tiempo.

CC_Timeline_Label1_Desc Descripción para Etiqueta 1.

CC_Timeline_Label2 Campo que se mostrará después de la Etiqueta 1.

CC_Timeline_Label2_Desc Descripción para Etiqueta 2.

CC_Timeline_Label3 Campo que se mostrará después de la Etiqueta 2.

CC_Timeline_Label3_Desc Descripción para Etiqueta 3.

CC_Timeline_Label4 Campo que se mostrará después de la Etiqueta 3.

CC_Timeline_Label4_Desc Descripción para Etiqueta 4.

CC_Timeline_Label5 Campo que se mostrará después de la Etiqueta 4.

CC_Timeline_Label5_Desc Descripción para Etiqueta 5.

CC_Timeline_Timestamp Campo que se usará para ordenar la escala de tiempo en


orden cronológico inverso.
PROPIEDAD DESCRIPCIÓN

CC_Timeline_Timestamp_Desc Descripción para marca de tiempo.

CC_Timeline_Group Campo a asignar para agrupar la escala de tiempo.

CC_Timeline_Group_Desc Descripción para el campo Grupo.

CC_Timeline_GroupOrder El orden en el grupo al que pertenece el elemento en relación


con otros grupos (asigne valores 1, 2, 3, etc. para los grupos
que se mostrarán). El grupo se mostrará en valor ascendente
de los valores de grupo asignados.

CC_Timeline_GroupOrder_Desc Descripción para el campo Orden de grupo.

CC_Timeline_URL Campo Dirección URL para asignar para mostrar la dirección


URL de elemento de la escala de tiempo.

CC_Timeline_URL_Desc Descripción para el campo Dirección URL.

CC_Timeline_ThumbnailURL Campo para asignar para la miniatura de imagen/icono que se


mostrará para cada elemento.

CC_Timeline_ThumbnailURL_Desc Descripción del campo ThumbnailURL .

CC_Timeline_Filter Campo a asignar para filtro de la escala de tiempo.

CC_Timeline_Filter_Desc Descripción para Filtro.

CC_Timeline_Footer Recurso web para mostrar como pie de página de la escala de


tiempo.

CC_Timeline_Footer_Desc Descripción para el campo Pie de página.

Control deslizante lineal


El control deslizante lineal permite a los usuarios especificar valores numéricos arrastrando un control deslizante y
también proporciona una opción para escribir la cantidad. El control deslizante permite introducir y ver solo
números enteros. Use este control para cualquier campo numérico o de divisa.

PROPIEDAD DESCRIPCIÓN

Máx. Establezca el valor máximo que se muestra en el control


deslizante.

Mín. Establezca el valor mínimo que se muestra en el control


deslizante.

valor El valor que se muestra en el control deslizante.

Paso Establezca la cantidad que se debe sumar o restar del valor


actual al entrar datos con este control.
Conjuntos de opciones
El control de conjunto de opciones muestra un conjunto de opciones para que los usuarios elijan cuando se
escriben datos. Use este control para conjuntos de opciones con dos o tres opciones solo.

PROPIEDAD DESCRIPCIÓN

Campo Muestra el campo al que está asignado el control.

Cambio de volteo
El cambio de volteo como un interruptor de encendido/apagado, que proporciona una selección entre dos valores.

PROPIEDAD DESCRIPCIÓN

Campo Muestra el campo al que está asignado el control.

Clasificación de estrellas
Use la clasificación de estrellas para proporcionar una representación visual de una clasificación. El número
máximo de estrellas que puede establecer es cinco. Puede usar este control para números enteros solo; no puede
aceptar valores decimales.

NOTE
Asegúrese de seleccionar la opción Ocultar en la Web para este control.

PROPIEDAD DESCRIPCIÓN

Máx. Seleccione el número máximo de estrellas para el control de la


lista desplegable.

Mando radial
El mando radial proporciona una forma de que los usuarios especifiquen datos deslizando el mando, y se muestra
en la pantalla como un círculo. El control de mando radial permite introducir y ver solo números enteros. Use este
control para cualquier campo numérico o de divisa. Puede tocar para cambiar el valor, o puede usar el teclado
numérico para poner el enfoque en el número y editarlo.

NOTE
Este control no se admite en dispositivos Android 4.2 y 4.3. Afecta a la experiencia de desplazamiento en esas versiones.

PROPIEDAD DESCRIPCIÓN

Máx. Establezca el valor máximo que se debe mostrar en el medidor.

Mín. Establezca el valor mínimo que se debe mostrar en el medidor.

valor Obtenga o establezca el valor que se debe mostrar en el


medidor.
PROPIEDAD DESCRIPCIÓN

Paso Establezca la cantidad que se debe sumar o restar del valor


actual al entrar datos con este control.

Vista previa del sitio web


Use el control de vista previa de sitio web para asignar un campo de dirección URL y mostrar una vista previa del
sitio web.

IMPORTANT
Al habilitar este control, usted consiente permitir que los usuarios compartan cierta información identificable de dispositivos
con un sistema externo. Los datos importados de sistemas externos en la aplicación de PowerApps o aplicaciones de
Dynamics 365 como Dynamics 365 Sales o Dynamics 365 Customer Service están sujetas a nuestra declaración de privacidad
en Privacidad y cookies de Microsoft.
Avisos de privacidad

PROPIEDAD DESCRIPCIÓN

Campo Muestra el campo al que está asignado el control.

Gráfico de viñetas
El control de gráficos de viñetas muestra una sola medida clave con una medida comparativa e intervalos
cualitativos para señalar inmediatamente si la medida es buena, malo u otro estado. Use este control en paneles
para cualquier campo numérico o de divisa. Por ejemplo, puede asignar el valor a ingresos reales y el destino a los
ingresos estimados para visualizar ingresos reales frente a estimados.

PROPIEDAD DESCRIPCIÓN

Máx. Establezca el valor máximo que se muestra en el gráfico.

Mín. Establezca el valor mínimo que se muestra en el gráfico.

Correcto Establezca un valor que sea considera bueno para la medida


(opcional).

Incorrecto Establezca un valor que sea considera malo para la medida


(opcional).

valor Muestra el campo al que está asignado el control.

Destino Asigne esto al campo con el que desee comparar el valor. Por
ejemplo, si se asigna Valor a Ingresos reales, puede asignar
Destino a Ingresos estimados, o puede proporcionar un
valor estático.

Control de lápiz
Use el control de lápiz para capturar entrada escrita como firmas.
NOTE
El mínimo requerido Longitud máxima especificado para el campo al que se asigna este control es 15000 horas.
Asegúrese de seleccionar la opción Ocultar en la Web para este control.

PROPIEDAD DESCRIPCIÓN

PenMode Especifique PenMode!Draw, PenMode!Erase o


PenMode!Select para determinar lo que sucede cuando un
usuario arrastra un dispositivo señalador en un control de
lápiz.

Autocompletar
El control de Autocompletar filtra una lista de elementos a medida que escribe y permite seleccionar un valor de la
lista desplegable. Por ejemplo, puede usar este control para permitir que los usuarios elijan de una lista
desplegable de estados o de países y regiones. Este control se asigna a un campo de tipo Línea de texto única.

PROPIEDAD DESCRIPCIÓN

Campo Muestra el campo al que está asignado el control.

Origen Establezca el origen de datos (Opciones agrupadas, Conjunto


de opciones o Vista).

Conjunto de opciones Seleccione el conjunto de opciones para este campo.

Vista Seleccione la entidad y la vista para este campo.

Campo Seleccione el campo de la entidad principal de la vista que


desee usar como origen de datos.

Multimedia
Puede incrustar vídeos para proporcionar una experiencia más rica a los clientes para el personal comercial y sobre
el terreno. Use este control para asignar a un campo de dirección URL que contiene el vínculo de audio o vídeo que
se reproducirá en el control.

NOTE
Este control se admite en Android versiones 4.4 y posteriores.
Los vídeos de YouTube no son compatibles actualmente en teléfonos y tabletas con Windows 8 y Windows 8.1. En Windows
10, solo se admiten actualmente vídeos HTTPS, incluidos los de YouTube.

Tipos de medios compatibles:


Archivos MP4 en streaming
Vídeos de YouTube
Medios de Azure
Secuencias de audio
Aviso de privacidad

PROPIEDAD DESCRIPCIÓN

Medios Especifique la dirección URL de los medios que se reproducirán


en este control.

Entrada numérica
Use el control de entrada de número para ayudar a los usuarios a escribir datos rápidamente. Los usuarios solo
tienen que pulsar e los botones más y menos para cambiar un valor numérico en los incrementos que configure.
Use este control para cualquier campo numérico o de divisa. Los usuarios también pueden escribir un número
directamente en el campo. Este campo se admite únicamente en modo de edición.

PROPIEDAD DESCRIPCIÓN

Paso Establezca la cantidad que se debe sumar o restar del valor


actual al entrar datos con este control.

Campo Muestra el campo al que está asignado el control.

Máscara de entrada
Con el control de máscara de entrada, se establece el formato para un campo como número de teléfono o tarjeta
de crédito para evitar especificar datos no válidos. Por ejemplo, si desea que los usuarios introduzcan un número
de teléfono de Estados Unidos en el formato +1-222-555-1011, use la máscara de entrada +1-000-000-0000.

PROPIEDAD DESCRIPCIÓN

Máscara Introduzca la máscara que se debe usar para validar datos


cuando los usuarios los introduzcan. Puede usar una
combinación de los caracteres siguientes para la máscara:

0 – dígito

9 – dígito o espacio

# – dígito, signo o espacio

L – letra

I - letra o espacio

A – alfanumérico

A – alfanumérica o espacio

< - convierte los caracteres que siguen a minúscula

> - convierte los caracteres que siguen a mayúscula

| – Deshabilita la conversión de mayúsculas y minúsculas

\ – Aplica un carácter de escape a cualquier carácter,


convirtiéndolo en un literal

Todos los demás - literales


PROPIEDAD DESCRIPCIÓN

Campo Muestra el campo al que está asignado el control.

Medidor lineal
El medidor lineal permite a los usuarios especificar valores numéricos arrastrando un control deslizante en lugar de
escribir la cantidad exacta. El control deslizante permite introducir y ver solo números enteros. Use este control
para cualquier campo numérico y de divisa.

PROPIEDAD DESCRIPCIÓN

Máx. Establezca el valor máximo que se debe mostrar en el medidor.

Mín. Establezca el valor mínimo que se debe mostrar en el medidor.

valor Obtenga o establezca el valor que se debe mostrar en el


medidor.

Paso Establezca la cantidad que se debe sumar o restar del valor


actual al entrar datos con este control.

Mando esférico
El mando esférico proporciona una forma de que los usuarios especifiquen datos deslizando el mando, y aparece
en la pantalla como una esfera. El control de mando esférico permite introducir y ver solo números enteros. Use
este control para cualquier campo numérico y de divisa. Puede tocar para cambiar el valor, también puede poner el
enfoque en el número y editarlo usando el teclado numérico.

NOTE
Este control no se admite en dispositivos Android 4.2 y 4.3. Afecta a la experiencia de desplazamiento en esas versiones.

PROPIEDAD DESCRIPCIÓN

Máx. Establezca el valor máximo que se debe mostrar en el medidor.

Mín. Establezca el valor mínimo que se debe mostrar en el medidor.

valor Obtenga o establezca el valor que se debe mostrar en el


medidor.

Paso Establezca la cantidad que se debe sumar o restar del valor


actual al entrar datos con este control.

Pasos siguientes
Tutorial: Usar controles personalizados para visualizaciones de datos
Información general del control de temporizador de
aplicaciones controladas por modelos
25/11/2019 • 3 minutes to read • Edit Online

Use un control de temporizador con formularios donde los registros deban cumplir un hito específico basado en
tiempo. Un control de temporizador muestra a las personas cuánto tiempo hay disponible para completar una
acción en la resolución de un registro activo o cuánto tiempo ha pasado desde que finalizó el tiempo para
completar la acción. Como mínimo, los controles de temporizador se deben configurar para mostrar el resultado
correcto o con error al completar la acción. Además, pueden configurarse para mostrar advertencias cuando las
condiciones se acercan al error.
Se puede agregar un control de temporizador a un formulario para cualquier entidad, pero se usan con más
frecuencia para la entidad de caso, especialmente cuando están vinculados a campos que realizan un seguimiento
de contratos de nivel de servicio. Puede agregar varios controles de temporizador en el cuerpo de un formulario.
No puede agregarlos al encabezado o pie de página.
Las propiedades Origen de datos de control de temporizador usan campos para la entidad.
El Campo de hora del error usa un campo fecha-hora para establecer la hora.
Los tres campos de condición usan uno de los campos Conjunto de opciones, Dos opciones, Estado, o
Razón para el estado para la entidad.
Para crear un control de temporizador, en el diseñador de formularios seleccione la pestaña Insertar y, a
continuación, en la barra de herramientas, seleccione Temporizador.

En la página de propiedades del control de temporizador, introduzca o seleccione las propiedades que desee y, a
continuación, seleccione Aceptar.

Propiedades de los controles de temporizador


En la siguiente tabla se describen las propiedades de un control de temporizador.

GRUPO NOMBRE DESCRIPCIÓN

Nombre Nombre Requerido. Un nombre único para el


control.
GRUPO NOMBRE DESCRIPCIÓN

Etiqueta Requerido. La etiqueta que se muestra


para el control de temporizador.

Origen de datos Campo de hora del error Requerido. Seleccione uno de los
campos de fecha-hora para la entidad
para representar cuándo debe realizarse
correctamente un hito.

Condición de éxito Requerido. Seleccione un campo para


la entidad para evaluar el resultado
correcto del hito, y después elija qué
opción indica el resultado correcto.

Condición de advertencia Seleccione un campo para la entidad


para evaluar si el resultado correcto del
hito está en peligro para mostrar una
advertencia, luego elija qué opción
indica que debe mostrarse una
advertencia.

Cancelar condición Seleccione un campo para la entidad


para evaluar si la consecución del hito
debe cancelarse, después elija qué
opción indica que el hito se ha
cancelado.

Pasos siguientes
Información general de la interfaz de usuario del editor de formularios
Usar controles personalizados para visualizaciones de
datos de aplicaciones controladas por modelos
25/11/2019 • 8 minutes to read • Edit Online

En este tema aprenderá a configurar un control personalizado de un campo.


Los controles personalizados le permiten transformar los componentes de la interfaz de usuario de la aplicación,
como un campo o vista que normalmente contienen texto, en visualizaciones. Los controles personalizados se
pueden configurar en campos, formularios, paneles, vistas y cuadrículas. Por ejemplo, un control deslizante se
puede configurar en un campo de número.

O bien el control de cuadrícula editable se puede configurar en una vista.

Puede establecer un tipo de control personalizado para que aparezca en el cliente de explorador web y, al mismo
tiempo, hacer que en sus aplicaciones móviles de Dynamics 365 para teléfono o tableta aparezca un control
personalizado distinto. Por ejemplo, puede usar un control personalizado de entrada de número para un campo en
los clientes de explorador web y un control personalizado deslizante para la aplicación de teléfonos. Una vez
publicada la personalización, los usuarios pueden interactuar plenamente con el control para cambiar el valor; por
ejemplo, deslizando el control, si están usando el control personalizado deslizante lineal. Los cambios se guardan
automáticamente cuando se cierra el formulario, al igual que ocurre cuando el usuario cambia un campo
tradicional en un formulario.

Usar un control personalizado para agregar visualizaciones a un campo


Siga los pasos de este procedimiento para cambiar la etiqueta predeterminada y el campo de cuadro de texto del
campo Importe del presupuesto por un control personalizado deslizante en la entidad Oportunidad. Puede
seguir los mismos pasos para sustituir un campo existente por un control personalizado o configurar un control
personalizado para un campo personalizado.
1. Inicie sesión en PowerApps.
2. Expanda Datos, seleccione Entidades, seleccione la entidad que desee y, a continuación, seleccione la
pestaña Formularios.
3. Abra un formulario como el formulario Principal para la entidad Oportunidad.
4. En el editor de formularios, haga doble clic en el campo en el que desee agregar un control personalizado,
como el campo Importe del presupuesto en el formulario principal de oportunidad. Como alternativa,
puede crear un campo personalizado.
5. En la página Propiedades de campo, seleccione la pestaña Controles y, a continuación, seleccione
Agregar control.
6. En la página Agregar control, seleccione el control que desee, como el Control deslizante lineal que se
muestra aquí, y, a continuación, seleccione en Agregar.

6. Elija el cliente en el que desee que aparezca el control.


Web. Para que el control personalizado esté disponible desde cualquier explorador web, seleccione
la opción Web situada junto al control. Tenga en cuenta que, al establecer la opción Web, el control
aparece en exploradores web de PC, Mac y dispositivos móviles.
Teléfono. Para que el control personalizado esté disponible en teléfonos en los que se ejecute
Dynamics 365 for phones, seleccione la opción Teléfono situada junto al control.
Tableta. Para que el control personalizado esté disponible en tabletas en las que se ejecute
Dynamics 365 for tablets, seleccione la opción Tableta situada junto al control.
7. Seleccione en el icono de lápiz situado junto a Mín., Máx. y Paso, defina la opción de la propiedad tal y
como se describe más abajo y, a continuación, seleccione Aceptar.
Mín. Establezca el valor mínimo aceptado. Puede enlazar el valor estático que especifique o enlazar el valor
a un campo existente. En este ejemplo, Enlazar a un valor estático es Divisa y el valor mínimo que se
puede introducir es cero.
Enlazar a un valor estático. Seleccione el tipo de datos, por ejemplo, un número entero
(Whole.None), divisa, coma flotante (FP ) o decimales. A continuación, escriba un número que
represente el valor mínimo aceptado para el campo.
Enlazar a un valor de un campo. Seleccione un campo en la lista que se usará como el valor
mínimo aceptado.
Máx. Establezca el valor máximo aceptado del campo. Al igual que ocurre con el valor mínimo, puede
enlazar el valor estático que especifique o enlazar el valor a un campo existente, como se ha descrito más
arriba. En este ejemplo, Enlazar a un valor estático es Divisa y el valor máximo que se puede introducir
es 1000 millones.
Paso. Representa la unidad que debe aumentar o disminuir al sumar o restar del valor actual. Por ejemplo,
para el importe del presupuesto, puede seleccionar incrementos/disminuciones de 100 dólares.
Ocultar control predeterminado. Al seleccionar esta opción, se oculta el control, por lo que ni el control
ni los datos se muestran en ninguno de los clientes que no admitan el control personalizado. Tenga en
cuenta que el cliente web clásico de Dynamics 365 no admite la mayoría de los controles personalizados.
De forma predeterminada, esta opción no está seleccionada y el cliente web clásico de Dynamics 365
muestra el control predeterminado, normalmente basado en texto.
NOTE
El control predeterminado se identifica con (predeterminado) después del nombre del control.

8. Seleccione Aceptar para cerrar la página Propiedades de campo.


9. Para activar la personalización, en el formulario de entidad, seleccione Guardar y, a continuación,
seleccione Publicar.
10. Seleccione Guardar y cerrar para cerrar el editor de formularios.
Ver el control personalizado en acción
Abra un registro que incluya el campo con el control personalizado, como el formulario de oportunidad del
ejemplo anterior, y observe cómo ha cambiado el campo.

El campo se muestra ahora como un control deslizante en lugar de como un campo de texto.

Usar el control de cuadrícula editable en una vista o subcuadrícula


Con las cuadrículas editables, los usuarios pueden editar en línea con gran detalle directamente desde vistas y
subcuadrículas tanto si usan una aplicación web, tableta o teléfono. Más información: Crear cuadrículas (listas)
editables mediante el control personalizado Cuadrículas editables

Pasos siguientes
Crear y editar campos
Usar plantillas de Excel y Word
25/11/2019 • 2 minutes to read • Edit Online

Puede usar plantillas de diversas formas para acelerar su trabajo y mejorar la coherencia. Con las plantillas de
Excel, es fácil crear y compartir sus análisis personalizados con otros usuarios en su organización. Puede usar
plantillas de Word para crear documentos estandarizados automáticamente rellenos con datos de aplicaciones de
Common Data Service.

Habilitar y trabajar con plantillas de Excel y Word


1. Vaya a https://admin.powerplatform.microsoft.com.
2. Seleccione Entornos, seleccione un entorno, y después seleccione Entorno abierto.
3. Si ve aplicaciones publicadas, seleccione una aplicación para abrirla. En caso contrario, continúe en el paso 5.

4. En la esquina superior derecha, seleccione el icono de rueda dentada y, después, seleccione Configuración
avanzada. Si no ve Configuración avanzada, siga con el siguiente paso.
5. Selecciione Configuración > Plantillas.

6. En la página Plantillas, seleccione Plantilla del documento para trabajar con plantillas de Excel o Word.
Para obtener información sobre el uso de plantillas, vea la siguiente documentación:
Plantillas de Word: Usar plantillas de Word para crear documentos estandarizados
Plantillas de Excel: Analizar y compartir los datos con plantillas de Excel
Crear un tema
25/11/2019 • 7 minutes to read • Edit Online

Puede crear una vista y una sensación personalizadas (un tema) para su aplicación al realizar cambios en los
colores predeterminados y los elementos visuales proporcionados en el sistema personalizado. Por ejemplo, puede
crear su marca de producto personal agregando un logotipo de compañía y proporcionando colores específicos de
la entidad. Un tema se crea mediante las herramientas de personalización de la interfaz de usuario, sin necesidad
de que un programador escriba código. Puede crear, cambiar o eliminar temas que se usen en su organización. La
personalización del tema se admite en los formularios web de Dynamics 365 for Outlook. Puede definir varios
temas, pero solo puede establecer y publicar uno como tema predeterminado.

Use temas para mejorar la interfaz de usuario y crear su marca de


producto
Los temas se usan para mejorar la interfaz de usuario de la aplicación, no para modificarla por completo. Los
colores del tema se aplican globalmente en toda la aplicación. Por ejemplo, puede mejorar los siguientes elementos
visuales en la interfaz de usuario:
Cambie logotipos de productos y colores de navegación para crear una marca de producto
Ajustar colores de énfasis, como los colores de selección o del puntero
Proporcionar colores específicos de la entidad
Logotipo
Información sobre herramientas del logotipo
Color de barra de navegación
Color de área de barra de navegación
Color de barra de comandos principal en la Interfaz unificada
Color de encabezado
Color de vínculo global
Efecto de vínculo seleccionado
Efecto de pasar el puntero sobre el vínculo
Color de énfasis heredado (fondo principal para los controles de proceso)
Color predeterminado de entidad
Color predeterminado de entidad personalizada
Tono de control
Borde de control

Conocimiento de la solución
El tema no tiene conocimiento de la solución. Los cambios realizados en el tema de una organización no están
incluidos en soluciones exportadas desde la organización. Los datos se almacenan en la entidad del tema que se
puede exportar y reimportar a otro entorno. Los temas importados se deben publicar para que surtan efecto.

Copie y edite el tema existente


La forma más sencilla y rápida de crear un tema nuevo es clonar uno existente y modificarlo. Después, debe
guardarlo, mostrar una vista previa y publicarlo.
1. Inicie sesión en PowerApps.
2. Seleccione Controlado por modelo (parte inferior izquierda).

3. Seleccione (parte superior derecha) > Personalizaciones avanzadas.


4. En Temas seleccione Todos los temas.
5. Seleccione Tema predeterminado de CRM.
La captura de pantalla siguiente muestra una parte de la configuración predeterminada del tema.
Hemos clonado el tema predeterminado y cambiado los colores. Las siguientes capturas de pantalla muestran los
nuevos colores para desplazamiento y resaltado. También puede elegir un nuevo logotipo del producto.
La captura de pantalla siguiente muestra el nuevo color de navegación.

La captura de pantalla siguiente muestra la cuadrícula de entidad de cuenta con el nuevo color del resalte.

Obtener una vista previa y publicar un tema


Para obtener una vista previa y publicar un tema, siga estos pasos:
Cree un nuevo tema desde cero o clone uno existente.
Para mostrar una vista previa del tema nuevo, elija Vista previa en la barra de comandos. Para salir del
modo de vista previa, elija Salir de vista previa en la barra de comandos, junto a Vista previa.
Publique un tema. Elija Publicar tema en la barra de comandos.
La captura de pantalla siguiente muestra los botones de la barra de comandos para vista previa y publicación.

Prácticas recomendadas
A continuación se ofrecen recomendaciones para diseñar contrastes de tema y elegir colores.
Contraste de temas
Se recomienda el siguiente método para proporcionar colores de contraste:
Elija cuidadosamente los colores de contraste. El tema predeterminado predefinido de Common Data
Service tiene los coeficientes de contraste correctos para asegurar una facilidad de uso óptima. Use
coeficientes similares para los nuevos temas.
Para el modo de contraste alto, use la configuración predeterminada de colores.
Colores de temas
Recomendamos no usar un gran número de diferentes colores. Aunque puede establecer un color diferente para
cada entidad, se recomienda uno de dos patrones:
Cree todas las entidades en colores neutrales y resalte las entidades clave.
Use el mismo color para entidades similares o entidades relacionadas, como elemento de cola y cola, o
entidades del catálogo de productos. Mantenga bajo el número total de grupos.

Consideraciones sobre temas personalizados


Deberá tener en cuenta lo siguiente al planificar el uso de temas personalizados:
La mayoría de las áreas de la interfaz de usuario (UI) actualizadas se mostrarán en los colores del tema
personalizado.
Aunque los colores de tema se aplican globalmente en toda la aplicación, algunas áreas heredadas de la
interfaz de usuario, como los botones del degradado, mantendrán los colores predeterminados.
Ciertas áreas deben usar colores oscuros o claros con los colores predeterminados de icono. El color del
icono no se puede personalizar.
Una entidad no se puede mostrar en diferentes colores en diferentes nodos del mapa del sitio.
Los colores de los nodos del mapa del sitio no se pueden personalizar.

Vea también
Vídeo: Temas Consultar y editar un tema de organización
Crear ayuda guiada para la aplicación de la Interfaz
unificada
25/11/2019 • 24 minutes to read • Edit Online

[Este tema es documentación preliminar y está sujeto a modificaciones.]


Use paneles de ayuda personalizados y tareas guiadas de dar a su aplicación de la Interfaz unificada una
experiencia de ayuda personalizada en el producto que esté adaptada a su organización. Use paneles de ayuda
personalizados para proporcionar asistencia y orientación específicas de la entidad, formulario, e idioma que
incluyan texto enriquecido, vínculos de contenido, imágenes, y vínculos de vídeos. Los paneles de ayuda
personalizados reemplazan la característica de aprendizaje guiado de la ruta de aprendizaje anterior usada en
aplicaciones del cliente web heredadas.

Paneles de ayuda personalizados y ruta de aprendizaje


La nueva implementación de ayuda guiada de paneles de ayuda personalizados se diferencia de la característica de
ayuda guiada de la ruta de aprendizaje anterior. Ambas características permiten crear la ayuda personalizada para
su aplicación. Sin embargo, los paneles de ayuda personalizados están optimizados para los escenarios de ayuda
guiada más comunes.
Los paneles de ayuda personalizados proporcionan las características clave siguientes que no están disponibles
con ruta de aprendizaje:
Texto enriquecido de forma libre, incluidas viñetas y numeración.
Marcas de formación y globos de ayuda vinculados visiblemente.
Más opciones de orígenes de vídeo, incluidos orígenes privados.
Almacenamiento de contenido de ayuda en Common Data Service como parte de la solución.
Los paneles de ayuda personalizados no proporcionan las características clave siguientes que están disponibles
con ruta de aprendizaje:
Globos de ayuda secuenciales.
Páginas de ayuda por rol.
Páginas de ayuda para factor de forma por dispositivo, como smartphones.

Requisitos previos
Para crear paneles personalizados de ayuda, necesita el siguiente:
Versión 9.1.0.10300 o posterior.
Permisos globales para crear, leer, escribir, eliminar, anexar, y anexar a en el privilegioPágina de ayuda. De
forma predeterminada, los roles de seguridad Administrador del sistema y Personalizador del sistema tienen
este privilegio.
El entorno debe tener paneles personalizados de Ayuda habilitados.

Habilitar paneles de Ayuda personalizados para el entorno


1. Abra una aplicación basada en modelo y en la barra de comandos seleccione Configuración >
Configuración avanzada.
2. Vaya a Configuración > Sistema > Administración.
3. En la página Administración, seleccione Configuración del sistema.
4. En la pestaña General , en Establecer la URL de la Ayuda personalizada, seleccione Sí para Habilitar
tareas guiadas y paneles de ayuda personalizados y después seleccione Aceptar.

IMPORTANT
Puede habilitar paneles de ayuda personalizados o ayuda personalizable pero no ambos al mismo tiempo. Confirme que
Usar la Ayuda personalizada para entidades personalizables y Anexar los parámetros a la URL están establecidos en
No.

Ayuda personalizada contextual


Cada panel de ayuda es único para estos contextos:
Aplicación
Entidad
Formulario
Language

Navegación por el panel de ayuda


De forma predeterminada, un panel de ayuda se mantiene abierto en el contenido de ayuda con el que lo abrió la
primera vez incluso cuando navega a otro formulario. Esto permite que el contenido de ayuda se mantenga intacto
mientras lleva a los usuarios a diferentes partes de la aplicación.
Para crear contenido del panel de ayuda
1. Para ver el panel de ayuda, abra una aplicación basada en modelo y, a continuación, en la barra de
comandos seleccione Ayuda.
2. En el panel de Ayuda, seleccione los puntos suspensivos verticales y, a continuación seleccione Editar.

El panel de ayuda ahora está en modo de edición y cursor se coloca en el título del panel de ayuda.
3. Desde el panel de edición puede realizar las siguientes tareas:
Escriba texto escribiendo directamente en el área del panel de ayuda.
Dé formato al texto mediante los comandos de texto enriquecido, como negrita, cursiva, tachado y cree
listas.
Seleccione la pestaña Insertar para agregar secciones, vídeo, imágenes, vínculos, marcas de formación y
ayuda de globo.
4. Seleccione Guardar para guardar los cambios.
Texto de forma libre
El texto se puede colocar en cualquier lugar dentro del panel de ayuda. Escriba texto de forma libre antes, dentro o
después de secciones. El texto admite formatos de fuente de negrita, cursiva, subrayado y tachado. También puede
usar cortar, copiar y pegar así como deshacer multinivel.
Viñetas y listas numeradas
La selección del icono de viñeta o número activa y desactiva la línea actual para convertirla en viñetas o numerarla.
Si ha seleccionado varias líneas en una lista, cada línea se convierte en viñetas o se numera. Tabulación y
aplicación de sangría a subnúmeros en una línea de la lista.
Secciones
Una sección es un cuadro de texto contraíble. Puede colocar vínculos o texto de forma libre en ella. Use una sección
para agrupar elementos similares. Una sección puede estar abierta o contraída de forma predeterminada.
Imágenes de vídeo y estáticas
Puede insertar vídeos e imágenes estáticas en el panel de ayuda. Los vídeos y las imágenes son vínculos al
contenido en Internet. Los paneles de ayuda personalizados no almacenan archivos de vídeo y de imagen en el
panel de ayuda. Cuando se abre el panel de la ayuda, los paneles personalizados de la ayuda llevan el contenido
del vínculo para mostrarlo. Puede usar un vínculo a un vídeo de Microsoft Stream si desea hacer referencia al
contenido corporativo privado.
TIP
Recuerde copiar la dirección URL del vínculo para el vídeo o la imagen que desee para poder pegarlo en el panel de ayuda.

Los paneles personalizados de ayuda admiten los orígenes de vídeo siguientes:


Microsoft Stream (uso para contenido privado)
YouTube
Facebook
Vimeo
Vínculos
Los vínculos pueden ser a páginas web y abrirse en la misma ventana (la predeterminada) o abrirse en una
ventana independiente. La capacidad de vincularlos a una página de ayuda existente aún no está habilitada.
Globos y marcas de formación
Los globos y marcas de formación se pueden usar para apuntar elementos específicos de la interfaz de usuario. Un
globo puede tener texto. Una marca de formación resalta simplemente un elemento con un puntero de formación.
Una forma de mostrar varios elementos de la interfaz de usuario secuencialmente es obtener simplemente
vínculos en una lista que el usuario puede seleccionar. Por ejemplo:
1. Vincule al primer elemento de la interfaz de usuario con instrucciones o comentarios.
2. Vincule al segundo elemento de la interfaz de usuario con instrucciones o comentarios.
3. Vincule al tercer elemento de la interfaz de usuario con instrucciones o comentarios.
Un usuario puede seleccionar un elemento en orden o volver a uno específico y resaltarlo.

Soluciones y contenido del panel de ayuda personalizado


Todo el contenido de ayuda se almacena en un componente de la página de ayuda en Common Data Service
como parte de la solución. Cuando mueva la solución desde un entorno a otro, por ejemplo, de prueba a
producción, puede definir que los registros de la ayuda se exporten para incluirlos en la solución. Esto le permite
mantener su contenido de ayuda en sincronización con características de la solución mientras se mueve a
diferentes entornos. Como parte de la solución, los paneles personalizados de ayuda admiten todas las
características de administración del ciclo de vida de la aplicación (ALM ) de la solución estándar.
Mover contenido mediante soluciones
De forma predeterminada, todas las nuevas páginas de ayuda aparecen en la solución predeterminada. Si desea
mover su contenido a otro entorno, primero agregue sus páginas de ayuda existentes a una solución no
administrada antes de exportarlas. Para agregar una página de ayuda a una solución no administrada, siga estos
pasos:
1. Vaya a una solución no administrada.
2. Seleccione Cambiar a clásico en los puntos suspensivos de la barra de comandos.
3. Seleccionar Agregar existente.
4. Seleccione Página de ayuda.
5. Seleccione las páginas de ayuda que desea agregar y, después, seleccione Aceptar.

NOTE
Actualmente, no puede agregar paneles existentes de la ayuda a una solución no administrada en el explorador de
soluciones moderno.
Automatización de la documentación de la página de ayuda
Es posible que desee realizar una copia de seguridad o almacenar su contenido en un sistema de control de código
de origen. Puede que también desee usar herramientas de automatización de la documentación, como
herramientas de traducción o comprobadores, en contenido del panel de ayuda. Los datos del panel de la ayuda
personalizado se almacenan directamente en Common Data Service y se pueden exportar e importar con este fin.
Los paneles personalizados de ayuda admiten un formato XML personalizado. Este formato se documenta a
continuación. Más información: Definición XML de ayuda personalizado
Cuando se exportada, cada página de ayuda se exporta como un archivo separado.

Preguntas más frecuentes


En esta sección se explican preguntas frecuentes sobre las páginas de ayuda personalizadas.
¿Son las páginas de ayuda personalizadas igual que la ayuda personalizable?
Los paneles personalizados de ayuda y tareas guiadas son una opción en la sección Establecer la URL de ayuda
personalizada de la configuración del sistema. Los paneles personalizados de ayuda y las tareas guiadas habilitan
un panel personalizable de Ayuda que aparece junto al formulario del usuario. Las otras opciones en esta sección
de ayuda personalizada de configuraciones comprenden las características personalizables de ayuda. Permiten
reemplazar la ayuda de aplicaciones predeterminadas y dirigen a los usuarios de la organización a otra dirección
URL para la ayuda. Alternativamente, usted puede reemplazar la ayuda para una entidad muy personalizada que
puede describir mejor el flujo de trabajo.
Para obtener más información sobre Ayuda personalizable, consulte Habilitar y usar ayuda personalizable.
¿Cómo migro mis datos desde ruta de aprendizaje hasta páginas de ayuda personalizadas?
Ruta de aprendizaje tiene dos tipos de Ayuda: paneles de ayuda y globos de ayuda secuenciales. Las ubicaciones
de globo de ayuda secuenciales están muy integradas con la interfaz de usuario del cliente web heredada y no son
transferibles a los nuevos paneles personalizados de ayuda.
Según cuánto texto tenga en la ayuda guiada puede ser más fácil copiar simplemente la información directamente
desde la interfaz de usuario de ruta de aprendizaje a la nueva interfaz de usuario del panel de ayuda personalizado.
Sin embargo, también puede exportar el contenido de ayuda de la ruta de aprendizaje. La forma más fácil de
hacerlo es exportar el contenido mediante la característica Ruta de aprendizaje > Biblioteca de contenido >
Localizar > Exportar. Seleccione los registros que desea y luego expórtelos. Esto crea un archivo XLIFF para
cada panel de ayuda y tarea guiada. A continuación, use a un editor de XLIFF disponible públicamente o un
convertidor de XLIFF a HTML para recuperar su contenido.

Definición de XML de ayuda personalizada


Esta sección describe la definición de XML de la ayuda personalizada.
PPHML

<pphml>
<h1>FAQ</h1>
<collapsible title="What is PPHML?">
<p>PPHML is a domain specific language for help content. It is used to create help content that
includes elements such as images, videos, balloons, coach marks, etc.</p>
</collapsible>
<collapsible title="What does PPHML stand for?">
<p>PPHML stands for Power Platform Help Markup Language</p>
</collapsible>
</pphml>
Definición y uso
El elemento <pphml> indica al explorador de la ayuda que esto es un documento PPHML.
El elemento <pphml> representa la raíz de un documento PPHML.
El elemento <pphml> es el contenedor para todos los demás elementos PPHML.
Título
Muestra un título en una página de ayuda.

<h1>This will be displayed at the top of the help page</h1>

Definición y uso
El elemento <h1> define el título de una página de ayuda.
<h1> Debe ser el primer elemento en <pphml> .
Imagen
Muestra una imagen en una página de ayuda.

<img src="smiley.gif" alt="Smiley face" title="Smiley face"/>

Definición y uso
El elemento <img> inserta una imagen en una página de ayuda.
Atributos
src : Especifica la dirección URL de una imagen. Se requiere este atributo.
: Especifica un título para mostrar junto con la imagen, normalmente como información sobre
title
herramientas al mantener el puntero.
alt : Especifica un texto alternativo para una imagen. Este texto se usa en los lectores de pantalla.
Vídeo
Muestra un vídeo en una página de ayuda.

<video src="https://www.youtube.com/watch?v=WSWmn7WM3i4" />

Definición y uso
El elemento <video> inserta un vídeo, como un tutorial o una película de aprendizaje, en una página de ayuda.
O r í gen es c o m pat i bl es

Microsoft Stream
YouTube
Facebook
Vimeo
Atributos
src : Especifica la dirección URL del vídeo. Se requiere este atributo.
allowFullScreen : Especifica si el usuario puede cambiar el vídeo a pantalla completa. Los valores posibles
son “true “o “false”. Este atributo no es compatible con todos los orígenes de vídeo.
autoplay: Especifica que el vídeo comenzará a reproducirse tan pronto como la página de ayuda se cargue.
Los valores posibles son “true “o “false”. Este atributo no es compatible con todos los orígenes de vídeo.
startTime : Especifica, en segundos, desde qué punto comienza a reproducirse el vídeo.
Párrafo
Muestra un párrafo en una página de ayuda.

<p>This is some text in a paragraph.</p>

Definición y uso
El elemento <p> define un párrafo.
El texto dentro de un párrafo se puede adornar de las siguientes formas:
Negrita, con el elemento <strong>
Cursiva, con el elemento <em>
Tachado, con el elemento <del>
Subrayado, con el elemento <u>
Estas decoraciones se pueden combinar. Por ejemplo, cree un fragmento de texto que sea negrita y subrayado.
Lista de viñetas
Muestra una lista de viñetas en una página de ayuda.

<ul>
<li>Coffee</li>
<li>Tea</li>
<li>Milk</li>
</ul>

Definición y uso
El elemento <ul> define una lista con viñetas.
Use el elemento <ul> junto con el elemento <li> para crear listas con viñetas.
Lista numerada
Muestra una lista numerada en una página de ayuda.

<ol>
<li>First step</li>
<li>Second step</li>
<li>Third step</li>
</ol>

Definición y uso
El elemento <ol> define una lista ordenada (numerada). Use la etiqueta <ol> junto con el elemento <li> para
crear listas numeradas.
Plegable
Muestra una sección contraíble en una página de ayuda.

<collapsible title="This is a Section">


<p>This is a paragraph inside a section</p>
<img src=smiley.gif" title="This is an image inside a section" />
</collapsible>

Definición y uso
El elemento <collapsible> define una sección de contenido que el usuario puede ver u ocultar a petición.
Atributos
collapsed : Especifica si la sección se contrae o expande inicialmente. Los valores posibles son “true“
(contraída) o “false” (expandida).
Vínculo
Muestra un vínculo en una página de ayuda.
Vincular a una página web que se abre en una nueva ventana del explorador:

<a href="https://www.microsoft.com" target="_blank">Microsoft Home Page</a>

Vincular a otra página de la ayuda:

<a href="./LearnMore">Learn More</a>

Definición y uso
La etiqueta <a> define un vínculo, que permite al usuario navegar de una página de ayuda a un sitio web, o a otra
página de ayuda.
Atributos
href : Especifica la dirección URL del sitio web o la página de ayuda a los que navegar. Se requiere este
atributo.
target : Especifica dónde abrir la dirección URL vinculada.
Si no está presente o _self , se da por hecho que el vínculo es otra página de ayuda y se abre en el
explorador de ayuda.
Si _blank , el vínculo se abre en una nueva ventana del explorador.
Si _top , el vínculo se abre en la ventana actual del explorador.
Si el valor es el nombre de un iframe , el vínculo se abre en ese iframe.
Marca de formación
Muestra una marca de formación en una página de ayuda.

<coachmark target="#my-html-button">Click to highlight the HTML element with id [my-html-button]</coachmark>

Definición y uso
Una marca de formación es un elemento interactivo que se puede usar para atraer la atención del usuario a un
punto específico en la interfaz de usuario de la aplicación que hospeda el explorador de ayuda.
Atributos
target: Selector de CSS que especifica el elemento HTML sobre el que se mostrará la marca de formación. Se
requiere este atributo.
Globo
Muestra un globo en una página de ayuda.

<balloon target="#my-html-button" title="This button submits the form" details="Please click this button to
continue and submit the form">Click to show a balloon over the HTML element with id [my-html-button]</balloon>

Definición y uso
Un globo es un elemento interactivo que se puede usar para ayudar al usuario a realizar una acción en la interfaz
de usuario de la aplicación que hospeda el explorador de ayuda.
Atributos
target : Selector de CSS que especifica el elemento HTML sobre el que se mostrará el vínculo de globo. Se
requiere este atributo.
title : Especifica el título del globo.
details : Especifica el contenido para mostrar en Globo de conexión.
Agregar características de informes a una aplicación
basada en modelos
25/11/2019 • 7 minutes to read • Edit Online

Las aplicaciones PowerApps pueden incluir informes que proporcionen información de negocio útil al usuario.
Estos informes se basan en SQL Server Reporting Services y proporcionan el mismo conjunto de características
que están disponibles para los informes típicos de SQL Server Reporting Services.

Los informes del sistema están disponibles para todos los usuarios. Los usuarios que crean o poseen informes
pueden compartirlos con equipos o colegas específicos, o pueden ponerlos a disposición de la organización para
que todos los usuarios puedan ejecutarlos. Estos informes usan consultas FetchXML que pertenecen a Common
Data Service y recuperan datos para crear el informe. Los informes que crea en una aplicación de PowerApps son
informes basados en Fetch.

NOTE
Las características del informe no funcionan con las aplicaciones de lienzo o aplicaciones basadas en modelos que se ejecutan
en dispositivos móviles, como tabletas y teléfonos.
Agregar informes a una aplicación de la interfaz unificada
Puede agregar funcionalidad de informes basados en Fetch a la aplicación de forma que los usuarios puedan
ejecutar, compartir, crear y editar informes. Para ello, agregue la entidad de informe al mapa del sitio de su
aplicación.
1. Inicie sesión en PowerApps y abra una aplicación existente para editar.

2. En el diseñador de aplicaciones, seleccione junto a Mapa del sitio.


3. En el Diseñador del mapa del sitio, seleccione Agregar y después seleccione Área.
4. En el cuadro Título, escriba un nombre para el título del área, como Informes.
5. Seleccione el área que nombró en el paso anterior, seleccione Agregar, seleccione Grupo y, a continuación
en el cuadro Título del grupo escriba un nombre para el título del grupo, como Informes.
6. Seleccione el grupo que nombró en el paso anterior, seleccione Agregar, seleccione Subárea y después
incluya las propiedades siguientes:
Tipo. Seleccione Entidad.
Entidad. En la lista de entidades, seleccione la entidad Informe.
Título. Escriba un título descriptivo, como Informes.

7. Seleccione Guardar y cerrar para cerrar al diseñador de aplicaciones.


8. En el diseñador de aplicaciones, seleccione Guardar y, después, seleccione Publicar.
Ahora la aplicación muestra un área Informes donde los usuarios pueden ver, ejecutar, asignar, compartir y editar
los informes a los que tienen permiso así como crear informes mediante el Asistente para informes.
Opciones para crear informes
Puede crear un informe nuevo de dos maneras diferentes:
Utilice el Asistente para informes. Abra una aplicación basada en modelo que se habilitado para generar
informes y ejecutar el Asistente para informes para crear un informe. El Asistente para informes puede crear
informes de tablas y gráficos, incluidos los informes detallados e informes N superiores. Más información:
Crear o editar un informe con el Asistente para informes
Usar la Extensión de creación de informes. Puede escribir nuevos o personalizar informes existentes de
Reporting Services basados en Fetch con Visual Studio, SQL Server Data Tools y la Extensión de creación de
informes. Más información: Cree un nuevo informe mediante SQL Server Data Tools

Visibilidad del informe


Los informes de entidad estándar, como por ejemplo el Informe de resumen de cuentas para la entidad de cuenta,
están disponibles para todos los usuarios de la aplicación. Los usuarios que tengan informes pueden compartirlos
con equipos o colegas específicos. Los administradores y personalizadores del sistema pueden poner los informes
disponibles con visibilidad para toda la organización, para que todos los usuarios puedan usarlos. Para obtener
información acerca de cómo compartir un informe, consulte Compartir un informe con otros usuarios y equipos.

Informes en soluciones
Los informes son compatibles con las soluciones. Al agregar un informe como componente a una solución hace
que esta sea una sola unidad de software que amplía la funcionalidad de PowerApps y la interfaz de usuario. Solo
los informes que son visibles para la organización se pueden agregar a las soluciones.
Para saber si un informe puede verse en la organización: En la lista de informes, abra una aplicación basada en
modelos, seleccione un informe y luego seleccione Editar. En la pestaña Administración, vea si Visible por está
configurado en Organización.

Puede agregar, importar o exportar las instantáneas de informes como parte de una solución. En aplicaciones
basadas en modelo, los informes, subinformes, categorías de informe, áreas de visualización de informes y tipos de
registro relacionados con el informe se consideran como componentes de un conjunto de informes. Cuando se
importa la actualización de una solución en modo sin sobrescritura, se omitirán las actualizaciones de la solución a
un informe si se ha personalizado algún componente del informe.

Temas relacionados
Trabajar con informes
Crear un informe con el Asistente para informes
Agregar un informe desde fuera de PowerApps
Edición del filtro predeterminado de un informe
Informes de solución de problemas
Consideraciones sobre informes
25/11/2019 • 9 minutes to read • Edit Online

Las aplicaciones basadas en modelo tienen varias características que permiten que los clientes busquen datos
profesionales que les ayudan a tomar decisiones e interactuar con sus clientes de forma más eficaz. Las funciones
que están disponibles incluyen vistas, gráficos, paneles e informes de SQL Server Reporting Services. También
incluyen integración de Microsoft Excel que permite a los usuarios crear fácilmente informes de autoservicio
utilizando las características de Power BI PowerView, PowerPivot y PowerQuery. A medida que el volumen de
datos contenidos en la base de datos de aplicaciones sigue creciendo, se hace cada vez más importante que pensar
en la estrategia de BI y determinar los mecanismos más eficaces para generar informes y ver conjuntos de datos
grandes.
En un entorno, la infraestructura de informes está compartida y separada de la base de datos. En esta arquitectura,
aunque los clientes compartan los recursos necesarios ejecutar el informe, cada informe se ejecuta con la instancias
individuales de la base de datos de los clientes. Además, los usuarios pueden ejecutar tantos informes como
necesiten siempre que deseen ejecutarlos para cumplir objetivos empresariales. No ponemos restricciones de
tiempo en informes.
Las capacidades de informes integradas en Common Data Service están diseñadas para permitir que los usuarios
ejecuten informes en conjuntos de datos que abarcan períodos de tiempo más cortos. Considerando esto, observe
los siguientes valores fijos:
Los informes y las consultas pueden ejecutarse durante hasta cinco minutos. Cuando se alcanza el período
máximo, el informe agota el tiempo de espera y un mensaje se devuelve al usuario. En la duración de cinco
minutos, se permite que informes y consultas abarquen conjuntos de datos grandes de más de 50.000
registros, lo que proporciona flexibilidad significativa para satisfacer la mayoría de las necesidades
operativas de los informes.
Para mejorar la respuesta de la consulta, es recomendable que los informes detallados minimicen la
visualización de un gran número de registros. Para ello, aplique el filtrado conveniente para reducir el
número de registros que se devuelven. Al crear informes agregados o resumidos, las consultas deben
impulsar la agregación a la consulta en lugar de recoger registros detallados para realizar agregación en el
informe. Esto se puede hacer mediante agregación Fetch XML.
Para los gráficos y cuadrículas que se muestran en paneles, las aplicaciones permiten que los usuarios
ejecuten consultas que tienen un conjunto de datos de menos de 50.000 filas. Si un usuario ejecuta una
consulta de panel de ventas que abarca un conjunto de datos de 50.000 o más filas, devuelve el mensaje "Se
ha superado el límite de registros máximos. Reducir el número de registros para sincronizar." La
configuración práctica del conjunto de datos ayuda a asegurar el rendimiento óptimo de la aplicación.

Consejos y soluciones para informes


Generalmente estos valores suelen ser adecuados para la mayoría de las necesidades de informes de las
organizaciones. Para asegurarse de que los usuarios no excedan estos valores y para mejorar el rendimiento de
consulta de informes en general, considere las recomendaciones siguientes.
Al crear informes o paneles personalizados, diséñelos para consultar conjuntos de datos más pequeños
durante períodos de tiempo más cortos agregando un filtro de tiempo en el informe, como un mes o
trimestre actual, para limitar los resultados.
Se recomienda que limite el número de entidades que son necesarias para devolver el resultado. Esto ayuda
a reducir el tiempo necesario para la consulta y para devolver el conjunto de resultados.
Se recomienda reducir el número de registros que se muestra en los informes detallados. El filtrado
conveniente se puede usar para reducir el número de registros devuelto por la consulta para reducir
tiempos de espera.
Para informes agregados o resumidos, deben utilizarse consultas para impulsar la agregación a la base de
datos y no recoger registros detallados y realizar agregación en el informe de SQL Server Reporting
Services.
Cuando es adecuado para su negocio, los usuarios deben ejecutar informes y paneles predeterminados
(predefinidos). Estos informes y paneles normalmente están diseñados para consultar conjuntos de datos de
usuarios, por lo que en la mayoría de los casos no excederán el límite del conjunto de datos.
Si los usuarios deben ejecutar informes que exceden esta configuración, se recomienda revisar las siguientes
opciones para obtener ayuda con necesidades de informes complejas. Ambas opciones descargan con
eficacia las cargas de trabajo de informes desde Common Data Service a otro almacén de datos mediante
una solución de integración de datos.
Los Adaptadores se usan junto con SQL Server Integration Services (SSIS ) para ampliar las funciones para
la integración con los datos de aplicaciones.
Las herramientas Extraer, transformar y cargar (ETL ) proporcionan un nuevo conjunto de herramientas para
crear análisis de los datos combinando varios orígenes de datos o extrayendo datos a la solución del
almacén de datos si SSIS no está en uso. Las herramientas ETL proporcionan soluciones completas para
conectar con Common Data Service para mover datos.

IMPORTANT
Al usar estas herramientas, es recomendable que mueva o sincronice los datos en horas sin actividad de negocio.

Si es necesario, hay muchos asociados de Microsoft que pueden ayudarle a proporcionar una solución para las
necesidades de informes específicas. como crear una copia sin conexión de los datos usados específicamente para
ejecutar informes grandes. Estos asociados conocen las herramientas de integración de datos disponibles. Más
información: Buscar un asociado de Dynamics 365

Adaptadores de terceros para SSIS


Componente CozyRoc SSIS+ para Dynamics 365/CRM
Kit de herramientas de integración de KingswaySoft SSIS para Dynamics 365
Componentes de CData SSIS para Dynamics 365
Conector Team4 SSIS para Dynamics 365

Herramientas ETL
Integración con TIBCO Dynamics 365
Vea también
Extensión de creación de informes (con compatibilidad con SQL Server Data Tools)
Introducción a Microsoft Power Query para Excel
[Fuentes de OData y Power Query de Dynamics 365 for Customer Engagement: ¿Qué es el registro?
Espacio seguro para RDL
25/11/2019 • 5 minutes to read • Edit Online

En Common Data Service, los informes se ejecutan en el modo de espacio seguro. Para hacerlo se habilita el
espacio seguro del lenguaje RDL (Report Definition Language) en SQL Server Reporting Services. El espacio
seguro para RDL permite detectar y limitar el uso de determinados tipos de recursos. Como resultado,
determinadas características de aplicaciones basadas en modelos de PowerApps pueden no estar disponibles. Para
obtener más información, vea MSDN: Habilitar y deshabilitar el espacio aislado de RDL.
Las opciones de configuración del espacio seguro para RDL en Common Data Service se describen en las
siguientes secciones en este tema.

Limita la longitud de longitud del resultado de la matriz y la longitud


del resultado de la cadena
El número máximo de elementos permitidos en un valor de devolución de matriz de una expresión RDL se
aumenta de 250 a 102400. El número máximo de elementos permitidos en un valor de devolución de cadena de
una expresión RDL también se aumenta de 250 a 102400. Esto le permite incluir imágenes y logotipos con
tamaños de hasta 75 KB, que se almacenarán en una base de datos con codificación Base64.
MaxResourceSize se establece en 2000. Esto le permite incluir imágenes externas en un informe de hasta 1500 KB
de tamaño. Más información: TechNet: Agregar una imagen externa (Generador de informes y SSRS )

Tipos permitidos e integrantes denegados


La característica de espacio seguro para RDL permite crear una lista de tipos aprobados y lista de integrantes
denegados. La lista de tipos aprobados se denomina una lista de permiso. La lista de integrantes denegados que no
se permiten en expresiones RDL se denomina lista de bloqueo.
La siguiente tabla contiene una lista de tipos permitidos y de integrantes denegados disponibles en el modo de
espacio seguro en Common Data Service.

TIPOS PERMITIDOS INTEGRANTES DENEGADOS

System.Array CreateInstance

Finalizar

GetType

MemberwiseClone

Cambiar tamaño

System.DateTime FromBinary

GetDateTimeFormats
TIPOS PERMITIDOS INTEGRANTES DENEGADOS

GreaterThan

GreaterThanOrEqual

System.Object GetType

MemberwiseClone

ReferenceEquals

System.DbNull Finalizar

MemberwiseClone

GetObjectData

GetTypeCode

System.Math BigMul

DivRem

IEEERemainder

PI

Pow

System.String

System.TimeSpan Horas

TicksPerDay

TicksPerHour

TicksPerMillisecond

TicksPerMinute

TicksPerSecond

Cero
TIPOS PERMITIDOS INTEGRANTES DENEGADOS

TryParse

TryParseExact

System.Convert ChangeType

IConvertible.ToBoolean

IConvertible.ToByte

IConvertible.ToChar

IConvertible.ToDateTime

IConvertible.ToDecimal

IConvertible.ToDouble

IConvertible.ToInt16

IConvertible.ToInt32

IConvertible.ToInt64

IConvertible.ToSByte

IConvertible.ToSingle

IConvertible.ToType

IConvertible.ToUInt16

IConvertible.ToUInt32

IConvertible.ToUInt64

System.StringComparer Crear

Finalizar

System.TimeZone Finalizar

GetType

MemberwiseClone

System.Uri Eliminar escape


TIPOS PERMITIDOS INTEGRANTES DENEGADOS

Analizar

Escape

Finalizar

System.UriBuilder Finalizar

System.Globalization.CultureInfo ClearCachedData

System.Text.RegularExpressions.Match Vacío

NextMatch

Resultado

Sincronizado

System.Text.RegularExpressions.Regex CacheSize

CompileToAssembly

GetGroupNames

GetGroupNumbers

GetHashCode

Eliminar escape

UseOptionC

UseOptionR

capnames

mayús

capsize

capslist

roptions
TIPOS PERMITIDOS INTEGRANTES DENEGADOS

patrón

fábrica

IsMatch

Coincidencias

Iserializable.GetObjectData

InitializeReferences

RightToLeft

Opciones

Microsoft.VisualBasic.Constants vbAbort

vbAbortRetryIgnore

vbApplicationModal

vbArchive

vbBinaryCompare

vbCancel

vbCritical

vbDefaultButton1

vbDefaultButton2

vbDefaultButton3

vbExclamation

vbFormFeed

vbGet

vbHidden

vbHide

vbHiragana
TIPOS PERMITIDOS INTEGRANTES DENEGADOS

vbIgnore

vbInformation

vbKatakana

vbLet

vbLinguisticCasing

vbMaximizedFocus

vbMinimizedFocus

vbMinimizedNoFocus

vbMsgBoxHelp

vbMsgBoxRight

vbMsgBoxRtlReading

vbMsgBoxSetForeground

vbNo

vbNormal

vbNormalFocus

vbNormalNoFocus

vbObjectError

vbOK

vbOKCancel

vbOKOnly

vbQuestion

vbReadOnly

vbRetry

vbRetryCancel

vbSet
TIPOS PERMITIDOS INTEGRANTES DENEGADOS

vbSystem

vbSystemModal

VbTypeName

vbVolume

Cero

Microsoft.VisualBasic.ControlChars Finalizar

GetType

MemberwiseClone

Microsoft.VisualBasic.Conversion Err

ErrorToString

Corregir

Microsoft.VisualBasic.DateInterval Finalizar

GetType

MemberwiseClone

Microsoft.VisualBasic.Financial Finalizar

GetType

MemberwiseClone

IRR

NPV

MIRR

Microsoft.VisualBasic.Interaction AppActivate

Bip
TIPOS PERMITIDOS INTEGRANTES DENEGADOS

CallByName

Comando

CreateObject

Environ

Finalizar

GetAllSettings

GetObject

GetSetting

GetType

InputBox

MemberwiseClone

MsgBox

SaveSetting

Shell

Elegir

Modificador

Microsoft.VisualBasic.Information Erl

Err

IsError

IsDBNull

Lbound

Ubound

SystemTypeName
TIPOS PERMITIDOS INTEGRANTES DENEGADOS

Microsoft.VisualBasic.Strings Finalizar

GetType

MemberwiseClone

Lset

Rset

Microsoft.Crm.Reporting.RdlHelper

Integrantes denegados comunes


La siguiente tabla contiene una lista de integrantes denegados comunes en los tipos permitidos:

DateString

Duración

Igualdad

Es igual a

Erl

Filtro

GetChar

GroupNameFromNumber

GroupNumberFromName

Int

MaxValue

MinValue

Negar

Temporizador

TimeString

ToBinary
Finalizar

GetType

MemberwiseClone
Uso de Power BI
25/11/2019 • 9 minutes to read • Edit Online

El servicio de nube de Power BI funciona con aplicaciones Common Data Service para proporcionar una solución
de análisis de autoservicio. Power BI actualiza automáticamente los datos de aplicaciones que se muestran. Con
Power BI Desktop o Microsoft Excel, Power Query para crear informes y Power BI para compartir panales y
actualizar datos de aplicaciones basadas en modelo, los usuarios tienen una manera eficaz de trabajar con los datos
de aplicaciones.

Introducción al uso de Power BI con aplicaciones basadas en modelo


Los paquetes de contenidos de aplicaciones de Dynamics 365 para Power BI permiten acceder fácilmente y
analizar los datos en aplicaciones basadas en modelo en Dynamics 365 (Dynamics 365 Sales, Dynamics 365
Customer Service, Dynamics 365 Field Service, Dynamics 365 Marketing, Dynamics 365 Project Service
Automation).
Para crear un panel de Power BI con un paquete de contenido, siga estas instrucciones.
1. Si aún no lo ha hecho, regístrese en Power BI.
2. Una vez que haya iniciado sesión en Power BI, en el área Conjuntos de datos seleccione Obtener datos,
en Servicios seleccione Obtener y, a continuación, seleccione uno de los siguientes paquetes de contenido.
Análisis de ventas para Dynamics 365
Análisis de servicio al cliente for Dynamics 365
Microsoft Dynamics 365 - Social Engagement
3. Para los paquetes de contenido de análisis de ventas y de análisis del servicio, escriba la dirección URL de la
instancia, como https://OrganizationName.crm.dynamics.com, donde OrganizationName es el nombre de
la organización de su instancia, y seleccione Siguiente.

NOTE
Si el centro de datos se encuentra fuera de Norteamérica el nombre del dominio de crm.dynamics.com puede ser
distinto, como crm2.dynamics.com, crm3.dynamics.com, crm4.dynamics.com, etc. Para buscar el nombre de dominio,
en la aplicación web aplicaciones vaya a Configuración > Personalizacones > Recursos de desarrollador. Las
direcciones URL enumeradas indicarán el nombre de dominio correcto.

Para el paquete de contenido de marketing, especifique la dirección URL como


https://OrganizationName.marketing.dynamics.com/analytics, donde OrganizationName es el nombre de
la organización de su instancia de Dynamics 365 y seleccione Siguiente.
4. En Método de autenticación, seleccione oAuth2.
5. Se importan los datos de la instancia y varias visualizaciones pasan a estar disponibles.

TIP
Si el paquete de contenido que selecciona no se abre en el explorador web, en el panel izquierdo de su espacio de trabajo de
Power BI, haga clic en el paquete de contenido en Paneles.
Contenido del paquete disponible para descarga.
Los paquetes de contenido de Dynamics 365 admiten las entidades predefinidas predeterminadas de la aplicación.
Sin embargo, puede personalizar los siguientes paquetes de contenido descargando el archivo .PBIX y usando
después Power BI Desktop para personalizar el paquete de contenido antes de cargarlo al servicio de Power BI.
Descargar el .PBIX de Dynamics CRM Online Sales Manager
Descargar el analizador de procesos .PBIX del administrador del servicio de aplicaciones Microsoft
Dynamics 365 for Customer Engagement (onlie)
La Power BI Report Template para Connected Field Service permite que los usuarios publiquen el informe
de Power BI que muestra el latido activo de los dispositivos conectados.
Descargar Power BI Report Template Connected Field Service for Dynamics 365 for Customer Engagement
Para obtener información acerca de cómo personalizar los paquetes de contenido, consulte Personalizar
agrupaciones de contenido de Power BI.

Insertar visualizaciones de Power BI en paneles personales


Para que los usuarios puedan insertar visualizaciones de Power BI en paneles personales, debe habilitarse la
configuración para toda la organización.

NOTE
De forma predeterminada, insertar visualizaciones de Power BI está deshabilitado y debe habilitarse para que los usuarios
puedan insertarlas en paneles personales.

Habilite visualizaciones Power BI en la organización


1. Inicie sesión en las aplicaciones Dynamics 365 como un usuario con el rol de seguridad de administrador
del sistema.
2. Vaya a Configuración > Administración > Configuración del sistema.
3. En la pestaña Informes en la opción Permitir la inserción de ventanas de Power BI, seleccione Sí para
habilitarla o No para deshabilitarla.
4. Seleccione Aceptar.
Para obtener más información sobre cómo agregar iconos de Power BI a paneles personales en aplicaciones,
consulte Insertar iconos de Power BI en el panel personal.
Para obtener más información sobre cómo agregar paneles de Power BI a paneles personales en aplicaciones,
consulte Agregar o editar visualizaciones de Power BI en el personal.

Use Power BI Desktop para conectarse directamente a su instancia.


Puede conectarse a su instancia con Power BI Desktop para crear informes y paneles de aplicaciones
personalizados para usarlos con el servicio de Power BI.
Requisitos
Registro del servicio de Power BI
Power BI Desktop
Instancia de Dynamics 365
Conectar
1. Iniciar Power BI Desktop.
2. En la pestaña Inicio, seleccione Obtener datosy, a continuación, seleccione Más.
3. En la lista Obtener datos, seleccione Dynamics 365 Online.
4. Escriba la dirección URL del extremo OData de Dynamics 365. Debe ser similar a esta dirección URL, donde
nombreDeOrganización es el nombre de la organización de v9.0 es la versión. Seleccione Aceptar.
https://Nombredeorganización.api.crm.dynamics.com/api/data/v9.0

IMPORTANT
Para obtener más información sobre las versiones del extremo, consulte Dirección URL de API de web y versiones.

TIP
Puede encontrar la dirección URL del extremo de OData. Vaya a Configuración > Personalizaciones > Recursos de
desarrollador y busque la dirección URL en la API web de la instancia.

5. En el cuadro de diálogo Acceso a una fuente OData, seleccione Cuenta profesional y, a continuación,
seleccione Conectar.

NOTE
Si no ha iniciado sesión en su instancia, seleccione Iniciar sesión en el cuadro de diálogo Acceso a una fuente OData
antes de hacer seleccionar Conectar.

6. Las tablas de entidad de base de datos de la organización aparecen en la ventana del navegador de Power
BI Desktop. Puede seleccionar entidades predeterminadas y personalizadas. Para obtener más información
acerca de la creación de informes con Power BI Desktop, consulte Compatibilidad con Power BI: vista de
informe en Power BI Desktop.
TIP
Puede usar pasos similares para conectarse a Dynamics 365 con Excel Power Query seleccionando De otras fuentes
en la pestaña Power Query de Excel.
Personalizar los paquetes de contenido Power BI de
aplicaciones Dynamics 365
25/11/2019 • 26 minutes to read • Edit Online

Power BI es una colección completa de servicios y herramientas que se usa para visualizar los datos profesionales.
Hay paquetes de contenido disponibles que permiten visualizar y analizar fácilmente los datos de aplicaciones
Dynamics 365 Sales, Service, y Marketing con Power BI basándose en un modelo de datos estándar. Los paquetes
de contenido se crean con un conjunto de entidades y campos que son útiles para la mayoría de los escenarios de
ventas, de servicio, o de informes de marketing.
Las instancias de aplicaciones Dynamics 365 se amplían con frecuencia con campos personalizados. Estos campos
personalizados no aparecen automáticamente en el modelo de Power BI. En este tema se describen las distintas
formas en que se pueden editar o ampliar los informes incluidos en un paquete de contenido para incluir campos
personalizados en el modelo de Power BI.

Hágalo antes de personalizar un paquete de contenido para informes


de Power BI
Para personalizar un paquete contenido, consulte esta información y realice cada tarea si es necesario.
Cumplir los requisitos
Registro del servicio de Power BI.
Power BI Desktop aplicación para editar informes Power BI.
Archivo PBIX para el paquete de contenido que desea personalizar.
Descargar el PBIX de Dynamics CRM Online Sales Manager
Descargar el PBIX del jefe de servicio de Dynamics CRM Online
Descargar el PBIX de Microsoft Dynamics 365 Process Analyzer
Los paquetes de contenido de Dynamics 365 se admiten actualmente solo en el idioma inglés de Estados
Unidos.
Preparar un paquete de contenido para personalización

IMPORTANT
Para conectar la fuente de OData a su instancia debe seguir los pasos descritos aquí antes de personalizar el paquete de
contenido.
Actualmente, el servicio Power BI no es compatible con el extremo OData de Dynamics 365 versión 9.0. Cuando intenta usar
el extremo OData de la versión 9.0 con el servicio Power BI, aparece el mensaje de error “El documento de metadatos de la
fuente no parece válido”. Para solucionar esta incompatibilidad, use el extremo OData de la versión 8.2 de Dynamics 365.
Para obtener más información acerca de las distintas versiones de extremo, consulte Componer solicitudes HTTP y
administrar errores.

1. Iniciar Power BI Desktop.


Seleccione Archivo > Abrir, abra un paquete de contenido, como Sales Manager.bpix y después seleccione
Abrir.
Varias páginas de informes en el paquete de contenido se cargan y muestran enPower BI Desktop.
2. En la cinta de opciones de Power BI Desktop, seleccione Editar consultas.
3. En el panel de navegación de la izquierda de la ventana Editar consultas, en Consultas, seleccione la
consulta CRMServiceUrl y en la cinta de opciones seleccione Editor avanzado. En la definición de origen,
reemplace base.crm.dynamics.com con su dirección URL de la instancia de aplicaciones. Por ejemplo, si el
nombre de la organización es Contoso, la dirección URL tiene esta apariencia:
Origen = "https://contoso.crm.dynamics.com/api/data/v8.0/"
4. Seleccione Hecho y después seleccione Cerrar y aplicar en el editor de consultas.
5. Cuando aparezca el cuadro de diálogo Acceso a una fuente OData, seleccione Cuenta profesional y, a
continuación, seleccione Iniciar sesión.

6. Cuando aparezca la página de inicio de sesión, escriba sus credenciales para autenticarse en su instancia.
7. En el diálogo Acceso a una fuente OData, seleccione Conectar.
Se actualizan las consultas del paquete de contenido. Esto puede llevar varios minutos.

Personalizar Dynamics 365 content pack


Cambiar el formato de fecha que se muestra en un informe
Agregar un campo personalizado a un informe para una entidad que no sea Cuenta
Agregar un campo personalizado a un informe para la entidad Cuenta
Agregar un campo de conjunto de opciones a un informe
Aumentar el número de filas consultadas
Convertir un campo de fecha y hora en un campo de fecha para informes
En aplicaciones Dynamics 365, algunas fechas se guardan en un formato de fecha, hora y zona horaria, que quizá
no sea el formato preferido para agregar datos en un informe. Puede convertir la fecha mostrada en informes para
un campo de entidad. Por ejemplo, el campo Oportunidad creada el se puede convertir en una fecha para informar
de las oportunidades creadas por día.
1. En Power BI Desktop, seleccione Editar consultas.
2. En el panel de navegación de la izquierda del editor de consultas en Consultas, seleccione la consulta que
tiene el campo de fecha que desea cambiar, como Fecha de cierre estimada en la consulta de entidad
Oportunidad.
3. Haga clic con el botón secundario en el encabezado de columna, como Fecha de cierre estimada, señale a
Cambiar tipo y seleccione otro tipo de fecha, como Fecha.

4. Seleccione Cerrar y aplicar para cerrar el editor de consultas.


5. En la página principal de Power BI, seleccione Aplicar cambios para actualizar los informes asociados.
Agregar un campo personalizado a un formulario
El siguiente procedimiento describe cómo agregar un campo personalizado que es una fecha, una cadena, o
número a un informe para todas las entidades disponible excepto la entidad de cuenta.

NOTE
Para agregar un campo a la entidad Cuenta, consulte Agregar un campo personalizado a un informe para la entidad Cuenta.
Para agregar un campo que sea un conjunto de opciones, consulte Agregar un campo de conjunto de opciones a un
informe.

1. En Power BI Desktop, seleccione Editar consultas.


2. En el panel de navegación de la izquierda del editor de consultas, en Consultas, seleccione la consulta que
tiene el campo personalizado que desea hacer disponible para informes, como la consulta de entidad
Oportunidad.
3. En el panel derecho, en PASOS APLICADOS, seleccione el botón de configuración junto a Otras
columnas quitadas.
4. La lista Elegir columnas muestra todos los campos para la entidad incluidos campos personalizados.
Seleccione un campo personalizado que desea agregar y luego seleccione Aceptar.
Se actualizará la consulta de entidad y una columna se agrega en la tabla de entidad para el campo
personalizado que seleccionó.
5. En el panel derecho, en PASOS APLICADOS, seleccione Lang – Columnas cambiadas de nombre y
después seleccione Editor avanzado para agregar la asignación para el campo a la consulta de entidad.
Por ejemplo, si el nombre del campo personalizado para la entidad de oportunidad es int_forecast y el
nombre para mostrar es Previsiones, la entrada debe aparecer como ésta.

{"int_forecast","Forecast"}

6. Después de agregar las asignaciones de campos asegúrese de que no haya errores de sintaxis en la parte
inferior del editor avanzado. Además, asegúrese de que aparezca el nombre del campo exactamente del
mismo modo que aparece en el encabezado de columna, incluido el uso de mayúsculas y minúsculas. Si no
se detecta ningún error de sintaxis o de tabla, seleccione Hecho.
7. Haga clic en Cerrar y cargar en el editor de consultas.
El campo personalizado está ahora disponible en el panel derecho en Campos para la entidad y se puede
agregar a informes nuevos o existentes.

Agregar un campo personalizado a un informe para la entidad Cuenta


Puesto que la consulta de cuenta utiliza Fetch XML para filtrar la consulta, los pasos para agregar un campo son
distintas que para otras consultas de entidad que usan OData. Para agregar un campo personalizado a las
entidades consultadas de OData, consulte Agregar un campo personalizado a un formulario.
1. Copie la consulta Fetch XML codificada para la entidad de cuenta. Para ello, siga estos pasos:
a. En Power BI Desktop, seleccione Editar consultas.
b. En el panel de navegación de la izquierda del editor de consultas, en Consultas, seleccione la
consulta de entidad Cuenta y luego Editor avanzado en la cinta de opciones.
c. Desde la primera línea, que empieza con %3Cfetch y termina con fetch%3E, copie todo el Fetch XML
codificado.
d. El Fetch XML codificado que copia debe ser similar al siguiente:
%3Cfetch%20version%3D%221.0%22%20output-format%3D%22xml-
platform%22%20mapping%3D%22logical%22%20distinct%3D%22true%22%3E%3Centity%20nam
e%3D%22account%22%3E%3Cattribute%20name%3D%22territorycode%22%20%2F%3E%3Cattri
bute%20name%3D%22customersizecode%22%20%2F%3E%3Cattribute%20name%3D%22owning
businessunit%22%20%2F%3E%3Cattribute%20name%3D%22ownerid%22%20%2F%3E%3Cattribu
te%20name%3D%22originatingleadid%22%20%2F%3E%3Cattribute%20name%3D%22revenue%2
2%20%2F%3E%3Cattribute%20name%3D%22sic%22%20%2F%3E%3Cattribute%20name%3D%22
marketcap%22%20%2F%3E%20%3Cattribute%20name%3D%22parentaccountid%22%20%2F%3E
%3Cattribute%20name%3D%22owninguser%22%20%2F%3E%3Cattribute%20name%3D%22acco
untcategorycode%22%20%2F%3E%3Cattribute%20name%3D%22marketcap_base%22%20%2F%3
E%3Cattribute%20name%3D%22customertypecode%22%20%2F%3E%3Cattribute%20name%3D%
22address1_postalcode%22%20%2F%3E%3Cattribute%20name%3D%22numberofemployees%22
%20%2F%3E%3Cattribute%20name%3D%22accountratingcode%22%20%2F%3E%3Cattribute%20
name%3D%22address1_longitude%22%20%2F%3E%3Cattribute%20name%3D%22revenue_base%
22%20%2F%3E%3Cattribute%20name%3D%22createdon%22%20%2F%3E%3Cattribute%20name
%3D%22name%22%20%2F%3E%3Cattribute%20name%3D%22address1_stateorprovince%22%20
%2F%3E%3Cattribute%20name%3D%22territoryid%22%20%2F%3E%3Cattribute%20name%3D%
22accountclassificationcode%22%20%2F%3E%3Cattribute%20name%3D%22businesstypecode%22
%20%2F%3E%3Cattribute%20name%3D%22address1_country%22%20%2F%3E%3Cattribute%20n
ame%3D%22accountid%22%20%2F%3E%3Cattribute%20name%3D%22address1_latitude%22%20
%2F%3E%3Cattribute%20name%3D%22modifiedon%22%20%2F%3E%3Cattribute%20name%3D
%22industrycode%22%20%2F%3E%3Clink-
entity%20name%3D%22opportunity%22%20from%3D%22parentaccountid%22%20to%3D%22acc
ountid%22%20alias%3D%22ab%22%3E%3Cfilter%20type%3D%22and%22%3E%3Ccondition%20a
ttribute%3D%22opportunityid%22%20operator%3D%22not-
null%22%20%2F%3E%3Ccondition%20attribute%3D%22modifiedon%22%20operator%3D%22last
-x-days%22%20value%3D%22365%22%20%2F%3E%3C%2Ffilter%3E%3C%2Flink-
entity%3E%3C%2Fentity%3E%3C%2Ffetch%3E
2. Descodifique el Fetch XML codificado. Debe ser Fetch XML codificado válido y, una vez codificado, debe ser
similar a esto:
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true"> <entity
name="account"> <attribute name="territorycode" /> <attribute name="customersizecode" /> <attribute
name="owningbusinessunit" /> <attribute name="ownerid" /> <attribute name="originatingleadid" />
<attribute name="revenue" /> <attribute name="sic" /> <attribute name="marketcap" /> <attribute
name="parentaccountid" /> <attribute name="owninguser" /> <attribute name="accountcategorycode" />
<attribute name="marketcap_base" /> <attribute name="customertypecode" /> <attribute
name="address1_postalcode" /> <attribute name="numberofemployees" /> <attribute
name="accountratingcode" /> <attribute name="address1_longitude" /> <attribute name="revenue_base"
/> <attribute name="createdon" /> <attribute name="name" /> <attribute
name="address1_stateorprovince" /> <attribute name="territoryid" /> <attribute
name="accountclassificationcode" /> <attribute name="businesstypecode" /> <attribute
name="address1_country" /> <attribute name="accountid" /> <attribute name="address1_latitude" />
<attribute name="modifiedon" /> <attribute name="industrycode" /> <link-entity name="opportunity"
from="parentaccountid" to="accountid" alias="ab"> <filter type="and"> <condition
attribute="opportunityid" operator="not-null" /> <condition attribute="modifiedon" operator="last-x-
days" value="365" /> </filter> </link-entity> </entity> </fetch>

TIP
Muchas herramientas de codificador y descodificador de dirección URL se encuentran gratis en la web.

3. En el Fetch XML, agregue la entidad personalizada como nodo de atributo entre los nodos <entity>. Por
ejemplo, para agregar un campo personalizado llamado customclassificationcode, agregue el nodo después
de otro nodo de atributo, como industrycode.

<attribute name="industrycode" />


<attribute name=" customclassificationcode "/>
<link-entity name="opportunity" from="parentaccountid" to="accountid" alias="ab">

4. Cifre la dirección URL del Fetch XML actualizado. El Fetch XML que incluye el nuevo atributo personalizado
se debe codificar y después usar para reemplazar la consulta existente de la fuente OData que se suministra
con el paquete de contenido. Para ello, copie el FetchXML actualizado al portapapeles y péguelo en un
codificador de dirección URL.
5. Pegue la dirección URL del Fetch XML codificado en la fuente OData. Para ello, pegue la dirección URL
codificada entre comillas después del texto Query=[fetchXml=, reemplazando el FetchXML codificado
existente. Después seleccione Hecho.
El captura de pantalla siguiente indica donde se encuentran las comillas izquierdas.

6. En el panel derecho, en PASOS APLICADOS, seleccione el botón de configuración junto a Otras


columnas quitadas.
7. La lista Elegir columnas muestra todos los campos para la entidad incluidos campos personalizados.
Seleccione el campo personalizado, como customclassificationcode, que agregó a la consulta Fetch XML
anterior y, a continuación seleccione Aceptar.

NOTE
El nombre del campo que seleccione en el Selector de columna y el nombre de campo que agrega a la consulta de
FetchXML deben coincidir.

Se actualizará la consulta de entidad y una columna se agrega en la tabla de entidad para el campo
personalizado que seleccionó.
8. Seleccione Cerrar y cargar en el editor de consultas.
El campo personalizado está ahora disponible en el panel derecho en Campos para la entidad y se puede
agregar a informes nuevos o existentes.

Agregar un campo de conjunto de opciones personalizado a un


informe
Los campos de conjunto de opciones le permiten elegir entre varios valores. Ejemplos de campos de conjunto de
opciones predefinidos son los campos Nivel de interés y Fase de ventas para una oportunidad. Imagine que tiene
un campo de conjunto de opciones personalizado en el formulario de oportunidad principal que tiene los valores y
las etiquetas siguientes.

Para agregar el campo de conjunto de opciones personalizado a un informe, siga estos pasos.
1. Agregue la columna de campo personalizado.
En el panel de navegación de la izquierda del editor de consultas, en Consultas, seleccione la entidad
que tiene el conjunto de opciones personalizado asociado, como la entidad Oportunidad.
En el panel derecho, en PASOS APLICADOS, seleccione el botón de configuración junto a
Otras columnas quitadas.
La lista Elegir columnas muestra todos los campos para la entidad incluidos campos personalizados.
Seleccione el campo personalizado, como new_customoptionset y a continuación seleccione
Aceptar.
Seleccione Guardar y después cuando se le solicite, seleccione Aplicar.
La columna para el campo personalizado aparece en la tabla de entidad.
2. Cree la consulta del conjunto de opciones.
a. En Power BI Desktop, seleccione Editar consultas.
b. En el panel de navegación de la izquierda del editor de consultas, en Consultas, seleccione la
consulta en el grupo Crear tablas que tiene el campo de conjunto de opciones que es más similar al
conjunto de opciones que desea agregar a un informe. Para este ejemplo, la consulta
SalesStageOptionSet tiene cuatro opciones, por lo que es una buena opción.
c. Seleccione Editor avanzado.
Se muestra la consulta del conjunto de opciones.
d. Copie la consulta completa en el Portapapeles. Puede pegarlo en un editor de texto, como Bloc de
notas, para usar como referencia más tarde.
e. En el editor de consultas, haga clic con el botón secundario en el grupo Crear tablas, seleccione
Nueva consulta, y después seleccione Consulta en blanco.
f. En el panel derecho, en Nombre, escriba un nombre, como CustomOptionSet y presione Entrar.
g. Seleccione Editor avanzado.
h. En el editor avanzado, pegue la consulta que copió antes.
i. Reemplace los valores y las opciones existentes con sus valores y opciones personalizados. En este
ejemplo, cambie esto.

let
Source = #table({"Value","Option"},{{0,"Qualify"},{1,"Develop"},{2,"Propose"},{3,"Close"}})
in
Source

Por esto.

let
Source = #table({"Value","Option"},{{0,"A"},{1,"B"},{2,"C"},{3,"D"},{4,"E"}})
in
Source

j. Asegúrese de que no hay errores de sintaxis y después seleccione Hecho para cerrar el editor
avanzado. La tabla de valores y de opciones aparece en el editor de consultas.
k. Seleccione Guardar y después cuando se le solicite, seleccione Aplicar.
3. Inserte una consulta de combinación para las tablas del conjunto de opciones de la entidad y
personalizadas.
a. En el panel izquierdo del editor de consultas, en Entidades, seleccione la entidad que incluye el
conjunto de opciones personalizadas. Para este ejemplo, se selecciona la consulta de entidad
Oportunidad.
b. En la cinta de opciones seleccione Consultas de combinación y, cuando se le solicite insertar un
paso, seleccione Insertar.
c. En el diálogo Combinar, seleccione el encabezado de columna del conjunto de opciones
personalizado, como new_optionset. En la lista desplegable, seleccione la consulta del conjunto de
opciones correspondiente que creó anteriormente. Cuando aparezca la tabla del conjunto de
opciones, seleccione el encabezado de columna Valor para seleccionarlo.
d. Deje el tipo de unión como Externa izquierda (todas desde la primera, coincidiendo desde la
segunda), y después seleccione Aceptar.

TIP
Cambie el nombre de la consulta de combinación. En PASOS APLICADOS, haga clic con el botón secundario
en la consulta de combinación que ha creado, seleccione Cambiar nombre y especifique un nuevo nombre
descriptivo, como Merge CustomOptionSet.

4. Defina la columna de modo que solo las etiquetas se muestren.


a. En el panel izquierdo del editor de consultas, en Entidades, seleccione la entidad que incluye el
conjunto de opciones personalizadas. Para este ejemplo, se selecciona la consulta de entidad
Oportunidad.
b. En el panel derecho, en PASOS APLICADOS, seleccione una de las consultas ampliadas para
revelar las columnas combinadas, como Expanded SalesStage.
c. Busque y seleccione el encabezado de columna para la nueva columna que se creó como parte del
paso de consulta de combinación anterior.
d. En la pestaña Transformación, seleccione Expandir.
e. En el diálogo de la nueva columna Expandir, borre la columna que corresponda a los valores (porque
solo las etiquetas deben aparecer en la columna). Seleccione Listo.
f. Seleccione Guardar y después cuando se le solicite, seleccione Aplicar.
5. Cambie el nombre de columna para generación de informes.
a. En el panel izquierdo del editor de consultas, en Entidades, seleccione la entidad que incluye el
conjunto de opciones personalizadas. Para este ejemplo, se selecciona la consulta de entidad
Oportunidad.
b. Seleccione Editor avanzado.
c. Agregue un elemento de línea de columna con el nombre cambiado, asegúrese de que no hay
errores de sintaxis, y seleccione Hecho. En este ejemplo, el nombre de columna del conjunto de
opciones personalizado que creó anteriormente es NewColumn, cuyo nombre se cambia a
Conjunto de opciones personalizado.

d. Seleccione Guardar y después cuando se le solicite, seleccione Aplicar.


6. Seleccione Cerrar y aplicar para cerrar el editor de consultas.
El conjunto de opciones personalizado se puede utilizar ahora para crear informes de Power BI.

Aumentar el número de filas consultadas


De forma predeterminada, todas las consultas de entidad de Power BI en los paquetes de contenido no pueden
exceder las 100.000 filas. Para aumentar el número de filas que pueden ser consultadas, siga estos pasos.

IMPORTANT
Aumentar el límite de recuento de filas puede afectar significativamente al tiempo que se tarda en actualizar un informe.
Además, el servicio Power BI tiene un límite de 30 minutos para ejecutar consultas. Tenga cuidado al aumentar el límite de
recuento de filas.

1. En Power BI Desktop, seleccione Editar consultas.


2. En el panel de navegación de la izquierda del editor de consultas, en Consultas, seleccione la consulta de
entidad cuyo límite de recuento de filas desea aumentar, como la entidad Cliente potencial.
3. En el panel derecho, en PASOS APLICADOS, seleccione Mantener primeras filas.
4. Aumente el número de filas filtradas. Por ejemplo para aumentar a 150.000, cambie Table.FirstN (#"Filtered
Rows",100001) a Table.FirstN (#"Filtered Rows",150000)
5. En el panel derecho, en PASOS APLICADOS, seleccione Comprobar recuento de filas.
6. Localice la parte >100.000 del paso.

7. Aumente el valor a un número mayor, como 150.000.


8. Seleccione Cerrar y cargar en el editor de consultas.

Publicar el informe al servicio de Power BI


Publique el informe para compartirlo en la organización y para que esté accesible desde cualquier lugar en casi
cualquier dispositivo.
1. En la cinta de opciones de la pestaña Inicio de la página principal de Power BI Desktop, seleccione
Publicar.
2. Si se le solicita iniciar sesión en el servicio de Power BI, seleccione Iniciar sesión.
3. Si hay múltiples destinos disponibles, seleccione el que desee y, a continuación seleccione Publicar.
Vea también
Usar Power BI con Dynamics 365 Customer Engagement (on-premises)
Validar y publicar una aplicación controlada por
modelos usando el diseñador de aplicaciones
25/11/2019 • 5 minutes to read • Edit Online

Validar una aplicación para comprobar dependencias de activos que se requieren para que funcione la aplicación,
pero que aún no se han agregado a la aplicación. Después de una validación correcta, publique la aplicación.
Por ejemplo, ha agregado un Panel del rendimiento del servicio al cliente a la aplicación, que usa gráficos como
Combinación de casos (por prioridad) o Tendencia de resolución de caso (por día) que no ha agregado. Cuando se
valida esta aplicación, recibirá una lista de todos los activos necesarios que faltan.
Cuando se valida la aplicación, el lienzo del diseñador de la aplicación le muestra los detalles acerca de los activos
que faltan.
1. En el diseñador de la aplicaciones, seleccione Validar.
Una barra de notificación aparece y muestra si la aplicación tiene algún error o advertencias. La barra de
notificación muestra advertencias en casos donde, por ejemplo, una entidad no tiene ningún formulario ni
vista, o la aplicación no tiene ningún componente. Un error podría producirse si un mapa del sitio no está
configurado para la aplicación. Puede publicar una aplicación sin abordar las advertencias, pero debe
solucionar los errores para poder publicarla.

El diseñador de la aplicación también muestra un símbolo de advertencia con el número de dependencias


en cada ventana de anomalía o activo donde falta un activo necesario.

2. Para agregar los activos necesarios, seleccione la pestaña Necesario en el lado derecho del lienzo. La
pestaña Necesario está visible cuando falta al menos un activo necesario en la aplicación.
La pestaña muestra una lista de componentes requeridos.
3. Seleccione los activos que desea agregar y luego seleccione Agregar dependencias. Cuando se agrega
un activo requerido, el recuento en la ventana a la que se ha agregado el activo disminuye.

NOTE
Si hay un activo necesario común entre los distintos componentes de la aplicación, por ejemplo, se requiere un
formulario para un panel y una entidad, y agrega ese activo solo una vez desde el árbol de dependencia del panel, el
recuento de dependencias disminuirá solo en la ventana del panel, pero no en la ventana de la entidad. Sin
embargo, la dependencia se resolverá para ambas.

Seleccione el botón Obtener las últimas dependencias o seleccione de nuevo Validar para obtener el último
conjunto de dependencias. Verá solo estos botones después de guardar la aplicación.

Seleccione Ocultar dependencias si no desea agregar componentes necesarios recomendados. Las


advertencias sin resolver aparecerán otra vez cuando abre la aplicación, en el diseñador de la aplicación y
selecciona Validar u Obtener las últimas dependencias .

NOTE
Si ahora oculta dependencias y desea exportar esta aplicación más adelante, volverán a aparecer todas estas
dependencias.

Publicar una aplicación usando el diseñador de aplicaciones


Publique una aplicación para que esté disponible para los usuarios.
Tras agregar componentes, validar y guardar la aplicación, en la barra de comandos, seleccione Publicar. También
puede publicar la aplicación desde la ventana de la aplicación en la página Mis aplicaciones. En la vista
Aplicaciones que se están editando, en la esquina inferior derecha de la ventana de la aplicación que desee
publicar, seleccione el botón Más opciones (...) y después seleccione Publicar.
El estado de la aplicación cambia a Publicado. Puede verlo en la esquina superior derecha del diseñador de
aplicaciones. La aplicación cambia de la vista Aplicaciones que se están editando a la vista Aplicaciones
publicadas, y la fecha publicada se muestra en la ventana de la aplicación.
NOTE
Si su aplicación tiene un error de validación, se mostrará el error en una barra de notificación. No podrá publicar la
aplicación hasta que se resuelva el error.
No puede publicar una aplicación hasta que la guarde.

Pasos siguientes
Compartir una aplicación controlada por modelos con PowerApps
Ejecutar una aplicación controlada por modelos en un dispositivo móvil
Compartir una aplicación controlada por modelos
con PowerApps
25/11/2019 • 14 minutes to read • Edit Online

Las aplicaciones de PowerApps usan la seguridad basada en roles para compartir. El concepto básico en la
seguridad basada en roles es que el rol de seguridad contiene privilegios que definen un conjunto de acciones que
se pueden realizar en la aplicación. Todos los usuarios de la aplicación deben estar asignados a uno o más roles
predefinidos o personalizados. O bien, también se pueden asignar roles a equipos. Cuando se asigna un usuario o
un equipo a uno de estos roles, se concede a la persona o miembros del equipo el conjunto de privilegios
asociados a este rol.
En este tema realizará las tareas para compartir una aplicación controlada por modelos para que otros puedan
usarla. Aprenderá a:
Crear un rol de seguridad personalizado
Asignar usuarios al rol de seguridad personalizado
Asignar el rol de seguridad a una aplicación

Requisitos previos
Para compartir una aplicación debe tener el rol de administrador del entorno de PowerApps o el rol de
administrador del sistema.

Iniciar sesión en PowerApps


Inicie sesión en PowerApps. Si aún no tiene una cuenta de PowerApps, seleccione el vínculo Introducción
gratuita.

Compartir una aplicación


En este tema se realizará un seguimiento de la compañía, Contoso, que es una empresa de cuidado de mascotas
orientada a perros y gatos. Una aplicación que contiene una entidad personalizada para realizar un seguimiento
de la empresa de cuidado de mascotas ya se ha creado y publicado. Ahora la aplicación se debe compartir para
que el personal de la empresa pueda usarla. Para compartir la aplicación, un administrador o el creador de la
aplicación asigna uno o varios roles de seguridad a los usuarios y a la aplicación.

Crear o configurar un rol de seguridad


El entorno de PowerApps incluye roles de seguridad predefinidos que reflejan tareas de usuario comunes con
niveles de acceso definidos para que coincidan con el objetivo de seguridad recomendado de proporcionar acceso
a la cantidad mínima de datos profesionales necesarios para usar la aplicación. Recuerde que la aplicación de
cuidado de mascotas de Contoso está basada en una entidad personalizada. Puesto que la entidad es
personalizada, los privilegios se deben especificar explícitamente antes de que los usuarios puedan trabajar con
ella. Para hacerlo, puede realizar lo siguiente.
Expandir un rol de seguridad predefinido existente, de modo que incluya privilegios en registros en función de
la entidad personalizada.
Crear un rol de seguridad personalizado con el fin de administrar privilegios para los usuarios de la aplicación.
Puesto que el entorno que mantendrá los registros de cuidado de mascotas también se usa para otras
aplicaciones de Contoso, se creará un rol de seguridad personalizado específico para la aplicación de cuidado de
mascotas. Además, se necesitan dos conjuntos diferentes de privilegios de acceso.
Los técnicos del cuidado de mascotas solo necesitan leer, actualizar y adjuntar otros registros, de modo que su
rol de seguridad deberá tener privilegios de lectura, escritura y anexar.
Los programadores del cuidado de mascotas necesitan todos los privilegios que tienen los técnicos, además de
la capacidad de crear, anexar a, eliminar y compartir, por lo que su rol de seguridad tendrá privilegios para
crear, leer, escribir, anexar, eliminar, asignar y compartir.
Para obtener más información sobre los privilegios de acceso y de ámbito, consulte Roles de seguridad.

Crear un rol de seguridad personalizado


1. En el sitio de PowerApps, seleccione Aplicaciones > …> Compartir vínculo.
2. En el cuadro de diálogo Compartir esta aplicación, en Crear un rol de seguridad, seleccione
Configuración de seguridad.
3. En la página Configuración, seleccione Nuevo.
4. En el diseñador de roles de seguridad, seleccione las acciones, como leer, escribir o eliminar, y el ámbito
para realizar dicha acción. El ámbito determina la profundidad o altura dentro de la jerarquía de entornos
en la que el usuario puede realizar una acción determinada. En el cuadro Nombre del rol, introduzca
Técnicos de cuidado de mascotas.
5. Seleccione la pestaña Entidades personalizadas y, a continuación, localice la entidad personalizada que
desee. Para este ejemplo, se utiliza la entidad personalizada Mascota.
6. En la fila Mascota, seleccione cada uno de los siguientes privilegios cuatro veces hasta que se seleccione el
ámbito global de la organización : Leer, Escribir, Anexar

7. Puesto que la aplicación de cuidado de mascotas también tiene una relación con la entidad Cuenta,
seleccione la pestaña Registros principales y, en la fila Cuenta seleccione Leer cuatro veces hasta que se
haya seleccionado el ámbito global de la organización .
8. Seleccione la pestaña Personalización y luego en la lista de privilegios seleccione el privilegio Leer junto a
Aplicación basada en modelo para seleccionar el ámbito de organización. .
9. Seleccione Guardar y cerrar.
10. En el diseñador de roles de seguridad, en el cuadro Nombre del rol, introduzca Programadores del
cuidado de mascotas.
11. Seleccione la pestaña Entidades personalizadas y, a continuación, localice la entidad Mascota.
12. En la fila Mascota, seleccione cada uno de los siguientes privilegios cuatro veces hasta que se seleccione el
ámbito global de la organización : Crear, Leer, Escribir, Eliminar, Anexar, Anexar a, Asignar,
Compartir
13. Puesto que la aplicación de cuidado de mascotas también tiene una relación con la entidad Cuenta y los
programadores deben poder crear y modificar registros de cuenta, seleccione la pestaña Registros
principales y, en la fila Cuenta seleccione cada uno de los siguientes privilegios cuatro veces hasta que se
haya seleccionado el ámbito global de la organización . Crear, Leer, Escribir, Eliminar, Anexar, Anexar
a, Asignar, Compartir
14. Seleccione Guardar y cerrar.

Asignar roles de seguridad a usuarios


Los roles de seguridad controlan el acceso del usuario a los datos a través de un conjunto de niveles de acceso y
permisos. La combinación de niveles de acceso y permisos que se incluyen en un determinado rol de seguridad
define los límites de visualización de datos para el usuario, así como las interacciones del usuario con estos.
Asignar un rol de seguridad a los técnicos del cuidado de mascotas
1. En el cuadro de diálogo Compartir esta aplicación, en Asignar usuarios al rol de seguridad, seleccione
Usuarios de seguridad.
2. En la lista que se muestra, seleccione los cuidadores de mascotas.
3. Seleccione Administrar roles.

4. En el cuadro de diálogo Administrar roles de usuario, seleccione el rol de seguridad Técnicos del
cuidado de mascotas que creó antes y seleccione Aceptar.
Asignar un rol de seguridad a los programadores del cuidado de mascotas
1. En el cuadro de diálogo Compartir esta aplicación, en Asignar usuarios a un rol de seguridad, seleccione
Usuarios de seguridad.
2. En la lista que se muestra, seleccione los programadores del cuidado de mascotas.
3. Seleccione Administrar roles.
4. En el cuadro de diálogo Administrar roles de usuario, seleccione el rol de seguridad Programadores del
cuidado de mascotas que creó antes y seleccione Aceptar.

Agregar roles de seguridad a la aplicación


A continuación, es necesario asignar uno o varios roles de seguridad a la aplicación. Los usuarios tendrán acceso a
aplicaciones en función de los roles de seguridad a los que se les asigne.
1. En el cuadro de diálogo Compartir esta aplicación, en Agregar el rol de seguridad a la aplicación,
seleccione Mis aplicaciones.
2. En la esquina inferior derecha de la ventana de la aplicación de la aplicación de cuidado de mascotas de
Contoso, seleccione Más opciones (...) y después seleccione Administrar roles.
3. En la sección Roles, puede elegir si va a conceder a la aplicación acceso a todos los roles de seguridad o a
roles seleccionados. Seleccione los roles de Programadores del cuidado de mascotas y Técnicos del
cuidado de mascotas que creó anteriormente.

4. Seleccione Guardar.

Compartir el vínculo a su aplicación


1. En el cuadro de diálogo Compartir esta aplicación, en Compartir el vínculo a su aplicación
directamente con usuarios, copie la dirección URL que se muestra.
2. Seleccione Cerrar.
3. Pegue la dirección URL de la aplicación en una ubicación para que los usuarios puedan acceder a ella, como
publicándola en un sitio de SharePoint o enviándola por correo electrónico.
También puede buscar la dirección URL de la aplicación en la pestaña Propiedades del diseñador de aplicaciones.
Acerca de los roles de seguridad predefinidos
Estos roles predefinidos están disponibles con un entorno de PowerApps.

ROL DE SEGURIDAD *PRIVILEGIOS DESCRIPCIÓN

Creador de entornos Ninguno Puede crear nuevos recursos asociados


a un entorno incluyendo aplicaciones,
conexiones, API personalizadas, puertas
de enlace y flujos usando Microsoft
Flow. Sin embargo, no tiene ningún
privilegio para acceder a los datos en
un entorno. Más información:
Información general de entornos

Administrador del sistema Crear, Leer, Escribir, Eliminar, Tiene permiso completo para
Personalizaciones, Roles de seguridad personalizar o administrar el entorno,
incluida la creación, modificación y
asignación de roles de seguridad. Puede
ver todos los datos del entorno. Más
información: Privilegios necesarios para
la personalización

Personalizador del sistema Crear (propio), Leer (propio), Escribir Tiene permiso completo para
(propio), Eliminar (propio), personalizar el entorno. No obstante,
Personalizaciones solo puede ver los registros de las
entidades del entorno que cree. Más
información: Privilegios necesarios para
la personalización

Usuario de Common Data Service Leer, Crear (propio), Escribir (propio), Puede ejecutar una aplicación dentro
eliminar (propio) del entorno y realizar las tareas
comunes para los registros de su
propiedad.

Delegar Actúa en nombre de otro usuario Permite ejecutar código como otro
usuario o la suplantación. Se suele usar
con otro rol de seguridad para permitir
el acceso a los registros. Más
información: Suplantar a otro usuario

*El privilegio es ámbito global salvo que se especifique lo contrario.

Pasos siguientes
Ejecutar una aplicación controlada por modelos en un dispositivo móvil
Administrar las propiedades de aplicaciones
controladas por modelos en el diseñador de
aplicaciones
25/11/2019 • 3 minutes to read • Edit Online

Las propiedades de la aplicación definen detalles importantes acerca la aplicación, como su título o dirección URL.
Defina propiedades de la aplicación al crear una aplicación. Si desea cambiar esas propiedades más adelante,
puede hacerlo en el diseñador de la aplicación.
1. En el diseñador de aplicaciones, en el lado derecho, seleccione la pestaña Propiedades.

2. Cambie la información si lo desea:


PROPIEDAD DESCRIPCIÓN

Nombre Escriba un nombre único y significativo para la aplicación.

Descripción Escriba una breve descripción de qué es la aplicación.

Icono De forma predeterminada, la casilla Usar aplicación


predeterminada está activada. Para seleccionar otro
recurso web como icono para la aplicación, desactive la
casilla y seleccione un icono de la lista desplegable. Este
icono se muestra en la ventana de vista previa de la
aplicación.

Nombre único No puede cambiar el nombre único. Con el nombre único,


puede consultar tablas para obtener datos de la base de
datos.

App URL Suffix1 La dirección URL que elija mientras crea la aplicación se
muestra aquí de forma predeterminada. Puede cambiar la
dirección URL de la aplicación en el cuadro de diálogo
Administrar aplicación. Tenga en cuenta que en este
momento no se puede exportar o importar el sufijo de la
dirección URL de la aplicación mediante una solución.

Elija una página de bienvenida para la aplicación Esta opción permite elegir entre los recursos web
disponibles en su entorno. Las páginas de bienvenida que
cree pueden contener información útil para los usuarios,
como vínculos a los vídeos, instrucciones de actualización
o información de introducción. Para obtener más
información acerca de cómo crear un recurso web, por
ejemplo, un archivo HTML que pueda usar como página
de bienvenida, consulte Crear y editar recursos web para
extender la aplicación web.

Habilitar Mobile Offline Esta opción permite que la aplicación esté disponible sin
conexión en móviles a los perfiles que se seleccionan con
la lista desplegable Perfiles de Mobile Offline.

1Las propiedades Client y App URL Suffix ya no están disponibles cuando se crea una nueva aplicación.
3. Guardar la aplicación.

Pasos siguientes
Creación o edición de aplicaciones
Especificar propiedades para aplicaciones
controladas por modelos de Interfaz unificada
25/11/2019 • 4 minutes to read • Edit Online

El marco de interfaz unificada usa principios de diseño dinámicos para ofrecer una experiencia de visualización e
interacción óptima para cualquier tamaño de pantalla u orientación. Con las aplicaciones basadas en modelos que
usan el marco de interfaz unificada, el control de cuadrícula (vista) es dinámico. Como el tamaño del contenedor
disminuye , por ejemplo, en los teléfonos y los puntos de visión más pequeños, la cuadrícula se transforma en una
lista.
El control de cuadrícula de solo lectura especifica cómo debe ajustar una cuadrícula al tamaño de pantalla
diferente. Como creador de aplicaciones, si trabaja con una aplicación de interfaz unificada, puede configurar el
control de cuadrícula de solo lectura y sus propiedades paras cuadrículas y listas personalizadas.
Propiedad Formulario de tarjeta: utilizar un formulario de tarjeta para listas en lugar de la plantilla de lista
predeterminada. Los formularios de tarjeta proporcionan más información para mostrar los elementos que la
plantilla de lista predeterminada.
Propiedad de Comportamiento de redistribución: use este parámetro para especificar si redistribuir una
cuadrícula en una lista o no.

Permitir redistribuir cuadrícula en la lista


Cuando se agrega el control de cuadrícula de solo lectura a la lista de controles le permite configurar las
características siguientes:
Permite redistribuir una cuadrícula en una lista en pantallas más pequeñas como móviles.
Especifique el modo de representación como solo cuadrícula o solo lista.
1. Abra el explorador de soluciones.
2. En el panel de navegación Entidades, seleccione la entidad correspondiente (como Cuenta o Contacto) y,
después, en la ficha Controles, seleccione Agregar control.

3. Seleccione Cuadrícula de solo lectura de la lista de controles y elija Agregar.


El control se agrega a la lista de controles disponibles.

4. Seleccione los dispositivos (Web, teléfono, o Tableta) para el que desea realizar la cuadrícula de solo
lectura.

5. Configure la propiedad Formulario de tarjeta.


Puede usar la propiedad de formulario de tarjeta para mostrar los artículos de lista en lugar de la plantilla
de lista predeterminada. Los formularios de tarjeta proporcionan más información para los elementos de
lista que la plantilla de lista predeterminada.
a. Elija el icono de lápiz junto a Formulario de tarjeta.
b. Seleccione el tipo de Entidad y Formulario de tarjeta.

c. Elija Aceptar.
6. Configurar la propiedad Comportamiento de redistribución.
a. Elija el icono de lápiz junto a Comportamiento de redistribución.

b. Seleccione el tipo de flujo de cuadrícula del desplegable Enlazar a opciones estáticas.


TIPO DE FLUJO DESCRIPCIÓN

Redistribución Permite a la cuadrícula mostrarse en modo lista en función


de cuando no haya espacio suficiente de visualización.

Solo cuadrícula Restringe la redistribución de la cuadrícula en una lista


incluso cuando no haya espacio suficiente de visualización.

Solo lista Muestra solo como una lista, incluso si hay espacio
suficiente para mostrar como cuadrícula.

c. Elija Aceptar.
7. Guarde y publique los cambios.

Imagen condicional
Puede mostrar un iconos personalizado en lugar de un valor en una lista y establecer la lógica utilizada para
seleccionarlos basada en los valores de la columna mediante JavaScript. Para obtener más información acerca de
las imágenes condicionales, vea Mostrar iconos personalizados en lugar de valores en vistas de lista.

Pasos siguientes
Crear o editar vistas
Eliminar una aplicación controlada por modelos
25/11/2019 • 2 minutes to read • Edit Online

Elimine o quite aplicaciones obsoletas en su entorno.

IMPORTANT
Si se instaló una aplicación basada en modelo en la solución predeterminada como parte de una solución administrada,
consulte Eliminar una aplicación basada en modelo que se instaló como parte de una solución administrada.

1. Inicie sesión en PowerApps.


2. En el panel de navegación izquierdo, seleccione Aplicaciones.
3. Seleccione la aplicación que desea eliminar y, a continuación, seleccione Eliminar en la barra de comandos.
4. En el mensaje de confirmación que aparece, seleccione Eliminar.
Se elimina la aplicación de su entorno.
Si el componente tiene dependencias (como relaciones), primero debe quitar las dependencias para poder eliminar
la aplicación. Para ver las dependencias de una aplicación, seleccione la aplicación y, a continuación, seleccione
Mostrar dependencias en la barra de comandos.

NOTE
Cuando se elimina la aplicación, se recomienda que elimine su mapa de sitio asociado. Si no se elimina el mapa de sitio
asociado, el diseñador del mapa de sitio muestra un error la primera vez que intenta crear otra aplicación con el mismo
nombre. Sin embargo, puede omitir el error y el error no aparecerá cuando intente volver a crear la aplicación.

Eliminar una aplicación basada en modelo que se instaló como parte de


una solución administrada
Para eliminar una aplicación basada en modelo que se instaló en el entorno como parte de una solución
administrada, elimine la solución administrada.
Eliminar una solución administrada
Todos los componentes de la solución administrada se eliminan al eliminar la solución.
1. Inicie sesión en PowerApps.
2. En el panel de navegación izquierdo, seleccione Soluciones.
3. En la lista Soluciones, seleccione la solución administrada que desea eliminar y en la barra de herramientas,
seleccione Eliminar.
Navegar a áreas de creación y personalización
avanzadas de aplicaciones controladas por modelos
25/11/2019 • 2 minutes to read • Edit Online

En este tema se describe cómo acceder a las áreas de personalización y administración avanzadas que están
disponibles en un entorno de PowerApps.

Soluciones
El área de soluciones es donde puede ver, editar, crear, importar, exportar y eliminar soluciones administradas y no
administradas.
1. Inicie sesión en PowerApps.
2. En el panel de navegación izquierdo, seleccione Soluciones.

Explorador de soluciones
Use el Explorador de soluciones para realizar las tareas de creación y personalización de aplicaciones que no se
pueden completar desde la página principal de PowerApps.
1. Inicie sesión en PowerApps.
2. En el panel de navegación izquierdo, seleccione Soluciones.
3. Seleccione Cambiar a clásica en la barra de herramientas para abrir la vista Todas las soluciones. Tenga en
cuenta que el comando Cambiar a clásica no está disponible cuando se selecciona una solución en la lista.
4. En la lista de soluciones disponibles seleccione la solución que desee en la columna Nombre para mostrar
para abrir el explorador de soluciones.

Aplicaciones
El área de aplicaciones muestra todas las aplicaciones basadas en modelos y de lienzo en las que tiene privilegios
en su entorno. Además de iniciar una aplicación, desde el área de aplicaciones también puede asignar roles de
seguridad a ella.
Para compartir una aplicación:
1. Inicie sesión en PowerApps.
2. Seleccione Aplicaciones.
3. Seleccione … > Compartir.
4. A continuación siga estos pasos: Agregar roles de seguridad a la aplicación

Configuración
Use el área de Configuración para configurar los parámetros del entorno, activar o desactivar procesos, etc.

Primero, vea si el valor que necesita está en el menú > Personalizaciones avanzadas.
Para buscar configuraciones no disponibles desde Personalizaciones avanzadas:

1. Desde una aplicación basada en modelode PowerApps, seleccione Configuración en la barra de


herramientas de la aplicación y, a continuación seleccione Opciones avanzadas.
2. Seleccione Configuración y seleccione el área de configuración que desee.

Vea también
Creación o edición de una aplicación basada en modelos usando el diseñador de aplicaciones Creación o edición
de aplicaciones en PowerApps Studio para web
Privilegios necesarios para la personalización de
aplicaciones controladas por modelos
25/11/2019 • 5 minutes to read • Edit Online

Los usuarios de la aplicación pueden personalizar el sistema e incluso compartir algunas de las personalizaciones
con otros usuarios, pero solo los usuarios con los privilegios adecuados pueden aplicar los cambios para todos.

NOTE
En esta sección se supone que sabe cómo trabajar con roles de seguridad. Para obtener más información acerca de cómo
trabajar con roles de seguridad, consulte Crear usuarios y asignar roles de seguridad.

Roles de seguridad Administrador del sistema y Personalizador del


sistema
Cualquiera que personalice tendrá el rol de seguridad de administrador o personalizador del sistema asociados a
su cuenta. Estos roles de seguridad proporcionan los permisos que necesita personalizar la implementación de la
aplicación.

ADMINISTRADOR DEL SISTEMA PERSONALIZADOR DEL SISTEMA

Tiene privilegios completos para personalizar el sistema Tiene privilegios completos para personalizar el sistema

Puede ver todos los datos del sistema Solo puede ver los registros de las entidades del sistema que
cree

La diferencia entre los roles de seguridad de administrador del sistema y de personalizador del sistema es que un
administrador del sistema tiene privilegios de lectura para la mayoría de los registros del sistema y puede verlo
todo. Asigne el rol de personalizador del sistema a alguien que necesite realizar tareas de personalización, pero que
no debería ver ningún dato de las entidades del sistema. Sin embargo, las pruebas son una parte importante de la
personalización del sistema. Si los personalizadores del sistema no pueden ver datos, deberán crear registros para
probar sus personalizaciones. De forma predeterminada, los personalizadores del sistema tienen acceso completo
a entidades personalizadas. Si desea tener las mismas limitaciones que existen para entidades del sistema,
necesitará ajustar el rol de seguridad de personalizador del sistema para que el nivel de acceso sea Usuario en
lugar de Organización para entidades personalizadas.

Delegar tareas de personalización


Es posible que desee delegar algunas tareas a usuarios de confianza para que puedan aplicar los cambios que
necesitan. Tenga en cuenta que cualquier persona puede tener varios roles de seguridad asociados a su cuenta de
usuario, y que los privilegios y derechos de acceso concedidos por los roles de seguridad se basan en el nivel de
permisos menos restrictivo.
Esto significa que puede conceder el rol de seguridad Personalizador del sistema a alguien que ya tenga otro rol de
seguridad; por ejemplo, un jefe de ventas. Esto le permite personalizar el sistema además de otros privilegios que
ya tenga. No necesita modificar el rol de seguridad que ya tiene y puede quitar el rol de seguridad de
personalizador del sistema de la cuenta de usuario de la persona cuando desee.
Probar personalizaciones sin privilegios de personalización
Siempre debe probar las personalizaciones que haya creado con una cuenta de usuario que no tenga privilegios de
personalización. De esta manera puede asegurarse de que las personas sin los roles de seguridad de administrador
o personalizador del sistema podrán usar las personalizaciones. Para hacerlo de manera efectiva necesita acceso a
dos cuentas de usuario: una cuenta con el rol de seguridad de administrador del sistema y otra con roles de
seguridad que representen a los usuarios que utilizarán las personalizaciones.

IMPORTANT
No intente eliminar su rol de seguridad de administrador del sistema si solo tiene una cuenta de usuario. El sistema le
advertirá si lo intenta, pero si continúa, es posible que no pueda recuperarlo. La mayoría de los roles de seguridad no
permiten modificar los roles de seguridad de un usuario.

Pasos siguientes
Conocer los componentes de las aplicaciones basadas en modelos
Crear o editar recursos web de aplicaciones
controladas por modelos para ampliar una
aplicación
25/11/2019 • 13 minutes to read • Edit Online

Los programadores usan recursos web normalmente para extender la aplicación utilizando archivos que se usan
en el desarrollo web. Los usuarios de la aplicación es posible que necesiten administrar los recursos web
proporcionados por un programador o un diseñador.

TIP
Para obtener información detallada de los recursos web, consulte Documentación para desarrolladores: Recursos Web para
aplicaciones basadas en modelo.
Para obtener información sobre las dependencias de recursos web agregadas a PowerApps, consulte Documentación para
desarrolladores: Dependencias de recursos web.

¿Qué son los recursos web?


Los recursos web son archivos virtuales almacenados en el sistema. Cada recurso web tiene un nombre único
que se pueda usar en una dirección URL para recuperar el archivo. Piense en ellos de esta manera: Si tuviera
acceso al servidor web real que ejecuta la aplicación web, podría copiar los archivos a ese sitio web. Pero con la
mayoría de los servicios online no puede hacerlo. En su lugar, puede usar recursos web para cargar archivos al
sistema y luego hacer referencia a ellos por nombre como si los hubiera copiado como archivos en el servidor
web.
Por ejemplo, si crea una página HTML como un recurso web llamado "new_myWebResource.htm", podría abrir
esa página en un explorador que use una dirección URL como ésta:
<base URL>/WebResources/new_myWebResource.htm

donde <base URL> es la parte de la dirección URL se usa para ver aplicaciones que finalizan en dynamics.com .
Puesto que el recurso web son datos del sistema, sólo los usuarios con licencia de la organización pueden tener
acceso a ellos de esta forma. Normalmente, recursos web se incluyen en formularios en lugar de hacer referencia
a ellos directamente. El uso más común consiste en proporcionar bibliotecas de JavaScript para scripts de
formularios.
Puesto que los recursos web son datos del sistema y son compatibles con las soluciones, puede moverlos a
distintas organizaciones exportándolos como parte de una solución e importando la solución a otra organización.
Debe usar el explorador de soluciones para trabajar con recursos web.

Abra el explorador de soluciones


La parte del nombre de cualquier recurso web que crea es el prefijo de personalización. Esto se establece en
función del editor de soluciones para la solución en la que trabaja. Si le interesa el prefijo de personalización,
asegúrese de que está trabajando en una solución no administrada donde el prefijo de personalización es el que
desea para este recurso web. Más información: Cambiar el prefijo del editor de soluciones
Ir a una solución no administrada
1. En el portal de PowerApps, seleccione Soluciones y, a continuación, en la barra de herramientas,
seleccione Cambiar a clásico.
2. En la lista Todas las soluciones seleccione la solución no administrada que desee.

Ver recursos web


Con el explorador de soluciones abierto, en Componentes seleccione Recursos web.

Crear o editar recursos web


Mientras visualiza recursos web, seleccione Nuevo para crear un nuevo recurso web o bien haga doble clic en un
recurso web existente para editarlo.

Complete el formulario para crear o editar el recurso web:


CAMPO DESCRIPCIÓN

Nombre Requerido. Este es el nombre único para este recurso web. No


se puede cambiar una vez guardado el recurso web.
• Este nombre solo puede incluir letras, números, puntos y
caracteres de barra diagonal (“/”) no consecutivos.
• El prefijo de personalización del editor de soluciones se
antepondrá al nombre del recurso web.

Nombre para mostrar El nombre que se muestra si ve una lista de recursos web.

Descripción Una descripción del recurso web.

Tipo Requerido. Este es el tipo de recurso web. No se puede


cambiar una vez guardado el recurso web.

Editor de texto Cuando el tipo de recurso web representa un tipo de archivo


de texto, seleccione este botón para abrir una página para
modificar el contenido mediante el editor de texto.
Más información: Usar el editor de texto adecuadamente

Idioma Permite la selección de un idioma diferente. Esta opción sólo


etiqueta el registro que almacena los datos del recurso web.
No modifica el comportamiento del recurso web.

Cargar archivo Seleccione el botón Examinar... para elegir el archivo que se


debe cargar como recurso web.
• Puede cargar un archivo al crear un nuevo recurso web o
para sobrescribir un recurso web existente.
• La extensión del nombre de archivo debe coincidir con
extensiones permitidas.
•De forma predeterminada el archivo de tamaño máximo que
se puede cargar como recurso web es 5 MB. Este valor se
puede editar mediante Configuración del sistema >
pestaña Correo electrónico > Establecer límite de
tamaño para archivos adjuntos. Más información: Cuadro
de diálogo Configuración del sistema: pestaña Correo
electrónico

Dirección URL Una vez guardado el recurso web, se mostrará aquí la


dirección URL del recurso web. Seleccione este vínculo para
ver el recurso web en el explorador.

Después de haber agregado los cambios, elija Guardar y luego en Publicar.

NOTE
Los cambios en un recurso web no serán visibles en la aplicación hasta que se publique.

Use el editor de texto adecuadamente


El editor de texto proporcionado en la aplicación para los recursos web se debe usar sólo para ediciones simples
de archivos de texto. Puede usarlo para crear y modificar los recursos web HTML, pero solo deberá modificar
recursos web HTML creados mediante el editor de texto. El editor de texto está diseñado para contenido HTML
muy sencillo.
IMPORTANT
Si el contenido de un recurso web HTML no se ha creado mediante el editor de texto, no use el editor de texto para editarlo.
El editor de texto usa un control que modifica el código fuente HTML de una forma que permite que sea editado. Estos
cambios pueden hacer que la página se comporte de forma diferente en el explorador y hacer que código más sofisticado
deje de funcionar. Al abrir un recurso web HTML con el editor de texto y guardarlo sin realizar ningún cambio pueden dañar
algunos recursos web HTML. Más información: Documentación para desarrolladores: Usar el editor de texto para recursos
web de HTML

Se recomienda usar un editor externo para editar archivos de texto y volver a guardarlos localmente antes de
cargarlos con el botón Cargar archivo. De esta manera puede mantener una copia del recurso web si necesita
volver a una versión anterior. Puede usar un editor simple como Bloc de notas, pero se recomienda
encarecidamente un editor de texto con funciones más avanzadas. Visual Studio Community y Visual Studio
Code son gratuitas y proporcionan eficaces capacidades para editar los archivos basados en texto que usan los
recursos web basados.

Crear y editar un recurso web en un formulario


Puede agregar o editar recursos web en un formulario para aumentar su atractivo o utilidad para los usuarios.

NOTE
No se puede incluir un recurso web en un encabezado o pie de página de formulario.

Ir a una solución no administrada


1. En el portal de PowerApps, seleccione Soluciones y, a continuación, en la barra de herramientas,
seleccione Cambiar a clásico.
2. En la lista Todas las soluciones seleccione la solución no administrada que desee.
Desplazarse a un formulario
Con el explorador de soluciones abierto, en Componentes, expanda Entidades y, a continuación, expanda la
entidad con la que desea trabajar.
Elija Formularios, en la lista localice un formulario de tipo Principal y, a continuación, haga doble clic o pulse en
la entrada para abrir y editar el formulario.
Agregar o editar un recurso web en un formulario
Consulte Propiedades de recurso web para obtener información acerca de las propiedades que puede establecer
para los recursos web en un formulario.
Vista previa
Para obtener una vista previa de cómo aparecerá el formulario principal y cómo funcionarán los eventos:
En la ficha Inicio, seleccione Vista previa y, a continuación, seleccione Formulario de creación, Formulario
de actualización o Formulario de sólo lectura.
Para cerrar el formulario Vista previa, en el menú Archivo, seleccione Cerrar.
Guardar
Cuando haya terminado de modificar el formulario, en la pestaña Inicio, seleccione Guardar y cerrar para cerrar
el formulario.
Publicación
Cuando haya completado las personalizaciones, publíquelas:
Para publicar las personalizaciones únicamente para el componente que está editando actualmente, en la barra
de navegación o en el panel de navegación, elija la entidad en la que ha estado trabajando, y seleccione
Publicar.
Para publicar personalizaciones de todos los componentes no publicados a la vez, en el Panel de navegación,
seleccione Entidades y, en la barra de herramientas Acciones, seleccione Publicar todas las
personalizaciones.
Vea también
Propiedades de recurso web
Crear y diseñar formularios
Conocer los componentes de las aplicaciones basadas en modelos
Documentación de desarrollador: Recursos web en aplicaciones basadas en modelo
Propiedades de recurso web para formularios de
aplicaciones controladas por modelos
25/11/2019 • 10 minutes to read • Edit Online

Puede agregar o editar recursos web en un formulario para aumentar su atractivo o utilidad para los usuarios de
la aplicación. Los recursos web habilitados para formularios son imágenes o controles de archivos HTML.

NOTE
Los recursos web de Silverlight están obsoletos y no funcionarán en el cliente de Interfaz unificada.

Acceder a propiedades de recurso web


Mientras visualiza un formulario:
Al agregar un recurso web: seleccione la pestaña (por ejemplo, General o Notas) en la que desea insertarlo
y en la pestaña Insertar, seleccione Recurso web.

Al editar un recurso web: seleccione una pestaña de formulario y el recurso web que desee modificar y, a
continuación, en la pestaña Inicio, seleccione Cambiar propiedades.

Se abrirá el cuadro de diálogo Agregar recurso web o Propiedades de recurso web.


IMPORTANT
Debe seleccionar la opción Visible de forma predeterminada para que el recurso web aparezca en el formulario y esté
disponible para los usuarios.

Propiedades de recurso web


El cuadro de diálogo Agregar recurso web o Propiedades de recurso web tendrá dos, a veces tres, fichas
según el tipo de recurso web.
Pestaña General
Estas propiedades definen el recurso web que se usará y cómo debe comportarse.

CAMPO DESCRIPCIÓN

Recurso de web Requerido. Busque un recurso web existente o cree uno


nuevo. Use la vista Recurso web habilitado para
formularios para incluir solo recursos web de HTML e
imágenes que se puedan agregar como elementos visuales
en un formulario.

Nombre Requerido. Especifique un nombre para el control de recurso


web que se agregará al formulario. Este valor identifica de
forma exclusiva el control en el formulario.
CAMPO DESCRIPCIÓN

Etiqueta Requerido. Se genera automáticamente según el valor del


campo Nombre. Especifique el texto localizable para el
control de recurso web que se agregará al formulario.
Seleccione Mostrar etiqueta en el formulario si desea que
esté visible.

Visible de forma predeterminada Mientras se habilita, el recurso web estará visible cuando se
cargue el formulario. Si tiene una regla de negocio o script de
formulario que mostrará el recurso web según sea necesario,
desactive este campo. Más información: Mostrar u ocultar
elementos de formulario

Habilitar para móvil Seleccione esta opción para permitir que este recurso web sea
visible en aplicaciones móviles.

Según el tipo de recurso web que seleccione, establezca propiedades adicionales.


Para los recursos web de HTML verá los siguientes:

CAMPO DESCRIPCIÓN

Parámetro personalizado (datos) Suelen ser los datos de configuración que se transferirán al
recurso web de HTML como parámetro de cadena de
consulta de data . Los scripts asociados a la página HTML
pueden acceder a estos datos y usarlos para cambiar el
comportamiento de la página.

Restringir scripting entre marcos cuando sea posible Use esta opción si no confía plenamente en el contenido del
recurso de web de HTML. Más información: Documentación
para desarrolladores: Seleccionar si se restringe el scripting
entre marcos

Pasar código tipo de objeto de registro e id. único Los datos sobre el registro actual visible en el formulario se
como parámetros pueden transferir a la página del recurso web de HTML para
que el script que se ejecuta en la página pueda acceder a los
datos sobre el registro. Más información:
Pasar parámetros a recursos web
Documentación para desarrolladores: Transferir información
contextual sobre el registro

Para los recursos web de imagen tiene la opción de especificar el Texto alternativo que es importante para las
tecnologías de ayuda que hacen la página accesible para todos.
Pestaña Formato
En la pestaña Formato, las opciones que se muestran varían en función del tipo de recurso web insertado y del
contexto en que se inserta. Estas opciones incluyen especificar el número de columnas y filas mostradas, si se
muestra un borde y el comportamiento de desplazamiento.
PROPIEDAD DESCRIPCIÓN

Seleccione el número de columnas que ocupa el control Cuando la sección que contiene el recurso web tiene más de
una columna, puede establecer que el campo ocupe hasta el
número de columnas que tiene la sección.

Seleccione el número de filas que ocupa el control Puede controlar la altura del recurso web especificando varias
filas o seleccionando Expandir automáticamente para usar
el espacio disponible para permitir que la altura del recurso
web se expanda según el espacio disponible.

Seleccione el tipo de desplazamiento para el IFrame Un recurso web HTML se agrega al formulario mediante un
IFRAME.

- Como sea necesario: muestra barras de desplazamiento


cuando el tamaño del recurso web es mayor que el espacio
disponible.
- Siempre: siempre se muestran barras de desplazamiento.
- Nunca: nunca se muestran barras de desplazamiento.

Mostrar borde Muestra un borde alrededor del recurso web.

Pestaña Dependencias
Un recurso web pueden interactuar con los campos del formulario mediante el script. Si se quita un campo del
formulario, el script del recurso web se puede interrumpir. Agregue campos a los que hagan referencia los scripts
del recurso web en Campos dependientes para que no puedan quitarse accidentalmente.
Pasar parámetros a recursos web
Un recurso web HTML puede aceptar que los parámetros se pasen como parámetros de cadena de consulta.
La información del registro se puede pasar habilitando la opción Pasar código tipo de objeto de registro e id.
único como parámetros. Si la información se escribe en el campo Parámetro personalizado (datos) se
pasará mediante el parámetro de datos. Los valores que se pasan son:

PARÁMETRO DESCRIPCIÓN

data Este parámetro solo se pasa cuando se proporciona texto


para Parámetro personalizado (datos).

orglcid LCID de idioma predeterminado de la organización.

orgname El nombre de la organización.

userlcid LCID de idioma preferido del usuario

type No usar. El código de tipo de entidad. Este valor numérico


puede ser diferente para las entidades personalizadas en
distintas organizaciones. Utilice el nombre de tipo de entidad
en su lugar.

typename Nombre del tipo de entidad.

id El valor de identificador del registro. Este parámetro no


incluye un valor hasta que se guarda el registro de la entidad.

No se permite ningún otro parámetro y el recurso web no se abrirá si se usan otros parámetros. Si necesita pasar
varios valores, el parámetro de datos puede sobrecargarse para incluir varios parámetros.
Más información: Documentación para desarrolladores: Transferir información contextual sobre el registro
Vea también
Crear o editar recursos web para extender una aplicación
Utilizar el formulario principal y sus componentes
Cambiar iconos de entidades personalizadas de
aplicaciones controladas por modelos
25/11/2019 • 4 minutes to read • Edit Online

Al crear una entidad personalizada, se le asigna automáticamente un icono predeterminado. Todas las entidades
personalizadas usan el mismo icono de forma predeterminada. Use iconos personalizados para distinguir la
apariencia de las entidades personalizadas. No puede modificar los iconos asignados a entidades del sistema.
Puede cargar tres tipos de iconos de entidades para cada entidad personalizada.

TIPO DE ICONO DESCRIPCIÓN

Icono Interfaz unificada Debe ser un icono escalable del gráfico vectorial (.svg)

Icono en aplicación web Una imagen en formato .svg, .gif, .png, o .jpg, con un tamaño
de16x16 píxeles.

Icono para formularios de entidad Una imagen en formato .svg, .gif, .png, o .jpg, con un tamaño
de 32x32 píxeles.

NOTE
El tamaño de todos los archivos de imágenes no puede superar los 10 kilobytes.
Cuando se usa una imagen escalable del gráfico vectorial (.svg) como Icono en aplicación web o Icono para formularios
de entidad, debe tener definido el tamaño predeterminado. Puesto que SVG es un documento XML, puede editar los
valores de ancho y alto del elemento svg con un editor de texto para definir el tamaño predeterminado para la imagen.

Cada tipo de icono se almacena como un recurso web. Puede crear recursos web primero y después establecer los
iconos para usarlos, o puede crear el nuevo recurso web dentro del cuadro de diálogo Registro de búsqueda
seleccionando Nuevo mientras establece el valor. Más información: Crear o editar recursos web para extender una
aplicación web

Establezca los iconos para una entidad personalizada.


Debe usar el explorador de soluciones para establecer iconos de entidades.
Ir a una solución no administrada
1. En el portal de PowerApps, seleccione Soluciones y, a continuación, en la barra de herramientas, seleccione
Cambiar a clásico.
2. En la lista Todas las soluciones seleccione la solución no administrada que desee.
Definir iconos de entidades
1. En la barra de comandos, seleccione Actualizar iconos.
2. En el cuadro de diálogo Seleccionar iconos nuevos, en la pestaña Cliente web, bajo Icono en
aplicación web o Icono para formularios de entidad, a la derecha de Nuevo icono, seleccione el botón
Examinar .
3. Seleccione o cree el recurso web adecuado y después seleccione Aceptar.
4. En la pestaña Interfaz unificada, haga igual para el campo Nuevo icono.
5. Seleccione Aceptar para cerrar el cuadro de diálogo Seleccionar nuevos iconos.
6. En la barra de comandos, en el menú Archivo, seleccione Guardar.
7. Cuando haya completado los cambios, publíquelos. Seleccione Publicar en la barra de comandos mientras
la entidad está seleccionada en el explorador de soluciones.

Herramientas de la Comunidad
Iconator es una herramienta desarrollada por la comunidad de XrmToolbox para PowerApps. Consulte el tema
Herramientas para desarrolladores para Common Data Service para la comunidad de herramientas desarrolladas.

NOTE
Las herramientas de la comunidad no son un producto de Microsoft y no se incluyen en el soporte técnico. Si tiene alguna
duda relacionada con la herramienta, póngase en contacto con el Editor. Más información: XrmToolBox.

Pasos siguientes
Crear una entidad
Editar una entidad
Distribuir una aplicación controlada por modelos
usando una solución
25/11/2019 • 4 minutes to read • Edit Online

Las aplicaciones basadas en modelos se distribuyen como componentes de la solución. Una vez que haya creado
una aplicación controlada por modelos, puede hacer que esté disponible para que otros entornos la usen
empaquetando la aplicación en una solución y, después, se exportándola en un archivo zip. Después de que la
solución (archivo .zip) se importa correctamente en el entorno de destino, la aplicación empaquetada está
disponible para su uso.

Agregar una aplicación a una solución


Para distribuir su aplicación, debe crear una solución para que la aplicación se pueda empaquetar para la
exportación.
1. Inicie sesión en PowerApps.
2. Seleccione Soluciones y seleccione Nueva solución.
3. Complete los campos en la página Nueva solución y, a continuación, seleccione Guardar. Más
información: Crear una solución
4. Se muestra la página Solución. Seleccione Agregar existente, seleccione Aplicación, seleccione la
aplicación que desea agregar a la solución y, a continuación, seleccione Aceptar.

5. Si aparece una página Faltan componentes necesarios se recomienda seleccionar Sí, incluir
componentes necesarios para agregar componentes necesarios como entidades, vistas, formularios,
gráficos y mapa del sitio que formen parte de la aplicación. Seleccione Aceptar.
6. En la página Solución, seleccione Guardar y cerrar.

Exportación de soluciones
Para distribuir la aplicación de modo que se pueda importar en otro entorno o ponerla a disposición en Microsoft
AppSource, debe exportar la solución a un archivo zip. A continuación, el archivo zip que contiene la aplicación y
los componentes se puede importar en otros entornos.
1. Abra la página Soluciones.
2. Seleccione la solución que desea exportar y, después, en la barra de herramientas, seleccione Exportar.
3. En la página Publicar personalizaciones, seleccione Siguiente.
4. Si aparece la página Faltan componentes necesarios, seleccione Siguiente.
5. En la página Exportar configuración del sistema, seleccione las características opcionales que desee
incluir y, a continuación, seleccione Siguiente.
6. En la página Tipo de paquete, seleccione No administrado o Administrado y seleccione Exportar. Para
obtener más información acerca de los tipos de paquetes de soluciones, consulte Información general de
soluciones.
7. En función del explorador y valores de configuración, se crea un archivo del paquete .zip y se copia en la
carpeta de descargas predeterminada. El nombre de archivo del paquete se basa en el nombre único de la
solución anexada con caracteres de subrayado y el número de versión de la solución.

NOTE
Cuando exporta una aplicación mediante una solución, no se exporta la dirección URL de la aplicación.

Importación de soluciones
Cuando reciba un archivo zip de la solución que contiene la aplicación que desea importar, abra la página de
componentes de soluciones e importe la solución. Cuando la solución se haya importado correctamente, la
aplicación estará disponible en su entorno.
1. Inicie sesión en PowerApps.
2. Seleccione Soluciones y en la barra de herramientas seleccione Importar.
3. Examine el archivo que desea importar y elija Siguiente.
4. Seleccione importar.

Vea también
Cambiar el prefijo del editor de soluciones
Habilitar y usar ayuda personalizable
25/11/2019 • 5 minutes to read • Edit Online

La ayuda personalizable le permite ofrecer su propia información contextual a los usuarios de aplicaciones
basadas en modelo rellenando formularios.

NOTE
En lugar de crear y de mantener su propio sistema de Ayuda, los paneles personalizados de ayuda y las tareas guiadas están
disponibles y puede usarlos para crear Ayuda que dé a la aplicación de la interfaz unificada una experiencia de ayuda en el
producto que esté adaptada a su organización. Más información: Crear ayuda guiada para la aplicación de la Interfaz
unificada

Con aplicaciones basadas en modelo puede reemplazar la Ayuda predeterminada con la Ayuda personalizada de
su elección, en el nivel global (entorno) o de la entidad. La Ayuda personalizada expone el contenido a través de los
vínculos de la Ayuda más relevantes para entidades personalizadas o personalizables. Con una dirección URL
única y global puede reemplazar los vínculos de la Ayuda estándar para todas las entidades personalizables. Las
direcciones URL de la entidad reemplazan los vínculos de la Ayuda estándar en cuadrículas y formularios para una
entidad personalizable específica. Puede incluir parámetros adicionales en la dirección URL, tales como código de
idioma y el nombre de la entidad. Estos parámetros permiten a los desarrolladores agregar funcionalidad para
redirigir el usuario a una página que sea relevante para su idioma o al contexto de entidad dentro de la aplicación.
La configuración de la Ayuda personalizada del nivel de la entidad es compatibles con soluciones. Por tanto, puede
empaquetarla como parte de una solución y transportarla entre entornos o distribuirla en soluciones.

Configurar la Ayuda personalizable


La Ayuda personalizable puede establecerse en los niveles globales y de la entidad.
Establecer Ayuda personalizable en el nivel global
Los usuarios con el rol de seguridad de administrador del sistema pueden usar la configuración para reemplazar la
Ayuda predeterminada en el nivel global.

1. Abra una aplicación basada en modelo y en la barra de comandos seleccione Configuración >
Configuración avanzada.
2. Vaya a Configuración > Administración.
3. Seleccione Configuración del sistema y luego seleccione la pestaña General.
4. En Establecer dirección URL de Ayuda personalizada, seleccione y defina la configuración global de
Ayuda personalizable siguiente:
Usar la Ayuda personalizada para entidades personalizables. Seleccione para habilitar.
Dirección URL de la ayuda personalizada global. Escriba la dirección URL de la Ayuda
personalizada.
Anexar los parámetros a la URL. Seleccione Sí para permitir que parámetros como código de idioma
o nombre de entidad se anexen a la Dirección URL de Ayuda que especifique en la definición de
entidad. Más información: Anexar parámetros a dirección URL
5. Seleccione Aceptar.
Establecer Ayuda personalizable para una entidad específica
Después de habilitar Ayuda personalizada en el nivel global, los personalizadores del sistema pueden reemplazar
la dirección URL global de Ayuda para una entidad en la definición de entidad.
1. Abra el explorador de soluciones.
2. Expanda Entidades y, a continuación, seleccione la entidad que desea.
3. En la pestaña General de la sección Ayuda de la definición de entidad, en la casilla Dirección URL de
Ayuda escriba la dirección URL de la página de Ayuda personalizada.

Anexar los parámetros a la URL


Como se describió anteriormente, para permitir el anexado de parámetros a la Dirección URL de Ayuda para la
definición de entidad, establezca Anexar parámetros a la dirección URL en la pestaña Configuración del
sistema > General como Sí.
Ejemplos de los parámetros que se pueden anexar a la dirección URL:
Código de idioma de usuario: userlcid
Nombre de entidad: entidad
Punto de entrada: gráfico de jerarquías o formulario
Identificador de formulario: formid
Crear ayuda guiada (Ruta de aprendizaje) para la
aplicación
25/11/2019 • 68 minutes to read • Edit Online

Use la Ruta de aprendizaje para dar a los usuarios una experiencia de Ayuda personalizada dentro de la aplicación
que está adaptada a su entorno y al uso y flujo de trabajo específicos de su organización.

IMPORTANT
Ruta de aprendizaje sólo está disponible con aplicaciones del cliente web heredadas. Use páginas de ayuda personalizadas
para aplicaciones de la interfaz unificada. Más información: Crear ayuda guiada para la aplicación de la Interfaz unificada

La Ruta de aprendizaje facilita el aprendizaje y adopción de aplicaciones y de procesos de organización, garantiza


que los datos se introducen e interpretan de manera consistente, y reduce los errores y las llamadas de soporte
generadas por los usuarios. Vea un vídeo corto (1:50) sobre Ruta de aprendizaje.

¿En qué se diferencia la Ruta de aprendizaje de la Ayuda


personalizable?
La Ayuda personalizable permite reemplazar la Ayuda de aplicaciones Dynamics 365 predeterminada y dirige a los
usuarios de la organización a otra dirección URL para la Ayuda. O puede reemplazar la Ayuda para una entidad
muy personalizada que puede describir mejor el flujo de trabajo.
La Ruta de aprendizaje permite agregar Ayuda personalizable que los usuarios ven en la aplicación cuando abren
una página, realizan una acción o seleccionan el botón Ayuda (?).
Para obtener más información sobre Ayuda personalizable, consulte Personalizar la experiencia de la Ayuda.

Requisitos previos
Para crear contenido de Ruta de aprendizaje, debe:
Estar usando PowerApps o Dynamics 365 (online).
Han optado por recibir la Ruta de aprendizaje. Este valor está activado de forma predeterminada, pero
puede haberse desactivado.
Para asegurarse de que la Ruta de aprendizaje está activada: en la barra de navegación, vaya a
Configuración > Optar por recibir la ruta de aprendizaje.
Más información: Modificador encendido/apagado para Ruta de aprendizaje (ayuda guiada).
Tener el rol Personalizador del sistema o Administrador del sistema u otro rol que tenga el privilegio de
creación de la Ruta de aprendizaje.
Habilitar la creación de la Ruta de aprendizaje Esto crea el grupo de seguridad Autores de la Ruta de
aprendizaje de Office 365.
Hágase miembro del grupo de seguridad Autores de la Ruta de aprendizaje de Office 365.
Puede crear contenido de la Ruta de aprendizaje para los módulos de aplicación web y los módulos de
aplicación de Interfaz unificada. Esto incluye Dynamics 365 para tabletas.
Activar la Ruta de aprendizaje para la organización
La Ruta de aprendizaje es una característica opcional que se puede activar o desactivar para su organización. Puede
mostrar el contenido de Ruta de aprendizaje incluido con Dynamics 365, crear su propio contenido de Ruta de
aprendizaje para los usuarios, o ambos.
1. Inicie sesión en PowerApps o Dynamics 365 con una cuenta de administrador.
2. Vaya a Configuración y, luego, Administración en Sistema. Más información: Configuración
3. En la página Administración, seleccione Configuración del sistema.
4. En la pestaña General, en Establecer la URL de la Ayuda personalizada, seleccione Sí en Habilitar
Ruta de aprendizaje y Habilitar la creación de la ruta de aprendizaje.
Puede habilitar Ruta de aprendizaje o Ayuda personalizable pero no ambas al mismo tiempo. Confirme que
Usar la Ayuda personalizada para entidades personalizables y Anexar los parámetros a la URL
están establecidos en No.

5. Seleccione Aceptar.

Agregar un usuario al grupo de seguridad Autores de la ruta de


aprendizaje de Office 365
Si usted no es miembro del grupo de seguridad Autores de Office 365, verá el siguiente mensaje de error al abrir
la biblioteca de contenido de la Ruta de aprendizaje.

Agregar un usuario
1. Vaya al portal de administración del inquilino de Office 365 seleccionando Navegar a otras aplicaciones
en la esquina superior izquierda de la página cuando inicie sesión en Dynamics 365 y luego seleccione
Administración.
Es posible que deba volver a escribir la contraseña.
2. En el Centro de administración, seleccione Grupos.
3. En la página Grupos, seleccione el grupo de seguridad Autores de Ruta de aprendizaje.
4. Haga clic en Editar en la fila Integrantes para agregar usuarios al grupo.
5. Seleccione + Agregar integrantesy, a continuación especifique o busque los usuarios que desee agregar al
grupo.
6. Seleccione Guardar cuando haya terminado de agregar usuarios.

NOTE
Otra forma de asignar el grupo a una cuenta de usuario es seleccionando Usuarios > Usuarios activos, seleccionando el
usuario que desee agregar y, a continuación haciendo clic en Editar junto a Pertenencia al grupo para seleccionar los
grupos a los que agregar el usuario.

¿Cómo funciona la Ruta de aprendizaje con varias organizaciones?


Al publicar contenido de la Ruta de aprendizaje, puede usar Entornos de publicación para controlar en qué
organizaciones asociadas al inquilino se publica su contenido. Para publicar diferente contenido para
organizaciones diferentes, cree varios entornos de publicación y agregue cada organización a uno o más de ellas.

Ruta de aprendizaje y roles de seguridad de Common Data Service


Common Data Service usa roles de seguridad para determinar qué contenido de la Ruta de aprendizaje se muestra
cuando un usuario selecciona el botón Ayuda, se desplaza a una página o realiza una acción definida en Common
Data Service.
Los roles que se usan en la Ruta de aprendizaje son los mismos usados en su organización de Common Data
Service para seguridad y acceso a los datos, pero puede crear contenido de la Ruta de aprendizaje para todos y
cada uno de los roles de seguridad de Common Data Service. Normalmente, conviene que los roles de seguridad
del diseñador de la Ruta de aprendizaje coincidan con el entorno de Common Data Service. Sin embargo, puede
simplificar la interfaz de usuario en el diseñador ocultando algunos roles de seguridad de Common Data Service
del diseñador. Si más tarde decide que desea usar un rol de seguridad que eliminó de la Ruta de aprendizaje, puede
sincronizar los roles entre la Ruta de aprendizaje y Common Data Service.
Si la organización tiene varias unidades de negocio, los roles de seguridad pueden tener relaciones primarias y
secundarias. Solo los roles de seguridad de la unidad de negocio raíz se sincronizan.
Para obtener más información acerca de los roles de seguridad, consulte: Roles de seguridad y privilegios.
Prioridad de los roles de Ruta de aprendizaje
Si a un usuario de la organización se le asigna más de un rol de seguridad, la prioridad se usa para determinar que
rol de seguridad asignado se usa para mostrar contenido de la Ruta de aprendizaje. Si el contenido de la Ruta de
aprendizaje está asociado a un rol de seguridad, cualquier usuario asignado a ese rol verá contenido de la Ruta de
aprendizaje, incluso si se le asigna un rol de seguridad con una prioridad mayor que no está asociada al contenido
de la Ruta de aprendizaje.
Cada rol incluido en la Ruta de aprendizaje tiene un valor numérico. El primer rol en la lista tiene la prioridad más
alta y los roles posteriores tienen prioridad más baja. Cuando se asigna a un usuario un rol que desencadena la
visualización de contenido de la Ruta de aprendizaje, el usuario verá ese contenido incluso se le hubiera asignado
un rol con una prioridad más baja que no esté asociada al contenido. Por ejemplo, si a un usuario se le asigna un
rol con una prioridad 1 y un rol con prioridad 20, el usuario verá contenido de la Ruta de aprendizaje definido solo
para el rol con prioridad 1.
Si crea contenido diferente para distintos roles en la misma página o pantalla de aplicaciones basadas en modelo,
los usuarios verán el contenido asociado al rol con prioridad más alta.
Administrar roles de seguridad y prioridad
Puede controlar qué roles de seguridad están disponibles en el diseñador de Ruta de aprendizaje y establecer el
orden de los roles para determinar la prioridad cuando se ejecuta la Ruta de aprendizaje. Si un usuario tiene dos
roles, y hay contenido diferente publicado para un contexto determinado para cada uno de estos roles, el usuario
verá el contenido para el rol que aparece más alto en la lista.
Configurar roles de seguridad
1. Inicie sesión en PowerApps con una cuenta que tenga permisos de creación de la Ruta de aprendizaje.
2. Abra la Biblioteca de contenido.
3. Seleccione Configuración en la parte superior de la pantalla.
4. Para sincronizar los roles de seguridad con su Common Data Service, seleccione Sincronizar roles.
5. Para establecer el orden de prioridad de los roles usados con la Ruta de aprendizaje, use las flechas arriba o
abajo para mover un rol en la lista.
La prioridad se determina por el orden de los roles mencionados en esta página.
6. Para impedir que se use un rol con la Ruta de aprendizaje, haga clic en el botón Eliminar junto al rol.

NOTE
Esto no elimina el rol de Dynamics 365. Elimina el rol del diseñador de la Ruta de aprendizaje para definir cómo se
muestra el contenido a los usuarios. Puede restablecer siempre un rol oculto seleccionando Sincronizar roles.

7. Cuando termine de realizar cambios, seleccione Guardar.


8. Seleccione Atrás para volver a la biblioteca de contenido.

Crear controles de Ruta de aprendizaje para Dynamics 365 para


tabletas
Puede crear controles de la Ruta de aprendizaje para Dynamics 365 para tabletas de la misma forma que crea
controles para el cliente web. Para ello debe usar el simulador de aplicaciones móviles en un explorador web de
modo que tenga acceso a la interfaz de usuario móvil para anclar los controles de Ruta de aprendizaje. Este
simulador se debe usar únicamente con este fin.
Mostrar el simulador de la interfaz de aplicación móvil en un explorador web
1. Inicie sesión en Dynamics 365.
2. Copie el nombre del servidor para su organización de Common Data Service desde la dirección URL que
aparece en el explorador, como https://contososales.crm.dynamics.com/.
Asegúrese de incluir la barra diagonal (/) después de .com.
3. Determine el nombre único de la organización (también denominada instancia) para la que desea crear
controles de la Ruta de aprendizaje. Para obtener el nombre único, en el mapa del sitio, seleccione
Configuración > Personalizaciones y, a continuación, en la página Personalización, seleccione Recursos
de desarrollador. Copie el valor del campo Nombre único que se muestra en la sección Referencia de la
instancia.
4. Anexe lo siguiente a la primera parte de la dirección URL de la organización, reemplazando <org name>
por el nombre único de su organización determinado en el paso anterior:
nga/main.htm?org=<org name>
La dirección URL debe tener un aspecto similar al siguiente:
https://contososales.crm.dynamics.com/nga/main.htm?org=orgb557e46a
5. Anexe lo siguiente a la dirección URL del paso anterior, reemplazando <server name> por el nombre de
servidor del primer paso en este procedimiento:
&server=<server name>
La dirección URL debe tener un aspecto similar al siguiente:
https://contososales.crm.dynamics.com/nga/main.htm?
org=orgb557e46a&server=https://contososales.crm.dynamics.com/.
6. Abra una nueva pestaña o ventana del explorador y copie la dirección URL completa que haya creado,
péguela en la nueva pestaña o ventana del explorador, y seleccione Entrar.
La primera vez que se conecte a la interfaz de aplicaciones móviles, se muestra una pantalla de bienvenida
mientras que el sistema procesa los metadatos y descarga personalizaciones. Una vez que ha finalizado, se
muestra el área de trabajo.

NOTE
Al conectarse a la versión de la aplicación móvil de la interfaz, se usarán las credenciales desde el inicio de sesión a la
interfaz web para autenticarle. Deberá dejar la interfaz web abierta para evitar errores de acceso denegado al abrir la
interfaz de la aplicación móvil.

7. Cierre el área de trabajo para mostrar la página principal para la interfaz de la aplicación móvil en su
explorador. A continuación puede abrir la biblioteca de contenido para crear o editar los controles de Ruta
de aprendizaje. Más información: Biblioteca de contenido

Biblioteca de contenido
La biblioteca de contenido muestra todas el contenido creado y disponible para su organización, así como los
comandos para crear, administrar e interactuar con controles. Para crear o editar controles de la Ruta de
aprendizaje, conéctese primero con la interfaz del cliente para la que desea crear controles y, a continuación abra la
biblioteca de contenido.
Para abrir la biblioteca de contenido desde la interfaz del cliente web predeterminada, realice una de
estas acciones:
En una barra lateral, seleccione el botón Biblioteca de contenido.

Seleccione la ventana Aprendizaje del mapa del sitio y, a continuación, Biblioteca de contenido.
Para abrir la biblioteca de contenido desde el simulador de la interfaz de la aplicación móvil:
1. Seleccione el botón de puntos suspensivos en un círculo (...) en la esquina inferior derecha de la pantalla.

2. Seleccione Biblioteca de contenido de Ruta de aprendizaje.

NOTE
Si no ve todas estas columnas en la biblioteca del contenido, puede que sea porque el zoom de vista del explorador se
establece por encima del 100%. Para ver todas las columnas, establezca el zoom al 100% o menos.

La biblioteca de contenido incluye las columnas descritas en la tabla siguiente:

COLUMNA DESCRIPCIÓN

Nombre El nombre que usó al crear la tarea guiada o la barra lateral.


Un símbolo rojo de candado junto al nombre indica que el
contenido está protegido actualmente. Puede pasar el mouse
sobre el icono para ver qué usuario ha protegido el contenido.

Un asterisco rojo situado junto al nombre indica contenido


recién protegido.

Título El título que proporcionó cuando agregó contenido a la tarea


guiada o la barra lateral. Los títulos para las barras laterales y
tareas guiadas se muestran en barras laterales cuando se
agregan como vínculos, o cuando se devuelven como
resultados de la búsqueda.

Escriba Un símbolo que indica el tipo de contenido: barra lateral o


tarea guiada
COLUMNA DESCRIPCIÓN

Factor de formulario Símbolos que representan el factor de forma seleccionado para


este contenido cuando se creó, Escritorio o Tableta.

La columna Factor de forma no se muestra cuando usa la


biblioteca de contenido cuando está conectado al simulador
de la interfaz de la aplicación móvil o el centro de servicio
interactivo.

Etiquetas Muestra cualquier etiqueta aplicada a este contenido. Puede


agregar etiquetas en el cuadro de diálogo Opciones
avanzadas. Use etiquetas para filtrar contenido que aparece
en la biblioteca.

Versión de aplicación La versión de la aplicación en la que se creó el control.

Autor Nombre de la persona que creó el control.

Idiomas Un valor numérico que representa el número de idiomas al


que se ha traducido el control.

Esta columna

Estado Muestra Publicado si el contenido está publicado


actualmente; si no, el estado es Borrador.

Habilitada Muestra si el contenido está habilitado o deshabilitado. Sólo el


contenido habilitado se muestra a los usuarios.

Última publicación La fecha más reciente en que se publicó el contenido.

Tipos de contenido de Ruta de aprendizaje: tareas guiadas y barras


laterales
Puede crear dos tipos de contenido en la Ruta de aprendizaje: tareas guiadas y barras laterales.
Tareas guiadas
Una tarea guiada suele ser una serie de pasos, aunque también puede ser un solo paso. Un usuario puede iniciar
una tarea guiada seleccionando un vínculo de una barra lateral, navegando a una página o seleccionando un
vínculo de una página para la que se ha creado contenido. En cada paso, el usuario selecciona el botón Siguiente o
completa una acción definida para pasar al paso siguiente, o para llevar a cabo la tarea guiada.
Las tareas guiadas son útiles para guiar a los usuarios con tareas comunes o nuevas. También se pueden usar para
asegurarse de que las tareas se realizan de manera coherente en la organización, o que los datos se introducen de
una forma específica para admitir procesos o el flujo de trabajo de la organización. Puede incluir vínculos, vídeos, y
otra información en tareas guiadas para ayudar a los usuarios a familiarizarse y a obtener más información sobre
la parte de la interfaz de usuario a la que el paso hace referencia.
Barras laterales
Una barra lateral se muestra cuando un usuario selecciona el botón Ayuda, se desplaza a una página, o selecciona
un vínculo o un botón de una página para la que usted ha creado contenido. También puede crear barras laterales
de inicio que se muestran cuando el usuario abre la página o la pantalla, o selecciona el icono Inicio en una barra
lateral.
También puede definir las barras laterales de error que aparecen cuando hay un problema que muestra la barra
lateral prevista. Puede incluir vínculos, vídeos, y otra información en barras laterales para ayudar a los usuarios a
familiarizarse y a obtener más información sobre la página o el formulario mostrado, o acciones que pueden
realizar en la página o el formulario.

Crear una tarea guiada


Hay dos pasos para crear una tarea guiada:
1. Defina cómo se desencadena la tarea, y asigne los roles a los que el contenido se aplica.
2. Use el editor de flujo para agregar pasos que los usuarios verán mientras recorren la tarea guiada.
Definir los desencadenadores y los roles
1. Vaya a la página para la que desea crear una tarea guiada.
2. Abra la Biblioteca de contenido. Consulte Biblioteca de contenido para conocer el procedimiento.
3. En la Biblioteca de contenido, seleccione Tarea guiada.

4. Especifique un nombre y seleccione los otros valores para la tarea guiada. Use esta tabla para referencia.

CONFIGURACIÓN DESCRIPCIÓN

Deshabilite esta tarea guiada Active esta casilla para deshabilitar la tarea guiada. Cuando
está deshabilitada, no se muestra a los usuarios.

Definir como tarea guiada de error Seleccione esta casilla si desea mostrar esta tarea guiada
solo cuando hay un error con otras tareas guiadas, como
la falta de privilegios o cualquier problema que impida que
se muestren otras tareas guiadas asociadas a la página.

Nombre El nombre para la tarea guiada que se muestra en la


biblioteca de contenido.
CONFIGURACIÓN DESCRIPCIÓN

Cliente El valor del cliente se establece automáticamente para la


plataforma en la que está creando contenido.
Advertencia: Si edita un control existente cuando está
conectado a una interfaz distinta de aquella en la que se
creó el control, el valor del cliente se actualizará con el tipo
de cliente actual. Esto hará que el control se rompa y no
funcione en el cliente para el que se creó originalmente el
control.

Si está creando controles para la interfaz web, aparece


Cliente web.

Si está conectado al simulador de la interfaz de la


aplicación móvil, se muestra Aplicaciones móviles.

Si está conectado el centro de servicio interactivo, aparece


Centro de servicio interactivo .

Factor de forma El factor de forma mostrado depende de la interfaz para la


que está creando contenido. Si usa la interfaz del cliente
web, se muestran Escritorio y Tableta. Cuando está
seleccionada para el cliente web, Tableta hace referencia a
los exploradores que se ejecutan en dispositivos de tableta,
no a la aplicación móvil.

Si está creando controles para la interfaz de la aplicación


móvil, aparece Tableta. Esto hace referencia a dispositivos
que ejecutan la aplicación móvil de Dynamics 365, pero
solo se admite en tabletas.

Si usa el centro de servicio interactivo, aparece Escritorio.


Importante: La Ruta de aprendizaje no se admite en
Dynamics 365 para teléfonos.

La tarea guiada se abre cuando Seleccione si desea que la tarea guiada aparezca cuando
Se carga la página o cuando Se hace clic en el vínculo
en una barra lateral.

Fase del ciclo de vida Este ajuste es solo para uso interno.

Rol de seguridad de Common Data Service Seleccione el rol o roles de seguridad para los que desea
mostrar la tarea guiada. Puede seleccionar todos los roles
que desee. Si a un usuario se le asigna más de un rol, la
tarea guiada aparecerá solamente para el rol con la mayor
prioridad, como se describió anteriormente en este tema.

Estado Muestra el estado de la tarea guiada. El estado será


Borrador hasta que la publique.
CONFIGURACIÓN DESCRIPCIÓN

Opciones avanzadas Esta opción está disponible después guardar la tarea


guiada. Están disponibles los siguientes valores en
Opciones avanzadas:
Realizar esta tarea guiada incorrecta: seleccione
esta casilla si desea mostrar esta Tarea guiada solo
cuando hay un error con otras tareas guiadas.
Idiomas compatibles: Seleccione los idiomas para
esta tarea guiada, y para la importación y la
exportación.
Autor: Cambie el autor definido para esta tarea
guiada.
Etiquetas: Agregue o elimine etiquetas aplicadas a
esta tarea guiada. Use etiquetas para facilitar la
búsqueda de contenido en la biblioteca contenido,
o clasificar su contenido.

También puede establecer los valores siguientes en


Publicar información:
Versión de aplicación: Establezca la versión de
Dynamics 365 asociada el contenido.
Versión: Establezca la versión del contenido que
cree.
Grupo de creación: Establezca en el grupo de
creación para el contenido que cree.
Grupos de publicación: Seleccione el grupo o
grupos de publicación para este contenido.

5. Cuando haya terminado, seleccione Guardar para empezar a usar el Editor de flujo.
Agregue pasos con el Editor de flujo
1. Agregue el título donde se muestra Título de tarea guiada. Este es el título que los usuarios verán.
2. Seleccione si se mostrarán o no controles de Id. fijos únicamente. Los controles registrados se resaltan en
verde, y los no registrados en azul cuando arrastra la ventana para anclarla a la interfaz de usuario. Si ancla
un paso a un control sin un Id. fijo, puede verse afectado por una actualización futura de Dynamics 365. Las
actualizaciones no afectarán a los controles de Id. fijos.
3. Seleccione Agregar nuevo paso y elija el tipo de paso que desee usar para el primer paso de la tarea
guiada.

TIPO DE BOTÓN DESCRIPCIÓN

Paso con botón Siguiente Este paso tiene un botón Siguiente que puede servir para
navegar al siguiente paso del flujo. Si ésta es el último paso
del flujo, el botón Siguiente no aparecerá. Arrastre la
ventana para anclar el paso donde desea que se muestre
en la aplicación.
TIPO DE BOTÓN DESCRIPCIÓN

Paso con acción del usuario Este paso no tiene un botón Siguiente. Se pide al usuario
que seleccione el elemento de la UI en el que está anclado
el paso. Si se produce redireccionamiento de página o
cualquier cambio de estado de la UI como resultado de
este clic, asegúrese de anclar el siguiente paso en el estado
de la UI cambiada. Arrastre la ventana para anclar el paso
donde desea que se muestre en la aplicación.

Ancle este tipo de paso a un control de la UI seleccionable,


como un botón o un vínculo.

Acción del usuario con botón Siguiente Este paso tiene un botón Siguiente. Seleccionar el botón
Siguiente tiene el mismo efecto que seleccionar elemento
de la UI en el que está anclado el paso. Si se produce
redireccionamiento de página o cualquier cambio de
estado de la UI como resultado de este clic, asegúrese de
anclar el siguiente paso en el estado de la UI cambiada.
Arrastre la ventana para anclar el paso donde desea que se
muestre en la aplicación.

Paso de aprendizaje Este paso tiene un botón personalizable como acción de


fin. Este paso sólo puede estar al final de un flujo de tarea
guiada. Puede usarlo para vincularlo a una barra lateral de
Ruta de aprendizaje. Arrastre la ventana para anclar el
paso donde desea que se muestre en la aplicación.

NOTE
Si ya ha planeado la tarea guiada y sabe qué pasos desea agregar, ahora puede agregarlos todos. Cada paso que
agregue aparecerá en el editor de flujo en el orden que lo agregó. Puede reorganizar pasos después de agregarlos
arrastrándolos arriba o abajo en la lista.

4. Seleccione el tipo de paso que desee agregar y, a continuación arrastre la ventana a la interfaz de usuario
para anclarla un control. Puede requerir varios intentos acostumbrarse a colocar el paso donde desea.

NOTE
Puede mantener la ventana por un máximo de 15 segundos. Si no la ancla en 15 segundos, la ventana seguirá sin
estar anclada y el puntero del mouse cambiará de nuevo a cursor normal.
5. Cuando haya colocado el paso donde desee, suelte el botón del mouse para anclarla al control. El paso
aparecerá en la ubicación seleccionada. Para mover el paso, use el botón Arrastrarme en el panel junto al
paso.

6. Agregue contenido al paso usando los controles presentados junto a ella. Están disponibles las siguientes
opciones de configuración:
Tipo de contenido: Agregue texto o un vídeo al paso. Seleccione Editar para ver más valores.
Puede cambiar tamaño de fuente, color y estilo del texto, y agregar una miniatura para vídeo.
Ubicación: Especifique la ubicación del paso en el control al que lo ancló. Las selecciones incluyen:
Posición automática (seleccionada de forma predeterminada), Superior izquierda, Superior derecha,
Inferior izquierda, Inferior derecha, Izquierda superior, Izquierda inferior, Derecha superior y Derecha
inferior.
Copiar: Cree una copia del paso con contenido idéntico anclada en la misma ubicación e insértela en
el flujo de tareas guiadas directamente después del paso original.
7. Seleccione Guardar cuando termine de colocar y agregar contenido al paso, y cierre el paso mediante el
botón Cerrar en la esquina superior derecha del paso, o seleccione la flecha en la esquina superior izquierda
de la pantalla para volver al editor de flujo.

NOTE
Siempre podrá editar el paso más tarde, por tanto, no se preocupe si accidentalmente lo cierra antes de tenerlo como
desea.

8. Para agregar o editar el siguiente paso de la tarea guiada, seleccione el icono en la esquina superior
izquierda de la pantalla para mostrar el editor de flujo.
9. Agregue cualquier paso adicional que desee incluir en la tarea guiada, asegurándose de guardar cada paso
cuando haya terminado de agregar contenido.

NOTE
Si reubica un paso o lo copia con el botón Copiar en la barra de herramientas, los cambios sin guardar en ese paso se
perderán. Asegúrese de guardar los cambios con frecuencia.

10. Cuando haya terminado de agregar pasos a la tarea guiada, seleccione Guardar.
11. Seleccione Vista previa para probar la tarea guiada y ver cómo aparecerá a los usuarios.

NOTE
Para publicar la tarea guiada, deberá realizar una vista previa primero. Al cerrar un paso o usar la flecha en la esquina
superior izquierda de la pantalla durante el modo de vista previa, verá los botones Proteger y Publicar en el
diseñador de la Ruta de aprendizaje.

12. Si está satisfecho con los cambios, protéjalos y publique la tarea guiada, o publíquela más tarde desde la
biblioteca del contenido.

Crear una barra lateral


Hay dos pasos para crear una barra lateral:
1. Establezca las propiedades de la barra lateral y asigne los roles a los que se aplica.
2. Agregue contenido a la barra lateral (texto, imágenes, vínculos y botones).
Establecer propiedades y roles de la barra lateral
1. Vaya a la página para la que desea crear una barra lateral.
2. Abra la Biblioteca de contenido. Consulte Biblioteca de contenido para conocer el procedimiento.
3. En la Biblioteca de contenido, seleccione Barra lateral.

4. Especifique un nombre y luego seleccione los otros valores para la barra lateral. Use esta tabla para
referencia.

CONFIGURACIÓN DESCRIPCIÓN

Deshabilitar Active esta casilla para deshabilitar la barra lateral.

Definir como barra lateral de error Seleccione esta casilla si desea mostrar esta barra lateral
solo cuando hay un error con otra barra lateral, como la
falta de privilegios u otro problema que impida que se
muestren otras barras laterales asociadas a la página.
CONFIGURACIÓN DESCRIPCIÓN

Convertir en barra lateral de inicio La barra lateral de Inicio se muestra cuando un usuario
selecciona el botón Inicio o si no hay una barra lateral en la
página y el usuario selecciona Ayuda. Cada página puede
tener únicamente una barra lateral de inicio.

Nombre El nombre que se muestra en la biblioteca de contenido.

Cliente El valor del cliente se establece automáticamente para la


plataforma en la que está creando contenido.
Advertencia: Si edita un control existente cuando está
conectado a una interfaz distinta de aquella en la que se
creó el control, el valor del cliente se actualizará con el tipo
de cliente actual. Esto hará que el control se rompa y no
funcione en el cliente para el que se creó originalmente el
control.

Si está creando controles para la interfaz web, aparece


Cliente web.

Si está conectado al simulador de la interfaz de la


aplicación móvil, se muestra Aplicaciones móviles.

Si está conectado el centro de servicio interactivo, aparece


Centro de servicio interactivo .

Factor de forma El factor de forma mostrado depende de la interfaz para la


que está creando contenido. Si usa la interfaz del cliente
web, se muestran Escritorio y Tableta. Cuando está
seleccionada para el cliente web, Tableta hace referencia a
los exploradores que se ejecutan en dispositivos de tableta,
no a la aplicación móvil.

Si está creando controles para la interfaz de la aplicación


móvil, aparece Tableta. Esto hace referencia a dispositivos
que ejecutan la aplicación móvil de Dynamics 365, pero
solo se admite en tabletas.

Si usa el centro de servicio interactivo, aparece Escritorio.

La barra lateral se abre cuando Seleccione si desea que la barra lateral aparezca cuando se
cargue la página o cuando un usuario seleccione un
vínculo o un botón de la página.

Fase del ciclo de vida Esto es solo para uso interno.

Rol de seguridad de Common Data Service Seleccione el rol o roles de seguridad para los que desea
mostrar la barra lateral. Puede seleccionar todos los roles
que desee. Si a un usuario se le asigna más de un rol, la
barra lateral aparecerá solamente para el rol con la mayor
prioridad, como se describió anteriormente en este tema.

Plantilla Seleccione la plantilla que va a usar la nueva barra lateral,


Una sola columna o Dos columnas. La plantilla
predeterminada es una barra lateral de una sola columna.

Estado Muestra el estado de la barra lateral. El estado será


Borrador hasta que publique la barra lateral.
CONFIGURACIÓN DESCRIPCIÓN

Opciones avanzadas Esta opción no está disponible hasta que guarde la barra
lateral. Están disponibles los siguientes valores en
Opciones avanzadas:
Deshabilitar encabezado de la barra lateral
Deshabilitar título de la barra lateral
Deshabilitar pie de página de la barra lateral
Autor: Cambie el autor definido para la barra
lateral.
Etiquetas: Agregue o elimine etiquetas aplicadas a
esta barra lateral. Use etiquetas para facilitar la
búsqueda de contenido en la biblioteca contenido,
o clasificar su contenido.
Idiomas compatibles: Seleccione los idiomas para
esta barra lateral, y para la importación y la
exportación.

5. Cuando haya terminado, seleccione Guardar para comenzar a agregar contenido a la barra lateral en el
diseñador.
Agregar contenido a la barra lateral
1. Una vez guardado el nombre y las propiedades de la barra lateral en la biblioteca de contenido, el diseñador
se abre.
2. Escriba un título para la barra lateral.
3. Agregue el contenido que desea mostrar a los usuarios cuando se muestra la barra lateral.
4. Para agregar una nueva sección, seleccione Agregar sección.
5. Para eliminar una sección de la plantilla, seleccione la sección que desee eliminar y, a continuación
seleccione el botón Eliminar.
6. Cuando haya terminado de modificar el contenido en la barra lateral, seleccione Guardar para guardar los
cambios, y luego cierre la barra lateral con el botón Cerrar en la esquina superior derecha para volver a la
biblioteca de contenido.
7. Seleccione Administrar en la parte superior de la página y, después, Proteger para guardar los cambios y
ponerlos a disposición de otros usuarios que crean contenido.
Agregar vínculos a la barra lateral
Cuando crea una barra lateral, hay varias opciones para agregar vínculos a ella. Puede establecer un vínculo a otra
tarea guiada o barra lateral de la Ruta de aprendizaje, a otra página en Dynamics 365, o a una página web. Incluso
puede buscar temas de ayuda y aprendizaje para vincular cuando se crea una barra lateral. Una vez establecidas las
propiedades y los roles de la barra lateral y de estar listo para agregar contenido, siga estos pasos para agregar
vínculos a una sección de la barra lateral que ha creado.
1. En la sección a la que desea agregar vínculos, seleccione el icono Lista de vínculos.

2. Agregue un título de sección y, a continuación seleccione + Agregar vínculo.


3. Seleccione el tipo de vínculo que desea agregar y luego, seleccione Siguiente. Puede elegir entre las
siguientes opciones:
Tarea guiada: crea un vínculo con una tarea guiada de la Ruta de aprendizaje existente. Esto puede
resultar útil para proporcionar la información acerca de una tarea en la barra lateral y, a continuación,
vincularla a una tarea guiada que lleva a un usuario a través de la tarea en la interfaz de Dynamics
365.
Barra lateral: Crea un vínculo a una barra lateral de Ruta de aprendizaje existente. Puede usar un
vínculo con una barra lateral para
Página de la aplicación
Página web

Utilizar vídeos en los controles de Ruta de aprendizaje


Solo los vídeos hospedados en YouTube son compatibles con los controles de la Ruta de aprendizaje. Si planea
usar vídeos en los controles de la Ruta de aprendizaje, deberá tener una cuenta y un canal de YouTube para cargar
vídeos. No puede vincular a vídeos de un canal establecido como privado, pero puede vincular a vídeos si su canal
está establecido como público u oculto. También puede configurar el canal de modo que varias personas puedan
administrar el contenido de vídeos de la organización.
Cuando agrega vídeos a los controles, puede insertar el vídeo en el control. Si desea que los usuarios vean los
vídeos en una nueva pestaña o ventana del explorador puede agregar una sección de texto a la barra lateral y luego
agregar un vínculo al vídeo en la sección de texto.
Cuando inserta vídeos que se muestran en una barra lateral o una tarea guiada, usará el vínculo que obtiene de
YouTube. La Ruta de aprendizaje actualizará automáticamente el vínculo para insertar el vídeo y ajustarlo a la barra
lateral o la ventana de la tarea guiada. Un usuario puede seleccionar Pantalla completa para ver el vídeo en
modo de pantalla completa. Si un usuario hace pausa en la reproducción o cuando finaliza la reproducción,
YouTube puede automáticamente mostrar vínculos a otros vídeos en los que el usuario puede estar interesado.
Puede evitar que esto suceda modificando el vínculo en el control para incluir ?rel=0 al final.
Por ejemplo, cuando se crea y carga un vídeo en el canal, se copia la dirección URL del vídeo proporcionada por
YouTube, que es https://youtu.be/4TrYMB4pjyw. Para insertar este vídeo en un control, especifique esa
dirección URL en el campo Escribir URL del vídeo para el control.
Al guardar el control, Ruta de aprendizaje cambia la dirección URL a
https://www.youtube.com/embed/4TrYMB4pjyw. Para desactivar la visualización de vínculos a otros vídeos
cuando se pausa el vídeo o termina de reproducirse, edite la dirección URL para anexar ?rel=0 al final de manera
que la dirección URL sea similar a la siguiente: https://www.youtube.com/embed/4TrYMB4pjyw?rel=0.
Para obtener más información acerca de cómo utilizar YouTube: Centro de ayuda de YouTube

Publicar contenido de la ruta de aprendizaje


Los usuarios solo verán contenido de la Ruta de aprendizaje que cree después de que publicarlo. Solo puede
publicar contenido protegido.
1. Abra la Biblioteca de contenido.
2. Active la casilla justo a cada tarea guiada o barra lateral que desee publicar. Asegúrese de que el control que
desee publicar está protegido.
3. Seleccione Publicar en la parte superior de la página, y después Publicar.
4. En la página Publicar controles, seleccione los entornos de publicación en los que desea publicar el
contenido y, a continuación, seleccione Publicar.
Acerca de los grupos de publicación
El contenido de la Ruta de aprendizaje se publica en un grupo de publicación. Cuando activa la Ruta de aprendizaje
para su organización, se creará un grupo de publicación con el mismo nombre que el nombre de la organización.
Puede crear grupos de publicación adicionales según sea necesario. Puede agregar varias organizaciones a un
grupo de publicación y una organización puede ser miembro de varios grupos de publicación de modo que pueda
personalizar contenido y publicarlo fácilmente en distintas organizaciones.
Crear un grupo de publicación
1. Abra la Biblioteca de contenido.
2. Seleccione Configuración en la parte superior de la pantalla.
3. Seleccione Configuración de publicación.
4. En la página Configuración de publicación, seleccione Nuevo PG.
5. Introduzca un nombre y una descripción opcional.
6. Seleccione las organizaciones que desea incluir en el grupo de publicación. Verá sólo las organizaciones
para las que tiene permisos.
7. Seleccione Guardar y, a continuación, Aceptar.

Exportar e importar contenido de Ruta de aprendizaje


Puede exportar el contenido que crea, para compartir con un autor de otra organización, o para realizar las copias
de seguridad. La característica de exportación crea un archivo comprimido .zip que contiene archivos .json usados
para su contenido en la Ruta de aprendizaje. Habrá una carpeta en el archivo .zip para cada barra lateral o tarea
guiada de la Ruta de aprendizaje seleccionada.
Exportar contenido de Ruta de aprendizaje
1. En la biblioteca de contenido, seleccione la casilla situada junto al contenido que desea exportar.
Puede exportar contenido sin protegerlo.
2. Seleccione Administrar en la parte superior de la página, y después Exportar.
3. Seleccione la opción que desea usar para guardar el archivo .zip generado, y luego seleccione un nombre de
archivo y una ubicación.

NOTE
El nombre de archivo predeterminado para el archivo .zip es el mismo cada vez que exporta, por lo que conviene usar
un nombre único para evitar sobrescribir los archivos exportados anteriormente.

Importar contenido de Ruta de aprendizaje


1. En la biblioteca del contenido, seleccione Administrar y después Importar.
2. Seleccione Examinar para elegir el archivo exportado previamente que desea importar, o arrastre el archivo
al cuadro Arrastre aquí los controles del diálogo.
Cau t i on

Al importar un control, sobrescribirá y reemplazará las versiones del mismo control que ya están en la
biblioteca, incluso si el control existente es más reciente.
3. Confirme que el nombre de archivo mostrado corresponde al archivo que desea importar y, a continuación,
seleccione Importar.
4. En el cuadro de diálogo de confirmación, seleccione Aceptar.

Localizar controles de la ruta de aprendizaje


Puede buscar el contenido en los controles que crea en Ruta de aprendizaje para se muestren a los usuarios en el
idioma que han seleccionado para Dynamics 365. Para buscar los controles, puede exportarlos simplemente,
buscar las cadenas que se muestran a los usuarios, y luego importar el control que incluye contenido localizado.
Puede importar el control en la misma organización o en otra organización según lo desee. Puede buscar el mismo
control en varios idiomas y después importar sólo los idiomas específicos en las organizaciones específicas que
admiten al usuario con ese idioma seleccionado. La compatibilidad de localización en Ruta de aprendizaje sigue el
estándar Formato de archivo de intercambio de localización XML (XLIFF ) 2.0 de OASIS. Hay herramientas y
tutoriales libremente disponibles para trabajar con este formato común. Más información: XLIFF Versión 2.0.
Para obtener más información sobre la configuración de idioma de Dynamics 365, consulte Configurar opciones
personales.
1. Seleccione el control que desea localizar en la Biblioteca de contenido.
2. Seleccione Localizary, después, Exportar.

3. Seleccione la opción que desea usar para guardar el archivo .zip generado, y luego seleccione un nombre de
archivo y una ubicación.

NOTE
El nombre de archivo predeterminado para el archivo .zip es el mismo cada vez que exporta, por lo que conviene usar
un nombre único para evitar sobrescribir los archivos exportados anteriormente.

4. Después de localizar el contenido, en la Biblioteca de contenido seleccione Localizar y después Importar.


5. Seleccione Examinar para elegir el archivo exportado previamente que desea importar, o arrastre el archivo
al cuadro Arrastre aquí los controles del diálogo.
Cau t i on

Al importar un control, sobrescribirá y reemplazará las versiones del mismo control que ya están en la
biblioteca, incluso si el control existente es más reciente.
6. Confirme que el nombre de archivo mostrado corresponde al archivo que desea importar y, a continuación,
seleccione Importar.
7. En el cuadro de diálogo de confirmación, seleccione Aceptar.
8. Publique el control localizado en los entornos de publicación deseados para poner el control localizado a
disposición de los usuarios. El contenido localizado se mostrará automáticamente a los usuarios que han
seleccionado el mismo idioma para su interfaz de usuario.

Asignación de centro de datos de aplicaciones Dynamics 365 a


regiones de Azure
La siguiente tabla enumera las regiones de centros de datos de aplicaciones Dynamics 365 y las correspondientes
regiones de Azure desde las que estará disponible la Ruta de aprendizaje.

DYNAMICS 365 CENTRO DE DATOS AZURE REGIÓN

Asia-Pacífico (APAC) Asia oriental

Canadá (CAN) Canadá Central

Europa, Oriente Medio, África y Gran Bretaña (EMEA, GBR) Europa Occidental

India (IND) Centro de la India

Japón (JPN) Japón oriental

Norteamérica (NAM) Este de EE. UU.

Oceanía (OCE) Australia oriental

Sudamérica (SAM) Sur de Brasil

Aviso de privacidad
Al habilitar la creación de la Ruta de aprendizaje para una organización Dynamics 365, el contenido de la Ruta de
aprendizaje (publicado o borrador) creado por los usuarios (con los privilegios correctos de seguridad) se
almacenará en Azure SQL Database. Además, habilitar la característica permite que Azure Cloud Services capture
los siguientes datos asociados con una organización Dynamics 365:
Lista de organizaciones del inquilino
Cliente Dynamics 365 de los usuarios finales y configuración aplicable del sistema operativo / explorador
Datos de uso de los usuarios finales, por ejemplo, tiempo empleado en las Rutas de aprendizaje o clic
grabados
Datos de los usuarios finales agregados: ubicación, rol de seguridad, idioma del usuario
Datos de los usuarios finales agregados: ubicación, rol de seguridad, idioma del usuario
Comentarios literales de los usuarios finales
Un administrador puede habilitar (y deshabilitar posteriormente) la creación de la Ruta de aprendizaje mediante un
valor de la pestaña General del cuadro de diálogo Configuración del sistema.
En las secciones siguientes se detallan los componentes y servicios de Azure relacionados con la funcionalidad
Creación de Ruta de aprendizaje.
Nota: Para obtener más información acerca de otras ofertas de servicios de Azure, consulta el Centro de confianza
de Microsoft Azure.
Cloud Services
Servicio web
El servicio web contiene los controles que el tiempo de ejecución de la Ruta de aprendizaje genera en el cliente. El
servicio web también admite la API de diseñador que la creación de la Ruta de aprendizaje utiliza. El servicio
almacena los controles en Azure SQL Database.
Compilador (rol de trabajo)
El rol de compilador administra la publicación de un control en un grupo de publicación. El compilador usa la cola
para almacenar mensajes acerca del trabajo de publicación. Los resultados se almacenan en Azure SQL Database.
Azure SQL Database
Ruta de aprendizaje usa Azure SQL Database para almacenar:
Controles que se crean usando Ruta de aprendizaje.
Creación de Ruta de aprendizaje relacionada con la configuración.
Azure Active Directory
Ruta de aprendizaje utiliza Azure Active Directory para autenticar el servicio web.
Azure Traffic Manager
Ruta de aprendizaje usa Azure Traffic Manager para equilibrar la carga del servicio web a fin de lograr
disponibilidad y rendimiento.
Azure Storage Queue
Azure Storage Queue se usa para coordinar la comunicación entre los roles de compilador y servicio web.
Azure Blob Storage
Ruta de aprendizaje usa Azure Blob Storage para almacenar el contenido estático (JavaScript del lado de cliente,
imágenes, contenido CSS ).
Red de entrega de contenido (CDN ) de Azure
La red CDN se utiliza para almacenar en caché el contenido estático del lado del cliente (JavaScript, imágenes y
archivos CSS ) y ofrecerlo desde la red CDN global.
Vea también
Modificador encendido/apagado para Ruta de aprendizaje (ayuda guiada)
Tutorial para la transición de su aplicación de cliente
web heredada a la interfaz unificada
25/11/2019 • 10 minutes to read • Edit Online

El marco de la interfaz unificada también usa principios de diseño web dinámicos para ofrecer una experiencia de
visualización e interacción óptima para cualquier tamaño de pantalla, dispositivo u orientación. Este tema de inicio
rápido explica cómo realizar la transición de su aplicación de cliente web heredada a la interfaz unificada con un
nuevo entorno de no producción.

Para usar un entorno de no producción existente para realizar la transición de su aplicación de cliente web,
consulte Inicio rápido para utilizar un entorno existente para validar la aplicación de cliente web heredada con la
interfaz unificada.

Requisitos previos
Una aplicación del cliente web heredada.
Aunque no es necesario, se recomienda un entorno de no producción para probar la aplicación y asegurarse de
que no afecta a la implementación o ciclos de desarrollo actuales. Más información: Administrar instancias de
espacio aislado

Preparar el entorno
Primero, seleccione un entorno de no producción y habilite el modo Usar solo la interfaz unificada, que usará la
interfaz unificada para todas las aplicaciones basadas en modelo del entorno. Esto también incluye cualquier
módulo de aplicación de Dynamics 365 configurado originalmente para el cliente web heredado.
1. Inicie sesión en PowerApps, seleccione Entorno y luego seleccione un entorno de espacio aislado.
2. Seleccione Configuración > Comportamiento y después active Usar solo la interfaz unificada.
También puede establecer esto en el área de configuración. Vaya a Configuración > Administración >
Configuración del sistema y en la pestaña General establezca Habilitar sólo la interfaz unificada como Sí.

NOTE
Si necesita devolver el entorno a su estado anterior, puede alternar el ajuste de la interfaz unificada para revertir a la interfaz
original. Más información: Habilitar solo la interfaz unificada

Ejecute y valide la aplicación en la interfaz unificada


Ejecute sus aplicaciones que eran originalmente aplicaciones del cliente web. Tenga en cuenta que, una vez que se
active Usar solo la interfaz unificada, todas las aplicaciones disponibles en el entorno usan la interfaz unificada
incluso si la aplicación estaba configurada originalmente para el cliente web.
Para ejecutar la aplicación, inicie sesión en PowerApps, seleccione Aplicaciones y luego seleccione la aplicación
que desea ejecutar. Como alternativa, puede ir directamente a la página Mis aplicaciones, como
https://contoso.crm.dynamics.com/apps/.
Valide la aplicación, procesos, y personalizaciones
Se recomienda probar todos los casos de uso. Puede empezar con los casos de uso más críticos o agruparlos en
patrones lógicos de diseño. Puesto que la interfaz unificada se basa en diseño dinámico, se recomienda realizar
pruebas con distintos dispositivos que tienen diferentes resoluciones de pantalla. Al probar la aplicación podrá
comprobar que las personalizaciones son compatibles con la interfaz unificada y si existen características que
necesiten un rediseño o les falta funcionalidad. Cree un plan para revisar estos elementos y envíe sus preguntas y
sus comentarios al foro de la comunidad.

IMPORTANT
La versión actual de Common Data Service y aplicaciones basadas en modelo en Dynamics 365 incluye aún varias
características obsoletas. Debe comprobar si la aplicación tiene características obsoletas y reemplazarlas según sea necesario
con nuevas capacidades. Más información: Próximos cambios importantes (funciones obsoletas)

Aplicación de Dynamics 365


Si usa aplicaciones de Dynamics 365 Field Service o Dynamics 365 Project Service Automation y desea probar la
interfaz unificada, debe configurar un nuevo entorno de espacio aislado y realizar una copia del entorno de
producción para actualizar a Field Service versión más reciente y Project Service Automation versión antes de
validar estas aplicaciones en la interfaz unificada. Para ello, siga estos pasos:
1. Cree un nuevo entorno de espacio aislado desde el Power Platform Centro de administración o el Centro
de administración de Dynamics 365. Más información: Agregar una instancia a la suscripción
2. Copie el entorno de producción que tiene las aplicaciones de Dynamics 365 Field Service o Dynamics 365
Project Service Automation al nuevo entorno de espacio aislado. Para ello, en el Centro de administración
de Power Platform abra el entorno de producción y, a continuación seleccione Copiar.

3. En la página Copiar entorno, seleccione Todo, seleccione el nuevo entorno de espacio aislado de la lista
Seleccionar entorno para sobrescribir y después seleccione Copiar.

4. Se abre el cuadro de diálogo Sobrescribir entorno. Asegúrese de que ha seleccionado el entorno correcto
y de que tiene las opciones correspondientes seleccionadas y, a continuación seleccione Confirmar.
5. Cuando la copia se realiza correctamente, aparece un aviso de confirmación.
6. En la barra de menú, seleccione Administrar soluciones para abrir el área Soluciones.

IMPORTANT
Si habilita modo de administración, debe deshabilitarlo para poder ver el área Soluciones. Más información: Modo
de administración

7. Busque la solución de Field Service o Project Service Automation y selecciónela. La opción Actualizar debe
estar disponible. Selecciónela para actualizar la solución.

NOTE
Las últimas versiones de Field Service y Project Service Automation en la interfaz unificada están disponibles de forma
predeterminada para las instancias recién creadas. Si desea actualizar un entorno existente con versiones instaladas
anteriormente, debe solicitar la actualización poniéndose en contacto con Soporte al cliente de Microsoft.

Más información: últimas versiones de Dynamics 365 for Field Service y página principal de actualización de
Dynamics 365 for Project Service Automation

Pasos siguientes
En función de sus hallazgos, el equipo o el asociado de implementación puede estimar la cantidad de esfuerzo
necesario para realizar la transición de su aplicación en la interfaz unificada y también identificar mejoras
potenciales en la facilidad de uso. Con muchas características y capacidades nuevas disponibles en la interfaz
unificada hay oportunidad para aumentar el valor de los usuarios de la aplicación.
La transición a la interfaz unificada es una gran oportunidad para crear una interfaz de usuario moderna y revisar
los procesos existentes para comprobar que siguen siendo válidos o si necesitan mejoras. Este es también un buen
momento para considerar si su aplicación refleja los requisitos empresariales y si la aplicación existente se puede
extender a diversas aplicaciones para los distintos equipos y roles. Más información: Diseñar aplicaciones basadas
en modelo mediante el diseñador de aplicaciones
Vea también
Cuaderno de estrategias de la interfaz unificada
Aproximación a la experiencia de usuario y transición a la interfaz unificada
Acerca de la interfaz unificada
¿Qué son las aplicaciones controladas por modelos en PowerApps?
Actualizar aplicaciones a la interfaz unificada
Configurar paneles de experiencia interactiva de aplicaciones controladas por modelos
Usar controles personalizados para visualizaciones de datos de aplicaciones controladas por modelos
Información general sobre PowerApps component framework
Interfaz unificada para todos
Inicio rápido para usar un entorno existente para
validar la antigua aplicación de cliente web heredada
con la interfaz unificada
25/11/2019 • 19 minutes to read • Edit Online

Este tema de inicio rápido muestra cómo usar un entorno existente para crear una aplicación de interfaz unificada
basada en la configuración actual o la configuración predeterminada. Esto le permite explorar y comprobar la
interfaz unificada mientras ejecuta aplicaciones de cliente web heredadas existentes paralelamente. Un usuario a
continuación puede cambiar entre entornos para obtener una vista lado a lado.

Para obtener instrucciones similares que le muestran cómo crear un nuevo entorno de espacio aislado para aislar
la prueba y ver sólo la experiencia de la interfaz unificada, consulte Inicio rápido para realizar la transición de la
aplicación de cliente web heredada de aplicaciones de Dynamics 365 a la interfaz unificada.

IMPORTANT
Para entornos con aplicaciones de Dynamics 365 Field Service o Dynamics 365 Project Service Automation, consulte
aplicaciones de Dynamics 365.

Requisitos previos
Una aplicación de cliente web de Dynamics 365 Sales o Service heredada.
Aunque no es necesario, se recomienda el uso de un entorno de no producción para probar la aplicación. Más
información: Administrar instancias de espacio aislado

Información general
Este tema es para clientes existentes que usan aplicaciones de cliente web heredadas que necesitan planear y
ejecutar la transición a la interfaz unificada. Para configurar un entorno paralelo, cree una nueva aplicación basada
en la solución predeterminada tal como se encuentra hoy. Esto se puede hacer en el entorno actual de espacio
aislado de desarrollo sin que se vea afectado el trabajo existente.
Después de completar los pasos de este artículo, los usuarios con el rol adecuado pueden ver la nueva aplicación
en la lista de aplicaciones desplegable de Dynamics 365 o en la página principal de Dynamics 365
(https://home.dynamics.com).

Una vez que complete las tareas descritas en este tema en el entorno de desarrollo mediante una solución, puede
importar la solución en el entorno de prueba, lo que permite que un grupo mayor de usuarios profesionales
prueben y comparen la aplicación en un entorno familiar.
Siga los procesos de administración del ciclo de vida de la aplicación (ALM ) y operaciones de desarrollo.
Recomendamos realizar todos los pasos descritos en un contexto de la solución. Una vez que pruebe y valide la
aplicación en el entorno de desarrollo, puede seguir probando la aplicación iniciándola como programa piloto para
más usuarios, como en un entorno de producción. Si tiene aplicación basada en modelo y el mapa del sitio en una
solución podrá exportar la aplicación desde el entorno donde creó esta nueva aplicación siguiendo los procesos
existentes hacia delante en la canalización de entorno.

Proceso para validar la aplicación de cliente web heredada en un


entorno existente
El proceso para validar la aplicación de cliente web heredada en un entorno existente incluye tres pasos:
1. Crear una solución nueva que se base en la solución predeterminada
2. Crear una nueva aplicación basada en modelo
3. Configurar las propiedades de la aplicación
Si ha cambiado recientemente el modo Usar solo la interfaz unificada a Activado en el entorno de desarrollo,
siguiendo las instrucciones del tema Inicio rápido para realizar la transición de la aplicación de cliente web
heredada de aplicaciones de Dynamics 365 a la interfaz unificada, deberá volver a Desactivarlo para poder
ejecutar las antiguas del cliente web heredadas existentes.
Crear una solución nueva que se base en la solución predeterminada
1. Iniciar sesión en el portal de creador de PowerApps.
2. Seleccione la lista de entornos, seleccione el entorno que desee.
3. En el panel de navegación izquierdo, seleccione Soluciones.
4. En la barra de menú, seleccione Nueva solución.
5. En el panel Nueva solución, especifique las propiedades siguientes:
Nombre. Escriba un nombre para la solución. Por ejemplo, Aplicación de la interfaz unificada.
Editor. Seleccione el editor que usa la organización. Asegúrese de seguir la gobernanza de
personalización para las personalizaciones existentes. Esto asegurará que los nombres de esquema para
la aplicación basada en modelo y su mapa del sitio son coherentes con los estándares existentes.
Versión. Esto debe establecerse siguiendo los estándares y la gobernanza existentes para soluciones.
6. Seleccione Crear.
7. La nueva solución se crea en la lista de soluciones. Selecciónela para abrir la solución e ir a la siguiente sección.
Crear una nueva aplicación basada en modelo en la nueva solución
En este paso creará una nueva aplicación que aproveche las personalizaciones existentes de modo que pueda
experimentarlas en la interfaz unificada. Puede crear la aplicación en el contenedor de la nueva solución, que creó
en la sección anterior.
1. En la barra de menú seleccione Nuevo, señale a Aplicación y, a continuación seleccione Aplicación
basada en modelo.
2. En la página Crear una nueva aplicación, especifique las propiedades siguientes:
Nombre. Escriba el nombre que desee para la aplicación. Por ejemplo, Nombre de la aplicación +
Nuevo o Prueba de la interfaz unificada.
Nombre único. Este comienza con el prefijo de la solución y la versión simplificada del nombre de la
aplicación que ha especificado. Puede realizar cambios o dejarlo tal como aparece.
Descripción. Agregue una descripción para la aplicación, como Con fines de prueba de la nueva
interfaz unificada de nuestra solución.
3. Seleccione Usar solución existente para crear la aplicación y, a continuación seleccione Siguiente.
4. En el lista Seleccionar solución, seleccione Solución predeterminada, en la lista Seleccionar mapa del
sitio, seleccione Mapa del sitio y luego seleccione Hecho.

5. El Diseñador de aplicaciones se abre, mostrando todos los componentes de la aplicación que estaban en la
solución predeterminada. Seleccione Publish.
6. Después de que el proceso de publicación se complete, seleccione Reproducir.
Una nueva ventana se abre en el explorador con la nueva aplicación basada en modelo que contiene todas las
entidades, mapa de sitio y personalizaciones de mapa del sitio que estaban en su aplicación predeterminada de
Dynamics 365.

Recuerde que cuando vuelva a la pestaña del explorador con el área Soluciones del portal del creador de
PowerApps, la nueva aplicación basada en modelo y una extensión de cliente del mapa del sitio con nombre
similar forman parte de la solución que ha creado.
En este paso ha creado una nueva aplicación basada en modelo en una solución, que puede importar en sus
entornos de prueba o de evaluación. Puede comenzar ahora a experimentar la nueva aplicación, pero antes de ello,
en el siguiente paso configurará un par de ajustes para la nueva aplicación. Si hace esto podrá compartirla con
otros usuarios.
Configurar las propiedades de la aplicación
Las tareas necesarias para configurar las propiedades de la aplicación basada en modelo son:
Asignar roles de usuario a la nueva aplicación para permitir a usuarios no administradores el acceso para usar
la aplicación.
Personalizar una dirección URL descriptiva para que los usuarios pueden compartir, incluir en favoritos o
recordar fácilmente un acceso directo a la nueva aplicación.
1. Navegue a dirección URL del entorno URL/aplicaciones. La dirección URL será similar a esto:
https://YourEnvironment.crm.dynamics.com/apps. Al hacerlo se abre una lista de todas las aplicaciones del
entorno.
2. Busque la nueva aplicación basada en modelo que ha creado.
3. En la ventana de la aplicación, seleccione los puntos suspensivos y después seleccione Administrar roles.

4. El área de roles disponibles aparece en el panel derecho. Seleccione los roles según sea necesario para dar
acceso a los usuarios no administradores a la aplicación.

IMPORTANT
Asegúrese de que se concede a todos los usuarios al menos un rol de seguridad que contenga el acceso de Lectura
al privilegio Aplicación basada en modelo. Este privilegio se puede encontrar en la pestaña Personalización del rol
de seguridad. Los usuarios sin este privilegio reciben un error al abrir cualquier aplicación basada en modelo. Observe
que los roles de seguridad Administrador del sistema y Personalizador del sistema ya tienen este privilegio habilitado.
5. Opcionalmente, en el panel Administrar roles puede expandir el Sufijo de la URL de aplicación para
personalizar la dirección URL descriptiva para la aplicación basada en modelo. Tenga en cuenta que puede
especificar casi todo. Por ejemplo, escriba nuevo para que la vista previa muestre la dirección URL
https://YourEnvironment.crm.dynamics.com/apps/new.
Esta se convierte en la dirección URL descriptiva para usar y compartir para que los usuarios puedan iniciar
directamente en la experiencia de la interfaz unificada. Los usuarios pueden marcar como favorito este
vínculo para su comodidad.
6. Seleccione Guardar.
Ahora los usuarios con el rol adecuado pueden ver la nueva aplicación en la lista de aplicaciones desplegable de
Dynamics 365 o en la página principal de Dynamics 365 (https://home.dynamics.com).

Puesto que el modo Usar solo la interfaz unificada está definida como Activada, cuando los usuarios
naveguen a la dirección URL raíz del entorno, seguirán aterrizando en la aplicación Dynamics 365 –
personalizados predeterminada como antes. Esto es lo esperado si desea continuar admitiendo aplicaciones del
cliente web heredadas existentes mientras prueba y trabaja en las aplicaciones de la interfaz unificada.

Compare la nueva aplicación con la aplicación de Dynamics 365


predeterminada
Ahora está listo para iniciar la aplicación. Puede comparar la nueva aplicación de la interfaz unificada con la
aplicación personalizada de Dynamics 365 usando los mismos datos, los roles de usuario, reglas de negocio, flujos
de trabajo, complementos, etc., porque se encuentran en el mismo entorno. Esto le permite educar a la
organización para que sepan que todos los principales básicos siguen ahí y, a la vez, comenzar a explorar las
nuevas mejoras de la interfaz unificada.

TIP
Si desea mostrar las aplicaciones lado a lado en un monitor, puede presionar las teclas Windows y flecha izquierda (o la tecla
de flecha derecha) a la vez para dividir las ventanas del explorador en el mismo monitor.

NOTE
Si sigue creando personalizaciones en el mapa del sitio predeterminado, como cambios en la navegación o personalizaciones
más profundas de la cinta de opciones para botones y acciones, deberá repetir el proceso creando otra aplicación basada en
modelo o efectuar las mismas personalizaciones en el nuevo mapa del sitio relacionado con su aplicación basada en modelo.

Validar la nueva aplicación


Con su aplicación mostrando la interfaz unificada, puede empezar a validar la aplicación, procesos y
personalizaciones para identificar qué apariencia tendrá la transición. Se recomienda probar todos los casos de
uso, pero puede empezar con los más críticos o agruparlos en patrones lógicos de diseño. Puesto que la interfaz
unificada se basa en diseño dinámico, se recomienda realizar siempre pruebas con distintos dispositivos que
tienen diferentes resoluciones de pantalla. Al probar la aplicación podrá comprobar que las personalizaciones son
compatibles con la interfaz unificada y si existen características que necesiten un rediseño o les falta funcionalidad.

IMPORTANT
La versión actual de Common Data Service y aplicaciones basadas en modelo en Dynamics 365 incluye aún varias
características obsoletas. Debe comprobar si la aplicación tiene características obsoletas y reemplazarlas según sea necesario
con nuevas capacidades. Más información: Próximos cambios importantes (funciones obsoletas)

TIP
La herramienta Comprobador de PowerApps ayuda a comprobar la calidad de los componentes de la solución. Más
información: Use el comprobador de soluciones para validar sus aplicaciones basadas en modelos en PowerApps

Pasos siguientes
En función de sus hallazgos, el equipo o el asociado de implementación puede estimar la cantidad de esfuerzo
necesario para realizar la transición de su aplicación en la interfaz unificada y también identificar mejoras
potenciales en la facilidad de uso. Con muchas características y capacidades nuevas disponibles en la interfaz
unificada hay oportunidad para aumentar el valor de los usuarios de la aplicación.
La transición a la interfaz unificada es una gran oportunidad para crear una interfaz de usuario moderna y revisar
los procesos existentes para comprobar que siguen siendo válidos o si necesitan mejoras. Este es también un buen
momento para considerar si su aplicación refleja los requisitos empresariales y si la aplicación existente se puede
extender a diversas aplicaciones para los distintos equipos y roles. Más información: Diseñar aplicaciones basadas
en modelo mediante el diseñador de aplicaciones
Vea también
Cuaderno de estrategias de la interfaz unificada
Aproximación a la experiencia de usuario y transición a la interfaz unificada
Acerca de la interfaz unificada
¿Qué son las aplicaciones controladas por modelos en PowerApps?
Actualizar aplicaciones a la interfaz unificada
Configurar paneles de experiencia interactiva de aplicaciones controladas por modelos
Usar controles personalizados para visualizaciones de datos de aplicaciones controladas por modelos
Información general sobre PowerApps component framework
Interfaz unificada para todos
Cuaderno de estrategias de la interfaz unificada
25/11/2019 • 2 minutes to read • Edit Online

Este cuaderno de estrategias está diseñado para ayudar a clientes, partners y roles de campo de Microsoft a
planear y ejecutar transiciones desde el cliente web heredado a la interfaz unificada.
En resumen, los documentos del cuaderno de estrategias de la interfaz unificada le ayudarán a:
Comprender la interfaz unificada.
Comprender el proceso de transición.
Desarrollar una estrategia para discusiones y la transición.
Garantizar una transición sin complicaciones.
Administrar con efectividad las preguntas y las objeciones potenciales de los usuarios.
Buscar recursos en apoyo del proceso.

VÍNCULO DE DESCARGA TIPO DE DOCUMENTO

Información general del cuaderno de estrategias de la interfaz PDF


unificada

Capítulo 1: Iniciar PowerPoint

Capítulo 2: Explorar PowerPoint

Capítulo 3: Transición PowerPoint

Capítulo 4: Optimizar PowerPoint


Aproximación a la experiencia de usuario y transición
a la interfaz unificada
25/11/2019 • 2 minutes to read • Edit Online

Estas notas del producto orientadas al negocio describen el planeamiento, la gobernanza y los principios de
administración que se deben considerar al abordar un cambio en la experiencia de usuario en una aplicación
basada en modelo en la plataforma PowerApps. Estas notas del producto se centran específicamente en
aplicaciones Dynamics 365 Sales y Dynamics 365 Customer Service, y en la adopción de la interfaz unificada, pero
muchos temas también se pueden aplicar a cualquier actualización de la experiencia del usuario.
En resumen, este manual le ayudará a:
Posicionar la interfaz unificada.
Diseñar prácticas recomendadas de aproximación.
Gobernanza e instrucciones.
Recomendaciones de uso de UX.
Descargar las notas del producto
Lista de comprobación: Transición a la interfaz
unificada
25/11/2019 • 17 minutes to read • Edit Online

Siga los pasos de este artículo para asegurar de que se ha preparado para la transición a la interfaz unificada. La
preparación para la transición a la interfaz unificada dependerá de desea compatibilidad básica o rediseño para
aprovechar al máximo nuevas capacidades. Para obtener información más detallada, consulte Cuaderno de
estrategias de la interfaz unificada y notas del producto de la experiencia de usuario.
Las instrucciones se aplican a las siguientes aplicaciones basadas en modelo en Dynamics 365:
Dynamics 365 Sales
Dynamics 365 Customer Service
Dynamics 365 Field Service
Dynamics 365 Project Service Automation

Ejecute al comprobador de soluciones de PowerApps en las soluciones.


El comprobador de soluciones de PowerApps realiza una completa verificación de análisis estático de sus
soluciones con un conjunto de reglas de prácticas recomendadas para identificar rápidamente patrones
problemáticos. Cuando la comprobación se completa, usted recibe un informe detallado que lista los problemas
identificados, los componentes y el código afectados y vínculos a la documentación que describe cómo solucionar
cada problema.
El comprobador de soluciones analiza estos componentes de la solución:
Complementos Common Data Service
Actividades de flujo de trabajo personalizadas Common Data Service
Recursos web de Common Data Service (HTML y JavaScript)
Configuraciones de Common Data Service, como pasos de mensajes de SDK
Para considerar
Los posibles problemas detectados por el comprobador de soluciones pueden no aplicarse exclusivamente a
la interfaz unificada, tenga en cuenta en qué afectará a transición al revisar los resultados.
Como en cualquier revisión de código automatizada, algunos problemas pueden ser falsas alarmas y no
significan que su aplicación no se ejecutará en interfaz unificada.
La lógica ejecutada en el lado servidor, como complementos, actividades personalizadas de flujo de trabajo,
y la configuración de los pasos de mensajes del SDK no debería afectar a la interfaz de usuario por tanto no
debería afectar a la transición a la interfaz unificada.
Aunque todos los problemas no estén asociados directamente con la interfaz unificada, se recomienda
dedicar tiempo a revisarlos para mejorar el estado general de la aplicación.

Comprobar la compatibilidad de soluciones de terceros con la interfaz


unificada
Antes de realizar la transición a la interfaz unificada, es importante asegurarse de que cualquier solución de
terceros que se usa en su aplicación funcione en interfaz unificada.
Si ha instalado complementos ISV (fabricante independiente de software) a través, de AppSource
compruebe si las actualizaciones estén disponibles en el Centro de administración de Power Platform
seleccionando Entornos > [environment_name] > Administrar soluciones.
Si usa soluciones de terceros que se proporcionaron fuera de AppSource, póngase en contacto con el
proveedor (partner o ISV ) para obtener una nueva versión que actualice las aplicaciones a la interfaz
unificada.

NOTE
Si no hay planes de que sus soluciones de terceros se actualicen a una versión compatible con la interfaz unificada, es
importante identificar una ruta de acceso para reemplazar estas características con las capacidades nativas de la plataforma o
soluciones alternativas compatibles.

Identificar sustituciones de código y características de la API cliente


obsoleta
En función de las salidas del Comprobador de soluciones de PowerApps y la información contenida en
Próximos cambios importantes (funciones obsoletas) en API y características de clientes obsoletas, debe
comprender bien las personalizaciones y características que deben corregirse o ser reemplazadas en el proyecto de
la interfaz unificada.
Estas son algunas de las áreas más comunes que requieren atención:
API de cliente: Se documentan los métodos recomendados de sustitución aquí.
Diálogos de proceso: Las sustituciones recomendadas para diálogos se documentan aquí.
Flujos de tareas: Considere el uso de Flujos de proceso de negocio para reemplazar los flujos de tarea.
Programación de servicios: Considere el uso de Universal Resource Scheduling para reemplazar la
programación de servicios heredada.

NOTE
Puede que también considere reemplazar Dynamics 365 for Outlook (complemento COM) con el ligero Dynamics 365 App
for Outlook.

Pruebe su aplicación en unificada interfaz


Una de las formas más fáciles de probar la aplicación en interfaz unificada es activar la opción Habilitar la
interfaz unificada solo en una copia del entorno de producción. Una vez habilitada la interfaz unificada, deberá
poder tener acceso a la aplicación mediante la aplicación Dynamics 365 – personalizado y probar los casos de
uso relevantes al contexto.
Probar los escenarios de negocio y técnicos
Céntrese en lo que podría verse afectado:
Procesos de negocio como flujos de proceso de negocio, reglas de negocio
Personalizaciones como formularios, vistas, botones de la barra de comandos, recursos web, y gráficos
TIP
Cuestione la experiencia del usuario al mismo tiempo que realiza estas pruebas iniciales: ¿resulta todos significativo y agrega
valor? ¿Qué se debería quitar/mejorar/agregar? Por ejemplo, ¿es relevante la lista actual de vistas? ¿O se fuerzan a mis
usuarios a crear sus propias vistas?

Identificar lagunas
Cualquier regresión potencial que no detectó el comprobador de soluciones y actualizaciones de soluciones
de terceros.
Puntos de dificultad de usuario que pueden llevar a optimizaciones (como nueva representación de
formularios reorganizando secciones y pestañas) o formación específica.
Cualquier otra dependencia del cliente web heredado como el uso del complemento COM de Outlook
heredado en vez del ligero Dynamics 365 App for Outlook.

Definir estrategia y configuración de la aplicación


En lugar de usar la aplicación Dynamics 365 – personalizada, que no está optimizada para la interfaz unificada
sino que más bien se ejecuta en modo de compatibilidad, se recomienda aprovechar las aplicaciones de primera
parte de Microsoft o crear sus propias aplicaciones.
Las aplicaciones de primera parte de Microsoft Dynamics 365 que ya se han optimizado para la interfaz unificada
son las siguientes:
Centro de ventas Dynamics 365
Centro de servicio al cliente de Dynamics 365
Dynamics 365 Marketing
Dynamics 365 Field Service (versión 8.x y posterior)
Dynamics 365 Project Service Automation (versión 3.x y posterior)
¿Qué son las aplicaciones basadas en modelo?
Las aplicaciones basadas en modelo son un tipo de aplicación que puede crear mediante PowerApps y que le
ayuda a proporcionar experiencia adaptada a los usuarios en función del rol en la organización. Por ejemplo, un
comercial puede tener una experiencia completamente diferente que un representante de servicio al cliente con
distintas aplicaciones basadas en modelo aunque usan datos del mismo entorno. Se pueden crear varias
aplicaciones basadas en modelo en un entorno de Common Data Service. Más información: ¿Qué son las
aplicaciones basadas en modelo?
Las aplicaciones de primera parte de Dynamics 365 que aparecen en la lista anterior son ejemplos de aplicaciones
basadas en modelo.
¿Cómo definir la estrategia de la aplicación?
Debe plantearse las preguntas siguientes:
1. ¿Puede que dividir usuarios en varios grupos con procesos de negocio específicos?
2. ¿Estos grupos tienen distintos requisitos de lo que deben ver y hacer?
3. ¿Tiene dificultades en tener diferentes experiencias de usuario sin usar aplicaciones?
Si ha respondido ”Sí” a estas preguntas, considere tener varias aplicaciones.
Esta es la oportunidad de repensar la experiencia en el contexto de los procesos de negocio para cada grupo o rol.
¿Aplicaciones predefinidas (por ejemplo, Centro de ventas) o aplicaciones personalizadas?
Depende de lo adaptada que desea que sea la experiencia.
Si tiene pocas personalizaciones o desea beneficiarse de actualizaciones de aplicaciones de primera parte,
considere el uso de aplicaciones nativas.
Si desea más control sobre la experiencia y actualizaciones de aplicaciones y personalizaciones estándar,
cree su propia aplicación.
Una vez que haya definido su estrategia de aplicaciones, ¿cuáles deberían ser los siguientes pasos?
1. Personalice las aplicaciones de destino e incluya sólo lo que necesitarán los usuarios. Menos es mejor.
Reduzca el exceso para permitir a los usuarios trabajar eficazmente.
2. Disocie los roles de seguridad de aplicaciones no usadas.

Revise la configuración de aplicaciones y los conceptos básicos de la


experiencia de usuario
Configuración de la aplicación
Incluya todas las entidades requeridas en la aplicación, incluso si no están en el mapa del sitio.
Proporcione el privilegio Lectura para Aplicación basada en modelo en la pestaña Personalización del
cuadro Rol de seguridad.
Habilite el modo Solo interfaz unificada si los usuarios no necesitan usar el cliente web heredado. Puede
seguir teniendo acceso a características de administración seleccionando Configuración > Configuración
avanzada.
Crear una dirección URL de aplicaciones más simple Por ejemplo:
https://*.crm.dynamics.com/apps/MyApp*
Intente limitar el número de aplicaciones a las que un usuario tiene acceso.

TIP
Cuando Usar interfaz unificada solo se ajusta como Sí y cuando los usuarios solo tienen acceso a una aplicación, se
les redirige automáticamente a la aplicación cuando tienen acceso a la dirección URL de la raíz
(https://*.crm.dynamics.com)*

Optimizar navegación (mapa del sitio )


Defina un área principal con las subáreas más usadas (panel, entidades, etc.) organizadas en grupos
Cree una o varias áreas adicionales para las características menos usadas (configuración, valores, etc.). La
idea es ayudar a los usuarios centrarse solo en lo que es importante para realizar su trabajo.
Actualizar iconos
La transición a la interfaz unificada es una buena posibilidad para actualizar iconos.
Recomendamos el formato SVG, ya que se representa bien independientemente de la resolución de
pantalla.
TIP
Ejemplo de formato de icono SVG:
Ancho y alto: 16px; Relleno: 0px; Fondo: transparente; Color de icono: #FF000000
Para evitar problemas de representación, abra el archivo SVG con un editor (por ejemplo, Bloc de notas) y quite el
relleno="#000000"

Enriquezca la aplicación con las características exclusivas de la interfaz


unificada
Cree una Página de bienvenida que los usuarios vean a cuando tienen acceso a la aplicación. Ésta es una
buena oportunidad de guiar a los usuarios en los primeros pasos.
Utilice controles personalizados existentes para mejorar la utilidad de la mayoría de los tipos de campos,
especialmente en el móvil. Por ejemplo, reemplace una calificación de campo de 0 a 5 con estrellas, sustituya
una vista de citas con una vista de calendario, sustituya una vista de subcuadrícula con formularios de
tarjeta.
Aproveche Paneles de referencia en los formularios para empaquetar varias vistas, vistas rápidas y la
característica de búsqueda de KB en un solo lugar.
Aproveche el PowerApps Component Framework para agregar aún más controles personalizados. Puede
obtener algunos de la comunidad o de partners e ISV.
Inserte aplicaciones de lienzo en los formularios para ampliar fácilmente su aplicación. La extensión con
poco o ningún código de su aplicación sin necesidad de desarrollar recursos web HTML/JS personalizados.
Inserte informes y ventanas de Power BI en formularios: consolide datos a través de varios sistemas en una
vista única.
Considere aprovechar Paneles interactivos para configurar un área de trabajo integral que permita el
filtrado global a través de los componentes del panel.
Configure Tareas guiadas y paneles de ayuda personalizados para que los usuarios obtengan
rápidamente ayuda e instrucciones.

Realice pruebas de aceptación de usuario


Es muy importante que sus aplicaciones, escenarios empresariales, y escenarios técnicas sean probados por los
usuarios profesionales en interfaz unificada en condiciones que sean similares al entorno de producción. Estos
usuarios pueden actuar como partidarios de la empresa para ayudar a escalar conocimiento a través del negocio.
La prueba ayudará a identificar los elementos restantes que se deben abordar antes de realizar la transición de
todos los usuarios a la interfaz unificada.

Actualizar materiales de aprendizaje de usuarios


Lleve a cabo una revisión de los materiales de aprendizaje existentes y planificados para garantizar que tienen las
últimas capturas de pantalla y reflejar los cambios que haya realizado en el flujo de usuario.

Compruebe la fecha de transición


El 1 de octubre de 2020 el cliente web heredado dejará de estar disponible. Asegúrese de migrar por adelantado
para asegurarse de que hay tiempo para posibles problemas que se deban abordar.
Preguntas más frecuentes: Transición a interfaz
unificada
25/11/2019 • 10 minutes to read • Edit Online

En este tema se proporcionan respuestas a las preguntas más comunes sobre el proceso de transición para mover
usuarios del cliente web heredado a la interfaz unificada.
¿Dónde puedo ir para ver las fechas de transición que se han asignado a mis entornos?
Use el portal de transición automática para administrar la fecha de transición de su entorno:
https://runone.powerappsportals.com.
¿Cómo accedo al portal?
Haga lo siguiente:
1. Visite https://runone.powerappsportals.com.
2. Inicie sesión con las credenciales de administración del inquilino que desea administrar.
3. Seleccione Mis entornos, y revise todos los entornos que tienen una fecha de destino asignada.
Veo que mi entorno tiene una fecha para transición automática. ¿Puedo cambiar esta fecha?
Sí, esto es posible si tiene el rol Administrador global o Administrador de servicio para el inquilino. Para
cambiar la fecha, seleccione el icono desplegable junto al entorno y vea el registro. Los roles de administración de
inquilinos podrán enviar una solicitud de excepción para una fecha anterior o posterior de transición.
Por una fecha anterior de transición, actualice la fecha existente a su opción preferida en la lista. Esto no
requiere aprobación. También puede cambiar manualmente si nuestras fechas no le resultan convenientes.
Por una fecha de transición posterior, puede enviar una solicitud de excepción. Las fechas sugeridas estarán
disponibles en el cuadro desplegable. Una vez aprobada, la fecha se actualizará en el portal en consecuencia.
Puede solicitar un total de dos excepciones por entorno. Las excepciones se conceden en función de la justificación
de negocio además de la fecha propuesta seleccionada. La fecha se actualizará en el portal una vez confirmada.

NOTE
Si la transición programada es en 48 horas, no podrá cambiar la fecha. Asimismo, no puede solicitar una fecha después del 1
de octubre de 2020 ya que el cliente web heredado ya no estará disponible.

La fecha de transición automática es en 48 horas y no puedo cambiar la fecha en el portal. ¿Cómo puedo impedir
que se realice la transición?
La capacidad para cambiar la fecha de transición para un entorno está disponible solo hasta 48 horas antes de la
transición. Para detener el proceso después de este período, plantee un caso de soporte técnico.

NOTE
No podemos garantizar que la transición pueda ser detenida si la solicitud se realiza después de que la fecha se haya
bloqueado en el portal (48 horas o menos).

Tengo entornos sin una fecha de transición automática de destino. ¿Puedo actualizar estos para incluir una fecha?
Sí, si tiene Administrador global o Administrador de servicio para el inquilino, seleccione el entorno, envíe una
solicitud de excepción y actualice con el plazo de tiempo propuesto con la lista de fecha de destino.
Actualizaremos el portal con la fecha para confirmar. También se enviarán correos electrónicos de notificación a los
administradores de inquilinos globales cuando se aproxime la fecha de transición. Esto seguirá el procedimiento
restante estándar detallado en este documento.
¿Existe una lista de comprobación recomendada que debo ejecutar antes de la transición?
Consulte el contenido de soporte técnico disponible en el sitio de la comunidad. También tenemos una lista de
comprobación de la transición para ayudarle a planear eficazmente. Revísela cuidadosamente para asegurarse de
que está de acuerdo con la transición a la interfaz unificada.
Mi entorno ha realizado la transición, pero estoy encontrando problemas de bloqueo para mis usuarios y deseo
volver al cliente web heredado. ¿Esto es posible?
Sí, aún podrá volver al cliente web heredado en un plazo de hasta 10 días después de la transición. Puede realizar
el cambio manualmente durante los primeros 4 días o después, presentar una solicitud de soporte técnico en canal
habitual, ya que el cambio manual se deshabilitará.

NOTE
Los 10 días deberán ser antes de 1 de octubre de 2020 ya que el cliente web heredado ya no estará disponible a partir de
esa fecha.

Quiero realizar la transición después del 1 de octubre de 2020. ¿Es posible eso?
El cliente web heredado no estará disponible a partir del 1 de octubre de 2020. No podemos retrasar la transición
más allá de esa fecha.
Si encuentra elementos de bloqueo, regístrelos mediante el proceso de soporte estándar cuanto antes.
¿Cuál es el procedimiento de aviso estándar en este proceso?
Microsoft enviará la comunicación siguiente:
Mensaje inicial para cada entorno que tiene una fecha de transición asignada
Mensaje de recordatorio 2 días antes de que las fechas se bloqueen en el portal
El aviso final para indicar que la fecha de transición está bloqueada y seguir adelante.
Mensaje de cierre por confirmar el éxito (o si se ha producido un problema)
Los mensajes se pueden ver con los canales siguientes:
Centro de mensajes en el inquilino de Microsoft 365. Suele ser visible para roles como administrador global,
administrador de servicios, lector de mensajes de servicio.
Correo electrónico directo. Los correos electrónicos se envían únicamente al rol de administrador del sistema
para el entorno específico en cuestión, o las direcciones de correo electrónico que se hayan agregado a la
pestaña “Notificación” en el portal de administración de entorno.

NOTE
Recibirá un mensaje de correo electrónico para cada entorno donde su cuenta de usuario tenga el rol de administrador del
sistema.

He solicitado una fecha para posponer, pero sigo recibiendo correos electrónicos y el Centro de mensajes
publica que mi entorno está establecido para transición. ¿Debería preocuparme?
Nuestra primera recomienda es consultar el portal de transición ( https://runone.powerappsportals.com/) ya que
ésta será única fuente fiable para todos sus entornos. Si se actualiza la fecha, es muy probable que nuestro sistema
de comunicación envíe el mensaje antes de que actualicemos la lista de comunicaciones.
Si la fecha en el portal no se actualiza con la nueva fecha, presente una solicitud de soporte técnico siguiendo el
procedimiento estándar.
Si ya tengo un entorno que ha realizado la transición a la interfaz unificada, ¿podré volver al cliente web
heredado manualmente?
Si el entorno transición ha realizado la transición hace al menos 4 días, intentaremos deshabilitar el cambio manual
al antiguo cliente web.
Si encuentra esta opción se ha deshabilitado y tiene necesidad de volver, presente una solicitud de soporte técnico
en el canal habitual para su evaluación.
¿Hay un día y una hora específicos en que ocurrirán las transiciones automáticas?
No anticipamos tiempos de inactividad al crear esta transición. Sin embargo, solo realizaremos una transición
automática el viernes, y siguiendo las mismas escala de tiempo de mantenimiento que se indican en nuestras
directivas y comunicaciones estándar. Más información: Escala de tiempo de mantenimiento
Accesibilidad en PowerApps, diseñador de
aplicaciones, diseñador del mapa del sitio y página
Mis aplicaciones
25/11/2019 • 7 minutes to read • Edit Online

Microsoft se compromete a hacer que sus productos y servicios sean más fáciles de utilizar para todos los usuarios.
Más información: : Accesibilidad de Microsoft
En este tema se describen las características de accesiblidad disponibles con aplicaciones basadas en modelos.

Métodos abreviados de teclado


PowerApps ofrece métodos abreviados de teclado para resolver los problemas a los que se enfrentan las personas
con destreza manual limitada o discapacidad motriz.

PÁGINA MIS APLICACIONES

Hasta Teclas de método abreviado Teclas de método abreviado (Mac)


(Windows)

Crear una nueva aplicación. Alt + N Opc + N

Abra el menú Más acciones en la Alt + M Opc + N


ventana seleccionada.

DISEÑADOR DE APLICACIONES Y
DISEÑADOR DEL MAPA DEL SITIO

Hasta Teclas de método abreviado Teclas de método abreviado (Mac)


(Windows)

Ir a la siguiente sección o a un Ctrl + F6 Cmd + F6


componente principal.

Vaya a la sección o componente Mayús + Ctrl + F6 Mayús + Cmd + F6


principal anterior.

Comando Guardar. Ctrl + S Cmd + S

Comando Guardar y cerrar. Ctrl + Alt + S Cmd + Opc + S

Comando Validar. Ctrl + Alt + V Cmd + Opc + V

Comando Publicar. Ctrl + Alt + P Cmd + Opc + P

Comando Cerrar. Ctrl + Q Cmd + Q

Agregar. Mayús + N Mayús +


DISEÑADOR DE APLICACIONES Y
DISEÑADOR DEL MAPA DEL SITIO

Editar. Mayús+ E Mayús+ E

Eliminar. Mayús + R Mayús + R

Buscar en el lienzo. Ctrl + Mayús + F Cmd + Mayús + F

Agregar componentes. Alt + Mayús + C Opc + Mayús + C

Agregar propiedades. Alt + Mayús + P Opc + Mayús + P

Ir a la pestaña requerida. Alt + Mayús + R Opc + Mayús + R

Menú Agregar Ctrl +Alt +N Cmd + Opc +N

Clonar un componente del diseñador de Ctrl + C Cmd + C


aplicaciones.

Eliminar. Tecla Eliminar Tecla Eliminar

Guardar. Ctrl + S Cmd + S

Guardar y cerrar. Ctrl + Alt + S Cmd + Opc + S

Copiar un componente del mapa de Ctrl + C Cmd + C


sitio en el portapapeles.

Copiar un componente de mapa de sitio Ctrl + X Cmd + X


en el portapapeles para pegarlo en un
sitio diferente del mapa de sitio.

Al pegar el componente, la instancia


original del componente se elimina del
mapa de sitio.

Pegar el contenido del portapapeles en Ctrl + V Cmd + V


el mapa del sitio.

Expandir y mover el enfoque al área de Alt + Mayús + N Opt + Mayús + N


notificación en el diseñador de
aplicaciones.

Contraer el área de notificación Esc esc


expandida en el diseñador de
aplicaciones.

Navegación del teclado


También admitimos moverse por el diseñador de aplicaciones, el diseñador del mapa del sitio, y la página Mis
aplicaciones con el teclado, de modo los usuarios que no usan un mouse puedan usar el teclado para desplazarse y
completar acciones.
PARA PRESIONAR

Acceder a la siguiente parada de pestaña en el orden de Ficha


pestañas definido (que es de izquierda a derecha en los
idiomas LTR y de derecha a izquierda en los idiomas RTL).

Acceder a la parada de pestaña anterior según el orden de las Mayús+Tab


pestañas.

Acceder al siguiente elemento en una lista o menú o a una Teclas de flecha hacia abajo
función de interfaz de usuario que tenga varias opciones.

O bien

Moverse verticalmente a la siguiente ventana.

Acceder al siguiente elemento en una lista o menú o a una Flecha arriba


función de interfaz de usuario que tenga varias opciones.

O bien

Moverse verticalmente a la ventana anterior.

Moverse horizontalmente a la siguiente ventana. Flecha derecha

Moverse horizontalmente a la ventana anterior. Flecha izquierda

Expande un control contraíble. Flecha hacia la derecha, Intro o barra espaciadora

Contraer un control expandido susceptible de ser contraído. Flecha hacia la izquierda, Intro o barra espaciadora

Realizar una acción como seleccionar una opción de botones Barra espaciadora
de radio, hacer clic en un enlace o seleccionar una casilla de
verificación.

Activar una acción de la barra de comandos o confirmar la Entrar


adición de un componente.

Cerrar una alerta, cuadro de diálogo o menú o realizar una Esc


cancelación.

Compatibilidad con el lector de pantalla


Las personas con discapacidades pueden confiar en el uso de tecnología de asistencia (AT) como los lectores de
pantalla o diversos dispositivos de entrada alternativos para interactuar con el diseñador de aplicaciones, el
diseñador del mapa del sitio o la página Mis aplicaciones.
Esta es la matriz de compatibilidad.

EXPLORADOR JAWS NARRADOR VOZ EN OFF

Internet Explorer 11 Sí Sí No

Google Chrome Sí No No
EXPLORADOR JAWS NARRADOR VOZ EN OFF

Firefox Sí No No

Safari No No Sí

Información de accesibilidad para los exploradores


Para obtener información acerca de accesibilidad de su explorador, visite los siguientes sitios web:
Características de accesibilidad de Windows
Características de accesibilidad de Firefox
Características de accesibilidad de Safari
Documentación técnica sobre la accesibilidad en Google Chrome

Vea también
Uso de métodos abreviados de teclado en PowerApps
Personalización de Dynamics 365 App for Outlook
25/11/2019 • 2 minutes to read • Edit Online

Personalice Dynamics 365 App for Outlook para adaptarla a las necesidades de su organización.
Para obtener información detallada sobre cómo personalizar la aplicación para Outlook, consulte Personalizar la
aplicación para Outlook

NOTE
Para poder personalizar la aplicación para Outlook, debe instalar la solución y después implementarla en el entorno.

1. Para instalar la solución, vaya a Instalar Microsoft Dynamics 365 App for Outlook, y luego elija
OBTENERLA AHORA y seguir los pasos para seleccionar el entorno para instalarla.

2. Para implementar la aplicación, consulte Implementar Dynamics 365 App for Outlook.
Vea también
Uso de Dynamics 365 App for Outlook
Manual para desarrolladores de aplicaciones basadas
en modelos
25/11/2019 • 2 minutes to read • Edit Online

PowerApps proporciona a usuarios, empresas, partners, fabricantes independientes de software (ISV ) e


integradores de sistemas (SI) una plataforma eficaz para crear aplicaciones de línea de negocio. La nueva adición a
PowerApps en esta versión son las aplicaciones basadas en modelos creadas con el nuevo Common Data Service.
Common Data Service ahora contiene la funcionalidad básica de las aplicaciones. Con las aplicaciones basadas en
modelos puede crear aplicaciones que usan las mismas capacidades de extensibilidad que esas aplicaciones.
Las aplicaciones basadas en modelos son básicamente un enfoque centrado en los componentes sin código o con
poco código para el desarrollo de aplicaciones. Los programadores aportan valor ampliando la aplicación. Antes de
empezar a escribir código, empiece por aprender a crear aplicaciones basadas en modelos y qué opciones se
pueden aplicar sin código.

NOTE
Las aplicaciones basadas en modelos se conectan a Common Data Service. Para obtener información sobre cómo pueden
aportar valor los desarrolladores en el nivel de servicio, vea Información general para desarrolladores de aplicaciones sobre
Common Data Service. El contenido de esta sección solo hará referencia a las extensiones que los desarrolladores pueden
crear que se apliquen a la experiencia de los usuarios de aplicaciones basadas en modelos.

Si las aplicaciones de Common Data Service son una novedad para usted, los temas de esta sección proporcionan
información general sobre los conceptos importantes que ayudan a los desarrolladores a empezar a trabajar con
aplicaciones basadas en modelos.
Introducción
Temas relacionados
Conocer los componentes de las aplicaciones basadas en modelos
Crear la primera aplicación basada en modelos
Vea también
PowerApps para desarrolladores
¿Qué son los portales de PowerApps?
25/11/2019 • 2 minutes to read • Edit Online

Los cradores de PowerApps ahora pueden crear un nuevo y eficaz tipo de experiencia: sitios web externos que
permiten a los usuarios fuera de las organizaciones iniciar sesión con una gran variedad de identidades, crear y ver
datos en Common Data Service, o incluso examinar contenido de forma anónima. Las capacidades completas de
Portales de Dynamics 365, proporcionadas anteriormente solo como complemento a las aplicaciones basadas en
modelo en Dynamics 365, están disponibles ahora completamente independientes en PowerApps.
Estas capacidades presentan una experiencia de un extremo a otro mejorada para que los fabricantes creen
rápidamente un sitio web y lo personalicen con páginas, diseño, y contenido. Los fabricantes pueden reusar
diseños a través de plantillas, agregar formularios y vistas para mostrar datos clave de Common Data Service, y
publicar a los usuarios.

NOTE
Algunas experiencias pueden tener problemas conocidos. Estos problemas se mencionan en la sección Problemas conocidos
más adelante en este documento.
Plantillas del portal
25/11/2019 • 5 minutes to read • Edit Online

Según el entorno seleccionado en PowerApps, puede crear un portal de inicio de Common Data Service o un
portal en un entorno que contiene aplicaciones basadas en modelo en Dynamics 365.

NOTE
Los portales existentes y plantillas de portal existentes (Comunidad, Asociado, Autoservicio de empleado, Autoservicio de
cliente) no se admiten completamente en portales de PowerApps Studio y algunos componentes pueden no representarse.
Sin embargo, puede seguir editando el resto de los componentes como de costumbre.

Entorno con Common Data Service


Si selecciona un entorno que contiene Common Data Service, puede crear un portal de inicio de Common Data
Service. El portal de inicio de Common Data Service se suministra con los datos de ejemplo para que pueda
comenzar rápidamente. También tiene las páginas de ejemplo integradas siguientes:
Plantilla de estudio predeterminada
Página con título
Página con vínculos secundarios

Entorno con aplicaciones basadas en modelo en Dynamics 365


Si selecciona un entorno que contiene aplicaciones basadas en modelo en Dynamics 365 (Dynamics 365 Sales,
Dynamics 365 Customer Service, Dynamics 365 Field Service, Dynamics 365 Marketing o Dynamics 365 Project
Service Automation), puede crear los portales siguientes:
Portal de autoservicio de clientes: Un portal de autoservicio de clientes permite a los clientes acceder a
conocimientos de autoservicio y recursos de soporte técnico, ver el progreso de sus casos y enviar
comentarios.
Portal de partners: Un portal de asociados permite que cualquier organización que tenga revendedores,
distribuidores, proveedores o asociados acceda en tiempo real a cada una de las fases de las actividades
compartidas.

NOTE
Los paquetes de Field Service y Project Service deben instalarse en su organización de Dynamics 365 para habilitar
opciones respectivas. Para obtener más información, consulte Integrar Project Service Automation e Integrar Field
Service.

Portal de autoservicio de empleados: Un portal de autoservicio de empleados crea una fuerza laboral
eficaz y bien informada al optimizar las tareas comunes y dotar a todos los empleados de una fuente de
conocimientos definitiva.
Portal de comunidad: Un portal de la comunidad aprovecha las interacciones entre iguales entre los
clientes y los expertos para hacer crecer orgánicamente el catálogo de conocimientos disponibles a partir
de los artículos de Knowledge Base, foros y blogs, además de proporcionar observaciones mediante
comentarios y valoraciones.
Portal en blanco: Crea una página web para compartir datos con usuarios externos e internos. Esta
plantilla se suministra con páginas de ejemplo para empezar rápidamente.

Características de plantillas de portal


La tabla siguiente resume las características asociadas a cada plantilla de portal:

PORTAL DE
PORTAL DE PORTAL DE INICIO
CARACTERÍSTIC AUTOSERVICIO PORTAL DE AUTOSERVICIO PORTAL DE LA PORTAL EN COMMON
A DE CLIENTES ASOCIADOS DE EMPLEADOS COMUNIDAD BLANCO DATA SERVICE

Listo para el • • • • • •
mundo

Compatibilida • • • • • •
d multilingüe

Administració • • • • • •
n del portal

Personalizació • • • • • •
ny
extensibilidad

Temas • • • • • •

Administració • • •
n de
contenido

Administració • • • •
n del
conocimiento

Soporte • • •
técnico/admin
istración de
casos

Foros • • •

Búsqueda por • •
facetas

Administració • •
n de perfiles

Suscribirse a • •
este hilo del
foro

Comentarios • • •

Autenticación •
AD de Azure
PORTAL DE
PORTAL DE PORTAL DE INICIO
CARACTERÍSTIC AUTOSERVICIO PORTAL DE AUTOSERVICIO PORTAL DE LA PORTAL EN COMMON
A DE CLIENTES ASOCIADOS DE EMPLEADOS COMUNIDAD BLANCO DATA SERVICE

Ideas •

Blogs •

Integración de •
Project Service
Automation

Integración de •
Field Service

Incorporación •
de asociados

Base de portal • • • • • •
de

Flujos de • • • • • •
trabajo de
portal

Notificaciones • • • • • •
web

Identidad de • • • • • •
Microsoft

Flujos de • • • • • •
trabajo de
identidad

Formularios • • • • • •
web

Comentarios • • • • • •
Crear un portal de inicio de Common Data Service
25/11/2019 • 12 minutes to read • Edit Online

Con la capacidad de crear un portal en PowerApps, puede crear una página web para usuarios externos e internos
habilitándolos para interactuar con los datos almacenados en Common Data Service.
Estas son algunas ventajas de crear un portal:
Puesto que los datos se almacenan en Common Data Service, no necesita crear una conexión de
PowerApps como lo hace con orígenes de datos como SharePoint, aplicaciones basadas en modelo de
Dynamics 365 o Salesforce. Debe especificar únicamente las entidades que desea mostrar o administrar en
el portal.
Puede diseñar el portal a través de portales de PowerApps Studio WYSIWYG agregando y configurando
componentes en las páginas web.
Puede crear un portal en un nuevo entorno o en su entorno existente.
Si elige crear el portal en un nuevo entorno mediante el vínculo Crear nuevo entorno, los requisitos previos del
portal necesarios como entidades, datos, y una plantilla de portal de inicio se instalan cuando se crea el entorno.
En este método, el portal se aprovisiona en unos minutos.
Si elige crear el portal en un entorno existente sin requisitos previos de portal, los requisitos previos se instalan
primero y después el portal se crea. En este método, el aprovisionamiento del portal puede tardar un tiempo y se
le notificará cuando se aprovisione el portal.
Según el entorno seleccionado en PowerApps, puede crear un portal de inicio de Common Data Service o un
portal en un entorno que contiene aplicaciones basadas en modelo en Dynamics 365.
Más información sobre cómo trabajar con entornos: Trabajar con entornos y Microsoft PowerApps
Más información sobre las plantillas de portal disponibles: Plantillas de portal
Para crear un portal:
1. Inicie sesión en PowerApps.
2. En Crear sus propias aplicaciones, seleccione Portal en blanco.
3. Si el entorno seleccionado no contiene requisitos previos de portal, se muestra un mensaje en la ventana
Portal en blanco que le recomienda que seleccione otro entorno o cree uno.
4. Si elige continuar con el entorno actual, especifique la información necesaria en la ventana como se
menciona en los pasos siguientes. Si elige crear un nuevo entorno, consulte Crear nuevo entorno.
5. En la ventana Portal en blanco, escriba un nombre para el portal y la dirección de la página web, y
seleccione un idioma de la lista desplegable. Cuando esté listo, seleccione Crear.

Tras seleccionar Crear, el portal comenzará a aprovisionarse y el estado de aprovisionamiento se mostrará a


través de notificaciones.
Si ha creado su portal en el entorno que no tiene requisitos previos de portal instalados, el estado de
aprovisionamiento también se muestra en la cuadrícula:
Después de que el portal se aprovisione correctamente, el estado se actualiza y el portal se muestra en la
cuadrícula:

Para editar el portal en portales de PowerApps Studio, consulte Editar un portal.

NOTE
Puede crearse un máximo de cinco portales en un inquilino. Sin embargo, solo puede haber un portal de cada tipo
creado en un entorno.
Si no tiene suficientes privilegios para aprovisionar un portal, se muestra un error. Debe tener el rol de administrador del
sistema de Common Data Service para crear un portal. También debe tener el Modo de acceso establecido como
Lectura-Escritura en Información de licencia de acceso de cliente (CAL) en el registro de usuario.
Si ha adquirido un complemento de portal más antiguo, y desea para aprovisionar un portal con el complemento, debe ir
a la página Centro de administración de Dynamics 365. Más información: Aprovisionar un portal con el complemento
de portal más antiguo
Si ha suministrado un portal con el complemento de portal más antiguo, puede seguir personalizándolo y
administrándolo desde make.powerapps.com.
Aprovisionar portales desde make.powerapps.com no consume los complementos de portal más antiguos. Además,
estos portales no se muestran en la pestaña Aplicaciones en la página Centro de administración de Dynamics 365.
Un portal de inicio de Common Data Service no se puede crear desde la página Centro de administración de
Dynamics 365.
Los portales de PowerApps no están disponibles en la región de Francia.

Crear nuevo entorno


Siga estos pasos al crear un entorno mediante la opción proporcionada en la ventana Portal en blanco.
1. En el panel Nuevo entorno, escriba un nombre para el entorno, y luego seleccione una región y un tipo de
entorno de las listas desplegables. No puede cambiar la región una vez que se crea el entorno. Cuando esté
listo, seleccione Crear entorno.
2. Cuando se crea el entorno, recibirá un mensaje de confirmación en el cuadro de diálogo, y se le pedirá que
cree una base de datos. Seleccione Crear base de datos para permitir el acceso a Common Data Service.

NOTE
El mensaje para crear una base de datos puede no mostrarse automáticamente. En este caso, debe ir al nuevo
entorno y seleccionar la ventana Portal en blanco otra vez.

3. Seleccione la divisa y el idioma de los datos almacenados en la base de datos. No puede cambiar la divisa
ni el idioma una vez que se cree la base de datos. Cuando esté listo, seleccione Crear mi base de datos. La
base de datos se crea con el portal de inicio que le permite comenzar rápidamente con el contenido de
ejemplo cuando se aprovisione el portal.
NOTE
La opción Incluir portal de inicio solo está disponible cuando cree un entorno mediante la opción proporcionada
en la ventana Portal en blanco. Esta opción no está disponible cuando cree un entorno desde el Centro de
administración de PowerApps.

Puede que tarde varios minutos en crear la base de datos en Common Data Service. Una vez que se cree la
base de datos, el nuevo entorno se selecciona en la lista de entornos en la página principal de PowerApps y
se crea la aplicación Administración del portal. Esta aplicación no es el portal real sino una aplicación
complementaria basada en modelo que permite realizar actividades de configuración avanzada. Ahora
puede continuar creando el portal para diseñar la página web externa.

4. Después de crear el entorno y la base de datos, en Crear su propia aplicación, seleccione Portal en
blanco.

NOTE
Si se crea la base de datos y sigue recibiendo el mensaje de crear base de datos, debe actualizar la página principal de
PowerApps antes de seleccionar la ventana Portal en blanco.

Notificaciones de aprovisionamiento del portal


Tras seleccionar Crear, el portal comenzará a aprovisionarse y el estado de aprovisionamiento se mostrará a
través de notificaciones.
Notificación del sistema
Se muestra la notificación siguiente cuando se selecciona Crear para aprovisionar el portal.

Notificaciones en el panel Notificaciones


Una vez que la solicitud de aprovisionamiento se realiza correctamente, las notificaciones siguientes se muestran
en el panel Notificación.
Notificación mostrada para aprovisionamiento en curso

Notificación mostrada para aprovisionamiento completado correctamente

Si el aprovisionamiento del portal produce un error, las notificaciones se muestran de forma similar.
Notificaciones por correo electrónico
Una vez que la solicitud de aprovisionamiento se realiza correctamente, una notificación de correo electrónico
para confirmar se envía al usuario que creó el portal. Además, un correo electrónico se envía al usuario después
de completar el aprovisionamiento del portal.

Deshabilitar creación de portal en un inquilino


Como administrador global, si desea deshabilitar la creación de portal en un inquilino por no administradores,
puede hacerlo habilitando el valor del nivel de inquilino de disablePortalsCreationByNonAdminUsers con
PowerShell. Para ejecutar los cmdlets de PowerShell, debe instalar los componentes necesarios. Para obtener
información sobre instalar módulos necesarios de PowerShell, consulte Instalación.
Después de instalar los módulos, ejecute el comando siguiente en una ventana de PowerShell (ejecute PowerShell
como administrador).

Set-TenantSettings -RequestBody @{ "disablePortalsCreationByNonAdminUsers" = $true }

El administrador son los usuarios que tienen uno de los roles de Azure siguientes:
Administrador global de
Administrador de servicio de Dynamics 365
Administrador de servicios de Power Platform
Los usuarios que no tienen los roles de Azure mencionados se consideran no administradores.
Cuando la creación de portal se deshabilita en un inquilino, los usuarios no administradores verán un error de la
siguiente manera:
Crear un portal en un entorno que contiene
aplicaciones basadas en modelo en Dynamics 365
25/11/2019 • 2 minutes to read • Edit Online

Si selecciona un entorno que contiene aplicaciones basadas en modelo en Dynamics 365 (como Dynamics 365
Sales y Dynamics 365 Customer Service), puede crear los portales mencionados en Plantillas de portal.
1. Inicie sesión en PowerApps.
2. Seleccione Crear en el panel izquierdo e introduzca portal en el campo Plantillas de búsqueda para
mostrar todas las plantillas de portales de Dynamics 365.

3. Seleccione la plantilla de portal necesaria.


4. En la ventana de creación del portal, escriba un nombre para el portal y la dirección de la página web, y
seleccione un idioma de la lista desplegable. Cuando esté listo, seleccione Crear. El proceso de creación es el
mismo que se describe en la sección Creación de un portal de inicio de Common Data Service.

NOTE
Si ha adquirido un complemento de portal más antiguo, y desea para aprovisionar un portal con el complemento, debe ir
a la página Centro de administración de Dynamics 365. Más información: Aprovisionar un portal con el complemento
de portal más antiguo
Si ha suministrado un portal con el complemento de portal más antiguo, puede seguir personalizándolo y
administrándolo desde make.powerapps.com.
Aprovisionar portales desde make.powerapps.com no consume los complementos de portal más antiguos. Además, estos
portales no se muestran en la pestaña Aplicaciones en la página Centro de administración de Dynamics 365.
Un portal de inicio de Common Data Service no se puede crear desde la página Centro de administración de Dynamics
365.
Para deshabilitar la creación de portales en un inquilino, consulte Deshabilitar creación de portales en un inquilino.
Aprovisione un portal con el complemento de portal
más antiguo
25/11/2019 • 11 minutes to read • Edit Online

Si ha adquirido un complemento de portal más antiguo, y desea para aprovisionar un portal con el complemento,
debe ir a la página Centro de administración de Dynamics 365 y aprovisione el portal.

NOTE
Para aprovisionar un portal, se le debe asignar al rol de administrador del sistema del entorno de Common Data Service
seleccionada para el portal. También debe disponer de los permisos necesarios para crear y registrar una aplicación en Azure
AD. Si no tiene los permisos necesarios, póngase en contacto con el Administrador global para actualizar sus permisos o
pida al Administrador global que aprovisione el portal.

Para aprovisionar un portal:


1. Vaya a la página Centro de administración de Dynamics 365 y, a continuación, haga clic en la pestaña
Aplicaciones.
2. Seleccione la fila de la aplicación con el título Complemento de portal y, a continuación, haga clic en
Administrar.
3. En la sección Configuración general, escriba un Nombre del portal. El Nombre ayudará a identificar el
portal y se puede cambiar más adelante.
4. El campo Tipo representa el tipo de suscripción de portal (prueba o producción). Es un campo del sistema,
por lo que no puede modificarlo el usuario. El valor cambia según se trate de una suscripción de prueba o
de pago.
5. Opcionalmente, en la lista Estado de desarrollo del portal, seleccione uno de los siguientes estados de
desarrollo para el portal:
Prototipo
Desarrollo
Probar
UAT
Live

NOTE
Para los portales aprovisionados ya existentes, esta lista desplegable está disponible en la pestaña Detalles de
portal y ningún estado está seleccionado de forma predeterminada.
Esta lista desplegable solo está disponible para los portales de tipo producción.
Este campo se usa en Microsoft para comprender el patrón de este portal y no afecta a ninguna funcionalidad. Si
usa nombres diferentes para el ciclo de vida de desarrollo, seleccione el que está más cerca del propósito. Esto se
puede cambiar más tarde una vez el portal esté aprovisionado.

6. En el campo Dirección URL de portal, escriba el nombre del subdominio que desee para el portal. Puede
usar únicamente caracteres alfanuméricos o guiones (-); otros caracteres no se permiten.
NOTE
Para cambiar la dirección URL de un portal después de su aprovisionamiento, vea Cambiar la dirección URL base
de un portal.
Para vincular su portal a un dominio personalizado, vea Vincular el portal a un dominio personalizado.

7. En la lista desplegable Instancia Dynamics 365 seleccione la instancia con la que quiera vincular el portal.
Esto requiere un rol de administrador del sistema o personalizador del sistema en la instancia que elija para
seleccionarlo.
8. Elija el idioma predeterminado de su portal en la lista desplegable Seleccionar idioma del portal. Los
idiomas disponibles dependerán de los que estén instalados en la instancia.

NOTE
Los datos de ejemplo se proporcionan únicamente en un idioma, por lo que la selección de un idioma
predeterminado también decidirá cómo se traducen los datos de ejemplo. El árabe y el hebreo no se admiten y no
aparecerán en la lista.

9. En la lista desplegable Seleccionar administrador del portal, seleccione el usuario que configurará,
personalizará, y mantendrá el portal. Todos los usuarios que tienen el rol Administrador del sistema en la
organización aparecerán como opciones.
10. En la sección Público del portal, seleccione el tipo de público que visitará el portal nuevo. Esto determina
qué opciones de portales se le ofrecerán. Puede optar por:
Asociado
Portal de autoservicio de clientes
Portal personalizado
Portal de asociados
Project Service de asociados (opcional, requiere soluciones instaladas)
Field Service de asociado (opcional, requiere soluciones instaladas)
Portal de la comunidad
Cliente
Portal de autoservicio de clientes
Portal personalizado
Portal de la comunidad
Empleado
Portal de autoservicio de empleados
11. En la sección Seleccione el portal para implementar, elija qué tipo de portal desea crear. Las opciones
que ve se basan en el público que seleccionó.
12. Seleccione Enviar y acepte las Condiciones de servicio.
Después de aceptar las condiciones de servicio, el portal iniciará el aprovisionamiento. El aprovisionando tarda
normalmente 30 minutos, pero puede tardar unas horas en función de la carga del sistema. El Nombre del portal
en la pestaña Aplicación cambiará a Nombre-Configuración mientras se está aprovisionando. Navegue de vuelta
a la página de administración del portal para comprobar si el aprovisionamiento se ha realizado correctamente.
Después de que se aprovisione el portal, se muestra la página Detalles de portal con los detalles necesarios.
NOTE
Cuando un usuario del portal inicia sesión en el portal por primera vez mediante las credenciales de Azure AD, una página
de consentimiento se muestra a todos los usuarios con independencia del tipo de usuario o de portal.

La tabla siguiente resume las características asociadas a cada opción de portal:

PORTAL DE PORTAL DE
AUTOSERVICIO DE PORTAL DE AUTOSERVICIO DE PORTAL DE LA PORTAL
CARACTERÍSTICA CLIENTES ASOCIADOS EMPLEADOS COMUNIDAD PERSONALIZADO

Listo para el • • • • •
mundo
PORTAL DE PORTAL DE
AUTOSERVICIO DE PORTAL DE AUTOSERVICIO DE PORTAL DE LA PORTAL
CARACTERÍSTICA CLIENTES ASOCIADOS EMPLEADOS COMUNIDAD PERSONALIZADO

Compatibilidad • • • • •
multilingüe

Administración • • • • •
del portal

Personalización y • • • • •
extensibilidad

Temas • • • • •

Administración • • •
de contenido

Administración • • • •
del conocimiento

Soporte • • •
técnico/administr
ación de casos

Foros • • •

Búsqueda por • •
facetas

Administración • •
de perfiles

Suscribirse a este • •
hilo del foro

Comentarios • • •

Autenticación AD •
de Azure

Ideas •

Blogs •

Integración de •
Project Service
Automation

Integración de •
Field Service

Incorporación de •
asociados

Base de portal de • • • • •
PORTAL DE PORTAL DE
AUTOSERVICIO DE PORTAL DE AUTOSERVICIO DE PORTAL DE LA PORTAL
CARACTERÍSTICA CLIENTES ASOCIADOS EMPLEADOS COMUNIDAD PERSONALIZADO

Flujos de trabajo • • • • •
de portal

Notificaciones • • • • •
web

Identidad de • • • • •
Microsoft

Flujos de trabajo • • • • •
de identidad

Formularios web • • • • •

Comentarios • • • • •

Solución de problemas de aprovisionamiento


A veces se crea un error en el proceso de instalación del paquete o de creación de la dirección URL. En estos
casos, se pueden reiniciar los procesos.
Si Nombre-Configuración cambia a Nombre-Error de aprovisionamiento, deberá reiniciar el proceso de
aprovisionamiento.
1. Vaya a la página Aplicaciones y seleccione el portal.
2. Seleccione el botón de corregir etiquetado Administrar.
3. Seleccione una de las siguientes opciones:
Reiniciar aprovisionamiento: Reinicia el proceso de instalación con la configuración que se definió
anteriormente.
Cambiar configuración y reiniciar aprovisionamiento: Le permite cambiar algunos de los
valores antes de reiniciar el proceso de aprovisionamiento.
Si la instalación de paquetes ha fallado, la página de administrador del portal se abrirá sin ningún problema, pero
al navegar a la dirección URL del portal real se mostrará un mensaje Obteniendo configuración. Para confirmar
esto:
1. Vaya a la página Administración de soluciones de la página Centro de administración de Dynamics 365
y compruebe que el estado del paquete es Error al instalar.
2. Si el estado del paquete es Error al instalar, vuelva a intentar la instalación desde la página de solución.
Además, asegúrese de comprobar que un administrador del sistema está instalando la solución con el
idioma predeterminado en Common Data Service establecido como el idioma en el que se debe instalar el
portal.
NOTE
Algunas soluciones tienen requisitos previos para la instalación, por lo que una instalación generará error si los requisitos
previos no se cumplen. Por ejemplo, para instalar Field Service de asociado para un portal de un asociado, las soluciones
Portal de asociados y Field Service deben haber sido instaladas. Si intenta instalar Field Service de asociados primero, la
instalación producirá un error y mostrará un mensaje de error.
Anatomía de portales de PowerApps Studio
25/11/2019 • 2 minutes to read • Edit Online

Puede usar portales de PowerApps Studio para crear y personalizar la página web. Contiene distintas opciones
para agregar y configurar páginas web, componentes, formularios y listas. La anatomía de portales de PowerApps
Studio es la siguiente:

ANOTACIÓN NOMBRE DESCRIPCIÓN

1 Barra de comandos Permite crear una página web, eliminar


un componente, y examinar la página
web que está creando.

2 Toolbelt Permite:
Ver y administrar páginas web
Agregar componentes
Editar plantillas

3 Lienzo Contiene componentes que crean una


página web.

4 Pie de página Muestra el estado de autoguardado y


permite abrir el editor de código fuente.

5 Panel de propiedades Muestra propiedades de la página web


y componentes seleccionados y permite
editarlos según corresponda.
Exploradores web admitidos para portales de
PowerApps Studio.
25/11/2019 • 2 minutes to read • Edit Online

A continuación se indican los exploradores admitidos para portales de PowerApps Studio.

EXPLORADOR SISTEMA OPERATIVO

Google Chrome (versión más reciente) Windows 7 SP1, 8.1 y 10


(recomendado) macOS

Microsoft Edge (versión más reciente) Windows 10


(recomendado)
Crear y administrar páginas web
25/11/2019 • 5 minutes to read • Edit Online

Una página web es un documento que se identifica mediante una dirección URL única en una página web. Es uno
de los objetos básicos de la página web y construye una jerarquía de la página web a través de relaciones primarias
y secundarias a otras páginas web.

NOTE
Si personaliza el portal usando el diseñador de portales de PowerApps, los usuarios del sitio web observarían un impacto en
el rendimiento. Se recomienda realizar los cambios en horas de poca actividad en un portal en directo.

Crear página web


1. Edite el portal para abrirlo en portales de PowerApps Studio.
2. En la barra de comandos, seleccione Nueva página y elija una página Diseños o Diseños fijos.

NOTE
Si crea una página usando Diseños tendrá la flexibilidad para editar la página completa. Diseños fijos contiene las
plantillas de página que se instalan como parte del aprovisionamiento del portal y las plantillas de página
personalizadas creadas mediante la aplicación Administración del portalel.
Para que las páginas se creen con la opción Diseños, se instala una plantilla de páginas Plantilla de estudio
predeterminada.

3. En el panel de propiedades de la derecha de la pantalla, introduzca la siguiente información:


Nombre: Nombre de la página. Este valor también se usa como el título de la página.
Dirección URL parcial: El segmento de dirección URL utilizado para crear la dirección URL de
portal de esta página.
Plantilla: La plantilla de página que se usará para representar esta página en el portal. Si procede,
puede elegir otra plantilla de la lista.
Las páginas web que crea se agregan y su jerarquía se muestra en el panel Páginas. Para ver el panel Páginas,
seleccione Páginas del toolbelt en el lateral izquierdo de la pantalla.
Supongamos que ha creado algunas páginas web para el portal. La jerarquía de páginas es como se indica a
continuación:

El menú principal en el sitio web se crea automáticamente basándose en la jerarquía de las páginas web. Se llama
menú Predeterminado. También puede crear un menú personalizado para mostrar en la página web. Más
información: Agregar un menú personalizado

Si trabaja con un portal creado en un entorno que contiene aplicaciones basadas en modelo en Dynamics 365, y
desea que el menú sea el mismo que la jerarquía de páginas, deberá seleccionar Predeterminado en la lista
Menú de exploración.
Administrar página web
1. Edite el portal para abrirlo en portales de PowerApps Studio.
2. Seleccione Páginas del toolbelt en el lateral izquierdo de la pantalla.
3. Desplácese sobre la página que desea administrar y seleccione el botón Puntos suspensivos (…) para la
página web que desea administrar. Alternativamente puede hacer clic con el botón secundario en la página
que desea administrar.
4. Seleccione la acción requerida en el menú contextual:
Ocultar en menú predeterminado: Oculta la página en el mapa del sitio a través del menú
predeterminado.
Mostrar en menú predeterminado: Muestra la página en el mapa del sitio a través del menú
predeterminado.
Agregar una página secundaria: Agrega una página secundaria a la página seleccionada. La página
secundaria hereda la plantilla de página de la página principal.
Establecer como página principal: Establece la página como página principal. La dirección URL de
la nueva página principal se establece como la raíz de la página web y la dirección URL de la antigua
página se actualiza en consecuencia.
Subir: Sube la página en la jerarquía.
Bajar: Baja la página en la jerarquía.

NOTE
Subir o bajar una página es posible entre las páginas del mismo nivel.

Promover subpágina: Reduce la sangría y convierte la página secundaria en el nivel de la página


anterior de la jerarquía.
Crear subpágina: Aumenta la sangría y convierte la página en secundaria de la página anterior de la
jerarquía.
Eliminar: Eliminación de la página.
Componer una página
25/11/2019 • 19 minutes to read • Edit Online

Después de agregar las páginas web necesarias y administrar su jerarquía en el mapa del sitio, puede agregar
diferentes componentes. El editor de WYSIWYG permite agregar y editar los componentes necesarios en el lienzo
fácilmente. Puede agregar y editar los siguientes componentes en el lienzo:
Secciones
Sección de una columna
Sección de dos columnas
Sección de tres columnas
Componentes del portal
Text
Imagen
IFrame
Formulario
Enumerar
Ruta de navegación

NOTE
Si personaliza el portal usando el diseñador de portales de PowerApps, los usuarios del sitio web observarían un impacto en
el rendimiento. Se recomienda realizar los cambios en horas de poca actividad en un portal en directo.

Usar el editor WYSIWYG


1. Edite el portal para abrirlo en portales de PowerApps Studio.
2. Seleccione la página en la que desee agregar el componente.
3. Seleccione un elemento editable en el lienzo.

NOTE
Los elementos editables están demarcados por un límite.

4. Seleccione Componentes del toolbelt en el lateral izquierdo de la pantalla.


5. Seleccione el componente que desea agregar.
Se agrega el componente seleccionados al lienzo en el elemento editable.
6. Para eliminar un componente, seleccione el componente en el lienzo y después seleccione Eliminar en la
barra de comandos en la parte superior de la página.

Agregar secciones
Las secciones le permiten definir una estructura para la página y organizar los componentes del portal en
consecuencia. Una vez que agregue secciones a la página, puede agregar componentes del portal dentro de las
secciones según el requisito.
1. Edite el portal para abrirlo en portales de PowerApps Studio.
2. Seleccione la página en la que desea agregar una sección.
3. Seleccione un elemento editable en el lienzo.
4. Seleccione Componentes del toolbelt en el lateral izquierdo de la pantalla.
5. En Diseño de sección, seleccione el tipo de sección que se insertará.
6. En el panel de propiedades de la derecha de la pantalla, escriba o seleccione la siguiente información:
Alto mínimo: Escriba la altura mínima de la sección. Si agrega un componente que ocupa más
espacio que la altura especificada, la sección se expandirá para contener el componente. De forma
predeterminada, el alto mínimo es 100 px. También puede introducir la altura en puntos (pt) y
porcentaje (%).
Alineación: Seleccione si el componente en la sección debe estar alineado a la izquierda, el centro o
la derecha.

Fondo: Seleccione si desea tener un color o una imagen como fondo de sección.
Relleno: Seleccione un color para el fondo.
Imagen: Seleccione una imagen de la lista. Si desea cargar una nueva imagen, seleccione
Cargar imagen.

7. Agregue el componente del portal requerido a la sección.


Agregar componentes del portal
Puede agregar los componentes siguientes en una página web.
Texto
Imagen
IFrame
Formulario
Lista
Ruta de navegación
Agregar cuadro de texto
1. Edite el portal para abrirlo en portales de PowerApps Studio.
2. Seleccione la página en la que desee agregar el componente.
3. Seleccione un elemento editable en el lienzo.
4. Seleccione Componentes del toolbelt en el lateral izquierdo de la pantalla.
5. En Componentes del portal, seleccione Texto.
6. Especifique el texto requerido en el cuadro de texto.
7. Para dar formato al texto, seleccione el texto para mostrar las opciones de formato. Modifique el tamaño de
fuente y el estilo según corresponda.

8. En el panel de propiedades de la derecha de la pantalla, seleccione la siguiente información:


Alineación: Seleccione si el texto debe estar alineado a la izquierda, el centro o la derecha.
Color de fuente: Seleccione un color para el texto.
Agregar imagen
1. Edite el portal para abrirlo en portales de PowerApps Studio.
2. Seleccione la página en la que desee agregar el componente.
3. Seleccione un elemento editable en el lienzo.
4. Seleccione Componentes del toolbelt en el lateral izquierdo de la pantalla.
5. En Componentes del portal, seleccione Imagen. El marcador de imagen se agrega al lienzo.
6. En el panel de propiedades de la derecha de la pantalla, introduzca la siguiente información:
Imagen: Seleccione esta opción si desea seleccionar una imagen existente o cargar una nueva. Si
desea seleccionar una imagen cargada anteriormente, elija una imagen de la lista Seleccionar
imagen. Para cargar una nueva imagen, seleccione Cargar imagen. Todas las imágenes cargadas se
incluyen en la biblioteca de imágenes, que se puede seleccionar otra vez a través de la lista
Seleccionar imagen.
NOTE
Puede cargar solo las imágenes de tipo png, svg, jpg, y jpeg con el tamaño máximo de 5 MB.
No puede cargar una imagen con el mismo nombre. Debe modificar el nombre de la imagen para cargarla
de nuevo.

Dirección URL externa: Seleccione esta opción si desea cargar una imagen de una dirección URL
externa. Escriba la dirección URL en el campo Dirección URL externa. Solo se aceptan enlaces
seguros, es decir, https:// es obligatorio. Si tiene imágenes almacenadas en la red de entrega de
contenido, puede proporcionar el vínculo en este campo.

Opciones de formato
Ancho: Escriba el ancho de la imagen.
Alto: Escriba el alto de la imagen.

NOTE
También puede seleccionar la imagen en el lienzo y arrastrar los mangos para cambiar su tamaño.

Agregar un IFrame
1. Edite el portal para abrirlo en portales de PowerApps Studio.
2. Seleccione la página en la que desee agregar el componente.
3. Seleccione un elemento editable en el lienzo.
4. Seleccione Componentes del toolbelt en el lateral izquierdo de la pantalla.
5. En Componentes del portal, seleccione IFrame. El marcador de IFrame se agrega al lienzo.
6. En el panel de propiedades de la derecha de la pantalla, introduzca la siguiente información:
Ancho: Especifique el ancho del IFrame.
Alto: Especifique el alto del IFrame.
Vínculo: Escriba la dirección URL del sitio web que se mostrará en el IFrame. Solo se aceptan
enlaces seguros, es decir, https:// es obligatorio. El valor predeterminado es https://www.bing.com.

NOTE
También puede seleccionar el IFrame en el lienzo y arrastrar los mangos para cambiar su tamaño.

Agregar un formulario
Un formulario es una configuración basada en datos que se utiliza para agregar un formulario para obtener datos
del portal sin necesidad de que un programador emerja el formulario en el portal. Los formularios se crean en
Common Data Service y pueden utilizarse en páginas web en el portal o junto con listas para crear aplicaciones
web completas.
1. Edite el portal para abrirlo en portales de PowerApps Studio.
2. Seleccione la página en la que desee agregar el componente.
3. Seleccione un elemento editable en el lienzo.
4. Seleccione Componentes del toolbelt en el lateral izquierdo de la pantalla.
5. En Componentes del portal, seleccione Formulario.
6. En el panel de propiedades de la derecha de la pantalla, seleccione una de las siguientes opciones:
Crear nuevo: Crear un formulario nuevo.
Usar existente: Usar un formulario existente.
7. Especifique la información o realice la selección para lo siguiente:
Nombre: Nombre del formulario.
Entidad: El nombre de la entidad desde la que se cargará el formulario.
Diseño de formulario: El nombre del formulario de la entidad de destino en Common Data Service
que se va a representar.
Modo: Seleccione una de las siguientes opciones:
Insertar: indica que el formulario debe insertar un nuevo registro tras el envío.
Editar: indica que el formulario deben modificar un registro existente.
Solo lectura: Indica que el formulario debe mostrar el formulario no editable de un registro
existente.

NOTE
La opción predeterminada para los modos Editar y Solo lectura se establece como Nombre de parámetro de
cadena de consulta que pasa como identificador en dirección URL. Para modificar esos valores, necesita abrir la
aplicación Administración del portal y actualice las propiedades de formulario.

En caso de éxito: Seleccione una de las siguientes opciones:


Mostrar mensaje correcto: Requiere un mensaje que se mostrará al usuario si envía
correctamente el formulario. También puede seleccionar Ocultar formulario en caso de
éxito para ocultar el formulario si el envío es correcto.
Redirigir a página web: Redirige al usuario a la página web seleccionada en el portal. Debe
seleccionar una página web de la lista Redirigir a página web.
Redirigir a dirección URL: Redirige al usuario a la dirección URL especificada. Debe escribir
una dirección URL en el campo Redirigir a dirección URL.
Mostrar captcha para usuarios anónimos: Muestra captcha a usuarios anónimos.
Mostrar captcha para usuarios autenticados: Muestra captcha a usuarios autenticados.
Habilitar permisos de entidad: Permisos de entidad que se pueden emplear para el formulario. De
forma predeterminada no está seleccionado. Si se seleccionan, se requieren permisos explícitos para
que cualquier usuario obtenga acceso al formulario. Más información: Permiso de entidad
Agregar lista
Una lista es una configuración basada en datos que usa para agregar una página web que representará una lista de
registros sin necesidad de que un programador muestre la cuadrícula en el portal. Las listas usan Vistas de
Common Data Service para mostrar registros en el portal.
1. Edite el portal para abrirlo en portales de PowerApps Studio.
2. Seleccione la página en la que desee agregar el componente.
3. Seleccione un elemento editable en el lienzo.
4. Seleccione Componentes del toolbelt en el lateral izquierdo de la pantalla.
5. En Componentes del portal, seleccione Lista.
6. En el panel de propiedades de la derecha de la pantalla, seleccione una de las siguientes opciones:
Crear nuevo: Crear una lista nueva.
Usar existente: Usar una lista existente.
7. Especifique la información o realice la selección para lo siguiente:
Nombre: Nombre de la lista.
Entidad: El nombre de la entidad desde la que se cargarán las vistas.
Vistas: La lista de vistas de la entidad de destino que se va a representar. Puede seleccionar varias
vistas para mostrar registros en la lista. La vista seleccionada primero será la vista predeterminada.
Crear registro nuevo: Permite a un usuario crear un registro. Seleccione una página web que
contenga un formulario para crear un nuevo registro.
Ver detalles: Permitir que un usuario vea los detalles. Seleccione una página web que contenga un
formulario para mostrar los detalles.
Editar registro: Permite a un usuario editar un registro. Seleccione una página web que contenga un
formulario para editar el registro.
Eliminar registro: Permite a un usuario eliminar un registro.
Mensaje de lista vacío: Mensaje que se mostrará cuando no haya ningún registro que mostrar.
Número de registros por página: Un valor entero para especificar el número de los registros que
se mostrarán en una página.
Habilitar búsqueda en lista de entidades: Permite a un usuario buscar registros en la lista.
Habilitar permisos de entidad: Permisos de entidad que se pueden emplear para la lista. De forma
predeterminada no está seleccionado. Si se seleccionan, se requieren permisos explícitos para que
cualquier usuario obtenga acceso al formulario. Más información: Permiso de entidad
Agregar ruta de navegación
1. Edite el portal para abrirlo en portales de PowerApps Studio.
2. Seleccione la página en la que desee agregar el componente.
3. Seleccione un elemento editable en el lienzo.
4. Seleccione Componentes del toolbelt en el lateral izquierdo de la pantalla.
5. En Componentes del portal, seleccione Ruta de navegación.

Agregar un menú personalizado


De forma predeterminada, el menú en el sitio web se crea automáticamente basándose en la jerarquía de las
páginas web. Se llama menú predeterminado. Para crear un menú personalizado, debe crear el conjunto de
vínculos web en la aplicación Administración del portal. Más información: Administrar vínculos web.
Tras crear el conjunto de vínculos web:
1. Edite el portal para abrirlo en portales de PowerApps Studio.
2. Seleccione el componente del encabezado.
3. En las propiedades a la derecha de la pantalla, seleccione el nombre del conjunto de vínculos web de la lista
Menú de navegación.

Usar editor de código


Para ver el origen de un componente en el lienzo, seleccione el componente y, a continuación, seleccione el icono
del editor de código de origen </> en el pie de página.

El código fuente se muestra en el panel Editor de código en la parte inferior de la pantalla. Los cambios que haya
realizado se actualizan en el código fuente. Para realizar cambios, actualice el origen de código y seleccione
Guardar. Los cambios se reflejan en el lienzo.
NOTE
También puede agregar etiquetas de Liquid en el editor de código de origen para configuración avanzada. Más información:
Trabajar con plantillas de Liquid
Trabajar con plantillas
25/11/2019 • 2 minutes to read • Edit Online

Las plantillas integradas están disponibles según el portal que se aprovisiona. Puede editar las plantillas mediante
el editor de código. Por ejemplo, las plantillas integradas siguientes están disponibles cuando se aprovisiona un
portal de inicio de Common Data Service:
Plantilla de estudio predeterminada
Página con título
Página con vínculos secundarios

NOTE
Se recomienda no editar las plantillas Plantilla de estudio predeterminada, Perfil y Buscar.

Para abrir una plantilla en el editor de código:


1. Edite el portal para abrirlo en portales de PowerApps Studio.
2. Seleccione Plantillas del toolbelt en el lateral izquierdo de la pantalla. Se muestran las siguientes
plantillas disponibles.

3. Seleccione la plantilla requerida para abrirla en el editor de código.


4. Edite el código y guarde los cambios.

NOTE
También puede agregar etiquetas de Liquid en el editor de código de origen para configuración avanzada. Más
información: Trabajar con plantillas de Liquid
Las plantillas de página que cree mediante Aplicación de portal de administración también se muestran en el panel
Plantillas.
Editar CSS
25/11/2019 • 2 minutes to read • Edit Online

Las hojas de estilo en cascada (CSS ) le permiten controlar el formato de la página web. De forma predeterminada,
los archivos bootstrap.min.css y theme.css están disponibles. Puede editar los archivos CSS existentes y cargar los
nuevos archivos CSS. Cuando carga un nuevo archivo CSS, estará disponible como archivo web en la aplicación de
administración de portales.
Para abrir un CSS en el editor de código:
1. Edite el portal para abrirlo en portales de PowerApps Studio.
2. Seleccione Tema del toolbelt en el lateral izquierdo de la pantalla. Se muestran los temas disponibles.

3. Seleccione la CSS requerida para abrirla en el editor de código.


4. Edite el código y guarde los cambios.
Para cargar un nuevo archivo CSS:
1. Edite el portal para abrirlo en portales de PowerApps Studio.
2. Seleccione Tema del toolbelt en el lateral izquierdo de la pantalla. Se muestran los temas disponibles.
3. Seleccionar Cargar CSS personalizada.

4. Busque el archivo CSS, y selecciónelo para cargarlo.


Administrar portales existentes en PowerApps
25/11/2019 • 7 minutes to read • Edit Online

Cuando haya creado un portal, está visible en la sección Aplicaciones recientes en la página principal de
PowerApps.

Para administrar una aplicación, seleccione Más comandos (… ) para el portal y elija una acción en el menú
contextual.

Editar
Abre portales de PowerApps Studio para editar el contenido y componentes del portal.
Examinar
Abre el portal para explorar la página web. Esto ayuda a ver el portal como lo verán los clientes.

Como alternativa, también puede abrir el portal para explorar la página web seleccionando Explorar sitio web en
portales de PowerApps Studio para ver los cambios que ha realizado a la página web. La página web se abre en
una nueva pestaña con la dirección URL de la página web.

Compartir
Comparta el portal con usuarios internos o externos. Siga los pasos a los que se hace referencia en el panel
Compartir este portal.

Compartir con usuarios internos


Para compartir el portal con usuarios internos primero debe crear un rol de seguridad y después asignar usuarios
al rol de seguridad para que pueden usar el portal.
NOTE
Como usuario en Common Data Service, si no tiene permisos apropiados en las entidades de portal, pueden aparecer errores
como “No tiene acceso para ver soluciones en este entorno”. p "No tiene acceso para ver sitios web en este entorno." Se
recomienda encontrarse en un rol de seguridad de Administrador del sistema en la base de datos de Common Data Service
correspondiente.

Paso 1: Crear un rol de seguridad


1. En el panel Compartir este portal, en Crear un rol de seguridad, seleccione Roles de seguridad. Una
lista de todos los roles de seguridad configurados se muestra.
2. En la barra de herramientas Acciones, seleccione Nuevo.
3. En la ventana Nuevo rol de seguridad, escriba el nombre del rol.
4. Establezca privilegios para todas las entidades que se usan en el portal.
5. Cuando termine de configurar el rol de seguridad, en la barra de herramientas, seleccione Guardar y cerrar.
Para obtener información sobre roles de seguridad y privilegios, consulte: Roles de seguridad y privilegios.
Paso 2: Asigne usuarios al rol de seguridad
1. En el panel Compartir este portal, en Asignar usuarios al rol de seguridad, seleccione Usuarios. A
continuación, aparecerá una lista de todos los usuarios.
2. Seleccione el usuario al que desea asignar un rol de seguridad.
3. Seleccione Administrar roles.

NOTE
Si no puede ver el botón Administrar roles en la barra de comandos, debe cambiar el cliente estableciendo forceUCI
a 0 en la dirección URL. Por ejemplo, https://<org_url>/main.aspx?pagetype=entitylist&etn=systemuser&forceUCI=0

4. En el cuadro de diálogo Administrar roles de usuario, seleccione el rol de seguridad que creó antes y
seleccione Aceptar.
Compartir con usuarios externos
Su portal debe funcionar de manera anónima y debe ser accesible por los usuarios externos. Si desea probar
capacidades avanzadas para administrar roles y permisos para usuarios externos, consulte Configurar un contacto
para uso en un portal, Invitar contactos en los portales, Crear roles web para portales, Asignar permisos de
entidad.

Configuración
Muestra la configuración de portal y permite cambiar el nombre del portal. Puede realizar acciones avanzadas
como administrar el portal a través del centro de administración de portales de PowerApps y trabajar con la
configuración del sitio. La configuración proporciona vínculos con el Centro de administración de los portales de
PowerApps y Configuración del sitio. Más información: Administración avanzada de portal y Configuración del
sitio.
Eliminar
Elimina el portal y recursos hospedados. Cuando se elimina un portal, su dirección URL deja de estar accesible. La
eliminación de un portal no afecta a ninguna configuración de portal o soluciones presentes en el entorno, y
permanecerán como se encuentran. Deberá eliminar las configuraciones de portal manualmente para quitar
totalmente las configuraciones de portal del entorno. Para ello, use la aplicación Administración del portal, y
elimine el registro correspondiente de la página web para el portal.

NOTE
Si no tiene suficientes privilegios para eliminar un portal, se muestra un error. Debe tener el rol de administrador del sistema
para eliminar un portal. Además, debe ser el propietario de la aplicación de portal en Azure Active Directory. El usuario que
creó el portal es de forma predeterminada el propietario y puede eliminar un portal. Para obtener información para agregarse
a usted mismo como propietario, consulte Agregarse a sí mismo como propietario de la aplicación Azure AD.

Detalles
Muestra detalles como propietario del portal, fecha y hora cuando se creó y se modificó por última vez, y la
dirección URL del portal.
Centro de administración de portales de
PowerApps
25/11/2019 • 2 minutes to read • Edit Online

El Centro de administración de portales de PowerApps permite realizar acciones administrativas avanzadas


en portales. El Centro de administración está disponible cuando un portal se aprovisiona correctamente.

Abrir Centro de administración de portales de PowerApps


1. Vaya a la sección Aplicaciones recientes en la página principal de PowerApps y busque el portal.

2. Seleccione Más comandos (...) > Configuración.

3. En el panel Configuración del portal, seleccione Administración.


Agréguese como propietario de la aplicación de Azure AD
Si no es administrador global e intenta administrar un portal ya aprovisionado o quiere reenviar el
aprovisionamiento si se crearon errores, debe ser el propietario de la aplicación de Azure Active Directory
(Azure AD ) que está conectada al portal.
1. Vaya al centro de administración de los portales de PowerApps y abra la pestaña Detalles del
portal.
2. Copie el valor del campo Id. de la aplicación.
3. Vaya a Azure AD asociada a su inquilino. Más información: Tome el control de un directorio no
administrado como administrador en Azure Active Directory
4. En Azure AD, busque el registro de aplicaciones mediante el identificador de la aplicación que copió.
Puede que deba cambiar de Mis aplicaciones a Todas las aplicaciones.
5. Agregue usuarios o grupos como propietarios de este registro de aplicación. Más información:
Administrar el acceso a aplicaciones

NOTE
Esta tarea la puede realizar el administrador global de su organización o el propietario existente de esta
aplicación.

6. Una vez que se haya agregado como propietario, vuelva a abrir la página del centro de
administración de portales de PowerApps.
Detalles del portal
25/11/2019 • 2 minutes to read • Edit Online

Después de crear un portal, comenzará a aprovisionarse y se le notificará el estado con notificaciones. Una vez
aprovisionado el portal, se le redirigirá a portales de PowerApps Studio. Puede usar portales de PowerApps Studio
para crear y personalizar la página web.
Si necesita ver más detalles sobre el portal aprovisionado, por ejemplo, tipo de portal, identificador de aplicación,
propietario del portal, etc., puede abrir Centro de administración de los portales de PowerApps y navegar a la
pestaña Detalles de portal . El usuario que creó el portal es el propietario del portal.
Descargar clave pública del portal
25/11/2019 • 2 minutes to read • Edit Online

La clave pública de un portal se usa para configurar Live Assist para alicaciones basadas en modelo para Dynamics
365 para que funcione con los visitantes autenticados de un portal. Live Assist, de CafeX, ofrece una solución de
chat a través de la que los usuarios pueden incluir asistencia de chat en vivo en su portal. Puede encontrar más
información sobre cómo usar la clave pública para incluir un chat en un portal en: Visitantes autenticados en el
portal para clientes de Dynamics.
1. Abra Centro de administración de Portales de PowerApps.
2. Vaya a Acciones del portal > Obtener clave pública. Aparecerá la clave.

3. Seleccione Descargar como texto para descargar la clave en un archivo de texto.


También puede obtener la clave pública dirigiéndose a la dirección URL:
<portal_base_URL>/_ services/auth/publickey .

NOTE
Si el portal se está aprovisionando actualmente o la instalación del paquete no ha finalizado en la organización, se mostrará
un error si intenta descargar la clave pública. Debe esperar hasta que se complete el aprovisionamiento del portal y esté en
funcionamiento.
Ver los logs de error del portal
25/11/2019 • 13 minutes to read • Edit Online

Como administrador o desarrollador de un portal, puede usar portales de PowerApps para crear un sitio web para
sus clientes. Una tarea habitual entre los desarrolladores es depurar problemas mientras desarrollan el portal. Para
ayudar a depurar, puede acceder a los registros de errores detallados para todos los problemas en el portal. Hay
varias formas en las que puede obtener registros de errores para sus portales.

Error personalizado
Si se produce cualquier tipo de excepción de servidor en el portal, se muestra una página de error personalizada
con un mensaje de error fácil de entender de forma predeterminada. Para configurar el mensaje de error, vea
mostrar un mensaje de error personalizado .
Sin embargo, es mejor ver la página de error detallada de ASP.NET, también conocida como pantalla amarilla de
muerte (YSOD ), para fines de depuración. La página de error detallada le ayuda a obtener la pila completa de
errores de servidor.

Para habilitar YSOD, debe deshabilitar los errores personalizados en el portal.

NOTE
Es recomendable deshabilitar los errores personalizados solo cuando se encuentra en la fase de desarrollo y habilitar los
errores personalizados en la puesta en marcha.

Más información sobre el error personalizado: mostrar una página de Error personalizada
Deshabilitar un error personalizado
Puede deshabilitar los errores personalizados en los portales para visualizar el mensaje detallado de excepción si
se produce una excepción de lado de servidor en el portal.
1. Abra Centro de administración de Portales de PowerApps.
2. Vaya a Acciones del portal > deshabilitar errores personalizados.
3. Seleccione Deshabilitar en el mensaje de confirmación. Mientras los errores personalizados se
deshabilitan, el portal se reinicia y deja de estar disponible. Cuando se deshabilitan los errores
personalizados, aparece un mensaje.
Habilitar un error personalizado
Puede habilitar los errores personalizados en el portal para mostrar una página de aspecto profesional en lugar de
YSOD. Esta página ofrece información importante si se produce cualquier excepción en la aplicación.
1. Abra Centro de administración de Portales de PowerApps.
2. Vaya a Acciones del portal > habilitar errores personalizados.
3. Seleccione Habilitar en el mensaje de confirmación. Mientras los errores personalizados se habilitan, el
portal se reinicia y deja de estar disponible. Cuando se habilitan los errores personalizados, aparece un
mensaje.

NOTE
Si cambia la instancia a la que está conectado su portal, la configuración de errores personalizados se establece en
habilitado. Debe deshabilitar los errores personalizados de nuevo, si es necesario.
No debe habilitar o deshabilitar los errores personalizados cuando se ha cambiado la instancia a la que está conectado su
portal; de lo contrario, aparece un mensaje de error.

Mostrar un mensaje de error personalizado


Puede configurar su portal para mostrar un error personalizado de aspecto profesional en lugar de un error
genérico.
Para definir un error personalizado, utilice el fragmento de contenido Portal Generic Error . El contenido definido
en este fragmento se muestra en la página de error. Este fragmento de contenido no está disponible directamente y
debe crearlo. El fragmento de contenido tipo puede ser texto o HTML. Para crear o editar el fragmento de
contenido, consulte Personalizar el contenido mediante fragmentos de contenido.

NOTE
Si se escribe código de líquido en el fragmento de contenido, se omitirá y no se representará.

Al habilitar los errores personalizados, aparece el mensaje en la siguiente estructura de la página de error:
A continuación se muestra un ejemplo de un mensaje de error personalizado que usa un fragmento de contenido
de tipo HTML:
Este es un error personalizado, presente un vale de soporte con la captura de pantalla del error haciendo clic aquí.

NOTE
Si el portal no puede recuperar un fragmento de contenido porque no se puede conectar a Common Data Service o bien, si el
fragmento no está disponible en Common Data Service, aparece un mensaje de error.

Los registros de error del portal de acceso


Después de desarrollar y publicar el portal, debe poder seguir teniendo acceso a los registros del portal para
depurar los problemas notificados por sus clientes. Para obtener acceso a los registros, puede configurar su portal
para enviar todos los errores de aplicación a una cuenta de Azure Blob Storage propia. Mediante el acceso a
registros de error del portal, puede responder a consultas de clientes eficazmente porque tiene detalles del
problema. Para obtener los registros de error del portal en Azure Blob Storage, debe habilitar el registro de
diagnóstico en el centro de administración de portales de PowerApps.

NOTE
Si cambia la instancia Common Data Service a la que está conectado su portal, el registro de diagnóstico se deshabilita. Debe
habilitar el registro de diagnóstico de nuevo.

Habilitar registro de diagnóstico


1. Abra Centro de administración de Portales de PowerApps.
2. Vaya a Acciones del portal > habilitar registro de diagnóstico.
3. En la ventana Habilitar registro de diagnóstico, especifique los valores siguientes:
Cadena de conexión del servicio Azure Blob Storage: dirección URL del servicio de Azure Blob
Storage para almacenar los registros de errores del portal. La longitud máxima de la URL es de 2048
caracteres. Si la dirección URL tiene más de 2048 caracteres, aparece un mensaje de error. Para obtener
más información sobre la cadena de conexión: cadenas de conexión de configuración de Azure Storage
Seleccionar período de retención: duración de mantenimiento de los registros de error del portal en
el almacenamiento de blobs. Se eliminan los registros de errores después de la duración seleccionada.
Puede seleccionar uno de los siguientes valores:
1 día
7 días
30 días
60 días
90 días
180 días
Siempre
De forma predeterminada, el período de retención es 30 días.
4. Haga clic en Configurar.
Una vez que se ha configurado el registro de diagnóstico, se crea un nuevo contenedor de blobs registros de
telemetría en su cuenta de Azure Storage y los registros se escriben en los archivos de blobs que se almacenan en
el contenedor. La siguiente captura de pantalla muestra el contenedor de blobs registros de telemetría en el
Explorador de Azure Storage:

Cuando el registro de diagnóstico se habilita correctamente, la acción siguiente pasa a estar disponible:
Actualizar configuración de registro de diagnóstico: permite actualizar o quitar la configuración de registro
de diagnóstico para el portal.
Deshabilitar el registro de diagnóstico: permite deshabilitar la configuración de registro de diagnóstico para
el portal.
Actualizar el registro de diagnóstico
1. Abra Centro de administración de Portales de PowerApps.
2. Vaya a Acciones de portal > Actualizar configuración de registro de diagnóstico.

3. En la ventana de actualizar registro de diagnóstico, especifique los valores siguientes:


¿Desea actualizar la cadena de conexión del servicio Azure Blob Storage?: permite especificar si
se actualiza la cadena de conexión del servicio de Azure Blob Storage. La opción se encuentra
seleccionada de forma predeterminada.
Cadena de conexión del servicio Azure Blob Storage: dirección URL del servicio de Azure Blob
Storage para almacenar los registros de errores del portal. La longitud máxima de la URL puede ser de
2048 caracteres. Si la dirección URL tiene más de 2048 caracteres, aparece un mensaje de error. Este
campo se muestra solo si la casilla ¿Desea actualizar la cadena de conexión del servicio Azure
Blob Storage? está seleccionada. Para obtener más información sobre la cadena de conexión: cadenas
de conexión de configuración de Azure Storage
Seleccionar período de retención: duración de mantenimiento de los registros de error del portal en
el almacenamiento de blobs. Se eliminan los registros de errores después de la duración seleccionada.
Puede seleccionar uno de los siguientes valores:
1 día
7 días
30 días
60 días
90 días
180 días
Siempre
De forma predeterminada, el período de retención es 30 días.
4. Haga clic en Actualizar.
Deshabilitar el registro de diagnóstico
1. Abra Centro de administración de Portales de PowerApps.
2. Vaya a Acciones del portal > deshabilitar el registro de diagnóstico.

3. Haga clic en Deshabilitar en el mensaje de confirmación.

Mostrar error de complemento


Otro escenario que a menudo se produce al desarrollar un portal es un error generado por los complementos
personalizados y la lógica de negocios escrita en su entorno de Common Data Service. Suele poder accederse a
estos errores deshabilitando errores personalizados o habilitando el registro de diagnóstico. Sin embargo, en
algunos casos, es más rápido mostrar estos errores directamente en el portal para diagnosticar el problema con
mayor rapidez. Para ello, puede configurar su portal para mostrar errores de complemento personalizados de
Common Data Service en la pantalla del portal.
Para mostrar los errores de los complementos personalizados, cree la configuración de sitio
Site/EnableCustomPluginError y establezca su valor en True. Los errores de complementos personalizados se
mostrarán en la pantalla en lugar de un error genérico. El error mostrará solo la parte de mensaje del error de
complemento y no el seguimiento de pila completo.
A continuación se muestran las pantallas donde aparecerán los errores de complementos personalizados:
Lista de entidades
Recuperación de registros
Formulario de entidad
Recuperar
Creación o actualización, etc.
Formularios web
Recuperar
Creación o actualización, etc.
Si no hay configuración del sitio, se tratará como falso de forma predeterminada y los errores de complementos no
se procesarán.
Restablecer un portal
25/11/2019 • 4 minutes to read • Edit Online

Una vez aprovisionado un portal, es posible que tenga que eliminar recursos del portal en determinadas
circunstancias, como si tiene que trasladar su organización a otro inquilino o centro de datos, o si desea quitar el
portal de su organización.
Para ello, puede restablecer el portal, que eliminará todos los recursos hospedados asociados a él.. A continuación,
puede realizar de nuevo el aprovisionamiento del portal. Una vez que finalice la operación de restablecimiento, no
dispondrá de acceso a la dirección URL del portal.
Es importante tener en cuenta que el restablecimiento del portal no quita la configuración del portal o las
soluciones presentes en su instancia y seguirán como están.
Puede restaurar un portal configurado completamente o un portal para el que se haya producido un problema al
aprovisionar o actualizar una instancia.
Para restaurar un portal configurado:
1. Abra Centro de administración de Portales de PowerApps.
2. Vaya a Acciones del portal > Restablecer portal.

3. Seleccione Restablecer en la ventana de confirmación.


NOTE
Si no dispone de los permisos adecuados en una aplicación asociada de Azure Active Directory, se mostrará un error. Debe
ponerse en contacto con el administrador global para obtener los permisos adecuados.
Si ha aprovisionado un portal con el complemento de portal más antiguo y el portal se restablece correctamente, el
nombre del portal y su estado en la pestaña Aplicaciones en Centro de administración de Dynamics 365 no cambiarán.
Por ejemplo, si su nombre de portal y estado eran Portal 1 y Configurado respectivamente, después de restablecer el
portal, estos valores no cambian. Si desea cambiar el nombre de portal, puede cambiarlo en la pestaña Detalles del
portal en el Centro de administración de portales de PowerApps. Sin embargo, el valor del estado no se puede revertir a
No configurado.
Es importante tener en cuenta que el estado del portal de la pestaña Aplicaciones no representa el estado de
aprovisionamiento y no afecta al funcionamiento del portal. Simplemente muestra si alguna vez ha obtenido acceso al
Centro de administración de portales de PowerApps para ese portal correspondiente o no.

Si su portal no se aprovisiona correcta, aparece un estado de error y se muestra la siguiente pantalla. En este caso,
también puede restablecer el portal seleccionando Restablecer portal en la pantalla de error.

Solución de problemas
Esta sección proporciona información sobre los problemas de solución de problemas cuando se restablece un
portal.
Restablecer una solicitud que no se pudo enviar
Si no se pudo enviar una solicitud de restablecimiento del portal, se mostrará un error como el que aparece en la
siguiente imagen. En este caso, debe cerrar y volver a abrir el Centro de administración de portales de PowerApps
e intentar restablecer el portal de nuevo. Si el problema persiste, póngase en contacto con el soporte técnico de
Microsoft.
Error al restablecer un trabajo en el portal
Si se produce un error al restablecer un trabajo en el portal, se mostrará un mensaje de error junto con la acción
Restablecer portal.

Normalmente, estos son errores transitorios y debe seleccionar Restablecer portal para reiniciar el trabajo. Si el
problema persiste, póngase en contacto con el soporte técnico de Microsoft.
Cambiar la dirección URL base de un portal
25/11/2019 • 2 minutes to read • Edit Online

Puede cambiar la dirección URL base de un portal después de que se aprovisione. Por ejemplo, si elige
contosocommunity.microsoftcrmportals.com como la dirección URL base el aprovisionar el portal, podrá cambiarlo
posteriormente a contosocommunityportal.microsoftcrmportals.com para satisfacer sus requisitos.

NOTE
Una vez que cambie la dirección URL base del portal, la dirección URL más antigua ya no será accesible y estará disponible
para que otros clientes la usen para sus portales.

1. Abra Centro de administración de Portales de PowerApps.


2. Vaya a Acciones del portal > Cambiar dirección URL base.

3. En la ventana Cambiar dirección URL base, escriba la nueva dirección URL base para el portal.
4. Haga clic en Cambiar dirección URL en la ventana de confirmación.

Solución de problemas
En esta sección se ofrece información acerca de la solución de problemas al cambiar la dirección URL base de un
portal.
Error al cambiar la dirección URL base
Si se produce un error al cambia la dirección URL base de un portal, se mostrará un error como el de la siguiente
imagen:

Normalmente, estos son errores transitorios y debe seleccionar Cambiar dirección URL base para volver a
intentar cambiar la dirección URL base. Si el problema persiste, póngase en contacto con el soporte técnico de
Microsoft.
Modo de mantenimiento para un portal
25/11/2019 • 4 minutes to read • Edit Online

Puede haber momentos en que la página web esté en mantenimiento programado o no está funcionando debido a
interrupción temporal. Cuando un cliente tiene acceso a la página web durante mantenimiento, puede
experimentar un comportamiento impredecible y falta de disponibilidad intermitente.
Como administrador del portal, puede configurar el portal para mostrar un mensaje adecuado a los clientes cada
vez que una actividad de mantenimiento se produzca (por ejemplo, "Se están actualizando paquetes de la
solución.") Puede aprovechar esta capacidad habilitando el modo de mantenimiento en el portal. Cuando se
habilita el modo de mantenimiento, se muestra un mensaje y los clientes no pueden examinar páginas web excepto
la página <portal URL>/_services/about .

Habilitar modo de mantenimiento


Puede habilitar el modo de mantenimiento en el portal para proporcionar un mensaje consistente, en lugar de
tratar un comportamiento impredecible cuando la página web esté en mantenimiento programado. Esto le
proporcionará una mejor experiencia a los usuarios del portal.
1. Abra Centro de administración de Portales de PowerApps.
2. Vaya a Acciones del portal > Habilitar modo de mantenimiento.
3. En la ventana Habilitar modo de mantenimiento, especifique los valores siguientes:
Seleccione la página que se usará cuando el modo de mantenimiento esté habilitado:
Seleccione uno de los siguientes valores:
Página predeterminada: Seleccione esta opción si desea que la página predeterminada se
muestra cuando se habilite el modo de mantenimiento. Esta opción se encuentra seleccionada
de forma predeterminada.
Página personalizada: Seleccione esta opción si desea que la página HTML personalizada se
muestra cuando se habilite el modo de mantenimiento.
Dirección URL de página personalizada: Este campo se habilita solo cuando selecciona la opción
para mostrar una página HTML personalizada. Debe asegurarse de que la dirección URL de la página
que proporciona es accesible públicamente. Si no se puede acceder a la página HTML especificada, la
página predeterminada se muestra con una nota a los administradores.
4. Seleccione Habilitar. Mientras está habilitado el modo de mantenimiento, se reinicia el portal y no está
disponible durante unos minutos.
Configurar o deshabilitar el modo de mantenimiento
Después de habilitar el modo de mantenimiento para el portal, puede actualizar la configuración del modo de
mantenimiento y seleccionar una página diferente.
También puede elegir deshabilitar el modo de mantenimiento en el portal cuando el mantenimiento programado
de la página web se completa. Los usuarios del portal ahora pueden explorar y obtener acceso a todas las páginas
web como de costumbre.
1. Abra Centro de administración de Portales de PowerApps.
2. Vaya a Acciones del portal > Configurar o deshabilitar modo de mantenimiento.
3. Modificar la configuración como sea necesario y seleccione Actualizar. Por ejemplo, es posible que elija
mostrar la página predeterminada si ha seleccionado la opción de mostrar la página personalizada
anteriormente.
4. Para deshabilitar el modo de mantenimiento, seleccione Deshabilitar. Mientras se actualizado o
deshabilitado el modo de mantenimiento, se reinicia el portal y no está disponible durante unos minutos.
Agregue un nombre de dominio personalizado
25/11/2019 • 4 minutes to read • Edit Online

Un dominio personalizado puede ayudar a sus clientes a encontrar los recursos de soporte más fácilmente y
mejorar su marca. Solo un nombre de dominio personalizado se puede agregar a un portal. Después de
aprovisionar el portal y adquirir el nombre de dominio, necesitará un certificado SSL para configurar un nombre
de host personalizado. Puede usar el certificado SSL comprado para el dominio para vincular el portal a un
dominio personalizado utilizando el asistente.
1. Abra Centro de administración de Portales de PowerApps.
2. Vaya a Acciones del portal > Agregar un nombre de dominio personalizado. Se abrirá el asistente
para elegir el certificado SSL.
3. En la página , Escoger un certificado SSL, seleccione una de las siguientes opciones:
Cargar un nuevo certificado: seleccione esta opción para cargar el archivo .pfx si aún no lo ha
cargado a la organización. Seleccione el botón cargar bajo Archivo y seleccione el archivo .pfx. Una
vez haya seleccionado el archivo, escriba la contraseña del certificado SSL en el campo Contraseña.
Usar un certificado existente: seleccione esta opción para escoger el certificado correcto en el
menú desplegable.

NOTE
El certificado SSL debe cumplir los siguientes requisitos:
Debe estar firmado por una entidad de certificación de confianza.
Debe haber sido exportado como un archivo PFX protegido con contraseña.
Debe contener una clave privada de al menos 2048 bits de longitud.
Debe contener todos los certificados intermedios de la cadena de certificados.
Debe estar habilitado para SHA2; el soporte técnico de SHA1 ya no estará disponible en los exploradores
más populares.

4. Seleccione Siguiente.
5. En la página Escoger un nombre de host, seleccione una de las siguientes opciones:
Agregar un nuevo nombre de host: Seleccione esta opción para crear un nuevo dominio
personalizado. Escriba el nombre de dominio que quiera en el campo Nombre de dominio.
Usar un nombre de host existente: seleccione esta opción para escoger un nombre de host del menú
desplegable.

NOTE
Solo puede tener un nombre de dominio personalizado para un portal.
Para crear un nombre de host personalizado, deberá crear un CNAME con su proveedor de dominio que señale el
dominio a la dirección URL del portal. Si acaba de agregar un CNAME con su proveedor de dominio, tardará algún
tiempo en difundirse a todos los servidores DNS. Si el nombre no se difunde y lo agrega aquí, se mostrará el
siguiente un mensaje de error: Agregue un registro CNAME a este nombre de dominio. Vuelva a intentarlo
después de un tiempo.
6. Revise la información que ha especificado y haga clic en Siguiente para empezar a crear el enlace SSL.
Debería ver el mensaje El nombre de dominio personalizado se ha configurado correctamente en este
portal. Ahora puede ir a {Custom Domain Name} para obtener acceso a este portal. {Custom Domain
Name} será un hipervínculo a la dirección URL del portal personalizada que acaba de configurar.
7. Para cerrar el asistente, elija Finalizar.

NOTE
Si desea cambiar el nombre de dominio personalizado existente, debe cargar un nuevo certificado SSL y seguir los
pasos del asistente de esta sección.
Importar traducción de metadatos
25/11/2019 • 2 minutes to read • Edit Online

Cuando se aprovisiona un portal, las soluciones relacionadas con el portal se instalan en la organización. Durante
la instalación de las soluciones, las traducciones de los metadatos de la solución (por ejemplo: el nombre de
campo, el nombre del formulario, el nombre de vista, etc.) se instalan solo en los idiomas activados actualmente en
la organización. Si posteriormente se activa un nuevo idioma, los metadatos no se instalarán automáticamente en
el idioma recién activado. Para obtener la traducción de los metadatos al idioma recién activado, debe importar la
traducción de los metadatos desde el Centro de administración de portales de PowerApps.

Para importar la traducción de metadatos


1. Abra Centro de administración de Portales de PowerApps.
2. Vaya a Acciones del portal > Obtener las traducciones de metadatos más recientes. Una ventana de
confirmación que se muestra pregunta si desea actualizar las soluciones de portal.
3. Seleccione Actualizar. Las soluciones de portal se actualizan a la última traducción de metadatos.

NOTE
Si la versión más reciente del paquete de portal está disponible, no se actualizará. Las soluciones de portal se actualizan
en la misma versión. Para actualizar sus soluciones de portal según los últimos paquetes disponibles, debe tener acceso al
Centro de administración de soluciones.
Si un usuario modificó todos los datos en Common Data Service, los datos existentes no se sobrescriben durante la
actualización.
Si las soluciones de portal se están instalando, la actualización de una solución no puede ser desencadenada.
Configurar integración de Power BI
25/11/2019 • 13 minutes to read • Edit Online

Power BI es una de las mejores herramientas para ofrecer ideas con visualización básica e interactiva. Para ver los
paneles e informes de Power BI en las páginas web de un portal, debe habilitar la visualización de Power BI desde
el Ccentro de administración de portales de PowerApps. También puede insertar paneles e informes creados en el
nuevo espacio de trabajo de Power BI habilitando la integración con el servicio Power BI Embedded.

NOTE
Debe tener una licencia adecuada de Power BI.
Para usar el servicio Power BI Embedded, debe tener una licencia adecuada de Power BI Embedded. Para obtener más
información, vea el tema sobre Licencias.

Habilitar visualización de Power BI


Habilitar la visualización de Power BI permite insertar paneles e informes en las páginas web en un portal
utilizando la etiqueta powerbi Liquid.
1. Abra Centro de administración de Portales de PowerApps.
2. Vaya a Configurar la integración de Power BI > Habilitar la visualización de Power BI.

3. Seleccione Habilitar en el mensaje de confirmación. Mientras la visualización de Power BI está siendo


activada, el portal se reiniciará y no estará disponible durante unos minutos. Aparece un mensaje cuando la
visualización de Power BI está habilitada.
Los personalizadores pueden usar la etiqueta Liquid powerbi para insertar los paneles e informes de Power BI en
las páginas web en un portal. A medida que insertan contenido de Power BI, los personalizadores pueden usar
parámetros de filtros para crear vistas personalizadas. Más información: etiqueta powerbi de Liquid
Deshabilitar visualización de Power BI
1. Abra Centro de administración de Portales de PowerApps.
2. Vaya a Configurar la integración de Power BI > Deshabilitar la visualización de Power BI.

3. Seleccione Deshabilitar en el mensaje de confirmación. Mientras la visualización de Power BI está siendo


desactivada, el portal se reiniciará y no estará disponible durante unos minutos. Aparece un mensaje
cuando la visualización de Power BI está deshabilitada.

Habilitar el servicio Power BI Embedded


Habilitar el servicio Power BI Embedded le permite insertar paneles e informes creados en el nuevo espacio de
trabajo de Power BI. Los paneles e informes se insertan en las páginas web en un portal utilizando la etiqueta
powerbi Liquid.
Requisitos previos: Para habilitar el servicio Power BI Embedded, asegúrese de que ha creado los paneles e
informes en el nuevo espacio de trabajo de Power BI. Después de crear el espacio de trabajo, proporcione acceso
de administración al administrador global para que los espacios de trabajo se muestren en el Centro de
administración de portales de PowerApps. Para obtener más información sobre la creación de nuevos espacios de
trabajo y agregar acceso a ellos, consulte Crear nuevos espacios de trabajo en Power BI.
Limitaciones del servicio Power BI Embedded: Para obtener información sobre limitaciones, consulte
Consideraciones y limitaciones.

NOTE
Asegúrese de que la visualización de Power BI está habilitada para que funcione la etiqueta powerbi Liquid.

1. Abra Centro de administración de Portales de PowerApps.


2. Vaya a Configurar la integración de Power BI > Habilitar servicio Power BI Embedded.
3. En la ventana Habilitar integración de Power BI Embedded, seleccione y mueva los espacios de trabajo
de Power BI desde los cuales deben mostrarse paneles e informes en el portal a la lista Espacios de
trabajo seleccionados.

NOTE
Después de agregar espacios de trabajo a la lista Espacios de trabajo seleccionados, las bases de datos y los
informes se generan después de unos minutos.

4. Seleccione Habilitar. Mientras está habilitado el servicio de Power BI Embedded, el portal se reinicia y no
está disponible durante unos minutos. Aparece un mensaje cuando el servicio de Power BI Embedded está
habilitado.
Debe ahora crear un grupo de seguridad, y agregarlo a su cuenta de Power BI. Para obtener más información,
consulte Crear grupo de seguridad y agregarlo a la cuenta de Power BI.
Crear grupo de seguridad y agregarlo a la cuenta de Power BI
Después de habilitar la integración del servicio Power BI Embedded, debe crear un grupo de seguridad en Azure
Active Directory, agregarle un miembro y, a continuación, agregar el grupo de seguridad de Power BI a través del
portal de administración de Power BI. Esto permite a los paneles e informes creados en nuevos espacios de
trabajo de Power BI mostrarse en el portal.

NOTE
Debe iniciar sesión con la misma cuenta de administrador global que usó para habilitar el servicio Power BI Embedded.

Paso 1: Crear un grupo de seguridad


1. Inicie sesión en el Portal de Azure usando una cuenta de administrador global cuenta para el directorio.
2. Seleccione Azure Active Directory, Grupos y Nuevo grupo.
3. En la página Grupo, especifique la siguiente información:
Tipo de grupo: Seguridad.
Nombre de grupo: servicio Power BI Embedded del portal.
Descripción del grupo: Este grupo de seguridad se usa para integración del servicio Power BI
Embedded.
Tipo de la suscripción: Asignado.

4. Seleccione Crear.
Paso 2: Agregar un miembro del grupo
Requisitos previos: Antes de agregar un integrante al grupo de seguridad, debe tener el identificador de
aplicación del portal con usted. El id. de aplicación del portal está disponible en la pestaña Detalles del portal en
el Centro de administración de portales de PowerApps.
1. Inicie sesión en el Portal de Azure usando una cuenta de administrador global cuenta para el directorio.
2. Seleccione Azure Active Directory y luego seleccione Grupos .
3. En la página Grupos - todos los grupos, busque el grupo Servicio Power BI Embedded del portal y
selecciónelo.
4. En la página Información general sobre el servicio Power BI Embedded del portal, seleccione
Miembros del área Administrar.
5. Seleccione Agregar integrantes, y escriba el identificador de la aplicación del portal en el cuadro de texto.
6. Seleccione el integrante de los resultados de búsqueda, y después elija Seleccionar.

Paso 3: configuración de Power BI


1. Inicie sesión en Power BI usando una cuenta de administrador global cuenta para el directorio.
2. Seleccione Configuración en la parte superior derecho del servicio de Power BI y elija Portal de
administración.
3. Seleccione Configuración de inquilino.
4. En la sección Configuración de desarrollador, seleccione Permitir que las entidades de seguridad de
servicio usen API de Power BI.
5. En el campo Grupos de seguridad específicos, busque el grupo Servicio Power BI Embedded del
portal y selecciónelo.

6. Seleccione Aplicar.
Los personalizadores pueden ahora usar la etiqueta Liquid powerbi para insertar los paneles e informes de Power
BI desde nuevos espacios de Power BI en las páginas web de un portal. Para usar el servicio Power BI Embedded,
el tipo de autenticación debe especificarse como powerbiembedded. A medida que insertan contenido de Power
BI, los personalizadores pueden usar parámetros de filtros para crear vistas personalizadas. Más información:
etiqueta powerbi de Liquid.
Administrar el servicio Power BI Embedded
1. Abra Centro de administración de Portales de PowerApps.
2. Vaya a Configurar la integración de Power BI > Administrar servicio Power BI Embedded.

3. En la ventana Administrar integración del servicio Power BI Embedded, elimine y mueva los espacios
de trabajo de Power BI desde los cuales deben mostrarse paneles e informes en el portal a la lista Espacios
de trabajo seleccionados.
NOTE
Después de quitar los espacios de trabajo de la lista Espacios de trabajo seleccionados, puede tardar hasta 1 hora
en reflejarse los cambios. Hasta entonces, las bases de datos y los informes se generan en el portal sin ningún
problema.

4. Seleccione Guardar.
Deshabilitar el servicio Power BI Embedded
1. Abra Centro de administración de Portales de PowerApps.
2. Vaya a Configurar la integración de Power BI > Administrar servicio Power BI Embedded.

3. En la ventana Administrar integración del servicio Power BI Embedded, seleccione Deshabilitar


integración del servicio Power BI Embedded.

4. Seleccione Guardar.
5. En el mensaje de confirmación, seleccione Aceptar. Mientras está deshabilitado el servicio de Power BI
Embedded, el portal se reinicia y no está disponible durante unos minutos. Aparece un mensaje cuando el
servicio de Power BI Embedded está deshabilitado.

Aviso de privacidad
Al habilitar la inserción de mosaicos y paneles de Power BI, cuando un usuario inserta un mosaico o un panel de
Power BI, ese símbolo de autorización de Azure Active Directory del cliente para Common Data Service se usa con
el fin de autenticarse en el servicio de Power BI con una concesión implícita, que proporciona una experiencia de
"inicio de sesión único" perfecta para el usuario final.
Los administradores pueden deshabilitar la inserción de mosaicos y paneles de Power BIen cualquier momento
para dejar de usar el símbolo de autorización de Dynamics 365 con el fin de autenticarse en el servicio de Power
BI. Los mosaicos o los paneles existentes detendrán la representación para el usuario final.
En la siguiente sección se describe el componente o servicio de Azure involucrado en la inserción de mosaicos de
Power BI.
Nota: Para obtener más información acerca de otras ofertas de servicios de Azure, consulta el Centro de
confianza de Microsoft Azure.
Azure Active Directory
Este servicio proporciona el símbolo de autenticación intercambiado con el servicio de Power BI para la
autenticación de la API y la interfaz de usuario.
Vea también
etiqueta powerbi de Liquid
Agregar un informe o un panel de Power BI a una página web en un portal
Adición de informes o un panel de Power BI a una
página web en un portal
25/11/2019 • 2 minutes to read • Edit Online

Puede agregar un informe o un panel de Power BI a una página web en un portal usando la etiqueta de Liquid
powerbi. Puede agregar la etiqueta en el campo Copiar en una página web o en el campo Origen en una Plantilla
web. Si que agrega un informe o un panel de Power BI creado en el nuevo espacio de trabajo en Power BI, deberá
especificar el tipo de autenticación como powerbiembedded en la etiqueta powerbi Liquid.
Por ejemplo:

{% powerbi path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/reports/00000000-0000-
0000-0000-000000000001/ReportSection01" %}

NOTE
Si ha especificado DAA como tipo de autenticación en la etiqueta powerbi Liquid, debe compartirla con los usuarios
requeridos antes de agregar el informe o el panel seguro de Power BI a una página web en portal. Más información:
Compartir área de trabajo de Power BI y Compartir el panel y el informe de Power BI.

Obtenga la ruta de un panel o informe


1. Inicie sesión en Power BI.
2. Abra el panel o informe que desea insertar en el portal.
3. Copie la dirección URL de la barra de direcciones.

Obtener el identificador de una ventana de panel


1. Inicie sesión en Power BI.
2. Abra el panel desde el que desea insertar una ventana en el portal.
3. Apunte al mosaico, seleccione Más opcionesy, a continuación seleccione Abrir en modo de enfoque.

4. Copie el identificador del mosaico de la dirección URL en la barra de direcciones. El identificador del
mosaico es el valor que está después de /tiles/.

Vea también
etiqueta powerbi de Liquid
Configurar la integración de Power BI
Comprobador del portal
25/11/2019 • 2 minutes to read • Edit Online

El comprobador de portal es una herramienta de diagnóstico de autoservicio que se puede usar por los
administradores de portal para identificar los problemas comunes del portal. El comprobador del portal ayuda a
identificar problemas con el portal viendo diferentes parámetros de configuración y proporciona sugerencias sobre
cómo corregirlos.
Al ejecutar el comprobador del portal, los resultados se muestran en la sección Resultados de diagnóstico en un
formato de cuadrícula. La cuadrícula de resultados tiene las siguientes columnas:
Error: Muestra el problema de nivel superior que tiene el cliente; por ejemplo, degradación de rendimiento.
Categoría: Muestra el área de nivel superior donde los problemas se pueden dividir en categorías; por ejemplo,
aprovisionar, actualización de una solución, etc.
Resultado: Muestra el estado de problema; por ejemplo, error, advertencia, etc.
De forma predeterminada, la información de la cuadrícula se ordenará por la columna Resultado en este orden:
error, advertencia, y paso.

Puede expandir un problema para ver la información detallada y los pasos de mitigación. Si la mitigación requiere
alguna acción, verá un botón que realizará la acción. También puede proporcionar comentarios sobre si la
mitigación es útil.

Si procede, puede volver a ejecutar las pruebas de diagnóstico, que actualizarán los resultados con datos
actualizados.

NOTE
Si se desactiva el portal o se habilita el filtrado de direcciones IP, algunas pruebas de diagnóstico no se ejecutarán en el portal.
Para obtener una lista de problemas comunes diagnosticados por la herramienta de comprobación del portal,
consulte Problemas comunes del portal diagnosticados por el comprobador del portal y sus prácticas
recomendadas.
Para ejecutar el comprobador del portal:
1. Abra Centro de administración de Portales de PowerApps.
2. Vaya a Ejecutar comprobador del portal.

3. Seleccione Ejecutar comprobador del portal. La sesión de diagnóstico se iniciará y recopilará datos
acerca de los problemas de los clientes. Los resultados se muestran en la sección Resultados de
diagnóstico.

4. Para volver a ejecutar las pruebas de diagnóstico, seleccione Resultados de la actualización.


Conectar a un entorno de Common Data Service
usando un portal
25/11/2019 • 7 minutes to read • Edit Online

Un portal se conecta a un entorno de Common Data Service con una aplicación de Azure Active Directory. La
aplicación se crea en el mismo inquilino donde está aprovisionado el portal. La aplicación se registra con el entorno
de Common Data Service durante el proceso de aprovisionamiento del portal.

Cada portal tiene una aplicación de Azure Active Directory independiente asociada, esté o no conectado a al mismo
entorno de Common Data Service. El proveedor de autenticación de Azure Active Directory predeterminado
creado para un portal utiliza la misma aplicación de Azure Active Directory para autenticar el portal. La
autorización se aplica mediante roles asignados al usuario que accede al portal.
Puede ver la aplicación de portal asociada en Azure Active Directory. El nombre de esta aplicación será Microsoft
CRM Portal y el ID de portal está en el campo URI de identificador de aplicación de la aplicación de Azure
Active Directory. La persona que aprovisiona el portal es propietaria de la aplicación. No debería eliminar o
modificar esta aplicación, o podría romper la funcionalidad del portal. Debe ser propietario de la aplicación para
administrar un portal desde el centro de administración de los portales de PowerApps.

Clave de autenticación
Para que un portal se conecte con Common Data Service mediante una aplicación Azure Active Directory, se
requiere una clave de autenticación con conexión con la aplicación Azure Active Directory. Esta clave se genera al
proporcionar un portal y la parte pública de esta clave se carga automáticamente en la aplicación de Azure Active
Directory.

IMPORTANT
La clave de autenticación expirará en dos años. Debe renovarse cada dos años para asegurarse de que su portal continúe
conectándose al entorno de Common Data Service. Si no actualiza la clave, el portal dejará de funcionar.
Detalles clave de autenticación
Los detalles de una clave de autenticación se muestran en el centro de administración de los portales de
PowerApps y el portal.
Centro de administración de PowerApps
1. Abra Centro de administración de Portales de PowerApps.
2. Seleccione Administración de la clave de autenticación del portal. La clave de autenticación se
muestra junto con su fecha de expiración y la huella.

Portal
1. Inicie sesión en el portal como administrador.
2. Desplácese a la dirección URL <ruta_portal>/_services/about. Se muestra la fecha de finalización de la clave
de autenticación.

NOTE
Para ver información de la clave de autenticación, debe iniciar sesión en el portal de en la misma sesión del explorador y debe
tener permiso de acceso a todo el sitio Web.

Notificación de la caducidad de claves de autenticación


Antes de que la clave de autenticación caduque, recibirá una notificación por correo electrónico, el centro de
administración de los portales de PowerApps y el portal.
Correo electrónico
Se enviará un correo electrónico a las personas que se han registrado para recibir una notificación por correo
electrónico para la organización conectada a su portal. Para obtener más información sobre cómo registrarse para
recibir una notificación por correo electrónico: administrar notificaciones por correo electrónico para
administradores
Se envían notificaciones por correo electrónico en los siguientes intervalos:
90 días
60 días
30 días
15 días
7 días
6 días
5 días
4 días
3 días
2 días
1 día
12 horas
6 horas
3 horas
También recibirá una notificación cuando la clave expire, cada día, hasta que haya pasado 1 semana desde la
expiración de la clave.

NOTE
Los intervalos se calculan en UTC a partir de la fecha de expiración de la clave.
No se garantiza que el correo electrónico se envíe exactamente en los intervalos indicados más arriba. La notificación por
correo electrónico puede retrasarse o perderse. Asegúrese de comprobar también la fecha de expiración de la clave en
línea.

Centro de administración de PowerApps


Se muestra un mensaje sobre la expiración de la clave en la parte superior de la página.
Portal
Cuando vaya a la dirección URL <ruta_portal>/_services/about, se muestra una notificación sobre la expiración de
la clave en la parte inferior de la página.

NOTE
Debe iniciar sesión en su portal de en la misma sesión del explorador y debe tener asignado permiso de acceso a todo el sitio
Web.

Renovación de la clave de autenticación del portal


Debe renovar la clave cada dos años para asegurarse de que su portal pueda conectarse al entorno de Common
Data Service.
NOTE
Para renovar la clave, debe tener permisos para administrar su portal.

1. Abra Centro de administración de Portales de PowerApps.


2. Seleccione Administración de la clave de autenticación del portal. La clave de autenticación se
muestra junto con su fecha de expiración y la huella.

3. Seleccione Clave de actualización.


4. Seleccione Actualizar en el mensaje. Se inicia el proceso de actualización, y se muestra un mensaje.

NOTE
Mientras este proceso se ejecuta en segundo plano, el portal se reiniciará una vez.
Cuando actualiza una clave, esta se actualiza para dos años.
Este proceso tardará entre cinco y siete minutos.

Solución de problemas
Si se produce un error en la actualización de clave, se muestra un mensaje de error junto con la acción siguiente:
Reintentar la actualización de la clave de autenticación. Esta acción le permite reiniciar el proceso de
actualización de la clave de autenticación del portal. Si la actualización da un error varias veces, póngase en
contacto con el soporte técnico de Microsoft.
Limitar el acceso al portal mediante la dirección IP
25/11/2019 • 4 minutes to read • Edit Online

El portal es público cuando está aprovisionado y accesible para cualquier persona desde cualquier equipo. Ahora
puede limitar el acceso al su portal desde una lista de direcciones IP. Por ejemplo, una organización gubernamental
podría querer hacer visible su contenido solo dentro de su red corporativa. Una organización comercial puede
querer mostrar el portal solo cuando ha sido publicado y no mientras se encuentra en el desarrollo para evitar
cualquier fuga de datos.
Cuando se genera una solicitud al portal por parte de cualquier usuario, se evalúa su dirección IP con la lista de
permitidos. Si la dirección IP no está en la lista, el portal muestra una página web con un código de estado HTTP
403.
Para agregar o quitar direcciones IP, debe tener asignado uno de los roles siguientes:
Administrador global de Office 365
Administrador de servicios. Más información: Uso del rol de administrador de servicios para administrar el
inquilino
Administrador del sistema del entorno de Common Data Service seleccionado para el portal

Agregar una dirección IP


Para permitir el acceso a un portal desde una dirección IP o un conjunto de direcciones IP, puede agregar
direcciones IP a la lista. Esto permite que se acceda al portal solo desde la lista de direcciones IP agregadas. Si no
agrega ninguna dirección IP, el portal será accesiblede desde todas las direcciones IP.
Una vez que agrega una dirección IP a la lista de restricción, el portal será accesible solo para la dirección IP
especificada. Si intenta acceder al portal desde cualquier otra dirección IP, el acceso será denegado se y se
mostrará una página web con un código de estado HTTP 403. El contenido de esta página web es estático y no se
puede modificar.
NOTE
Debe especificar una dirección IP pública a la que pueda acceder el portal. El portal no puede acceder a la dirección IP privada.

1. Abra Centro de administración de Portales de PowerApps.


2. Vaya a Configurar restricción de direcciones IP. Se muestra una lista de direcciones IP y su tipo

3. En la página configuración de restricción de direcciones IP, seleccione Agregar nueva.


4. En la ventana Agregar una dirección IP, especifique los valores siguientes:
Seleccionar tipo de dirección IP: Seleccione si la dirección IP es IPv4 o IPv6.
Especificar la dirección IP en la notación CIDR: Especifique la dirección IP en la notación CIDR.
Más información: Enrutamiento entre dominios sin clase
5. Seleccione Configurar.

Quitar una dirección IP


Para quitar el acceso a un portal de una dirección IP anteriormente permitida, puede quitar la dirección IP de la
lista. Si quita todas las direcciones IP, el portal será accesiblede desde todas las direcciones IP.
1. Abra Centro de administración de Portales de PowerApps.
2. Vaya a Configurar restricción de direcciones IP. Se muestra una lista de direcciones IP y su tipo

3. Seleccione Quitar una dirección IP (x) junto a la dirección IP que desea quitar.
4. Seleccione Quitar en el mensaje de confirmación.
Actualizar al dominio de portales de PowerApps
25/11/2019 • 2 minutes to read • Edit Online

Con la versión preliminar de portales de PowerApps, ahora puede actualizar el dominio de Dynamics 365
microsoftcrmportals.com al dominio de los portales de PowerApps powerappsportals.com .

1. Abra Centro de administración de Portales de PowerApps.


2. Vaya a Acciones del portal > Actualizar al dominio de portales de PowerApps.

3. En Dirección URL del portal, escriba la dirección del sitio web y seleccione Aceptar.
Si ya usa el dominio de los portales de PowerApps y desea revertir al antiguo dominio, puede usar la acción
Actualizar al dominio del portal de PowerApps para revertir al antiguo dominio. En este caso, el mensaje se
muestra de la siguiente manera:
Borrar la memoria caché del servidor para un portal
25/11/2019 • 2 minutes to read • Edit Online

Como administrador de portal, puede borrar la memoria caché de servidor de todo el portal para reflejar los datos
actualizados de Common Data Service inmediatamente en el portal. Las actualizaciones de Common Data Service
se comunican al portal en modo asincrónico, por lo que puede haber conflictos entre la hora en que se actualizan
los datos en Common Data Service y la hora en que los datos actualizados aparecen en el portal. Para eliminar este
retardo—por ejemplo cuando interfiere con la configuración del portal—puede forzar una actualización inmediata
de la memoria caché.

NOTE
La actualización del SLA de la memoria caché (transferencia de datos entre Common Data Service y el portal) dura 15
minutos.

Para borrar la memoria caché del servidor


1. Inicie sesión en el portal como administrador.
2. Navegue a la dirección URL de la siguiente manera: <portal_path>/_services/about

3. Seleccione Borrar caché.


Se elimina la memoria caché del servidor, y los datos se vuelven a cargar de Common Data Service. Tenga en
cuenta que al borrar la memoria caché del servidor de portal se producirá una caída temporal del rendimiento del
portal mientras los datos se vuelven a cargar desde Common Data Service.
Migrar la configuración del portal
25/11/2019 • 8 minutes to read • Edit Online

El desarrollo del portal implica varias configuraciones y personalizaciones para lograr una experiencia deseada
para los usuarios finales del portal.
Después de completar el desarrollo o la configuración de su instancia del portal es posible que desee migrar los
datos más recientes de configuración del portal del entorno de desarrollo al de prueba o al de producción. La
migración implica la exportación de los datos de configuración existentes desde el entorno de Common Data
Service de origen y, a continuación, importarlos en el entorno de Common Data Service de destino.
Para exportar datos de instalación, deberá usar la herramienta Migración de la configuración y un archivo de
esquema de configuración específico del portal. Para obtener más información acerca de esta herramienta,
consulte Administrar datos de configuración.

NOTE
Se recomienda usar la versión más reciente de la herramienta Migración de la configuración. La herramienta Migración de
la configuración se puede descargar de NuGet. Más información para descargar la herramienta: Descargar herramientas de
NuGet.
La versión mínima de la solución de portales que admiten los archivos de esquema para la migración de la configuración
es 8.4.0.275. Sin embargo, se recomienda que use la versión más reciente de la solución.

Los archivos de esquema están disponibles para los tipos de portal siguientes:
Portal de la comunidad
Portal de autoservicio de clientes
Portal de asociados
Portal de autoservicio de empleados
Portal personalizado
El archivo de esquema predeterminado contiene información sobre las entidades, relaciones y definiciones de la
exclusividad del portal para cada entidad. Más información: Exportar datos de configuración del portal
Después de exportar los datos de configuración, debe importarlos en el entorno de destino. Más información:
Importar datos de configuración del portal

NOTE
Los archivos de esquema se proporcionan para reducir el esfuerzo necesario para crear un esquema desde cero. El esquema
se puede adaptar para implementación mediante los métodos estándar que proporciona la herramienta. Los archivos de
esquema se pueden cargar en la herramienta Migración de la configuración y modificar para agregar, quitar y modificar
entidades, atributos, etc.

Exportar datos de configuración del portal


Puede exportar los datos de configuración del portal desde un sistema de origen utilizando archivos
predeterminados de esquema de configuración específicos del portal.
1. Descargue la herramienta Migración de la configuración y extráigala en la carpeta deseada.
2. Descargue un archivo de esquema de configuración del portal con los vínculos proporcionados
anteriormente para el tipo de portal.
3. Haga doble clic en el archivo de DataMigrationUtility.exe en la carpeta
<your_folder>\Tools\ConfigurationMigration para ejecutar la herramienta Migración de la configuración,
elija Exportar datos en la pantalla principal y luego seleccione Continuar.

4. En la pantalla Iniciar sesión, proporcione los detalles de autenticación para conectarse al entorno de
Common Data Service desde donde desea exportar los datos. Si tiene varias organizaciones en el entorno
de Common Data Service desde donde exportar los datos, active la casilla Mostrar la lista de
organizaciones disponibles y después seleccione Iniciar sesión.

5. Si tiene varias organizaciones y había activado la casilla Mostrar la lista de organizaciones disponibles
en el paso anterior, la próxima pantalla le permitirá elegir la organización con la que desea conectarse.
Seleccione un entorno de Common Data Service para conectarse.
NOTE
Si no tiene varias organizaciones, no se muestra esta pantalla.

6. En Archivo de esquema, busque y seleccione el archivo de esquema de configuración específico del portal
que se usará para exportación de datos.
7. En Guardar en archivo de datos, especifique el nombre y la ubicación de archivo de datos que desea
exportar.

8. Seleccione Exportar datos. La pantalla muestra el estado de progreso de la exportación y la ubicación del
archivo exportado en la parte inferior de la pantalla una vez terminada la exportación.
IMPORTANT
La herramienta Configuration Migration no admite el filtrado de registros en una entidad. De forma predeterminada,
se exportarán todos los registros de la entidad seleccionada. Por tanto, si ha creado más de un registro de sitio web,
todos los registros de sitio web se exportarán.

9. Seleccione Salir para cerrar la herramienta.

Importar datos de configuración del portal


1. Ejecute la herramienta Migración de la configuración y seleccione Importar datos en la pantalla principal y,
a continuación seleccione Continuar.

2. En la pantalla Iniciar sesión, proporcione los detalles de autenticación para conectarse al entorno de
Common Data Service desde donde desea exportar los datos. Si tiene varias organizaciones en el entorno
de Common Data Service desde donde exportar los datos, active la casilla Mostrar la lista de
organizaciones disponibles y después seleccione Iniciar sesión.
3. Si tiene varias organizaciones y había activado la casilla Mostrar la lista de organizaciones disponibles
en el paso anterior, la próxima pantalla le permitirá elegir la organización con la que desea conectarse.
Seleccione un entorno de Common Data Service para conectarse.

NOTE
Si no tiene varias organizaciones, no se muestra esta pantalla.
Asegúrese de que la solución de portal ya está instalada para la organización donde tenga previsto importar las
configuraciones.

4. La siguiente pantalla le pide que facilite el archivo de datos (.zip) que se importa. Busque el archivo de datos,
selecciónelo y, a continuación, seleccione Importar datos.
5. La pantalla siguiente muestra el estado de importación de sus registros. La importación de datos se realiza
en múltiples pasos para importar primero los datos de base mientras se sitúan en cola los datos
dependientes, y después se importan los datos dependientes en las pasadas posteriores para administrar las
vinculaciones o dependencias de datos. Esto asegura una importación limpia y coherente de los datos.
6. Seleccione Salir para cerrar la herramienta.
Acerca del ciclo de vida de portales
25/11/2019 • 5 minutes to read • Edit Online

Un portal se crea siempre como prueba. Un portal de prueba, que expira después de 30 días, es útil para probar
sus funciones sin coste alguno. Después de la caducidad, se suspende y se cierra un portal. Siete días después de la
suspensión, el portal de prueba se elimina. En cada cambio de fase del ciclo de vida del portal, por ejemplo, al
aproximarse la suspensión, suspendido, eliminado y convertido de prueba a producción, recibirá notificaciones del
sistema y mediante correo electrónico.
Como administrador, puede convertir un portal en prueba o suspendido a un portal de producción. Mientras
convierte un portal de prueba a producción, asegúrese de que el entorno es también un entorno de producción. No
es posible convertir un portal de prueba en producción en un entorno de prueba. Si elimina el entorno en el que se
crea un portal de prueba, el portal también se elimina.
El primer portal se crea gratis en un entorno en un inquilino. Si necesita crear más de un portal, debe tener 1 GB
de espacio de almacenamiento no usado en el inquilino.

Fases en el ciclo de vida del portal


Portal de prueba
Un portal se crea siempre como portal de prueba. Puede convertirlo a producción desde el Centro de
administración de portales de PowerApps si tiene las licencias requeridas. Para obtener información sobre
convertir un portal de prueba a producción, consulte Convertir un portal de prueba en producción.
Para convertir un portal de prueba en producción, el entorno debe tener complementos requeridos para usuarios
externos, o una licencia para usuarios internos. Para obtener más información sobre las licencias, consulte
Preguntas frecuentes sobre licencias de PowerApps y Microsoft Flow y Licencias de portales de PowerApps.
Portal suspendido
Seguirán mostrándose notificaciones en el Centro de administración de portales de PowerApps sobre la caducidad
del portal de prueba. Los portales de prueba expiran después de 30 días. Si no convierte el portal a producción en
el período de prueba, el portal se cierra y se sitúa en estado suspendido. No podrá obtener acceso al portal
después de su caducidad.
Sin embargo, el portal suspendido se puede seguir convertiendo a producción en un plazo de siete días de la
suspensión.
Portal eliminado
Si no convierte el portal a producción en el período de siete días desde la suspensión, se elimina el portal. Los
datos del portal no se eliminan del entorno, pero el espacio usado por el portal en un entorno se liberará, y podrá
crear un nuevo portal.

Convertir un portal de prueba a producción


Puede convertir un portal de prueba a producción desde las notificaciones mostradas en el Centro de
administración de portales de PowerApps.
NOTE
Debe tener asignado uno de los siguientes roles para convertir un portal de prueba a producción:
Administrador global
Administrador del sistema

Al abrir el Centro de administración de portales de PowerApps y navegar a la pestaña Detalles del portal, verá la
notificación sobre la caducidad de prueba mostrada en el campo Tipo.

En otras páginas en el centro de administración, la notificación se muestra en la parte superior de la página.


Para convertir un portal de prueba a producción:
1. En la notificación, seleccione Convertir.
2. Seleccione Confirmar.
Aplicación Administración del portal
25/11/2019 • 2 minutes to read • Edit Online

La aplicación Administración del portal permite realizar acciones de configuración avanzadas en el portal.
La aplicación está disponible después de que la base de datos en Common Data Service se cree
correctamente.
Para abrir la aplicación Administración del portal, vaya a la sección Las aplicaciones en la página principal
de PowerApps, busque la aplicación Administración del portal y, selecciónela.

La aplicación Administración del portal se abre en la interfaz unificada. Puede configurar el portal según
sus requisitos.
Configurar opciones del sitio para portales
25/11/2019 • 8 minutes to read • Edit Online

Una configuración del sitio es un valor configurable con nombre que usa el código del sitio web para modificar el
comportamiento o el estilo visual del portal. Normalmente cuando un desarrollador crea el código de sitio web,
hará referencia a la configuración del sitio para los distintos componentes para permitir a un usuario final
modificar los valores de configuración para modificar el sitio web sin tener que cambiar el código, recopilar y
volver a implementar el sitio web.
Los portales de ejemplo que se proporcionan con la instalación de portales de PowerApps contienen varias
configuraciones ajustables del sitio para diversos estilos usados para editar muchos elementos visuales dentro del
sitio, como estilo de fondo, color del texto, y ancho del diseño. Puede administrar los siguientes tipos de
configuraciones de sitio:
Configuración de portal global: Esta configuración se aplica a todos los portales asociados con el entorno
Common Data Service donde se agregan.
Configuración de sitio de portal: Esta configuración se aplica a todos los portales específicos (registros de
página web) asociados con el entorno Common Data Service donde se agregan.

Administrar la configuración del sitio de portal


1. Vaya a configuración de portal y seleccione Configuración del sitio.
2. Para crear un nuevo ajuste, seleccione Nuevo.
3. Para editar un ajuste existente, seleccione la Configuración del sitio incluida en la cuadrícula.
4. Especifique valores para los campos proporcionados:
Nombre: Una etiqueta a la que hace referencia el código del sitio web para recuperar el valor
apropiado. El nombre debe ser único para el sitio web asociado, ya que el código que recupera el
valor tomará el primer registro que encuentre con el nombre coincidente.
Sitio web: El sitio web asociado.
Valor: El valor
Descripción: El objetivo del valor o instrucciones especiales.
5. Seleccione Guardar y cerrar.

NOTE
La integración de mapas de Bing no se admite en el entorno de la nube soberana alemana. Si intenta crear la configuración
de mapas de Bing/credenciales en este entorno, se mostrará un mensaje de error.

Configuración del sitio del portal


NOMBRE VALUE DESCRIPCIÓN
NOMBRE VALUE DESCRIPCIÓN

Authentication/Registration/RequiresCo FALSE Un valor booleano de True habilita la


nfirmation confirmación por correo electrónico y
deshabilita el registro abierto. Valor
predeterminado: False

Authentication/Registration/RequiresIn FALSE Un valor booleano de True habilita la


vitation característica de código de invitación y
deshabilita el registro abierto. Valor
predeterminado: False

conference-name Conferencia de portales El nombre de un registro


adx_conference que representa la
conferencia para un portal
determinado.

HelpDesk/CaseEntitlementEnabled TRUE Valor booleano que indica si está


habilitado el derecho del caso del
Servicio de asistencia. Valor
predeterminado: false

HelpDesk/Deflection/DefaultSelectedPr El nombre de un registro del producto


oductName que es el producto predeterminado
seleccionado en la lista desplegable
mostrada en la desviación de caso del
Servicio de asistencia si hay más de un
producto donde producttypecode sea
igual a 100000001.

Profile/ForceSignUp FALSE Un valor booleano cuando se establece


en “True” forzará al usuario a actualizar
la información de su perfil antes de que
reciba acceso al contenido de la página
web. Valor predeterminado: False

Profile/ShowMarketingOptionsPanel TRUE Valor booleano que indica si se muestra


el panel que enumera los campos para
especificar las preferencias de
comunicación de marketing en el perfil.
Valor predeterminado: False

Búsqueda / Habilitado TRUE Un valor booleano que indica si la


búsqueda está habilitada o no.

Filtro de búsqueda Content:adx_webpage;Events:adx_event Una recopilación de opciones de filtro


,adx_eventschedule; del nombre lógico de búsqueda. Definir
Blogs:adx_blog,adx_blogpost,adx_blogp un valor aquí agregará opciones de
ostcomment; filtro desplegable a la búsqueda en
Forums:adx_communityforum,adx_com todo el sitio. Este valor debe tener la
munityforumthread,adx_communityforu forma de pares nombre / valor, con
mpost; nombre y valor separados por dos
Ideas:adx_ideaforum,adx_idea,adx_ideac puntos, y pares separados por punto y
omment; coma.
Issues:adx_issueforum,adx_issue,adx_iss Por ejemplo: “Foros:
uecomment;Help Desk:incident adx_communityforum,
adx_communityforumthread,
adx_communityforumpost; Blogs:
adx_blog, adx_blogpost,
adx_blogpostcomment”.
NOMBRE VALUE DESCRIPCIÓN

Buscar/IndexQueryName Búsqueda del portal El nombre de la vista del sistema usada


por la consulta de búsqueda del portal.
Valor predeterminado: Búsqueda del
portal

Consulta y búsqueda +(@Query) _title:(@Query) Reemplazar consulta para búsqueda del


_logicalname:adx_webpage~0.9^0.2 sitio, para aplicar ponderaciones
-_logicalname:adx_webfile~0.9 adicionales y filtros. @Query es el texto
adx_partialurl:(@Query) de consulta escrito por un usuario.
_logicalname:adx_blogpost~0.9^0.1 - Referencia de la sintaxis de consulta
_logicalname:adx_communityforumthre Lucene:
ad~0.9 https://lucene.apache.org/core/old_versi
oned_docs/versions/2_9_1/queryparser
syntax.html

Buscar/lematizador Inglés El idioma utilizado por el algoritmo de


la lematización de búsqueda de portal.
Valor predeterminado: Inglés

CustomerSupport/DisplayAllUserActiviti FALSE
esOnTimeline

Authentication/[Protocol]/[Provider]/All Permitir la asociación automática a un


owContactMappingWithEmail registro de contacto en función de
correo electrónico. Para obtener más
información, haga clic aquí.

Para valores del sitio relacionados con las diferentes características del portal, consulte:
Identidad de autenticación
Proveedor Azure AD B2C
OAuth 2.0
Open ID Connect
WS -Federation
SAML 2.0
Migrar proveedores de identidad a Azure AD B2C
Buscar contenido de archivo adjunto
Comportamiento y formato del campo de fecha y hora
Agregar ubicación geográfica
Implementar el Reglamento general de protección de datos
Habilitar el almacenamiento en caché de resultados del encabezado y el pie de página

Administrar la configuración de portal global


1. Vaya a configuración de portal y seleccione Configuración del sitio.
2. Vaya a Configuración > Configuración.
3. Para crear un nuevo ajuste, seleccione Nuevo.
4. Para editar un ajuste existente, seleccione la Configuración del sitio incluida en la cuadrícula.
5. Especifique valores para los campos proporcionados:
Nombre: Un nombre exclusivo a la que hace referencia el código para recuperar el valor apropiado.
Valor: El valor
Descripción: El objetivo del valor o instrucciones especiales.
6. Seleccione Guardar y cerrar.

NOTE
La integración de mapas de Bing no se admite en el entorno de la nube soberana alemana. Si intenta crear el valor
BinMap/Key o Adxstudio/ProductivityPack/BingMap/Key en este entorno, se mostrará un mensaje de error.
Configurar la autenticación del portal
25/11/2019 • 5 minutes to read • Edit Online

En una aplicación de portal, un usuario del portal autenticado se asocia con un contacto o un usuario del sistema.
La configuración de portales predeterminada se basa en contactos. Para iniciar sesión, un contacto debe tener la
información de autenticación web adecuada configurada. Los usuarios del portal deben asignarse a roles web para
obtener permisos por encima de los usuarios no autenticados. Para configurar permisos para un rol web,
configure su acceso a páginas web y reglas de control de acceso a sitios web.
La experiencia más reciente de autenticación en el portal permite a los usuarios iniciar sesión con proveedor local
de suscripciones de contacto que prefiera o con una cuenta externa basada en Identidad de ASP.NET.
Autenticación local: La autenticación local es la autenticación basada en formularios común que usa registros
de contacto de una organización de entorno Common Data Service para autenticación. Para crear experiencias
de autenticación personalizadas, los desarrolladores pueden usar la API de identidad ASP.Net para crear
páginas y herramientas de inicio de sesión personalizadas.
Autenticación externa: La autenticación externa se proporciona mediante la API de identidad de ASP.NET.
En este caso, las credenciales de cuenta y la administración de contraseñas se controlan mediante un proveedor
de identidad de terceros. Esto incluye proveedores basados en OpenID como Yahoo! y proveedores basados en
Google y OAuth 2.0 como Twitter, Facebook y Microsoft. Los usuarios se suscriben al portal seleccionando una
identidad externa para registrarse en el portal. Una vez registrada, una identidad externa tiene acceso a las
mismas características que una cuenta local.
El registro de cuentas locales y externas puede usar de códigos de invitación para iniciar sesión, así como del flujo
de trabajo de confirmación de correo electrónico. Además, los administradores del portal pueden habilitar o
deshabilitar cualquier combinación de opciones de autenticación mediante la configuración de sitios del portal.

NOTE
Los usuarios del portal deben tener una dirección de correo electrónico única. Si hay dos o más registros de contactos
(incluidos registros de contactos desactivados) con la misma dirección de correo electrónico, los contactos no podrán
autenticarse en el portal.

Suscripción de cuenta (registro)


Los administradores del portal tienen varias opciones para controlar el comportamiento de suscripción a cuentas.
El registro abierto es la configuración de suscripción menos restrictiva, donde el portal permite registrar una
cuenta de usuario simplemente proporcionando una identidad del usuario. Las configuraciones alternativas
pueden requerir que los usuarios proporcionen un código de invitación o una dirección de correo electrónico
válida para registrarse con el portal. Independientemente de la configuración del registro, las cuentas locales y
externas participan por igual en el flujo de trabajo del registro. Es decir, los usuarios tienen la opción de elegir el
tipo de cuenta al que desean registrarse.

Registro abierto
Durante la suscripción, el usuario tiene la opción de crear una cuenta local (mediante un nombre de usuario y una
contraseña) o de seleccionar una identidad externa de una lista de proveedores de identidad. Si selecciona una
identidad externa, el usuario debe iniciar sesión a través del proveedor de identidad elegido para probar que posee
la cuenta externa. En cualquier caso, el usuario inmediatamente se registra y autentica en el portal. Un nuevo
registro de contacto se crea en el entorno de Common Data Service tras la suscripción.
Con el registro abierto habilitado, no es necesario que los usuarios proporcionen un código de invitación para
completar el proceso de suscripción.
Vea también
Establecer identidad de autenticación para un portal
Establecer identidad de autenticación para un portal
25/11/2019 • 26 minutes to read • Edit Online

Los portales proporcionan funcionalidad de autenticación basada en la API de Identidad ASP.NET. La identidad
ASP.NET a su vez se basa en el marco OWIN que también es un componente importante del sistema de
autenticación. Los servicios proporcionados incluyen:
Inicio de sesión de usuario local (nombre de usuario y contraseña)
Inicio de sesión de usuario externo (proveedor social) a través de proveedores de identidad terceros
Autenticación bifactorial con correo electrónico
Confirmación de dirección de correo electrónico
Recuperación de contraseña
Registro de código de invitación para registrar registros de contacto pregenerados

NOTE
El campo Teléfono móvil confirmado en el formulario Contacto del portal de la entidad Contacto actualmente no
responde a ningún propósito. Este campo debe utilizarse solo al actualizar desde Adxstudio Portals.

Requisitos
Los portales requieren:
Portales base
Identidad de Microsoft
Paquetes de la solución Flujos de trabajo de identidad de Microsoft

Información general sobre autenticación


Los visitantes del portal que repiten tienen la opción de autenticarse mediante las credenciales de usuario local o
las cuentas de un proveedor de identidad externo. Un nuevo visitante puede registrarse para una cuenta de
usuario proporcionando un nombre de usuario y la contraseña o iniciando sesión mediante un proveedor
externo. Los visitantes que reciben un código de invitación (enviado por el administrador de portal) tienen la
opción de canjear el código en el proceso de suscribirse a una nueva cuenta de usuario.
Valores relacionados de la ubicación:
Authentication/Registration/Enabled
Authentication/Registration/LocalLoginEnabled
Authentication/Registration/ExternalLoginEnabled
Authentication/Registration/OpenRegistrationEnabled
Authentication/Registration/InvitationEnabled
Authentication/Registration/RememberMeEnabled
Authentication/Registration/ResetPasswordEnabled

Iniciar sesión con una identidad local o una identidad externa


Suscripción con una identidad local o una identidad externa

Canjee un código de invitación manualmente

Olvidó contraseña o reinicio de contraseña


Los visitantes que repiten y que necesitan restablecer la contraseña (y que hayan especificado previamente una
dirección de correo electrónico en su perfil de usuario) tienen la opción de solicitar el envío de un token de
restablecimiento de contraseña a su cuenta de correo electrónico. Un token de restablecimiento permite que el
propietario elija una nueva contraseña. Como alternativa, el token se puede abandonar dejando a los usuarios su
contraseña original sin modificar.
Valores relacionados de la ubicación:
Authentication/Registration/ResetPasswordEnabled
Authentication/Registration/ResetPasswordRequiresConfirmedEmail

Proceso relacionado: Enviar restablecimiento de contraseña al contacto


1. Personalizar el correo electrónico en el flujo de trabajo según sea necesario.
2. Enviar un correo electrónico para llamar al proceso.
3. Solicitar al visitante que compruebe el correo electrónico.
4. El visitante recibe el correo electrónico de restablecimiento de contraseña con instrucciones.
5. El visitante vuelve al formulario de restablecimiento.
6. El restablecimiento de contraseña se ha completado..

Canjear una invitación


Canjear un código de invitación permite a un visitante que se registra asociarse a un registro de contacto
existente que se preparó de antemano específicamente para ese visitante. Normalmente, los códigos de
invitación son enviados por correo electrónico, pero puede usar un formulario de envío de código general para
enviar los códigos a través de otros canales. Después de que se envíe un código de invitación válido, el proceso
de registro de usuario normal (suscripción) se realiza para configurar la nueva cuenta de usuario.
Valores relacionados de la ubicación:
Authentication/Registration/InvitationEnabled

Proceso relacionado: Enviar invitación


El correo electrónico enviado por este flujo de trabajo se debe personalizar con la dirección URL a la página de
invitación de canjeo en el portal: https://portal.contoso.com/register/?returnurl=%2f&invitation={Invitation
Code(Invitation)}
1. Cree una invitación para un nuevo contacto.

2. Personalice y guarde la nueva invitación.

3. Proceso: Enviar invitación


4. Personalice el correo electrónico de invitación.
5. El correo electrónico de invitación abre la página de canje.
6. El usuario se suscribe con el código de invitación enviado.

Administrar cuentas de usuario a través de páginas del perfil


Los usuarios autenticados administran sus cuentas de usuario a través de la barra de navegación Seguridad de
la página del perfil. Los usuarios no está limitados a la cuenta local individual o a una sola cuenta externa elegida
en el tiempo del registro del usuario. Los usuarios con una cuenta externa pueden crear una cuenta local
aplicando un nombre de usuario y una contraseña. Los usuarios que comenzaron con una cuenta local pueden
asociar múltiples identidades externas a su cuenta. La página del perfil también es donde se recuerda al usuario
que confirme su dirección de correo electrónico solicitando el envío de un correo de confirmación a su cuenta de
correo electrónico.
Valores relacionados de la ubicación:
Authentication/Registration/LocalLoginEnabled
Authentication/Registration/ExternalLoginEnabled
Authentication/Registration/TwoFactorEnabled

Establecer o cambiar una contraseña


Un usuario con una cuenta local existente puede aplicar una nueva contraseña suministrando la contraseña
original. Un usuario sin una cuenta local puede elegir un nombre de usuario y una contraseña para configurar
una nueva cuenta local. El nombre de usuario no se puede cambiar después de establecer.
Valores relacionados de la ubicación:
Authentication/Registration/LocalLoginEnabled

Proceso relacionado:
Crear un nombre de usuario y una contraseña.
Cambiar una contraseña existente.

Confirmar una dirección de correo electrónico


Cambiar una dirección de correo electrónico (o establecerla por primera vez) la coloca en estado sin confirmar. El
usuario puede solicitar el envío de un correo electrónico de confirmación a la nueva dirección de correo
electrónico; en el mensaje se incluyen instrucciones para completar el proceso de confirmación de correo
electrónico.
Proceso relacionado: enviar una confirmación de correo electrónico a un contacto
1. Personalizar el correo electrónico en el flujo de trabajo según sea necesario.
2. El usuario envía un nuevo correo electrónico, que se encuentra en un estado sin confirmar.
3. El usuario comprueba el correo electrónico para confirmación.
4. Proceso: Enviar confirmación de correo electrónico a contacto
5. Personalice el correo electrónico de confirmación.
6. El usuario hace clic en el vínculo de confirmación para completar el proceso de confirmación.

NOTE
Asegúrese de que se ha especificado el correo electrónico principal del contacto porque el mensaje de confirmación se envía
solo para el correo electrónico principal (emailaddress1) del contacto. La confirmación del correo electrónico no se enviará al
correo electrónico secundario (emailaddress2) o correo electrónico alternativo (emailaddress3) del registro de contacto.

Habilitar autenticación bifactorial


La característica de autenticación en dos fases incrementa la seguridad de la cuenta de usuario solicitando prueba
de propiedad de un correo electrónico confirmado además del inicio de sesión en la cuenta local o externa
estándar. Un usuario que intenta iniciar sesión en una cuenta con autenticación bifactorial activada recibe un
código de seguridad en el correo electrónico confirmado asociados a su cuenta. El código de seguridad se debe
enviar para completar el proceso de inicio de sesión. Un usuario puede optar por recordar el explorador que ha
pasado correctamente la verificación de modo que el código de seguridad no será necesario para inicios de
sesión posteriores desde el mismo explorador. Cada cuenta de usuario habilita esta característica individualmente
y requiere un correo electrónico confirmado.

WARNING
Si crea y permite la configuración del sitio Authentication/Registration/MobilePhoneEnabled para habilitar la
funcionalidad antigua, se producirá un error. Este valor de sitio no se proporciona de manera predefinida y no lo admiten
los portales.

Valores relacionados de la ubicación:


Authentication/Registration/TwoFactorEnabled
Authentication/Registration/RememberBrowserEnabled

Proceso relacionado: enviar un correo electrónico con el código de dos fases a un contacto
1. Habilitar autenticación bifactorial.
2. Elija la opción para recibir el código de seguridad por correo electrónico.
3. Espere al correo electrónico que contiene el código de seguridad.
4. Proceso: Enviar código bifactorial de correo electrónico al contacto.
5. La autenticación bifactorial puede deshabilitarse.

Administrar cuentas externas


Un usuario autenticado puede conectar (registrar) varias identidades externas a su cuenta de usuario, uno de
cada uno de los proveedores de identidad configurados. Después de conectar las identidades, el usuario puede
optar por iniciar sesión con cualquiera de las identidades conectadas. Las identidades existentes también se
pueden desconectar mientras se mantenga una sola identidad externa o local.
Valores relacionados de la ubicación:
Authentication/Registration/ExternalLoginEnabled

Configuración del sitio del proveedor de identidad externo


1. Seleccione un proveedor para conectarse a su cuenta de usuario.

2. Inicie sesión con el proveedor que quiera usar para conectarse.


El proveedor está conectado. Igualmente, el proveedor puede desconectarse.

Habilitar autenticación de identidad de ASP.NET


La siguiente información describe la configuración para habilitar y deshabilitar las diferentes características y
comportamientos de autenticación:

NOMBRE DE CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/Registration/LocalLoginEnabled Habilita o deshabilita el inicio de sesión de cuenta local


basado en nombre del usuario (o correo electrónico) y
contraseña. Valor predeterminado: false

Authentication/Registration/LocalLoginByEmail Habilita o deshabilita el inicio de sesión de cuenta local


usando un campo de dirección de correo electrónico en lugar
de un campo de nombre de usuario. Valor predeterminado:
false

Authentication/Registration/ExternalLoginEnabled Habilita o deshabilita el inicio de sesión y el registro de la


cuenta externa. Valor predeterminado: true

Authentication/Registration/RememberMeEnabled Selecciona o desactiva la casilla ¿Recordarme? en el inicio de


sesión local para permitir que las sesiones autenticadas
persistan incluso al cerrarse el explorador web. Valor
predeterminado: true
NOMBRE DE CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/Registration/TwoFactorEnabled Habilita o deshabilita la opción para que los usuarios habiliten


autenticación bifactorial. Los usuarios que tienen una
dirección de correo electrónico confirmada pueden suscribirse
a la seguridad adicional de la autenticación bifactorial. Valor
predeterminado: false

Authentication/Registration/RememberBrowserEnabled Selecciona o desactiva una casilla ¿Recordarme? en la


validación bifactorial (código de correo electrónico) para
persistir la validación bifactorial del explorador actual. No se
requerirá al usuario que pase la validación bifactorial para
posteriores inicios de sesión mientras utilice el mismo
explorador. Valor predeterminado: true

Authentication/Registration/ResetPasswordEnabled Habilita o deshabilita la característica de reinicio de


contraseña. Valor predeterminado: true

Authentication/Registration/ResetPasswordRequiresConfirme Habilita o deshabilita el reinicio de la contraseña de las


dEmail direcciones de correo electrónico confirmadas solo. Si están
habilitada, las direcciones de correo electrónico sin confirmar
no se pueden usar para enviar instrucciones de reinicio de
contraseña. Valor predeterminado: false

Authentication/Registration/TriggerLockoutOnFailedPassword Habilita o deshabilita el registro de intentos de contraseña


con error. Si está habilitada, las cuentas de usuario no serán
bloqueadas. Valor predeterminado: "true".

Authentication/Registration/IsDemoMode Habilita o deshabilita un indicador de modo de demostración


que se usará solo en entornos de desarrollo o demostración.
No habilite este valor en entornos de producción. El modo de
demostración también requiere que el explorador web se
ejecute localmente en el servidor de aplicaciones web.
Cuando se habilita el modo de demostración, el código de
reinicio de contraseña y el código bifactorial se muestran al
usuario para el acceso rápido. Valor predeterminado: false
NOMBRE DE CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/Registration/LoginButtonAuthenticationType Si un portal solo requiere un proveedor de identidad externo


(para administrar toda la autenticación), esto permite al
botón Iniciar sesión de la barra de navegación del
encabezado vincularse directamente con la página de inicio
de sesión de dicho proveedor de identidad externo (en lugar
de vincularse al formulario de inicio de sesión local intermedio
y la página de selección del proveedor de identidad). Sólo se
puede seleccionar un único proveedor de identidad para esta
acción. Especifique el valor de AuthenticationType del
proveedor.
Para un perfil de configuración de inicio de sesión único
mediante OpenIdConnect, como el uso de Azure Active
Directory B2C, el usuario debe proporcionar la autoridad.
Para proveedores basados en OAuth2 los valores aceptados
son:
Facebook, Google, Yahoo, [!INCLUDE[cc-microsoft]
(../../../includes/cc-microsoft.md)], LinkedIn,
Yammer,
o Twitter
Para proveedores basados en WS-Federation, use el valor
especificado para la configuración del sitio
Authentication/WsFederation/ADFS/AuthenticationType
y
Authentication/WsFederation/[!INCLUDE[pn-azure-
shortest](../../../includes/pn-azure-shortest.md)]/\
[provider\]/AuthenticationType
. Ejemplos: https://adfs.contoso.com/adfs/services/trust
Facebook-0123456789, Google, Yahoo!, uri:WindowsLiveID.

Habilitar o deshabilitar registros de usuario


La siguiente información describe la configuración para habilitar y deshabilitar las opciones de registro de
usuario (suscripción):

NOMBRE DE CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/Registration/Enabled Habilita o deshabilita todos los formularios de registro de


usuario. El registro debe estar habilitada para que los otros
valores en esta sección surtan efecto. Valor predeterminado:
true

Authentication/Registration/OpenRegistrationEnabled Habilita o deshabilita el formulario de registro de suscripción


para crear nuevos usuarios locales. El formulario de
suscripción permite que cualquier visitante anónimo al portal
cree una cuenta de usuario nueva. Valor predeterminado:
true

Authentication/Registration/InvitationEnabled Habilita o deshabilita el formulario de canje del código de


invitación para registrar usuarios que posean códigos de
invitación. Valor predeterminado: true

Authentication/Registration/CaptchaEnabled Habilita o deshabilita captcha en la página de registro de


usuarios. Valor predeterminado: false
Nota: esta configuración de sitio puede no estar disponible
de forma predeterminada. Para habilitar captcha, debe crear
la configuración del sitio y establecer su valor en verdadero.
NOMBRE DE CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

NOTE
Asegúrese de que el correo electrónico principal está especificado para el usuario porque el registro se realiza usando el
correo electrónico principal (emailaddress1) del usuario. El usuario no se puede registrar usando el correo electrónico
secundario (emailaddress2) o correo electrónico alternativo (emailaddress3) del registro de contacto.

Validación de credenciales de usuario


La siguiente información describa la configuración para para ajustar parámetros de validación de nombre de
usuario y contraseña. La validación se produce cuando el usuario se suscribe a una nueva cuenta local o modifica
una contraseña.

NOMBRE DE CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/UserManager/PasswordValidator/EnforcePass Si la contraseña contiene caracteres de tres de las siguientes


wordPolicy categorías:
Letras mayúsculas de los idiomas europeos (A a z, con
marca diacríticas, caracteres griegos y cirílicos)
Letras minúsculas de los idiomas europeos (A a z, s
cerrada, con marca diacríticas, caracteres griegos y
cirílicos)
Dígitos de Base 10 (de 0 a 9)
Caracteres no alfanuméricos (caracteres especiales)
(por ejemplo, !, $, #, %)
Valor predeterminado: true. Consulte Directiva de
contraseñas para obtener más información.

Authentication/UserManager/UserValidator/AllowOnlyAlphan Si permite solo caracteres alfanuméricos para el nombre de


umericUserNames usuario. Valor predeterminado: false. Para obtener más
información consulte UserValidator<TUser,
TKey>.AllowOnlyAlphanumericUserNames.

Authentication/UserManager/UserValidator/RequireUniqueE Si se necesita correo electrónico único para validar el usuario.


mail Valor predeterminado: true. Para obtener más información
consulte UserValidator<TUser, TKey>.RequireUniqueEmail.

Authentication/UserManager/PasswordValidator/RequiredLen La longitud de contraseña mínima requerida. Opción


gth predeterminada: 8. Para obtener más información consulte
PasswordValidator.RequiredLength.

Authentication/UserManager/PasswordValidator/RequireNon Si la contraseña requiere un carácter que no sea letra o dígito.


LetterOrDigit Valor predeterminado: false. Para obtener más información
consulte PasswordValidator.RequireNonLetterOrDigit.

Authentication/UserManager/PasswordValidator/RequireDigit Si la contraseña requiere un dígito numérico ( de 0 a 9). Valor


predeterminado: false. Para obtener más información
consulte PasswordValidator.RequireDigit.

Authentication/UserManager/PasswordValidator/RequireLow Si la contraseña requiere una letra minúscula ( de la "a", a la


ercase "z"). Valor predeterminado: false. Para obtener más
información consulte PasswordValidator.RequireLowercase.
NOMBRE DE CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/UserManager/PasswordValidator/RequireUpp Si la contraseña requiere una letra mayúscula ( de la "a", a la


ercase "z"). Valor predeterminado: false. Para obtener más
información consulte PasswordValidator.RequireUppercase.

Configuración de bloqueo de cuenta del usuario


La siguiente información describe la configuración que define cuándo y cómo una cuenta pasa a estar bloqueada
para autenticación. Cuando se detecta un determinado número de intentos de contraseña fallidos en un período
de tiempo corto, la cuenta de usuario se bloquea por un período de tiempo. El usuario puede intentar de nuevo
cuando transcurra el período de bloqueo.

NOMBRE DE CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/UserManager/UserLockoutEnabledByDefault Indica si el bloqueo del usuario está activado cuando se crean


usuarios. Valor predeterminado: true. Para obtener más
información consulte UserManager<TUser,
TKey>.UserLockoutEnabledByDefault.

Authentication/UserManager/DefaultAccountLockoutTimeSp El periodo de tiempo predeterminado que un usuario está


an bloqueado después de llegar a
Authentication/UserManager/MaxFailedAccessAttemptsBefor
eLockout. Valor predeterminado: 24:00:00 (1 día). Para
obtener más información consulte UserManager<TUser,
TKey>.DefaultAccountLockoutTimeSpan.

Authentication/UserManager/MaxFailedAccessAttemptsBefor El número máximo de intentos de acceso permitidos antes de


eLockout que un usuario quede bloqueado (si está habilitado el
bloqueo). Opción predeterminada: 5. Para obtener más
información consulte UserManager<TUser,
TKey>.MaxFailedAccessAttemptsBeforeLockout.

Authentication/ApplicationCookie/ExpireTimeSpan La cantidad predeterminada de tiempo para las que son


válidas las sesiones de autenticación de cookie. Valor
predeterminado: 24:00:00 (1 día). Para obtener más
información consulte
CookieAuthenticationOptions.ExpireTimeSpan.

Configuración del sitio de autenticación de cookies


Configuración para modificar el comportamiento predeterminado de la cookie de autenticación. Definido por la
clase CookieAuthenticationOptions.

NOMBRE DE CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/ApplicationCookie/AuthenticationType El tipo de cookie de autenticación de la aplicación.


Predeterminada: ApplicationCookie. Para obtener más
información: AuthenticationOptions::AuthenticationType.

Authentication/ApplicationCookie/CookieName Determina el nombre de cookie empleado para persistir la


identidad. Predeterminada: .AspNet.Cookies. Para obtener
más información: CookieAuthenticationOptions::CookieName.
NOMBRE DE CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/ApplicationCookie/CookieDomain Determina el dominio empleado para crear la cookie. Para


obtener más información:
CookieAuthenticationOptions::CookieDomain.

Authentication/ApplicationCookie/CookiePath Determina la ruta emplead apara crear la cookie.


Predeterminada: /. Para obtener más información:
CookieAuthenticationOptions::CookiePath.

Authentication/ApplicationCookie/CookieHttpOnly Determina si el explorador debe permitir que el javascript del


cliente acceda a la cookie. Valor predeterminado: true. Para
obtener más información:
CookieAuthenticationOptions::CookieHttpOnly.

Authentication/ApplicationCookie/CookieSecure Determina si la cookie debe transmitirse solo en la solicitud


HTTPS. Predeterminada: SameAsRequest. Para obtener más
información: CookieAuthenticationOptions::CookieSecure.

Authentication/ApplicationCookie/ExpireTimeSpan Controla el tiempo que la cookie de la aplicación seguirá


siendo válida a partir del punto que se crea. Valor
predeterminado: 14 días. Para obtener más información:
CookieAuthenticationOptions::ExpireTimeSpan.

Authentication/ApplicationCookie/SlidingExpiration SlidingExpiration se establece en True para indicar al


middleware que vuelva a emitir una nueva cookie con una
nueva hora de expiración cada vez que procesa una solicitud
que sea más de la mitad de la ventana de expiración. Valor
predeterminado: true. Para obtener más información:
CookieAuthenticationOptions::SlidingExpiration.

Authentication/ApplicationCookie/LoginPath La propiedad LoginPath informa al middleware que debe


cambiar un código de estado saliente 401 No autorizado por
una redirección 302 en la ruta de inicio de sesión dada.
Predeterminada: ~/signin. Para obtener más información:
CookieAuthenticationOptions::LoginPath.

Authentication/ApplicationCookie/LogoutPath Si el LogoutPath recibe el middleware, una solicitud a esa ruta


se redirigirá en función del ReturnUrlParameter. Para obtener
más información: CookieAuthenticationOptions::LogoutPath.

Authentication/ApplicationCookie/ReturnUrlParameter El ReturnUrlParameter determina el nombre del parámetro de


cadena de consulta que es anexado por el middleware
cuando un código de estado 401 No autorizado se cambia a
una redirección 302 en la ruta de inicio de sesión. Para
obtener más información:
CookieAuthenticationOptions::ReturnUrlParameter.

Authentication/ApplicationCookie/SecurityStampValidator/Val El período de tiempo entre las validaciones de marca de


idateInterval seguridad. Por defecto: 30 minutos. Para obtener más
información: SecurityStampValidator::OnValidateIdentity.

Authentication/TwoFactorCookie/AuthenticationType El tipo de cookie de autenticación de dos factores.


Predeterminada: TwoFactorCookie. Para obtener más
información: AuthenticationOptions::AuthenticationType.
NOMBRE DE CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/TwoFactorCookie/ExpireTimeSpan Controla el tiempo que la cookie de dos factores seguirá


siendo válida a partir del punto que se crea. Por defecto: 5
minutos. Para obtener más información:
CookieAuthenticationOptions::ExpireTimeSpan.

Vea también
Configurar la autenticación del portal
Configuración del proveedor OAuth2 para portales
Configuración de proveedor Open ID Connect para portales
Configuración de proveedor de WS -Federation para portales
Configuración del proveedor SAML 2.0 para portales
Azure AD B2C configuración del proveedor para
portales
25/11/2019 • 20 minutes to read • Edit Online

Azure Active Directory (Azure AD ) activa Office 365 y los servicios de Dynamics 365 para la autenticación interna
o de empleados. Azure Active Directory B2C es una extensión al modelo de autenticación que habilita los inicios de
sesión de clientes externos mediante las credenciales locales y de federación los distintos proveedores de identidad
sociales comunes.
Un propietario de portal puede configurar el portal para aceptar Azure AD B2C como proveedor de identidad.
Azure AD B2C admite Open ID Connect para federación.
Durante la configuración de Azure AD B2C como proveedor de identidad del portal, varios valores se generan que
usará más adelante cuando configure el portal. Puede anotar estos valores en la tabla siguiente. Mientras
configura el portal, reemplace el nombre de variable por los valores que escriba aquí.

NOMBRE DE VARIABLE VALOR DESCRIPCIÓN

Nombre de la aplicación Nombre de la aplicación que representa


el portal como un usuario de confianza

Id. de aplicación El identificador de la aplicación asociado


a la aplicación creada en Azure Active
Directory B2C.

Policy-Signin-URL La dirección URL del emisor (iss)


definida en el extremo de metadatos.

Nombre de la federación Un nombre único para identificar el tipo


de proveedor de federación como
“B2C”. Se usará en los nombres de
configuración de sitio para agrupar las
opciones de configuración de este
proveedor específico.

Use Azure AD AD B2C como proveedor de identidad para el portal


1. Inicie sesión en el portal Azure.
2. Crear un inquilino de Azure AD B2C.
3. Seleccione Azure AD B2C en la barra de navegación más a la izquierda.
4. Cree la aplicación Azure.

NOTE
Debe elegir Sí para el campo Permitir el flujo implícito y especificar la dirección URL de portal en el campo
Dirección URL de respuesta . El valor en el campo Dirección URL de respuesta debe tener el formato [dominio de
portal]/inicio de sesión-[Nombre de la federación]. Por ejemplo,
https://contosocommunity.microsoftcrmportals.com/signin-B2C .
5. Copie el nombre de la aplicación, e incorpórelo como el valor del nombre de la aplicación en la tabla
precedente.
6. Copie el ID de la aplicación, e incorpórelo como el valor del ID de la aplicación en la tabla precedente.
7. Crear una directiva de registro o inicio de sesión.
8. Seleccione la directiva y, a continuación seleccione Editar.
9. Seleccione Token, sesión y configuración de SSO.
10. Del lista Notificación de emisor (iss) , seleccione la dirección URL que tiene /tfp en la ruta.
11. Guarde la directiva.
12. Seleccione la dirección URL en el campo Extremo de metadatos para esta directiva.
13. Copie el valor del campo de emisor e incorpórelo como el valor de la Policy-Signin-URL en la tabla
precedente.

Configuración de portal
Después de crear y configurar el suscriptor de B2C en Azure, debe configurar el portal para federar con Azure AD
B2C mediante el protocolo Open ID Connect. Debe crear un nombre único para la federación a Azure AD B2C —
por ejemplo B2C —y almacenarlo como el valor de la variable Nombre de federación en la tabla anterior.
Configure su portal
1. Abra la aplicación Administración del portal.
2. Vaya a Portales > Páginas web.
3. Seleccione el registro de la página web para el que debe habilitarse Azure AD B2C.
4. Vaya a Configuración del sitio.
5. Cree la siguiente configuración del sitio:
Nombre: Autenticación/OpenIdConnect/[Nombre de federación]/Autoridad
Valor: [Policy-Signin-URL ]
Nombre: Autenticación/OpenIdConnect/[Nombre de federación]/ClientId
Valor: [ID de aplicación]
Nombre: Autenticación/OpenIdConnect/[Nombre de federación]/RedirectUri
Valor: [dominio de portal]/inicio de sesión-[Nombre de federación]
Por ejemplo, https://mysite.com/signin-b2c

6. Para admitir un inicio de sesión federado, cree la siguiente configuración del sitio:
Nombre: Authentication/OpenIdConnect/[Nombre de federación]/ExternalLogoutEnabled
Valor: verdadero
7. Para codificar de forma rígida su portal para un solo proveedor de identidad, cree la siguiente configuración
del sitio:
Nombre: Authentication/Registration/LoginButtonAuthenticationType
Valor: [Policy-Signin-URL ]
8. Para admitir la restauración de la contraseña, cree la configuración necesaria descrita aquí.
9. Para admitir la asignación de notificaciones, cree la configuración necesaria descrita aquí.
Para obtener una lista completa de la configuración del sitio, consulte aquí.
Restablecimiento de contraseña
Se requiere la siguiente configuración del sitio si desea admitir la restauración de la contraseña más con cuentas
locales de Azure AD B2C.

CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/OpenIdConnect/[Nombre de Identificador de la directiva de restauración de contraseña.


federación]/PasswordResetPolicyId

Authentication/OpenIdConnect/[Nombre de Una lista delimitada por comas de emisores que incluye la


federación]/ValidIssuers [Policy-Signin-URL] y el emisor de la directiva de restauración
de contraseña.

Authentication/OpenIdConnect/[Nombre de Identificador de la directiva de inicio de sesión o suscripción.


federación]/DefaultPolicyId

Configuración del sitio relacionada


Puede crear o configurar la siguiente configuración del sitio en portales para admitir Azure AD B2C como
proveedor de identidad:

CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/Registration/ProfileRedirectEnabled Especifica si el portal puede redirigir a usuarios a la página del


perfil después de iniciar sesión correctamente. De forma
predeterminada, se establece como verdadero.

Authentication/Registration/EmailConfirmationEnabled Especifica si la validación de correo electrónico es necesaria. De


forma predeterminada, se establece como verdadero.

Authentication/Registration/LocalLoginEnabled Especifica si se necesita un inicio de sesión local. De forma


predeterminada, se establece como verdadero.

Authentication/Registration/ExternalLoginEnabled Habilita o deshabilita la autenticación externa.

Authentication/Registration/AzureADLoginEnabled Habilita o deshabilita Azure AD como proveedor de identidad


externo. De forma predeterminada, se establece como
verdadero.

Authentication/OpenIdConnect/[Nombre de Habilita o deshabilita el inicio de sesión federado. Si se


federación]/ExternalLogoutEnabled establece en verdadero, los usuarios se redirigen a la
experiencia de usuario de inicio de sesión federado al cerrar
sesión en el portal. Si se establece en falso, los usuarios cierran
sesión solo del portal. De forma predeterminada, se establece
como falso.

Authentication/LoginTrackingEnabled Habilita o deshabilita el seguimiento del último inicio de sesión


del usuario. Si se establece en verdadero, se muestran la fecha
y la hora en el campo Último inicio de sesión correcto en el
registro de contacto. De manera predeterminada, el valor es
falso.
CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/OpenIdConnect/[Nombre de Habilita o deshabilita el requisito de registro para el proveedor


federación]/RegistrationEnabled de identidad existente. Si se establece en verdadero, se habilita
el registro del proveedor existente solo si
Authentication/Registration/Enabled también se establece en
verdadero. De forma predeterminada, se establece como
verdadero.

Authentication/OpenIdConnect/[Nombre de Especifica la dirección URL en el portal a la que se va a redirigir


federación]/PostLogoutRedirectUri a después de que los usuarios cierren sesión.

Fragmento de contenido relacionado


Si el registro está deshabilitado para un usuario después de que el usuario haya redimido una invitación, aparece
un mensaje con el siguiente fragmento de contenido:
Nombre: Account/Register/RegistrationDisabledMessage
Valor: El registro se ha deshabilitado.

Personalizar la interfaz de usuario de Azure AD B2C


Azure AD B2C admite la personalización de la interfaz de usuario. Puede personalizar la experiencia del usuario
para el registro y el inicio de sesión.
Paso 1: Crear una plantilla web
Cree una plantilla web mediante los siguientes valores:
Nombre: página personalizada de Azure AD B2C
Origen: Use el siguiente HTML de origen de plantilla web de ejemplo.

<!DOCTYPE html>
<html lang=en-US>
<head>
<meta charset=utf-8>
<meta name=viewport content=width=device-width, initial-scale=1.0>
<meta http-equiv=X-UA-Compatible content=IE=edge>
<title>
{{ page.title | h }}
</title>
<link href={{ request.url | base }}/bootstrap.min.css rel=stylesheet>
<link href={{ request.url | base }}/theme.css rel=stylesheet>
<style>
.page-heading {
padding-top: 20px;
}
.page-copy {
margin-bottom: 40px;
}
.highlightError {
border: 1px solid #cb2027!important;
background-color: #fce8e8!important;
}
}
.attrEntry .error.itemLevel {
display: none;
color: #cb2027;
font-size: .9em;
}
.error {
color: #cb2027;
}
.entry {
padding-top: 8px;
padding-bottom: 0!important;
}
.entry-item {
margin-bottom: 20px;
}
.intro {
display: inline;
margin-bottom: 5px;
}
.pageLevel {
width: 293px;
text-align: center;
margin-top: 5px;
padding: 5px;
font-size: 1.1em;
height: auto;
}
#panel, .pageLevel, .panel li, label {
display: block;
}
#forgotPassword {
font-size: .75em;
padding-left: 5px;
}
#createAccount {
margin-left: 5px;
}
.working {
display: none;
background:
url(data:image/gif;base64,R0lGODlhbgAKAPMAALy6vNze3PTy9MTCxOTm5Pz6/Ly+vNTS1Pz+/�N0Jp6BUJ9EBIISAQAh+QQJCQAKACxR
AAIABgAGAAAEE1ClYU4RIIMTdCaegVCfRASCEgEAOw==) no-repeat;
height: 10px;
width: auto;
}
.divider {
margin-top: 20px;
margin-bottom: 10px;
}
.divider h2 {
display: table;
white-space: nowrap;
font-size: 1em;
font-weight: 700;
}
.buttons {
margin-top: 10px;
}
button {
width:auto;
min-width:50px;
height:32px;
margin-top:2px;
-moz-border-radius:0;
-webkit-border-radius:0;
border-radius:0;
background:#2672E6;
border:1px solid #FFF;
color:#fff;
color:#fff;
transition:background 1s ease 0s;
font-size:100%;
padding:0 2px
}

button:hover {
background:#0F3E83;
border:1px solid #3079ed;
-moz-box-shadow:0 0 0;
-webkit-box-shadow:0 0 0;
box-shadow:0 0 0
}
.password-label label {
display: inline-block;
vertical-align: baseline;
}
img {
border:0
}
.divider {
margin-top:20px;
margin-bottom:10px
}
.divider h2 {
display:table;
white-space:nowrap;
font-size:1em;
font-weight:700
}
.divider h2:after,.divider h2:before {
border-top:1px solid #B8B8B8;
content:'';
display:table-cell;
position:relative;
top:.7em;
width:50%
}
.divider h2:before {
right:1.8%
}
.divider h2:after {
left:1.8%
}
.verificationErrorText {
color:#D63301
}
.options div {
display:inline-block;
vertical-align:top;
margin-top:7px
}
.accountButton,.accountButton:hover {
background-
image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAh1BMVEX///9QUFBOTk5LS0tERERCQk
I/Pz9ISEg6OjpGRkZNTU08PDyAgID09PSlpaWWlpZxcXFgYGBZWVlUVFT6+vrx8fHt7e3s7Ozo6Oji4uLJycnGxsa4uLiqqqqgoKCNjY2JiYmG
hoZra2tmZmb7+/vu7u7d3d3U1NTNzc2+vr67u7usrKx7e3vprNQnAAAA8klEQVQ4y63Q127DMAxAUZpDwyMeSdqsNqu7/f/va6zahgGJKAr0vg
k6DyQh+6V/BiTOOeNRA9zuAWBdM6WBlPDTvaUUoAuMrT0mgNvA1IJjQB3MKjACvp6DK0WAH+agtH8H9jQHLUUgz7Uhx8xOXzNESxirLCYA2mw8
tacI5FyIYXq8A9ge2Qs6oTnw2e2ruho2rjBcXJ4ADh3jBOQLQnVhRFx2gNDZ4ACogbHXj/ft9Dj5AcgbJFu5AThQWuYBIGmgtAFQo4EFB+CPGt
hJAPypgY3BHsheA5UNwLyAvsYNoDyroKUe4EoFTQ/yDtTONvsGUJ8KTUYyH+UAAAAASUVORK5CYII=);
background-repeat:no-repeat
}
.accountButton {
border:1px solid #FFF;
color:#FFF;
margin-left:0;
margin-right:2px;
transition:background-color 1s ease 0s;
-moz-border-radius:0;
-webkit-border-radius:0;
-webkit-border-radius:0;
border-radius:0;
text-align:center;
word-wrap:break-word;
height:34px;
width:158px;
padding-left:30px;
background-color:#505050;
}
.accountButton:hover {
background-color:#B9B9B9;
border:1px solid #FFF;
-moz-box-shadow:0 0 0;
-webkit-box-shadow:0 0 0;
box-shadow:0 0 0
}
.accountButton:focus {
outline:gold solid 1px
}
#MicrosoftAccountExchange {
background-
image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAPFBMVEU1pe/////t+v4uoe5btvNixP
VVwfUsoe9tyfXU7/y95vu24vrd9f5NtfLH6/ys3/o/sPE6qfD2/f+f2vnAysuQAAAAaElEQVQ4y93SORKAIAwFUEGCsoT1/nd1JkkDFhY24qt+
8VMkk20lu6DAaVBOBsVKsuO8aYo08IqlYyxoRTQExfyKheRIgu5Yl4KoVhSUgNOhoiYRsmb5g2u+LtzXDNOhjKgoAZ9/8k8uZWsGqcIav5wAAA
AASUVORK5CYII=);
background-color:#33A7F2
}
#MicrosoftAccountExchange:hover {
background-color:#ADDBF9
}
#GoogleExchange {
background-
image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAb1BMVEXcTkH////cTD/bSj3ZQDLYOy
zaRDbeV0vbSDrZPS/66Obyv7rsnpfpkorjcWfgZlvXOCr++Pj5393haFz88/L88fD67Or319T1zsv1zsrxuLPuqaLuqKLoi4LlfXTgYlbWMyTW
MiPwtrHwta/fXVH/sCIIAAAAmElEQVQ4y+2RyQ7DIBBDMcwAIXvovqXb/39jRaX0AEmr5px3tSV7PGLhX6TVRFpN61l9zPNS6kn9gDcXO67zDn
CnO2BCiNIyMtgKKJgyY2zQ68JEDtqju0nFTcOsxPUMw1GDDUqt+tY51/YNVlhvacTgEfCDIY0Q/lkBSg4RaUmmDo4/JdMzHy1Q2ejMeCj6PrXQ
P5+1MI8X0Y4HL4c826EAAAAASUVORK5CYII=);
background-color:#DC4E41
}
#GoogleExchange:hover {
background-color:#F1B8B3
}
#TwitterExchange {
background-
image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAdVBMVEVgqd3///9Ypdtdp9xaptxSot
pQodlNn9lWo9pUo9rX6Pa+2vGTw+iLvuZlqt79/P7K4PO62O+y0+6hyutysuD2+fzi7vne6/fT5PTE3fKs0O2lzeuZx+l7tuJqrd71+Pzz9vzn
8PnQ4/SCueSAueNsrt9InNh7sQwBAAAAwklEQVQ4y92PRw6EMAwAXeIkdBbY3uv/n7gSAoLDD5hbPCPZgZVihEgYgNSUpmfS7bfbtHS2nReyL2
Qoc+yp8ZRAwCEWjgGAPQ7sssKoAGsWBrrgyMZCwD77Uel+59E3Tt14xZ7qlY7BRf1CDgeMKMw8sBXGlKxWtLGvHCgkQ80m0YHpjjq4sQ74pn1m
ISLJVSAMiwJO98l/TWSNF1eGKzqKfZ7Vj0mnHHwodpP+WIYlZP373DTtVWxYr2FD3pOBdfIHhOAHYHQI9VgAAAAASUVORK5CYII=);
background-color:#60A9DD
}
#TwitterExchange:hover {
background-color:#BFDCF1
}
#FacebookExchange {
background-
image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAaVBMVEU7W5z///85Wps3WJsiRo8xU5
fw8vYyUpY0VZiAj70pS5OBkb0vUpb7+fwsTpTR1ud6irllerBPaqX09fnx8vfs7fSQoMZxg7VsgLNGY6FCX58ZP4v++/7r7vTZ3OupstGIlsFW
calDYaCK3qwDAAAAnklEQVQ4y+XQyw7CIBAFUBgc5VUoWGtb3/7/RyoYkyZAiSsXvdt7kstA/hRg/B0GpZ6byQ3Dw0NBaH+lMYRle3T0kwayAC
RdBrr/gnN+QtpQWv8cR4DswiUAjozlz4RdF8AmlnmwjaDQImoZwQkRedoToUS7D+ColGoTwQidx8oEQDMHN1MBva5MOL70SCHuE1TOhOpHrRt0
FWAOP4IX8PsG2qEOR30AAAAASUVORK5CYII=);
background-color:#3B5B9C
}
#FacebookExchange:hover {
background-color:#B0BDD7
}
#LinkedInExchange {
background-
image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAb1BMVEUAe7b///8AdrMklscAc7EAeL
UAcbB5ttifzeMqmckAdLIAaqz7+/6PxeAShr0CgLkAba4nmMctksTv9Puw1eij0OWGvNtfrNJNo80YjMAeib/D4vGt3Oy82+yfzOOCvtyJvdx3
UAcbB5ttifzeMqmckAdLIAaqz7+/6PxeAShr0CgLkAba4nmMctksTv9Puw1eij0OWGvNtfrNJNo80YjMAeib/D4vGt3Oy82+yfzOOCvtyJvdx3
tddirtI/ncoxmMj9KsrQAAAAw0lEQVQ4y9WSVw7DIAxAG8CkjJDVzO5x/zMWk0RNJaB/kfo+sGUeCMvstgI4J7F9aS5NxSLnTWLpZVDgexTqIi
ycUNBhgTxRyCKPYJ3dl7sITCkO+FyLXaWU310DscASOesf3ahWChGJ5cb4ASO5Joiu2EegWEmZa1c3yUwOHmHNuQgJup4CgF8YlKpcMhKvkNmb
1REz6hdetsyziIBldv8lpH8ouGm28zQFCu2SOSAXlJYGYCgpFThEMFPm/zCryja8Acy7CRfMrcKPAAAAAElFTkSuQmCC);
background-color:#0077B5
}
#LinkedInExchange:hover {
background-color:#99CAE1
}
#AmazonExchange {
background-image:url(https://images-na.ssl-images-
amazon.com/images/G/01/lwa/btnLWA_gold_156x32.png);
background-color:#FFF;
color:transparent
}

#next {
-moz-user-select:none;
user-select:none;
cursor:pointer;
width:auto;
padding-left:10px;
padding-right:10px;
height:30.5px;
-moz-border-radius:0;
-webkit-border-radius:0;
border-radius:0;
background:#2672E6;
border:1px solid #FFF;
color:#fff;
transition:background 1s ease 0s;
font-size:100%
}
#next:hover {
background:#0F3E83;
border:1px solid #FFF;
box-shadow:0 0 0
}
#next:hover,.accountButton:hover {
-moz-box-shadow:0 0 0;
-webkit-box-shadow:0 0 0;
box-shadow:0 0 0;
}
</style>
</head>
<body>
<div class=navbar navbar-inverse navbar-static-top role=navigation>
<div class=container>
<div class=navbar-header>
<div class=visible-xs-block>
{{ snippets[Mobile Header] }}
</div>
<div class=visible-sm-block visible-md-block visible-lg-block navbar-brand>
{{ snippets[Navbar Left] }}
</div>
</div>
</div>
</div>
<div class=container>
<div class=page-heading>
<ul class=breadcrumb>
<li>
<a href={{ request.url | base }} title=Home>Home</a>
</li>
<li class=active>{{ page.title | h}}</li>
</ul>
{% include 'Page Header' %}
</div>
<div class=row>
<div class=col-md-12>
<div class=col-md-12>
{% include 'Page Copy' %}
<div id=api></div>
</div>
</div>
</div>
<footer role=contentinfo>
<div class=footer-top hidden-print>
<div class=container>
<div class=row>
<div class=col-md-6 col-sm-12 col-xs-12 text-left>
{{ snippets[About Footer] }}
</div>
<div class=col-md-6 col-sm-12 col-xs-12 text-right>
<ul class=list-social-links>
<li><a href=#><span class=sprite sprite-facebook_icon></span></a></li>
<li><a href=#><span class=sprite sprite-twitter_icon></span></a></li>
<li><a href=#><span class=sprite sprite-email_icon></span></a></li>
</ul>
</div>
</div>
</div>
</div>
<div class=footer-bottom hidden-print>
<div class=container>
<div class=row>
<div class=col-md-4 col-sm-12 col-xs-12 text-left>
{{ snippets[Footer] | liquid }}
</div>
<div class=col-md-8 col-sm-12 col-xs-12 text-left >
</div>
</div>
</div>
</div>
</footer>
</body>
</html>

Paso 2: Crear una plantilla de página


Cree la plantilla de página siguiente:
Nombre: página personalizada de Azure AD B2C
Tipo: plantilla web
Plantilla web: Página personalizada de Azure AD B2C
Encabezado y pie de página de la página web de uso: Desactive esta casilla
Paso 3: Crear un página web
Cree la siguiente página web:
Nombre: Inicio de sesión
Página principal: Inicio
URL parcial: azure-ad-b2c-sign-in
Plantilla de página: Página personalizada de Azure AD B2C
Estado de publicación: Publicado
Paso 4: Crear configuraciones de sitio
La configuración de sitio es necesaria para configurar el uso compartido de recursos (CORS ) de origen cruzado
para permitir que Azure AD B2C solicite la página personalizada y que inserte la interfaz de usuario de registro o
de inicio de sesión. Cree la siguiente configuración del sitio.
NOMBRE VALOR

HTTP/Access-Control-Allow-Methods OBTENER, OPCIONES

HTTP/Access-Control-Allow-Origin https://login.microsoftonline.com

Para obtener una lista completa de otros valores de configuración CORS, consulte Soporte de protocolo CORS.
Paso 5: Configuración Azure
1. Inicie sesión en su Portal de Azure.
2. Desplácese hasta la hoja Administración de suscriptores de Azure AD B2C .
3. Vaya a Configuración > Directivas de registro e inicio de sesión. Aparecerá la lista de directivas
disponibles.
4. Seleccione la directiva que desea editar.
5. Seleccione Editar.
6. Seleccione Editar directiva > Personalización de interfaz de página > Página de registro o inicio de
sesión unificada
7. Establezca Usar la página personalizada Sí.
8. Establezca URL personalizada de página en la URL de la página web de página personalizada de Azure AD
B2C creada en el paso 3 del procedimiento. Por ejemplo, https://mydomain.com/azure-ad-b2c-sign-in .
9. Seleccione Aceptar.

Asignación de notificaciones
Cuando los usuarios inicien sesión, por primera vez o posteriormente, el proveedor de identidad federado
proporciona notificaciones según su base de datos sobre el inicio de sesión de los usuarios. Estas notificaciones se
pueden configurar en el proveedor de identidad.
Notificaciones de correo electrónico de Azure AD B2C
Azure AD B2C envía la notificación de correo electrónico como una recopilación. El portal acepta el primer correo
electrónico de la recopilación como la dirección de correo electrónico principal del contacto.
Reclamaciones para admitir escenarios de registro
Si se aprovisiona un nuevo cliente que no existe en Common Data Service las notificaciones entrantes se pueden
usar para propagar el nuevo registro de contacto que creará el portal. Las notificaciones comunes pueden incluir el
nombre y el apellido, dirección de correo electrónico, y número de teléfono, pero son configurables. Se necesita la
siguiente configuración de sitio:
Nombre: Authentication/OpenIdConnect/[Nombre de federación]/RegistrationClaimsMapping
Descripción: Lista de pares de nombre lógico y de notificación que se van a usar para asignar valores de
notificaciones a atributos en el registro de contacto creado durante el registro.
Formato: atributo1=notificación1, atributo2=notificación2, atributo3=notificación3
Por ejemplo:
firstname=https://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname,lastname=https://schemas.xmlso
ap.org/ws/2005/05/identity/claims/surname,jobtitle=jobTitle
NOTE
Asegúrese de que asigna la dirección de correo electrónico para el mensaje principal (emailaddress1) del contacto. Si ha
agregado un correo electrónico secundario (emailaddress2) o alternativo (emailaddress3) al registro de contacto y lo ha
asignado al correo electrónico, la información de identidad no se agregará al contacto y se creará una nueva con la dirección
de correo electrónico que se usó para el registro establecido en el correo electrónico principal (emailaddress1).

Reclamaciones para admitir escenarios de registro


Los datos de Common Data Service y en el proveedor de identidad no se vinculan directamente, por lo que los
datos pueden desincronizarse. El portal debe tener una lista de notificaciones que desee aceptar de cualquier
evento de inicio de sesión para actualizar en Common Data Service. Estas notificaciones pueden ser un
subconjunto o iguales a las notificaciones que proceden de un escenario de inicio de sesión. Esto se debe
configurar por separado de la asignación de notificaciones de inicio de sesión, porque es posible que no desee
sobrescribir algunos atributos de portal clave. Se necesita la siguiente configuración de sitio:
Nombre: Authentication/OpenIdConnect/[Nombre de federación]/LoginClaimsMapping
Descripción: Lista de pares de nombre lógico y de notificación que se van a usar para asignar valores de
notificaciones a atributos en el registro de contacto creado tras el inicio de sesión.
Formato: atributo1=notificación1, atributo2=notificación2, atributo3=notificación3
Por ejemplo:
firstname=https://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname,lastname=https://schemas.xmlso
ap.org/ws/2005/05/identity/claims/surname,jobtitle=jobTitle
El nombre de notificación es el campo TIPO DE NOTIFICACIÓN indicado junto al atributo de las directivas de
inicio de sesión Notificaciones de aplicación.
Permitir la asociación automática a un registro de contacto en función de correo electrónico
Los clientes que tienen registros de contactos con correos electrónicos asociados lanzan una página web donde los
usuarios externos iniciarán sesión con Azure AD B2C mediante un mecanismo de validación de correo electrónico.
El nuevo inicio de sesión debe estar asociado al registro de contacto existente en lugar de crear un registro
duplicado. Esta funcionalidad asigna solo correctamente un contacto que no tiene una identidad activa, y la
dirección de correo electrónico debe ser única (no relacionada con varios registros de contacto). Se necesita la
siguiente configuración de sitio:
Nombre: Authentication/[Protocolo]/[Proveedor]/AllowContactMappingWithEmail
Descripción: Especifica si los contactos están asignados al correo electrónico correspondiente. Si se establece en
verdadero, el valor se asocia a un registro de contacto único con una dirección de correo electrónico coincidente, y
después asigna automáticamente el proveedor de identidad externo al contacto una vez que el usuario ha iniciado
sesión correctamente. De forma predeterminada, se establece como falso.
Configurar el proveedor OAuth2 para portales
25/11/2019 • 8 minutes to read • Edit Online

Los proveedores de identidad externos basados en OAuth 2.0 registran una "aplicación" con un servicio de
terceros para obtener un par "Id. de cliente" y "secreto de cliente". A menudo, esta aplicación requiere especificar
una dirección URL de redirección que permite que el proveedor de identidad envíe los usuarios de vuelta al portal
(usuario de confianza). El Id. del cliente y el secreto de cliente están configurados como valores del sitio del portal
para establecer una conexión de seguridad del usuario de confianza al proveedor de identidad. Los valores se
basan en las propiedades de las clases MicrosoftAccountAuthenticationOptions, TwitterAuthenticationOptions,
FacebookAuthenticationOptions y GoogleOAuth2AuthenticationOptions.
Los proveedores admitidos son:
Cuenta de Microsoft
Twitter
Facebook
Google
LinkedIn
Yahoo

Crear aplicaciones OAuth


Normalmente si un proveedor de OAuth usa una configuración de aplicación que requiere un valor de URI de
redirección, especifique https://portal.contoso.com/or https://portal.contoso.com/signin-\[proveedor] en función
de cómo el proveedor realiza validación de URI de re direccionamiento (algunos proveedores requieren que se
especifique la ruta de acceso completa de la dirección URL junto al nombre de dominio). Sustituya el nombre del
proveedor en lugar de [provider] en la URI de redirección.
Google
Instrucciones de credenciales de la API Google OAuth2
1. Abra Google Developers Console
2. Cree un proyecto de API o abra un proyecto existente
3. Vaya a API y autenticación >API y en API de medios sociales, seleccione Google+ API y luego
seleccione Habilitar API
4. Vaya a API y autenticación >Pantalla de consentimiento.
Especifique una Dirección de correo electrónico.
Especifique un Nombre de producto personalizado.
Seleccione Guardar.
5. Vaya a API y autenticación >Credenciales y cree un nuevo identificador de cliente.
Tipo de aplicación: Aplicación web
Orígenes de JavaScript autorizados: https://portal.contoso.com
URI de redirección autorizados: https://portal.contoso.com/signin-google
Seleccione Crear Id. de cliente.
Configuración de la aplicación Facebook
1. Abra Facebook Developers App Dashboard
2. Seleccione Agregar nueva aplicación.
3. Seleccione Sitio web.
4. Seleccione Omitir y crear Id. de aplicación.
Especifique un Nombre para mostrar.
Elija una Categoría.
Seleccione Crear id. de aplicación.
5. Mientras está en el panel para la nueva aplicación, vaya aConfiguración >Básica (pestaña) y agregue los
siguientes detalles:
Dominios de aplicación (opcional): portal.contoso.com
Correo electrónico de contacto: <dirección de correo electrónico que prefiera>
Seleccione Agregar plataforma y seleccione un Sitio web.
Dirección URL: https://portal.contoso.com/ o https://portal.contoso.com/signin-facebook
6. Seleccione Guardar cambios.
7. Vaya a Estado y revisión > Estado (pestaña).
8. Seleccione Sí cuando se le solicita para configurar la aplicación y todas las características a disposición del
público general. Debe haber completado los datos válidos en el paso 5 anterior para habilitar este valor.
Configuración de aplicación de Microsoft
1. Abra Centro para desarrolladores de cuentas de Microsoft
2. Seleccione Crear aplicación y especifique un Nombre de aplicación.
3. Seleccione Acepto para aceptar los términos y condiciones.
4. Vaya a Configuración >Configuración de API y, a continuación, establezca la dirección URL de
redireccionamiento como https://portal.contoso.com/signin-microsoft.
Configuración de aplicaciones en Twitter
1. Abra Administración de aplicaciones de Twitter.
2. Seleccione Crear nueva aplicación.
Especifique el Nombre y Descripción de la aplicación.
Establezca la dirección URL del sitio web como https://portal.contoso.com.
Establezca la dirección URL de devolución de llamada como https://portal.contoso.com o
https://portal.contoso.com/signin-twitter.
3. Seleccione Cree su aplicación de Twitter.
Configuración de aplicaciones en LinkedIn
1. Abra Red para desarrolladores de LinkedIn.
2. Seleccione Agregar nueva aplicación.
Especifique Nombre de aplicación, Descripción, etc.
Establezca la dirección URL del sitio web como https://portal.contoso.com.
Establezca Ámbito de contrato de usuario/predeterminado de OAuth: r_basicprofie y r_emailaddress
Establezca la dirección URL de redireccionamiento de OAuth 2.0: https://portal.contoso.com/signin-
linkedin.
3. Seleccione Agregar aplicación.
Yahoo! Configuración de aplicaciones en YDN
1. Abra Red para desarrolladores de Yahoo!.
2. Seleccione Crear una aplicación.
Especifique un Nombre de aplicación.
Tipo de aplicación: Aplicación web.
Dominio de devolución de llamada: portal.contoso.com
3. Seleccione Crear aplicación.

Crear valores del sitio mediante OAuth2


El panel de la aplicación para cada proveedor mostrará el Id. de cliente (Id. de la aplicación, clave de consumidor) y
el secreto de cliente (secreto de la aplicación, secreto de consumidor) para cada aplicación. Use estos dos valores
para establecer la configuración del sitio del portal.

NOTE
Una configuración de OAuth2 estándar requiere solo los siguientes valores (con Facebook como ejemplo):
Authentication/OpenAuth/Facebook/ClientId
Authentication/OpenAuth/Facebook/ClientSecret

Sustituya la etiqueta [provider] en el nombre del valor de sitio con un nombre de proveedor de identidad
específico: Facebook, Google, Yahoo, Microsoft, LinkedIn o Twitter.

NOMBRE DE CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/Registration/ExternalLoginEnabled Habilita o deshabilita el inicio de sesión y el registro de la


cuenta externa. Valor predeterminado: true

Authentication/OpenAuth/[provider]/ClientId Requerido. El valor de Id. de cliente de la aplicación del


proveedor. También puede denominarse Id. de la aplicación o
Clave de consumidor. Los nombres de configuración siguientes
se permiten por compatibilidad:
Authentication/OpenAuth/Twitter/ConsumerKey
Authentication/OpenAuth/Facebook/AppId
Authentication/OpenAuth/LinkedIn/ConsumerKey

Authentication/OpenAuth/[provider]/ClientSecret Requerido. El valor de secreto de cliente de la aplicación del


proveedor. También puede denominarse Secreto de la
aplicación o Secreto de consumidor. Los nombres de
configuración siguientes se permiten por compatibilidad:
Authentication/OpenAuth/Twitter/ConsumerSecret
Authentication/OpenAuth/Facebook/AppSecret
Authentication/OpenAuth/LinkedIn/ConsumerSecret

Authentication/OpenAuth/[provider]/AuthenticationType El tipo de middleware de autenticación OWIN. Ejemplo:


yahoo. authenticationoptions.authenticationtype.

Authentication/OpenAuth/[provider]/Scope Una lista separada por comas de permisos para solicitar.


microsoftaccountauthenticationoptions.scope.

Authentication/OpenAuth/[provider]/Caption El texto que el usuario puede mostrar en una interfaz de


usuario de inicio de sesión.
microsoftaccountauthenticationoptions.caption.
NOMBRE DE CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/OpenAuth/[provider]/BackchannelTimeout Valor de tiempo de espera en milisegundos para


comunicaciones de canal posterior.
microsoftaccountauthenticationoptions.backchanneltimeout.

Authentication/OpenAuth/[provider]/CallbackPath Se devolverá la ruta de solicitud en la ruta de acceso base de


la aplicación donde el agente de usuario.
microsoftaccountauthenticationoptions.callbackpath.

Authentication/OpenAuth/[provider]/SignInAsAuthenticationT El nombre de otro software intermedio de autenticación que


ype será responsable de emitir realmente unuserClaimsIdentity.
microsoftaccountauthenticationoptions.signinasauthentication
type.

Authentication/OpenAuth/[provider]/AuthenticationMode El modo de middleware de autenticación OWIN.


security.authenticationoptions.authenticationmode.

Vea también
Configurar la autenticación del portal
Establecer identidad de autenticación para un portal
Configuración de proveedor Open ID Connect para portales
Configuración de proveedor de WS -Federation para portales
Configuración del proveedor SAML 2.0 para portales
Configurar proveedor Open ID Connect para portales
25/11/2019 • 12 minutes to read • Edit Online

Los proveedores de identidad externos Open ID Connect son servicios que se ajustan a las especificaciones de Open
ID Connect. La integración de un proveedor implica buscar la dirección URL de la entidad (o emisor) asociada con el
proveedor. Una dirección URL de configuración puede determinarse desde la entidad que suministra metadatos
requeridos durante el flujo de trabajo de autenticación. Los valores de proveedores se basan en las propiedades de la
clase OpenIdConnectAuthenticationOptions.
Ejemplos de direcciones URL de entidad:
Google: https://accounts.google.com/https://accounts.google.com/.well-known/openid-configuration
Azure Active Directory: https://login.microsoftonline.com/<Azure Aplicación AD>/
Cada proveedor de OpenID Connect también implica registrar una aplicación (similar al proveedor de OAuth 2.0) y
obtener un Id. de cliente. La dirección URL de la autoridad y el id. de cliente de aplicación generado son los valores
requeridos para habilitar la autenticación externa entre el portal y el proveedor de identidad.

NOTE
El extremo Google OpenID Connect actualmente no es compatible porque las bibliotecas subyacentes aún se encuentran en las
fases tempranas de lanzamiento con problemas de compatibilidad que resolver. En su lugar puede utilizarse el extremo de
configuración de proveedor OAuth2 para portales.

Configuración de OpenID para Azure Active Directory


Para empezar, inicie sesión en el Portal de administración de Azure y cree o seleccione un directorio existente. Cuando
un directorio está disponible siga las instrucciones para agregar una aplicación al directorio.
1. En el menú Aplicaciones del directorio, seleccione Agregar.
2. Elija Agregue una aplicación que mi organización está desarrollando.
3. Especifique un nombre personalizado para la aplicación y elija el tipo aplicación web y/o API web.
4. Para la Dirección URL de inicio de sesión y la URI de Id. de la aplicación, especifique la dirección URL del
portal para los dos campos https://portal.contoso.com/
5. En este punto, se crea una nueva aplicación. Acceda a la sección Configurar en el menú.
En la sección inicio de sesión único, actualice la primera entrada Dirección URL de respuesta para incluir
una ruta en la dirección URL: https://portal.contoso.com/signin-azure-ad. Esto corresponde al valor del
parámetro del sitio RedirectUri
6. En la sección propiedades, busque el campo Id. de cliente. Esto corresponde al valor del parámetro del sitio
ClientId.
7. En el menú de pie de página, seleccione Ver extremos y escriba el campo Documento de metadatos de
federación.
La parte izquierda de la dirección URL es el valor Entidad y está en uno de los siguientes formatos:
https://login.microsoftonline.com/01234567-89ab-cdef-0123-456789abcdef/
https://login.microsoftonline.com/contoso.onmicrosoft.com/
Para obtener la dirección URL de la configuración de servicio, reemplace la cola de la ruta de
FederationMetadata/2007-06/FederationMetadata.xml con la ruta .well-known/openid-configuration. Por ejemplo,
https://login.microsoftonline.com/contoso.onmicrosoft.com/.well-known/openid-configuration.
Esto corresponde al valor del parámetro del sitio MetadataAddress.
Configuración del sitio relacionada
Aplique valores del sitio del portal que hagan referencia a la aplicación anterior.

NOTE
Una configuración de Azure AD estándar sólo usa los siguientes valores (con valores de ejemplo):
Authentication/OpenIdConnect/AzureAD/Authority - https://login.microsoftonline.com/01234567-89ab-cdef-0123-
456789abcdef/
Authentication/OpenIdConnect/AzureAD/ClientId - fedcba98-7654-3210-fedc-ba9876543210
El Id. de cliente y la dirección URL de la entidad no tienen el mismo valor y deben recuperarse por separado.
Authentication/OpenIdConnect/AzureAD/RedirectUri - https://portal.contoso.com/signin-azure-ad

Varios proveedores de identidad pueden configurarse sustituyendo una etiqueta para la etiqueta [provider]. Cada
etiqueta única forma un grupo de valores relacionados con un proveedor de identidad. Ejemplos: AzureAD, MyIdP

NOMBRE DE CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/Registration/ExternalLoginEnabled Habilita o deshabilita el inicio de sesión y el registro de la cuenta


externa. Valor predeterminado: true

Authentication/OpenIdConnect/[provider]/Authority Requerido. La entidad a usar al realizar llamadas


OpenIdConnect. Ejemplo:
https://login.microsoftonline.com/contoso.onmicrosoft.com/
. Para obtener más
información:OpenIdConnectAuthenticationOptions.Authority.

Authentication/OpenIdConnect/[provider]/MetadataAddress El extremo de detección para obtener metadatos. Comúnmente


termina con la ruta de acceso:/.well-known/openid-
configuration. Ejemplo:
https://login.microsoftonline.com/contoso.onmicrosoft.com/.well-
known/openid-configuration
. Para obtener más
información:OpenIdConnectAuthenticationOptions.MetadataAd
dress.

Authentication/OpenIdConnect/[provider]/AuthenticationType El tipo de middleware de autenticación OWIN. Especifique el


valor del emisor en los metadatos de configuración de servicio.
Ejemplo:
https://sts.windows.net/contoso.onmicrosoft.com/ . Para
obtener más información:
AuthenticationOptions.AuthenticationType.

Authentication/OpenIdConnect/[provider]/ClientId Requerido. El valor de Id. de cliente de la aplicación del


proveedor. También puede denominarse "Id. de la aplicación "o
"Clave de consumidor". Para obtener más información:
OpenIdConnectAuthenticationOptions.ClientId.

Authentication/OpenIdConnect/[provider]/ClientSecret El valor de secreto de cliente de la aplicación del proveedor.


También puede denominarse "Secreto de la aplicación "o
"Secreto de consumidor". Para obtener más información:
OpenIdConnectAuthenticationOptions.ClientSecret.
NOMBRE DE CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/OpenIdConnect/[provider]/RedirectUri Recomendado. El extremo de AD FS WS-Federation Passive.


Ejemplo: https://portal.contoso.com/signin-saml2. Para obtener
más información:
OpenIdConnectAuthenticationOptions.RedirectUri.

Authentication/OpenIdConnect/[provider]/Caption Recomendado. El texto que el usuario puede mostrar en una


interfaz de usuario de inicio de sesión. Predeterminado:
[provider]. Para obtener más información:
OpenIdConnectAuthenticationOptions.Caption.

Authentication/OpenIdConnect/[provider]/Resource El 'recurso'. Para obtener más información:


OpenIdConnectAuthenticationOptions.Resource.

Authentication/OpenIdConnect/[provider]/ResponseType El 'tipo de respuesta_'. Para obtener más información:


OpenIdConnectAuthenticationOptions.ResponseType.

Authentication/OpenIdConnect/[provider]/Scope Una lista separada por espacios de permisos para solicitar.


Predeterminado: openid. Para obtener más información:
OpenIdConnectAuthenticationOptions.Scope.

Authentication/OpenIdConnect/[provider]/CallbackPath Una ruta limitada opcional en la que procesar la devolución de


llamada de autenticación. Si no se proporciona y RedirectUri
está disponible, este valor se generará desde RedirectUri. Para
obtener más información:
OpenIdConnectAuthenticationOptions.CallbackPath.

Authentication/OpenIdConnect/[provider]/BackchannelTimeout Valor de tiempo de espera para comunicaciones del canal


posterior. Ejemplo: 00:05:00 (5 mins). Para obtener más
información:
OpenIdConnectAuthenticationOptions.BackchannelTimeout.

Authentication/OpenIdConnect/[provider]/RefreshOnIssuerKey Determina si una actualización de metadatos debe intentarse


NotFound después de una SecurityTokenSignatureKeyNotFoundException.
Para obtener más información:
OpenIdConnectAuthenticationOptions.RefreshOnIssuerKeyNotF
ound.

Authentication/OpenIdConnect/[provider]/UseTokenLifetime Indica que la duración de la sesión de autenticación (por


ejemplo, cookies) debe coincidir con la del token de
autenticación. Para obtener más información:
OpenIdConnectAuthenticationOptions.UseTokenLifetime.

Authentication/OpenIdConnect/[provider]/AuthenticationMode El modo de middleware de autenticación OWIN. Para obtener


más información: AuthenticationOptions.AuthenticationMode.

Authentication/OpenIdConnect/[provider]/SignInAsAuthenticati El AuthenticationType usado al crear el


onType System.Security.Claims.ClaimsIdentity. Para obtener más
información:
OpenIdConnectAuthenticationOptions.SignInAsAuthenticationT
ype.

Authentication/OpenIdConnect/[provider]/PostLogoutRedirectU El 'post_logout_redirect_uri'. Para obtener más información:


ri OpenIdConnectAuthenticationOptions.PostLogoutRedirectUri.

Authentication/OpenIdConnect/[provider]/ValidAudiences Lista separada por comas de direcciones URL de la audiencia.


Para obtener más información:
TokenValidationParameters.AllowedAudiences.
NOMBRE DE CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/OpenIdConnect/[provider]/ValidIssuers Lista separada por comas de direcciones URL del emisor. Para
obtener más información:
TokenValidationParameters.ValidIssuers.

Authentication/OpenIdConnect/[provider]/ClockSkew El desplazamiento del reloj a aplicar al validar horas.

Authentication/OpenIdConnect/[provider]/NameClaimType El tipo de notificación usado por ClaimsIdentity para almacenar


la notificación de nombre.

Authentication/OpenIdConnect/[provider]/RoleClaimType El tipo de notificación usado por ClaimsIdentity para almacenar


la notificación de rol.

Authentication/OpenIdConnect/[provider]/RequireExpirationTim Un valor que indica si los tokens deben tener un valor de


e 'expiración'.

Authentication/OpenIdConnect/[provider]/RequireSignedTokens Un valor que indica si un


System.IdentityModel.Tokens.SecurityToken
xmlns=https://ddue.schemas.microsoft.com/authoring/2003/5
puede ser válido si no está firmado.

Authentication/OpenIdConnect/[provider]/SaveSigninToken Un booleano para controlar si el token original se guarda


cuando se crea una sesión.

Authentication/OpenIdConnect/[provider]/ValidateActor Un valor que indica si el


System.IdentityModel.Tokens.JwtSecurityToken.Actor debe
validarse.

Authentication/OpenIdConnect/[provider]/ValidateAudience Un booleano para controlar si el público se validará durante la


validación de token.

Authentication/OpenIdConnect/[provider]/ValidateIssuer Un booleano para controlar si el emisor se validará durante la


validación de token.

Authentication/OpenIdConnect/[provider]/ValidateLifetime Un booleano para controlar si la duración se validará durante la


validación de token.

Authentication/OpenIdConnect/[provider]/ValidateIssuerSigning Un valor booleano que controla si se llama a la validación de


Key System.IdentityModel.Tokens.SecurityKey que firmó el
securityToken
xmlns=https://ddue.schemas.microsoft.com/authoring/2003/5.

Habilitar la autenticación mediante una aplicación de Azure Active


Directory multiempresa
Puede configurar su portal para aceptar a usuarios de Azure Active Directory de cualquier inquilino en Azure y no
solamente un inquilino específico mediante la aplicación multiempresa registrada en Azure Active Directory. Para
habilitar la multiempresa, establezca el conmutador Multiempresa en Sí en la aplicación Azure Active Directory.
Configuración del sitio relacionada
Varios proveedores de identidad pueden configurarse sustituyendo una etiqueta para la etiqueta [provider]. Cada
etiqueta única forma un grupo de valores relacionados con un proveedor de identidad. Puede crear o configurar los
siguientes valores de sitio en los portales para admitir la autenticación en Azure Active Directory con una aplicación
multiempresa:

NOMBRE DE CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/OpenIdConnect/[provider]/Authority La entidad a usar al realizar llamadas OpenIdConnect. Por


ejemplo: https://login.microsoftonline.com/common

Authentication/OpenIdConnect/[provider]/ClientId El valor de Id. de cliente de la aplicación del proveedor. También


puede denominarse Id. de la aplicación o Clave de consumidor.

Authentication/OpenIdConnect/[provider]/ExternalLogoutEnabl Habilita o deshabilita el cierre de sesión y el registro de la cuenta


ed externa. Establezca este valor como True.

Authentication/OpenIdConnect/[provider]/IssuerFilter Un filtro basado en comodín que busca todos los emisores en


todos los inquilinos. En la mayoría de los casos, utilice el valor:
https://sts.windows.net/*/

Authentication/OpenIdConnect/[provider]/RedirectUri La ubicación de la URL de respuesta donde el proveedor envía la


respuesta de autenticación. Por ejemplo:
https://portal.contoso.com/signin-oidc
NOMBRE DE CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/OpenIdConnect/[provider]/ValidateIssuer Un booleano para controlar si el emisor se validará durante la


validación de token. Establezca este valor como False.

Vea también
Configurar la autenticación del portal
Establecer identidad de autenticación para un portal
Configuración del proveedor OAuth2 para portales
Configuración de proveedor de WS-Federation para portales
Configuración del proveedor SAML 2.0 para portales
Configurar valores de proveedor de WS-Federation
para portales
25/11/2019 • 11 minutes to read • Edit Online

Un solo servidor de Federation Services Active Directory se puede agregar (u otro servicio de token de seguridad,
o STS, compatible con WS -Federation), como proveedor de identidad. Además, un solo espacio de nombres
Azure ACS se puede configurar como un conjunto de proveedores de identidad individuales. Los valores de AD
FS y ACS se basan en las propiedades de la clase WsFederationAuthenticationOptions.

Cree un usuario de confianza de AD FS


Utilizando la herramienta de administración de AD FS, vaya a Relaciones de confianza > Usuarios de
confianza.
1. Seleccione Agregar usuario de confianza.
2. Bienvenida: Seleccione Inicio.
3. Seleccionar origen de datos: Seleccione Especifique datos del usuario de confianza manualmente y
luego seleccione Siguiente.
4. Especificar nombre para mostrar: Escriba un nombre y luego seleccione Siguiente. Ejemplo:
https://portal.contoso.com/
5. Elegir perfil: Seleccione Perfil de AD FS 2.0 y luego seleccione Siguiente.
6. Configurar certificado: Seleccione Siguiente.
7. Configurar dirección URL: Seleccione la casilla Habilitar compatibilidad para el protocolo WS -
Federation Passive.
Dirección URL del protocolo WS -Federation Passive del usuario de confianza: escriba
https://portal.contoso.com/signin-federation
Nota: AD FS requiere que el portal se ejecute en HTTPS.

NOTE
La extremo resultante tiene los siguientes valores: Tipo de extremo: WS-Federation
Enlace:POST
Índice: n/d (0)
Dirección URL: https://portal.contoso.com/signin-federation

8. Configuración de identidades: especifique https://portal.contoso.com/, seleccione Agregary, a continuación


seleccione Siguiente. Si corresponde, más identidades pueden agregarse para cada portal del usuario de
confianza adicional. Los usuarios podrán autenticarse en cualquiera o todas las identidades disponibles.
9. Elegir reglas de autorización de emisión: Seleccione Permitir a todos los usuarios el acceso a este usuario
de confianza y luego seleccione Siguiente.
10. Listo para agregar confianza: Seleccione Siguiente.
11. Seleccione Cerrar.
Agregue la notificación Id. de nombre al usuario de confianza:
Transforme el nombre de cuenta de Windows a la solicitud Id. de nombre (Transformar una notificación
entrante):
Tipo de notificación entrante: Nombre de cuenta de Windows
Tipo de notificación saliente: Id. de nombre
Formato de Id. de nombre saliente: Sin especificar
Paso a través de todos los valores de notificaciones
Crear configuraciones de sitio de AD FS
Aplique la configuración del sitio del portal haciendo referencia al usuario de confianza de AD FS anterior.

NOTE
Una configuración de AD FS (STS) estándar sólo usa los siguientes valores (con valores de ejemplo):
Authentication/WsFederation/ADFS/MetadataAddress: https://adfs.contoso.com/FederationMetadata/2007-
06/FederationMetadata.xml
Authentication/WsFederation/ADFS/AuthenticationType: https://adfs.contoso.com/adfs/services/trust
Use el valor del atributo entityID en el elemento raíz de los metadatos de federación (abra la Dirección URL de
MetadataAddress en un explorador que sea el valor del ajuste de sitio anterior)
Authentication/WsFederation/ADFS/Wtrealm: https://portal.contoso.com/
Authentication/WsFederation/ADFS/Wreply: https://portal.contoso.com/signin-federation

Los metadatos de WS -Federation se pueden recuperar en PowerShell ejecutando el siguiente script en el


servidor de AD FS:

Import-Module adfs
Get-ADFSEndpoint -AddressPath /FederationMetadata/2007-06/FederationMetadata.xml

NOMBRE DE CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/Registration/ExternalLoginEnabled Habilita o deshabilita el inicio de sesión y el registro de la


cuenta externa. Valor predeterminado: true

Authentication/WsFederation/ADFS/MetadataAddress Requerido. La dirección URL de metadatos de WS-Federation


del servidor de AD FS (STS). Comúnmente termina con la ruta
de acceso:/FederationMetadata/2007-
06/FederationMetadata.xml .
Ejemplo:https://adfs.contoso.com/FederationMetadata/2007-
06/FederationMetadata.xml. Para obtener más información:
WsFederationAuthenticationOptions.MetadataAddress.

Authentication/WsFederation/ADFS/AuthenticationType Requerido. El tipo de middleware de autenticación OWIN.


Especifique el valor del atributo entityID en la raíz del XML de
metadatos de federación. Ejemplo:
https://adfs.contoso.com/adfs/services/trust. Para obtener
más información: AuthenticationOptions.AuthenticationType.

Authentication/WsFederation/ADFS/Wtrealm Requerido. El identificador del usuario de confianza de AD FS.


Ejemplo: https://portal.contoso.com/ . Para obtener más
información: WsFederationAuthenticationOptions.Wtrealm.

Authentication/WsFederation/ADFS/Wreply Requerido. El extremo de AD FS WS-Federation Passive.


Ejemplo: https://portal.contoso.com/signin-federation. Para
obtener más información:
WsFederationAuthenticationOptions.Wreply.
NOMBRE DE CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/WsFederation/ADFS/Caption Recomendado. El texto que el usuario puede mostrar en una


interfaz de usuario de inicio de sesión. Predeterminado: ADFS.
Para obtener más información:
WsFederationAuthenticationOptions.Caption.

Authentication/WsFederation/ADFS/CallbackPath Una ruta limitada opcional en la que procesar la devolución


de llamada de autenticación. Para obtener más información:
WsFederationAuthenticationOptions.CallbackPath.

Authentication/WsFederation/ADFS/SignOutWreply El valor 'wreply'usado durante el cierre de sesión. Para


obtener más información:
WsFederationAuthenticationOptions.SignOutWreply.

Authentication/WsFederation/ADFS/BackchannelTimeout Valor de tiempo de espera para comunicaciones del canal


posterior. Ejemplo: 00:05:00 (5 mins). Para obtener más
información:
WsFederationAuthenticationOptions.BackchannelTimeout.

Authentication/WsFederation/ADFS/RefreshOnIssuerKeyNotF Determina si una actualización de metadatos debe intentarse


ound después de una
SecurityTokenSignatureKeyNotFoundException. Para obtener
más información:
WsFederationAuthenticationOptions.RefreshOnIssuerKeyNotF
ound.

Authentication/WsFederation/ADFS/UseTokenLifetime Indica que la duración de la sesión de autenticación (por


ejemplo, cookies) debe coincidir con la del token de
autenticación.
WsFederationAuthenticationOptions.UseTokenLifetime.

Authentication/WsFederation/ADFS/AuthenticationMode El modo de middleware de autenticación OWIN. Para obtener


más información: AuthenticationOptions.AuthenticationMode.

Authentication/WsFederation/ADFS/SignInAsAuthenticationTy El AuthenticationType usado al crear el


pe System.Security.Claims.ClaimsIdentity. Para obtener más
información:
WsFederationAuthenticationOptions.SignInAsAuthenticationT
ype.

Authentication/WsFederation/ADFS/ValidAudiences Lista separada por comas de direcciones URL de la audiencia.


Para obtener más información:
TokenValidationParameters.AllowedAudiences.

Authentication/WsFederation/ADFS/ValidIssuers Lista separada por comas de direcciones URL del emisor. Para
obtener más información:
TokenValidationParameters.ValidIssuers.

Authentication/WsFederation/ADFS/ClockSkew El desplazamiento del reloj a aplicar al validar horas.

Authentication/WsFederation/ADFS/NameClaimType El tipo de notificación usado por ClaimsIdentity para


almacenar la notificación de nombre.

Authentication/WsFederation/ADFS/RoleClaimType El tipo de notificación usado por ClaimsIdentity para


almacenar la notificación de rol.
NOMBRE DE CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/WsFederation/ADFS/RequireExpirationTime Un valor que indica si los tokens deben tener un valor de


'expiración'.

Authentication/WsFederation/ADFS/RequireSignedTokens Un valor que indica si un


System.IdentityModel.Tokens.SecurityToken
xmlns=https://ddue.schemas.microsoft.com/authoring/2003/
5 puede ser válido si no está firmado.

Authentication/WsFederation/ADFS/SaveSigninToken Un booleano para controlar si el token original se guarda


cuando se crea una sesión.

Authentication/WsFederation/ADFS/ValidateActor Un valor que indica si el


System.IdentityModel.Tokens.JwtSecurityToken.Actor debe
validarse.

Authentication/WsFederation/ADFS/ValidateAudience Un booleano para controlar si el público se validará durante la


validación de token.

Authentication/WsFederation/ADFS/ValidateIssuer Un booleano para controlar si el emisor se validará durante la


validación de token.

Authentication/WsFederation/ADFS/ValidateLifetime Un booleano para controlar si la duración se validará durante


la validación de token.

Authentication/WsFederation/ADFS/ValidateIssuerSigningKey Un valor booleano que controla si se llama a la validación de


System.IdentityModel.Tokens.SecurityKey que firmó el
securityToken
xmlns=https://ddue.schemas.microsoft.com/authoring/2003/
5.

Authentication/WsFederation/ADFS/Whr Especifica un parámetro "whr" en la dirección URL de


redirección del proveedor de identidad. Para obtener más
información: wsFederation.

Configuración de WS-Federation para Azure Active Directory


La sección anterior que describe AD FS también puede ser aplicada a Azure Active Directory (Azure AD ) dado
que Azure AD se comporta como un servicio de token de seguridad compatible con WS -Federation. Para
empezar, inicie sesión en el Portal de administración de Azure y cree o seleccione un directorio existente. Cuando
un directorio está disponible siga las instrucciones para agregar una aplicación al directorio.
1. En el menú Aplicaciones del directorio, seleccione Agregar.
2. Elija Agregue una aplicación que mi organización está desarrollando.
3. Especifique un nombre personalizado para la aplicación y luego elija el tipo aplicación web y/o API
web.
4. Para la Dirección URL de inicio de sesión y la URI de Id. de la aplicación, especifique la dirección
URL del portal para ambos campos https://portal.contoso.com/.
Esto corresponde al valor del parámetro del sitio Wtrealm.
5. En este punto, se crea una nueva aplicación. Vaya a la sección Configurar en el menú.
6. En la sección inicio de sesión único, actualice la primera entrada Dirección URL de respuesta para
incluir una ruta en la dirección URL https://portal.contoso.com/signin-azure-ad.
Esto corresponde al valor del parámetro del sitio Wreply.
7. Seleccione Guardar en el pie de página.
8. En el menú de pie de página, seleccione Ver extremos y escriba el campo Documento de metadatos de
federación.
Esto corresponde al valor del parámetro del sitio MetadataAddress.
Pegue esta dirección URL en una ventana del explorador para ver el XML de metadatos de federación y
anote el atributo entityID del elemento raíz.
Esto corresponde al valor del parámetro del sitio AuthenticationType.

NOTE
Una configuración de Azure AD estándar sólo usa los siguientes valores (con valores de ejemplo):
Authentication/WsFederation/ADFS/MetadataAddress: https://login.microsoftonline.com/01234567-89ab-cdef-0123-
456789abcdef/federationmetadata/2007-06/federationmetadata.xml
Authentication/WsFederation/ADFS/AuthenticationType: https://sts.windows.net/01234567-89ab-cdef-0123-
456789abcdef/
Use el valor del atributo entityID en el elemento raíz de los metadatos de federación (abra la Dirección URL de
MetadataAddress en un explorador que sea el valor del ajuste de sitio anterior)
Authentication/WsFederation/ADFS/Wtrealm: https://portal.contoso.com/
Authentication/WsFederation/ADFS/Wreply: https://portal.contoso.com/signin-azure-ad

Vea también
Configurar la autenticación del portal
Establecer identidad de autenticación para un portal
Configuración del proveedor OAuth2 para portales
Configuración de proveedor Open ID Connect para portales
Configuración del proveedor SAML 2.0 para portales
Configurar el proveedor SAML 2.0 para portales
25/11/2019 • 19 minutes to read • Edit Online

para proporcionar autenticación externa, se pueden agregar uno o varios proveedores de identidad (IdP ) compatibles con SAML
2.0. En este documento se describe cómo configurar varios proveedores de identidad para integrarse con un portal que actúe como
proveedor de servicios.

AD FS (IdP)
Configuración de un proveedore de identidad como Servicios de federación de Active Directory (AD FS ).
Cree un usuario de confianza de AD FS

NOTE
Consulte Configurar AD FS mediante PowerShell, a continuación, para obtener información sobre cómo realizar estos pasos en un script
PowerShell.

Utilizando la herramienta de administración AD FS, vaya a Servicio > Descripciones de notificaciones.


1. Seleccione Agregar descripción de notificación.
2. Especificar la notificación:
Nombre para mostrar:Identificador persistente
Identificador de notificación:urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
Habilitar la casilla para: Publicar esta descripción de notificación en metadatos de federación como tipo de
notificación que este servicio de federación puede aceptar
Habilitar casilla para: Publicar esta descripción de notificación en metadatos de federación como tipo de notificación
que este servicio de federación puede enviar
3. Seleccione Aceptar.
Utilizando la herramienta de administración AD FS, seleccione Relaciones de confianza >Usuarios de confianza.
1. Seleccione Agregar usuario de confianza.
2. Bienvenida: Seleccione Inicio.
3. Seleccionar origen de datos: Seleccione Especifique datos del usuario de confianza manualmente y luego seleccione
Siguiente.
4. Especificar nombre para mostrar: Escriba un nombre y luego seleccione Siguiente. Ejemplo: https://portal.contoso.com/
5. Elegir perfil: Seleccione Perfil de AD FS 2.0 y luego seleccione Siguiente.
6. Configurar certificado: Seleccione Siguiente.
7. Configurar dirección URL: Seleccione la casilla Habilitar compatibilidad para el protocolo SAML 2.0 WebSSO.
Dirección URL de servicio SAML 2.0 SSO: especifique https://portal.contoso.com/signin-saml2
Nota: AD FS requiere que el portal se ejecute en HTTPS.

NOTE
El extremo resultante tiene los siguientes valores:
Tipo de extremo: Extremos de consumo de aserción SAML
Enlace:POST
Índice: n/d (0)
URL: https://portal.contoso.com/signin-saml2
8. Configuración de identidades: especifique https://portal.contoso.com/, seleccione Agregary, a continuación seleccione
Siguiente. Si corresponde, pueden agregarse más identidades para cada portal del usuario de confianza adicional. Los
usuarios podrán autenticarse en cualquiera o todas las identidades disponibles.
9. Elegir reglas de autorización de emisión: Seleccione Permitir a todos los usuarios el acceso a este usuario de confianza
y luego seleccione Siguiente.
10. Listo para agregar confianza: Seleccione Siguiente.
11. Seleccione Cerrar.
Agregue la notificación Id. de nombre al usuario de confianza:
Transforme el nombre de cuenta de Windows a la solicitud Id. de nombre (Transformar una notificación entrante):
Tipo de notificación entrante:Nombre de cuenta de Windows
Tipo de notificación saliente: Id. de nombre
Formato de Id. de nombre saliente: Identificador persistente
Paso a través de todos los valores de notificaciones
Crear configuraciones de sitio
Aplique la configuración del sitio del portal haciendo referencia al usuario de confianza de AD FS anterior.

NOTE
Una configuración AD FS estándar (IdP) solo usa los siguientes parámetros (con valores de ejemplo):
Authentication/SAML2/ADFS/MetadataAddress - https://adfs.contoso.com/FederationMetadata/2007-06/FederationMetadata.xml
Authentication/SAML2/ADFS/AuthenticationType - https://adfs.contoso.com/adfs/services/trust
Use el valor del atributo entityID en el elemento raíz de los metadatos de federación (abra la Dirección URL de MetadataAddress
en un explorador que sea el valor del ajuste de sitio anterior)
Authentication/SAML2/ADFS/ServiceProviderRealm - https://portal.contoso.com/
Authentication/SAML2/ADFS/AssertionConsumerServiceUrl - https://portal.contoso.com/signin-saml2
Los metadatos de federación se pueden recuperar en PowerShell ejecutando el siguiente script en el servidor AD FS:
Import-Module adfs Get-ADFSEndpoint -AddressPath /FederationMetadata/2007-06/FederationMetadata.xml

Varios servicios de IdP pueden configurarse sustituyendo una etiqueta para la etiqueta [provider]. Cada etiqueta única forma un
grupo de valores relacionados con un IdP. Ejemplos: ADFS, AzureAD, MyIdP

NOMBRE DE CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/Registration/ExternalLoginEnabled Habilita o deshabilita el inicio de sesión y el registro de la cuenta


externa. Valor predeterminado: true

Authentication/SAML2/[provider]/MetadataAddress Requerido. La dirección URL de metadatos de WS-Federation del


servidor (STS) AD FS. Comúnmente termina con la ruta de
acceso:/FederationMetadata/2007-06/FederationMetadata.xml.
Ejemplo:
https://adfs.contoso.com/FederationMetadata/2007-
06/FederationMetadata.xml
. Más información:
WsFederationAuthenticationOptions.MetadataAddress

Authentication/SAML2/[provider]/AuthenticationType Requerido. El tipo de middleware de autenticación OWIN. Especifique el


valor del atributo entityID en la raíz del XML de metadatos de
federación. Ejemplo:
https://adfs.contoso.com/adfs/services/trust . Más información:
AuthenticationOptions.AuthenticationType

Authentication/SAML2/[provider]/ServiceProviderRealm Requerido. El identificador del usuario de confianza AD FS. Ejemplo:


o https://portal.contoso.com/ . Más información:
Authentication/SAML2/[provider]/Wtrealm WsFederationAuthenticationOptions.Wtrealm
NOMBRE DE CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Authentication/SAML2/[provider]/AssertionConsumerServiceUrl Requerido. El extremo de aserción del consumidor SAML AD FS.


o Ejemplo: https://portal.contoso.com/signin-saml2. Más información:
Authentication/SAML2/[provider]/Wreply WsFederationAuthenticationOptions.Wreply

Authentication/SAML2/[provider]/Caption Recomendado. El texto que el usuario puede mostrar en una interfaz de


usuario de inicio de sesión. Predeterminado: [provider]. Más
información: WsFederationAuthenticationOptions.Caption

Authentication/SAML2/[provider]/CallbackPath Una ruta limitada opcional en la que procesar la devolución de llamada


de autenticación. Más información:
WsFederationAuthenticationOptions.CallbackPath

Authentication/SAML2/[provider]/BackchannelTimeout Valor de tiempo de espera para comunicaciones del canal posterior.


Ejemplo: 00:05:00 (5 mins). Más información:
WsFederationAuthenticationOptions.BackchannelTimeout

Authentication/SAML2/[provider]/UseTokenLifetime Indica que la duración de la sesión de autenticación (por ejemplo,


cookies) debe coincidir con la del token de autenticación.
WsFederationAuthenticationOptions.UseTokenLifetime.

Authentication/SAML2/[provider]/AuthenticationMode El modo de middleware de autenticación OWIN. Más información:


AuthenticationOptions.AuthenticationMode

Authentication/SAML2/[provider]/SignInAsAuthenticationType El AuthenticationType usado al crear el


System.Security.Claims.ClaimsIdentity. Más información:
WsFederationAuthenticationOptions.SignInAsAuthenticationType

Authentication/SAML2/[provider]/ValidAudiences Lista separada por comas de direcciones URL de la audiencia. Más


información: TokenValidationParameters.AllowedAudiences

Authentication/SAML2/[provider]/ClockSkew El desplazamiento del reloj a aplicar al validar horas.

Authentication/SAML2/[provider]/RequireExpirationTime Un valor que indica si los tokens deben tener un valor de expiración.

Authentication/SAML2/[provider]/ValidateAudience Un booleano para controlar si el público se validará durante la


validación de token.

Inicio de sesión iniciado por IdP


AD FS admite el perfil inicio de seseión único iniciado por IdP (SSO ) de la especificación SAML 2.0. Para que el portal (proveedor
de servicios) responda correctamente a la solicitud de SAML iniciada por el IdP, el parámetro RelayState se debe codificar
correctamente.
El valor de cadena básico que se codificará en el parámetro SAML RelayState debe estar en formato ReturnUrl=/content/sub-
content/, donde /content/sub-content/ es la ruta a la página web a la que quiere ir en el portal (proveedor de servicios). La ruta
se puede reemplazar por cualquier página web válida en el portal. El valor de cadena se codifica y se incluye en una cadena
contenedora de formato RPID=<URL encoded RPID>&RelayState<=URL encoded RelayState>. Esta cadena completa se
codifica una vez y se agrega a otro contenedor del formato https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?
RelayState=&lt;URL encoded RPID/RelayState>.
Por ejemplo, dada la ruta de proveedor de servicio /content/sub-content/ y el identificador de usuario de confianza
https://portal.contoso.com/, construya la dirección URL con los pasos:
Codifique el valor ReturnUrl=/content/sub-content/
para obtener ReturnUrl%3D%2Fcontent%2Fsub-content%2F
Codifique el valor https://portal.contoso.com/
para obtener https%3A%2F%2Fportal.contoso.com%2F
Codifique el valor RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-
content%2F
para obtener
RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-
content%252F
Anteponga la ruta SSO iniciada por IdP AD FS para obtener la dirección URL final
https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?
RelayState=RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-
content%252F
El siguiente script de PowerShell puede usarse para crear la dirección URL (guardar en un archivo llamado Get-IdPInitiatedUrl.ps1).

<#

.SYNOPSIS

Constructs an IdP-initiated SSO URL to access a portal page on the service provider.

.PARAMETER path

The path to the portal page.

.PARAMETER rpid

The relying party identifier.

.PARAMETER adfsPath

The AD FS IdP initiated SSO page.

.EXAMPLE

PS C:\\> .\\Get-IdPInitiatedUrl.ps1 -path "/content/sub-content/" -rpid "https://portal.contoso.com/" -adfsPath


"https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx"

#>

param

[parameter(mandatory=$true,position=0)]

$path,

[parameter(mandatory=$true,position=1)]

$rpid,

[parameter(position=2)]

$adfsPath = https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx

$state = ReturnUrl=$path

$encodedPath = [uri]::EscapeDataString($state)

$encodedRpid = [uri]::EscapeDataString($rpid)

$encodedPathRpid = [uri]::EscapeDataString("RPID=$encodedRpid&RelayState=$encodedPath")

$idpInitiatedUrl = {0}?RelayState={1} -f $adfsPath, $encodedPathRpid

Write-Output $idpInitiatedUrl

Configuración de SAML 2.0 para Azure Active Directory


La sección anterior que describe AD FS también puede ser aplicada a Azure AD, dado que Azure AD se comporta como un IdP
compatible con SAML 2.0–estándar. Para empezar, inicie sesión en el Azure Portal de administración y cree o seleccione un
directorio existente. Cuando un directorio está disponible siga las instrucciones para agregar una aplicación al directorio.
1. En el menú Aplicaciones del directorio, seleccione Agregar.
2. Elija Agregue una aplicación que mi organización está desarrollando.
3. Especifique un nombre personalizado para la aplicación y luego elija el tipo de aplicación web y/o API web.
4. Para la Dirección URL de inicio de sesión y la URI de Id. de la aplicación, especifique la dirección URL del portal para
los dos campos https://portal.contoso.com/. Esto corresponde al valor de la configuración del sitio ServiceProviderRealm
(Wtrealm).
5. En este punto, se crea una nueva aplicación. Vaya a la sección Configurar en el menú.
En la sección inicio de sesión único, actualice la primera entrada Dirección URL de respuesta para incluir una ruta en la
dirección URL https://portal.contoso.com/signin-azure-ad.
Esto corresponde al valor del parámetro del sitio AssertionConsumerServiceUrl (Wreply).
6. En el menú de pie de página, seleccione Ver extremos y escriba el campo Documento de metadatos de federación.
Esto corresponde al valor del parámetro del sitio MetadataAddress.
Pegue esta dirección URL en una ventana del explorador para ver el XML de metadatos de federación y anote el atributo
entityID del elemento raíz.
Esto corresponde al valor del parámetro del sitioAuthenticationType.

NOTE
Una configuración AD Azure estándar solo usa los siguientes parámetros (con valores de ejemplo):
Authentication/SAML2/AzureAD/MetadataAddress - https://login.microsoftonline.com/01234567-89ab-cdef-0123-
456789abcdef/federationmetadata/2007-06/federationmetadata.xml
Authentication/SAML2/AzureAD/AuthenticationType - https://sts.windows.net/01234567-89ab-cdef-0123-456789abcdef/
Use el valor del atributoentityID en el elemento raíz de los metadatos de federación (abra laDirección URL de MetadataAddress en un
explorador que sea del valor del ajuste de sitio anterior)
Authentication/SAML2/AzureAD/ServiceProviderRealm - https://portal.contoso.com/
Authentication/SAML2/AzureAD/AssertionConsumerServiceUrl - https://portal.contoso.com/signin-azure-ad |

Proveedor de identidad Shibboleth 3


Use las directrices siguientes para configurar correctamente Proveedor de identidad Shibboleth como servicio de IdP. Lo siguiente
asume que el IdP se hospeda en el dominio https://idp.contoso.com.
La dirección URL de metadatos de federación es https://idp.contoso.com/idp/shibboleth
El IdP se debe configurar para generar o servir como identificador persistente. Siga las instrucciones para habilitar
Generación de identificador persistente.
Los metadatos de federación de IdP (<IDPSSODescriptor>) deben configurarse para incluir un enlace de redirección SSO.
Ejemplo.

<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"

Location=https://idp.contoso.com/idp/profile/SAML2/Redirect/SSO/>

Configure los proveedores de servicios (usuarios de confianza) configurando metadata-providers.xml.


Cada metadato de federación de proveedor de servicios (<SPSSODescriptor>) debe incluir un enlace de publicación de servicio
de consumidor de aserción. Una opción consiste en utilizar un FilesystemMetadataProvider y hacer referencia a un archivo de
configuración que contenga:

<AssertionConsumerService index=1 isDefault=true

Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"

Location=https://portal.contoso.com/signin-saml2/>

El atributo Ubicación corresponde al valorAssertionConsumerServiceUrl (Wreply).


Los metadatos de federación de proveedor de servicios deben especificar un atributo entityID para el EntityDescriptor que
corresponda a la configuración AuthenticationType.
<EntityDescriptor entityID=https://portal.local.contoso.com/&gt;...

NOTE
Una configuración Shibboleth estándar sólo usa los siguientes valores (con valores de ejemplo):
Authentication/SAML2/Shibboleth/MetadataAddress - https://idp.contoso.com/idp/shibboleth
Authentication/SAML2/Shibboleth/AuthenticationType - https://idp.contoso.com/idp/shibboleth
Use el valor del atributo entityID en el elemento raíz de los metadatos de federación (abra la Dirección URL de MetadataAddress en un
explorador que sea el valor del ajuste de sitio anterior)
Authentication/SAML2/Shibboleth/ServiceProviderRealm - https://portal.contoso.com/
Authentication/SAML2/Shibboleth/AssertionConsumerServiceUrl - https://portal.contoso.com/signin-saml2

Inicio de sesión iniciado por IdP


Shibboleth admite el perfil SSO iniciado por IdP de la especificación SAML 2.0. Para que el portal (proveedor de servicios)
responda correctamente a la solicitud de SAML iniciada por el IdP, el parámetro RelayState se debe codificar correctamente.
El valor de cadena básico que se codificará en el parámetro SAML RelayState debe estar en formato ReturnUrl=/content/sub-
content/, donde /content/sub-content/ es la ruta a la página web a la que quiere ir en el portal (proveedor de servicios). La ruta
se puede reemplazar por cualquier página web válida en el portal. La dirección URL completa de SSO iniciado por IdP debe estar
en el formato https://idp.contoso.com/idp/profile/SAML2/Unsolicited/SSO?providerId=&lt;URL Id. del proveedor codificado como
dirección URL>&target=<ruta de retorno codificada como dirección URL>.
Por ejemplo, dada la ruta de proveedor de servicio /content/sub-content/ y el identificador de usuario de confianza
https://portal.contoso.com/, la dirección URL definitiva es https://idp.contoso.com/idp/profile/SAML2/Unsolicited/SSO?
providerId=https%3A%2F%2Fportal.contoso.com%2F&target=ReturnUrl%3D%2Fcontent%2Fsub-content%2F
El siguiente script de PowerShell puede usarse para crear la dirección URL (guardar en un archivo llamado Get-
ShibbolethIdPInitiatedUrl.ps1).
<#

.SYNOPSIS

Constructs an IdP initiated SSO URL to access a portal page on the service provider.

.PARAMETER path

The path to the portal page.

.PARAMETER providerId

The relying party identifier.

.PARAMETER shibbolethPath

The Shibboleth IdP-initiated SSO page.

.EXAMPLE

PS C:\\> .\\Get-ShibbolethIdPInitiatedUrl.ps1 -path "/content/sub-content/" -providerId "https://portal.contoso.com/" -


shibbolethPath "https://idp.contoso.com/idp/profile/SAML2/Unsolicited/SSO"

#>

param

[parameter(mandatory=$true,position=0)]

$path,

[parameter(mandatory=$true,position=1)]

$providerId,

[parameter(position=2)]

$shibbolethPath = https://idp.contoso.com/idp/profile/SAML2/Unsolicited/SSO

$state = ReturnUrl=$path

$encodedPath = [uri]::EscapeDataString($state)

$encodedRpid = [uri]::EscapeDataString($providerId)

$idpInitiatedUrl = {0}?providerId={1}&target={2} -f $shibbolethPath, $encodedRpid, $encodedPath

Write-Output $idpInitiatedUrl

Configurar AD FS mediante PowerShell


El proceso para agregar un usuario de confianza en AD FS también se puede realizar ejecutando el siguiente script PowerShell en
el servidor de AD FS (guarde el contenido en un archivo llamado Add-AdxPortalRelyingPartyTrustForSaml.ps1). Después de
ejecutar el script, continúe con la configuración del sitio del portal.

<#

.SYNOPSIS

Adds a SAML 2.0 relying party trust entry for a website.

.PARAMETER domain

The domain name of the portal.

.EXAMPLE

PS C:\\> .\\Add-AdxPortalRelyingPartyTrustForSaml.ps1 -domain portal.contoso.com

#>
param

[parameter(Mandatory=$true,Position=0)]

$domain,

[parameter(Position=1)]

$callbackPath = /signin-saml2

$VerbosePreference = Continue

$ErrorActionPreference = Stop

Import-Module adfs

Function Add-CrmRelyingPartyTrust

param (

[parameter(Mandatory=$true,Position=0)]

$name

$identifier = https://{0}/ -f $name

$samlEndpoint = New-ADFSSamlEndpoint -Binding POST -Protocol SAMLAssertionConsumer -Uri (https://{0}{1} -f $name,


$callbackPath)

$identityProviderValue = Get-ADFSProperties | % { $_.Identifier.AbsoluteUri }

$issuanceTransformRules = @'

@RuleTemplate = MapClaims

@RuleName = Transform [!INCLUDE[pn-ms-windows-short](../../../includes/pn-ms-windows-short.md)] Account Name to Name ID claim

c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"]

=> issue(Type = "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Issuer = c.Issuer, OriginalIssuer =


c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType,
Properties["https://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/format"] = "urn:oasis:names:tc:SAML:2.0:nameid-
format:persistent");

@RuleTemplate = LdapClaims

@RuleName = Send LDAP Claims

c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]

=> issue(store = "[!INCLUDE[pn-active-directory](../../../includes/pn-active-directory.md)]", types =


("https://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname",
"https://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname",
"https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"), query = ";givenName,sn,mail;{{0}}", param = c.Value);

'@ -f $identityProviderValue

$issuanceAuthorizationRules = @'

@RuleTemplate = AllowAllAuthzRule

=> issue(Type = https://schemas.microsoft.com/authorization/claims/permit, Value = true);

'@

Add-ADFSRelyingPartyTrust -Name $name -Identifier $identifier -SamlEndpoint $samlEndpoint -IssuanceTransformRules


$issuanceTransformRules -IssuanceAuthorizationRules $issuanceAuthorizationRules

# add the 'Identity Provider' claim description if it is missing


# add the 'Identity Provider' claim description if it is missing

if (-not (Get-ADFSClaimDescription | ? { $_.Name -eq Persistent Identifier })) {

Add-ADFSClaimDescription -name "Persistent Identifier" -ClaimType "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" -


IsOffered:$true -IsAccepted:$true

# add the portal relying party trust

Add-CrmRelyingPartyTrust $domain

Vea también
Configurar la autenticación del portal
Establecer identidad de autenticación para un portal
Configuración del proveedor OAuth2 para portales
Configuración de proveedor Open ID Connect para portales
Configuración de proveedor de WS-Federation para portales
Migrar proveedores de identidad a Azure AD B2C
25/11/2019 • 7 minutes to read • Edit Online

El portal admite un sistema de seguridad configurable que permite a nuestros clientes admitir varios sistemas de
autenticación. El portal incluye sus propias credenciales locales además de federación con proveedores de
identidad externos mediante protocolos estándar como OIDC, SAML y WS -Federation. En el futuro, se
recomienda usar solo el proveedor de identidad de Azure AD B2C para la autenticación y que se descarte a los
demás proveedores de identidad.

Marcar un proveedor de identidad como descartado


Puede configurar su portal para marcar a los demás proveedores de identidad como obsoletos y permitir que los
usuarios migren a un proveedor de identidad de Azure AD B2C.
La siguiente configuración de sitio se utiliza para controlar la obsolescencia de proveedores de identidad:

NOMBRE DESCRIPCIÓN

Authentication/Registration/LocalLoginDeprecated Un valor verdadero o falso. Si se establece en true, la cuenta


local se marcará como obsoleta. El usuario del portal deberá
migrar a una cuenta no obsoleta. De forma predeterminada,
se establece como falso.

Authentication/[protocolo]/[proveedor]/Obsoleto Un valor verdadero o falso. Si se establece en true, la cuenta


específica se marcará como obsoleta. El usuario del portal
deberá migrar a una cuenta no obsoleta. De forma
predeterminada, se establece como falso.

Cuando un usuario del portal intenta iniciar sesión y se marca al menos a un proveedor de identidad como
obsoleto, la cuenta obsoleta se muestra en la página. En el siguiente ejemplo, una cuenta de Microsoft se marca
como obsoleta.
Puede cambiar el texto de la pantalla para proveedor de autenticación heredado usando el siguiente fragmento de
contenido:

NOMBRE TIPO VALUE

Account/Signin/SignInExternalDeprecate Texto Iniciar sesión con una cuenta heredada


dFormHeading

NOTE
No se muestran los proveedores de identidad obsoletos cuando un usuario registra o canjea una invitación a un portal.

Migrar un proveedor de identidad obsoleto a un proveedor de


identidad nuevo
Si un usuario de portal inicia sesión con un proveedor de identidad obsoleto, la pantalla de migración de cuentas
muestra un mensaje para iniciar sesión con un proveedor de identidad no obsoleto. Cuando el usuario inicia sesión
con el proveedor de identidad no obsoleto, la cuenta de usuario se asocia al nuevo proveedor.
Puede cambiar el mensaje en la pantalla para migración de cuentas mediante los siguientes fragmentos de
contenido:

NOMBRE TIPO VALUE

Account/Conversion/PageTitle Texto Migración de cuenta

Account/Conversion/PageCopy HTML Ha iniciado sesión con una cuenta que


ya no se admite. Para seguir utilizando
este portal, debe migrar a otra cuenta.
Seleccione el botón siguiente para iniciar
sesión con una cuenta admitida nueva o
existente.

Account/Conversion/SignInExternalFor Texto Iniciar sesión con una cuenta admitida.


mHeading

El portal permite asociar varias identidades a un único registro de contacto. Cuando varios proveedores están
obsoletos, un usuario de portal debe aceptar los términos y condiciones varias veces. Cada vez que un usuario
inicia sesión con un proveedor de identidad obsoleto, se inicia el proceso de migración de cuenta para cada
proveedor obsoleto y el registro de contacto se asocia al proveedor no obsoleto después de la migración de
cuenta.
Por ejemplo: el portal admite cuentas de Microsoft (MSA), Google y Facebook como proveedores de identidad
para la autenticación. Si marca Google y Facebook como proveedores obsoletos y un usuario del portal solo tiene
Google y Facebook como proveedores de identidad para la autenticación, el usuario recibirá el mensaje de
migración de cuenta al intentar iniciar sesión con alguno de estos dos proveedores. Cuando el usuario inicia sesión
con MSA, MSA se agrega al registro de contacto del usuario. Ahora el usuario tiene solo MSA como el proveedor
de identidad de autenticación admitido.
Cuando un usuario del portal selecciona un nuevo proveedor de identidad y la identidad ya está asociada a otro
registro de contacto, aparece un mensaje de error. Puede configurar el mensaje de error con los siguientes
fragmentos de contenido:

NOMBRE TIPO VALUE

Account/Signin/AccountConversionIden Texto Error de conversión de cuenta


tityUsedErrorHeading

Account/Signin/AccountConversionIden HTML Esta cuenta ya existe. Cierre el


tityUsedErrorText explorador, reinicie el proceso y
seleccione otra cuenta en la página
Migración de cuenta.

Deshabilitación del inicio de sesión local


Puede configurar un portal para deshabilitar el inicio de sesión local mediante la configuración de sitio
Authentication/Registration/LocalLoginDeprecated . Si alguien intenta iniciar sesión con las credenciales locales,
aparece la pantalla de migración de cuenta junto con las instrucciones para iniciar sesión con un proveedor de
identidad no obsoleto. Cuando se migra la cuenta, las credenciales locales del usuario se deshabilitan.

NOTE
Si marca el inicio de sesión local como obsoleto, el usuario no podrá registrarse para una cuenta nueva.

El campo siguiente se añade en el registro de contacto del portal para indicar si el inicio de sesión local está
deshabilitada para un usuario:
Inicio de sesión local deshabilitado: Indica que el contacto ya no puede iniciar sesión en el portal
utilizando la cuenta local. De forma predeterminada, se establece en No. Este campo está establecido en Sí
si se migra una cuenta de usuario a un proveedor de identidad no obsoleto y está deshabilitado el inicio de
sesión local.
Search
25/11/2019 • 35 minutes to read • Edit Online

En portales de PowerApps, puede buscar los registros a través de varias entidades mediante búsqueda por relevancia o búsqueda categorizada. También puede buscar en los
registros de listas de la entidad con funcionalidad de búsqueda de la lista de entidades.
La funcionalidad de búsqueda de lista de entidades en el portal usa FetchXML en el backend para buscar las columnas definidas en la lista de entidades y luego mostrar los
resultados.
La búsqueda global usa un índice de búsqueda externo que se base en Lucene.Net y se usa para buscar en las entidades y en varios campos de forma inmediata.

Búsqueda global
La búsqueda global de portales le permite buscar los registros a través de varias entidades. También le permite buscar en múltiples columnas y configurar qué columnas de
una entidad se pueden buscar.
Entre las ventajas de la búsqueda global está su capacidad para:
Encontrar coincidencias con cualquier palabra en el término de búsqueda en cualquier campo de la entidad. Las coincidencias pueden incluir palabras de inflexión como
secuencia, secuenciando, o secuenciado.
Devolver resultados de todas las entidades que permiten búsquedas en una sola lista ordenada por relevancia, en función de factores como número de palabras que
coinciden o su proximidad mutua en el texto.
Resaltar coincidencias en la lista de resultados.
Proporcionar opciones de faceta que se pueden utilizar para filtrar los resultados de búsqueda aún más.
En Búsqueda por relevancia, cuanto mejor sea la correspondencia, más alta aparecerá en los resultados. Una coincidencia tiene una relevancia mayor si se encuentran más
palabras del término de búsqueda en gran proximidad mutua. Cuanto más pequeña sea la cantidad de texto donde se encuentran las palabras de búsqueda, más alta será la
relevancia. Por ejemplo, si encuentra las palabras de búsqueda en un nombre de compañía y una dirección, podría ser una coincidencia mejor que las mismas palabras se
encuentren en un artículo grande, muy alejadas entre sí. Como los resultados se devuelven en una sola lista, puede ver una combinación de registros mostrados uno tras otro,
con los trabajos coincidentes resaltados.
Las secciones siguientes detallan cómo funciona la búsqueda global en portales de PowerApps y describen varias opciones de configuración disponibles.

Entidades de búsqueda en búsqueda global de portal


Las siguientes entidades se pueden buscar en un sitio web del portal siempre que se hayan instalado los paquetes de solución adecuados y se haya agregado la búsqueda a
un portal. Las columnas que están indexadas consistirán en las columnas que se encuentran en la vista búsqueda, que se pueden personalizar. Cada entidad en la lista tiene su
conjunto predeterminado de atributos indexados como se detalla aquí:
Artículo de conocimientos
También se pueden buscar notas y adjuntos de un artículo de conocimiento. Más información: Buscar en el contenido de los archivos adjuntos
Solo se pueden realizar búsquedas en los artículos si están publicados y su campo Internal Only se establece en false.
Blog
Entrada de blog
Publicar comentario
Foro
Entrada de foro
Hilo de foro
Idea
Comentarios de ideas
Foro de ideas
Archivo web
También se pueden realizar búsquedas en el contenido de datos adjuntos de archivos web. Más información: Buscar en el contenido de los archivos adjuntos
Página web
Incidente

NOTE
Aparte de las entidades incluidas aquí, ninguna otra entidad puede estar habilitada para la búsqueda global en un portal.

Campos que se pueden buscar en la búsqueda global


Todos los campos disponibles en la vista definida por la configuración del sitio Search / IndexQueryName para cualquier entidad se indexan en la búsqueda global y se
pueden buscar.
El valor predeterminado para el Search/IndexQueryName es “Portal Search”.
Si la vista no está disponible para una entidad, no se indexa, y los resultados no se muestran en búsqueda global.

NOTE
Si cambia el valor de la configuración del sitio Search/IndexQueryName, debe desencadenar una reindexación manual de la compilación usando los pasos definidos en la sección Reconstruir el
índice de búsqueda completo.

Configuración del sitio relacionada


La siguiente configuración del sitio está relacionada con la búsqueda global:
NOMBRE VALOR PREDETERMINADO DESCRIPCIÓN

Búsqueda / Habilitado Verdadero Un valor booleano que indica si la búsqueda está habilitada. Si
establece su valor en falso, la búsqueda global en el portal se
desactiva.
Si usa plantillas web listas para usar y desactiva esta opción, el
cuadro de búsqueda no se mostrará en el encabezado ni en la
página de búsqueda. Además, no se devuelven resultados
incluso si se introduce la dirección URL directa de la página de
búsqueda.

Búsqueda/Filtros Contenido: adx_webpage; Eventos: adx_event, Una recopilación de opciones de filtro del nombre lógico de
adx_eventschedule; Blogs: adx_blog, adx_blogpost, búsqueda. Definir un valor aquí agregará opciones de filtro
adx_blogpostcomment; Foros: adx_communityforum, desplegable a la búsqueda global. Este valor debe tener la
adx_communityforumthread, adx_communityforumpost; Ideas: forma de pares nombre / valor, con nombre y valor separados
adx_ideaforum, adx_idea, adx_ideacomment; Problemas: por dos puntos, y pares separados por punto y coma. Por
adx_issueforum, adx_issue, adx_issuecomment; Título de datos: ejemplo: “Foros: adx_communityforum,
incidente adx_communityforumthread, adx_communityforumpost;
Blogs: adx_blog, adx_blogpost, adx_blogpostcomment”.

Buscar/IndexQueryName Búsqueda del portal El nombre de la vista del sistema usada por la consulta de
búsqueda de portal para definir los campos de una entidad
habilitada se indexan y se buscan.

Búsqueda/Consulta +(@Query) _title:(@Query) Esta configuración agrega ponderaciones y filtros adicionales a


_logicalname:adx_webpage~0.9^0.2 - la consulta que un usuario ingresa en el cuadro de búsqueda
_logicalname:adx_webfile~0.9 adx_partialurl:(@Query) predeterminado que se muestra en el portal. En el valor
_logicalname:adx_blogpost~0.9^0.1 - predeterminado, @Query es el texto de la consulta escrito por
_logicalname:adx_communityforumthread~0.9 un usuario.
Para obtener información sobre cómo modificar este valor,
siga Sintaxis de la consulta de Lucene.
Importante: estas ponderaciones y filtros se aplican solo al
cuadro de búsqueda que se proporciona en la página de
búsqueda predeterminada del portal. Si usa una etiqueta
líquida de búsqueda para crear su propia página de búsqueda,
este valor no se aplica.

Buscar/lematizador Inglés El idioma utilizado por el algoritmo de la lematización de


búsqueda de portal.

Buscar/FacetedView True Habilita facetas en los resultados de la búsqueda. Cuando se


establece en True, las facetas se mostrarán junto con los
resultados en la página de búsqueda.

Search/IndexNotesAttachments True Indica si se debe indexar el contenido de los datos adjuntos de


las notas en artículos de Knowledge Base y archivos web. De
forma predeterminada, se establece en Falso. Más
información: Buscar en el contenido de los archivos adjuntos

Buscar/RecordTypeFacetsEntities Blogs: adx_blog, adx_blogpost; Foros: adx_communityforum, Esto determina cómo se agrupan las entidades en la faceta
adx_communityforumthread, adx_communityforumpost; Ideas: tipo de registro en la página de búsqueda. Ésta es la
adx_ideaforum, adx_idea; Downloads:annotation, adx_webfile configuración predeterminada.
“DisplayNameinRecordTypeFacet1: logicalnameofentity1,
logicalnameofentity2; DisplayNameinRecordTypeFacet2:
logicalnameofentity3, logicalnameofentity4”
El nombre para mostrar en aspecto del tipo de registro
aparecerá en la interfaz de usuario. Este grupo de facetas
combinará el resultado de las entidades definidas en la
configuración.

KnowledgeManagement/DisplayNotes True Indica si indexar los datos adjuntos de los artículos de


Knowledge Base. De forma predeterminada, se establece en
Falso.

Fragmento de contenido relacionado


Los siguientes fragmentos de contenido están relacionados con la búsqueda global:

NOMBRE VALOR PREDETERMINADO DESCRIPCIÓN

Encabezado/Búsqueda/Etiqueta Search Este fragmento de contenido determina el texto de la marca


de agua que se muestra en el cuadro de búsqueda en el
encabezado del portal.

Encabezado/Búsqueda/Información sobre herramientas Search Este fragmento de contenido determina el texto de


información sobre herramientas que se muestra al pasar el
cursor sobre el icono de búsqueda en el encabezado del
portal.

Búsqueda/Predeterminada/Texto de filtro Todo Este fragmento de contenido determina el texto


predeterminado que se muestra en la lista desplegable de
filtros junto al cuadro de búsqueda.
NOMBRE VALOR PREDETERMINADO DESCRIPCIÓN

Búsqueda/Faceta/Todo Todo Este fragmento de contenido determina el texto


predeterminado que se muestra para la "faceta de todos los
registros" en la faceta "Tipo de registro" de la página de
resultados de búsqueda.

Búsqueda/Faceta/Borrar restricciones Borrar todo Este fragmento de contenido determina la etiqueta del botón
que restablece todas las facetas aplicadas en la página de
resultados de búsqueda.

BuscarFacetaDescargas Descargas Este fragmento de contenido determina la etiqueta que se


muestra en los resultados de búsqueda de archivos adjuntos
de anotaciones y archivos web en la faceta "Tipo de registro".

Búsqueda/Faceta/Menos Mostrar menos Este fragmento de contenido determina la etiqueta del botón
que colapsa los resultados de faceta.

Búsqueda/Faceta/Fecha de modificación Fecha de modificación Este fragmento de contenido determina la etiqueta del
encabezado que se muestra para la faceta de fecha
modificada.

Búsqueda/Faceta/Más Mostrar más Este fragmento de contenido determina la etiqueta del botón
que expande los resultados de las facetas.

Búsqueda/Faceta/Producto Productos Este fragmento de contenido determina la etiqueta de la


faceta Productos.
NOMBRE VALOR PREDETERMINADO DESCRIPCIÓN

Búsqueda/Faceta/Valoración Valoración Este fragmento de contenido determina la etiqueta de la


faceta Clasificación.

Búsqueda/Faceta/Tipo de registro Tipo de registro Este fragmento de contenido determina la etiqueta de la


faceta clasificación.

Búsqueda/Faceta/Criterio de ordenación/Valoración media de Valoraciones medias de los usuarios Este fragmento de contenido determina la etiqueta que se
los usuarios muestra para la opción "Ordenar por calificaciones promedio
del usuario" en la lista desplegable de clasificación en la página
Resultados de la búsqueda.

Búsqueda/Faceta/Criterio de ordenación/Relevancia Importancia Este fragmento de contenido determina la etiqueta que se


muestra para la opción "Ordenar por relevancia" en la lista
desplegable de clasificación en la página Resultados de la
búsqueda.

Búsqueda/Faceta/Criterio de ordenación/Vistas Número de visualizaciones Este fragmento de contenido determina la etiqueta que se
muestra para la opción "Ordenar por conteo de vista" en la
lista desplegable de clasificación en la página Resultados de la
búsqueda.

Manejo específico de la entidad


Caso: De forma predeterminada, sólo se pueden buscar los casos que se encuentren en el estado Resuelto con el campo Publicar a web como Verdadero. Este
comportamiento se puede modificar actualizando la vista de búsqueda del portal de la entidad del caso y eliminando los filtros disponibles en la vista de búsqueda del
portal. Sin embargo, cuando se elimina esta comprobación, es importante asegurarse de que la plantilla web de Customer Service - Case se modifique de forma
adecuada, ya que esta plantilla web impide que todos los usuarios vean casos que están activos y que no están publicados en la web. Si la plantilla web no se modifica,
los casos serán visibles en resultados de búsqueda. Sin embargo, cuando los selecciona, la página web de detalles del caso se muestra con el error permiso denegado.
Knowledge Base: Solo se pueden buscar los artículos de conocimiento que se encuentran en estado Publicado con el campo Interno establecido como No. Este
comportamiento no puede modificarse. Los artículos de conocimientos también tienen funcionalidades especiales disponibles en los resultados de la búsqueda que
son los siguientes:
Facetas: Hay dos facetas especiales disponibles solo para artículos de conocimientos y se muestran si los registros de artículos de conocimientos están
disponibles en los resultados de la búsqueda.
Faceta de las calificaciones: Esta faceta permite filtrar los resultados de la búsqueda en función de la calificación promedio de los artículos de
conocimientos.
Faceta de las calificaciones: Esta faceta permite filtrar los resultados de la búsqueda en función de la calificación promedio de los artículos de
conocimientos.
Búsqueda de los datos adjuntos: Esta faceta permite buscar en los datos adjuntos o notas asociados a un artículo de Knowledge Base. Esto le permite busque
dentro de la descripción de la nota, el título, el nombre de archivo de datos adjuntos, y el contenido de los datos adjuntos notas o de datos adjuntos que se
exponen en portal. Más información: Buscar en el contenido de los archivos adjuntos

Caracteres especiales y sintaxis admitidos por la búsqueda


Como parte de búsqueda global de portal, se admite una variedad de caracteres especiales y de sintaxis que filtren mejor los resultados de la búsqueda. Estos caracteres
especiales y sintaxis se dividen ampliamente en los siguientes grupos:
Término: Cada consulta especificada por un usuario para la búsqueda se analiza en términos y operadores. Estos son los tipos de términos:
Elegir el período: El término solo es una palabra única. Por ejemplo, una consulta {hola mundo} se analizaría en varios términos, “hola” y “mundo”. Cada
período se busca de forma separada. Por tanto, en la consulta {hola mundo}, todos los registros que tienen el término “hola “o “mundo” se presentarían en
resultados de búsqueda.
Frases: Una frase es un grupo de términos rodeado por comillas dobles ("). Por ejemplo, una consulta {“hola mundo”} se analizaría como usuarios de la frase
“hola mundo”. Cada frase se busca completamente. Por lo tanto, en la consulta {"hola mundo"}, todos los registros con la frase completa "hola mundo" se
mostrarían en los resultados de búsqueda y no se mostraría ningún registro que solo tuviese "hola" o "mundo".
Cada consulta de búsqueda puede comprender uno o muchos términos de cualquier tipo que se combinen mediante operadores booleanos para crear consultas
complejas.
Modificadores de período
Búsqueda con caracteres comodín: Existen dos tipos de comodines disponibles que se va a usar dentro de varios términos de consultas de búsqueda (no
dentro de consultas de la frase): Búsqueda con caracteres comodín de carácter individual y búsqueda con caracteres comodín de varios caracteres.
Búsqueda con caracteres comodín de carácter individual: Para realizar una búsqueda con caracteres comodín de carácter individual, use el símbolo
del signo de interrogación (?). La búsqueda con caracteres comodín de carácter individual busca los términos que coinciden con el carácter individual
reemplazado. Por ejemplo, para buscar “texto” o “pruébele” puede usar la consulta de búsqueda como “te? t”.
Búsqueda de comodines de varios caracteres: Para realizar una búsqueda de comodines de varios caracteres, use el símbolo asterisco (*). Las
búsquedas de comodines de múltiples caracteres buscan cero o más caracteres. Por ejemplo, para buscar prueba, pruebas o evaluador, puede usar la
consulta de búsqueda como “t ”. También puede usar búsqueda con caracteres comodín de múltiples caracteres en medio de la consulta. Por ejemplo,
“tede prueba”.

NOTE
no puede usar un * o ? símbolo como el primer carácter de una búsqueda.
La búsqueda con caracteres comodín no se puede usar en una consulta de la frase. Por ejemplo, si usa una consulta como “hell* world”, no mostrará resultados con el texto
“hello world”.

Búsqueda de proximidad: La búsqueda de proximidad le permite buscar palabras que se encuentran a una distancia específica una de la otra. Por ejemplo, si
desea encontrar los resultados de las palabras "Imagen" y "Borrosa" que aparecen a una distancia de 10 palabras una de la otra, puede usar la búsqueda de
proximidad.
Para hacer búsquedas de proximidad, use la tilde (~) como símbolo en la consulta. Por ejemplo, si desea encontrar los resultados para las palabras "Imagen" y
"Borrosa" que aparecen a una distancia de 10 palabras una de la otra, entonces la consulta sería "Imagen borrosa" ~ 10.
Impulso de un período: La búsqueda global proporciona el nivel de relevancia de los documentos coincidentes según los términos encontrados. Para impulsar
un término, use el símbolo de intercalación (^) con un factor de impulso (un número) al final del término que está buscando. Cuanto mayor sea el factor de
impulso, más relevante será el plazo.
El impulso le permite supervisar la importancia de un documento impulsando su período. Por ejemplo, si está buscando Smart TV y desea que el término Smart
sea más relevante, aumente usando el símbolo ^ junto con el factor de impulso al lado del término. Debería escribir: Smart ^ 4 TV. Esto hará que los
documentos con el término Smart parezcan más relevantes.
También puede aumentar las condiciones de la frase como en el ejemplo: Televisión inteligente^4 nueva televisión. En este caso, la frase "Smart TV" se
incrementaría en comparación con "New TV".
Por defecto, el factor de impulso es 1. Aunque el factor de impulso debe ser un valor positivo, puede ser inferior a 1 (por ejemplo, 0,2).
Operadores booleanos: Los operadores booleanos permiten a los términos combinarse mediante operadores lógicos. La búsqueda global admite OR, AND, NOT,
"+" y "-" como operadores booleanos.

NOTE
Los operadores booleanos deben escribirse en mayúscula.

OR: El operador OR es el operador predeterminado de la conjunción. Esto significa que si no está el operador booleano entre dos términos, use el operador OR.
El operador OR vincula dos términos y busca un registro coincidente si uno de los términos existe en un registro. Esto es equivalente a una combinación
mediante conjuntos. El símbolo || se debe usar en lugar de la palabra OR. Por ejemplo, la consulta de búsqueda “Smart TV” (excepto comillas) buscará para
todos los registros con la palabra Smart o TV. Esta consulta también se puede escribir como “Smart OR TV”, “Smart || TV”.
Y: El operador Y combina los registros donde ambos términos existen en cualquier parte del texto de un solo documento. Esto es equivalente a una
combinación mediante conjuntos. El símbolo && se debe usar en lugar de la palabra Y. Por ejemplo, la consulta de búsqueda “Smart AND TV” (excepto
comillas) buscará para todos los registros con la palabra Smart y TV. Esta consulta también se puede escribir como “Smart && TV”.
NO: El operador NO excluye los registros después de los que contenga el período NO. Esto es equivalente a una diferencia usando conjuntos. El símbolo ! se
puede usar en lugar de la palabra NO. Por ejemplo, la consulta de búsqueda “Smart NOT TV” (excepto comillas) buscará para todos los registros que tengan la
palabra Smart pero no la palabra TV. Esta consulta también se puede escribir como “Smart ! TV"
Símbolo más (+): El símbolo más (+), conocido también como operador requerido, requiere que el término después del símbolo “+” exista en alguna parte de
un registro. Por ejemplo, la consulta de búsqueda “Smart + TV” buscará para todos los registros donde la palabra TV debe estar presente, y la palabra Smart
puede estar presente también.
Símbolo menos (-): El símbolo menos (-), conocido también como el operador de permitir, excluye los documentos que contienen el término después del
símbolo “-”. Por ejemplo, la consulta de búsqueda “Smart - TV” buscará para todos los registros donde la palabra Smart está presente, y la palabra TV no está
presente.
Agrupar: La búsqueda global de portal admite el uso de paréntesis para agrupar cláusulas para formar subconsultas. Puede ser muy útil si desea gestionar la lógica
booleana para una consulta. Por ejemplo, si desea buscar todos los registros donde aparece alguno de los términos "HD" o "Smart", pero la palabra TV siempre está
presente, la consulta puede escribirse como "(HD or Smart) AND TV" ( excluyendo las comillas).

Etiqueta líquida de búsqueda


Puede invocar la búsqueda global del portal desde plantillas líquidas utilizando la etiqueta searchindex. Más información: searchindex.
IMPORTANT
Cuando se usa la etiqueta de searchindex, las facetas no se devuelven como parte de resultados, ni puede aplicar como filtro.

Actualizar el índice de búsqueda


Las actualizaciones de índice de búsqueda en los portales de PowerApps se producen automáticamente como la invalidación de caché. Sin embargo, tenga en cuenta estos
aspectos importantes a tener presentes:
Todas las entidades habilitadas para la búsqueda deben tener activado el indicador de metadatos Notificación de cambios, de lo contrario, ninguno de los cambios se
notificará al portal y el índice de búsqueda no se actualizará.
Cualquier cambio puede tardar hasta 30 minutos en reflejarse en una búsqueda del portal. Sin embargo, el 95 por ciento de los cambios se actualizará en 15 minutos.
En caso de que intervengan datos adjuntos puede tardar según el tamaño de los datos adjuntos.
Se recomienda volver a crear el índice completo manualmente después de realizar la migración de datos en masa o realizar actualizaciones en masa a los registros en
un breve de tiempo. Para más información consulte Reconstruir el índice de búsqueda completo.

Reconstruir el índice de búsqueda completo


Se requiere la reconstrucción del índice de búsqueda completo siempre que:
Realiza un cambio de metadatos a las propiedades de búsqueda, como cambiar la configuración del sitio específico de una determinada consulta o cambiar la vista de
búsqueda de una entidad, etc.
Se realizan migraciones o actualizaciones masivas de datos.
Un registro de sitio web, asociado al portal, se modifica en un entorno de Common Data Service.
También puede volver a crear un índice completo de búsqueda de un portal.
1. Inicie sesión en el portal como administrador.
2. Navegue a la dirección URL de la siguiente manera: <portal_path>/_services/about
3. Seleccionar Volver a generar un índice de búsqueda.

IMPORTANT
La reconstrucción completa del índice es una operación muy costosa y no debe realizarse durante las horas pico de uso, ya que esto puede hacer que su portal pierda impulso.

Quitar una entidad de búsqueda global


A veces, es posible que deba eliminar completamente determinadas entidades de búsqueda global del portal para asegurarse de que los clientes obtienen los resultados
correctos rápidamente.
En el siguiente ejemplo, quitaremos la entidad Caso de la búsqueda global de portal.
Paso 1: La entidad de caso bloqueada no se indexa
Para evitar que la entidad Case se indexe, debe cambiar el nombre de la vista de la entidad Case que define el conjunto de registros a indexar por el portal (definido por la
configuración del sitio Search / IndexQueryName). De manera predeterminada, el nombre de esa vista es Portal Search.
1. Abra la aplicación Administración del portal.
2. Seleccione el icono Configuración en la barra de herramientas de la parte superior derecha de la página y después seleccione Configuración avanzada.
3. Vaya a Personalizaciones > Personalización > Personalización del sistema.

4. En el cuadro de diálogo de personalización, vaya Componentes > Entidades > Caso en el panel de navegación de la izquierda.
5. Expanda Caso y selecciona Vistas.
6. Seleccione el vista Buscar portal de la lista y abren él en editor de la vista.
7. En la vista del editor, seleccione Ver propiedades.

8. Cambie el nombre de la vista según el requisito. Asegurarse de que el nuevo nombre no tenga el término “Portal Search".

9. Guarde los cambios y cierre el editor de gráficos


10. Seleccione Publicar todas las personalizaciones.
11. Reconstruya el índice completo como se describe en la sección Reconstruya el índice completo de búsqueda.

NOTE
En este ejemplo, vamos realizar cambios en un nivel no administrado editando directamente la vista. También puede realizar esto a través de una solución administrada.

Paso 2: Quite la entidad Caso de la interfaz de usuario


Después de realizar las acciones descritas en el Paso 1, la entidad Caso no podrá ser indexada. Para eliminar la entidad de caso de las áreas de superficie de la interfaz de
usuario, debe modificar la configuración del sitio asociada a la búsqueda global del portal. La siguiente configuración del sitio debe ser modificada:
búsqueda/filtros: Esto quitará la entidad Caso de filtros en la página de búsqueda así como un cuadro de búsqueda en el encabezado del sitio. De forma predeterminada, el
valor es
Content:adx_webpage,adx_webfile;Blogs:adx_blog,adx_blogpost;Forums:adx_communityforum,adx_communityforumthread,adx_communityforumpost;Ideas:adx_ideaforum,adx_idea;Help
Desk:incident;Knowledge:knowledgearticle

Deberá eliminar Help Desk:incident; del valor de esta configuración de sitio para que la entidad Incidente se elimine de los filtros que se encuentran junto al cuadro de
búsqueda en la interfaz de usuario.
El valor modificado será:
Content:adx_webpage,adx_webfile;Blogs:adx_blog,adx_blogpost;Forums:adx_communityforum,adx_communityforumthread,adx_communityforumpost;Ideas:adx_ideaforum,adx_idea;Knowledge:knowledgearticle

Una vez que se modifique la configuración de este sitio, la entidad Caso se eliminará de los filtros en la página de búsqueda, así como en el encabezado.
Usar búsqueda por facetas para mejorar la búsqueda
del portal
25/11/2019 • 3 minutes to read • Edit Online

Puede realizar búsquedas en el contenido del portal mediante los filtros basados en características del contenido.
Los filtros implementados por la búsqueda del portal por facetas permiten a los clientes buscar el contenido
deseado más rápidamente que una búsqueda tradicional.

Habilitación o deshabilitación de la búsqueda por facetas


La búsqueda por facetas predefinida está habilitada en los portales. Para controlarla o habilitarla, siga estos pasos:
1. Abra la aplicación Administración del portal y vaya a Portales > Sitio web > Configuración del sitio.
2. Seleccione el valor de sitio Search/FacetedView.
3. Cambie el Valor a True para habilitar o False para deshabilitar la búsqueda por faceta.
Para deshabilitar un solo elemento de la vista por faceta:
1. Abra la aplicación Administración del portal y vaya a Portales > Plantillas web.
2. Seleccione la vista que desea deshabilitar (es decir, Administración del conocimiento – Artículos con la
clasificación más alta)
3. Seleccione Desactivar en la parte superior de la página.

Agrupe las entidades como parte de un tipo de registro para la vista


por faceta
La configuración del sitio Buscar/RecordTypeFacetsEntities le permite agrupar entidades similares para que los
usuarios tengan formas lógicas de filtrar los resultados de la búsqueda. Por ejemplo, en lugar de tener opciones
independientes para foros, mensajes de foro e hilos del foro, estas entidades se agrupan con el tipo de registro
Foros.
Vaya a Portales > Páginas web > Configuración del sitio y abra la configuración del sitio
Search/RecordTypeFacetsEntities.
Tenga en cuenta que las distintas entidades van precedidas de la palabra Foros:. Esto es porque el primer valor es
el nombre con el que se agrupan. Esta palabra se traducirá en función del idioma que se use en el portal.

Usar búsqueda por facetas para mejorar los resultados de búsqueda de


conocimientos.
La búsqueda por facetas permite a los portales tener filtros de búsqueda en el lateral izquierdo permitiéndole
elegir entre elementos como foros, blogs y artículos de conocimientos. Se agregan más filtros para tipos de
búsqueda específicos. Por ejemplo, los artículos de conocimientos se pueden filtrar por Tipo de registro, Fecha de
modificación, Valoración y Productos para ayudar a los clientes a encontrar el contenido que necesitan. El lado
derecho también tiene un cuadro desplegable que ordena los resultados en función de la opción del cliente de
Relevancia o Número de visualizaciones (algo específico de los artículos de conocimientos). A continuación se
proporciona una captura de pantalla con un ejemplo de algunos de los filtros disponibles.
Buscar contenido de archivo adjunto
25/11/2019 • 7 minutes to read • Edit Online

Puede usar las notas adjuntas para incluir archivos descargables en artículos de Knowledge Base. También
puede usar los archivos web para crear una página Preguntas más frecuentes con el contenido descargable.
Puede configurar el portal para permitir que los usuarios del mismo busquen en el contenido de los datos
adjuntos de artículos de Knowledge Base. Esto ayuda a los usuarios a encontrar la información que están
buscando.
En artículos de Knowledge Base, se indexa cualquier nota adjunta con el prefijo definido. En archivos web, se
indexan las últimos notas adjuntas.
Para indexar los datos adjuntos, debe crear las siguientes configuraciones del sitio y establecer su valor en
Verdadero:

CONFIGURACIÓN DEL SITIO DESCRIPCIÓN

Search/IndexNotesAttachments Indica si se debe indexar el contenido de los datos adjuntos


de las notas en artículos de Knowledge Base y archivos web.
De forma predeterminada, se establece en Falso.

KnowledgeManagement/DisplayNotes Indica si indexar los datos adjuntos de los artículos de


Knowledge Base. De forma predeterminada, se establece en
Falso.

NOTE
Solo los archivos que se adjuntan a los artículos de conocimientos pueden ser buscados. Los archivos que se adjuntan a
los archivos web no se pueden buscar.

Cuando busca un período, los resultados de la búsqueda también incluyen los datos adjuntos. Si el término de
búsqueda coincide con los datos adjuntos de las notas, también se proporciona el vínculo al artículo
correspondiente de Knowledge Base. Para ver los datos adjuntos descargables, seleccione Descargas en Tipo
de registro en el panel izquierdo. Para modificar la etiqueta Descargas, edite el fragmento de código de
contenido Search/Facet/Downloads. De manera predeterminada, el valor se establece como Descargas.
NOTE
Para usar esta funcionalidad, debe habilitar la búsqueda por relevancia. Más información: Búsqueda por relevancia

Actualizar configuraciones del portal


Si ya tiene un portal antes de abril de 2018 y ha actualizado el portal a la versión más reciente, debe usar las
siguientes configuraciones para que tengan la misma experiencia de usuario que una nueva instalación de
portal.
Fragmentos de contenido
Para modificar la etiqueta que se muestra en los resultados de la búsqueda para descargas de anotaciones y
archivos web, cree un fragmento de código del contenido Search/Facet/Downloads y, a continuación, establezca
su valor según corresponda. El valor predeterminado es Descargas.
Archivos web
Ahora se puede indexar el contenido de los datos adjuntos del archivo asociado a los archivos web. Puede
actualizar los archivos web existentes para los archivos CSS y de imagen (por ejemplo, bootstrap.min.css,
theme.css y homehero.jpg) que se excluirán de la búsqueda.
1. Abra la aplicación Administración del portal y vaya a Portales > Archivos web.
2. Abra el archivo que se excluirá de la búsqueda.
3. En Varios, seleccione Sí en el campo Excluir de la búsqueda.
Plantillas web
La plantilla web Plantilla de búsqueda por facetas - Resultados se revisa para mostrar los archivos asociados a
los artículos de Knowledge Base como los elementos principales del resultado de búsqueda con un vínculo de
artículo relacionado. Debe actualizar la plantilla web Plantilla de búsqueda por facetas - Resultados para el
siguiente origen:
{% assign openTag = '{{' %}
{% assign closingTag = '}}' %}
{%raw%}
<script id=search-view-results type=text/x-handlebars-template>
{{#if items}}
<div class=page-header>
<h3>{%endraw%}{{openTag}} stringFormat {{ resx.Search_Results_Format_String }} firstResultNumber
lastResultNumber itemCount {{closingTag}}{%raw%}
<em class=querytext>{{{query}}}</em>
{{#if isResetVisible}}
<a class="btn btn-default btn-sm facet-clear-all" role="button" title="{%endraw%}{{
snippets['Search/Facet/ClearConstraints'] | default: res['Search_Filter_Clear_All'] }}{%raw%}" tabIndex="0">
{%endraw%}{{ snippets['Search/Facet/ClearConstraints'] | default: res['Search_Filter_Clear_All'] }}{%raw%}
</a>
{{/if}}
</h3>
</div>
<ul>
{{#each items}}
<li>
<h3><a title={{title}} href={{url}}>{{#if parent}}<span class=glyphicon glyphicon-file pull-left text-
muted aria-hidden=true></span>{{/if}}{{title}}</a></h3>
<p class=fragment>{{{fragment}}}</p>
{{#if parent}}
<p class=small related-article>{%endraw%}{{ resx.Related_Article }}{%raw%}: <a title={{parent.title}}
href={{parent.absoluteUrl}}>{{parent.title}}</a></p>
{{/if}}
<ul class=note-group small list-unstyled>
{{#if relatedNotes}}
{{#each relatedNotes}}
<li class=note-item>
{{#if isImage}}
<a target=_blank title={{title}} href={{absoluteUrl}}><span class=glyphicon glyphicon-file aria-
hidden=true></span>&nbsp;{{title}}</a>
{{else}}
<a title={{title}} href={{absoluteUrl}}><span class=glyphicon glyphicon-file aria-hidden=true>
</span>&nbsp;{{title}}</a>
{{/if}}
<p class=fragment text-muted>{{{fragment}}}</p>
</li>
{{/each}}
{{/if}}
</ul>
</li>
{{/each}}
</ul>
{{else}}
<h2>{%endraw%}{{ resx.Search_No_Results_Found }}{%raw%}<em class=querytext>{{{query}}}</em>
{{#if isResetVisible}}
<a class="btn btn-default btn-sm facet-clear-all" role="button" title="{%endraw%}{{
snippets['Search/Facet/ClearConstraints'] | default: res['Search_Filter_Clear_All'] }}{%raw%}" tabIndex="0">
{%endraw%}{{ snippets['Search/Facet/ClearConstraints'] | default: res['Search_Filter_Clear_All'] }}{%raw%}
</a>
{{/if}}
</h2>
{{/if}}
</script>
{%endraw%}

Configuraciones de sitios
Debe agregar el valor \_logicalname:annotation~0.9^0.25 para la configuración Search/Query. Una vez
agregado, el valor debe ser el siguiente:
+(@Query) \_title:(@Query) \_logicalname:knowledgearticle~0.9^0.3 \_logicalname:annotation~0.9^0.25
\_logicalname:adx_webpage~0.9^0.2 -\_logicalname:adx_webfile~0.9 adx_partialurl:(@Query)
\_logicalname:adx_blogpost~0.9^0.1 -\_logicalname:adx_communityforumthread~0.9

Para configurar las facetas para anotaciones de grupo asociadas a los artículos de Knowledge Base y los archivos
web en una única faceta, edite el nombre de la configuración del sitio Search/RecordTypeFacetsEntities y anexar
;Downloads:annotation,adx_webfile a su valor.

Para permitir que los datos adjuntos asociados a los artículos de conocimientos aparezcan en el portal y los
resultados de la búsqueda, edite la configuración del sitio KnowledgeManagement/DisplayNotes y
establezca su valor en Verdadero. La configuración del sitio KnowledgeManagement/NotesFilter contiene
un valor de prefijo que no debe prefijarse al campo de texto de notas en notas; en el portal solo aparecerá las
notas con el valor de prefijo especificado. De forma predeterminada, el valor es *WEB*, pero puede cambiarlo a
través de la configuración del sitio.
Para habilitar la indexación de los datos adjuntos de los archivos asociados a las notas, cree la configuración del
sitio Search/IndexNotesAttachments y establezca su valor en Verdadero.
Habilitar la compatibilidad con el portal de varios
idiomas
25/11/2019 • 7 minutes to read • Edit Online

La empresa no se limita a una sola región o a un idioma. Un solo portal puede mostrar contenido en varios
idiomas para llegar a clientes de todo el mundo. El contenido del portal se puede traducir en varios idiomas
mientras se mantiene una sola jerarquía de contenido.

Para habilitar varios idiomas para un portal, siga estos pasos:


1. Habilitar idiomas en un entorno de Common Data Service.
2. Vaya a portales > sitio web > sitiosWeb.
3. Seleccione el sitio web al que desea agregar compatibilidad con idiomas.
4. En la sección idiomas admitidos de la pestaña General , seleccione nuevo idioma del sitio web.
5. Rellene el formulario, incluido el idioma del portal (búsqueda de idiomas que están activados en la
organización y que son compatibles con los portales) y el estado de publicación.
NOTE
Si activa nuevos idiomas después de aprovisionar el portal, puede importar las traducciones de metadatos para que los
metadatos se traduzcan para los idiomas que se acaban de activar.

Idiomas admitidos
En la tabla siguiente se muestran todos los idiomas disponibles actualmente. Esta lista se puede encontrar yendo a
portales > contenido > lenguajes del portal. El nombre para mostrar del portal de un idioma se puede cambiar
después de seleccionar el idioma que se va a cambiar desde esta página. Tenga en cuenta que la lista ahora incluye
idiomas de Asia Oriental (japonés, Chino y Coreano).

NOMBRE PARA MOSTRAR DEL


NOMBRE CÓDIGO DE IDIOMA LCID PORTAL

Euskera (euskera) EU-ES 1069 euskara

Búlgaro-Bulgaria BG-BG 1026 български

Catalán-catalán CA-ES 1027 català

Chino (China) zh-CN 2052 中文(中国)

Chino (Hong Kong RAE) ZH-HK 3076 中文(香港特別行政區)

Chino (tradicional) zh-TW 1028 中文(台灣)

Croata-Croacia hr-HR 1050 Hrvatski

Checo-República Checa CS-CZ 1029 čeština

Danés (Dinamarca) da-DK 1030 Dansk

Neerlandés (Países Bajos) nl-NL 1043 Holandes

Inglés en-US 1033 Inglés

Estonio-Estonia ET-EE 1061 Eesti

Finés-Finlandia fi-FI 1035 Suomi

Francés (Francia) fr-FR 1036 francesa

Gallego-España GL-ES 1110 Galego

Alemán (Alemania) de-DE 1031 Deutsch

Griego-Grecia el-GR 1032 Ελληνικά

Hindi (India) HI-IN 1081

Húngaro (Hungría) Hu-HU 1038 Magyar


NOMBRE PARA MOSTRAR DEL
NOMBRE CÓDIGO DE IDIOMA LCID PORTAL

Indonesio-Indonesia identificador ID. 1057 Bahasa Indonesia

Italiano-Italia ti 1040 italiana

Japonés (Japón) ja-JP 1041 日本語

Kazajo: Kazajstán kk-KZ 1087 қазақ тілі

Coreano (Corea) ko-KR 1042 한국어

Letón (Letonia) LV: LV 1062 latviešu

Lituano (Lituania) lt-LT 1063 lietuvių

Malayo-Malasia MS-MY 1086 Bahasa Melayu

Noruego (bokmål)- Noruega NB-NO 1044 Norsk Bokmål

Polaco-Polonia PL-PL 1045 Polski

Portugués (Brasil) pt-BR 1046 Português (Brasil)

Portugués (Portugal) pt-PT 2070 Português (Portugal)

Rumano-Rumania RO-RO 1048 română

Ruso-Rusia ru-RU 1049 русский

Serbio (cirílico)- Serbia Sr-Cyrl-CS 3098 српски

Serbio (Latino)- Serbia Sr-Latn-CS 2074 Srpski

Eslovaco-Eslovaquia SK-SK 1051 slovenčina

Esloveno-Eslovenia SL-SI 1060 slovenščina

Español (Alfabetización es-ES 3082 Español


tradicional)- España

Sueco (Suecia) SV-SE 1053 Svenska

Tailandés (Tailandia) TH-TH 1054 ไทย

Turco-Turquía TR-TR 1055 Türkçe

Ucraniano (Ucrania) RU-UA 1058 українська

Vietnamita (Vietnam) VI-VN 1066 Tiế ng Việt


Crear contenido en varios idiomas
1. Inicie sesión en Dynamics 365 portales.
2. Vaya a portales > contenido > páginas web para ver una lista de contenido. Para cada página web, habrá
una versión primaria de la página y una versión secundaria de la página para cada idioma activado para el
portal.
3. Para agregar una nueva localización de la página, vaya a una página base y desplácese hacia abajo hasta
contenido localizado.
4. Seleccione el botón + del lado derecho para crear una búsqueda para la versión localizada.

NOTE
Los campos de configuración de la Página principal de una página de contenido no se heredan de las páginas de contenido
existentes. Solo se usan en la creación de nuevas páginas de contenido. Debe actualizar las configuraciones de página de
contenido individualmente.

Los artículos de conocimientos solo se mostrarán si se han traducido al idioma en el que el usuario establece el
portal que se va a mostrar en. Sin embargo, los foros y blogs permiten un mayor control sobre cómo se presentan
en otros idiomas. Especificar un idioma para un foro o blog es opcional. Si no se especifica un idioma, el foro o el
blog se mostrarán en el idioma principal de la organización. Si desea que el foro o el blog sean específicos de un
idioma, debe crearlos y asignarles el idioma.
Los conjuntos de vínculos Web son los vínculos de navegación en la parte superior del portal. Al navegar a
portales > contenido > conjuntos de vínculos Web puede controlar cómo se traduce este contenido. Cuando
un idioma está activo para el portal, se crea un nuevo conjunto de vínculos para el idioma recién activado.
Crear y administrar archivos web
25/11/2019 • 9 minutes to read • Edit Online

Un archivo web representa un archivo descargable en un sitio web del portal que se usa para almacenar imágenes,
documentos y cualquier otro tipo de archivo.
Para almacenar el contenido real de un archivo determinado, los portales usan la característica de datos adjuntos
de las notas asociadas a un registro de archivo web. El archivo adjunto de la más nueva nota asociada al archivo
web se usa como el contenido del archivo. Por lo tanto, el tamaño del contenido del archivo web que pueden
admitir los portales está determinado por el tamaño de los datos adjuntos de nota que admita la instalación de
Dynamics 365.

Administrar archivos web


Se pueden crear, editar y eliminar archivos web desde portales de PowerApps.
1. Abra la aplicación Administración del portal.
2. Vaya a Portales > Archivos web.
3. Para crear un nuevo archivo web, seleccione Nuevo.
4. Para editar un archivo web existente, seleccione el nombre del archivo web.
5. Especifique los valores adecuados en los campos.
6. Seleccione Guardar y cerrar.
Atributos del archivo web
La tabla siguiente explica muchos de los atributos del archivo web estándar que usan los portales. Es importante
observar que la forma en que se representan muchos de los atributos orientados a contenido/visualización está
administrada por la plantilla de página web utilizada y, por tanto, por el desarrollador del portal.

NOMBRE DESCRIPCIÓN

Nombre Nombre descriptivo de la entidad. Esta valor se usará como


título del archivo en la mayoría de las plantillas (por ejemplo,
en títulos de vínculos). Este campo es obligatorio.

Sitio web Sitio web al que pertenece la entidad. Este campo es


obligatorio.

Página primaria La página web principal de la entidad, en la jerarquía de


contenido del sitio web.
Mientras que un archivo no es necesario para disponer de una
página principal (en algunos escenarios, por ejemplo, un
archivo puede tener una publicación de blog principal),
proporcionar una página principal es la configuración
recomendada en la mayoría de los casos.
NOMBRE DESCRIPCIÓN

Dirección URL parcial El segmento de dirección URL utilizado para crear la dirección
URL de portal de esta página.
La página raíz única (principal) del sitio web, la página única
que no tiene ninguna página primaria asociada, debe tener un
valor de URL parcial de /.
Se usan valores de dirección URL parciales como segmentos
de la dirección URL. Por tanto, no deben contener caracteres
no válidos para dirección URL, como ?, #, !, %. Dado que las
direcciones URL de Adxstudio Portals se generan combinando
valores de dirección URL parciales con barras diagonales (/),
tampoco deben contener normalmente las barras diagonales.
La práctica recomendada sería restringir valores parciales de la
dirección URL a letras, números y guiones o caracteres de
subrayado. Por ejemplo: press-release.pdf, Site_Header.png.

Estado de publicación El estado actual de flujo de trabajo de publicación del archivo,


que puede dictar si el archivo es visible en la ubicación. El uso
más común de esta característica es proporcionar control de
publicado/borrador sobre contenido.
A los usuarios con los permisos de administración de
contenido se les puede conceder la capacidad de usar el modo
de vista previa, que permite que a estos usuarios ver (obtener
una vista previa) contenido sin publicar.

Mostrar fecha Este atributo es un valor de fecha y hora que puede usar una
plantilla, básicamente con fines de mostrar. No tiene ningún
implicación funcional, pero puede resultar útil para elementos
como, por ejemplo, especificar manualmente una fecha de
publicación en un documento de comunicado de prensa.

Fecha de publicación Controla una fecha y una hora después de las cuales el archivo
será visible en el portal. Si la fecha y hora actuales son
anteriores a esta fecha, este archivo no estará visible. (La
excepción a esto es que los a los usuarios con los permisos de
administración de contenido se les puede conceder la
capacidad de usar el modo de vista previa, que permite que a
estos usuarios ver (obtener una vista previa) contenido no
publicado). Esto resulta útil para controlar la emisión de
contenido urgente, como noticias o comunicados de prensa.

Fecha de expiración Controla una fecha y una hora antes de las cuales el archivo
será visible en el portal. Si la fecha y hora actuales son
posteriores a esta fecha, este archivo no estará visible. (La
excepción a esto es que los a los usuarios con los permisos de
administración de contenido se les puede conceder la
capacidad de usar el modo de vista previa, que permite que a
estos usuarios ver (obtener una vista previa) contenido
expirado.)

Resumen Una breve descripción para el archivo, este valor se usará


normalmente para agregar una descripción del archivo a
elementos de navegación del portal que representen un
vínculo al archivo.

Oculto para el mapa del sitio Controla si el archivo que está visible tiene parte del mapa del
sitio del portal. Si este valor está activado, el archivo seguirá
estando disponible en el sitio en su dirección URL, y se puede
vincular con él, pero los elementos de navegación estándar
(menús, etc.) no incluirán la página.
NOMBRE DESCRIPCIÓN

Orden de visualización Un valor de entero que indica el orden en que el archivo se


colocará en relación con otras entidades con la misma página
principal. De esta forma controla el orden de archivos y otras
entidades del mapa del sitio cuando, por ejemplo, una lista de
vínculos a las entidades secundarias de una página dada se
representa en el portal.

Dirección de blob en la nube Un valor de texto con el formato <container>/<filename> ,


indicando que el contenido de este archivo se almacena en
Almacenamiento de blobs de Azure.

Disposición de contenido Las opciones son en línea o datos adjuntos. Si especifica en


línea, el explorador deberá intentar representarlo en la ventana
del explorador y si no puede, pedirá al usuario que descargue
o abra el archivo. Si se especifican datos adjuntos,
inmediatamente pedirá al usuario que descargue o abra el
archivo, y no intentará cargarlo en el explorador, tanto si
puede como si no.

Habilitar seguimiento Si está activada, cada solicitud para este archivo web se
registrará. Un registro de archivo web se creará con la fecha y
hora, dirección IP, y el registro de contacto si se autentica el
usuario.
Administrar vínculos web
25/11/2019 • 9 minutes to read • Edit Online

Un vínculo web puede vincular cualquier dirección URL o puede vincularse a otra página web dentro del mismo
sitio web. Cuando un vínculo web se establece con una página web, la seguridad y el estado de publicación de la
página web se aplicará también al vínculo web. Los vínculos web siempre forman parte de un conjunto de
vínculos web. Un conjunto de vínculos web es un grupo de vínculos como una navegación principal o un grupo de
vínculos de pie de página. Los conjuntos de vínculos web permiten que los vínculos internos, independientemente
de su ubicación en el mapa del sitio, y externos se agrupen y ordenen.

Administrar vínculos web en portales PowerApps


Una vez que las personalizaciones del portal se hayan importado en su entorno de Common Data Service, los
vínculos web se pueden administrar desde un conjunto de vínculos web.
1. Abra la aplicación Administración del portal.
2. Vaya a Portales > Conjuntos de vínculos web.
3. Para crear un nuevo conjunto de vínculos web, seleccione Nuevo.
4. Para editar un conjunto de vínculos web existente, seleccione el nombre de conjunto de vínculos web.
5. Especifique los valores adecuados en los campos.
6. Si crea un nuevo conjunto de vínculos web, seleccione Guardar para guardar el registro de manera que
pueda agregar vínculos web.
7. Vaya a la pestaña Vínculos.
8. Para crear un nuevo vínculo web, seleccione Nuevo vínculo web.

9. Para editar un vínculo web existente, seleccione el nombre del vínculo web.
10. Especifique los valores adecuados en los campos.
11. Guarde los cambios.

Atributos y relaciones de conjuntos de vínculos web


La tabla siguiente explica muchos de las propiedades de conjuntos de vínculos web estándar que usan los
portales. Es importante observar que la forma en que se representan muchos de las propiedades orientadas a
contenido/visualización está administrada por la plantilla de página web utilizada.

NOMBRE DESCRIPCIÓN

Nombre Nombre descriptivo del conjunto de vínculos web. Este valor


describe normalmente la ubicación del conjunto en la plantilla
de página como Navegación principal. Este campo es
obligatorio.

Sitio web Sitio web al que pertenece la entidad. Este campo es


obligatorio.

Puesto Título opcional para el conjunto de vínculos web. Este valor se


puede usar en el portal si es parte de la plantilla de página.
Podría ser algo como Nuestros asociados y aparecer en una
barra lateral.

Copiar Descripción opcional para el conjunto de vínculos web. Este


valor se puede usar en el portal si es parte de la plantilla de
página. Podría describir algo más como Nuestros asociados en
una barra lateral.

Atributos y relaciones de vínculos web


La tabla siguiente explica muchos de las propiedades de vínculos web estándar que usan los portales. Es
importante observar que la forma en que se representan muchos de las propiedades orientadas a
contenido/visualización está administrada por la plantilla de página web utilizada.

NOMBRE DESCRIPCIÓN

Nombre El título para el vínculo web. Esta valor se usará como título
del vínculo web en la mayoría de las plantillas. Este campo es
obligatorio.

Conjunto de vínculos web El conjunto de vínculos web al que pertenece la entidad. Este
campo es obligatorio.

Vínculo web principal El vínculo web principal de la entidad, en un conjunto de


vínculos web de varios niveles. Si no se especifica un vínculo
web primario, la entidad está en el nivel superior/raíz del
conjunto de vínculos web.

Página Una página web opcional del mismo sitio web con el que
establecer un vínculo.

Dirección URL externa Una dirección URL opcional con la que vincular. Esta
configuración puede ser cualquier dirección URL con formato
correcto.

Descripción Resumen opcional para el vínculo web. Este valor se puede


usar en el portal si es parte de la plantilla de página.
NOMBRE DESCRIPCIÓN

Estado de publicación El estado actual de flujo de trabajo de publicación del vínculo


web, que puede dictar si el vínculo web es visible en la
ubicación. El uso más común de esta característica es
proporcionar control de publicado/borrador sobre contenido.
Este campo es obligatorio.

Vínculo de seguimiento de robots Indica si los indizadores de búsqueda deben realizar el


seguimiento e indizar el contenido del vínculo. Este campo es
obligatorio.

Orden de visualización Un valor de entero que indica el orden en que el vínculo web
se colocará en relación con otros vínculos web en el mismo
conjunto de vínculos web.

Mostrar vínculos secundarios de página En una plantilla que admite conjuntos de vínculos web de
varios niveles, genere vínculos secundarios para esta entidad
usando el proveedor del mapa del sitio del portal. Tenga en
cuenta que esta opción solo es válida para los vínculos web
que hacen referencia a páginas internas, no a direcciones URL
externas.

Abrir en ventana nueva Indica si al seleccionar el vínculo se cargará el vínculo en una


nueva ventana del explorador.

Deshabilitar validación de página Indica si la seguridad de una página web vinculada se aplicará
también al vínculo web.

URL de imagen Una dirección URL opcional de una imagen. La imagen


vinculada se puede usar en el portal si forma parte de la
plantilla de página; por ejemplo, como icono.

Alto de la imagen Una altura opcional de la imagen de propiedad URL de


imagen.

Ancho de la imagen Una anchura opcional de la imagen de propiedad URL de


imagen.

Texto alternativo de la imagen Una descripción opcional de la imagen de propiedad URL de


imagen.

Mostrar solo imagen Indica que la plantilla solo debe representar un vínculo de
imagen para este vínculo web, en lugar de la imagen y el
nombre del vínculo juntos.

NOTE
Cuando un vínculo web se establece con una página web, la seguridad y el estado de publicación de la página web se
aplicará también al vínculo web. Esta validación se puede deshabilitar con la opción Deshabilitar validación de página.
A los usuarios con los permisos de administración de contenido se les puede conceder la capacidad de usar el
modo de vista previa, que permite que a estos usuarios ver (obtener una vista previa) contenido sin publicar.

Vea también
Personalizar contenido utilizando fragmentos de contenido
Crear y administrar plantillas de página
25/11/2019 • 6 minutes to read • Edit Online

Mientras que las páginas web son nodos en el mapa de sitio del portal que representan el contenido accesible a los
usuarios del portal, las plantillas de página representan las páginas .aspx reales que proporcionan una forma de
conservar un aspecto coherente en todo el sitio web. Las plantillas de página se crean mediante páginas ASP.NET,
páginas maestras, hojas de estilo en cascada (CSS ), controles de usuario y controles de servidor.
Al crear una nueva página web para el sitio, ya sea mediante la publicación delantera o la interfaz del portal, debe
seleccionar una plantilla de página que presentará el contenido de la página a los usuarios del portal.
Es posible que la diferencia entre las páginas web y las plantillas de página se entienda mejor como la diferencia
entre la dirección URL exacta y una página .aspx real que funciona como modelo para la visualización de contenido.
Cada página web representa una dirección URL específica en su sitio, a la que los usuarios pueden dirigirse.
Cuando un usuario vaya a una dirección URL, se mostrará el contenido asociado con esa dirección URL. Sin
embargo, una página web no contiene información sobre cómo se muestra ese contenido. Esto lo determina la
plantilla de página, que es la página .aspx real que genera el HTML que visualiza el usuario.
Al crear una nueva página web, debe elegir una plantilla de página de una lista de plantillas existentes. Se incluyen
varias plantillas de página con cada uno de los portales de inicio. Cuando se usan estos portales como base para el
propio sitio web, estas plantillas serán útiles como medio básico para demostrar la funcionalidad del portal. Sin
embargo, será necesario desarrollador del portal para cambiar significativamente el diseño de estas páginas. En la
mayoría de los casos, la plantilla de página "Página" será la plantilla de página que utiliza para fines generales: una
página web que utiliza esta plantilla mostrará el contenido, así como una lista de páginas secundarias presentadas
como elementos de navegación.

Administrar plantillas de página


La creación de una nueva plantilla de página solo es necesaria cuando se crea una página .aspx nueva para mostrar
contenido en su sitio web, una tarea del desarrollador del portal. De hecho, para realizar una personalización
sencilla del diseño de su sitio, un desarrollador del portal puede modificar en gran medida las páginas .aspx
existentes.
1. Abra la aplicación Administración del portal.
2. Vaya a Portales > Plantillas de página.
3. Para crear una nueva plantilla de página, seleccione Nuevo.
4. Para editar una plantilla de página existente, seleccione el nombre de plantilla de página.
5. Especifique los valores adecuados en los campos.
6. Seleccione Guardar y cerrar.
Atributos de plantilla de página
NOMBRE DESCRIPCIÓN

Nombre Nombre de la plantilla usada como referencia.

Sitio web Sitio web asociado.


NOMBRE DESCRIPCIÓN

Escribir El tipo de plantilla, que controla la forma en la que la plantilla


determinará qué mostrar.
Reescritura: se usará el campo Dirección URL de
reescritura para mostrar una plantilla ASP.NET
determinada.
Plantilla web: utilizará el campo Plantilla web para
mostrar una plantilla web determinada.

Dirección URL de reescritura Ruta de la página .aspx ASP.NET física (u otro recurso, como
.ashx), que mostrará el contenido.
Este campo se muestra solo si se selecciona Dirección URL de
reescritura en la lista Tipo.

Plantilla web Una referencia a una plantilla web que se usará para mostrar
esta plantilla.
El campo se muestra solo si se selecciona Plantilla web en la
lista Tipo.

Es predeterminada Si el valor es "Sí", la plantilla se asignará de forma


predeterminada al menú desplegable en las herramientas de
edición del cliente.

Nombre de entidad El tipo de entidad de la página que espera mostrar esta


plantilla. El sistema de edición delantero lo usará para
presentar solo las opciones de plantilla adecuadas a los
autores de contenido.
Generalmente, será Página web (adx_webpage), pero puede
ser otra entidad de portal , como Foro, Hilo de foro, Blog o
Entada de blog.

Descripción Una descripción de esta plantilla para el beneficio de los


usuarios de edición delanteros.
Personalizar contenido utilizando fragmentos de
contenido
25/11/2019 • 2 minutes to read • Edit Online

Los fragmentos de contenido son pequeñas partes de contenido editable que pueden colocar un desarrollador en
una plantilla de página, permitiendo que el contenido personalizable rellene cualquier parte del diseño de una
página fácilmente. Los desarrolladores colocan controles de fragmentos, que son responsables de representar el
contenido de los fragmentos en el portal con conexión a la web, en una plantilla de página.

Modificar fragmentos
Los fragmentos se pueden editar a través de la aplicación Administración del portal. La característica principal del
fragmento es el hecho de que puede resumir un poco de contenido (aparte del texto principal de la página) y
modificarlo por separado permitiendo esencialmente que cualquier contenido estático del sitio sea
completamente administrado y editable.
1. Abra la aplicación Administración del portal.
2. Vaya a Portales > Fragmentos de contenido.
3. Para crear un nuevo fragmento, seleccione Nuevo.
4. Para editar un fragmento existente, seleccione un Fragmento de contenido existente en la cuadrícula.
Escriba valores para los campos siguientes:

NOMBRE DESCRIPCIÓN

Nombre El nombre puede usarlo un programador para situar el valor


del fragmento en una plantilla de página en el código del
portal.

Sitio web El sitio web que está asociado con el fragmento.

Valor El contenido del fragmento que se mostrará en el portal. Esto


puede contener texto sin formato o formato HTML.
Agregar una URL de direccionamiento a una nueva
dirección URL en un portal
25/11/2019 • 3 minutes to read • Edit Online

Los clientes con frecuencia desean tener una dirección URL simple que redirija a una página más profunda del sitio
o desean permitir que una dirección URL heredada se use con el sitio y automáticamente redirija a una nueva
dirección URL del sitio. Los redireccionamientos de página permiten a un autor de contenido especificar una
dirección URL que cuando se solicita redirigirá de forma continua o temporal a una página web o un archivo web
específicos. Estas direcciones URL de redireccionameinto se administran por separado del contenido de la página,
por lo que no tienen que ajustarse directamente a la jerarquía web.

Crear una redirección


1. Abra la aplicación Administración del portal.
2. Vaya a Portales > Página web > Redireccionamientos.
3. seleccione Nuevo.
4. Especifique la información de redireccionamiento como se describe a continuación.

NOMBRE DESCRIPCIÓN

Nombre El nombre descriptivo del redireccionamiento. (Puede ser


cualquier cosa. Hágalo fácil de identificar.)

Sitio web Sitio web al que está asociado el redireccionamiento. (El sitio
desde el que se redirecciona al usuario.)

URL de entrada La dirección URL parcial que debe ser redireccionada. (La
página desde la que se redirecciona al usuario.)

Código de estado Una de las siguientes: 302 (Redireccionamientos activos):


devuelve un estado de redireccionamiento temporal. Esta es la
configuración predeterminada. - 301 (redireccionamiento
permanente): devuelve un estado de redireccionamiento
permanente que indica que el recurso se ha movido
permanentemente.

URL Una dirección URL externa de destino a la que se realizará el


redireccionamiento. (Use esta opción si al usuario se
redirecciona a un vínculo exnterno al sitio web especificado
arriba).

Página web Una página web interna de destino a la que se realizará el


redireccionamiento. (Use esta opción si al usuario se
redirecciona a una página interna al sitio web especificado
arriba.)

Marcador de sitio Un marcador de sitio interno de destino al que se realizará el


redireccionamiento.

4. Después de completar los campos obligatorios y especificar un valor para por lo menos uno de los campos
Dirección URL, Página web o Marcador de sitio, seleccione Guardar.

Use el redireccionamiento
Cuando se solicite la dirección URL de entrada, el explorador se redirige a la dirección URL de la página web de
destino para la entrada de redireccionamientos que coincidan.
Por ejemplo, para un valor de URL de entrada de cs-survey con una página web de destino establecida en la
página Encuesta de soporte técnico a clientes, la siguiente solicitud:
https://customerportal.contoso.com/cs-survey
produce en el explorador la solicitud de la siguiente dirección URL:
https://customerportal.contoso.com/surveys/customer-service-survey/
Colocar los nodos secundarios mediante accesos
directos para portales
25/11/2019 • 7 minutes to read • Edit Online

Utilice accesos directos para colocar nodos secundarios en el mapa del sitio del portal que simplemente apuntan a
otros nodos que existen en el mapa del sitio, o a direcciones URL externas al portal. Es decir, páginas web, archivos
web, eventos, y foros se pueden considerar nodos “sólidos” del mapa del sitio del portal: se agregan al mapa del
sitio y cuando se navega a ellos, se ve el contenido real de los nodos directamente. Los accesos directos, por otra
parte, se pueden considerar nodos 'intangibles': también se agregan al mapa del sitio (a diferencia de vínculos web,
que no), pero cuando usted se desplaza a ellos, ve el contenido del nodo "sólido" de destino al que apunta el acceso
directo, y ese contenido es representado por la plantilla de página para ese nodo.

Administrar accesos directos


Crear, editar y eliminar accesos directos se puede realizar en portales de PowerApps.
1. Abra la aplicación Administración del portal.
2. Vaya a Portales > Accesos directos.
3. Para crear un acceso directo, seleccione Nuevo.
4. Para editar un acceso directo existente, seleccione el acceso directo existente en la cuadrícula.
5. Escribir valores para los campos proporcionados.
6. Seleccione Guardar y cerrar.
Atributos y relaciones
NOMBRE DESCRIPCIÓN

Nombre Un nombre descriptivo para el acceso directo. Solo para uso


interno.

Sitio web El sitio web al que pertenece el acceso directo.

Página primaria La página web principal de la entidad del acceso directo en el


mapa del sitio. El acceso directo se agregará al mapa del sitio
como secundario de esta página.

Dirección URL externa Destino del acceso directo de una dirección URL de un recurso
fuera de la organización.

Página web Destino del acceso directo de una página web interna.

Archivo web Destino del acceso directo de un archivo web.

Evento Destino del acceso directo de un evento.

Foro Destino del acceso directo de un foro.


NOMBRE DESCRIPCIÓN

Puesto El título para el acceso directo. Éste es el nombre que


aparecerá en el mapa del sitio y las áreas de vista de
navegación secundaria. Si se deja en blanco, el título (o
nombre) de la entidad de destino se mostrará en su lugar.

Descripción Una descripción que aparecerá en vistas de navegación


secundarias. Opcional.

Orden de visualización El orden editable del lado frontal en el que aparecerá el acceso
directo en el mapa del sitio y las vistas de navegación
secundaria, en relación con otros nodos del mapa del sitio.

Deshabilitar validación del destino del acceso directo Si está desactivada, la seguridad del acceso directo se basará
en el destino. De lo contrario, se basará en el elemento
principal. Para obtener más información, vea Seguridad a
continuación.

NOTE
Un acceso directo solo necesita tener uno de los campos "destino" (Dirección URL externa, Página web, Encuesta, Archivo
web, Evento, Foro) asignado a un valor, y un acceso directo solo tendrá un destino. Por ejemplo, un acceso directo no apunta
a una página web y una encuesta, o una dirección URL externa y un archivo web. Si hay más de un atributo de destino para
un acceso directo, el acceso directo sólo tomará primero, omitiendo los demás. El orden de prioridad para el que se elegirá el
destino se refleja en el formulario de acceso directo principal. Por tanto, primero comprobará si hay una dirección URL externa
para el acceso directo, y si existe, el destino del acceso directo será la dirección URL externa y se ignorarán todos los demás
atributos de destino. Si no hay una dirección URL externa, el acceso directo comprobará la página web, luego la encuesta, el
archivo web, el evento y, por último el foro.

Accesos directos seguros


La seguridad de los accesos directos se puede basar en la página principal del acceso directo, o en el destino del
acceso directo. Esto determinará si el acceso directo será visible en el mapa del sitio. Naturalmente, si la seguridad
se basa en el primario, el acceso de escritura del destino del acceso directo aún determinará si la edición del lado
frontal funcionará una vez que acceso directo se ha usado para desplazarse hasta el destino del acceso directo. Por
consiguiente la seguridad del acceso directo sólo afecta a la navegación y a los derechos de edición para la edición
del lado frontal de los accesos directos. El método de seguridad usado es específico del acceso directo. Si deja el
valor booleano Deshabilitar validación de destino del acceso directo sin activar, la seguridad del acceso
directo se basará en el destino. En caso contrario, se basará en el elemento principal.

Navegar con accesos directos


Una vez que se ha creado la entidad de acceso directo, aparecerá en el sitio web. En el ejemplo anterior, el sitio
básico tiene dos páginas adicionales: página uno y página dos. La página dos es un elemento secundario de la
página uno, que es un elemento secundario de la página principal. Además, hay un acceso directo que es un
elemento secundario de página principal que apunta a la página dos.
Comportamiento y formato del campo de fecha y
hora
25/11/2019 • 3 minutes to read • Edit Online

En Common Data Service, el tipo de datos Fecha y hora se usa en muchos campos de entidad del sistema. Por
ejemplo, puede mostrar cuándo se usó por última vez una cuenta en una campaña de marketing o mostrar la fecha
y la hora en que un caso se remitió a una instancia superior. También puede crear entidades personalizadas que
incluyan los campos de fecha y hora. En función de lo que representa el campo, puede seleccionar uno de los
comportamientos siguientes de campo para formularios y cuadrículas de portal:
Local del usuario: Los valores de campo se muestran en la hora local del usuario y reciben formato de
acuerdo su idioma/configuración regional de portal actuales. Los valores se almacenan en formato de la
zona de UTC en Common Data Service. Cuando un usuario en Common Data Service (u otro portal de
usuario) de una zona horaria distinta ve dicho valor, lo ve convertido a su propia zona horaria.
Solo fecha: Los valores de campo contienen solo la fecha y se muestran sin la conversión de la zona
horaria. La parte de hora del valor siempre es 12:00 AM. El valor introducido por un usuario lo ven igual los
demás usuarios de zonas horarias diferentes (por ejemplos, fechas de nacimiento).

NOTE
El comportamiento de este campo no se puede cambiar después de que se ha guardado.

Independiente de la zona horaria: Los valores de campo contienen sólo la fecha y la hora y se muestran
sin la conversión de la zona horaria. El valor introducido por un usuario lo ven igual los demás usuarios de
zonas horarias diferentes.

NOTE
El comportamiento de este campo no se puede cambiar después de que se ha guardado.

También puede reemplazar el formato de fecha y hora predeterminado que se va a usar en los portales creando los
siguientes valores del sitio:
DateTime/DateFormat: el formato de fecha empleado en el portal.
DateTime/TimeFormat: el formato de hora empleado en el portal.
DateTime/DateTimeFormat: El formato de la fecha y hora completo usado en el portal.
De forma predeterminada, el portal usa los formatos estándar de fecha y hora de la configuración del idioma de la
página web. Los formatos de fecha y hora aceptados se especifican aquí.
Agregar un gráfico creado en una aplicación modelo
basada en modelo para una página web en el portal
25/11/2019 • 4 minutes to read • Edit Online

Puede agregar un gráfico a una página web mediante una etiqueta de Liquid con nombre Gráfico. Puede agregar
la etiqueta de Liquid del gráfico en el campo Copiar en una página web o en el campo Origen en una Plantilla
web.
Por ejemplo, {% chart id:EE3C733D -5693-DE11-97D4-00155DA3B01E %}

También puede especificar el identificador de una vista (consulta guardada) para filtrar la consulta. Por ejemplo:
<!—Leads by Source – Open Leads -->
{% chart id:"EE3C733D -5693-DE11-97D4-00155DA3B01E" viewid:"00000000-0000-0000-00AA-
000010001006" %}

Obtener el identificador de un gráfico


1. Vaya a la entidad de destino, por ejemplo, Ventas > Clientes potenciales.
2. Expanda el área Gráficos.
3. Elija el gráfico que desee.
4. Seleccione Más comandos y seleccione Exportar gráfico.
5. Abra el archivo XML del gráfico exportado en un editor de texto.
6. Copie el valor de la etiqueta <visualizationid>.

7. Pegue el valor de visualizationid en la declaración de la etiqueta de Liquid del gráfico para el parámetro del
identificador del gráfico, por ejemplo:
{% chart id:EE3C733D -5693-DE11-97D4-00155DA3B01E %}.

Obtener el identificador de una vista


Debe abrir el editor de vistas para obtener el identificador de la vista que se usará con la etiqueta de Liquid del
gráfico.
1. Vaya a la entidad de destino, por ejemplo, Ventas > Clientes potenciales.
2. Seleccione la vista que desee del encabezado desplegable de vistas.
3. Seleccione Vista de la barra de herramientas. Se abrirá la ventana Ver.
4. Copie el valor id de la dirección URL de la ventana de Ver.

5. Pegue este id. en la declaración de la etiqueta de Liquid del gráfico para el parámetro viewid, por ejemplo:
<!—Leads by Source – Open Leads -->
{% chart id:"EE3C733D -5693-DE11-97D4-00155DA3B01E" viewid:"00000000-0000-0000-00AA-
000010001006" %}

Requisito de permiso de entidad


El privilegio de lectura se afirma para la entidad de destino que se consulta en el gráfico. Para que usuarios
anónimos o autenticados puedan ver el gráfico, debe asegurarse que los registros Permisos de entidad adecuados
se creen y asignen a los roles web aplicables.
Si el permiso no se concede, el usuario verá un mensaje de acceso denegado.

Gráficos y tipos de gráficos no admitidos


Actualmente no se admiten los tipos de gráficos siguientes en los portales:
Anillo
Etiqueta
La tabla siguiente enumera los tipos de gráficos que actualmente no se admiten en los portales.
NOMBRE AL GRÁFICO ID. DE GRÁFICO TIPO DE ENTIDAD

Cuentas por propietario: gráfico de be178262-6142-4b41-85b7- account


etiquetas 4ccedc62cfd9

Actividades por propietario: gráfico de c83b331e-87c7-488c-b8e7- activitypointer


etiquetas 89a6098ea102

Actividades por prioridad: gráfico de d3f6c1eb-2e4b-428b-8949- activitypointer


anillos 682a311ae057

Contactos por cuenta 2ff3ebea-6310-4dde-b3a1- contacto


e1144ea42b7b

Contactos por país ea89e2ad-2602-4333-8724- contacto


aa5775d66b77

Contactos por método de contacto 751b7456-308e-4568-a3a9- contacto


preferido 47135aae833a

Progreso de objetivos (recuento) a93b8f7b-9c68-df11-ae90- goal


00155d2e3002

Progreso del objetivo (dinero) aec6d51c-ea67-df11-ae90- goal


00155d2e3002

Destino de hoy comparado con datos 1b697c8e-9a6f-df11-986c- goal


reales (recuento) 00155d2e3002

Destino de hoy comparado con datos 1e697c8e-9a6f-df11-986c- goal


reales (dinero) 00155d2e3002

Casos por cuenta 38872e4f-ac99-e511-80da- incident


00155dc1b253

Casos por prioridad 0f0fb995-9d6f-453c-b26d- incident


8f443e42e676

Casos por producto 17c3f166-5b22-4476-819b- incident


b05da2e8d24f

Artículos que expiran este mes por 47d696ad-7c3b-e511-80d1- Artículo de conocimientos


propietario 00155db10d2b

Por propietario 330068fd-833b-e511-80d1- Artículo de conocimientos


00155db10d2b

Por tema bcd3f9a5-913b-e511-80d1- Artículo de conocimientos


00155db10d2b
Acerca de formularios de entidad
25/11/2019 • 32 minutes to read • Edit Online

Una configuración controlada por datos para permitir que los usuarios finales agreguen un formulario para
recopilar datos en el portal sin necesidad de que un desarrollador exponga el formulario en el portal, los
formularios de entidades se crean en Common Data Service y después se incluyen en páginas web en el portal
o se usan conjuntamente con subcuadrículas y listas de entidad para crear aplicaciones web completas. Más
información: Acerca de listas de entidades

Agregar un formulario al portal


El formulario de entidad contiene relaciones con páginas web y propiedades adicionales para controlar la
inicialización del formulario dentro del portal. La relación con páginas webs permite la recuperación dinámica
de la definición de formulario para un determinado nodo de página en el sitio web.
Para ver formularios de entidad existentes o crear nuevos formularios de entidad, abra la aplicación
Administración del portal y vaya a Portales > Formularios de entidad.
Cuando cree un nuevo formulario de entidad el primer paso es decidir la Entidad y Nombre del formulario
que representará, así como modo: Insertar, Editar o Solo lectura. El modo seleccionado determinará si está
creando un nuevo registro del portal, editando un registro existente, o solo mostrando información de un
registro en el portal.
NOTE
Un formulario de entidad debe estar asociado con una página web para un determinado sitio web para que el
formulario sea visible desde el sitio.
Las subcuadrículas de la entidad de conexión no se admiten en formularios de entidad. Si agrega una subcuadrícula
de entidad de conexión al formulario con el diseñador formularios, se muestran los mensajes de error cuando procesa
el formulario en el portal y usa la entidad de la conexión.
Los campos duplicados, el conjunto de opciones multiselección y reglas de negocio no son compatibles en los
formularios de entidad.
Las reglas de negocio y el cliente API pueden permitir campos bloqueados en un formulario de sólo lectura.
Si crea un formulario de entidad en el modo de inserción, no podrá cambiar la alineación de un botón o colocar un
botón de acción encima del formulario de entidad.
Si genera un control de búsqueda como lista desplegable en el formulario, el filtro de registros relacionados no
funciona.

Las páginas web asociadas al formulario de entidad se pueden ver al seleccionar el vínculo Páginas web
mostrado en los vínculos de navegación Relacionados en el menú de la izquierda.
Al crear o editar una página web, un formulario de entidad se puede especificar en el campo de búsqueda
proporcionado en el formulario de la página web.
Las distintas páginas maestras usadas por el portal contienen declaraciones del control de servidor de
EntityForm. Al representar la página web que contiene la plantilla de páginas de la Página
(~/Pages/Page.aspx) o una plantilla de páginas de Página completa (~/Pages/FullPage.aspx), los controles
determinarán si la búsqueda del formulario de entidad contiene un valor, en cuyo caso, se representará el
formulario.

Proteger los formularios


Para proteger los formularios, debe crear permisos de entidad que determinan el acceso y la propiedad de los
registros de acuerdo con roles web. Si un usuario aterriza en un formulario de entidad y no tiene permisos,
recibirá un mensaje de error. Para habilitar los permisos para un formulario de entidad, establezca Habilitar
permisos de entidad en true. Más información: Crear roles web para portales.

Atributos y relaciones del formulario de entidades


NOMBRE DESCRIPCIÓN

Nombre Nombre descriptivo del registro. Este campo es obligatorio.

Nombre de entidad El nombre de la entidad desde la que se cargará el


formulario. Este campo es obligatorio.

Nombre del formulario El nombre del formulario de la entidad de destino que se va


a representar. Este campo es obligatorio.

Nombre de pestaña Nombre opcional de una pestaña en un formulario para una


entidad especificada que debe ser representada.
NOMBRE DESCRIPCIÓN

Modo Uno de los siguientes valores:


Inserción
Edición
Solo lectura
Si selecciona Insertar indica que el formulario debe insertar
un nuevo registro tras el envío. Especificar Editar indica que
el formulario deben modificar un registro existente. Si
selecciona ReadOnly indica que el formulario debe mostrar
el formulario no editable de un registro existente. Editar y
ReadOnly requieren que exista un registro de origen y los
parámetros especificados en los campos 'Tipo de origen de
registro' y 'Nombre del parámetro de cadena de consulta de
id. de registro' para seleccionar el registro adecuado cuando
el formulario se carga en el portal.

Tipo de origen de registro Uno de los siguientes valores:


Cadena de consulta
Usuario actual del portal
Registro asociado al usuario actual del portal
Si selecciona Cadena de consulta se requiere un nombre de
parámetro que se debe proporcionar en la cadena de
consulta de la dirección URL del formulario. Esto se puede
especificar en el campo 'Nombre del parámetro de cadena
de consulta de id. de registro'.
Si selecciona Usuario actual del portal se recuperará el
registro de usuario del portal para el usuario autenticado
actual.
Si selecciona Registro asociado al usuario actual del portal
se recuperará el registro de usuario del portal para el
usuario actual autenticado y después se recuperará el
registro para la relación dada especificada por el campo
'Nombre de relación'.

Nombre del parámetro de cadena de consulta de id. de Un nombre de parámetro proporcionado en la cadena de
registro consulta de la dirección URL de la página web que
contienen este formulario de entidad.

Nombre de la relación Requerido cuando Tipo de origen del registro es Registro


asociado al usuario actual del portal. El nombre lógico de la
relación entre el registro de usuario del portal actual y el
registro de destino. Esto debe devolver el mismo tipo de
entidad especificado por el campo Nombre de entidad.

Permitir creación si es nulo Un valor booleano opcional disponible cuando Tipo de


origen del registro es Registro asociado al usuario actual del
portal. Indica que si no existe el registro relacionado, se
permite que el usuario lo cree la primera vez, en caso
contrario se lanzará una excepción si el registro no existe
aún, pues el formulario necesita un registro con el que
enlazar datos.

Habilitar permisos de entidad Hará que el formulario respete permisos de entidad. El valor
predeterminado es false por razones de compatibilidad con
versiones anteriores. Si se establece como true, SE
REQUERIRÁN permisos explícitos para cualquier usuario que
desee obtener acceso al formulario.
Opciones de formulario
NOMBRE DESCRIPCIÓN

Agregar captcha Muestra captcha.

Mostrar captcha para usuarios autenticados Muestra captcha para usuarios autenticados.

Grupo de validación El nombre de grupo asignado a los controles de entrada


para evaluar entrada válida de grupos con nombre.

Generar automáticamente pasos desde pestañas Indica que múltiples pestañas en un formulario de entidad
se mostrarán con cada pestaña como paso secuencial que
comienza con la primera pestaña y continúa hasta recorrer
todas las pestañas y tras el envío final se inserta un registro.
De forma predeterminada no está seleccionado. El valor
predeterminado indica que sólo un formulario o pestaña
debe ser representado para el paso actual. Si el Nombre de
pestaña no se especifica, aparecerá la primera pestaña.

Representar recursos web insertados Elimina el iframe que abarca un recurso web en un
formulario de entidad .

Informaciones sobre herramientas habilitadas La información sobre herramientas se establece utilizando la


descripción del atributo de la entidad de destino.

Mostrar campos no compatibles Todos los campos son compatibles actualmente. Esto se
reserva para los cambios potenciales que Common Data
Service pueda hacer en los tipos de campo.

Establecer campos recomendados como obligatorios Hace que sean obligatorios todos los atributos que tengan
el nivel de requisito del campo establecido en
'Recomendado por la empresa'.

Hacer que todos los campos sean obligatorios Hace que sean obligatorios todos los campos
independientemente del nivel de requisito del campo.

Clase CSS de resumen de validación Nombre de clase CSS asignado el resumen de validación. El
valor predeterminado es 'validation-summary alert alert-
error alert-block'

Habilitar vínculos de resumen de validación Un valor booleano de true o false de que indica si los
vínculos de delimitador deben representarse en el resumen
de validación para desplazarse al campo que contiene un
error. El valor predeterminado es true.

Texto del vínculo de resumen de validación La etiqueta asignada a los vínculos de resumen de
validación. El valor predeterminado es 'haga clic aquí'.

Texto del encabezado de resumen de validación La etiqueta asignada al encabezado de resumen de


validación.

Instrucciones Instrucciones para trabajar con el formulario.

Mensaje No se encuentra el registro Mensaje para mostrar cuando no se encuentra un registro.


Configuración en caso de éxito
NOMBRE DESCRIPCIÓN

En caso de éxito Uno de los siguientes valores:


Mostrar mensaje de correcto (opción
predeterminada)
Redirigir

Ocultar formulario en caso de éxito Requiere que En caso de éxito se establezca como Mostrar
mensaje de correcto. Cuando se selecciona, el formulario
está oculto tras el envío correcto del formulario.

Mensaje de correcto Requiere que En caso de éxito se establezca como Mostrar


mensaje de correcto. El mensaje se muestra al usuario tras
el envío correcto. Si no se especifica uno se mostrará un
mensaje predeterminado ("Envío completado
correctamente”). Para cada paquete de idioma instalado y
activado para la organización un campo estará disponible
para especificar el mensaje en el idioma asociado.

Dirección URL externa Requiere establecer En caso de éxito como Redirigir.


Especifique una dirección URL a un recurso externo de la
web.

o página web Requiere establecer En caso de éxito como Redirigir.


Seleccione una página web desde el sitio web actual.

Anexar cadena de consulta existente Requiere establecer En caso de éxito como Redirigir. Cuando
seleccionada esta opción, los parámetros de cadena de
consulta existente se agregarán a la dirección URL de
destino antes del redireccionamiento.

Anexar id. de registro a la cadena de consulta Requiere establecer En caso de éxito como Redirigir. Cuando
seleccionada esta opción, el Id. del registro creado se anexa
a cadena de consulta de la dirección URL a la que se está
realizando el redireccionamiento.

Nombre del parámetro de cadena de consulta de id. de Requiere establecer En caso de éxito como Redirigir. El
registro nombre del parámetro Id. de la cadena de consulta de la
dirección URL a la que se está realizando el
redireccionamiento.

Anexar cadena de consulta personalizada Requiere establecer En caso de éxito como Redirigir. Una
cadena personalizada que se puede anexar a la cadena de
consulta existente de la dirección URL de
redireccionamiento.

Anexar valor de atributo a la cadena de consulta: nombre Requiere establecer En caso de éxito como Redirigir. Un
de parámetro nombre para dar al parámetro que se correlaciona con el
valor de atributo de la entidad de destino que se anexa a
cadena de consulta de la dirección URL de
redireccionamiento.

Anexar valor de atributo a la cadena de consulta: nombre Requiere establecer En caso de éxito como Redirigir. Un
lógico de atributo nombre lógico de un atributo en la entidad de destino para
obtener el valor que se anexa a cadena de consulta de la
dirección URL de redireccionamiento.
NOMBRE DESCRIPCIÓN

Configuración adicional
NOMBRE DESCRIPCIÓN

Asociar usuario actual del portal Indica que el registro del usuario que ha iniciado sesión
actualmente se debe asociar al registro de la entidad de
destino.

Atributo de búsqueda de usuarios del portal de la entidad El nombre lógico del atributo de la entidad de destino que
de destino almacena el usuario del portal.

Es grupo de actividad Valor booleano que indica si el Atributo de búsqueda de


usuarios del portal de la entidad de destino es un tipo del
grupo de actividad.

Adjuntar archivo Active esta opción para que el formulario incluya un control
de carga de archivos en la parte inferior del formulario para
permitir adjuntar un archivo al registro.

Ubicación de almacenamiento de archivos adjuntos Opciones: Datos adjuntos de nota, Almacenamiento de


blobs de Azure. Si su organización está configurada para
utilizar Azure Storage, puede elegir almacenar los archivos
cargados para este formulario de entidad allí. De lo
contrario, los archivos se almacenarán como Datos adjuntos
de nota.

Permitir varios archivos Valor booleano que indica si el usuario puede cargar más de
un archivo.

Aceptar El atributo de aceptación especifica los tipos MIME de


archivos que el servidor acepta a través de la carga de
archivos. Para especificar más de un valor, separe los valores
con comas (por ejemplo, audio/,video/,image/*).

Etiqueta Texto mostrado junto al control de carga de archivos. Para


cada paquete de idioma instalado y activado para la
organización un campo estará disponible para especificar el
mensaje en el idioma asociado.

Obligatorio adjuntar archivo Hace que avancen los datos adjuntos de un archivo
requerido.

Mensaje de error obligatorio El mensaje mostrado durante la validación de formulario si


Es obligatorio es true y el usuario no ha adjuntado un
archivo. Para cada paquete de idioma instalado y activado
para la organización un campo estará disponible para
especificar el mensaje en el idioma asociado.

Restringir archivos a los tipos aceptados Fuerza validación en el campo de Aceptar. Si no se


selecciona, el atributo de Aceptar se usará únicamente como
sugerencia para el diálogo de carga de archivos.
NOMBRE DESCRIPCIÓN

Mensaje de error de tipo de archivo El mensaje mostrado durante la validación de formulario si


Restringir archivos a los tipos aceptados es True y el usuario
ha intentado cargar un tipo de archivo no válido. Para cada
paquete de idioma instalado y activado para la organización
un campo estará disponible para especificar el mensaje en el
idioma asociado.

Tamaño máximo de archivo (en kilobytes) Fuerza la validación en el tamaño máximo permitido del
archivo cargado.

Mensaje de error de tamaño de archivo El mensaje mostrado durante la validación de formulario si


Tamaño máximo de archivo (en kilobytes) es True y el
usuario ha intentado cargar un archivo que es demasiado
grande. Para cada paquete de idioma instalado y activado
para la organización un campo estará disponible para
especificar el mensaje en el idioma asociado.

JavaScript personalizado Un bloque personalizado de JavaScript que se agregará a la


parte inferior de la página justo delante el elemento de
etiqueta de formulario de cierre. El identificador de entrada
HTML de un campo de entidad se define con el nombre
lógico del atributo. Esto facilita la selección de un campo, el
establecimiento de valores u otras manipulaciones del lado
del cliente con jQuery.
$(document).ready(function() {
$(“#address1_stateorprovince”).val(“Saskatchewan”);});

Referencia de entidad
Los siguientes parámetros pertenecen al establecimiento de una referencia de entidad al guardar el
formulario.
Esto proporciona una forma de asociar el registro actual que crea o actualiza el formulario con otro registro de
destino. Esto es útil si tiene varios pasos con tipos de entidad múltiple y desea relacionar los registros
resultantes o si se pasa a la página una cadena de consulta de un identificador de registro que desea asociar.
Por ejemplo tenemos una página de trabajo que incluye registros de trabajo, cada uno con un vínculo a una
solicitud del trabajo que contiene el identificador del registro de trabajo al formulario de solicitud de forma
que cuando se crea la solicitud, el registro de trabajo se asocia con el registro.

NOMBRE DESCRIPCIÓN

Establecer referencia de entidad al guardar Sí o No. Un valor de sí indica que una referencia de entidad
debe asignarse al guardar el formulario, en caso contrario
no se establecerá ninguna.

Nombre de la relación El Nombre de definición de relación para una determinada


relación entre dos tipos de entidad.

Nombre lógico de la entidad El nombre lógico de la entidad de referencia.

Nombre lógico del atributo de búsqueda de destinos Nombre lógico del atributo de búsqueda en la entidad de
destino que se crea o actualiza.
NOMBRE DESCRIPCIÓN

Rellenar campo de búsqueda Si la búsqueda relativa a la entidad de referencia se


encuentra en el formulario, al activar este valor se
completará el campo del formulario con el valor recuperado
mediante el valor siguiente.

Tipo de origen de entidad de referencia Uno de los siguientes valores:


Cadena de consulta
Usuario actual del portal
Resultado del paso anterior
Si selecciona Cadena de consulta se requiere un nombre de
parámetro que se debe proporcionar en la cadena de
consulta de la dirección URL del formulario. Esto se puede
especificar en el campo Nombre de cadena de consulta.
Si este parámetro es la clave principal, seleccione Sí para La
cadena de consulta es la clave principal, en caso
contrario, seleccione No y proporcione el nombre lógico del
atributo de la entidad de destino para consultar por lo
especificado en el campo Nombre lógico del atributo de
consulta. Si selecciona Usuario actual del portal se
recuperará el registro de contacto para el usuario
autenticado actual. Al seleccionar Resultado del paso
anterior se recuperará el registro creado como resultado del
paso antes del paso actual o de un paso específico basado
en el paso asociado con el paso de origen de entidad.

Paso de entidad de referencia El registro del paso del formulario web de un paso anterior
para recuperar la entidad creada o modificada en dicho paso
para asociarlo con el registro de este paso actual.

Nombre de cadena de consulta Nombre de parámetro proporcionado en la cadena de


consulta de la dirección URL de la página web que
contienen el formulario web.

La cadena de consulta es la clave principal Sí indica que el valor de cadena de consulta es el valor de
clave principal. No indica que el valor de cadena de consulta
es un tipo de atributo distinto de la clave principal.

Nombre lógico del atributo de consulta Nombre lógico del atributo para consultar el registro.

Mostrar detalles de solo lectura Indica que un formulario debe representarse en la parte
superior de la página que muestra información de solo
lectura referente al registro de referencia. Requiere un
nombre de formulario.

Nombre del formulario El nombre del formulario de la entidad de referencia que


debe utilizarse para mostrar detalles de solo lectura.

Configuraciones de acciones de formulario de entidad


De forma predeterminada un formulario de entidad permitirá leer o actualizar un registro existente, o la
inserción de un nuevo registro. Sin embargo, también puede habilitar y configurar fácilmente acciones
adicionales para los registros de un formulario de entidad (eliminar, activar, desactivar, etc.). También es posible
reemplazar etiquetas predeterminadas, tamaños, y otros atributos que aparecerán si hay acciones habilitadas.
Estos valores se encuentran en la sección Configuración adicional del formulario de entidad. De forma
predeterminada, sólo aparece Configuración básica. Puede seleccionar Configuración avanzada para
mostrar configuración adicional.
Puede agregar los botones de acción para las acciones que son aplicables a un registro individual y aparecerán
para cada fila de la cuadrícula siempre que el privilegio apropiado haya sido otorgado por permisos de
entidad. Las siguientes acciones están disponibles:
Eliminar
Flujo de trabajo
Crear registro relacionado
Activar
Desactivar
Haga clic en una de estas opciones para mostrar un área de configuración para dicha acción. Además,
determinadas entidades tienen acciones específicas que están disponibles para estos por entidad:
Calcular valor de oportunidad (oportunidad)
Cancelar acción del caso (incidente)
Cerrar (resolver) acción de caso (incidente)
Convierta oferta en pedido (oferta)
Convertir pedido en factura (salesorder)
Generar oferta a partir de oportunidad (oportunidad)
Perder acción de oportunidad (oportunidad)
Ganar acción de oportunidad (oportunidad)
Reabrir acción del caso (incidente)
Establecer oportunidad en espera (oportunidad)

NOTE
Se recomienda crear un flujo de trabajo en lugar de agregar un botón Activar o Desactivar para las
entidades listas para usar después de definir valores de estado y código de estado específico que necesitan para sus
procesos de negocio. Por ejemplo, incidente (opciones de estado), oportunidad ( opciones de estado), derechos (opciones
de estado).

Configuración de ubicación geográfica para formularios de entidad


Un formulario administrado se puede configurar para mostrar un control de mapa para que se muestre una
ubicación existente como una chincheta en un mapa o proporcionar la capacidad de que el usuario especifique
una ubicación. Vea Agregar ubicación geográfica.
El control de mapa del formulario requiere configuración adicional para indicarle cuáles son los id. de los
diferentes campos de ubicación para poder asignar o recuperar valores. El registro del formulario de entidad
tiene una sección de configuración que define las asignaciones de campo que debe especificar. Los nombres de
campo variarán en función del esquema que ha elegido.
NOTE
El campo de dirección de un formulario de entidad de solo lectura se reemplaza por el mapa si la ubicación geográfica
está habilitada.
La sección de ubicación geográfica no podrá verse en el entorno de la nube soberana alemana. Si un usuario ha
habilitado la ubicación geográfica con otro formulario, no se mostrarán durante la representación en portal.

Vea también
Configurar un portal
Propiedades del formulario web para portales
Pasos de formulario web para portales
Metadatos de formularios web para portales
Configuración de la subcuadrícula de formularios web para portales
Configuración de notas para formularios de entidad y formularios web en portales
Acerca de listas de entidades
25/11/2019 • 67 minutes to read • Edit Online

Una lista de entidades es una configuración basada en datos que usa para agregar una página web que
representará una lista de registros sin necesidad de que un programador muestre la cuadrícula en el portal. Al
usar listas de entidades, puede exponer registros para mostrar en portales.
La cuadrícula admite la ordenación y se paginará si el número de registros es mayor que el tamaño de página
especificado. Si la página web para la vista de detalles se ha especificado, cada registro contendrá un vínculo a
la página y el identificador del registro se anexará a la cadena de consulta junto al nombre de parámetro de la
cadena de consulta de Id. La lista de entidades también admite varias vistas. Si se ha especificado más de una
vista, se representará una lista desplegable para permitir que el usuario cambie en las distintas vistas.
Los datos también se pueden filtrar por el usuario del portal actual, la cuenta del cliente principal del usuario del
portal actual y el sitio web del portal actual. Si existe un valor para las condiciones de filtro Atributo de usuario
del portal y Atributo de cuenta, el portal representará una lista desplegable para permitir que el usuario vea sus
propios datos (Mis) o los datos de su cuenta de cliente principal.

Agregar una lista de entidades al portal


La lista de entidades contiene relaciones con páginas web y distintas propiedades para controlar la inicialización
de la lista de registros dentro del portal. La relación con la página web permite la recuperación dinámica de la
definición de lista para un determinado nodo de página en el sitio web. Para ver las vistas de entidad existentes o
para crear nuevas vistas de entidad, vaya a Portales > Listas de entidades.

NOTE
Una lista de entidades debe estar asociada con una página web para un determinado sitio web para que la lista sea
visible en el sitio.
El conjunto de opciones de selección múltiple no es compatible en listas de entidades.

Las páginas web asociadas a la lista de entidades se pueden ver al seleccionar el vínculo Páginas web mostrado
en los vínculos de navegación Relacionados en el menú de la izquierda. Al crear la lista de entidades, el primer
paso es elegir la entidad para la que desea representar una lista del portal. Después elegirá una o varias vistas de
aplicación basada en modelo para representar.
Al crear o editar una página web, puede especificar una lista de entidades en el campo de búsqueda
proporcionado en el formulario de la página web. La plantilla de página será normalmente la plantilla de "página",
pero puede suele ser una de las otras plantillas diseñadas para contenido, ya que las plantillas maestras contienen
la lógica necesaria para determinar si se debe representar una lista de entidades.

Atributos y relaciones de la lista de entidades


NOMBRE DESCRIPCIÓN

Nombre Nombre descriptivo del registro. Este campo es obligatorio.

Nombre de entidad El nombre de la entidad desde la que se cargará la vista de


Búsqueda rápida. Este campo es obligatorio.
NOMBRE DESCRIPCIÓN

Vista Las vistas de Búsqueda rápida de la entidad de destino que se


va a representar. Este campo es obligatorio. Si se ha
especificado más de una vista, la página web contendrá una
lista desplegable para permitir que el usuario cambie en las
distintas vistas.

Tamaño de página Un valor entero que especifica el número de registros por


página. Este campo es obligatorio. Valor predeterminado: 10

Página web para vista de detalles Una página web opcional que se puede vincular para cada
registro. El nombre de parámetro de cadena de consulta de id.
y el identificador de registro se anexarán a la cadena de
consulta de la dirección URL de esta página web.

Etiqueta del botón Detalles El texto que aparece para el botón de vista de detalles si se ha
especificado la página web para la vista de detalles. Valor
predeterminado: Ver detalles
Nota: Para cada paquete de idioma instalado y activado para
la organización del entorno de Common Data Service, un
campo estará disponible para especificar el mensaje en el
idioma asociado.

Página web para crear Una página web opcional que será el destino del botón Crear.

Etiqueta del botón Crear El texto que aparece para el botón Crear si se ha especificado
Página web para crear. Valor predeterminado: Crear
Nota: Para cada paquete de idioma instalado y activado para
la organización del entorno de Common Data Service, un
campo estará disponible para especificar el mensaje en el
idioma asociado.

Nombre de parámetro de cadena de consulta de id. Un nombre de parámetro proporcionado en la cadena de


consulta de la dirección URL de la Página web para vista de
detalles. Valor predeterminado: id

Texto de lista vacía Obsoleto. El mensaje que se muestra cuando no hay


registros.
Nota: Para cada paquete de idioma instalado y activado para
la organización del entorno de Common Data Service, un
campo estará disponible para especificar el mensaje en el
idioma asociado.

Atributo de usuario del portal Un atributo de búsqueda opcional en la entidad principal que
representa el registro de usuario del portal, contacto o
usuario del sistema, al que se puede aplicar el identificador del
usuario actual para filtrar los datos representados en la lista.

Atributo de cuenta Un atributo de búsqueda opcional en la entidad principal que


representa el registro de cuenta al que se puede aplicar el
valor de cuenta de Cliente primario del contacto del usuario
actual para filtrar los datos representados en la lista.

Atributo de sitio web Un atributo de búsqueda opcional en la entidad principal que


representa el sitio web al que se puede aplicar el ID del sitio
web actual para filtrar los datos representados en la lista.
NOMBRE DESCRIPCIÓN

Búsqueda habilitada Un valor booleano opcional que indica si se debe habilitar la


búsqueda. Un cuadro de texto se generará para permitir a los
usuarios realizar una búsqueda rápida de registros. Para
realizar búsquedas de texto parcial, use el carácter comodín
asterisco (*). La búsqueda anexa filtros de condición 'or' para
cada columna en la vista a las condiciones de filtro
predefinidas existentes de la vista para consultar y devolver
los registros resultantes.

Texto de marcador de posición de búsqueda Una cadena opcional usada como la etiqueta que se muestra
en el cuadro de texto en la carga inicial.

Texto de información sobre herramientas de búsqueda Una cadena opcional usada como información sobre
herramientas que se muestra cuando el usuario apunta al
cuadro de texto Buscar.

Agregar JavaScript personalizado


La pestaña Opciones del formulario contiene un área de texto en la que puede introducir JavaScript
personalizado. Si la página incluye biblioteca de jQuery, puede usarla aquí también. El bloque de script se
agregará en la parte inferior de la página web justo delante de la etiqueta de formulario de cierre de la página.

La lista obtiene sus datos de forma asincrónica y, cuando está competa, desencadena un evento loaded que su
JavaScript personalizado pueda escuchar y hacer algo con los elementos de la cuadrícula. El siguiente código es
un ejemplo trivial:

$(document).ready(function (){
$(".entitylist.entity-grid").on("loaded", function () {
$(this).children(".view-grid").find("tr").each(function (){
// do something with each row
$(this).css("background-color", "yellow");
});
});
});

Busque un campo de atributo particular y obtenga su valor para modificar posiblemente la representación del
valor. El siguiente código obtiene cada celda de la tabla que contenga el valor del atributo accountnumber .
Reemplace accountnumber con un atributo adecuado para la entidad y vista.
$(document).ready(function (){
$(".entitylist.entity-grid").on("loaded", function () {
$(this).children(".view-grid").find("td[data-attribute='accountnumber']").each(function (i, e){
var value = $(this).data(value);
// now that you have the value you can do something to the value
});
});
});

Configuración de listas de entidades


Puede fácilmente habilitar y configurar acciones (crear, editar, eliminar, etc.) para registros en una lista de
entidades. También es posible reemplazar etiquetas predeterminadas, tamaños y otro atributos para que la lista de
entidades se muestre exactamente de la manera que desea.
Estos valores se encuentran en la sección Configuración del formulario de lista de entidades. De forma
predeterminada, sólo aparece Configuración básica. Seleccione Configuración avanzada para ver
configuración adicional.

Atributos

NOMBRE DESCRIPCIÓN

Configuración básica

Acciones de vista Úselo para agregar botones de acción para las acciones que
son aplicables al conjunto de entidades y aparecerán encima
de la cuadrícula. Las acciones disponibles son:
Crear
Descargar
Seleccione una de estas opciones para mostrar un área de
configuración para dicha acción.
NOMBRE DESCRIPCIÓN

Acciones de elementos Úselo para agregar los botones de acción para las acciones
que son aplicables a un registro individual y aparecerán para
cada fila de la cuadrícula siempre que el privilegio apropiado
haya sido otorgado por permisos de entidad. Las acciones
disponibles generalmente son:
Detalles
Edición
Eliminar
Flujo de trabajo
Activar
Desactivar
Seleccione una de estas opciones para mostrar un área de
configuración para dicha acción. Consulte a continuación para
obtener más información acerca de cada acción. Además,
determinadas entidades tienen acciones específicas que están
disponibles para estos por entidad:
Calcular valor de oportunidad (oportunidad)
Cancelar acción del caso (incidente)
Cerrar (resolver) acción de caso (incidente)
Convierta oferta en pedido (oferta)
Convertir pedido en factura (salesorder)
Generar oferta a partir de oportunidad (oportunidad)
Perder acción de oportunidad (oportunidad)
Ganar acción de oportunidad (oportunidad)
Reabrir acción del caso (incidente)
Establecer oportunidad en espera (oportunidad)

Reemplazar atributos de columna Úselo para reemplazar la configuración de presentación de las


columnas individuales de la cuadrícula.
Atributo: Nombre lógico de la columna que desea
reemplazar.
Nombre para mostrar: Nuevo título de columna para
reemplazar el predeterminado
Ancho: Ancho (en porcentaje o píxeles) de la columna
para reemplazar el valor predeterminado. Vea también
Estilo de ancho de columnas de cuadrícula
Para reemplazar los valores de una columna, seleccione +
Columna y rellene los detalles.

Configuración avanzada

Cargando mensaje Reemplaza el mensaje HTML predeterminado que aparece


mientras se carga la cuadrícula.

Mensaje de error Reemplaza el mensaje HTML predeterminado que aparece


cuando se produce un error mientras la cuadrícula se carga.

Mensaje de acceso denegado Reemplaza el mensaje HTML predeterminado que aparece


cuando el usuario no tiene permisos de entidad suficientes
para ver la lista de entidades.

Mensaje vacío Reemplaza el mensaje HTML que aparece cuando la cuadrícula


no contiene datos.
NOMBRE DESCRIPCIÓN

Diálogo de formulario de detalles Controla los valores del cuadro de diálogo que aparece
cuando un usuario activa la acción Detalles

Diálogo de editar formulario Controla los valores del cuadro de diálogo que aparece
cuando un usuario activa la acción Editar

Diálogo de crear formulario Controla los valores del cuadro de diálogo que aparece
cuando un usuario activa la acción Crear

Diálogo de eliminar Controla los valores del cuadro de diálogo que aparece
cuando un usuario activa la acción Eliminar

Diálogo de error Controla los valores del cuadro de diálogo que aparece
cuando se produce un error durante cualquier acción.

Clase de CSS Especifique una clase o clases CSS que se aplicarán al


elemento HTML que contiene el área completa de cuadrícula,
incluida la cuadrícula y los botones de acción.

Clase CSS de cuadrícula Especifique una o varias clases CSS que se aplicarán al
elemento <table> HTML de la lista de entidades.

Estilo de ancho de columnas de cuadrícula Configura si los valores Ancho en Reemplazar atributos de
columna están especificados en Píxeles o Porcentaje.

Configuración general de acciones


En general, las acciones de la entidad tienen valores que se pueden configurar. En todos los casos, este para
ofrecerle más opciones en relación con la personalización, y los campos no son necesarios. Al agregar la acción
simplemente podrá realizarse la acción en el portal, siempre que los permisos de la entidad hayan concedido el
privilegio adecuado.
Generalmente, puede configurar el cuadro de diálogo correspondiente para cada acción, que aparecerá solo si se
selecciona Confirmación necesaria.

NOMBRE DESCRIPCIÓN

Configuración básica

¿Se requiere confirmación? Determina si una confirmación pedirá al usuario que confirme
cuando se selecciona la acción.

Configuración avanzada

Confirmación Reemplaza el mensaje HTML de confirmación que se muestra


cuando el usuario activa la acción.

Etiqueta de botón Reemplaza la etiqueta HTML para esta acción mostrada en la


fila de la lista de entidades.

Información sobre herramientas de botón Reemplaza el texto de información sobre herramientas que
aparece cuando el usuario apunta al botón para esta acción
mostrada en la fila de la lista de entidades.
NOMBRE DESCRIPCIÓN

Clase CSS del botón Agrega una clase CSS al botón.

Redireccionar a página web Algunas acciones (no todas) permiten un redireccionamiento


al finalizar la acción. Sumamente recomendado para la acción
Eliminar, opcional en la mayoría de los otros casos, puede
elegir una página web a la que redirigir cuando se completa la
acción.

URL de redireccionamiento Una alternativa a la opción Redireccionar a página web—


permite redirigir a una dirección URL específica.

Configuración avanzada del cuadro de diálogo General

NOMBRE DESCRIPCIÓN

Cargo Reemplaza el HTML que aparece en la barra de título del


cuadro de diálogo.

Texto del botón primario Reemplaza el HTML que aparece en el botón Principal
(Eliminar) del cuadro de diálogo.

Texto del botón Cerrar Reemplaza el HTML que aparece en el botón Cerrar (Cancelar)
del cuadro de diálogo.

Texto del lector de pantalla del botón Descartar Reemplaza el texto del lector de pantalla asociado al botón
Descartar del cuadro de diálogo.

Tamaño Especifica el tamaño de cuadro de diálogo Eliminar. Las


opciones son: Predeterminado, Grande y Pequeño. El tamaño
predeterminado es Predeterminado.

Clase de CSS Especifique una clase o clases CSS que se aplicarán al cuadro
de diálogo resultante.

Clase CSS de título Especifique una clase o clases CSS que se aplicarán a la barra
de título del cuadro de diálogo resultante.

Clase CSS del botón primario Especifique una clase o clases CSS que se aplicarán al botón
Principal (Eliminar) del cuadro de diálogo.

Clase CSS del botón Cerrar Especifique una clase o clases CSS que se aplicarán al botón
Cerrar (Cancelar) del cuadro de diálogo.

Configuración de la Acción Crear


Habilitar una Acción Crear representa un botón sobre la lista de entidades, cuando se selecciona, abre un cuadro
de diálogo con un formulario de entidad que permite al usuario crear un nuevo registro, siempre que los permisos
de la entidad hayan concedido el privilegio "Crear".

NOMBRE DESCRIPCIÓN

Configuración básica
NOMBRE DESCRIPCIÓN

Formulario de entidad Especifica el formulario de entidad que se usará para crear el


nuevo registro. La lista desplegable incluirá todos los
formularios de entidad que estén configurados para el tipo de
entidad de la lista de entidades.
Nota: Si el tipo de entidad de la lista de entidades no tiene
formularios de entidad, la lista desplegable aparecerá vacía. Si
no se proporciona un formulario de entidad para la acción
Crear, se ignorará y el botón no se representará en la lista de
entidades.

Configuración avanzada

Etiqueta de botón Reemplaza la etiqueta HTML mostrada en el botón de acción


Crear encima de la lista.

Información sobre herramientas de botón Reemplaza el texto de información sobre herramientas que
aparece cuando el usuario apunta al botón de acción Crear.

Configuración avanzada del cuadro de diálogo Crear formulario

NOMBRE DESCRIPCIÓN

Cargando mensaje Reemplaza el mensaje que aparece mientras el cuadro de


diálogo se carga.

Cargo Reemplaza el HTML que aparece en la barra de título del


cuadro de diálogo.

Texto del lector de pantalla del botón Descartar Reemplaza el texto del lector de pantalla asociado al botón
Descartar del cuadro de diálogo.

Tamaño Especifica el tamaño del cuadro de diálogo Crear formulario.


Las opciones son: Predeterminado, Grande y Pequeño. El
tamaño predeterminado es Grande.

Clase de CSS Especifique una clase o clases CSS que se aplicarán al cuadro
de diálogo resultante.

Clase CSS de título Especifique una clase o clases CSS que se aplicarán a la barra
de título del cuadro de diálogo resultante.

Configuración de la Acción Descargar


Habilitar una Acción Descargar representa un botón encima de la lista de entidades que, cuando se selecciona,
descarga los datos de la lista en un archivo Excel (.xlsx).

NOMBRE DESCRIPCIÓN

Configuración básica

Ninguna

Configuración avanzada
NOMBRE DESCRIPCIÓN

Etiqueta de botón Reemplaza la etiqueta HTML mostrada en el botón de acción


Descargar encima de la lista de entidades.

Información sobre herramientas de botón Reemplaza el texto de información sobre herramientas que
aparece cuando el usuario apunta al botón de acción
Descargar.

Configuración de la Acción Detalles


Habilitar una Acción Detalles permite al usuario ver un formulario de entidad de solo lectura de una fila
seleccionada en la lista de entidades.

NOMBRE DESCRIPCIÓN

Configuración básica

Formulario de entidad Especifica el formulario de entidad que se usará para ver los
detalles de la entidad seleccionada. La lista desplegable
incluirá todos los formularios de entidad que estén
configurados para el tipo de entidad de la lista de entidades.
Nota: Si el tipo de entidad de la lista de entidades no tiene
formularios de entidad, la lista desplegable aparecerá vacía. Si
no se proporciona un formulario de entidad para la acción
Detalles, se ignorará y el botón no se representará en la lista
de entidades.

Configuración avanzada

Nombre del parámetro de cadena de consulta de id. de Especifica el nombre del parámetro de cadena de consulta que
registro se usará para seleccionar la entidad para ver en el formulario
de entidad seleccionado. Este debe coincidir con el valor de
Nombre del parámetro de cadena de consulta de id. de
registro de ese formulario de entidad. El valor predeterminado
de este campo, aquí y en la configuración del formulario de
entidad, es id.

Etiqueta de botón Reemplaza la etiqueta HTML para esta acción mostrada en la


fila de la lista de entidades.

Información sobre herramientas de botón Reemplaza el texto de información sobre herramientas que
aparece cuando el usuario apunta al botón para esta acción
mostrada en la fila de la lista de entidades.

Configuración avanzada del cuadro de diálogo Detalles

NOMBRE DESCRIPCIÓN

Cargando mensaje Reemplaza el HTML que aparece cuando el cuadro de diálogo


se carga.

Cargo Reemplaza el HTML que aparece en la barra de título del


cuadro de diálogo.

Texto del lector de pantalla del botón Descartar Reemplaza el texto del lector de pantalla asociado al botón
Descartar del cuadro de diálogo.
NOMBRE DESCRIPCIÓN

Tamaño Especifica el tamaño del cuadro de diálogo Detalles. Las


opciones son: Predeterminado, Grande y Pequeño. El tamaño
predeterminado es Grande.

Clase de CSS Especifique una clase o clases CSS que se aplicarán al cuadro
de diálogo resultante.

Clase CSS de título Especifique una clase o clases CSS que se aplicarán a la barra
de título del cuadro de diálogo resultante.

Configuración de la Acción Editar


Habilitar una Acción Editar permite al usuario ver un formulario de entidad editable que está enlazado a datos al
registro de la fila seleccionada de la lista de entidades siempre que los permisos de entidad hayan concedido el
privilegio de 'Escritura'.

NOMBRE DESCRIPCIÓN

Configuración básica

Formulario de entidad Especifica el formulario de entidad que se usará para editar la


entidad seleccionada. La lista desplegable incluirá todos los
formularios de entidad que estén configurados para el tipo de
entidad de la lista de entidades.
Nota: Si el tipo de entidad de la lista de entidades no tiene
formularios de entidad, la lista desplegable aparecerá vacía. Si
no se proporciona un formulario de entidad para la acción
Editar, se ignorará y el botón no se representará en la lista de
entidades.

Configuración avanzada

Nombre del parámetro de cadena de consulta de id. de Especifica el nombre del parámetro de cadena de consulta que
registro se usará para seleccionar la entidad para editar en el
formulario de entidad seleccionado. Este debe coincidir con el
valor de Nombre del parámetro de cadena de consulta de id.
de registro de ese formulario de entidad. El valor
predeterminado de este campo, aquí y en la configuración del
formulario de entidad, es id.

Etiqueta de botón Reemplaza la etiqueta HTML para esta acción mostrada en la


fila de la lista de entidades.

Información sobre herramientas de botón Reemplaza el texto de información sobre herramientas que
aparece cuando el usuario apunta al botón para esta acción
mostrada en la fila de la lista de entidades.

Configuración avanzada del cuadro de diálogo Editar formulario

NOMBRE DESCRIPCIÓN

Cargando mensaje Reemplaza el HTML que aparece cuando el cuadro de diálogo


se carga.
NOMBRE DESCRIPCIÓN

Cargo Reemplaza el HTML que aparece en la barra de título del


cuadro de diálogo.

Texto del lector de pantalla del botón Descartar Reemplaza el texto del lector de pantalla asociado al botón
Descartar del cuadro de diálogo.

Tamaño Especifica el tamaño del cuadro de diálogo Editar. Las


opciones son: Predeterminado, Grande y Pequeño. El tamaño
predeterminado es Grande.

Clase de CSS Especifique una clase o clases CSS que se aplicarán al cuadro
de diálogo resultante.

Clase CSS de título Especifique una clase o clases CSS que se aplicarán a la barra
de título del cuadro de diálogo resultante.

Configuración de la Acción Eliminar


Habilitar Acción Eliminar permite al usuario eliminar permanentemente el registro de la fila seleccionada de la
lista de entidades, siempre que permisos de entidad haya concedido el privilegio 'Eliminar'.

NOMBRE DESCRIPCIÓN

Configuración básica

ninguna

Configuración avanzada

Confirmación Reemplaza el mensaje HTML de confirmación que se muestra


cuando el usuario activa la acción Eliminar.

Etiqueta de botón Reemplaza la etiqueta HTML para esta acción mostrada en la


fila de la lista de entidades.

Información sobre herramientas de botón Reemplaza el texto de información sobre herramientas que
aparece cuando el usuario apunta al botón para esta acción
mostrada en la fila de la lista de entidades.

Configuración avanzada del cuadro de diálogo Eliminar

NOMBRE DESCRIPCIÓN

Cargo Reemplaza el HTML que aparece en la barra de título del


cuadro de diálogo.

Texto del botón primario Reemplaza el HTML que aparece en el botón Principal
(Eliminar) del cuadro de diálogo.

Texto del botón Cerrar Reemplaza el HTML que aparece en el botón Cerrar (Cancelar)
del cuadro de diálogo.
NOMBRE DESCRIPCIÓN

Texto del lector de pantalla del botón Descartar Reemplaza el texto del lector de pantalla asociado al botón
Descartar del cuadro de diálogo.

Tamaño Especifica el tamaño de cuadro de diálogo Eliminar. Las


opciones son: Predeterminado, Grande y Pequeño. El tamaño
predeterminado es Predeterminado.

Clase de CSS Especifique una clase o clases CSS que se aplicarán al cuadro
de diálogo resultante.

Clase CSS de título Especifique una clase o clases CSS que se aplicarán a la barra
de título del cuadro de diálogo resultante.

Clase CSS del botón primario Especifique una clase o clases CSS que se aplicarán al botón
Principal (Eliminar) del cuadro de diálogo.

Clase CSS del botón Cerrar Especifique una clase o clases CSS que se aplicarán al botón
Cerrar (Cancelar) del cuadro de diálogo.

Configuración de la Acción de flujo de trabajo


Habilitar una Acción de flujo de trabajo permite al usuario ejecutar un flujo de trabajo a petición para el
registro de la fila seleccionada de la lista de entidades. Puede agregar cualquier número de acciones de flujo de
trabajo a la lista de entidades.

NOMBRE DESCRIPCIÓN

Configuración básica

Flujo de trabajo Especifica el flujo de trabajo a petición que se ejecutará


cuando el usuario active esta acción.
Nota: Si el tipo de entidad de la lista de entidades no tiene
flujos de trabajo, la lista desplegable aparecerá vacía. Si no se
proporciona un flujo de trabajo para la acción Flujo de trabajo,
se ignorará y el botón no se representará en la lista de
entidades.

Etiqueta de botón Establece la etiqueta HTML para esta acción mostrada en la


fila de la lista de entidades. Este ajuste es obligatorio.

Configuración avanzada

Información sobre herramientas de botón Reemplaza el texto de información sobre herramientas que
aparece cuando el usuario apunta al botón para esta acción
mostrada en la fila de la lista de entidades.

Protección de listas de entidades


Para realizar una lista de entidades, debe configurar los permisos de entidad para la entidad para la que se
muestran registros y también establecer el valor booleano Habilitar permisos de entidad en el registro de la
lista de entidades en True.
El acto de proteger una lista de entidades asegurará que para cualquier usuario que tenga acceso a la página solo
se muestran los registros para los que se ha concedido permiso. Esto se consigue mediante un filtro adicional que
se agrega a las vistas de la aplicación basada en modelo que emergen a través de la lista. Este filtro filtrará solo los
registros que son accesibles al usuario, mediante el permiso Leer.
Además, las acciones se definan para la lista respetarán los permisos correspondientes para dicha acción, registro
a registro. Es decir, si tiene el permiso Editar para un registro, la acción Editar se habilitará para ese registro. Lo
mismo se aplica a Eliminar, Crear, etc. Tenga en cuenta que si no hay ningún registro disponible, un mensaje que
indica esto aparecerá cuando la lista se cargue.
Sin embargo, un buen diseño de la página web requiere que, si el usuario no tiene un rol con permisos para la
entidad (es decir, nunca habrá una situación en la que no vea ningún registro), no debe obtener acceso a la página
en absoluto. Idealmente, la página debe protegerse con permisos de acceso de página web.

Agregar una página de detalles de vista


Al establecer la búsqueda de Página web para vista de detalles en una página web, los detalles de un registro
enumerado en la cuadrícula pueden verse como de solo lectura o editados, en función de la configuración del
formulario o de la página asociada.
Esta página puede ser una plantilla de página completamente personalizada, quizás creada con Liquid. El
escenario más común es probablemente tener la página de detalles como una página web que contiene un
formulario de entidad o un formulario web.
Lo importante es conocer que cada registro enumerado en la cuadrícula tendrá un hipervínculo a la página de
detalles, y el vínculo contendrá un parámetro Cadena de consulta con nombre con el identificador del registro. El
nombre de parámetro Cadena de consulta depende del Nombre de parámetro de cadena de consulta de id.
especificado en la lista de entidades. La tarea final a tener en cuenta es que la página web de detalles de destino
también debe conocer el nombre de este parámetro de Cadena de consulta para obtener el identificador del
registro que debe consultar y cargar sus datos.

Uso de un formulario de entidad para mostrar detalles


Para crear un formulario de entidad consulte las instrucciones que se encuentran en la página Formulario de
entidad.
A continuación se describen los valores importantes que debe conocer para asegurarse de que el registro de la
lista de entidades se carga en el formulario de entidad.
El Nombre del parámetro de cadena de consulta de id. de registro en el Formulario de entidad debe coincidir con
Nombre de parámetro de cadena de consulta de id. en la lista de entidades.
El Modo puede ser Editar o Solo lectura según sus necesidades.
Uso de un formulario web para mostrar detalles
A continuación se describen los valores importantes que debe conocer para asegurarse de que el registro de la
lista de entidades se carga en el formulario web.
El Nombre del parámetro de cadena de consulta de clave principal en Paso de formulario web debe coincidir con
Nombre de parámetro de cadena de consulta de id. en la lista de entidades.
El Modo puede ser Editar o Solo lectura según sus necesidades.
Uso de una página de detalles para la función Crear
Puede usar una página personalizada, un formulario de entidad o un formulario web en el mismo modo para la
función Crear. Esto es una alternativa a definir una acción Crear en el formulario. No puede definir una acción
Crear y una página personalizada para Crear: definir una acción personalizada tiene prioridad.
Si asigna una página web a la búsqueda Crear en la lista de entidades, y no especifica una acción Crear mediante
la Configuración, se representará un botón Crear en la lista; este botón vinculará al usuario a la página
personalizada que se ha designado para Crear.

Configuración de filtro de listas de entidades


Agregar la capacidad de filtrar registros de una lista de entidad es fácil: habilite simplemente la opción de filtrado y
luego seleccione uno o más tipos de filtro para mostrar a los usuarios. Es posible filtrar por un atributo que
coincida con algo de texto proporcionado por el usuario, o seleccionar de una serie de opciones. Incluso puede
diseñar prácticamente cualquier tipo de filtro que pueda imaginarse mediante Búsqueda avanzada.
Habilitar el filtro de lista de entidades
En la sección Filtro de metadatos, seleccione la casilla Habilitado. Esto agregará el área Filtro a la lista de entidades
cuando se muestran. Hasta que haya definido por lo menos un tipo de filtro, aparecerá el cuadro vacío.
Puede definir cómo el área Filtro en la lista de entidades se representará con la opción Orientación. El valor
predeterminado, Horizontal, representa el área Filtro por encima de la lista de entidades. Orientación vertical
representa el área Filtro como un cuadro a la izquierda de la lista de entidades.

Tipos de filtro

TIPO DE FILTRO DESCRIPCIÓN

Filtro de texto Filtre la lista de entidades mediante un cuadro de texto para


buscar texto coincidente en un atributo seleccionado de la
entidad dada.

Conjunto de filtros de atributo Filtre la lista de entidades mediante una serie de casillas, cada
de las cuales intenta que su condición coincida con un
atributo específico de la entidad dada.

Conjunto de búsquedas Filtre la lista de entidades mediante una serie de casillas, cada
una de las cuales que representa una relación entre un
registro para la entidad dada y un registro para una entidad
relacionada.

Conjunto de filtros de intervalo Es similar al conjunto de filtros de atributo, salvo que cada
casilla puede representar dos condiciones en lugar de una
(por ejemplo, mayor o igual que 0 AND menor que 100).
TIPO DE FILTRO DESCRIPCIÓN

Conjunto de listas desplegables dinámicas Es similar a elegir un valor de una lista desplegable en un
conjunto de filtros de atributo. El Conjunto de listas
desplegables dinámicas no requiere que especifique las
opciones de lista desplegable por las que filtrar; en su lugar,
genera la lista completa de opciones cuando la lista de
entidades se carga.

Conjunto de búsquedas dinámicas Es similar al conjunto de búsquedas. El Conjunto de


búsquedas dinámicas no requiere que especifique las opciones
de búsqueda por las que filtrar; en su lugar, genera la lista
completa de opciones cuando la lista de entidades se carga.

Filtro FetchXML Filtre la lista de entidades mediante una condición de filtro


FetchXML.

Filtro de texto
El Filtro de texto agrega un cuadro de texto al área Filtro de listas de entidades que está ligado a un atributo de
tipo entidad de la lista de entidades. Cuando un usuario aplica el filtro, la lista de entidades muestra solo aquellos
registros cuyo atributo seleccionado contenga el valor.
Para agregar un filtro de texto, seleccione + Filtro de texto.

El filtro de texto usa los siguientes atributos:

NOMBRE DESCRIPCIÓN

Atributo El nombre del atributo en el tipo de entidad seleccionado de


la lista de entidades por el que filtrar. Solo los atributos con el
tipo Cadena son válidos para un filtro de texto.

Nombre para mostrar Reemplace la etiqueta para el filtro cuando se muestre la lista
de entidades. De forma predeterminada, esto se establecerá
automáticamente con el nombre del atributo seleccionado.

Conjunto de filtros de atributo


El Conjunto de filtros de atributo agrega una serie de opciones por las que filtrar la lista de entidades, ligadas a un
solo atributo de tipo de la entidad seleccionada de la lista de entidades. Cuando un usuario aplica el filtro, la lista
de entidades muestra solo aquellos registros que coinciden exactamente con al menos una de las opciones
seleccionadas.
El Conjunto de filtros de atributo usa los siguientes atributos:

NOMBRE DESCRIPCIÓN

Atributo El nombre del atributo en el tipo de entidad seleccionado de


la lista de entidades por el que filtrar. Solo los atributos con los
siguientes tipos son válidos para un filtro de texto: String,
BigInt, Decimal, Double, Integer, Money, Picklist, DateTime y
Boolean.

Nombre Reemplace la etiqueta para el filtro cuando se muestre la lista


de entidades. De forma predeterminada, esto se establecerá
automáticamente con el nombre del atributo seleccionado.

Opciones Una colección de valores posibles por la que filtrar. Consulte


más adelante para obtener más información.

Opciones Conjunto de filtros de atributo


Un Conjunto de filtros de atributo puede tener normalmente cualquier número de opciones, con las excepciones
de lista desplegable y atributos booleanos. Un Conjunto de filtros de atributo booleano puede tener solo una o
dos opciones—una opción True y una opción False. Un Conjunto de filtros de atributo de lista desplegable puede
tener una opción para cada valor posible en la lista desplegable.
Las opciones tienen los siguientes atributos:

NOMBRE DESCRIPCIÓN

Operador El operador de comparación usado para filtrar resultados, por


ejemplo, iguales, menos que, etc. La lista de operadores de la
opción dependerá del tipo de atributo seleccionado para el
filtro. Por ejemplo, los tipos numéricos (Decimal) tendrán
operadores como Menor que o Mayor que, donde los
atributos de Cadena utilizarán Operadores como Empieza por
o Contiene. Los operadores de lista desplegable y booleanos
siempre son Es igual a.

Valor El valor real usado para esta condición de filtro.

Nombre Reemplaza el nombre para mostrar para esta opción en el


cuadro Filtro. De forma predeterminada, esto se establecerá
con el mismo valor que el atributo Valor.

Conjunto de búsquedas
El Conjunto de búsquedas agrega una serie de opciones por las que filtrar la lista de entidades, ligadas a una
entidad relacionada con el tipo de la entidad seleccionada de la lista de entidades. Cuando un usuario aplica el
filtro, la lista de entidades muestra solo aquellos registros que coinciden exactamente con al menos uno de los
registros seleccionados.
El Conjunto de búsquedas usa los siguientes atributos:

NOMBRE DESCRIPCIÓN

Relación El nombre de la entidad relacionada con el tipo de entidad


seleccionado de la lista de entidades por el que filtrar. Solo las
entidades con relaciones de uno a varios o de varios a varios
con el tipo de entidad seleccionado de la lista de entidades
aparecen como opciones para este tipo de filtro.

Nombre Reemplace la etiqueta para el filtro cuando se muestre la lista


de entidades. De forma predeterminada, esto se establecerá
automáticamente con el nombre de la relación seleccionada.

Opciones Una colección de valores posibles por la que filtrar. Consulte


más adelante para obtener más información.

Opciones de conjunto de búsqueda


Un conjunto de la búsqueda tiene normalmente varias opciones, con el único límite en el número de registros
relacionados de tipo relacionado seleccionado.
Las opciones tienen los siguientes atributos:

NOMBRE DESCRIPCIÓN

Valor El registro de tipo relacionado seleccionado por el que filtrar.

Nombre Reemplaza el nombre para mostrar para esta opción en el


cuadro Filtro. De forma predeterminada, esto se establecerá
con el mismo valor que el atributo Valor.

Conjunto de filtros de intervalo


El Conjunto de filtros de intervalo agrega una serie de opciones, cada una con una o dos condiciones, al área
Filtro. Cuando un usuario aplica el filtro, la lista de entidades muestra solo aquellos registros que coinciden
exactamente con todas las condiciones en al menos una de las opciones seleccionadas.

El conjunto de filtros de intervalo usa los siguientes atributos:


NOMBRE DESCRIPCIÓN

Atributo El nombre del atributo en el tipo de entidad seleccionado de


la lista de entidades por el que filtrar. Solo los atributos con los
siguientes tipos son válidos para un filtro de texto: String,
BigInt, Decimal, Double, Integer, Money y DateTime.

Nombre Reemplace la etiqueta para el filtro cuando se muestre la lista


de entidades. De forma predeterminada, esto se establecerá
automáticamente con el nombre del atributo seleccionado.

Opciones Una colección de valores posibles por la que filtrar. Consulte


más adelante para obtener más información.

Opciones del Conjunto de filtros de intervalo


Un Conjunto de filtros de intervalo puede tener varias opciones. Cada opción generará una condición de filtro con
una o dos subcondiciones, que deben cumplirse para que la condición sea True.
Las opciones tienen los siguientes atributos:

NOMBRE DESCRIPCIÓN

Operador 1 El primer operador de comparación usado para filtrar


resultados, por ejemplo, Es igual a y Es menor que. La lista de
operadores de la opción dependerá del tipo de atributo
seleccionado para el filtro. Por ejemplo, los tipos numéricos
(Decimal) tendrán operadores como Menor que o Mayor que,
donde los atributos de Cadena utilizarán Operadores como
Empieza por o Contiene. Los operadores de lista desplegable
y booleanos siempre son Es igual a.

Valor 1 El primer valor usado para esta condición de filtro.

Operador 2 (opcional) El segundo operador de comparación usado para filtrar


resultados, por ejemplo, Es igual a y Es menor que. La lista de
operadores de la opción dependerá del tipo de atributo
seleccionado para el filtro. Por ejemplo, los tipos numéricos
(Decimal) tendrán operadores como Menor que o Mayor que,
donde los atributos de Cadena utilizarán Operadores como
Empieza por o Contiene. Los operadores de lista desplegable
y booleanos siempre son Es igual a.

Valor 2 (opcional) El segundo valor usado para esta condición de filtro.

Nombre Reemplaza el nombre para mostrar para esta opción en el


cuadro Filtro. De forma predeterminada, se establecerá
dinámicamente en función de los operadores y los valores
seleccionados.

Conjunto de listas desplegables dinámicas


El Conjunto de listas desplegables dinámicas agrega una serie de opciones por las que filtrar que representan
todos los valores de un campo de lista desplegable específico. Esto es diferente de seleccionar una lista
desplegable en el Conjunto de filtros de atributo. En el Conjunto de filtros de atributo debe especificar un conjunto
de opciones que estarán disponibles para el usuario para filtrar; en el Conjunto de lisas desplegables dinámicas
solo debe especificar el campo de lista desplegable y el conjunto completo de opciones se proporcionará
automáticamente. Si necesita mayor control, se recomienda usar el Conjunto de filtros de atributo.
El Conjunto de listas desplegables dinámicas usa las siguientes opciones:

NOMBRE DESCRIPCIÓN

Atributo El nombre del atributo de lista desplegable en el tipo de


entidad seleccionado de la lista de entidades por el que filtrar.

Nombre Reemplace la etiqueta para el filtro cuando se muestre la lista


de entidades. De forma predeterminada, esto se establecerá
automáticamente con el nombre del atributo seleccionado.

Conjunto de búsquedas dinámicas


El Conjunto de búsquedas dinámicas agrega una serie de opciones por las que filtrar la lista de entidades, ligadas
a una entidad relacionada con el tipo de la entidad seleccionada de la lista de entidades. Cuando un usuario aplica
el filtro, la lista de entidades muestra solo aquellos registros que coinciden exactamente con al menos uno de los
registros seleccionados.
Esto es diferente de un Conjunto de búsquedas. En el Conjunto de búsqueda, debe especificar manualmente las
entidades relacionadas por las que filtrar. En el Conjunto de búsquedas dinámicas, debe especificar solo la relación
por la que se va a filtrar, y una lista de opciones se generará en función de la vista especificada de entidades
relacionadas.

El Conjunto de búsquedas dinámicas usa las siguientes opciones:

NOMBRE DESCRIPCIÓN

Relación El nombre de la entidad relacionada con el tipo de entidad


seleccionado de la lista de entidades por el que filtrar. Solo las
entidades con relaciones de uno a varios o de varios a varios
con el tipo de entidad seleccionado de la lista de entidades
aparecen como opciones para este tipo de filtro.

Vista La Vista (consulta guardada) para usar como origen para la


lista dinámica de entidades por la que filtrar.

Columna de etiqueta El campo de la vista que proporciona el valor de Nombre de


cada entidad.
NOMBRE DESCRIPCIÓN

Filtrar búsqueda por relación Especifica una relación entre la entidad especificada por el
campo Relación y el usuario que inició sesión. Si la entidad
especificada por campo Relación también tiene una relación
con un contacto, puede reducir la lista de opciones de filtro a
los usuarios relacionados con el usuario que inició sesión.

Nombre Reemplace la etiqueta para el filtro cuando se muestre la lista


de entidades. De forma predeterminada, esto se establecerá
automáticamente con el nombre de la relación seleccionada.

Filtro FetchXML
El filtro de intervalo puede crear un filtro de cuadro de texto básico como el filtro de texto, o un conjunto de
opciones como otros tipos de filtro. Permite crear manualmente prácticamente cualquier tipo de filtro para la
entidad de entidades mediante FetchXML.

El filtro FetchXML solo usa un atributo:

NOMBRE DESCRIPCIÓN

FetchXML La instrucción XML que representa el filtro.

Vista de mapa de listas de entidades


Con las listas de entidades es posible habilitar y configurar una vista de mapa de los datos, con tecnología de
mapas de Bing con la funcionalidad de búsqueda para buscar ubicaciones cerca de una dirección. Al rellenar los
registros con valores de coordenadas de latitud y longitud y especificar las opciones de configuración necesarias
enumeradas en esta sección, los registros se pueden representar como marcadores en un mapa. Cualquier
registro que no tenga un valor de latitud o longitud quedará excluido de la búsqueda. La carga inicial de la página
mostrará todos los registros en el valor inicial del campo Valores de distancia (en millas o kilómetros, según las
unidades de distancia especificadas) de las coordenadas de Latitud del centro predeterminada y Longitud del
centro predeterminada. La vista especificada se omite cuando se usa la vista de mapa, y una consulta de distancia
se aplica al conjunto de datos para devolver resultados de mapa.

NOTE
Esta opción no se admite en el entorno de la nube soberana alemana. La sección de la vista de mapa no estará visible en
este entorno.

Vista de calendario de lista de entidades


Use la Vista de calendario de lista de entidades para representar una lista de entidades como calendario, con cada
registro individual configurado para actuar como un solo evento.
Para mostrar los registros mediante un calendario, esos registros deben incluir como mínimo un campo de fecha.
Para que los eventos tengan horas de inicio y finalización exactos, los campos correspondientes deben existir, etc.
Si se supone que estos campos estén configurados, una vista de calendario de lista de entidades aparecerá en el
portal.

Filtro de vista mejorado para listas de entidades


Si está habilitada, una entidad se puede publicar a una fuente de OData. El protocolo OData es un protocolo a
nivel de aplicación para interactuar con datos a través de servicios web RESTful. Los datos de esta fuente se
pueden ver en un explorador web, consumir por una aplicación web del lado del cliente, o importar a Excel.

Fuentes de OData de la lista de entidades


Puede usar permisos de la entidad si desea proteger los registros, pero si desea proporcionar simplemente un
filtro como parte del conjunto de opciones de filtro que corresponde al usuario del portal actual, puede usar la
función lista de entidades. Esta característica admite el filtro de usuario actual, de la cuenta primaria del usuario, o
una página web en cualquier profundidad. Simplemente cree el filtro de la vista para que coincida con cualquier
registro de contacto único, y el código reemplazará la configuración con el valor real en tiempo de ejecución, sin la
necesidad de asignar valores a los campos de la sección Condiciones de filtro.

NOTE
La fuente OData que se publica es anónima y no tiene comprobaciones de autorización; por tanto, es importante no
habilitar las fuentes OData para los datos que son inadecuados para el acceso anónimo al portal.

Vea también
Configurar un portal
Redireccionar a una nueva dirección URL en un portal
Definir propiedades de formulario web para portales
25/11/2019 • 8 minutes to read • Edit Online

El formulario web contiene relaciones con páginas web y un paso de inicio para controlar la inicialización del
formulario dentro del portal. La relación con la página web permite la recuperación dinámica de la definición de
formulario para un determinado nodo de página en el sitio web.
Las otras opciones en el propio registro del formulario web controlan las preferencias de nivel superior para el
proceso de diversos pasos en su conjunto como, por ejemplo, si desea que se muestre una barra de progreso.
Para ver formularios web existentes o crear nuevos formularios web, abra la aplicación Administración del portal y
vaya a Portales > Formularios web.

NOTE
Un formulario web debe estar asociado a una página web de un determinado sitio web para que el formulario sea visible
desde el sitio.

Al crear o editar una página web desde la aplicación Administración del portal, un formulario web se puede
especificar en el campo de búsqueda proporcionado en el formulario Nueva página web.

Atributos de formulario web


Los siguientes atributos y relaciones determinan la funcionalidad del formulario web.

NOMBRE DESCRIPCIÓN

Nombre Un título del formulario usado para referencia.

Paso de inicio El primer paso del formulario. Un formulario web está


compuesto por uno o varios pasos. Para obtener información
acerca de estos pasos, consulte la sección titulada Paso de
formulario web que se encuentra a continuación. El primer
paso no puede ser de tipo "Condition".

Se requiere autenticación Si está activada esta opción, cuando un usuario que no ha


iniciado sesión visita la página que contiene el formulario, será
redirigido a la página de inicio de sesión. Después de iniciar
sesión correctamente, el usuario volverá a acceder a la página
que contiene el formulario.

Iniciar nueva sesión al cargar Si se selecciona Sí, se indica que si el usuario abre el
formulario en un explorador nuevo o una nueva pestaña o
cierra el explorador o la página y vuelve al paso anterior, se
iniciará una sesión completamente nueva en el formulario y se
reiniciará en el primer paso. En caso contrario, la sesión se
mantendrá y el usuario puede cerrar el explorador o la página
y reanudar más adelante exactamente donde lo dejó. Valor
predeterminado: No.
NOMBRE DESCRIPCIÓN

Se permiten varios registros por usuario Seleccione Sí para indicar que se permite a un usuario crear
más de un envío. Esto ayuda al formulario a determinar qué
hacer cuando un usuario revisita un formulario. Valor
predeterminado: Sí.

Código de estado de editar expirado Si el valor entero del código de estado de la entidad de
destino se combina con la razón para el estado, indica cuándo
un registro existente ya no se puede editar.

Razón para el estado de editar expirado Si el valor entero del código de estado de la entidad de
destino se combina con el código de estado, indica que
cuando un registro existente tiene estos valores, el registro no
debe editarse más—; es decir, cuando un registro se actualiza
como completo.

Mensaje de editar expirado El mensaje que se muestra cuando el código de estado del
registro existente y la razón para el estado coinciden con los
valores especificados. Para cada paquete de idioma instalado y
activado para la organización un campo estará disponible para
especificar el mensaje en el idioma asociado. Mensaje
predeterminado: "Ya ha completado un envío. Gracias."

Configuración de indicador de progreso


NOMBRE DESCRIPCIÓN

Habilitado Active esta opción para mostrar el indicador de progreso.


Valor predeterminado: Deshabilitado.

Tipo Uno de los siguientes: Título, Numérico (paso x de n), y barra


de progreso. Valor predeterminado: Título

Posición Uno de los siguientes: Superior, Inferior, Izquierda, Derecha. La


posición es relativa al formulario. Valor predeterminado:
Superior

Anteponer número de paso al título de paso Active esta opción para agregar el número del paso al
principio del título del paso. El valor predeterminado es sin
activar.

Ejemplo de los diferentes tipos de indicador de progreso:


Título
Título con número de paso antepuesto

Numérico

Barra de progreso

Advertencia de "guardar cambios"


NOMBRE DESCRIPCIÓN

Mostrar advertencia de guardar cambios al cerrar Seleccione esta opción para mostrar un mensaje de
advertencia si el usuario ha realizado cambios en los campos e
intenta volver a cargar la página, cerrar el explorador, hacer
clic en el botón Atrás del explorador, o hacer clic en el botón
anterior en un formulario de varios pasos.

Mensaje de advertencia de guardar cambios Para cada paquete de idioma instalado y activado para la
organización un campo estará disponible para especificar el
mensaje en el idioma asociado. Si no se especifica un mensaje,
se utilizará el valor predeterminado del explorador.

Ejemplo:
NOTE
Firefox no ofrece la posibilidad de especificar un mensaje personalizado.

Configuración de ubicación geográfica para formulario web.


Un formulario administrado se puede configurar para mostrar un control de mapa para que se muestre una
ubicación existente como una chincheta en un mapa o proporcionar la capacidad de que el usuario especifique una
ubicación. Vea Agregar ubicación geográfica.
El control de mapa del formulario requiere configuración adicional para indicarle cuáles son los id. de los
diferentes campos de ubicación para poder asignar o recuperar valores. El registro del paso de formulario web
tiene una sección que define estas asignaciones de campo a las que debe asignar valores. Los nombres de campo
variarán en función del esquema que ha elegido.

NOTE
La sección de ubicación geográfica no podrá verse en el entorno de la nube soberana alemana. Si un usuario ha habilitado la
ubicación geográfica con otro formulario, no se mostrarán durante la representación en portal.

Vea también
Configurar un portal
Definir formularios de entidad
Pasos de formulario web para portales
Metadatos de formularios web para portales
Configuración de la subcuadrícula de formularios web para portales
Configuración de notas para formularios web para portales
Definir pasos de formulario web para portales
25/11/2019 • 3 minutes to read • Edit Online

El paso de formulario web proporciona la lógica de flujo de la experiencia del usuario del formulario, como pasos
y rama condicional. También proporcionó detalles acerca de la representación de un formulario y
comportamiento adicional.

NOTE
Los formularios web mantienen el historial de los pasos que un usuario ha visitado en un objeto de una entidad Sesión de
formularios web. Si se han modificado los pasos de formulario web, los datos del historial creados previamente podrían estar
ahora desfasados. En el momento que se cambian los pasos, se recomienda eliminar todos los registros de Sesión de
formularios web para eliminar la falta de coincidencia entre la secuencia de pasos iniciado registrados en el historial y la
secuencia actual.

Cada formulario web se presentará en el portal en uno o varios pasos. Estos pasos comparten algunos
propiedades comunes, descritas a continuación. Cada paso contiene un puntero (una búsqueda) al siguiente paso,
con la excepción de los pasos de terminal. Los pasos de terminal no tienen una próxima vez y, por tanto, son el
último paso del formulario web (debido a ramas condicionales, puede haber múltiples pasos de terminal)

NOMBRE DESCRIPCIÓN

Nombre Un título usado para referencia.

Formulario web El formulario web asociado con el paso actual.


NOMBRE DESCRIPCIÓN

Tipo Uno de los siguientes:


Tipo de paso Cargar formulario/Cargar pestaña: muestra
propiedades de formularios.
Tipo de paso Cargar formulario/Cargar pestaña:
muestra propiedades de pestañas.
Tipo de paso condicional: muestra propiedades para
especificar expresiones que se evaluarán para ramas
condicionales.
Tipo del paso de redireccionamiento: muestra los
valores adecuados para configurar una redirección de
sitio web.

Para obtener más detalles sobre los valores de estos tipos de


paso de formulario web, consulte las secciones
correspondientes a continuación.
Nota: El primer paso no puede ser de tipo "Condición".

Paso siguiente El paso que seguirá el paso actual. Será en blanco para un
formulario de un solo paso.

Nombre lógico de entidad de destino El nombre lógico de la entidad asociada al formulario.

Se permite mover anterior Indica si el usuario tiene una opción para desplazarse hasta el
paso anterior en un formulario web de varios pasos. El valor
predeterminado es true. Desactive para impedir que el
usuario pueda desplazarse al paso anterior.

Vea también
Configurar un portal
Definir entidad
Tipo de paso Cargar formulario/Cargar pestaña
Tipo del paso de redireccionamiento
Tipo de paso condicional
Agregar JavaScript personalizado
Definir un formulario de carga y un tipo de paso de
pestaña de carga
25/11/2019 • 18 minutes to read • Edit Online

Este tipo de paso permite que el paso del formulario web actúe como formulario de entidad en el proceso
general del formulario web. Carga un formulario con un conjunto de opciones similar disponible como un
formulario de entidad.

Configuración
NOMBRE DESCRIPCIÓN

Nombre Nombre descriptivo del registro. Requerido

Nombre de entidad El nombre de la entidad desde la que se cargará el formulario.


Requerido

Nombre del formulario El nombre del formulario de la entidad de destino que se va a


representar. Requerido

Nombre de pestaña Nombre de una pestaña en un formulario para una entidad


especificada que debe ser representada. Opcional

Modo Uno de los siguientes valores:


Insertar
Editar
Solo lectura
Si selecciona Insertar indica que el formulario debe insertar
un nuevo registro tras el envío. Especificar Editar indica que el
formulario deben modificar un registro existente. Si selecciona
ReadOnly indica que el formulario debe mostrar el formulario
no editable de un registro existente. Editar y ReadOnly
requieren que exista un registro de origen y los parámetros
especificados en los campos 'Tipo de origen de registro' y
'Nombre del parámetro de cadena de consulta de id. de
registro' para seleccionar el registro adecuado cuando el
formulario se carga en el portal.

Generar automáticamente pasos desde pestañas Activado indica que múltiples pestañas en un formulario de
entidad se mostrarán con cada pestaña como paso secuencial
que comienza con la primera pestaña y continúa hasta
recorrer todas las pestañas y tras el envío final se inserta un
registro. El comportamiento predeterminado es desactivado.
El valor desactivado indica que sólo un formulario o pestaña
debe ser representado para el paso actual. Si el Nombre de
pestaña no se especifica, aparecerá la primera pestaña.
NOMBRE DESCRIPCIÓN

Tipo de origen de registro Uno de los siguientes valores:


Cadena de consulta
Usuario actual del portal
Resultado del paso anterior
Si selecciona Cadena de consulta se requiere un nombre de
parámetro que se debe proporcionar en la cadena de
consulta de la dirección URL del formulario. Esto se puede
especificar en el campo 'Nombre del parámetro de cadena de
consulta de id. de registro'. Si selecciona Usuario actual del
portal se recuperará el registro de usuario del portal para el
usuario autenticado actual.
Si selecciona Resultado del paso anterior se recuperará el
registro que fue el origen del registro para un paso anterior
del formulario web.

Nombre del parámetro de cadena de consulta de id. de Un nombre de parámetro proporcionado en la cadena de
registro consulta de la dirección URL de la página web que contienen
este formulario de entidad.

Nombre de la relación Requerido cuando Tipo de origen del registro es Registro


asociado al usuario actual del portal. El nombre lógico de la
relación entre el registro de usuario del portal actual y el
registro de destino. Esto debe devolver el mismo tipo de
entidad especificado por el campo Nombre de entidad.

Permitir creación si es nulo Un valor booleano opcional disponible cuando Tipo de origen
del registro es Registro asociado al usuario actual del portal.
Activado indica que si no existe el registro relacionado, se
permite que el usuario lo cree la primera vez, en caso
contrario se lanzará una excepción si el registro no existe aún,
porque el formulario necesita un registro con el que enlazar
datos.

Habilitar permisos de entidad Hará que el formulario respete permisos de entidad. El valor
predeterminado es false por razones de compatibilidad con
versiones anteriores. Si se establece como true, SE
REQUERIRÁN permisos explícitos para cualquier usuario que
desee obtener acceso al formulario. Tenga en cuenta que esto
se aplica únicamente al PRIMER paso de un formulario.

Configuración adicional
NOMBRE DESCRIPCIÓN

Representar recursos web insertados Elimina el iFrame que abarca un recurso web en un formulario
de entidad.

Informaciones sobre herramientas habilitadas La información sobre herramientas se establece utilizando la


descripción del atributo de la entidad de destino.

Mostrar campos no compatibles Todos los campos son compatibles actualmente. Esto se
reserva para los cambios potenciales que pueda hacer en los
tipos de campo.
NOMBRE DESCRIPCIÓN

Establecer campos recomendados como obligatorios Hace que sean obligatorios todos los atributos que tengan el
nivel de requisito del campo establecido en 'Recomendado
por la empresa'.

Hacer que todos los campos sean obligatorios Hace que sean obligatorios todos los campos
independientemente del nivel de requisito del campo.

Clase CSS de resumen de validación Nombre de clase CSS asignado el resumen de validación.
Valor predeterminado: 'validation-summary alert alert-error
alert-block'

Habilitar vínculos de resumen de validación Un valor booleano de true o false de que indica si los vínculos
de delimitador deben representarse en el resumen de
validación para desplazarse al campo que contiene un error.
Valor predeterminado: true

Texto del vínculo de resumen de validación La etiqueta asignada a los vínculos de resumen de validación.
Valor predeterminado: haga clic aquí

Instrucciones Muestra un bloque de texto en la parte superior del


formulario.

Mensaje No se encuentra el registro Mensaje mostrado cuando el registro de origen no se puede


cargar. Valor predeterminado: No se encontró el registro que
busca.

Opciones de formulario
NOMBRE DESCRIPCIÓN

Agregar captcha El portal usa RadCaptcha de Telerik para evitar ataques de


correo no deseado maliciosos. El servicio requiere una clave
única para autenticar las solicitudes de la aplicación de portal.

Grupo de validación El nombre de grupo asignado a los controles de entrada para


evaluar entrada válida de grupos con nombre.

Clase CSS del botón Anterior Nombre de clase CSS asignado al botón Anterior.

Texto del botón Anterior Etiqueta del botón anterior.

Clase CSS del botón Siguiente Nombre de clase CSS asignado al botón Siguiente.

Texto del botón Enviar Etiqueta del botón siguiente.

Clase CSS del botón Enviar Nombre de clase CSS asignado al botón Enviar. Valor
predeterminado: botón enviar

Texto del botón Enviar Etiqueta del botón enviar. El valor predeterminado es 'Enviar'

Texto No disponible del botón Enviar Etiqueta en el botón enviar durante el proceso en ejecución.
Valor predeterminado: Procesando...
NOMBRE DESCRIPCIÓN

Asocie el usuario del portal actual con la creación de un registro


Estas opciones se usan para realizar un seguimiento de qué contacto del portal crea un registro a través de la
interfaz de usuario del portal

NOMBRE DESCRIPCIÓN

Asociar usuario actual del portal Activado indica que el registro del usuario que ha iniciado
sesión actualmente se debe asociar al registro de la entidad
de destino.

Atributo de búsqueda de usuarios del portal de la entidad de El nombre lógico del atributo de la entidad de destino que
destino almacena el usuario del portal.

Es grupo de actividad Valor booleano que indica si el Atributo de búsqueda de


usuarios del portal de la entidad de destino es un tipo del
grupo de actividad. Consulte Entidad ActivityParty

Referencia de entidad
Los siguientes parámetros pertenecen al establecimiento de una referencia de entidad al guardar el formulario.
Esto proporciona una forma de asociar el registro actual que crea o actualiza el formulario con otro registro de
destino. Esto es útil si tiene varios pasos con tipos de entidad múltiple y desea relacionar los registros resultantes
o si se pasa a la página una cadena de consulta de un identificador de registro que desea asociar. Por ejemplo
tenemos una página de trabajo que incluye registros de trabajo, cada uno con un vínculo a una solicitud del
trabajo que contiene el identificador del registro de trabajo al formulario de solicitud de forma que cuando se
crea la solicitud, el registro de trabajo se asocia con el registro.

NOMBRE DESCRIPCIÓN

Establecer referencia de entidad al guardar Sí o No. Un valor de sí indica que una referencia de entidad
debe asignarse al guardar el formulario, en caso contrario no
se establecerá ninguna.

Nombre de la relación El Nombre de definición de relación para una determinada


relación entre dos tipos de entidad.
Nota: No especifique un nombre de relación si especifica un
Nombre lógico del atributo de búsqueda de destinos.

Nombre lógico de la entidad El nombre lógico de la entidad de referencia.

Nombre lógico del atributo de búsqueda de destinos Nombre lógico del atributo de búsqueda en la entidad de
destino que se crea o actualiza.
Nota: No especifique un nombre de relación si especifica un
Nombre lógico del atributo de búsqueda de destinos.
NOMBRE DESCRIPCIÓN

Rellenar campo de búsqueda Si la búsqueda relativa a la entidad de referencia se encuentra


en el formulario, al activar este valor se completará el campo
del formulario con el valor recuperado mediante el valor
siguiente.

Tipo de origen Uno de los siguientes valores:


Cadena de consulta
Usuario actual del portal
Resultado del paso anterior
Si selecciona Cadena de consulta se requiere un nombre de
parámetro que se debe proporcionar en la cadena de
consulta de la dirección URL del formulario. Esto se puede
especificar en el campo Nombre de cadena de consulta. Si
este parámetro es la clave principal, seleccione Sí para La
cadena de consulta es la clave principal, en caso
contrario, seleccione No y proporcione el nombre lógico del
atributo de la entidad de destino para consultar por lo
especificado en el campo Nombre lógico del atributo de
consulta. Si selecciona Usuario actual del portal se recuperará
el registro de contacto para el usuario autenticado actual. Al
seleccionar Resultado del paso anterior se recuperará el
registro creado como resultado del paso antes del paso
actual o de un paso específico basado en el paso asociado
con el paso de origen de entidad.

Paso de entidad de referencia El registro del paso del formulario web de un paso anterior
para recuperar la entidad creada o modificada en dicho paso
para asociarlo con el registro de este paso actual.

Nombre de cadena de consulta Nombre de parámetro proporcionado en la cadena de


consulta de la dirección URL de la página web que contienen
el formulario web.

La cadena de consulta es la clave principal Sí indica que el valor de cadena de consulta es el valor de
clave principal. No indica que el valor de cadena de consulta
es un tipo de atributo distinto de la clave principal.

Nombre lógico del atributo de consulta Nombre lógico del atributo para consultar el registro.

Mostrar detalles de solo lectura Activado indica que un formulario debe representarse en la
parte superior de la página que muestra información de solo
lectura referente al registro de referencia. Requiere un
nombre de formulario.

Nombre del formulario El nombre del formulario de la entidad de referencia que debe
utilizarse para mostrar detalles de solo lectura.

Funcionalidad adicional
NOMBRE DESCRIPCIÓN

Adjuntar archivo Active esta opción para que el formulario incluya un control
de carga de archivos en la parte inferior del formulario para
permitir adjuntar un archivo al registro.
NOMBRE DESCRIPCIÓN

Permitir varios archivos Un valor booleano que indica si el usuario puede cargar más
de un archivo.

Aceptar El atributo de aceptación especifica los tipos MIME de


archivos que el servidor acepta a través de la carga de
archivos. Para especificar más de un valor, separe los valores
con comas (por ejemplo, audio/*,video/*,image/*).

Etiqueta Texto mostrado junto al control de carga de archivos. Para


cada paquete de idioma instalado y activado para la
organización del entorno de Common Data Service, un
campo estará disponible para especificar el mensaje en el
idioma asociado.

Es obligatorio Si está activado hace que avancen los datos adjuntos de un


archivo requerido.

Mensaje de error obligatorio El mensaje mostrado durante la validación de formulario si Es


obligatorio es true y el usuario no ha adjuntado un archivo.
Para cada paquete de idioma instalado y activado para la
organización del entorno de Common Data Service, un
campo estará disponible para especificar el mensaje en el
idioma asociado.

JavaScript personalizado Un bloque personalizado de JavaScript que se agregará a la


parte inferior de la página justo delante el elemento de
etiqueta de formulario de cierre. El identificador de entrada
HTML de un campo de entidad se define con el nombre
lógico del atributo. Esto facilita la selección de un campo, el
establecimiento de valores u otras manipulaciones del lado
del cliente con jQuery.
$(document).ready(function() {
$(#address1_stateorprovince).val(Saskatchewan); });

Vea también
Configurar un portal
Definir formularios de entidad
Pasos de formulario web para portales
Tipo del paso de redireccionamiento
Tipo de paso condicional
Agregar JavaScript personalizado
Agregar un tipo de paso de redireccionamiento
25/11/2019 • 3 minutes to read • Edit Online

El tipo del paso de redireccionamiento permite redireccionar la sesión del explorador del usuario a otra página del
portal o una dirección URL externa. Esto resulta útil para un flujo de direccionamiento integrado.

NOMBRE DESCRIPCIÓN

Dirección URL externa Requiere establecer En caso de éxito como Redirigir.


Especifique una dirección URL a un recurso externo de la web.

o página web Requiere establecer En caso de éxito como Redirigir.


Seleccione una página web desde el sitio web actual.

Anexar cadena de consulta existente Requiere establecer En caso de éxito como Redirigir. Cuando
está activada esta opción, los parámetros de cadena de
consulta existente se agregarán a la dirección URL de destino
antes del redireccionamiento.

Anexar id. de registro a la cadena de consulta Requiere establecer En caso de éxito como Redirigir. Cuando
está activada esta opción, el Id. del registro creado se anexa a
cadena de consulta de la dirección URL a la que se está
realizando el redireccionamiento.

Nombre del parámetro de cadena de consulta de id. de Requiere establecer En caso de éxito como Redirigir. El
registro nombre del parámetro Id. de la cadena de consulta de la
dirección URL a la que se está realizando el
redireccionamiento.

Anexar cadena de consulta personalizada Requiere establecer En caso de éxito como Redirigir. Una
cadena personalizada que se puede anexar a la cadena de
consulta existente de la dirección URL de redireccionamiento.

Anexar valor de atributo a la cadena de consulta: nombre de Requiere establecer En caso de éxito como Redirigir. Un
parámetro nombre para dar al parámetro que se correlaciona con el
valor de atributo de la entidad de destino que se anexa a
cadena de consulta de la dirección URL de redireccionamiento.

Anexar valor de atributo a la cadena de consulta: nombre Requiere establecer En caso de éxito como Redirigir. Un
lógico de atributo nombre lógico de un atributo en la entidad de destino para
obtener el valor que se anexa a cadena de consulta de la
dirección URL de redireccionamiento.

Vea también
Configurar un portal
Definir formularios de entidad
Pasos de formulario web para portales
Tipo de paso Cargar formulario/Cargar pestaña
Tipo de paso condicional
Agregar JavaScript personalizado
Agregar un tipo de paso condicional
25/11/2019 • 2 minutes to read • Edit Online

Un paso de formulario web puede ser de tipo 'Condición', lo que indica que el paso debe evaluar una expresión.
Si expresión se evalúa como true, se mostrará el siguiente paso. Si expresión se evalúa como false y si se ha
especificado el 'Paso siguiente si la condición da error', ese paso se mostrará. La entidad actual es el destino
usado para evaluar la expresión. El origen del registro está configurado de manera predeterminada como el
origen del registro del paso anterior.

Atributos
NOMBRE DESCRIPCIÓN

Condición La expresión condicional que se evaluará

Paso siguiente si la condición da error El tipo de paso condicional, a diferencia de las demás, tiene
dos búsquedas del siguiente paso. La búsqueda
predeterminada del siguiente paso se respetará si la condición
se evalúa como true. Esta propiedad define el siguiente paso
si la condición se evalúa como false.

Los operandos disponibles son los siguientes:

OPERANDO(S) TIPO

=, == Es igual a

!= No es igual

> Mayor que

< Menor que

>= Mayor o igual que

<= Menor o igual que

& Y

| O

! No

=*, ==*, -= Como

!=* No como

Formato
El formato de la expresión es el siguiente:
[nombre lógico de atributo de entidad] [operando] [valor]
Ejemplo:
new_categorycode = 750101
Una condición puede tener varias expresiones. Puede usar paréntesis agrupar expresiones anidadas, por ejemplo:
new_categorycode = 750101 & gendercode = 2
new_categorycode = 750101 & (gendercode = 2 | gendercode = 3)
new_name = Jane Doe
new_twooptionfield = true
new_twooptionfield = false
Vea también
Configurar un portal
Definir formularios de entidad
Pasos de formulario web para portales
Tipo de paso Cargar formulario/Cargar pestaña
Tipo del paso de redireccionamiento
Agregar JavaScript personalizado
Agregar JavaScript personalizado
25/11/2019 • 3 minutes to read • Edit Online

El registro Paso del formulario web contiene un campo denominado JavaScript personalizado que pueda
usarse para almacenar código JavaScript para permitirle ampliar o modificar la función o presentación visual del
formulario.
El bloque personalizado de JavaScript se agregará a la parte inferior de la página justo delante el elemento de
etiqueta de formulario de cierre.

Campos de formulario
El identificador de entrada HTML de un campo de entidad se define con el nombre lógico del atributo. Esto facilita
la selección de un campo, el establecimiento de valores u otras manipulaciones del lado del cliente con jQuery.

$(document).ready(function() {
$("#address1_stateorprovince").val("Saskatchewan");
});

Validación de campos del lado cliente adicional


A veces puede necesitar personalizar la validación de campos en el formulario. El siguiente ejemplo muestra cómo
agregar un validador personalizado. Este ejemplo fuerza al usuario a especificar un correo electrónico solo si el
otro campo para el método preferido de contacto está establecido como Correo electrónico.

NOTE
La validación de campos del lado cliente no se admite en una subcuadrícula.
if (window.jQuery) {
(function ($) {
$(document).ready(function () {
if (typeof (Page_Validators) == 'undefined') return;
// Create new validator
var newValidator = document.createElement('span');
newValidator.style.display = "none";
newValidator.id = "emailaddress1Validator";
newValidator.controltovalidate = "emailaddress1";
newValidator.errormessage = "<a href='#emailaddress1_label'>Email is a required field.</a>";
newValidator.validationGroup = ""; // Set this if you have set ValidationGroup on the form
newValidator.initialvalue = "";
newValidator.evaluationfunction = function () {
var contactMethod = $("#preferredcontactmethodcode").val();
if (contactMethod != 2) return true; // check if contact method is not 'Email'.
// only require email address if preferred contact method is email.
var value = $("#emailaddress1").val();
if (value == null || value == "") {
return false;
} else {
return true;
}
};

// Add the new validator to the page validators array:


Page_Validators.push(newValidator);

// Wire-up the click event handler of the validation summary link


$("a[href='#emailaddress1_label']").on("click", function () {
scrollToAndFocus('emailaddress1_label','emailaddress1'); });
});
}(window.jQuery));
}

Validación general
Al hacer clic en el botón Siguiente/Enviar, se ejecuta una función llamada webFormClientValidate. Puede
ampliar este método para agregar lógica de validación personalizada.

if (window.jQuery) {
(function ($) {
if (typeof (webFormClientValidate) != 'undefined') {
var originalValidationFunction = webFormClientValidate;
if (originalValidationFunction && typeof (originalValidationFunction) == "function") {
webFormClientValidate = function() {
originalValidationFunction.apply(this, arguments);
// do your custom validation here
// return false; // to prevent the form submit you need to return false
// end custom validation.
return true;
};
}
}
}(window.jQuery));
}

Vea también
Configurar un portal
Definir formularios de entidad
Pasos de formulario web para portales
Tipo de paso Cargar formulario/Cargar pestaña
Tipo del paso de redireccionamiento
Tipo de paso condicional
Configurar metadatos de formulario web para los
portales
25/11/2019 • 16 minutes to read • Edit Online

Los metadatos del formulario web contienen la lógica de modificación del comportamiento adicional para
aumentar o reemplazar la funcionalidad de los campos de formulario que de otro modo no es posible conseguir
con las funciones de edición de formulario de entidad nativas de .

Agregar un registro nuevo


1. En el paso del formulario web que tiene campos que desea editar, vaya a Relacionados > Metadatos
2. Seleccione Nuevos metadatos del formulario web.

Propiedades de metadatos del formulario web


Los siguientes atributos proporcionan funciones y estilos adicionales para elementos de un formulario.

NOMBRE DESCRIPCIÓN

Paso de formulario web El paso de formulario web asociado al registro de metadatos


del formulario web.

Tipo Opciones disponibles:


Atributo
Sección
Ficha
Si selecciona Atributo como el valor de Tipo se mostrarán las
opciones correspondientes para editar campos en el
formulario actual representado para el paso relacionado. Si
selecciona Sección como el valor de Tipo se mostrarán las
opciones disponibles para editar una sección del formulario. Si
selecciona Pestaña como el valor de Tipo se mostrarán las
opciones disponibles para editar una pestaña de un
formulario.

Tipo de metadatos de formulario web = Atributo


Se muestran las siguientes propiedades cuando el Tipo seleccionado es 'Atributo'.

NOMBRE DESCRIPCIÓN

Nombre lógico del atributo El nombre lógico del campo de atributo que se va a modificar.

Etiqueta Reemplaza la etiqueta predeterminada asignada al atributo en


la entidad con el texto especificado en esta entrada. Para cada
paquete de idioma instalado y activado para la organización
del entorno de Common Data Service, un campo estará
disponible para especificar el mensaje en el idioma asociado.

Estilo del control


Las siguientes opciones modifican el estilo y funcionalidades de un campo de atributo.

NOMBRE DESCRIPCIÓN

Estilo Uno de los siguientes:


Conjunto de opciones como lista vertical de botones
de radio
Conjunto de opciones como lista horizontal de
botones de radio
Una sola línea de texto como validador de búsqueda
de ubicación geográfica (requiere configuración de
Mapas de Bing - los detalles se encuentran aquí)
Agrupar número entero como suma constante
(requiere Nombre de grupo)
Agrupar número entero como escala de orden de
clasificación sin valores equivalentes (requiere Nombre
de grupo)
Agrupar número entero como escala de orden de
clasificación con valores equivalentes (requiere Nombre
de grupo)
Matriz de opciones múltiples (requiere Nombre de
grupo)
Opciones múltiples (requiere Nombre de grupo)
Agrupar número entero como orden por prioridad
(requiere Nombre de grupo)

Nombre de grupo Un nombre utilizado para agrupar controles como control


compuesto.

Número mínimo seleccionado necesario de opciones múltiples Éstos son los valores mínimos requeridos seleccionados a la
pregunta de varias opciones. Solo se necesita si selecciona el
estilo del control 'Opciones múltiples' está seleccionado.

Número máximo seleccionado de opciones múltiples Este es el número máximo de valores que se permite
seleccionar en la pregunta de opciones múltiples. Solo se
necesita si selecciona el estilo del control 'Opciones múltiples'
está seleccionado.

Total mínimo de suma constante Este es el valor mínimo necesario aplicado a un campo de
respuesta de suma constante. Solo es necesario si el Estilo del
control 'Agrupar número entero como suma constante' está
seleccionado.

Total máximo de suma constante Este es el número máximo de valor que se permite aplicar a
un campo de respuesta suma constante. Solo es necesario si
el Estilo del control 'Agrupar número entero como suma
constante' está seleccionado.

Aleatorizar valores de conjuntos de opciones Si especifica Sí dará lugar a opciones ordenadas


aleatoriamente mostradas para un control de conjunto de
opciones. Aplicable solo a los atributos que sean de tipo
Conjunto de opciones.

Clase de CSS Agrega un nombre de clase CSS personalizado al control.

Rellenar previamente campo


Las siguientes opciones proporcionen un valor predeterminado para campos del formulario.
NOMBRE DESCRIPCIÓN

Omitir valor predeterminado Omite el valor predeterminado del de campo de atributo


especificado. Útil para atributos que son campos de dos
opciones que se representan como botones de opción Sí y No.
Dado que se asigna automáticamente un valor de Sí o No de
forma predeterminada, esta opción permite mostrar
preguntas Sí/No sin una respuesta predefinida.

Tipo Uno de los siguientes:


Valor
Fecha de hoy
Contacto del usuario actual
Si selecciona Valor necesitará especificar un valor en el campo
Valor que se asignará al campo cuando el formulario se
cargue. Al seleccionar la fecha de hoy se asignará la fecha y
hora actuales al campo del atributo. Si selecciona el Contacto
del usuario actual requerirá un Desde atributo que sea un
atributo de la entidad de contacto que se recuperará del
registro de contacto del usuario actual y esté establecido
como el campo de atributo especificado.

Valor Un valor que se asignará al campo cuando el formulario se


cargue.

Desde atributo Un atributo de la entidad de contacto que se recuperará del


registro del usuario del portal actual y se asignará al campo
cuando el formulario se cargue.

Establecer valor al guardar


Las siguientes opciones especifican un valor que se establecerá cuando se guarde el formulario.

NOMBRE DESCRIPCIÓN

Establecer valor al guardar Sí indica que un valor se debe asignar al atributo utilizando la
entrada proporcionada en el campo Valor.
Nota: Se admiten todos los tipos de atributo excepto el
siguiente: Identificador único.

Tipo Uno de los siguientes:


Valor
Fecha de hoy
Contacto del usuario actual
Si selecciona Valor necesitará especificar un valor en el campo
Valor que se asignará al campo cuando el formulario se
cargue. Al seleccionar la fecha de hoy se asignará la fecha y
hora actuales al campo del atributo. Si selecciona el Contacto
del usuario actual requerirá un Desde atributo que sea un
atributo de la entidad de contacto que se recuperará del
registro de contacto del usuario actual y esté establecido
como el campo de atributo especificado.
NOMBRE DESCRIPCIÓN

Valor Valor asignado al atributo cuando el formulario se guarde.


Para campos de dos opciones (booleanos), utilice true o false.
Para el campo Conjunto de opciones, use el valor de entero
para la opción.
Para los campos de búsqueda (EntityReference) use el GUID.
Nota: Si el atributo también está en el formulario, el valor del
usuario se sobrescribirá con este valor.

Desde atributo Un atributo de la entidad de contacto que se recuperará del


registro del usuario del portal actual y se asignará al campo al
guardar.

Validación
La siguiente sección contiene propiedades que modifican diferentes parámetros de validación y mensajes de error.
Para cada paquete de idioma instalado y activado para la organización del entorno de Common Data Service, un
campo estará disponible para especificar el mensaje en el idioma asociado.

NOMBRE DESCRIPCIÓN

Mensaje de error de validación Reemplace el mensaje de error de validación predeterminado


para el campo.

Expresión regular Una expresión regular que se agregará para validar el campo.

Mensaje de error de validación de expresión regular El mensaje de error de validación a mostrar si se produce un
error con la expresión regular validada.

El campo es obligatorio Active esta opción para hacer que el campo de atributo
necesario contenga un valor.

Mensaje de error de validación de campo obligatorio Reemplace el mensaje de error del campo requerido
predeterminado si el campo no contiene un valor.

Mensaje de error de validación de intervalo Reemplaza el mensaje de error de validación del intervalo
predeterminado que se muestra si el valor del campo se
encuentra fuera de los valores mínimo y máximo adecuados
especificados en el atributo de entidad que son de tipo
Número entero, Número decimal, Número de coma flotante o
Divisa.

Mensaje de error del validador de ubicación geográfica Aplicable si el atributo es una sola línea de texto y el estilo del
control especificado es una sola línea de texto como validador
de búsqueda de ubicación geográfica, entonces esto
sobrescribirá el mensaje de error predeterminado que se
muestra si se produce error de la validación de entrada.

Mensaje de error de validación de suma constante Aplicable si el atributo es un tipo de número entero y el estilo
del control especificado es Agrupar número entero como
suma constante, entonces esto sobrescribirá el mensaje de
error predeterminado que se muestra si se produce error de la
validación de entrada.
NOMBRE DESCRIPCIÓN

Mensaje de error de validación de opciones múltiples Aplicable si el atributo es un tipo de dos opciones y el estilo
del control especificado es Opciones múltiples, entonces esto
sobrescribirá el mensaje de error predeterminado que se
muestra si se produce error de validación de entrada.

Mensaje de error de validación de orden de clasificación sin Aplicable si el atributo es un tipo de número entero y el estilo
valores equivalentes del control especificado es Agrupar número entero como
escala de orden de clasificación sin valores equivalentes,
entonces esto sobrescribirá el mensaje de error
predeterminado que se muestra en caso de error de la
validación de entrada.

Descripción e instrucciones
Las siguientes propiedades especifican la ubicación y el contenido de la descripción o instrucciones
personalizadas.

NOMBRE DESCRIPCIÓN

Agregar descripción Sí hace que el texto personalizado se muestre en el formulario


en la ubicación especificada.

Puesto Uno de los siguientes:


Encima del campo
Debajo del campo
Encima de la etiqueta

Usar propiedad de descripción del atributo Seleccione 'Sí' para usar la descripción asignada a los
metadatos de atributo de la entidad. Seleccione 'No' para
proporcionar una descripción personalizada. El valor
predeterminado es 'No'.

Descripción Texto personalizado para mostrar en el formulario. Se usa


conjuntamente cuando Usar propiedad de descripción del
atributo se establece en 'No'. Para cada paquete de idioma
instalado y activado para la organización del entorno de
Common Data Service, un campo estará disponible para
especificar el mensaje en el idioma asociado.

Tipo de metadatos de formulario web = Sección


Se muestran las siguientes propiedades cuando el Tipo seleccionado es igual a 'Sección'.

NOMBRE DESCRIPCIÓN

Nombre de sección El nombre de la sección en el formulario de la entidad que se


modificará.

Etiqueta Reemplaza la etiqueta predeterminada asignada a la sección


en la entidad con el texto especificado en esta entrada. Para
cada paquete de idioma instalado y activado para la
organización del entorno de Common Data Service, un campo
estará disponible para especificar el mensaje en el idioma
asociado.
Tipo de metadatos de formulario web = Pestaña
Se muestran las siguientes propiedades cuando el Tipo seleccionado es igual a 'Pestaña'.

NOMBRE DESCRIPCIÓN

Nombre de pestaña El nombre de la pestaña en el formulario de la entidad que se


modificará.

Etiqueta Reemplaza la etiqueta predeterminada asignada a la pestaña


en la entidad con el texto especificado en esta entrada. Para
cada paquete de idioma instalado y activado para la
organización del entorno de Common Data Service, un campo
estará disponible para especificar el mensaje en el idioma
asociado.

Vea también
Configurar un portal
Definir formularios de entidad
Propiedades del formulario web para portales
Pasos de formulario web para portales
Configuración de la subcuadrícula de formularios web para portales
Configuración de notas para formularios web para portales
Configurar subcuadrículas de formularios Web Forms
para portales
26/11/2019 • 29 minutes to read • Edit Online

Las subcuadrículas del formulario web se configuran de una manera idéntica a las subcuadrículas del formulario
de la entidad: en primer lugar, cree un registro de metadatos para el paso de formulario web que tenga una
subcuadrícula y, a continuación, agregue metadatos de configuración.
Agregar subcuadrículas a los formularios administrados en el portal es fácil: solo tiene que agregar la
subcuadrícula al formulario que está administrando mediante el diseñador de formularios listo para usar y ya ha
terminado. La cuadrícula usará la vista que se especifica en Common Data Service diseñador de formularios,
mostrar solo los registros relacionados si se eligió esa opción, Mostrar opcionalmente una barra de búsqueda e
incluso respetar los permisos de entidad para los portales. No es más fácil mostrar una lista de registros de solo
lectura. Para habilitar las acciones de la cuadrícula (crear, actualizar, eliminar, etc.), debe configurar esas acciones
mediante la configuración de metadatos.

Agregar metadatos de subcuadrícula al formulario


Para agregar metadatos de subcuadrícula a un formulario de entidad, vaya a metadatos del formulario de la
entidad mediante la lista desplegable superior o la subcuadrícula del formulario principal del registro con el que
está trabajando. Más información: definir formularios de entidad.
Para agregar un nuevo registro, seleccione agregar nuevos metadatos del formulariode la entidad.
Para editar un registro existente, seleccione el registro en la cuadrícula. Al seleccionar subcuadrícula como el
valor de tipo se muestra otro atributo, nombre de subcuadrícula.

NOMBRE DESCRIPCIÓN

Nombre de la subcuadrícula Nombre único de la subcuadrícula del formulario relacionado


de la entidad.

Si selecciona la subcuadrícula en el editor de formularios, se mostrará una ventana Propiedades. Contiene un


campo de nombre que se debe usar para asignar al campo nombre de la subcuadrícula en el registro de
metadatos del formulario de la entidad.
Si se especifica un nombre de subcuadrícula válido, se mostrarán los valores de configuración de la subcuadrícula.
De forma predeterminada, solo se muestra la configuración básica . Seleccione Configuración avanzada para
mostrar la configuración adicional.
De forma predeterminada, la mayoría de las configuraciones se muestran contraídas para ahorrar espacio.
Seleccione * * * * para expandir una sección y ver opciones adicionales. Seleccione * * * * para contraer la sección.

Atributos
NOMBRE DESCRIPCIÓN

Configuración básica

Ver acciones Use para agregar botones de acción para las acciones que se
aplican al conjunto de entidades y que aparecerán encima de
la subcuadrícula. Las acciones disponibles son:
A
Download
Asócielos
Al seleccionar una de estas opciones se muestra un área de
configuración para esa acción. Consulte a continuación los
detalles de cada acción.
NOMBRE DESCRIPCIÓN

Acciones de elemento Use para agregar botones de acción para las acciones que se
pueden aplicar a un registro individual y que aparecerán en
cada fila de la subcuadrícula, siempre que los permisos de
entidadhayan concedido el privilegio asociado. Las acciones
disponibles son:
Detalles
Editar
Elimínelos
Flujo
Desasociar
Al seleccionar una de estas opciones, se muestra un área de
configuración para esa acción. Consulte a continuación los
detalles de cada acción.

Reemplazar atributos de columna Se usa para invalidar la configuración de presentación de


columnas individuales en la cuadrícula.
Attribute: nombre lógico de la columna que desea
invalidar.
Nombre para mostrar: nuevo título de columna para
invalidar el valor predeterminado
Width: ancho (en porcentaje o píxeles) de la columna
para reemplazar el valor predeterminado. Vea también
estilo de ancho de columna de cuadrícula. Para
invalidar la configuración de una columna, seleccione
columna y rellene los detalles.

Configuración avanzada

Cargando mensaje Invalida el mensaje HTML predeterminado que aparece


mientras se está cargando la subcuadrícula.

Mensaje de error Invalida el mensaje HTML predeterminado que aparece


cuando se produce un error mientras se carga la
subcuadrícula.

Mensaje de acceso denegado Invalida el mensaje HTML predeterminado que aparece


cuando un usuario no tiene permisos suficientes para leer el
tipo de entidad asociado a la subcuadrícula.

Mensaje vacío Invalida el mensaje HTML que aparece cuando la


subcuadrícula asociada no contiene datos.

Cuadro de diálogo de búsqueda Controla la configuración del cuadro de diálogo que aparece
cuando un usuario activa la acción asociar.

Cuadro de diálogo formulario de detalles Controla la configuración del cuadro de diálogo que aparece
cuando un usuario activa la acción de detalles.

Cuadro de diálogo Editar formulario Controla la configuración del cuadro de diálogo que aparece
cuando un usuario activa la acción de edición.

Cuadro de diálogo Crear formulario Controla la configuración del cuadro de diálogo que aparece
cuando un usuario activa la acción de creación.
NOMBRE DESCRIPCIÓN

Cuadro de diálogo eliminar Controla la configuración del cuadro de diálogo que aparece
cuando un usuario activa la acción de eliminación.

Cuadro de diálogo de error Controla la configuración del cuadro de diálogo que aparece
cuando se produce un error durante cualquier acción.

Clase CSS Especifique una clase o clases CSS que se aplicarán al


elemento HTML que contiene la totalidad del área de la
subcuadrícula, incluidos los botones de acción y cuadrícula.

Grid CSS (clase) Especifique una clase o clases CSS que se aplicarán al
elemento> de la tabla <HTML de la subcuadrícula.

Estilo de ancho de columna de cuadrícula Configura si los valores de ancho de los atributos de columna
de invalidación se especifican en píxeles o como porcentaje.

Crear acción
La habilitación de una acción de creación representa un botón encima de la cuadrícula que, cuando se
selecciona, abre un cuadro de diálogo con un formulario de entidad que permite a un usuario crear un nuevo
registro.
Crear configuración de acción
NOMBRE DESCRIPCIÓN

Configuración básica

Formulario de la entidad Especifica los formularios de entidad y la lógica personalizada


que se usará para crear el nuevo registro. La lista desplegable
incluye todos los formularios de entidad que están
configurados para el tipo de entidad de subcuadrícula.
Nota: Si el tipo de entidad de la subcuadrícula no tiene
ningún formulario de entidad, la lista desplegable aparecerá
vacía. Si no se proporciona ningún formulario de entidad para
la acción de creación, se omitirá y el botón no se representará
en el formulario de la entidad de la subcuadrícula.

Configuración avanzada

Etiqueta del botón Invalida la etiqueta HTML que se muestra en el botón crear
acción situado encima de la subcuadrícula.

Información sobre herramientas del botón Invalida el texto de información sobre herramientas que
aparece cuando el usuario apunta al botón crear acción.

Cuadro de diálogo Crear formulario Configuración avanzada


NOMBRE DESCRIPCIÓN

Cargando mensaje Invalida el mensaje que aparece mientras se carga el cuadro


de diálogo.
NOMBRE DESCRIPCIÓN

Título Invalida el código HTML que aparece en la barra de título del


cuadro de diálogo.

Descartar texto de Sr Invalida el texto del lector de pantalla asociado al botón


descartar del cuadro de diálogo.

Tamaño Especifica el tamaño del cuadro de diálogo Crear formulario.


Las opciones son predeterminadas, grandes y pequeñas. El
tamaño predeterminado es grande.

Clase CSS Especifique una clase o clases CSS que se aplicarán al cuadro
de diálogo resultante.

Title CSS (clase) Especifique una clase o clases CSS que se aplicarán a la barra
de título del cuadro de diálogo resultante.

Acción de descarga
Al habilitar una acción de descarga , se presenta un botón encima de la cuadrícula que, cuando se selecciona,
descarga los datos de la subcuadrícula en un archivo Excel (. xlsx).
Descargar configuración de acción
NOMBRE DESCRIPCIÓN

Configuración básica

Ninguna

Configuración avanzada

Etiqueta del botón Invalida la etiqueta HTML que se muestra en el botón


Descargar acción situado encima de la subcuadrícula.

Información sobre herramientas del botón Invalida el texto de información sobre herramientas que
aparece cuando el usuario apunta al botón Descargar acción.

Asociar acción
Al habilitar una acción de asociación , se muestra un botón encima de la cuadrícula que, cuando se selecciona,
abre una tabla de entidades que el usuario puede asociar al registro de la entidad que se muestra actualmente en
el formulario de la entidad, siempre que los datos anexados y Los permisos de entidad se han concedido a los
privilegios appendto para los tipos de entidad aplicables.
Asociar configuración de acción
NOMBRE DESCRIPCIÓN

Configuración básica
NOMBRE DESCRIPCIÓN

Visores Especifica la vista (consulta guardada) que se utilizará para


buscar y mostrar la lista de entidades válidas.
Nota: Si el tipo de entidad de la subcuadrícula no tiene
ninguna consulta guardada, la lista desplegable aparecerá
vacía. Si no se proporciona ninguna vista para la acción de
asociación, se omitirá y el botón no se representará en el
formulario de la entidad de la subcuadrícula.

Configuración avanzada

Etiqueta del botón Invalida la etiqueta HTML que se muestra en el botón asociar
acción situado encima de la subcuadrícula.

Información sobre herramientas del botón Invalida el texto de información sobre herramientas que
aparece cuando el usuario apunta al botón asociar acción.

Configuración avanzada del cuadro de diálogo de búsqueda


NOMBRE DESCRIPCIÓN

Título Invalida el código HTML que aparece en la barra de título del


cuadro de diálogo.

Texto del botón primario Invalida el código HTML que aparece en el botón principal
(agregar) del cuadro de diálogo.

Cerrar texto del botón Invalida el código HTML que aparece en el botón Cerrar
(Cancelar) del cuadro de diálogo.

Descartar texto de Sr Invalida el texto del lector de pantalla asociado al botón


descartar del cuadro de diálogo.

Tamaño Especifica el tamaño del cuadro de diálogo asociar. Las


opciones son predeterminadas, grandes y pequeñas. El
tamaño predeterminado es grande.

Clase CSS Especifique una clase o clases CSS que se aplicarán al cuadro
de diálogo resultante.

Title CSS (clase) Especifique una clase o clases CSS que se aplicarán a la barra
de título del cuadro de diálogo resultante.

Clase CSS de botón principal Especifique una clase o clases CSS que se aplicarán al botón
principal (agregar) del cuadro de diálogo.

Botón Cerrar (clase CSS) Especifique una clase o clases CSS que se aplicarán al botón
Cerrar (Cancelar) del cuadro de diálogo.

Seleccionar el título de los registros Invalida el código HTML que aparece en el título del área de
selección de registros.

Mensaje de error predeterminado Reemplaza el mensaje que aparece cuando se produce un


error al asociar la entidad o entidades seleccionadas.
NOMBRE DESCRIPCIÓN

Opciones de cuadrícula Especifique la configuración de la apariencia de la cuadrícula


de entidades. Consulte a continuación las opciones.

Cuadro de diálogo de búsqueda configuración avanzada de opciones de cuadrícula


NOMBRE DESCRIPCIÓN

Cargando mensaje Invalida el mensaje que aparece mientras se carga la


cuadrícula de entidades.

Mensaje de error Invalida el mensaje que aparece cuando se produce un error


al cargar la cuadrícula de entidades.

Mensaje de acceso denegado Invalida el mensaje que aparece cuando un usuario no tiene
suficientes permisos de entidad para ver la cuadrícula de
entidades.

Mensaje vacío Invalida el mensaje que aparece cuando no hay entidades que
se puedan asociar al formulario de la entidad actual.

Clase CSS Especifique una clase o clases CSS que se aplicarán al área de
cuadrícula asociada.

Grid CSS (clase) Especifique una clase o clases CSS que se aplicarán a la tabla
<> elemento de la cuadrícula asociada.

Acción de detalles
La habilitación de una acción de detalles permite al usuario ver un formulario de entidad de solo lectura que
está enlazado a datos con el registro de la fila seleccionada de la subcuadrícula.
Configuración de la acción de detalles
NOMBRE DESCRIPCIÓN

Configuración básica

Formulario de la entidad Especifica el formulario de la entidad que se utilizará para ver


los detalles del registro seleccionado. La lista desplegable
incluirá todos los formularios de entidad que estén
configurados para el tipo de entidad de la subcuadrícula.
Nota: Si el tipo de entidad de la subcuadrícula no tiene
ningún formulario de entidad, la lista desplegable aparecerá
vacía. Si no se proporciona ningún formulario de entidad para
la acción de detalles, se omitirá y el botón no se representará
en la subcuadrícula.

Configuración avanzada
NOMBRE DESCRIPCIÓN

Nombre de parámetro de cadena de consulta de ID. de Especifica el nombre del parámetro de cadena de consulta que
registro se usará para seleccionar la entidad que se va a ver en el
formulario de la entidad seleccionada. Debe coincidir con el
valor del nombre de parámetro de la cadena de consulta de
ID. de registro del formulario de la entidad. El valor
predeterminado de este campo, tanto aquí como en
configuración de formulario de la entidad, es ID.

Etiqueta del botón Invalida la etiqueta HTML para esta acción mostrada en la fila
de la subcuadrícula.

Información sobre herramientas del botón Invalida el texto de información sobre herramientas que
aparece cuando el usuario apunta al botón para esta acción
que se muestra en la fila de la subcuadrícula.

Cuadro de diálogo formulario de detalles configuración avanzada


NOMBRE DESCRIPCIÓN

Cargando mensaje Invalida el código HTML que aparece cuando se carga el


cuadro de diálogo.

Título Invalida el código HTML que aparece en la barra de título del


cuadro de diálogo.

Descartar texto de Sr Invalida el texto del lector de pantalla asociado al botón


descartar del cuadro de diálogo.

Tamaño Especifica el tamaño del cuadro de diálogo Detalles. Las


opciones son predeterminadas, grandes y pequeñas. El
tamaño predeterminado es grande.

Clase CSS Especifique una clase o clases CSS que se aplicarán al cuadro
de diálogo resultante.

Title CSS (clase) Especifique una clase o clases CSS que se aplicarán a la barra
de título del cuadro de diálogo resultante.

Editar acción
La habilitación de una acción de edición permite a un usuario ver un formulario de entidad editable que está
enlazado a datos con el registro de la fila seleccionada de la subcuadrícula, si los permisos de la entidadhan
concedido el privilegio de escritura.
Editar configuración de acción
NOMBRE DESCRIPCIÓN

Configuración básica
NOMBRE DESCRIPCIÓN

Formulario de la entidad Especifica el formulario de la entidad que se usará para editar


el registro seleccionado. La lista desplegable incluirá todos los
formularios de entidad que estén configurados para el tipo de
entidad de la subcuadrícula.
Nota: Si el tipo de entidad de la subcuadrícula no tiene
ningún formulario de entidad, la lista desplegable aparecerá
vacía. Si no se proporciona ningún formulario de entidad para
la acción de edición, se omitirá y el botón no se representará
en la subcuadrícula.

Configuración avanzada

Nombre de parámetro de cadena de consulta de ID. de Especifica el nombre del parámetro de cadena de consulta que
registro se usará para seleccionar la entidad que se va a editar en el
formulario de la entidad seleccionada. Debe coincidir con el
valor del nombre de parámetro de la cadena de consulta de
ID. de registro del formulario de la entidad. El valor
predeterminado de este campo, tanto aquí como en
configuración de formulario de la entidad, es ID.

Etiqueta del botón Invalida la etiqueta HTML para esta acción mostrada en la fila
de la subcuadrícula.

Información sobre herramientas del botón Invalida el texto de información sobre herramientas que
aparece cuando el usuario apunta al botón para esta acción
que se muestra en la fila de la subcuadrícula.

Cuadro de diálogo Editar formulario Configuración avanzada


NOMBRE DESCRIPCIÓN

Cargando mensaje Invalida el código HTML que aparece cuando se carga el


cuadro de diálogo.

Título Invalida el código HTML que aparece en la barra de título del


cuadro de diálogo.

Descartar texto de Sr Invalida el texto del lector de pantalla asociado al botón


descartar del cuadro de diálogo.

Tamaño Especifica el tamaño del cuadro de diálogo de edición. Las


opciones son predeterminadas, grandes y pequeñas. El
tamaño predeterminado es grande.

Clase CSS Especifique una clase o clases CSS que se aplicarán al cuadro
de diálogo resultante.

Title CSS (clase) Especifique una clase o clases CSS que se aplicarán a la barra
de título del cuadro de diálogo resultante.

Eliminar acción
La habilitación de una acción de eliminación permite al usuario eliminar permanentemente la entidad
representada por una fila en la subcuadrícula, si los permisos de la entidadhan concedido el privilegio de
eliminación.
Eliminar configuración de acción
NOMBRE DESCRIPCIÓN

Configuración básica

Ninguna

Configuración avanzada

Confirmación Invalida el mensaje HTML de confirmación que se muestra


cuando el usuario activa la acción de eliminación.

Etiqueta del botón Invalida la etiqueta HTML para esta acción mostrada en la fila
de la subcuadrícula.

Información sobre herramientas del botón Invalida el texto de información sobre herramientas que
aparece cuando el usuario apunta al botón para esta acción
que se muestra en la fila de la subcuadrícula.

Eliminar configuración avanzada del cuadro de diálogo


NOMBRE DESCRIPCIÓN

Título Invalida el código HTML que aparece en la barra de título del


cuadro de diálogo.

Texto del botón primario Invalida el código HTML que aparece en el botón principal
(eliminar) del cuadro de diálogo.

Cerrar texto del botón Invalida el código HTML que aparece en el botón Cerrar
(Cancelar) del cuadro de diálogo.

Descartar texto de Sr Invalida el texto del lector de pantalla asociado al botón


descartar del cuadro de diálogo.

Tamaño Especifica el tamaño del cuadro de diálogo eliminar. Las


opciones son predeterminadas, grandes y pequeñas. El
tamaño predeterminado es default.

Clase CSS Especifique una clase o clases CSS que se aplicarán al cuadro
de diálogo resultante.

Title CSS (clase) Especifique una clase o clases CSS que se aplicarán a la barra
de título del cuadro de diálogo resultante.

Clase CSS de botón principal Especifique una clase o clases CSS que se aplicarán al botón
principal (eliminar) del cuadro de diálogo.

Botón Cerrar (clase CSS) Especifique una clase o clases CSS que se aplicarán al botón
Cerrar (Cancelar) del cuadro de diálogo.
Acción de flujo de trabajo
La habilitación de una acción de flujo de trabajo permite a un usuario ejecutar un flujo de trabajo a petición en
el registro seleccionado en la subcuadrícula. Puede agregar cualquier número de acciones de flujo de trabajo a los
metadatos de la subcuadrícula.
Configuración de la acción de flujo de trabajo
NOMBRE DESCRIPCIÓN

Configuración básica

Flujo Especifica el flujo de trabajo a petición que se ejecutará


cuando el usuario Active esta acción.
Nota: Si el tipo de entidad de la subcuadrícula no tiene
ningún flujo de trabajo, la lista desplegable aparecerá vacía. Si
no se proporciona ningún flujo de trabajo para la acción de
flujo de trabajo, se omitirá y el botón no se representará en la
subcuadrícula.

Etiqueta del botón Establece la etiqueta HTML para esta acción mostrada en la
fila de la subcuadrícula. Esta configuración es obligatoria.

Configuración avanzada

Información sobre herramientas del botón Invalida el texto de información sobre herramientas que
aparece cuando el usuario apunta al botón para esta acción
que se muestra en la fila de la subcuadrícula.

Acción de desasociación
Habilitar una acción de desasociación permite al usuario quitar el vínculo entre el registro representado por el
formulario de la entidad que se está viendo actualmente y el registro representado por la fila seleccionada en la
subcuadrícula, siempre y cuando los privilegios anexar y anexar tengan se han concedido por los permisos de
entidad para los tipos de entidad aplicables.
Configuración de la acción de desasociación
NOMBRE DESCRIPCIÓN

Configuración básica

Ninguna

Configuración avanzada

Etiqueta del botón Invalida la etiqueta HTML para esta acción mostrada en la fila
de la subcuadrícula.

Información sobre herramientas del botón Invalida el texto de información sobre herramientas que
aparece cuando el usuario apunta al botón para esta acción
que se muestra en la fila de la subcuadrícula.

Vea también
Configuración de un portal
Definir formularios de entidad
Propiedades de formularios Web para portales
Pasos de Web Form para portales
Metadatos de formularios Web Forms para portales
Configuración de notas para formularios Web Forms para portales
Agregar ubicación geográfica
25/11/2019 • 5 minutes to read • Edit Online

La ubicación geográfica es el identificador de la ubicación geográfica del mundo real de un objeto. La ubicación
geográfica está estrechamente relacionada con el uso de los sistemas de posicionamiento, pero pone un mayor
énfasis en determinar una ubicación completa (por ejemplo, la dirección de la calle) en lugar de simplemente un
conjunto de coordenadas geográficas. La palabra ubicación geográfica también puede significar las coordenadas
de latitud y longitud de una ubicación específica.
Un formulario administrado se puede configurar para mostrar un control de mapa para que se muestre una
ubicación existente como una chincheta en un mapa o proporcionar la capacidad de que el usuario especifique
una ubicación.

Si el formulario o el campo de línea de dirección son editables y este campo está en blanco, cuando se cargue la
página se preguntará al usuario si deseará compartir la ubicación. Si elije compartir la ubicación, el mapa se
actualizará con su ubicación detectada actualmente. El usuario puede refinar la ubicación de la chincheta
arrastrándola. Si el usuario elige no compartir la ubicación puede especificar manualmente la ubicación en los
campos proporcionados y se pedirá al servicio de asignación que busque la ubicación y actualice la latitud y la
longitud, así como que recoloque la chincheta en el mapa.

Agregar ubicación geográfica


Para agregar la funcionalidad de ubicación geográfica a un formulario administrado, las siguientes tareas se
deben completar.
Personalización de formularios
Edite el formulario de entidad con el diseñador de formularios y realice las modificaciones siguientes:
1. Cree una sección nueva y proporcione una etiqueta adecuada, por ejemplo, Mapa. Esta sección contendrá el
mapa.
2. Establezca el nombre de la sección en sección_mapa o un nombre que termine con sección_mapa, por
ejemplo, el contoso_sección_mapa. Este nombre es importante ya que el motor de formularios busca una
sección con este nombre para determinar cuándo generar un mapa.
3. Agregue un campo nuevo o existente que guardará la dirección con formato y la agregará a la sección Mapa
creada en el paso anterior.
4. Cree una sección nueva y proporcione una etiqueta adecuada, por ejemplo, Ubicación. Esta sección contendrá
los campos de dirección para la ubicación seleccionada.
5. Agregue los campos de dirección necesarios en la sección Ubicación creada en el paso anterior:
Línea de dirección
Ciudad
Condado
Estado o provincia
País o región
Código postal
Latitud
Longitud
El formulario resultante debe parecerse al siguiente. Puede elegir diferentes nombres para mostrar de estos
campos. También puede elegir diseñar estas secciones si lo prefiere.

Configuraciones de sitios
La ubicación geográfica con la funcionalidad de mapa en los formularios administrados requiere configuración
para completar solicitudes con el punto de conexión de REST de servicio de asignación. La siguiente
configuración de ubicaciones se usa para configurar el servicio de ubicación.

NOMBRE VALOR

Mapas de Bing/credenciales Clave exclusiva para autentificar solicitudes a API de Mapas de


Bing. Visite www.bingmapsportal.com para crear una cuenta
de mapas de Bing y para obtener una clave. Requerido.

Mapas de Bing/URL rest Dirección URL de API de REST de Mapas de Bing. Opcional. Si
no se especifica un valor, se utiliza el
https://dev.virtualearth.net/REST/v1/Locations
predeterminado.

Configuraciones de campos
El control de mapa requiere configuración adicional para indicarle cuáles son los ID de los diferentes campos de
ubicación para poder asignarles valores o recuperar valores. La configuración depende del tipo de formulario
administrado.
Para los formularios de entidad, consulte Configuración de ubicación geográfica para formularios de
entidad.
Para formularios web, consulte Configuración de ubicación geográfica para formularios web.
Trabajar con plantillas de Liquid
25/11/2019 • 2 minutes to read • Edit Online

Liquid es un lenguaje de plantilla de código abierto integrado en portales. Puede utilizarse para agregar contenido
dinámico a páginas, y para crear una gran variedad de plantillas personalizadas. Con Liquid puede:
Agregar contenido dinámico directamente al campo Copiar de una página web o el contenido de un
fragmento de contenido.
Almacenar contenido de origen utilizando plantillas web, completamente con la configuración desde
PowerApps, para uso en todo el sistema de administración de contenido de los portales de PowerApps.
Generar un encabezado de página web y una barra de navegación principal, completamente con la
configuración desde PowerApps.
Vea también
Almacenar contenido de origen con plantillas web
Descripción de los operadores de Liquid
Tipos de Liquid
Operadores condicionales de Liquid
Objetos de Liquid
Etiquetas de Liquid
Filtros de Liquid
Almacenar contenido de origen con plantillas web
25/11/2019 • 11 minutes to read • Edit Online

La plantilla web es una entidad de PowerApps (adx_webtemplate), que se incluye con los portales de
PowerApps, que se usa para almacenar contenido de origen de la plantilla. Una plantilla web contendrá
normalmente Liquid para representación de contenido dinámico, y es la entidad central usada para integrar
plantillas de Liquid con el resto del sistema de portales de PowerApps.
Las plantillas web se pueden incluir en otro contenido o combinar con otras mediante etiquetas de plantilla, y
se hace referencia a ellas en estas etiquetas mediante el atributo Nombre. También se pueden usar para crear
plantillas de página personalizadas completas, o para crear encabezados o pies de página personalizados para
el sitio web del portal.

Atributos de plantilla de web

Nombre Nombre de la plantilla. Usado para hacer referencia a esta


plantilla cuando se incluye en otro contenido, o es ampliado
por otras plantillas.

Origen El contenido de origen de la plantilla. En PowerApps, un


editor de código de origen con resalto de sintaxis y otras
funciones de edición de código se proporciona para este
campo.

Tipo MIME Opcionalmente proporciona un tipo MIME para el contenido


de la plantilla. Si no se ofrece ninguno, se da por hecho un
tipo de texto/html. Esta valor se usará solo en casos en que
la plantilla esté asociada a una plantilla de página, y controla
la representación de todo el contenido de esa plantilla.

Plantillas web como plantillas de página


Las plantillas web pueden usarse junto con plantillas de página para crear nuevas plantillas para el sistema de
administración de contenido de los portales de PowerApps. Esto se puede hacer completamente desde
PowerApps, sin necesidad de escribir código .NET o de volver a implementar la aplicación de portal.
Para crear una nueva plantilla de página a partir de una plantilla web, seleccione el Tipo de Plantilla web
cuando cree un nuevo registro de plantilla de página. Luego seleccione una Plantilla web.
Observe la opción Usar encabezado y el pie de página del sitio web (que está activada de forma
predeterminada). Si esta opción está activada, la plantilla web controlará la representación de todo el contenido
de página entre el encabezado y pie de página del sitio web global. Si se desactiva esta opción, la plantilla web
será el responsable de representar la respuesta completa ߝ en caso de que esté representando HTML, lo que
implica todo desde el doctype hasta las etiquetas <html> raíz, y todo lo que hay en medio.
Si bien los casos de uso más comunes para plantillas web serán representar HTML, la representación de la
respuesta completa (desactivando Usar encabezado y el pie de página del sitio web) le ofrece la opción de
representar cualquier formato basado en texto que elija. Aquí es donde el atributo Tipo MIME de la plantilla
web pasa a ser relevante. Cuando se representa una plantilla de página que no usa el encabezado y el pie de
página del sitio web, el encabezado Tipo de contenido de respuesta HTTP se establecerá con el tipo MIME de la
plantilla web asociada. (texto/html se usará si no se proporciona un Tipo MIME.) Esto le da una gran variedad
de opciones para representar contenido no HTML utilizando Liquid. Un caso de uso común sería representar
una fuente RSS, estableciendo un tipo MIME de application/rss+xml.

Plantillas web como encabezados y pies de página de página web


Las plantillas web también se pueden usar para reemplazar el encabezado y el pie de página globales usados
por un portal de PowerApps. Para ello, establezca el campo Plantilla de encabezado o Plantilla de pie de
página de la página web en la plantilla web de su elección. Tenga en cuenta que si reemplaza el Encabezado
del sitio web, la plantilla seleccionada asumirá la responsabilidad de representar la navegación principal, los
vínculos de inicio/cierre de sesión, la interfaz de búsqueda, etc. para los elementos de la interfaz del sitio que
suele gestionar la plantilla de encabezado predeterminada.

Plantillas web integradas


Hay un conjunto de plantillas de Liquid preelaboradas disponibles en los portales de PowerApps. Para usarlos,
debe incluirlos por nombre, mediante la siguiente lista como referencia.

NOMBRE DESCRIPCIÓN CÓDIGO

Anuncio Esta plantilla representa un anuncio {% include 'ad' ad_name:'Name'


por nombre, o un anuncio aleatorio de %}{% include 'ad'
ad_placement_name:'Placement
una ubicación de anuncio. Name' %}

Blogs Esta plantilla representa las entradas {% include 'blogs' %}


de blog recientes de un grupo de
listas.

Rutas de navegación Esta plantilla representa vínculos de {% include 'breadcrumbs' %}


páginas antecesoras hacia la página
principal desde la página actual.

Grupo de listas de vínculos Esta plantilla representa vínculos a {% include


secundarios todas las página secundarias de la 'child_link_list_group' %}{%
include 'child_link_list_group'
página actual en un grupo de listas. title_only:true %}{% include
'child_link_list_group'
image_width:'64px',
image_height:'64px' %}

Eventos: próximos Esta plantilla representa vínculos a {% include 'events_upcoming' %}


eventos que tienen lugar entre ahora {% include 'events_upcoming'
number_of_days_in_advance:60 %}
y 60 días a partir de ahora.

Foros Esta plantilla representa una lista de {% include 'forums' %}


foros del sitio web con su número
respectivo de hilos y entradas.

Diseño 1 columna Esta plantilla representa un diseño de {% extends 'layout_1_column' %}


una sola columna que contiene rutas {% block main %}... {% endblock
%}
de navegación, el título de página y el
contenido del texto de la página.
NOMBRE DESCRIPCIÓN CÓDIGO

Diseño 2 columnas izquierda ancha Esta plantilla representa un diseño de {% extends


dos columnas. La columna izquierda es 'layout_2_column_wide_left' %}{%
block main %}...{% endblock %}{%
más ancha que la derecha. Contiene block aside %}...{% endblock %}
rutas de navegación, título de página
en la parte superior de la página y el
contenido de texto de la página en la
columna de la izquierda.

Diseño 2 columnas derecha ancha Esta plantilla representa un diseño de {% extends


dos columnas. La columna derecha es 'layout_2_column_wide_right' %}
{% block main %}...{% endblock
más ancha que la izquierda. Contiene %}{% block aside %}...{%
rutas de navegación, título de página endblock %}
en la parte superior de la página y el
contenido de texto de la página en la
columna de la derecha.

Diseño 3 columnas central ancha Esta plantilla representa un diseño de {% extends


tres columnas. La columna central es 'layout_3_column_wide_middle' %}
{% block left_aside %}...{%
más ancha que la izquierda y la endblock %}{% block main %}...{%
derecha. El diseño contiene rutas de endblock %}{% block right_aside
navegación y el título de página en la %}...{% endblock %}
parte superior de la página y el
contenido de texto de la página se
encuentra en la columna central.

Texto de página Esta plantilla representa el HTML del {% include 'page_copy' %}


contenido de texto editable de la
página y admite líquido insertado.

Encabezado de página Esta plantilla representa el título de {% include 'page_header' %}


página.

Sondeo Esta plantilla representa un sondeo {% include 'poll'


por nombre, o un sondeo aleatorio de poll_name:'Name' %}{% include
'poll'
una ubicación de sondeo. poll_placement_name:'Placement
Name' %}

Búsqueda Esta plantilla representa un formulario {% include 'search' %}


básico de búsqueda con una sola
entrada de texto y un botón de
búsqueda.

Navegación lateral Esta plantilla representa una {% include 'side_navigation' %}


navegación de estilo vista de árbol {% include 'side_navigation'
depth_offset:1 %}
vertical. Tiene vínculos a las páginas
antecesoras hacia el primer nivel (o el
desplazamiento de profundidad
especificado), vínculos a las páginas del
mismo nivel que la página actual y
vínculos a las páginas secundarias de
la página actual.

Fragmento Esta plantilla representa un fragmento {% include 'snippet'


de contenido HTML editable por snippet_name:'Name' %}
nombre.
NOMBRE DESCRIPCIÓN CÓDIGO

Navegación superior Esta plantilla representa una barra de {% include 'top_navigation' %}


navegación editable con menús
desplegables para el conjunto de
vínculos web de navegación principal.

Grupo de listas de vínculos web Esta plantilla representa un grupo de {% include 'weblink_list_group'
listas de vínculos para un conjunto de weblink_set_name:'Name' %}
vínculos web.

Vea también
Descripción de los operadores de Liquid
Tipos Liquid
Condicional
Objetos de Liquid
Etiquetas de Liquid
Filtros de Liquid
Descripción de los operadores de Liquid
25/11/2019 • 2 minutes to read • Edit Online

Liquid tiene acceso a todos los operadores lógicos y de comparación comunes. Estos pueden usarse en etiquetas
como si y a menos que.

Operadores básicos
== ES IGUAL A

!= No es igual a

> Mayor que

< Menor que

>= Mayor o igual que

<= Menor o igual que

o Condición A o condición B

y Condición A y condición B

contiene
contains comprueba la presencia de una subcadena dentro de una cadena.

{% if page.title contains 'Product' %}

The title of this page contains the word Product.

{% endif %}

contains también puede comprobar la presencia de una cadena dentro de una matriz de cadenas.

startswith
contains comprueba si una cadena empieza con una subcadena determinada.

{% if page.title startswith 'Profile' %}

This is a profile page.

{% endif %}

endswith
endswith comprueba si una cadena termina con una subcadena determinada.
{% if page.title endswith 'Forum' %}

This is a forum page.

{% endif %}

Vea también
Almacenar contenido de origen con plantillas web
Tipos Liquid
Condicional
Objetos de Liquid
Etiquetas de Liquid
Filtros de Liquid
Tipos de Liquid disponibles
25/11/2019 • 2 minutes to read • Edit Online

Los objetos de Liquid pueden devolver uno de estos siete tipos básicos: Cadena, Número, Booleano, Matriz,
Diccionario, Fecha y hora y Nulo. Las variables de Liquid pueden inicializarse mediante las etiquetas assign o
capture.

Cadena
Una cadena se declarada incluyendo texto entre comillas sencillas o dobles.

{% assign string_a = Hello World! %}

{% assign string_b = 'Single quotes work too.' %}

Obtenga el número de caracteres de una cadena con la propiedad size.

{{ string_a.size }} <!-- Output: 12 -->

Número
Los números pueden ser enteros o flotantes.

{% assign pi = 3.14 %}

{% if page.title.size > 100 %}

This page has a long title.

{% endif %}

Boolean
Un booleano es true o false.

{% assign x = true %}

{% assign y = false %}

{% if x %}

This will be rendered, because x is true.

{% endif %}

Matriz
Una matriz alberga una lista de valores de cualquier tipo. Puede obtener acceso a un elemento dado por índice
(basado en cero) utilizando [ ], iterarlo utilizando la etiqueta for, y obtener el número de elementos en la matriz
mediante la propiedad size.
{% for view in entitylist.views %}

{{ view.name }}

{% endfor %}

{{ entitylist.views[0] }}

{% if entitylist.views.size > 0 %}

This entity list has {{ entitylist.views.size }} views.

{% endif %}

Diccionario
Los diccionarios albergan una colección de valores a los que se pueden acceder con una clave de cadena. Puede
obtener acceso a un elemento dado por clave de cadena utilizando [ ], iterarlo utilizando la etiqueta for, y
obtener el número de elementos en el diccionario mediante la propiedad size.

{{ request.params[ID] }}

{% if request.params.size > 0 %}

The request parameters collection contains some items.

{% endif %}

DateTime
Un objeto de fecha y hora representa una fecha y una hora específicas.

{{ page.modifiedon | date: 'f' }}

Null
Nulo representa un valor vacío o inexistente. Los resultados que intentan devolver un valor nulo no
representarán nada. Se tratarán como false en las condiciones.

{% if request.params[ID] %}

This will render if the ID request parameter is NOT null.

{% endif %}

Vea también
Almacenar contenido de origen con plantillas web
Descripción de los operadores de Liquid
Condicional
Objetos de Liquid
Etiquetas de Liquid
Filtros de Liquid
Operadores condicionales de Liquid disponibles
25/11/2019 • 2 minutes to read • Edit Online

Cuando se usa en instrucciones condicionales (si, a menos que), algunos valores de Liquid se tratan como true, y
otros como false.
En Liquid, null y el valor booleano false se tratan como false; todo lo demás se trata como true. Cadenas vacías,
matrices vacías, etc. se tratan como true. Por ejemplos:

{% assign empty_string = %}
{% if empty_string %}
<p>This will render.</p>
{% endif %}

Puede comprobar cadenas y matrices vacías mediante el vacío de valor especial si es necesario.

{% unless page.title == empty %}


<h1>{{ page.title }}</h1>
{% endunless %}

También puede probar el tamaño de Tipos LiquidTipos Liquid, o Tipos Liquid con la propiedad especial size.

{% if page.children.size > 0 %}
<ul>
{% for child in page.children %}
<li>{{ child.title }}</li>
{% endfor %}
</ul>
{% endif %}

Resumen
VERDADERO FALSO

VERDADERO ×

FALSO ×

Null ×

Cadena ×

cadena vacía ×

0 ×

1, 3.14 ×

matriz o diccionario ×
VERDADERO FALSO

matriz o diccionario vacío ×

Objeto ×

Vea también
Almacenar contenido de origen con plantillas web
Descripción de los operadores de Liquid
Tipos Liquid
Objetos de Liquid
Etiquetas de Liquid
Filtros de Liquid
Objetos de Liquid disponibles
25/11/2019 • 74 minutes to read • Edit Online

Los objetos de Liquid contienen atributos para emitir contenido dinámico a la página. Por ejemplo, el objeto Page
tiene un atributo llamado Title que se puede usar para emitir el título de la página actual.
Para obtener acceso a un atributo de objeto por nombre, use un punto . Para generar el atributo de un objeto en
una plantilla, inclúyalo entre {{ y }}.

{{ page.title }}

También se puede acceder a los atributos de un objeto con un nombre de cadena y "[]". Esto es útil en casos en
que el atributo deseado se determine dinámicamente, o el nombre de atributo contenga caracteres, espacios,
caracteres especiales, etc. que invalidarían el uso de la sintaxis.

{{ page[title] }}

{% assign attribute_name = Name with spaces %}

{{ object[attribute_name] }}

Los siguientes objetos se pueden usar y acceder a ellos en cualquier lugar de cualquier plantilla.

OBJETO DESCRIPCIÓN

entities Permite cargar cualquier entidad PowerApps por Id. Más


información: entidades

now Un objeto de fecha/hora que hace referencia a la hora UTC


actual, en el momento que se representa la plantilla.
Nota: este valor es almacenado en la memoria caché de la
aplicación web del portal y no siempre se actualiza. Más
información: Filtros por fecha

página Hace referencia a la página de solicitud del portal actual. El


objeto page proporciona acceso a los aspectos como rutas de
navegación para la página actual, el título o la dirección URL
de la página actual, y cualquier otro atributo o entidad
relacionada de registro de PowerApps subyacente. Más
información: página

params Un acceso directo adecuado para request.params. Más


información: solicitud

solicitud Contiene información acerca de la solicitud HTTP actual. Más


información: solicitud

configuración Permite cargar cualquier configuración de sitio por nombre.


Más información: configuración

sitemap Permite el acceso al mapa del sitio del portal. Más


información: mapa del sitio
OBJETO DESCRIPCIÓN

marcadores de sitio Permite cargar cualquier marcador de sitio por nombre. Más
información: marcadores de sitio

fragmentos Permite cargar cualquier fragmento de contenido por


nombre. Más información: snippets

Usuario Hace referencia al usuario del portal actual, que permite el


acceso a todos los atributos del registro de contacto de
PowerApps subyacente. Si ningún usuario ha iniciado sesión,
esta variable será null. Más información: usuario

weblinks Permite cargar cualquier Conjunto de vínculos web por


nombre o Id. Más información: weblinks

sitio web Hace referencia al registro de sitio web del portal, que
permite el acceso a todos los atributos del registro del sitio
web de PowerApps (adx_website) para el portal. Más
información: sitio web

ads
Proporciona la capacidad de acceder y representar un anuncio.
El objeto ads permite seleccionar un anuncio o ubicación de anuncio específico:

<div>

{% assign ad = ads[Ad Name] %}

<h4>{{ ad.title }}</h4>

<a href={{ ad.redirect_url }}>

<img src={{ ad.image.url }} alt={{ ad.image.alternate_text }} />

</a>

</div>

Atributos de ads
ATRIBUTO DESCRIPCIÓN

placements Devuelve el objeto de ubicaciones de anuncios.

[nombre o id de anuncio] Puede obtener acceso a cualquier anuncio por sus


propiedades de nombre o id.
{% assign ad = ads[Ad Name] %}
{% assign ad = ads["da8b8a92-2ee6-476f-8a21-
782b047ff460"] %}

Atributos de Ad Placements
ATRIBUTO DESCRIPCIÓN

[nombre o identificador de colocación de anuncio] Puede obtener acceso a cualquier ubicación de anuncios por
sus propiedades de nombre o id.
{% assign placement = ads.placements[Placement Name
or Id] %}
{% assign placement = ads.placements[2423d713-abb3-
44c3-8a7d-c445e16fccad] %}

Atributos de Ad Placement
Un ad placement es un objeto de entidad con los mismos atributos, además de los que se muestran a
continuación.

ATRIBUTO DESCRIPCIÓN

Anuncios Devuelve la colección de objetos de anuncio asociados con la


ubicación. Las etiquetas de iteración y los filtros de matriz se
pueden usar con esta colección.

Nombre Devuelve el campo Nombre para la ubicación del anuncio.

placement_url La dirección URL que puede usarse para recuperar la


ubicación del anuncio representada completamente por una
plantilla.

random_url La dirección URL que puede usarse para recuperar un anuncio


aleatorio de la ubicación representada completamente por
una plantilla.

Atributos de anuncios

NOTE
Un anuncio es un objeto de entidad con los mismos atributos, además de los que se muestran a continuación.

ATRIBUTO DESCRIPCIÓN

ad_url La dirección URL que puede usarse para recuperar el anuncio


representada completamente por una plantilla.

Texto Devuelve el campo Texto del anuncio.

image Devuelve el objeto de imagen (si la hay) para el anuncio.

Nombre Devuelve el campo Nombre del anuncio.

open_in_new_window Devuelve true si la dirección URL especificada por redirect_url


debe abrirse en una nueva ventana.

redirect_url La dirección URL a la que se reenviará al usuario al hacer clic


en el anuncio.

Atributos de Ad Image
ATRIBUTO DESCRIPCIÓN

alternate_text Devuelva el texto que está diseñado para que aparezca en el


atributo alt de la etiqueta.

height Devuelve el alto en píxeles para la imagen

dirección url Devuelve el origen de la dirección URL de la imagen.

width Devuelve el ancho en píxeles para la imagen

blogs
Proporciona la capacidad de acceder y representar blogs y entradas de blog.
El objeto blogs permite seleccionar un blog específico o entradas de blog.
{% assign posts = blogs.posts | paginate: 0,4 %}

<div class=content-panel panel panel-default>

<div class=panel-heading>

{% assign sitemarker = sitemarkers[Blog Home] %}

{% assign snippet = snippets[Home Blog Activity Heading] %}

<a class=pull-right href={{sitemarker.url}}> All Blogs </a>

<h4>

<a class=feed-icon fa fa-rss-square href={{ blogs.feedpath }} />

{{ snippet.adx_value }}

</h4>

</div>

<ul class=list-group>

{% for post in posts.all %}

<li class=list-group-item >

<a class=user-avatar href={{ post.author_url }}>

<img src={{ post.user_image_url }} />

</a>

<h4 class=list-group-item-heading>

<a href={{ post.app_relative_path }}>{{ post.title }}</a>

</h4>

<div class=content-metadata>

<abbr class=timeago>{{ post.publish_date }}</abbr>

&ndash;

<a href={{ post.author_url }}> {{ post.author_name }} </a>

&ndash;

<a href={{ post.application_path }}#comments>

<span class=fa fa-comment aria-hidden=true></span> {{ post.comment_count }}

</a>

</div>

</li>

{% endfor %}

</ul>

</div>
Objeto blogs
El objeto blogs permite tener acceso a cualquier blog específico en el portal, o tener acceso a todas las entradas
de blog en el portal (independientemente del blog).
En la tabla siguiente se explican los atributos asociados con el objeto blogs.

ATRIBUTO DESCRIPCIÓN

posts Devuelve un objeto blogposts que contiene todas las


entradas de blog en el portal.

[nombre o identificador de blog] Puede obtener acceso a cualquier blog por sus propiedades
de nombre o id.

{% assign blog = blogs[Blog Name] %}

{% assign blog = blogs[da8b8a92-2ee6-476f-8a21-782b047ff460] %} |

Objeto blog
El objeto blog permite trabajar con un solo blog, lo que permite obtener acceso a las entradas de ese blog.
En la tabla siguiente se explican los distintos atributos asociados con el objeto blog.

ATRIBUTO DESCRIPCIÓN

posts Devuelve un objeto blogposts que contiene todas las


entradas de ese blog.

Nombre El nombre del blog.

title El título del blog.

dirección url La dirección URL del blog.

Objeto blogposts
El objeto blogposts permite tener acceso a una colección de objetos de entradas de blog. Puede ordenar las
entradas de blog y realizar la paginación además de utilizar filtros de Liquid:
{% assign blogposts = blogs.posts | order_by “adx_name”, “desc” | paginate: 0,4 | all %} Tenga en cuenta que
blogs.posts.all también es una forma válida de obtener todas las publicaciones de blogs blogs.posts | de_index: 0 |
take: 2 también es posible
En la tabla siguiente se explican los distintos atributos asociados con el objeto blogposts.

ATRIBUTO DESCRIPCIÓN

Todas Devuelve todos los objetos blogposts en la colección.

Objeto blogpost
Hace referencia a una sola entrada de blog.
En la tabla siguiente se explican los distintos atributos asociados con el objeto blogpost.
ATRIBUTO DESCRIPCIÓN

dirección url URL de la entrada.

content Devuelve el campo de contenido de la entrada.

content Devuelve el campo Contenido de la entrada.

author Devuelve el autor de la publicación (que es simplemente un


objeto de entidad de contacto).

title El título de la entrada.

comment_count Devuelve el valor entero del recuento del número de


comentarios para una entrada determinada.

publish_date La fecha en la que la publicación se publicó.

entities
Permite cargar cualquier entidad PowerApps por Id. Si la entidad existe, se devolverá un objeto de entidad. Si no
se encuentra una entidad con el Id. dado, se devolverá null.

{% assign account = entities.account['936DA01F-9ABD-4d9d-80C7-02AF85C822A8'] %}

{% if account %}

{{ account.name }} ({{ account.statecode.label }})

{% endif %}

{% assign entity_logical_name = 'contact' %}

{% assign contact = entities[entity_logical_name][request.params.contactid] %}

{% if contact %}

{{ contact.fullname }} ({{ contact.parentcustomerid.name }})

{% endif %}

Entity
Un objeto de entidad proporciona acceso a los atributos de un registro de entidad de PowerApps.

ATRIBUTO DESCRIPCIÓN

Id. El Id. de GUID de la entidad, como cadena. Por ejemplo,


936DA01F-9ABD-4d9d-80C7-02AF85C822A8

logical_name El nombre lógico de PowerApps de la entidad.

Notas Carga cualquier nota (anotación) asociada a la entidad,


ordenada de la más antigua a la más nueva (createdon). Las
notas se devuelven como objetos de nota.
ATRIBUTO DESCRIPCIÓN

permisos Carga resultados de la aserción de permiso de carga para la


entidad. Se devuelven los resultados como un objeto de
permisos.

dirección url Devuelve la ruta de la dirección URL del sistema de


administración del contenido de los portales de PowerApps
para la entidad. Si la entidad no tiene una dirección URL
válida en el sitio web actual, devuelve null. Normalmente, esto
devolverá solo un valor para determinados tipos de entidad
que se han integrado en la CMS del portal, a menos que haya
personalizado el proveedor de la dirección URL en la
aplicación.

[nombre de atributo o relación] Puede obtener acceso a cualquier atributo de la entidad de


PowerApps por nombre lógico.
{{ entity.createdon }}{% assign attribute_name =
'name' %}{{ entity[attribute_name] }}
Los valores de la mayoría de los atributos de entidad se
asignan directamente a los tipos de Liquid: los campos de dos
opciones se asignan a booleanos, los campos de texto a
cadenas, los campos numérico o divisa a números, los
campos de fecha y hora a objetos de fecha. Pero algunos
tipos de atributos se devuelven como objetos:
Los campos de búsqueda (referencia de entidad) se
devuelven como objetos de referencia de entidad.
Los campos de conjunto de opciones o de lista
desplegable se devuelven como objetos de valor del
conjunto de opciones.
También puede cargar cualquier entidad relacionada
por nombre de esquema de la relación.
{{ page.adx_webpage_entitylist.adx_name }} En caso
de que una relación sea reflexiva (es decir, que se haga
referencia a sí misma), se devolverá un objeto de relación
reflexiva. (Si no, el resultado sería ambiguo.)
{{ page.adx_webpage_webpage.referencing.adx_name
}}
Nota: Cargar un gran número de entidades relacionadas,
o acceder a un gran número de relaciones en una sola
plantilla, puede tener un impacto negativo en el
rendimiento de la representación de plantilla. Evite cargar
entidades relacionadas para cada elemento de una matriz,
en un bucle. Cuando sea posible, use etiquetas de
entidad de PowerApps common data service para cargar
colecciones de entidades.

Referencia de entidad
Los valores de atributo de búsqueda se devuelven como objetos de referencia de la entidad, con los siguientes
atributos.

ATRIBUTO DESCRIPCIÓN

Id. El Id. de GUID de la entidad referenciada, como cadena.


Por ejemplo, 936DA01F-9ABD-4d9d-80C7-02AF85C822A8

logical_name El nombre lógico de PowerApps de la entidad referenciada.

Nombre El atributo de nombre principal de la entidad referenciada.


Nota
Una nota es un objeto de entidad que proporciona acceso a los atributos y relaciones de un registro de anotación.
Además de todos los atributos de un objeto de entidad, una nota tiene los siguientes atributos adicionales.

ATRIBUTO DESCRIPCIÓN

documentbody Carga el atributo documentbody del registro anotación de


nota, como cadena codificada en Base64. Como el contenido
de este atributo puede ser grande, no se carga con el resto
de los atributos de nota y se carga solo según petición.
Nota: El uso del atributo documentbody podría tener un
impacto negativo en rendimiento de representación de la
plantilla, y se debe hacer con precaución.
Use el atributo url para proporcionar un vínculo con los datos
adjuntos de nota en su lugar, si es posible.

dirección url Devuelve la dirección URL del controlador de datos adjuntos


de la anotación del portal integrado. Si el usuario tiene
permiso, y la nota tiene un archivo adjunto, una solicitud a
esta dirección URL descargará el archivo adjunto de la nota.

NOTE
Filtros adicionales

Valor del conjunto de opciones


Los valores de atributo de conjunto de opciones/lista desplegable se devuelven como objetos de referencia de la
entidad, con los siguientes atributos.

ATRIBUTO DESCRIPCIÓN

Etiqueta La etiqueta localizada del valor de atributo del conjunto de


opciones/lista desplegable. Por ejemplo, "Activo"

Valor El valor entero del valor de atributo del conjunto de


opciones/lista desplegable. Por ejemplo, 0

Permisos de entidad
El objeto Permisos de entidad proporciona acceso a los resultados agregados de aserción de permisos para una
entidad.

ATRIBUTO DESCRIPCIÓN

can_append Devuelve true si el usuario actual tiene permiso para anexar


registros a relaciones de este registro. De lo contrario,
devuelve false.

can_append_to Devuelve true si el usuario actual tiene permiso para anexar


este registro a una relación de otra entidad. De lo contrario,
devuelve false.

can_create Devuelve true si el usuario actual tiene permiso para crear


nuevos registros de este tipo de entidad. De lo contrario,
devuelve false.
ATRIBUTO DESCRIPCIÓN

can_delete Devuelve true si el usuario actual tiene permiso para eliminar


este registro. De lo contrario, devuelve false.

can_read Devuelve true si el usuario actual tiene permiso para leer este
registro. De lo contrario, devuelve false.

can_write Devuelve true si el usuario actual tiene permiso para


actualizar este registro. De lo contrario, devuelve false.

rules_exist Devuelve true si los resultados de permisos representados


por este objeto son resultado de las reglas de permiso
definidas explícitamente. Devuelve false si son los resultados
predeterminados en ausencia de permisos definidos
explícitamente.

Relación reflexiva
Los intentos de cargar relaciones reflexivas (es decir, que se hacen referencia a sí mismas) en entidades se
devuelven como objetos con los siguientes atributos.

ATRIBUTO DESCRIPCIÓN

is_reflexive Devuelve true. Se puede usar para comprobar si un objeto


devuelto por una relación es un objeto de relación reflexiva.

referenced Devuelve una matriz de entidades referenciadas para la


relación determinada.

referencing Devuelve una entidad de referencia para la relación


determinada. Devuelve null si no existe una entidad de
referencia. Si la relación es de varios a varios (N:N), devuelve
una matriz de entidades de referencia.

entitylist
El objeto entitylist se usa dentro de etiquetas de entidad de PowerApps common data service. Proporciona
acceso a todos los atributos de una determinada lista de entidades.

NOTE
Representar la lista de entidades asociada a la página actual

Atributos

NOTE
entities

ATRIBUTO DESCRIPCIÓN

create_enabled Devuelve true si la creación de nuevos registros se configura


para la lista de entidades. De lo contrario, devuelve false.
ATRIBUTO DESCRIPCIÓN

create_url Devuelve la ruta URL configurada para un vínculo o un botón


de creación para la lista de entidades.

detail_enabled Devuelve true si una vista de detalle para registros


individuales se configura para la lista de entidades. De lo
contrario, devuelve false.

detail_id_parameter Devuelve el nombre de parámetro de cadena de consulta que


usará para el Id. de registro al crear una dirección URL de
vista de detalle de registro. Vea Filtros de direcciones URL
para obtener detalles sobre el uso de filtros de Liquid para
generar URL. Por ejemplo, id.

detail_label Devuelve la etiqueta localizada configurada para vínculos o


botones de vista de detalle para la lista de entidades.

detail_url Devuelve la ruta URL configurada para vínculos o botones de


vista de detalle para la lista de entidades.

empty_list_text Devuelve el texto localizado configurado que se mostrará


cuando la vista en lista de entidades no devuelva ningún
resultado.

enable_entity_permissions Devuelve true si el filtro de permisos de entidad está


habilitado para esta lista de entidades. De lo contrario,
devuelve false.

entity_logical_name Devuelve el nombre lógico de la entidad de PowerApps para


los registros que mostrará esta lista de entidades. Por
ejemplo, contact

filter_account_attribute_name Devuelve el nombre lógico de atributo para la búsqueda a


cuenta que usará para filtrar los registros de resultado la
cuenta primaria del usuario del portal actual. Por ejemplo,
accountid

filter_apply_label Devuelve la etiqueta localizada configurada que se usará para


el vínculo/botón que aplica un filtro de atributo avanzado a
los resultados de la lista de entidades.

filter_definition Devuelve la definición de filtro de atributo JSON para la lista


de entidades. Vea Filtros de lista de entidades para obtener
información sobre cómo usar el filtro de Liquid de metafiltros
para procesar esta definición.

filter_enabled Devuelve true si el filtro de atributo avanzado está habilitada


para la lista de entidades. De lo contrario, devuelve false.

filter_portal_user_attribute_name Devuelve el nombre lógico de atributo para la búsqueda a


contacto que se usará para filtrar los registros de resultado el
contacto del usuario del portal actual. Por ejemplo, contactid

filter_website_attribute_name Devuelve el nombre lógico de atributo para la búsqueda a


adx_website que usará para filtrar los registros de resultado el
sitio web del portal actual. Por ejemplo, adx_websiteid
ATRIBUTO DESCRIPCIÓN

language_code Devuelve el código de idioma entero de PowerApps que se


usará para seleccionar todas las etiquetas localizadas para
esta lista de entidades.

page_size Devuelve el tamaño de página de resultados configurada para


la lista de entidades.

primary_key_name Devuelve el nombre lógico de atributo de clave principal para


los registros que mostrará esta lista de entidades.

search_enabled Devuelve true si la búsqueda está habilitada para esta lista de


entidades. De lo contrario, devuelve false.

search_placeholder Devuelve el texto localizado configurado para el marcador de


posición del campo de búsqueda en la lista de entidades.

search_tooltip Devuelve el texto localizado configurado para la información


sobre herramientas de búsqueda en la lista de entidades.

vistas Devuelve las vistas disponibles para la lista de entidades,


como objetos de vista de lista de entidades.

[nombre lógico del atributo] Puede obtener acceso a cualquier atributo del registro de
PowerApps de la lista de entidades (adx_entitylist) por
nombre lógico, de la misma forma que un objeto de entidad.
Por ejemplo, {{ entitylist.adx_name }}

Atributos de vista de listas de entidades


ATRIBUTO DESCRIPCIÓN

columns Devuelve las columnas de la vista como objetos de columna


de vista de la lista de entidades.

entity_logical_name Devuelve el nombre lógico de la entidad de PowerApps para


los registros incluidos en la vista. Por ejemplo, contact

Id. Devuelve el identificador de GUID de la vista.

language_code Devuelve el código de idioma entero de PowerApps que se


usará para seleccionar todas las etiquetas localizadas
(encabezados de columna, etc.) para la vista.

Nombre Devuelve el nombre para mostrar de PowerApps de la vista.

primary_key_logical_name Devuelve el nombre lógico de clave principal de la entidad de


PowerApps para los registros incluidos en la vista. Por
ejemplo, contactid

sort_expression Devuelve la expresión de ordenación predeterminada para la


vista. Por ejemplo, name ASC, createdon DESC

Atributos de columna de vista de lista de entidades


ATRIBUTO DESCRIPCIÓN

attribute_type Devuelve el nombre del tipo de atributo de PowerApps para


la columna, como cadena. Por ejemplo, Lookup, Picklist,
String, Boolean, DateTime

logical_name Devuelve el nombre lógico de atributo de PowerApps para la


columna. Por ejemplo, createdon

Nombre Devuelve el nombre para mostrar de PowerApps localizado


para la columna. Por ejemplo, Created On

sort_ascending Devuelve una cadena de expresión de orden para ordenar la


columna en orden ascendente. Por ejemplo, createdon ASC

sort_descending Devuelve una cadena de expresión de orden para ordenar la


columna en orden descendente. Por ejemplo, createdon DESC

sort_disabled Devuelve true si el orden está deshabilitado para la columna.


De lo contrario, devuelve false.

sort_enabled Devuelve true si el orden está habilitado para la columna. De


lo contrario, devuelve false.

width Devuelve el ancho configurado para la columna, en píxeles.

entityview
El objeto entityview se usa dentro de la etiqueta entityview y proporciona acceso a los metadatos de la vista, así
como registros de los resultados de la vista.
Atributos
ATRIBUTO DESCRIPCIÓN

columns Devuelve las columnas de la vista, como objetos de columna


de vista de entidad.

entity_permission_denied Devuelve true si el acceso a los resultados de la vista se ha


denegado debido a permisos de entidad insuficientes para el
usuario actual. Devuelve false si se ha concedido acceso de
lectura a los resultados de la vista.

entity_logical_name El nombre lógico de la entidad de PowerApps de los registros


de resultados de la vista. Por ejemplo, contact

first_page El número de página de la primera página de los resultados


de vista. Será 1 a menos que no hubiera resultados devueltos,
en cuyo caso será null.

Id. El Identificador GUID de la vista de PowerApps que define


esta entityview.

language_code El código de idioma entero de PowerApps que se usa para


cargar etiquetas localizadas para la vista actual.
ATRIBUTO DESCRIPCIÓN

last_page El número de página de la última página de los resultados de


vista. Si no hay resultados devueltos, será null.

nombre El nombre de la vista de PowerApps que define esta


entityview., por ejemplo, Contactos activos.

next_page El número de página de la siguiente página de los resultados


de vista. Si no hay siguiente página de resultados, será null.

Página El número de página de la página actual de los resultados de


vista.

pages Devuelve una matriz de números de página que contiene


todas las páginas de resultados de la vista actual.

page_size El número de resultados devueltos por página para la vista


actual.

previous_page El número de página de la siguiente página de los resultados


de vista. Si no hay página anterior de resultados, será null.

primary_key_logical_name El nombre lógico de PowerApps del atributo de clave principal


de la entidad de resultado para esta vista. Por ejemplo,
contactid.

Registros La página actual de los registros de resultado de la vista,


como objetos de entidad.

sort_expression Expresión de ordenación predeterminada para la vista. Por


ejemplo, nameASC, createdon DESC.

total_pages El número total de páginas de resultados para la vista.

total_records El número total de resultados para la vista (en todas las


páginas).

eventos
Proporciona la capacidad de acceder y representar eventos. El objeto events permite seleccionar un evento
específico o todos los eventos.
Objeto events
El objeto events permite tener acceso a cualquier evento específico del portal, o tener acceso a todos los eventos
del portal (independientemente del evento).
El objeto events tiene los siguientes atributos:

ATRIBUTO DESCRIPCIÓN

occurences Devuelve un objeto eventoccurancess que contiene todas las


instancias del evento en el portal
ATRIBUTO DESCRIPCIÓN

[event name or id] Puede obtener acceso a cualquier evento por sus propiedades
de nombre o id.
{% assign event = events["Event Name"] %}
{% assign event = events["da8b8a92-2ee6-476f-8a21-
782b047ff460"] %}

Objeto event
El objeto event permite trabajar con un solo evento, lo que permite obtener acceso a las programaciones e
instancias de ese evento.
El objeto event tiene los siguientes atributos:

ATRIBUTO DESCRIPCIÓN

repeticiones Devuelve un objeto eventoccurrences que contiene todas las


instancias del evento.

nombre El nombre del evento.

dirección url Dirección URL del evento.

Objeto eventoccurences
El objeto eventoccurrences permite tener acceso a una colección de objetos de instancias del evento. Puede
ordenar las instancias del evento y especificar un intervalo de fechas para las instancias a recuperar, y realizar
paginación así como utilizar filtros de Liquid.

{% assign occurances = event.occurrences.from[today].to[advance_date] %}

tenga en cuenta que

{% assign occurances = event.occurrences.min[today].max[advance_date] %}

también es posible.
Los siguientes atributos se asocian con el objeto eventoccurrences

ATRIBUTO DESCRIPCIÓN

Todas Devuelve todos los objetos eventoccurrence en la colección.

Objeto eventoccurence
Representa una sola instancia del evento. Los atributos asociados se indican a continuación:

ATRIBUTO DESCRIPCIÓN

dirección url Dirección URL de la instancia.

is_all_day_event ¿Se trata de un evento de todo el día?

start_time Las horas de inicio del evento.


ATRIBUTO DESCRIPCIÓN

end_time Las horas de finalización del evento.

forloop
Contiene propiedades útiles en un bloque de bucle para.

NOTE
forloop solo se puede usar dentro de una etiqueta para.

Código

{% for child in page.children %}

{% if forloop.first %}

This is the first child page!

{% else %}

This is child page number {{ forloop.index }}.

{% endif %}

{% endfor %}

Salida

This is the first child page!

This is child page number 2.

This is child page number 3.

Atributos
ATRIBUTO DESCRIPCIÓN

primero Devuelve true si es la primera iteración del bucle. Devuelve


false si no es la primera iteración.

index La ubicación del elemento actual en la colección, donde el


primer artículo tiene una posición de 1.

index0 La ubicación del elemento actual en la colección, donde el


primer artículo tiene una posición de 0.

Última Devuelve true si es la última iteración del bucle. Devuelve


false si no es la última iteración.

length Devuelve el número de iteraciones para el de bucle ߝ el


número de elementos en la colección que se está iterando.
ATRIBUTO DESCRIPCIÓN

rindex Número de elementos que permanecen en el bucle (duración


- índice) donde 1 es el índice del último elemento.

rindex0 Número de elementos que permanecen en el bucle (duración


- índice) donde 0 es el índice del último elemento.

foros
Proporciona la capacidad de acceder y representar foros e hilos de foros. Tenga en cuenta que la posibilidad de
usar Liquid para representar datos de foros se amplía a las entradas, pero para crear una nueva entrada o hilo,
debe usar una plantilla de página de formularios web ASP.NET con dicha funcionalidad integrada (por ejemplo,
las plantillas predeterminadas de página de hilos y entradas de foro).
El objeto de foros permite seleccionar un foro o hilos de foro:

<div class=content-panel panel panel-default>

<div class=panel-heading>

<h4>

<span class=fa fa-comments aria-hidden=true></span>

{{ snippets[Home Forum Activity Heading] | default: Forum Activity | h }}

</h4>

</div>

{% for forum in website.forums %}

<ul class=list-group>

<li class=list-group-item>

<div class=row>

<div class=col-sm-6>

<h4 class=list-group-item-heading><a href="{{ forum.url | h }}"> {{ forum.name | h }}</a></h4>

<div class=list-group-item-text content-metadata>{{ forum.adx_description | h }}</div>

</div>

<div class=col-sm-3 content-metadata>{{ forum.thread_count }} threads</div>

<div class=col-sm-3 content-metadata>{{ forum.post_count }} posts</div>

</div>

</li>

</ul>

{% endfor %}

</div>

Objetos foros
El objeto foros permite tener acceso a cualquier foro específico en el portal, o tener acceso a todos hilos de foro
en el portal (independientemente del foro).
El objeto forum permite trabajar con un solo foro, lo que permite obtener acceso a los hilos del foro.
El objeto forumthreads permite tener acceso a una colección de objetos de hilos de foro. Puede ordenar los hilos
de foro y realizar paginación además de utilizar filtros de Liquid.

{% assign threads = forum.threads | order_by adx_name, desc | paginate: 0,4 | all %}

Un único hilo del foro


El objeto forumposts permite tener acceso a una colección de objetos de entrada de foro.
Atributos
ATRIBUTO DESCRIPCIÓN

threads Devuelve un objeto forumthreads que contiene todos los


objetos forumthread en el portal.

Todas Devuelve todos los objetos forum del portal. Tenga en cuenta
que website.forums es también un equivalente.

thread_count Devuelve el valor de entero del recuento del número de hilos


que hay en el sitio web completo.

post_count Devuelve el valor de entero del número total de publicaciones


del portal.

[nombre o identificador del foro] Puede obtener acceso a cualquier foro por sus propiedades
de nombre o id.
`{% assign forum = forums[Forum Name] %}
{% assign forum = forums[da8b8a92-2ee6-476f-8a21-
782b047ff460] %}

Objeto forum
Atributos

NOTE
entities

ATRIBUTO DESCRIPCIÓN

threads Devuelve un objeto forumthreads que contiene todos hilos


del foro.

Nombre El nombre del foro.

thread_count Devuelve el valor entero del recuento del número de hilos


que hay en el foro.

post_count Devuelve el valor entero del recuento del número de entradas


que hay en todo el foro.
Objeto forumthreads
Atributos
ATRIBUTO DESCRIPCIÓN

Todas Devuelve todos los objetos forumthread en la colección.

Objeto forumthread
Atributos

NOTE
entities

ATRIBUTO DESCRIPCIÓN

posts Devuelve un objeto forumposts que contiene todas las


entradas de foro del hilo.

author Devuelve el autor del hilo (que es simplemente un objeto de


entidad de contacto).

latest_post Devuelve la última entrada del hilo.

first_post Devuelve la primera entrada del hilo.

post_count Devuelve el valor de entero del recuento del número de


entradas que hay en el hilo.

is_answered ¿Se ha respondido al hilo o no?

is_sticky ¿Es el hilo un hilo pegajoso?

Objeto forumposts
Atributos
ATRIBUTO DESCRIPCIÓN

Todas Devuelve todos los objetos forumthread en la colección.

Una sola entrada del foro


Atributos

NOTE
entities

ATRIBUTO DESCRIPCIÓN

author Devuelve el autor de la publicación (que es simplemente un


objeto de entidad de contacto).
ATRIBUTO DESCRIPCIÓN

content Contenido de la entrada.

is_answer ¿Es esta entrada una respuesta al hilo?

Conocimiento
Proporciona acceso al artículo de conocimiento PowerApps y a los registros de entidad de categoría para
representar los artículos y las categorías en un portal.
Atributos
ATRIBUTO DESCRIPCIÓN

artículos Devuelve un objeto de artículo que contiene los objetos de


artículo para los registros de entidad de los artículos de
conocimiento disponibles en el portal.

categorías Devuelve un objeto de categoría que contiene los objetos de


categoría para los registros de entidad de las categorías
disponibles en el portal.

objeto de artículos
El objeto de artículos permite tener acceso a una colección de objetos de artículo. Puede ordenar los artículos y
realizar paginación además de utilizar filtros de Liquid.

{% assign count = count | default: 3 %}


{% assign languagecode = website.selected_language.code %}
{% assign popular_articles = knowledge.articles | popular: count,languagecode %}
{% if popular_articles %}
<div class=list-group>
{% for article in popular_articles %}
<div class=list-group-item clearfix>
<a class=title href={{ article.url | escape }}>{{ article.title | escape }}</a>
<p class=description>{{ article.description | escape }}</p>
</div>
{% endfor %}
</div>
{% endif %}

Atributos
ATRIBUTO DESCRIPCIÓN

Popular Devuelve una recopilación de objetos del artículo que


contiene los más vistos.
{% assign popular_articles =
knowledge.articles.popular %}

reciente Devuelve una recopilación de objetos del artículo que


contiene los últimos modificados.
{% assign recent_articles =
knowledge.articles.recent %}
ATRIBUTO DESCRIPCIÓN

superior Devuelve una recopilación de objetos del artículo que


contiene los de mayor interés.
{% assign top_articles = knowledge.articles.top %}

Filtros
Los filtros siguientes pueden admitir parámetros opcionales para el tamaño de página y el idioma. El primer
parámetro es el número o los registros a recuperar. El tamaño de página predeterminado es 5. El segundo
parámetro es el código de un idioma para recuperar los artículos de un idioma determinado. Los filtros se
pueden combinar con otros Filtros Liquid.

{% assign page_size = 5 %}
{% assign language_code = website.selected_language.code %}
{% assign recent_articles = knowledge.articles | recent: page_size, language_code %}

ATRIBUTO DESCRIPCIÓN

Popular Devuelve una recopilación de objetos del artículo que


contiene los más vistos.
{% assign popular_articles = knowledge.articles \|
popular: 10, en-US %}

reciente Devuelve una recopilación de objetos del artículo que


contiene los últimos modificados.
{% assign recent_articles = knowledge.articles \|
recent: 5 %}

superior Devuelve una recopilación de objetos del artículo que


contiene los de mayor interés.
{% assign top_articles = knowledge.articles \| top:
3, en-US %}

objeto de categorías
El objeto categorías permite tener acceso a una colección de objetos de categorías. Puede ordenar las categorías y
realizar paginación además de utilizar filtros de Liquid.

{% assign category_url = sitemarkers['Category'].url %}


{% assign count = count | default: 0 %}
{% assign categories = knowledge.categories | top_level: count %}
{% if categories %}
<div class=list-group unstyled>
{% for category in categories %}
<a href={{ category_url | add_query: 'id', category.categorynumber }} class=list-group-item>
{{ category.title }}
</a>
{% endfor %}
</div>
{% endif %}

Atributos
ATRIBUTO DESCRIPCIÓN

reciente Devuelve una recopilación de objetos de categorías que


contiene los últimos modificados.

top_level Devuelve una recopilación de objetos de categorías que no


tiene una categoría principal.

Filtros
Los filtros siguientes pueden admitir un parámetro opcional que indique el tamaño de página. El tamaño de
página predeterminado es 5. Los filtros se pueden combinar con otros Filtros Liquid.

{% assign page_size = 5 %}
{% assign recent_categories = knowledge.categories | recent: page_size %}

ATRIBUTO DESCRIPCIÓN

reciente Devuelve una recopilación de objetos de categorías que


contiene los últimos modificados. Puede proporcionar
parámetros
{% assign recent_categories = knowledge.categories
\| recent: 10 %}

top_level Devuelve una recopilación de objetos de categorías que no


tiene una categoría principal.
{% assign root_categories = knowledge.categories \|
top_level %}

objeto de artículos
El objeto de artículo permite trabajar con un solo artículo de conocimiento para mostrar los detalles del artículo
en el portal.
Atributos
el artículo es un objeto de entidad, con todos los mismos atributos, además de los que se muestran a
continuación.

ATRIBUTO DESCRIPCIÓN

article_public_number El número público de artículo del artículo.

comment_count El valor entero del recuento del número de comentarios de


un artículo determinado.

content El contenido del artículo.

current_user_can_comment Devuelve un valor booleano que indica si el usuario actual


puede agregar comentarios en el artículo.

is_rating_enabled Devuelve un valor booleano que indica si está habilitado el


nivel de interés en un artículo.
ATRIBUTO DESCRIPCIÓN

palabras clave Las palabras clave del artículo.

nombre Un alias alternativo para el título del artículo.

nivel de interés El valor decimal del nivel de interés en el artículo.

title Título del artículo.

view_count El valor entero del número de veces que el artículo se ha


visto.

objeto de categorías
El objeto de categoría permite trabajar con una sola categoría para mostrar los detalles en el portal.
Atributos
la categoría es un objeto de entidad, con todos los mismos atributos, además de los que se muestran a
continuación.

ATRIBUTO DESCRIPCIÓN

número de categoría El número de categoría de la categoría.

nombre Un alias alternativo para el título de la categoría.

title El título de la categoría.

página
Hace referencia a la página de solicitud del portal actual. Este objeto combina los atributos del mapa del sitio y la
solicitud actual entidades (generalmente, una página web).
El objeto page proporciona acceso a los aspectos como rutas de navegación para la página actual, el título o la
dirección URL de la página actual, y cualquier otro atributo o entidad relacionada de registro de PowerApps
subyacente.
<ul class=breadcrumb>

{% for crumb in page.breadcrumbs %}

<li><a href={{ crumb.url | escape }}>{{ crumb.title | escape }}</a></li>

{% endfor %}

<li class=active>{{ page.title | escape }}</li>

</ul>

<div class=page-header>

<h1>{{ page.title | escape }}</h1>

</div>

<div class=page-copy>

{{ page.adx_copy }}

</div>

<div class=list-group>

{% for child in page.children %}

<a class=list-group-item href={{ child.url | escape }}>

{{ child.title | escape }}

</a>

{% endfor %}

</div>

<!-- Page {{ page.id }} was last modified on {{ page.modifiedon }}. -->

Atributos de página

NOTE
entities

ATRIBUTO DESCRIPCIÓN

breadcrumbs Devuelve los objetos de nodo del mapa del sitio de ruta de
navegación para la página, empezando desde el nodo raíz del
mapa del sitio y terminando en el principal.

children Devuelve objetos de nodo de mapa del sitio secundario de la


página.

parent Devuelve el nodo de mapa del sitio principal de la página. Si la


página es la página principal, el principal será nulo.

title El título de la página.


ATRIBUTO DESCRIPCIÓN

dirección url Dirección URL de la página.

[nombre de atributo o relación] Puede obtener acceso a cualquier atributo del registro de
PowerApps subyacente de la página por nombre lógico.
{{ page.createdon }}
{% assign attribute_name = 'name' %}
{{ page[attribute_name] }}
Los valores de la mayoría de los atributos de entidad se
asignan directamente a los tipos de Liquid: los campos de dos
opciones se asignan a booleanos, los campos de texto a
cadenas, los campos numérico o divisa a números, los
campos de fecha y hora a objetos de fecha. Pero algunos
tipos de atributos se devuelven como objetos:
Los campos de búsqueda (referencia de entidad) se
devuelven como objetos de referencia de entidad.
Los campos de conjunto de opciones o de lista
desplegable se devuelven como objetos de valor del
conjunto de opciones.
También puede cargar cualquier entidad relacionada por
nombre de esquema de la relación.
{{ page.adx_webpage_entitylist.adx_name }}
En caso de que una relación sea reflexiva (es decir que
haga referencia a sí misma), se devolverá un objeto
entidades. (Si no, el resultado sería ambiguo.)
{{ page.adx_webpage_webpage.referencing.adx_name
}}
Nota: Cargar un gran número de entidades relacionadas,
o acceder a un gran número de relaciones en una sola
plantilla, puede tener un impacto negativo en el
rendimiento de la representación de plantilla. Evite cargar
entidades relacionadas para cada elemento de una matriz,
en un bucle. Cuando es posible, es preferible utilizar las
etiquetas de entidad de PowerApps common data service
para cargar colecciones de entidades.

sondeos
Proporciona la capacidad de acceder y representar un sondeo.
El objeto polls permite seleccionar un sondeo o ubicación de sondeo específico:
<div>

{% assign poll = polls[Poll Name] %}

<h4>{{ poll.question }}</h4>

{% for option in poll.options %}

<div>

<input type=radio name={{ poll.name }} id={{ option.id }} />

<label for={{ option.id }}>{{ option.answer }}</label>

</div>

{% endfor %}

<button type=button>{{ poll.submit_button_label }}</button>

</div>

Atributos de sondeos
ATRIBUTO DESCRIPCIÓN

placements Devuelve el objeto pollplacements.

[nombre o identificador del sondeo] Puede obtener acceso a cualquier sondeo por sus
propiedades de nombre o id.
{% assign poll = polls[Poll Name] %}
{% assign poll = polls["41827a5c-33de-49b8-a0c7-
439e6a02eb98"] %}

Atributos de ubicaciones de sondeos


ATRIBUTO DESCRIPCIÓN

[nombre o identificación de ubicación de sondeo] Puede obtener acceso a cualquier ubicación de sondeo por
sus propiedades de nombre o id.
{% assign placement = polls.placements[Placement
Name or Id] %}
{% assign placement = polls.placements[7677c5d4-
406e-4b6c-907c-916ac17dba0f] %}

Atributos de ubicación de sondeos

NOTE
entities

ATRIBUTO DESCRIPCIÓN

Nombre Devuelve el campo Nombre para la ubicación del sondeo.

placement_url La dirección URL que puede usarse para recuperar la


ubicación del sondeo representada completamente por una
plantilla.
ATRIBUTO DESCRIPCIÓN

sondeos Devuelve la colección de objetos de sondeo asociados con la


ubicación. Las etiquetas de iteración y los filtros de matriz se
pueden usar con esta colección.

random_url La dirección URL que puede usarse para recuperar un sondeo


aleatorio de la ubicación representada completamente por
una plantilla.

submit_url La dirección URL a la que se envía un sondeo completado.

Atributos de sondeo

NOTE
entities

ATRIBUTO DESCRIPCIÓN

has_user_voted Devuelve true si el usuario actual (que ha iniciado sesión o


anónimo) ya ha votado en este sondeo.

Nombre Devuelve el campo Nombre para el sondeo.

opciones Devuelve la colección de objetos poll option asociados con el


sondeo. Las etiquetas de la iteración y las entidades se puede
usar con esta colección.

poll_url La dirección URL que puede usarse para recuperar el sondeo


representada completamente por una plantilla.

Pregunta de Devuelve el campo Pregunta para el sondeo.

submit_button_label Devuelve una cadena que se puede usar para reemplazar la


etiqueta del botón enviar para el sondeo.

submit_url La dirección URL a la que se envía un sondeo completado.

user_selected_option Devuelve el objeto polloption seleccionado por el usuario (si


ya ha votado).

votes Devuelve el número de votos que se han tabulado para el


sondeo.

Atributos de la opción de sondeo

NOTE
entities

ATRIBUTO DESCRIPCIÓN

answer Devuelve el campo Respuesta para el sondeo.


ATRIBUTO DESCRIPCIÓN

percentage Devuelve el porcentaje de votos en el sondeo para la opción


como número decimal entre 0 y 100.

votes Devuelve el número de votos que se han tabulado para la


opción.

solicitud
Contiene información acerca de la solicitud HTTP actual.

{% assign id = request.params['id'] %}

<a href={{ request.url | add_query: 'foo', 1 }}>Link</a>

NOTE
Puede crear direcciones URL dinámicamente en Liquid utilizando filtros de dirección URL.

Atributos
ATRIBUTO DESCRIPCIÓN

params Valores de parámetros con nombre para la solicitud actual.


params es una combinación de parámetros de cadena de
consulta de la dirección URL, parámetros de entrada de
formulario, y cookies.

Ruta La ruta de dirección URL de la solicitud actual.


/profile/

path_and_query La ruta y consulta de la dirección URL de la solicitud actual.


/profile/?foo=1&bar=something

query La parte de consulta de la dirección URL de la solicitud actual.


?foo=1&bar=something

dirección url La dirección URL completa de la solicitud actual.


https://www.example.com/profile/?foo=1&bar=something

searchindex
El objeto searchindex se usa dentro de las etiquetas de entidad de PowerApps common data service, y
proporciona acceso a los resultados de una consulta.
{% searchindex query: 'support', page: params.page, page_size: 10 %}

{% if searchindex.results.size > 0 %}

<p>Found about {{ searchindex.approximate_total_hits }} matches:</p>

<ul>

{% for result in searchindex.results %}

<li>

<h3><a href={{ result.url | escape }}>{{ result.title | escape }}</a></h3>

<p>{{ result.fragment }}</p>

</li>

{% endfor %}

</ul>

{% else %}

<p>Your query returned no results.</p>

{% endif %}

{% endsearchindex %}

Atributos
ATRIBUTO DESCRIPCIÓN

approximate_total_hits Devuelve un recuento aproximado de los aciertos generales


que coinciden con la consulta de índice. Tenga en cuenta que
debido a la forma de funcionar del índice de búsqueda en
relación con el filtrado de seguridad y otros factores de
diseño, este número sólo es una aproximación, puede no
coincidir exactamente con el número total de resultados
disponibles al usuario actual en algunos casos.

Página Devuelve el número de página de la consulta actual.

page_size Devuelve el tamaño de página máximo de la consulta actual.


Tenga en cuenta que si desea que el número real de
resultados devueltos para la página actual (ya que puede ser
inferior al tamaño máximo de página especificado), debe usar
results.size.

Resultados Devuelve la página de resultados de la consulta, como


objetos de resultados de índice de búsqueda.

Resultados de índice de búsqueda


ATRIBUTO DESCRIPCIÓN

entidad Las entidades subyacentes para el resultado.


ATRIBUTO DESCRIPCIÓN

fragment Un fragmento de texto corto relevante para el resultado, con


los términos que coinciden con la consulta especificada
resaltada utilizando la etiqueta HTML <em>. Tenga en cuenta
que determinados tipos de consultas no admiten
fragmentados resaltados, como las consultas aproximadas (~)
y consultas comodín (*). Esta propiedad será nula en esos
casos.

Id. El Id. de entidad de PowerApps del registro subyacente para


el resultado, como cadena. Por ejemplo, 936DA01F-9ABD-
4d9d-80C7-02AF85C822A8

logical_name El nombre lógico de entidad de PowerApps del registro


subyacente para el resultado. Por ejemplo, adx_webpage

Número El número del resultado, a través de todas las páginas de


resultado, empezando por 1. Por ejemplo, para el primer
resultado de la segunda página de resultados, con un tamaño
de página de 10, este valor será 11.

score La puntuación Lucene del resultado, como un valor de coma


flotante. Los resultados serán devueltos ordenados por este
valor.

title El título del resultado.

dirección url La dirección URL para el resultado. Esta será normalmente —


pero no necesariamente— una ruta de acceso absoluta de la
aplicación actual, en lugar de la dirección URL completa. Por
ejemplo: /articles/article1/

configuración
Permite cargar cualquier configuración de sitio por nombre. Si no se encuentra un valor con un nombre dado, se
devolverá null.

NOTE
Los valores se devuelven como cadenas, pero puede usar filtros de tipo para convertirlos en otros tipos.
{{ settings[My Setting] }}

{% assign search_enabled = settings[Search/Enabled] | boolean %}

{% if search_enabled %}

Search is enabled.

{% endif %}

{% assign pagesize = settings['page size'] | integer | default: 10 %}

{% if pagesize > 10 %}

Page size is greater than 10.

{% endif %}

NOTE
Represente un encabezado y una barra de navegación principal de página web

mapa del sitio


Permite el acceso al mapa del sitio del portal.

<h1>{{ sitemap.root.title }}</h1>

<ul class=breadcrumb>

{% for crumb in sitemap.current.breadcrumbs %}

<li><a href={{ crumb.title }}>{{ crumb.title }}</a></li>

{% endfor %}

<li class=active>{{ sitemap.current.title }}</li>

</ul>

{% for child in sitemap.current.children %}

<a href={{ child.url }}>{{ child.title }}</a>

{% endfor %}

It's also possible to load a site map node by URL path:

{% assign node = sitemap[/content/page1/] %}

{% if node %}

{% for child in node.children %}

<a href={{ child.url }}>{{ child.title }}</a>

{% endfor %}

{% endif %}

Atributos del mapa del sitio


ATRIBUTO DESCRIPCIÓN

Actuales Devuelve el objeto del nodo de mapa del sitio para la página
actual.

Raíz Devuelve el objeto del nodo de mapa del sitio de la página


raíz (principal) del sitio web.

Atributos del nodo del mapa del sitio


ATRIBUTO DESCRIPCIÓN

Rutas de navegación Devuelve los objetos de nodo del mapa del sitio de ruta de
navegación para el nodo, empezando desde el nodo raíz del
mapa del sitio y terminando en el principal.

Secundarios Devuelve objetos de nodo de mapa del sitio secundario del


nodo.

Descripción El contenido de descripción/resumen para el nodo. (Este


campo puede contener HTML).

Entidad Devuelve las entidades subyacentes del nodo. Si el nodo no


tiene una entidad subyacente, este valor será null.

is_sitemap_ancestor Devuelve true si el nodo del mapa del sitio es un antecesor


del nodo actual, de lo contrario false.

is_sitemap_current Devuelve true si el nodo del mapa del sitio es el nodo actual,
de lo contrario false.

Principal Devuelve el nodo de mapa del sitio principal del nodo. Si el


nodo es el nodo raíz, principal será null.

Cargo El título del nodo.

dirección url La dirección URL del nodo.

marcadores de sitio
Permite cargar cualquier marcador de sitio por nombre. Si el marcador de sitio existe, se devolverá un objeto de
marcador de sitio. Si no se encuentra un marcador de sitio con un nombre determinado, se devolverá null.

{{ sitemarkers[Login].url }}

{% assign my_sitemarker = sitemarkers[My Site Marker] %}

{% if my_sitemarker %}

<a href={{ my_sitemarker.url }}>{{ my_sitemarker.adx_name }}</a>

{% else %}

Site marker My Site Marker does not exist.

{% endif %}
NOTE
Represente un encabezado y una barra de navegación principal de página web

Atributos de marcador de sitio


ATRIBUTO DESCRIPCIÓN

dirección url La dirección URL del destino del marcador de sitio.

[nombre lógico del atributo] Puede obtener acceso a cualquier atributo del registro de
PowerApps de destino del marcador de sitio por nombre
lógico. Por ejemplo, {{ sitemarker.adx_name }}

fragmentos
Permite cargar cualquier fragmento de contenido por nombre. Si no se encuentra un fragmento con un nombre
dado, se devolverá null.

{{ snippets[Header] }}

{% assign footer = snippets[Footer] %}

{% if footer %}

{{ footer }}

{% else %}

No footer snippet was found.

{% endif %}

tablerowloop
Contiene propiedades útiles en un bloque de bucle Etiquetas de iteración.

NOTE
tablerowloop solo se puede usar dentro de una etiqueta de iteración.

Atributos
ATRIBUTO DESCRIPCIÓN

Col Devuelve el índice de la fila actual, empezando en 1.

col0 Devuelve el índice de la fila actual, empezando en 0.

col_first Devuelve true si la columna actual es la primera columna de


una fila, devuelve false si no lo es.

col_last Devuelve true si la columna actual es la última columna de


una fila, devuelve false si no lo es.
ATRIBUTO DESCRIPCIÓN

Primera Devuelve true si es la primera iteración del bucle. Devuelve


false si no es la primera iteración.

Índice La ubicación del elemento actual en la colección, donde el


primer artículo tiene una posición de 1.

index0 La ubicación del elemento actual en la colección, donde el


primer artículo tiene una posición de 0.

Última Devuelve true si es la última iteración del bucle. Devuelve


false si no es la última iteración.

Duración Devuelve el número de iteraciones para el de bucle ߝ el


número de elementos en la colección que se está iterando.

Rindex Número de elementos que permanecen en el bucle (duración


- índice) donde 1 es el índice del último elemento.

rindex0 Número de elementos que permanecen en el bucle (duración


- índice) donde 0 es el índice del último elemento.

Usuario
Hace referencia al usuario del portal actual, que permite el acceso a todos los atributos del registro de contacto de
PowerApps subyacente. Si ningún usuario ha iniciado sesión, esta variable será null.
El usuario es un objeto de entidad.

{% if user %}

Hello, {{ user.fullname }}!

{% else %}

Hello, anonymous user!

{% endif %}

Atributos
Además de tener todos los atributos de un objeto de entidad, el usuario tiene los siguientes atributos.

ATRIBUTO DESCRIPCIÓN

roles Devuelve los roles a los que pertenece el usuario como una
matriz.
{% if user.roles contains 'Administrators' %} User
is an administrator. {% endif %}
Nota: También puede usar el filtro has_role para probar las
suscripciones de roles individuales.
ATRIBUTO DESCRIPCIÓN

basic_badges_url Devuelve la dirección URL del servicio para recuperar las


insignias de un usuario.
Para que se muestren las insignias para un usuario, debe
incluir una etiqueta con los atributos "data-badge" y "data-
uri". Para mostrar las insignias del usuario actual:
<div data-badge data-uri='{{user.basic_badges_url
}}'></div>
Para mostrar las insignias de un usuario por Id. (Id. de usuario
variable):
`<div data-badge data-uri='{{user.basic_badges_url

weblinks
Permite cargar cualquier weblinks por nombre o Id.
Si existe el conjunto de vínculos web, se devolverá un objeto de conjunto de vínculos web. Si no se encuentra un
conjunto de vínculos web con el nombre o el Id. dado, se devolverá null.

<!-- Load web link set by ID -->

{{ weblinks[page.adx_navigation.id].name }}

<!-- Load web link set by name -->

{% assign nav = weblinks[Primary Navigation] %}

{% if nav %}

<h1>{{ nav.title | escape }}</h1>

<ul>

{% for link in nav.weblinks %}

<li>

<a href={{ link.url | escape }} title={{ link.tooltip | escape }}>

{% if link.image %}

<img src={{ link.image.url | escape }} alt={{ link.image.alternate_text | escape }} />

{% endif %}

{{ link.name | escape }}

</a>

</li>

{% endfor %}

</ul>

{% endif %}
NOTE
Represente un encabezado y una barra de navegación principal de página web |

Atributos de conjunto de vínculos web

NOTE
Un conjunto de vínculos web es un objeto de entidad, con todos los mismos atributos, además de los que se muestran a
continuación.

ATRIBUTO DESCRIPCIÓN

Copia Texto HTML del conjunto de vínculos web.

Nombre Nombre del conjunto de vínculos web.

Cargo Título del conjunto de vínculos web.

Weblinks La matriz de objetos de vínculo web asociada con el conjunto


de vínculos web.

[nombre lógico del atributo] Puede obtener acceso a cualquier atributo del registro de
PowerApps del conjunto de vínculos web por nombre lógico.
Por ejemplo, {{ weblinkset.createdon }}

Atributos de vínculo web

NOTE
Un vínculo web es un objeto de entidad, con todos los mismos atributos, además de los que se muestran a continuación.

ATRIBUTO DESCRIPCIÓN

Descripción Descripción HTML del vínculo web.

display_image_only Atributo booleano que indica si el vínculo web debe


mostrarse solo como imagen, sin el texto del vínculo.

display_page_child_links Atributo booleano que indica si el vínculo web debe mostrar


vínculos a páginas secundarias del mapa del sitio de la
página vinculada, como vínculos secundarios.

Imagen El objeto de imagen de vínculo web para este vínculo. Este


atributo será nulo si no hay imagen presente.

is_external Atributo booleano que indica si la dirección URL de destino


del vínculo web es a un sitio externo (en lugar de una página
del portal interno).

is_sitemap_ancestor Devuelve true si la dirección URL del vínculo web hace


referencia a un antepasado del nodo del mapa del sitio actual,
de lo contrario false.
ATRIBUTO DESCRIPCIÓN

is_sitemap_current Devuelve true si la dirección URL del vínculo web hace


referencia a un nodo del mapa del sitio actual, de lo contrario
false.

Nombre Nombre/título del vínculo web.

Nofollow Atributo booleano que indica si el vínculo web se debe marcar


como rel=nofollow.

open_in_new_window Atributo booleano que indica si el vínculo web se debe abrir


en una nueva ventana/pestaña del explorador cuando se
selecciona.

Información sobre herramientas Texto de información sobre herramientas para el vínculo web.

dirección url Dirección URL del vínculo web.

Weblinks La matriz de objetos de vínculo web secundarios asociada con


el vínculo web.

[nombre lógico del atributo] Puede obtener acceso a cualquier atributo del registro de
PowerApps del vínculo web por nombre lógico. Por ejemplo,
{{ weblink.createdon }}

Atributos de imagen de vínculos web


ALTERNATE_TEX T TEX TO ALTERNATIVO PARA LA IMAGEN.

Alto Entero que contiene el alto especificado de la imagen. Si no se


proporcionó ningún valor de alto, este atributo será nulo.

dirección url Dirección URL de la imagen.

Ancho Entero que contiene el ancho especificado de la imagen. Si no


se proporcionó ningún valor de ancho, este atributo será
nulo.

sitio web
Hace referencia al sitio web del portal, que permite el acceso a todos los atributos del registro del sitio web de
PowerApps (adx_website) para el portal.

NOTE
El sitio web es un objeto de entidad, con todos los mismos atributos.

Código

{{ website.adx_name }} ({{ website.id }})

Salida
Community Portal (936DA01F-9ABD-4d9d-80C7-02AF85C822A8)

Vea también
Tipos Liquid
Etiquetas de Liquid
Filtros de Liquid
Etiquetas de Liquid disponibles
25/11/2019 • 2 minutes to read • Edit Online

Las etiquetas conforman la lógica de programación que indica a las plantillas qué deben hacer. Las etiquetas
están envueltas en {% %}.

{% if user.fullname == 'Dave Bowman' %} Hello, Dave. {% endif %}

Control de espacio en blanco


Normalmente Liquid representa todo lo que está fuera de la variable y bloques de etiqueta textualmente, con
todo el espacio en blanco como se encuentra. En algunos casos no conviene el espacio en blanco adicional, pero
sí dar formato a la plantilla limpiamente, lo que requiere espacio en blanco.
Puede indicar al motor que elimine todo el espacio en blanco inicial o final agregando un guión (-) a la etiqueta
de bloque inicial o final.
Código

{% for i in (1..5) --%}

{{ i }}

{%-- endfor %}

Salida

12345

Vea también
Tipos Liquid
Objetos de Liquid
Filtros de Liquid
Etiquetas del flujo de control
25/11/2019 • 2 minutes to read • Edit Online

Las etiquetas del flujo de control determinan qué bloque de código se debe ejecutar y qué contenido se debe
representar según las condiciones dadas. Las condiciones se crean mediante los operadores de Liquid disponibles,
o simplemente se basan en si un valor determinado es verdadero o falso.

if
Ejecuta un bloque de código si se cumple una condición determinada.

{% if user.fullname == 'Dave Bowman' %}

Hello, Dave.

{% endif %}

unless
Al igual que if, ejecuta un bloque de código si no se cumple una condición determinada.

{% unless page.title == 'Home' %}

This is not the Home page.

{% endunless %}

elsif/else
Agrega más condiciones a un bloque if o unless.

{% if user.fullname == 'Dave Bowman' %}

Hello, Dave.

{% elsif user.fullname == 'John Smith' %}

Hello, Mr. Smith.

{% else %}

Hello, stranger.

{% endif %}

case/when
Una instrucción de cambio para comparar una variable con diferentes valores, y ejecutar otro bloque de código
para cada valor.
{% case user.fullname %}

{% when 'Dave Bowman' %}

Hello, Dave.

{% when 'John Smith' %}

Hello, Mr. Smith.

{% else %}

Hello, stranger.

{% endcase %}

Vea también
Etiquetas de iteración
Etiquetas variables
Etiquetas de plantilla
Etiquetas de entidad de PowerApps common data service
Etiquetas de iteración
25/11/2019 • 4 minutes to read • Edit Online

Las etiquetas de iteración se usan para ejecutar/representar un bloque de código repetidamente.

para
Ejecuta un bloque de código repetidamente. Suele utilizarse para iterar los elementos en una matriz o un
diccionario.
En el bloque de etiquetas, el objeto forloop está disponible.
Código

{% for child_page in page.children %}

<a href={{ child_page.url }}>{{ child_page.title }}</a>

{% endfor %}

Salida

<a href=/parent/child1/>Child 1</a>

<a href=/parent/child2/>Child 2</a>

<a href=/parent/child3/>Child 3</a>

Parámetros
Estos parámetros de for pueden utilizarse solos o en combinación.
limit
Sale del bucle después de un número determinado de elementos.
Código

{% for child_page in page.children limit:2 %}

<a href={{ child_page.url }}>{{ child_page.title }}</a>

{% endfor %}

Salida

<a href=/parent/child1/>Child 1</a>

<a href=/parent/child2/>Child 2</a>

offset
Inicia el bucle en un índice determinado.
Código

{% for child_page in page.children offset:1 %}

<a href={{ child_page.url }}>{{ child_page.title }}</a>

{% endfor %}

Salida

<a href=/parent/child2/>Child 2</a>

<a href=/parent/child3/>Child 3</a>

range
Define un intervalo de números para recorrer en bucle.
Código

{% assign n = 4 %}

{% for i in (2..n) %}

{{ i }}

{% endfor %}

{% for i in (10..14) %}

{{ i }}

{% endfor }}

Salida

2 3 4

10 11 12 14

reversed
Itera a través del bucle en orden inverso, empezando por el último elemento.
Código

{% for child_page in page.children reversed %}

<a href={{ child_page.url }}>{{ child_page.title }}</a>

{% endfor %}

Salida
<a href=/parent/child3/>Child 3</a>

<a href=/parent/child2/>Child 2</a>

<a href=/parent/child1/>Child 1</a>

cycle
Recorre en bucle un grupo de cadenas y los extrae en el orden en que se pasaron como parámetros. Cada vez
que se llamada a un ciclo, se extrae la siguiente cadena que se pasó como parámetro.
Código

{% for item in items %}

<div class={% cycle 'red', 'green', 'blue' %}> {{ item }} </div>

{% end %}

Salida

<div class=red> Item one </div>

<div class=green> Item two </div>

<div class=blue> Item three </div>

<div class=red> Item four </div>

<div class=green> Item five</div>

tablerow
Genera una tabla HTML. Debe ir entre etiquetas HTML <table> de apertura y </table> de cierre.
En el bloque de etiquetas tablerow, el tablerowloop está disponible.
Código

<table>

{% tablerow child_page in page.children %}

{{ child_page.title }}

{% endtablerow %}

</table>

Salida
<table>

<tr class=row1>

<td class=col1>

Child Page 1

</td>

<td class=col2>

Child Page 2

</td>

<td class=col3>

Child Page 3

</td>

<td class=col4>

Child Page 4

</td>

</tr>

</table>

Parámetros
Estos parámetros de tablerow pueden utilizarse solos o en combinación.
Salida
<table>

<tr class=row1>

<td class=col1>

Child Page 1

</td>

<td class=col2>

Child Page 2

</td>

</tr>

<tr class=row2>

<td class=col3>

Child Page 3

</td>

<td class=col4>

Child Page 4

</td>

</tr>

</table>

Código

<table>

{% tablerow child_page in page.children cols:2 %}

{{ child_page.title }}

{% endtablerow %}

</table>

Dicta el número de filas que debe tener la tabla generada.


cols
limit
Sale del bucle después de un número determinado de elementos.
Código
<table>

{% tablerow child_page in page.children limit:2 %}

{{ child_page.title }}

{% endtablerow %}

</table>

Salida

<table>

<tr class=row1>

<td class=col1>

Child Page 1

</td>

<td class=col2>

Child Page 2

</td>

</tr>

</table>

offset

Inicia el bucle en un índice determinado.


Código

<table>

{% tablerow child_page in page.children offset:2 %}

{{ child_page.title }}

{% endtablerow %}

</table>

Salida
<table>

<tr class=row1>

<td class=col1>

Child Page 3

</td>

<td class=col2>

Child Page 4

</td>

</tr>

</table>

range
Define un intervalo de números para recorrer en bucle.
Código

<table>

{% tablerow i in (1..3) %}

{{ i }}

{% endtablerow %}

</table>

Vea también
Etiquetas de flujo de control Etiquetas de variable Etiquetas de plantilla Etiquetas de entidad de PowerApps
Common Data Service
Etiquetas variables
25/11/2019 • 2 minutes to read • Edit Online

Las etiquetas variables se usan para crear nuevas variables de Liquid.

asignar
Crea una nueva variable. Las asignaciones también pueden filtros para modificar el valor.
Código

{% assign is_valid = true %}

{% if is_valid %}

It is valid.

{% endif %}

{% assign name = dave bowman' | upcase %}

{{ name }}

Salida

It is valid.

DAVE BOWMAN

capture
Captura el contenido en su bloque y lo asigna a una variable. Este contenido se puede representar más adelante
utilizando etiquetas de salida.
Código

{% capture hello %}Hello, {{ user.fullname }}.{% endcapture %}

{{ hello }}

{{ hello }}

Salida

Hello, DAVE BOWMAN.

Hello, DAVE BOWMAN.

Vea también
Etiquetas del flujo de control
Etiquetas de iteración
Etiquetas de plantilla
Etiquetas de entidad de PowerApps common data service
Etiquetas de plantilla
25/11/2019 • 2 minutes to read • Edit Online

Las etiquetas de plantilla controlan el resultado de una plantilla de varias formas, y permiten combinar varias
plantillas en una sola.

include
Incluye el contenido de una plantilla en otra, por nombre. En los portales de PowerApps, el origen de esta otra
plantilla será normalmente una plantilla web. Esto permite la reutilización de fragmentos comunes de plantilla en
varios lugares.
Cuando una plantilla se incluye en otra, la plantilla incluida tendrá acceso a las variables definidas en la plantilla
primaria.
{% include 'My Template' %}

También es posible pasar cualquier número de parámetros con nombre a la etiqueta include. Estos a continuación
se definirán como variables de la plantilla incluida.
{% include 'My Template' a:x, b:y %}

block
Usado junto con extends para proporcionar herencia de plantilla. Vea extends para uso.

extends
Usado junto con la etiqueta block para proporcionar herencia de plantilla. Esto permite que varias plantillas usen
un diseño compartido, al tiempo que reemplazan áreas específicas del diseño primario.
En los portales de PowerApps, el nombre de la plantilla primaria suministrado a la etiqueta normalmente hará
referencia al nombre de una plantilla web.
Cuando se utiliza extends, debe ser el primer contenido de la plantilla, y solo puede ir seguido de una o más
etiquetas block.
Si un bloque definido en la plantilla principal no se reemplaza, su contenido en la plantilla primaria (si lo hay) se
representarán.

comentario
Permite dejar código no representado dentro una plantilla de Liquid. No se representará ningún contenido dentro
del bloque y no se ejecutará ningún código de Liquid dentro.
Código
Hello{% comment %}, {{ user.fullname }}{% endcomment %}. My name is Charles.

Salida
Hello. My name is Charles.
raw
Permite el resultado de código de Liquid en una página sin analizarlo ni ejecutarlo.
Salida
Hello, {{ user.fullname }}. My name is Charles.

Vea también
Etiquetas del flujo de control
Etiquetas de iteración
Etiquetas variables
Etiquetas de entidad de PowerApps common data service
Etiquetas de entidad de PowerApps Common Data
Service.
25/11/2019 • 29 minutes to read • Edit Online

Las etiquetas de entidad de PowerApps se usan para cargar y mostrar los datos de PowerApps, o usar otros
servicios de marco de portales de PowerApps. Estos etiquetas son extensiones específicas de PowerApps del
lenguaje Liquid.

Gráfico
Agrega un gráfico PowerApps a una página web. La etiqueta del gráfico puede añadirse en el campo Copiar en
una página web o en el campo Origen en una Plantilla web. Para ver los pasos para agregar un gráfico de
PowerApps en una página web, consulte Agregar un gráfico a una página web en el portal.

{% chart id:"EE3C733D-5693-DE11-97D4-00155DA3B01E" viewid:"00000000-0000-0000-00AA-000010001006" %}

Parámetros
Existen dos parámetros que se ofrecerán junto con la etiqueta del gráfico: id. de gráfico y viewid.
Id. de gráfico
Identificador de visualización del gráfico. Puede obtener este elemento si exporta el gráfico.
viewid
Identificador de la entidad cuando se abre en el editor de vistas.

powerbi
Agrega los paneles e informes de Power BI dentro de las páginas. La etiqueta del gráfico puede añadirse en el
campo Copiar en una página web o en el campo Origen en una plantilla web. Para ver los pasos para agregar
un informe o una panel de Power BI a una página web en el portal, consulte Adición de informes o paneles de
Power BI a una página web en el portal.

NOTE
Para que la etiqueta funcione, debe habilitar la integración de Power BI desde el Centro de administración de portales de
PowerApps. Si la integración de Power BI no está habilitada, el panel o el informe no se mostrará.

Parámetros
La etiqueta powerbi acepta los siguientes parámetros.
path
Ruta del informe o el panel de Power BI. Si el informe o el panel de Power BI son seguros, debe proporcionar
el tipo de autenticación.

{% powerbi path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/reports/00000000-0000-
0000-0000-000000000001/ReportSection01" %}
authentication_type
Tipo de autenticación necesaria para el informe o el panel de Power BI. Los valores válidos para este parámetro
son:
Anónimo: Permite insertar publicaciones en informes de Power BI web. El tipo de autenticación
predeterminado es Anónimo.
AAD: Permitir compartir informes Power BI o los paneles Power BI Azure Active Directory a los
usuarios autenticados.
powerbiembedded: Permite compartir los informes o los paneles seguros de Power BI con usuarios
externos que no tienen licencia de Power BI o configuración de autenticación Azure Active Directory.
Para obtener información sobre la configuración del servicio Power BI Embedded, consulte Habilitar el
servicio Power BI Embedded.
Mientras agrega el informe o el panel seguro de Power BI, asegúrese de que se comparte con servicios Azure
Active Directory o Power BI Embedded del portal.

NOTE
Los valores del parámetro authentication_type no distinguen entre mayúsculas y minúsculas.

{% powerbi authentication_type:"AAD" path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-


000000000000/reports/00000000-0000-0000-0000-000000000001/ReportSection01" %}

También puede filtrar el informe por uno o varios valores. La sintaxis para filtrar un informe es:
URL?filter=Tabla/Campo eq 'valor'
Por ejemplo, supongamos que desea filtrar el informe para ver los datos para un contacto Bert Hair. Debe
anexar la dirección URL con lo siguiente:
?filter=Executives/Executive eq 'Bert Hair'
El código completado será:

{% powerbi authentication_type:"AAD" path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-


000000000000/reports/00000000-0000-0000-0000-000000000001/ReportSection01?filter=Executives/Executive eq
'Bert Hair'" %}

Más información sobre cómo filtrar un informe: Filtrar un informe usando parámetros de cadena de consulta
en la dirección URL

NOTE
El informe anónimo no admite filtros.

También puede crear una ruta dinámica mediante la variable de Liquid capture como se ve a continuación:

{% capture pbi_path %}https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/reports/00000000-


0000-0000-0000-000000000001/ReportSection01?filter=Executives/Executive eq '{{user.id}}'{% endcapture %}
{% powerbi authentication_type:"AAD" path:pbi_path %}

Más información sobre la variable de Liquid: Etiquetas de variables


tileid
Muestra la ventana especificada del panel. Debe proporcionar el Id. de la ventana.

{% powerbi authentication_type:"AAD" path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-


000000000000/dashboards/00000000-0000-0000-0000-000000000001" tileid:"00000000-0000-0000-0000-000000000002"
%}

roles.
Roles asignados al informe Power BI. Este parámetro funciona únicamente cuando el parámetro
authentication_type se establece en powerbiembedded.
Si ha definido roles en Power BI y los ha asignado a informes, se deben especificar los roles apropiados en la
etiqueta Liquid powerbi . Los roles le permite filtre los datos que se mostrarán en un informe. Puede
especificar varios roles separados por comas. Para obtener más información sobre la definición de roles en
Power BI, consulte Seguridad de nivel de fila (RLS ) con Power BI.

{% powerbi authentication_type:"powerbiembedded" path:"https://app.powerbi.com/groups/00000000-0000-0000-


0000-000000000000/reports/00000000-0000-0000-0000-000000000000/ReportSection2"
roles:"Region_East,Region_West" %}

Si ha asignado un rol a un informe de Power BI, y no especificó el parámetro roles en la etiqueta Liquid ni
especificó un rol del parámetro, se mostrará un error.

TIP
Si desea usar los roles web definidos en el portal como roles Power BI, puede definir una variable y asignarla roles web.
Puede usar posteriormente la variable definido en la etiqueta Liquid.
Digamos que ha definido dos roles web como Region_East y Region_West en el portal. Puede unirlos con el código:
{% assign webroles = user.roles | join: ", " %}

En el fragmento de código anterior, webroles es una variable y los roles web de Region_East y de Region_West se
almacenarán en ella.
Use la variable webroles como sigue en la etiqueta Liquid:
{% powerbi authentication_type:"powerbiembedded" path:"https://app.powerbi.com/groups/00000000-0000-
0000-0000-000000000000/reports/00000000-0000-0000-0000-000000000000/ReportSection2" roles:webroles%}

editable
Representa un objeto CMS de portales de PowerApps como editable en el portal, para usuarios con permiso
de edición de contenido para ese objeto. Los objetos editables son página, fragmentos y weblinks.
{% editable page 'adx_copy' type: 'html', title: 'Page Copy', escape: false, liquid: true %}

{% editable snippets Header type: 'html' %}

<!--

An editable web link set required a specific DOM structure, with

certain classes on the containing element, as demonstrated here.

-->

{% assign primary_nav = weblinks[Primary Navigation] %}

{% if primary_nav %}

<div {% if primary_nav.editable %}class=xrm-entity xrm-editable-adx_weblinkset{% endif %}>

<ul>

<!-- Render weblinks... -->

</ul>

{% editable primary_nav %}

</div>

{% endif %}

Parámetros
El primer parámetro proporcionado a editable es el objeto editable. Por ejemplo, esto puede ser un conjunto de
vínculos web, fragmentos o la página actual. El segundo parámetro opcional es para especificar un nombre de
atributo o una clave dentro de ese objeto que se debe representar y editar. Esto puede ser el nombre de un
atributo de entidad, o un nombre de fragmento, por ejemplo.
Después de estos parámetros iniciales, la etiqueta admite varios parámetros opcionales con nombre.
clase
Especifica un valor de atributo class para el elemento raíz representado por esta etiqueta.
default
Un valor predeterminado que se representará en caso de que el elemento editable no tenga ningún valor.
escape
Un valor booleano que indica si un valor generado por esta etiqueta se codificará como HTML. De forma
predeterminada, es false.
liquid
Un valor booleano que indica si se procesará algún código de plantilla Liquid encontrado dentro del valor de
texto representado por esta etiqueta. De forma predeterminada, es true.
tag
El nombre de las etiquetas HTML contenedoras que representará esta etiqueta. Esta etiqueta representará
elementos div de forma predeterminada. Se recomienda generalmente elegir entre div o span como valor de
este parámetro.
title
Especifica una etiqueta para este elemento editable en la interfaz de edición de contenido. Si no se ofrece
ninguna, una etiqueta descriptiva se generará automáticamente.
type
Un valor de cadena que indica el tipo de interfaz de edición que se mostrará, para valores del texto
modificables. Los valores válidos para este parámetro son html o texto. html es la opción predeterminada.

entitylist
Carga una determinada lista de entidades, por nombre o Id. Puede obtener acceso a las propiedades de la lista
de entidades utilizando un objeto entitylist que esté disponible en el bloque de etiqueta. Para representar los
registros de resultados reales de la lista de entidades, use la etiqueta entityview en el bloque.
Si la lista de entidades se carga correctamente, el contenido del bloque se representará. Si la lista de entidades
no se encuentra, el contenido del bloque no se representará.

{% entitylist name:My Entity List %}

Loaded entity list {{ entitylist.adx_name }}.

{% endentitylist %}

De forma predeterminada, el objeto entitylist recibirá el nombre de variable entitylist. Opcionalmente, puede
proporcionar otro nombre de variable.

{% entitylist my_list = name:My Entity List %}

Loaded entity list {{ my_list.adx_name }}.

{% endentitylist %}

Parámetros
Proporcione solo uno: id, name o key para seleccionar la lista de entidades que desea cargar.
id
Carga una lista de entidades por Id. GUID. id debe ser una cadena que se puede analizar como GUID.

{% entitylist id:936DA01F-9ABD-4d9d-80C7-02AF85C822A8 %}

Loaded entity list {{ entitylist.adx_name }}.

{% endentitylist %}

Normalmente, las cadenas GUID literales no se usarán. En su lugar, se especificará id mediante una propiedad
GUID de otra variable.

{% entitylist id:page.adx_entitylist.id %}

Loaded entity list {{ entitylist.adx_name }}.

{% endentitylist %}

name
Carga una lista de entidades por nombre.
{% entitylist name:My Entity List %}

Loaded entity list {{ entitylist.adx_name }}.

{% endentitylist %}

key
Carga una lista de entidades por ID o nombre. Si el valor de clave proporcionado se puede analizar como
GUID, la lista de entidades se cargará por Id. De lo contrario, se cargará por nombre.

<!-- key_variable can hold an ID or name -->

{% entitylist key:key_variable %}

Loaded entity list {{ entitylist.adx_name }}.

{% endentitylist %}

language_code
Un código de idioma entero de PowerApps para seleccionar las etiquetas localizadas de la lista de entidades
que se cargarán. Si no se proporciona un language_code, el idioma predeterminado de la conexión de
PowerApps de la aplicación del portal se usará.

{% entitylist name:"My Entity List", language_code:1033 %}

Loaded entity list {{ entitylist.adx_name }}.

{% endentitylist %}

entityview
Carga una vista de PowerApps dada, por nombre o Id. A continuación se puede acceder a las propiedades de la
vista ߝ de metadatos de columna de la vista, registros paginados de resultados, etc. utilizando un objeto
entityview que estará disponible en el bloque de etiquetas.
Si la vista se carga correctamente, el contenido del bloque se representará. Si la vista no se encuentra, el
contenido del bloque no se representará.

{% entityview logical_name:'contact', name:"Active Contacts" %}

Loaded entity view with {{ entityview.total_records }} total records.

{% endentityview %}

De forma predeterminada, el objeto entityview recibirá el nombre de variable entityview. Opcionalmente,


puede proporcionar otro nombre de variable.

{% entityview my_view = logical_name:'contact', name:"Active Contacts" %}

Loaded entity view with {{ my_view.total_records }} total records.

{% endentityview %}

Si entityview se anida en un bloque de entitylist, heredará su configuración predeterminada (tamaño de la


página de resultados, opciones de filtrado, etc.) de la lista de entidades. Si no se proporcionan parámetros id o
name de vista a entityview, cargará la vista predeterminada desde la entitylist asociada.

{% entitylist id:page.adx_entitylist.id %}

{% entityview %}

Loaded default view of the entity list associated with the current page, with {{ entityview.total_records
}} total records.

{% endentityview %}

{% endentitylist %}

Parámetros
Proporcione bien ido bien logical_name con el nombre para seleccionar la vista de PowerApps para cargar. Si
no se proporciona ninguna, y la etiqueta entityview está anidada en una etiqueta entitylist, se cargará la vista
predeterminada de la entitylist asociada.
id
id debe ser una cadena que se puede analizar como GUID.

{% entityview id:936DA01F-9ABD-4d9d-80C7-02AF85C822A8 %}

Loaded entity view {{ entityview.name }}.

{% endentityview %}

Normalmente, las cadenas GUID literales no se usarán. En su lugar, se especificará id mediante una propiedad
GUID de otra variable.

{% entityview id:request.params.view %}

Loaded entity view {{ entityview.name }} using view query string request parameter.

{% endentityview %}

logical_name
Nombre lógico de la entidad de PowerApps de la vista que se va a cargar. Deben usarse junto con name.

{% entityview logical_name:'contact', name:"Active Contacts" %}

Loaded entity view with {{ entityview.total_records }} total records.

{% endentityview %}

name
El nombre de PowerApps de la vista que se cargará. Deben usarse junto con logical_name.

{% entityview logical_name:'contact', name:"Active Contacts" %}

Loaded entity view with {{ entityview.total_records }} total records.

{% endentityview %}
filter
Especifica si filtrar los resultados de la vista por usuario o cuenta. Debe tener un valor de cadena de usuario o
cuenta.

{% entityview id:request.params.view, filter:'user' %}

Loaded entity view with {{ entityview.total_records }} total records.

{% endentityview %}

Un caso de uso común es establecer este parámetro basado en una solicitud.

{% entityview id:request.params.view, filter:request.params.filter %}

Loaded entity view with {{ entityview.total_records }} total records.

{% endentityview %}

metafilter
Especifica la expresión del filtro de metadatos de la lista de entidades por la que se filtrarán los resultados de la
vista. Este parámetro solo es válido cuando entityview se utiliza junto con entitylist. En la mayoría de los casos,
este parámetro se basa en una solicitud.

{% entitylist id:page.adx_entitylist.id %}

{% entityview id:request.params.view, metafilter:request.params.mf %}

Loaded entity view with {{ entityview.total_records }} total records.

{% endentityview %}

{% endentitylist %}

order
Especifica una expresión de ordenación para ordenar los resultados de la vista. Una expresión de ordenación
puede contener uno o varios nombres lógicos del atributo de entidad, seguido de una dirección de orden de
ASC o DESC.

{% entityview id:request.params.view, order:'name ASC, createdon DESC' %}

Loaded entity view with {{ entityview.total_records }} total records.

{% endentityview %}

Un caso de uso común es establecer este parámetro basado en una solicitud.

{% entityview id:request.params.view, order:request.params.order %}

Loaded entity view with {{ entityview.total_records }} total records.

{% endentityview %}

page
Especifica la página de resultados de la vista para cargar. Si no se especifica este parámetro, la primera página
de resultados se cargará.
Este parámetro se debe pasar como un valor entero, o una cadena que se pueda analizar como un entero. Si se
proporciona un valor para este parámetro, pero el valor es nulo o no se puede analizar de otro modo como
entero, la primera página de resultados se cargará.

{% entityview id:request.params.view, page:2 %}

Loaded page {{ entityview.page }} of entity view with {{ entityview.total_records }} total records.

{% endentityview %}

Un caso de uso común es establecer este parámetro basado en una solicitud.

{% entityview id:request.params.view, page:request.params.page %}

Loaded page {{ entityview.page }} of entity view with {{ entityview.total_records }} total records.

{% endentityview %}

page_size
Especifica el número de resultados para cargar para la página de resultados actual. Si no se proporciona un
valor para este parámetro, y entityview se usa en un bloque entitylist, se usará el tamaño de página de la lista
de entidades. Si no se encuentra en un bloque de entitylist, se usará un valor predeterminado de 10.
Este parámetro se debe pasar como un valor entero, o una cadena que se pueda analizar como un entero. Si se
proporciona un valor para este parámetro, pero el valor es nulo o no se puede analizar de otro modo como
entero, se usará el tamaño de página predeterminado.

{% entityview id:request.params.view, page_size:20 %}

Loaded entity view with {{ entityview.total_records }} total records.

{% endentityview %}

Un caso de uso común es establecer este parámetro basado en una solicitud.

{% entityview id:request.params.view, page_size:request.params.pagesize %}

Loaded entity view with {{ entityview.total_records }} total records.

{% endentityview %}

search
Especifica una expresión de búsqueda por la que filtrar los resultados de la vista. Expresiones simples de
búsqueda de palabras clave filtrarán en función de si los atributos empiezan por la palabra clave. Los
comodines * también se pueden incluir en la expresión.

{% entityview id:request.params.view, search:'John\*' %}

Loaded entity view with {{ entityview.total_records }} total matching records.

{% endentityview %}
Un caso de uso compartido es establecer este parámetro basado en una solicitud, para poder establecer el
filtro de búsqueda basado en la entrada del usuario.

{% entityview id:request.params.view, search:request.params.search %}

Loaded entity view with {{ entityview.total_records }} total matching records.

{% endentityview %}

enable_entity_permissions
Especifica si se va a aplicar filtrado de permisos de entidad a los resultados de la vista. Este parámetro se
establece como false de manera predeterminada. Si entityview se usa en un bloque de entitylist, el valor de este
parámetro se heredará de la configuración de la lista de entidades.
Este parámetro se debe pasar como un valor booleano o una cadena que se pueda analizar como un booleana
(true, false). Si se proporciona un valor para este parámetro, pero el valor es nulo o no se puede analizar de
otro modo como booleano, se usará false de forma predeterminada.

{% entityview id:request.params.view, enable_entity_permissions:true %}

Loaded entity view with {{ entityview.total_records }} total records to which the user has read permission.

{% endentityview %}

language_code
Un código de idioma entero de PowerApps para seleccionar las etiquetas localizadas de vista de la entidad
(etiquetas de encabezado de columna, etc.) para cargar. Si no se proporciona un language_code, el idioma
predeterminado de la conexión de PowerApps de la aplicación del portal se usará.
Si entityview se usa dentro de un bloque entitylist, entityview heredará su configuración de código de idioma
de entitylist.

{% entityview logical_name:'contact', name:"Active Contacts", language_code:1033 %}

Loaded entity view {{ entityview.name }}.

{% endentitylist %}

searchindex
Realiza una consulta en el índice de búsqueda del portal. Puede obtener acceso a los resultados que coincidan
utilizando un searchindex que esté disponible en el bloque de etiqueta.
{% searchindex query: 'support', page: params.page, page_size: 10 %}

{% if searchindex.results.size > 0 %}

<p>Found about {{ searchindex.approximate_total_hits }} matches:</p>

<ul>

{% for result in searchindex.results %}

<li>

<h3><a href={{ result.url | escape }}>{{ result.title | escape }}</a></h3>

<p>{{ result.fragment }}</p>

</li>

{% endfor %}

</ul>

{% else %}

<p>Your query returned no results.</p>

{% endif %}

{% endsearchindex %}

De forma predeterminada, el objeto de índice de búsqueda recibirá el nombre de variable searchindex.


Opcionalmente, puede proporcionar otro nombre de variable.

{% searchindex liquid_search = query: 'support', page: params.page, page_size: 10 %}

{% if liquid_search.results.size > 0 %}

...

{% endif %}

{% endsearchindex %}

Parámetros
La etiqueta searchindex acepta los siguientes parámetros.
query
La consulta usada para que coincidan los resultados. Este parámetro se usa para aceptar la parte especificada
por el usuario de la consulta de índice (si la hay).

{% searchindex query: 'support' %}

...

{% endsearchindex %}

Un caso de uso común es establecer este parámetro basado en una solicitud.


{% searchindex query: request.params.query %}

...

{% endsearchindex %}

Este parámetro admite la sintaxis de analizador de consultas de Lucene.


filter
Consulta adicional usada para que coincidan los resultados. Este parámetro se usa para aceptar un filtro
especificado por el desarrollador para los resultados, si lo desea.

{% searchindex query: request.params.query, filter: '+statecode:0' %}

...

{% endsearchindex %}

Este parámetro admite la sintaxis de analizador de consultas de Lucene.

NOTE
La diferencia entre filter y query es aunque ambos aceptarán la sintaxis de analizador de consultas de Lucene, query está
pensada para ser más indulgente sobre la sintaxis es ߝ analizada, pues se espera que la mayoría de los usuarios finales
no conozcan esta sintaxis. Por lo tanto, en caso de que el análisis de query según la sintaxis genere un error, la consulta
completa se incluirá con caracteres de escape y enviará como texto de la consulta. filter, por otro lado, se analizará
estrictamente y devolverá un error en el caso de sintaxis no válida.

logical_names
Los nombres lógicos de entidad de PowerApps a los que los resultados coincidentes estarán restringidos,
como una cadena delimitada por comas. Si no se proporcionan, se devolverán todas las entidades que
coincidan.

{% searchindex query: request.params.query, logical_names: 'kbarticle,incident' %}

...
>
{% endsearchindex %}

page
La página de resultados de búsqueda que se devolverá. Si no se proporciona, la primera página (1) será
devuelta.

{% searchindex query: request.params.query, page: 2 %}

...

{% endsearchindex %}

Un caso de uso común es establecer este parámetro basado en una solicitud.


{% searchindex query: request.params.query, page: request.params.page %}

...

{% endsearchindex %}

page_size
El tamaño de la página de resultados que se devolverá. Si no se proporciona, se usará un tamaño
predeterminado de 10.

{% searchindex query: request.params.query, page_size: 20 %}

...

{% endsearchindex %}

entityform
Representa completamente formularios de entidad configurados por PowerApps, por nombre o Id.

NOTE
La etiqueta entityform sólo está disponible para su uso en el contenido representado en una plantilla de página basada
en plantilla web–. Intentar usar la etiqueta en una plantilla de página basada en reescritura no representará nada. Solo
puede representar una sola etiqueta entityform o webform por página. Las etiquetas entityform o webform después de
la primera no se representarán.

{% entityform name: 'My Entity Form' %}

Parámetros
name
El nombre del formulario de entidad que desea cargar.
{% entityform name:My Entity Form %}

webform
Representa completamente un formulario web configurado por PowerApps, por nombre o Id. La etiqueta
webform solo está disponible para su uso en el contenido representado en una plantilla de página basada en
plantilla web. Intentar usar la etiqueta en una plantilla de página basada en reescritura no representará nada.
Solo puede representar una sola etiqueta entityform o webform por página. Las etiquetas entityform o
webform después de la primera no se representarán.
{% webform name: 'My Web Form' %}

Parámetros
name
El nombre del formulario web que desea cargar.
{% webform name:My Web Form %}

Vea también
Etiquetas del flujo de control
Etiquetas de iteración
Etiquetas variables
Etiquetas de plantilla
Filtros de Liquid disponibles
25/11/2019 • 25 minutes to read • Edit Online

Los filtros de Liquid se usan para modificar el resultado de cadenas, números, variables y objetos. Están
separados del valor al que se aplican mediante una |.
{{ 'hal 9000' | upcase }} <!-- Output: HAL 9000 -->

Algunos filtros aceptan parámetros. Los filtros también se pueden combinar, y se aplican en orden de izquierda
a derecha.

{{ 2 | times: 2 | minus: 1 }} <!-- Output: 3 -->

{{ "Hello, " | append: user.firstname }} <!-- Output: Hello, Dave -->

La sección a continuación describe los diferentes filtros.

Filtros de matriz
Los filtros de matriz se usan para trabajar con matrices.
batch
Divide una matriz en matrices múltiples de un determinado tamaño.
Código

{% assign batches = entityview.records | batch: 2 %}

{% for batch in batches %}

<ul>

{% for item in batch %}

<li>{{ item.fullname }}</li>

{% endfor %}

</ul>

{% endfor %}

Salida
<ul>

<li>John Smith</li>

<li>Dave Thomas</li>

</ul>

<ul>

<li>Jake Johnson</li>

<li>Jack Robinson</li>

</ul>

concat
Concatena dos matrices en un matriz nueva y única.
Dado un solo elemento como parámetro, concat devuelve una nueva matriz que consiste en la matriz original,
con el elemento dado como último elemento.
Código

Group #1: {{ group1 | join: ', ' }}

Group #2: {{ group2 | join: ', ' }}

Group #1 + Group #2: {{ group1 | concat: group2 | join: ', ' }}

Group #1 + Leslie: {{ group1 | concat: 'Leslie' | join: ', ' }}

Salida

Group #1: John, Pete, Hannah

Group #2: Joan, Bill

Group #1 + Group #2: John, Pete, Hannah, Joan, Bill

Group #1 + Leslie: John, Pete, Hannah, Leslie

except
Seleccione todos los objetos de una matriz en la que un atributo determinado no tiene un valor determinado.
(Es lo contrario dewhere).
Código

{% assign redmond = entityview.records | except: 'address1_city', 'Redmond' %}

{% for item in redmond %}

{{ item.fullname }}

{% endfor %}

Salida
Jack Robinson

primero
Devuelve el primer elemento de una matriz.
first también se puede usar con la notación de punto especial, en casos en los que sea necesario usarla dentro
de una etiqueta.
Código

{% assign words = This is a run of text | split: %}

{{ words | first }}

{% if words.first == This %}

The first word is This.

{% endif %}

Salida

This

The first word is This.

group_by
Agrupa los elementos en una matriz por un atributo determinado.
Código

{% assign groups = entityview.records | group_by: 'address1_city' %}

{% for group in groups %}

{{ group.key }}:

{% for item in group.items %}

{{ item.fullname }}

{% endfor %}

{% endfor %}

Salida
Redmond:

John Smith

Dave Thomas

Jake Johnson

New York:

Jack Robinson

join
Combina los elementos de una matriz con el carácter pasado como parámetro. El resultado es una sola cadena.
Código

{% assign words = This is a run of text | split: %}

{{ words | join: , }}

Salida

This, is, a, run, of, text

Último
Devuelve el último elemento de una matriz.
last también se puede usar con la notación de punto especial, en casos en los que sea necesario usarla dentro
de una etiqueta.
Código

{% assign words = This is a run of text | split: -%}

{{ words | last }}

{% if words.last == text -%}

The last word is text.

{% endif -%}

Salida

text

The last word is text.

order_by
Devuelve los elementos de una matriz ordenada por atributo dado de los elementos de la matriz.
De manera opcional, puede proporcionar desc como segundo parámetro para ordenar los elementos en orden
descendente, en lugar de ascendente.
Código
{{ entityview.records | order_by: 'fullname' | join: ', ' }}

{{ entityview.records | order_by: 'fullname', 'desc' | join: ', ' }}

Salida

Dave Thomas, Jack Robinson, Jake Johnson, John Smith

John Smith, Jake Johnson, Jack Robinson, Dave Thomas

random
Devuelve un solo elemento seleccionado aleatoriamente de la matriz.
Código

{{ group1 | join: ', ' }}

{{ group1 | random }}

Salida

John, Pete, Hannah

Pete

select
Selecciona el valor de un atributo determinado para cada elemento de una matriz, y devuelve estos valores
como matriz.
Código

{{ entityview.records | select: 'address1_city' | join: ', ' }}

Salida

Redmond, New York

shuffle
Aplicado a una matriz, devuelve una nueva matriz con los mismos elementos, en orden aleatorizado.
Código

{{ group1 | join: ', ' }}

{{ group1 | shuffle | join: ', ' }}

Output

John, Pete, Hannah

Hannah, John, Pete


size
Devuelve el número de elementos de una matriz.
size también se puede usar con la notación de punto especial, en casos en los que sea necesario usarla dentro
de una etiqueta.
Código

{% assign words = This is a run of text | split: -%}

{{ words | size }}

{% if words.size == 6 -%}

The text contains 6 words.

{% endif -%}

Salida

The text contains 6 words.

skip
Omite un número determinado de elementos de una matriz, y devuelve el resto.
Código

{% assign words = This is a run of text | split: %}

{{ words | skip: 3 | join: ', ' }}

Salida

run, of, text

take
Toma un número determinado de elementos de la matriz, devolviendo los elementos tomados.
Código

{% assign words = This is a run of text | split: %}

{{ words | take: 3 | join: ', ' }}

Salida

This, is, a

then_by
Agrega orden posterior adicional a una matriz ya ordenada medianteorder_by.
De manera opcional, puede proporcionar desc como segundo parámetro para ordenar los elementos en orden
descendente, en lugar de ascendente.
Código

{{ entityview.records | order_by: 'address1_city' | then_by: 'fullname' | join: ', ' }}

{{ entityview.records | order_by: 'address1_city' | then_by: 'fullname', 'desc' | join: ', ' }}

Salida

Dave Thomas, Jack Robinson, Jake Johnson, John Smith

John Smith, Jake Johnson, Jack Robinson, Dave Thomas

donde
Seleccione todos los objetos de una matriz en la que un atributo determinado tiene un valor determinado.
Código

{% assign redmond = entityview.records | where: 'address1_city', 'Redmond' %}

{% for item in redmond %}

{{ item.fullname }}

{% endfor %}

Salida

John Smith

Dave Thomas

Jake Johnson

Filtros por fecha


Los filtros por fecha se pueden usar para la aritmética de fecha o para convertir valores de fecha y hora en
distintos formatos.
fecha
Aplica formato a un valor de fecha y hora con una cadena de formato .NET.
Cadenas de formato estándar de fecha y hora
Cadenas de formato personalizado de fecha y hora
Código

{{ now | date: 'g' }}

{{ now | date: 'MMMM dd, yyyy' }}

Salida
5/7/2018 7:20 AM

May 07, 2018

date_add_days
Agrega un número especificado de días enteros y fraccionarios al valor de fecha y hora. El parámetro pueden
ser positivo o negativo.
Código

{{ now }}

{{ now | date_add_days: 1 }}

{{ now | date_add_days: -2.5 }}

Salida

5/7/2018 7:20:46 AM

5/8/2018 7:20:46 AM

5/4/2018 7:20:46 PM

date_add_hours
Agrega un número especificado de horas enteras y fraccionarias al valor de fecha y hora. El parámetro pueden
ser positivo o negativo.
Código

{{ now }}

{{ now | date_add_hours: 1 }}

{{ now | date_add_hours: -2.5 }}

Salida

5/7/2018 7:20:46 AM

5/7/2018 8:20:46 AM

5/7/2018 4:50:46 AM

date_add_minutes
Agrega un número especificado de minutos enteros y fraccionarios al valor de fecha y hora. El parámetro
pueden ser positivo o negativo.
Código
{{ now }}

{{ now | date_add_minutes: 10 }}

{{ now | date_add_minutes: -2.5 }}

Salida

5/7/2018 7:20:46 AM

5/7/2018 7:30:46 AM

5/7/2018 7:18:16 AM

date_add_months
Agrega un número especificado de meses enteros al valor de fecha y hora. El parámetro pueden ser positivo o
negativo.
Código

{{ now }}

{{ now | date_add_months: 1 }}

{{ now | date_add_months: -2 }}

Salida

5/7/2018 7:20:46 AM

6/7/2018 7:20:46 AM

3/7/2018 7:20:46 AM

date_add_seconds
Agrega un número especificado de segundos enteros y fraccionarios al valor de fecha y hora. El parámetro
pueden ser positivo o negativo.
Código

{{ now }}

{{ now | date_add_seconds: 10 }}

{{ now | date_add_seconds: -1.25 }}

Salida

5/7/2018 7:20:46 AM

5/7/2018 7:20:56 AM

5/7/2018 7:20:45 AM

date_add_years
Agrega un número especificado de años enteros al valor de fecha y hora. El parámetro pueden ser positivo o
negativo.
Código

{{ now }}

{{ now | date_add_years: 1 }}

{{ now | date_add_years: -2 }}

Salida

5/7/2018 7:20:46 AM

5/7/2019 7:20:46 AM

5/7/2016 7:20:46 AM

date_to_iso8601
Aplica formato a un valor de fecha y hora de acuerdo con la norma ISO 8601. Útil para crear fuentes Atom o el
elemento HTML5 <>.
Código

{{ now | date_to_iso8601 }}

Salida

2018-05-07T07:20:46Z

date_to_rfc822
Aplica formato a un valor de fecha y hora de acuerdo con la norma RFC 822. Útil para crear fuentes RSS.
Código

{{ now | date_to_rfc822 }}

Salida

Mon, 07 May 2018 07:20:46 Z

Filtros de lista de entidades


Los filtros de lista de entidades se usan para trabajar con determinados valores de atributo entitylist y para
ayudar a crear vistas de lista de entidades.
current_sort
Dada una expresión de ordenación, devuelve la dirección de ordenación actual para un atributo determinado.
Código
{{ 'name ASC, createdon DESC' | current_sort: 'createdon' }}

Salida

DESC

metafilters
Analiza un valor JSON de entitylist filtro_definición en objetos de grupo de opciones de filtro.
metafilters se puede ofrecer opcionalmente con una consulta de filtro de atributos actual y una entitylist actual,
lo que permite que los objetos de filtro devueltos se marquen como seleccionados o no seleccionados.
Código
{% assign filters = entitylist | metafilters: params.mf, entityview %}
{% if filters.size > 0 %}
<ul id=entitylist-filters>
{% for filter in filters %}
<li class=entitylist-filter-option-group>
{% if filter.selection_mode == 'Single' %}
{% assign type = 'radio' %}
{% else %}
{% assign type = 'checkbox' %}
{% endif %}
<h4 class=entitylist-filter-option-group-label
data-filter-id={{ filter.id | h }}>
{{ filter.label | h }}
</h4>
<ul>
{% for option in filter.options %}
<li class=entitylist-filter-option>
{% if option.type == 'text' %}
<div class=input-group entitylist-filter-option-text>
<span class=input-group-addon>
<span class=fa fa-filter aria-hidden=true></span>
</span>
<input class=form-control
type=text
name={{ filter.id | h }}
value={{ option.text | h }} />
</div>
{% else %}
<div class={{ type | h }}>
<label>
<input
type={{ type | h }}
name={{ filter.id | h }}
value={{ option.id | h }}
{% if option.checked %}
checked=checked
data-checked=true{% endif %}
/>
{{ option.label | h }}
</label>
</div>
{% endif %}
</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
<button class=btn btn-default data-serialized-query=mf data-target=#entitylist-filters>Apply
Filters</button>
{% endif %}

reverse_sort
Dada una dirección de ordenación, devuelve la dirección de ordenación opuesta.
Código

<!-- Sort direction is not case-sensitive -->

{{ 'ASC' | reverse_sort }}

{{ 'desc' | reverse_sort }}

Salida
DESC

ASC

Filtros de matemáticas
Los filtros de matemáticas permiten realizar operaciones matemáticas en números.
Como con todos los filtros, los filtros de matemáticas también se pueden encadenar y se aplican en orden de
izquierda a derecha.
Código

{{ 10 | times: 2 | minus: 5 | divided_by: 3 }}

Salida

ceil
Redondea al alza un valor hasta el entero más cercano.
Código

{{ 4.6 | ceil }}

{{ 4.3 | ceil }}

Salida

divided_by
Divide un número por otro número.
Código

{{ 10 | divided_by: 2 }}

{{ 10 | divided_by: 3 }}

{{ 10.0 | divided_by: 3 }}

Salida

3.333333
floor
Redondea a la baja un valor hasta el entero más cercano.
Código

{{ 4.6 | floor }}

{{ 4.3 | floor }}

Salida

minus
Resta un número de otro número.
Código

<!-- entityview.page = 11 -->

{{ entityview.page | minus: 1 }}

{{ 10 | minus: 1.1 }}

{{ 10.1 | minus: 1 }}

Salida

10

9.1

modulo
Divide un número por otro número y devuelve el resto.
Código

{{ 12 | modulo: 5 }}

Salida

plus
Suma un número a otro número.
Código
<!-- entityview.page = 11 -->

{{ entityview.page | plus: 1 }}

{{ 10 | plus: 1.1 }}

{{ 10.1 | plus: 1 }}

Salida

12

11

11.1

round
Redondea un valor al entero más próximo o el número especificado de decimales.
Código

{{ 4.6 | round }}

{{ 4.3 | round }}

{{ 4.5612 | round: 2 }}

Salida

4.56

times
Multiplica un número por otro número.
Código

{{ 10 | times: 2 }}

{{ 10 | times: 2.2 }}

{{ 10.1 | times: 2 }}

Salida

20

20

20.2

Filtros de cadena
Los filtros de cadena manipulan cadenas.
append
Anexa una cadena al final de otra cadena.
Código

{{ 'filename' | append: '.js' }}

Salida

filename.js

capitalize
pone en mayúscula la primera palabra en una cadena.
Código

{{ 'capitalize me' | capitalize }}

Salida

Capitalize Me

downcase
Convierte una cadena en minúscula.
Código

{{ 'MIxed Case TExt' | downcase }}

Salida

mixed case text

escape
Inserta caracteres de escape HTML en una cadena.
Código

{{ '<p>test</p>' | escape }}

Salida

&lt;p&gt;test&lt;/p&gt;

newline_to_br
Inserta una etiqueta HTML de salto de línea <br /> en cada salto de línea de una cadena.
Código
{% capture text %}

{% endcapture %}

{{ text | newline_to_br }}

Salida

A<br />

B<br />

C<br />

prepend
Antepone una cadena al principio de otra cadena.
Código

{{ 'Jane Johnson' | prepend: 'Dr. ' }}

Salida

Dr. Jane Johnson

remove
Elimina todas las instancias de una subcadena de una cadena.
Código

{{ 'Hello, Dave. How are you, Dave?' | remove: 'Dave' }}

Salida

Hello, . How are you, ?

remove_first
Elimina la primera instancia de una subcadena de una cadena.
Código

{{ 'Hello, Dave. How are you, Dave?' | remove_first: 'Dave' }}

Salida

Hello, . How are you, Dave?


replace
Reemplaza todas las instancias de una cadena con una subcadena.
Código

{{ 'Hello, Dave. How are you, Dave?' | replace: 'Dave', 'John' }}

Salida

Hello, John. How are you, John?

replace_first
Reemplaza la primera instancia de una cadena con una subcadena.
Código

{{ 'Hello, Dave. How are you, Dave?' | replace_first: 'Dave', 'John' }}

Salida

Hello, John. How are you, Dave?

split
El filtro split adopta una subcadena como parámetro. La subcadena se usa como delimitador para dividir una
cadena en una matriz.
Código

{% assign words = This is a demo of the split filter | split: ' ' %}

First word: {{ words.first }}

First word: {{ words[0] }}

Second word: {{ words[1] }}

Last word: {{ words.last }}

All words: {{ words | join: ', ' }}

Salida

First word: This

First word: This

Second word: is

Last word: filter

All words: This, is, a, demo, of, the, split, filter

strip_html
Quita todas las etiquetas HTML de una cadena.
Código

<p>Hello</p>

Salida

Hello

strip_newlines
Quita las saltos de línea de una cadena.
Código

{% capture text %}

{% endcapture %}

{{ text | strip_newlines }}

Salida

ABC

text_to_html
Da formato a una cadena de texto sin formato como HTML simple. Todo el texto se codificará como HTML,
bloques de texto separados por una línea en blanco se incluirán entre etiquetas de párrafo <p>, los saltos de
línea individuales se sustituirán con <br>, y las direcciones URL se convertirán en hipervínculos.
Código

{{ note.notetext | text_to_html }}

Salida

<p>This is the first paragraph of notetext. It contains a URL: <a href="https://example.com/"


rel="nofollow">https://example.com</a></p>

<p>This is a second paragraph.</p>

truncate
Trunca una cadena hasta un número de caracteres determinado. Un punto suspensivo (...) se anexa a la cadena y
se incluye en el número de caracteres.
Código

{{ 'This is a long run of text.' | truncate: 10 }}


Salida

This is...

truncate_words
Trunca una cadena hasta un número de palabras determinado. Se anexan puntos suspensivos (...) a la cadena
truncada.
Código

{{ 'This is a long run of text.' | truncate_words: 3 }}

Salida

This is a...

upcase
Convierte una cadena en mayúscula.
Código

{{ 'MIxed Case TExt' | upcase }}

Salida

MIXED CASE TEXT

url_escape
Se insertan caracteres de escape URI en una cadena para su inclusión en una dirección URL.
Código

{{ 'This & that//' | url_escape }}

Salida

This+%26+that%2F%2F

xml_escape
Se insertan caracteres de escape XML en una cadena para su inclusión en salida XML.
Código

{{ '<p>test</p>' | xml_escape }}

Salida

&lt;p&gt;test&lt;/p&gt;
Filtros de tipo
Los filtros de tipo permiten la conversión de valores de un tipo a otro.
boolean
Intenta convertir un valor de cadena en booleano. Si el valor ya es booleano, se devolverá sin cambios. Si el
valor no se puede convertir en booleano, se devolverá null.
Este filtro también acepta on, habilitado, o sí como true, y off, deshabilitado y no como false.
Código

{{ true | boolean }}

{{ 'false' | boolean }}

{{ 'enabled' | boolean }}

{{ settings['something/enabled'] | boolean | default: false }}

Salida

true

false

true

false

decimal
Intenta convertir un valor de cadena en número decimal. Si el valor ya es un número decimal, se devolverá sin
cambios. Si el valor no se puede convertir en un número decimal, se devolverá null.
Código

{{ 10.1 | decimal }}

{{ '3.14' | decimal }}

{{ 'text' | decimal | default: 3.14 }}

Salida

10.1

3.14

3.14

integer
Intenta convertir un valor de cadena en un entero. Si el valor ya es un entero, se devolverá sin cambios. Si el
valor no se puede convertir en un entero, se devolverá null.
Código
{{ 10 | integer }}

{{ '10' | integer }}

{{ '10.1' | integer }}

{{ 'text' | integer | default: 2 }}

Salida

10

10

string
Intenta convertir un valor en su representación de cadena. Si el valor ya es una cadena, se devolverá sin
cambios. Si el valor es null, se devolverá null.

Filtros de dirección URL


Los filtros de dirección URL permiten crear o extraer partes de direcciones URL.
add_query
Anexar un parámetro de cadena de consulta a una dirección URL. Si el parámetro ya existe en la dirección URL,
el valor del parámetro se actualizará.
Si este filtro se aplica a una dirección URL absoluta completa, una dirección URL absoluta actualizada será el
resultado. Si se aplica a una ruta, una ruta actualizada será el resultado.
Código

{{ 'https://example.com/path?page=1' | add_query: 'foo', 'bar' }}

{{ '/path?page=1' | add_query: 'page', 2 }}

Salida

https://example.com/path?page=1&foo=bar

/path?page=2

base
Obtiene la dirección URL de una dirección URL determinada.
Código

{{ 'https://example.com/path?foo=bar&page=2' | base }}

Salida
https://example.com

host
Obtiene la parte de host de una dirección URL.
Código

{{ 'https://example.com/path?foo=bar&page=2' | host }}

Salida

example.com

path
Obtiene la parte de ruta de una dirección URL.
Código

{{ 'https://example.com/path?foo=bar&page=2' | path }}

{{ '/path?foo=bar&page=2' | path }}

Salida

/path

/path

path_and_query
Obtiene la parte de ruta y consulta de una dirección URL.
Código

{{ 'https://example.com/path?foo=bar&page=2' | path_and_query }}

{{ '/path?foo=bar&page=2' | path_and_query }}

Salida

/path?foo=bar&page=2

/path?foo=bar&page=2

port
Obtiene el número de puerto una dirección URL.
Código
{{ 'https://example.com/path?foo=bar&page=2' | port }}

{{ 'https://example.com/path?foo=bar&page=2' | port }}

{{ 'https://example.com:9000/path?foo=bar&page=2' | port }}

Salida

80

443

9000

remove_query
Quita un parámetro de cadena de consulta de una dirección URL. Si el parámetro no existe en la dirección URL,
la dirección URL se devuelve sin cambios.
Si este filtro se aplica a una dirección URL absoluta completa, una dirección URL absoluta actualizada será el
resultado. Si se aplica a una ruta, una ruta actualizada será el resultado.
Código

{{ 'https://example.com/path?page=1' | remove_query: 'page' }}

{{ '/path?page=1' | remove_query: 'page' }}

Salida

https://example.com/path

/path

scheme
Obtiene la parte de esquema de una dirección URL.
Código

{{ 'https://example.com/path?foo=bar&page=2' | scheme }}

{{ 'https://example.com/path?foo=bar&page=2' | scheme }}

Salida

http

https

Filtros adicionales
Estos filtros proporcionan funcionalidad general útil.
default
Devuelve un valor predeterminado para cualquier variable sin valor asignado (es decir, null).
Código

{{ snippets[Header] | default: 'My Website' }}

Salida

<!-- If a snippet with the name Header returns null -->

My Website

file_size
Aplicado un valor de número que representa varios bytes, devuelve un tamaño de archivo con formato con una
unidad de escala adecuada.
Opcionalmente, puede pasarse un parámetro de precisión para controlar el número de decimales en el
resultado. La precisión predeterminada es 1.
Código

{{ 10000000 | file_size }}

{{ 2050 | file_size: 0 }}

{{ entity.notes.first.filesize | file_size: 2 }}

Salida

9.5 MB

2 KB

207.14 KB

has_role
Si se aplica a un usuario, devuelve true si el usuario pertenece al rol determinado. Devuelve false si no.
Código

{% assign is_admin = user | has_role: 'Administrators' %}

{% if is_admin %}

User is an administrator.

{% endif %}

liquid
Representa una cadena como código de Liquid. Este código tendrá acceso al contexto de ejecución de Liquid
actual (variables, etc.).

NOTE
Este filtro se debe usar con precaución y debe aplicarse normalmente sólo a los valores que están bajo el control exclusivo
de los autores del contenido del portal, u otros usuarios en los que se puede confiar para escribir código de Liquid.
Código

{{ page.adx_copy | liquid }}

Vea también
Almacenar contenido de origen con plantillas web
Comprender operadores de Liquid Tipos de Liquid
Objetos de Liquid
Etiquetas de Liquid
Filtros de Liquid
Crear una plantilla de página personalizada
25/11/2019 • 3 minutes to read • Edit Online

En este ejemplo, crearemos una plantilla de páginas personalizada, usando Liquid y una plantilla de página que se
basa en una plantilla web. Más información:Almacenar contenido de origen con plantillas web. Nuestra objetivo es
crear una plantilla simple de dos columnas que use un conjunto de vínculos web como navegación del lado
izquierdo, con el contenido de páginas a la derecha.

Paso 1. Crear una plantilla web y escribir el código de plantilla de Liquid


Primero, crearemos nuestra plantilla web y escribiremos el código de plantilla de Liquid. Es probable que
reutilicemos algunos elementos comunes de esta plantilla en plantillas futuras. De esta manera, crearemos una
plantilla base común que ampliaremos con nuestra plantilla específica. Nuestra plantilla base proporcionará
vínculos de ruta de navegación y nuestro título/encabezado de página, así como el diseño de una columna:

TIP
Lea sobre herencia de plantilla con las etiquetas block y extends: Etiquetas de plantilla
Diseño de dos columnas (plantilla web)

<div class=container>
<div class=page-heading>
<ul class=breadcrumb>
{% for crumb in page.breadcrumbs -%}
<li>
<a href={{ crumb.url }}>{{ crumb.title }}</a>
</li>
{% endfor -%}
<li class=active>{{ page.title }}</li>
</ul>
<div class=page-header>
<h1>{{ page.title }}</h1>
</div>
</div>
<div class=row>
<div class=col-sm-4 col-lg-3>
{% block sidebar %}{% endblock %}
</div>
<div class=col-sm-8 col-lg-9>
{% block content %}{% endblock %}
</div>
</div>
</div>

Paso 2: Crear una nueva plantilla web que amplíe nuestra plantilla de
diseño base
Utilice el conjunto de vínculos web de navegación asociado con la página actual para nuestros vínculos de
navegación para crear una nueva plantilla web que amplía nuestra plantilla de diseño base.
TIP
Familiarícese sobre cómo cargar conjuntos de vínculos web mediante el objeto weblinks.

Navegación izquierda por weblinks (plantilla web)


{% extends 'Two Column Layout' %}

{% block sidebar %}
{% assign weblinkset_id = page.adx_navigation.id %}
{% if weblinkset_id %}
{% assign nav = weblinks[page.adx_navigation.id] %}
{% if nav %}
<div class=list-group>
{% for link in nav.weblinks %}
<a class=list-group-item href={{ link.url }}>
{{ link.name }}
</a>
{% endfor %}
</div>
{% endif %}
{% endif %}
{% endblock %}

{% block content %}
<div class=page-copy>
{{ page.adx_copy }}
</div>
{% endblock %}

Paso 3: Crear una nueva plantilla de página web basada en la plantilla


web
En este paso, crearemos una nueva plantilla de página que se base en la plantilla web que creamos en el paso
anterior.
Paso 4: Crear una página web para mostrar contenido
Ahora, todo lo que tiene que hacer es crear una página web que use nuestra plantilla de páginas y tenga un
conjunto de vínculos web asociado, y obtenemos el resultado.
Vea también
Crear una plantilla de página personalizada para representar una fuente RSS
Representar la lista de entidades asociada a la página actual
Represente un encabezado y una barra de navegación principal de página web
Represente hasta tres niveles de jerarquía de páginas mediante la navegación híbrida
Represente hasta tres niveles de jerarquía de páginas
mediante la navegación híbrida
25/11/2019 • 5 minutes to read • Edit Online

Este ejemplo representa un tipo de navegación híbrida, en función del mapa del sitio del portal, que representa
hasta tres niveles de jerarquía de páginas. Las reglas para este componente son:
Las páginas antecesoras de la página actual se muestra hasta la página principal (o la profundidad máxima
especificada por el parámetro depth_offset opcional).
Si la página actual tiene secundarias, estas páginas secundarias se mostrarán.
Si la página actual no tiene secundarias, se verán las páginas del mismo nivel que la página actual.

{% assign depth_offset = depth_offset | default: 0 %}


{% assign current_page = current_page | default: page %}
{% assign current_depth = 0 %}

{% if current_page.children.size > 0 %}
{% assign leaf_page = false %}
{% else %}
{% assign leaf_page = true %}
{% endif %}

{% capture page_item %}
<li class=active>
<a href={{ current_page.url | h }} title={{ current_page.title | h }}>
{% if leaf_page %}
<span class=fa fa-fw aria-hidden=true></span>
{% else %}
<span class=fa fa-fw fa-caret-down aria-hidden=true></span>
{% endif %}
{{ current_page.title | h }}
</a>
{% unless leaf_page %}
<ul>
{% for child in current_page.children %}
<li>
<a href={{ child.url | h }} title={{ child.title | h }}>
{% if child.children.size > 0 %}
<span class=fa fa-fw fa-caret-right aria-hidden=true></span>
{% else %}
<span class=fa fa-fw aria-hidden=true></span>
{% endif %}
{{ child.title | h }}
{% if child.entity.logical_name == 'adx_shortcut' %}
&nbsp;<span class=fa fa-fw fa-external-link aria-hidden=true></span>
{% elsif child.entity.logical_name == 'adx_webfile' %}
&nbsp;<span class=fa fa-fw fa-file-o aria-hidden=true><span class=sr-only>(File)</span></span>
{% endif %}
</a>
</li>
{% endfor %}
</ul>
{% endunless %}
</li>
{% endcapture %}

<ul class=side-nav role=navigation>


{% assign crumb_count = 0 %}
{% assign leaf_mode = false %}
{% for crumb in current_page.breadcrumbs %}
{% unless current_depth < depth_offset %}
{% if forloop.last and leaf_page %}
{% assign leaf_mode = true %}
{% else %}
<li>
<a href={{ crumb.url | h }} title={{ crumb.title | h }}>
<span class=fa fa-fw fa-caret-right aria-hidden=true></span>
{{ crumb.title | h }}
</a>
</li>
{% endif %}
{% assign crumb_count = crumb_count | plus: 1 %}
{% endunless %}
{% assign current_depth = current_depth | plus: 1 %}
{% endfor %}

{% if crumb_count < 1 %}
{{ page_item }}
{% elsif crumb_count < 2 and leaf_mode %}
{% for parent_sibling in current_page.parent.parent.children %}
{% if parent_sibling.url == current_page.parent.url %}
<li>
<a href={{ current_page.parent.url | h }} title={{ current_page.parent.title | h }}>
<span class=fa fa-fw fa-caret-down aria-hidden=true></span>
{{ current_page.parent.title | h }}
</a>
<ul>
{% for sibling in current_page.parent.children %}
<li {% if sibling.url == current_page.url %}class=active{% endif %}>
<a href={{ sibling.url | h }} title={{ sibling.title | h }}>
{% if sibling.children.size > 0 %}
<span class=fa fa-fw fa-caret-right aria-hidden=true></span>
{% else %}
<span class=fa fa-fw aria-hidden=true></span>
{% endif %}
{{ sibling.title | h }}
{% if sibling.entity.logical_name == 'adx_shortcut' %}
&nbsp;<span class=fa fa-fw fa-external-link aria-hidden=true></span>
{% elsif sibling.entity.logical_name == 'adx_webfile' %}
&nbsp;<span class=fa fa-fw fa-file-o aria-hidden=true><span class=sr-only>(File)</span>
</span>
{% endif %}
</a>
</li>
{% endfor %}
</ul>
</li>
{% else %}
<li>
<a href={{ parent_sibling.url | h }} title={{ parent_sibling.title | h }}>
{% if parent_sibling.children.size > 0 %}
<span class=fa fa-fw fa-caret-right aria-hidden=true></span>
{% else %}
<span class=fa fa-fw aria-hidden=true></span>
{% endif %}
{{ parent_sibling.title | h }}
{% if parent_sibling.entity.logical_name == 'adx_shortcut' %}
&nbsp;<span class=fa fa-fw fa-external-link aria-hidden=true></span>
{% elsif parent_sibling.entity.logical_name == 'adx_webfile' %}
&nbsp;<span class=fa fa-fw fa-file-o aria-hidden=true><span class=sr-only>(File)</span></span>
{% endif %}
</a>
</li>
{% endif %}
{% endfor %}
{% else %}
<li>
<ul>
{% if leaf_mode %}
{% for parent_sibling in current_page.parent.parent.children %}
{% if parent_sibling.url == current_page.parent.url %}
<li>
<a href={{ current_page.parent.url | h }} title={{ current_page.parent.title | h }}>
<span class=fa fa-fw fa-caret-down aria-hidden=true></span>
{{ current_page.parent.title | h }}
</a>
<ul>
{% for sibling in current_page.parent.children %}
<li {% if sibling.url == current_page.url %}class=active{% endif %}>
<a href={{ sibling.url | h }} title={{ sibling.title | h }}>
{% if sibling.children.size > 0 %}
<span class=fa fa-fw fa-caret-right aria-hidden=true></span>
{% else %}
<span class=fa fa-fw aria-hidden=true></span>
{% endif %}
{{ sibling.title | h }}
{% if sibling.entity.logical_name == 'adx_shortcut' %}
&nbsp;<span class=fa fa-fw fa-external-link aria-hidden=true></span>
{% elsif sibling.entity.logical_name == 'adx_webfile' %}
&nbsp;<span class=fa fa-fw fa-file-o aria-hidden=true><span class=sr-only>(File)
</span></span>
{% endif %}
</a>
</li>
{% endfor %}
</ul>
</li>
{% else %}
<li>
<a href={{ parent_sibling.url | h }} title={{ parent_sibling.title | h }}>
{% if parent_sibling.children.size > 0 %}
<span class=fa fa-fw fa-caret-right aria-hidden=true></span>
{% else %}
<span class=fa fa-fw aria-hidden=true></span>
{% endif %}
{{ parent_sibling.title | h }}
{% if parent_sibling.entity.logical_name == 'adx_shortcut' %}
&nbsp;<span class=fa fa-fw fa-external-link aria-hidden=true></span>
{% elsif parent_sibling.entity.logical_name == 'adx_webfile' %}
&nbsp;<span class=fa fa-fw fa-file-o aria-hidden=true><span class=sr-only>(File)</span>
</span>
{% endif %}
</a>
</li>
{% endif %}
{% endfor %}
{% else %}
{% for sibling in current_page.parent.children %}
{% if sibling.url == current_page.url %}
{{ page_item }}
{% else %}
<li>
<a href={{ sibling.url | h }} title={{ sibling.title | h }}>
{% if sibling.children.size > 0 %}
<span class=fa fa-fw fa-caret-right aria-hidden=true></span>
{% else %}
<span class=fa fa-fw aria-hidden=true></span>
{% endif %}
{{ sibling.title | h }}
{% if sibling.entity.logical_name == 'adx_shortcut' %}
&nbsp;<span class=fa fa-fw fa-external-link aria-hidden=true></span>
{% elsif sibling.entity.logical_name == 'adx_webfile' %}
&nbsp;<span class=fa fa-fw fa-file-o aria-hidden=true><span class=sr-only>(File)</span>
</span>
{% endif %}
</a>
</a>
</li>
{% endif %}
{% endfor %}
{% endif %}
</ul>
</li>
{% endif %}
</ul>

<style type=text/css>
.side-nav {
border-right: solid 1px #eee;
}

.side-nav,
.side-nav ul {
list-style: none;
margin: 0;
padding: 0;
}

.side-nav ul {
margin-left: 20px;
}

.side-nav a {
display: block;
line-height: 30px;
overflow: hidden;
text-decoration: none;
white-space: nowrap;
}

.side-nav li > a:hover {


border-right: solid 1px #23527c;
}

.side-nav li.active > a,


.side-nav li.active > a:hover {
border-right: solid 1px #333;
color: #333;
font-weight: bold;
}
</style>

Vea también
Crear una plantilla de página personalizada con Liquid y una plantilla de página de plantilla web
Crear una plantilla de página personalizada para representar una fuente RSS
Representar la lista de entidades asociada a la página actual
Represente un encabezado y una barra de navegación principal de página web
Representar la lista de entidades asociada a la
página actual
25/11/2019 • 4 minutes to read • Edit Online

Represente la lista de entidades asociada a la página actual como una tabla paginada y ordenable. Usa los
parámetros entitylist, entityview, PowerApps Common Data Service entity tags, page y request e incluye
búsqueda y selección de varias vistas.

{% entitylist id:page.adx_entitylist.id %}
<div class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle"
data-toggle="collapse"
data-target="#entitylist-navbar-{{ entitylist.id }}">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="{{ page.url }}">{{ entitylist.adx_name }}</a>
</div>
<div class="collapse navbar-collapse" id="entitylist-navbar-{{ entitylist.id }}">

{% if entitylist.views.size > 1 %}
<ul class="nav navbar-nav">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-list"></i> Views <span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
{% for view in entitylist.views -%}
<li{% if params.view == view.id %} class="active"{% endif %}>
<a href="{{ request.path | add_query:'view', view.id }}">{{view.name}}</a>
</li>
{% endfor -%}
</ul>
</li>
</ul>
{% endif %}

{% if entitylist.search_enabled %}
<form class="navbar-form navbar-left" method="get">
<div class="input-group">
{% if params.search.size > 0 %}
<div class="input-group-btn">
<a class="btn btn-default"
href="{{ request.path_and_query | remove_query:'search' }}">&times;</a>
</div>
{% endif %}
<input name="search" class="form-control"
value="{{ params.search }}"
placeholder="{{ entitylist.search_placeholder | default: 'Search' }}"
type="text" />
<div class="input-group-btn">
<button type="submit" class="btn btn-default"
title="{{ entitylist.search_tooltip }}">
<i class="fa fa-search">&nbsp;</i>
</button>
</div>
</div>
</div>
</form>
{% endif %}

{% if entitylist.create_enabled %}
<ul class="nav navbar-nav navbar-right">
<li>
<a href="{{ entitylist.create_url }}">
<i class="fa fa-plus"></i> {{ entitylist.create_label | default: 'Create' }}
</a>
</li>
</ul>
{% endif %}

</div>
</div>
</div>

{% entityview id:params.view, search:params.search, order:params.order, page:params.page,


pagesize:params.pagesize, metafilter:params.mf %}
{% assign order = params.order | default: entityview.sort_expression %}
<table class="table" data-order="{{ order }}">
<thead>
<tr>
{% for c in entityview.columns -%}
<th width="{{ c.width }}" data-logicalname="{{ c.logical_name }}">
{% if c.sort_enabled %}
{% assign current_sort = order | current_sort:c.logical_name %}
{% case current_sort %}
{% when 'ASC' %}
<a href="{{ request.path_and_query | add_query:'order', c.sort_descending }}">
{{ c.name }} <i class="fa fa-sort-asc"></i>
</a>
{% when 'DESC' %}
<a href="{{ request.path_and_query | add_query:'order', c.sort_ascending }}">
{{ c.name }} <i class="fa fa-sort-desc"></i>
</a>
{% else %}
<a href="{{ request.path_and_query | add_query:'order', c.sort_ascending }}">
{{ c.name }} <i class="fa fa-unsorted"></i>
</a>
{% endcase %}
{% else %}
{{ c.name }}
{% endif %}
</th>
{% endfor -%}
<th width="1"></th>
</tr>
</thead>

<tbody>
{% for e in entityview.records -%}
<tr>

{% for c in entityview.columns -%}


{% assign attr = e[c.logical_name] %}
{% assign attr_type = c.attribute_type | downcase %}

<td data-logicalname="{{ c.logical_name }}">


{% if attr.is_entity_reference -%}
{{ attr.name }}
{% elsif attr_type == 'datetime' %}
{% if attr %}
<time datetime="{{ attr | date_to_iso8601 }}">
{{ attr }}
</time>
{% endif %}
{% elsif attr_type == 'picklist' %}
{{ attr.label }}
{% else %}
{{ attr }}
{% endif -%}
</th>
{% endfor -%}

<td>
{% if entitylist.detail_enabled -%}
<a class="btn btn-default btn-xs"
href="{{ entitylist.detail_url}}?{{ entitylist.detail_id_parameter }}={{ e.id }}"
title="{{ entitylist.detail_label }}">
<i class="fa fa-external-link"></i>
</a>
{% endif -%}
</td>

<tr>
{% endfor -%}
</tbody>
</table>

{% if entityview.pages.size > 0 %}
{% assign first_page = entityview.first_page %}
{% assign last_page = entityview.last_page %}
{% assign page_offset = entityview.page | minus:1 | divided_by:10 | times:10 %}
{% assign page_slice_first_page = page_offset | plus:1 %}
{% assign page_slice_last_page = page_offset | plus:10 %}

<ul class="pagination">
<li {% unless first_page and entityview.page > 1 %}class="disabled"{% endunless %}>
<a
{% if first_page and entityview.page > 1 %}
href="{{ request.url | add_query:'page', first_page | path_and_query }}"
{% endif %}>
&laquo;
</a>
</li>

<li {% unless entityview.previous_page %}class="disabled"{% endunless %}>


<a
{% if entityview.previous_page %}
href="{{ request.url | add_query:'page', entityview.previous_page | path_and_query }}"
{% endif %}>
&lsaquo;
</a>
</li>

{% if page_slice_first_page > 1 %}
{% assign previous_slice_last_page = page_slice_first_page | minus:1 %}
<li>
<a href="{{ request.url | add_query:'page', previous_slice_last_page | path_and_query }}">
&hellip;
</a>
</li>
{% endif %}

{% for page in entityview.pages offset:page_offset limit:10 -%}


<li{% if page == entityview.page %} class="active"{% endif %}>
<a href="{{ request.url | add_query:'page', page | path_and_query }}">
{{ page }}
</a>
</li>
{% endfor -%}

{% if page_slice_last_page < entityview.pages.size %}


{% assign next_slice_first_page = page_slice_last_page | plus:1 %}
<li>
<a href="{{ request.url | add_query:'page', next_slice_first_page | path_and_query }}">
<a href="{{ request.url | add_query:'page', next_slice_first_page | path_and_query }}">
&hellip;
</a>
</li>
{% endif %}

<li {% unless entityview.next_page %}class="disabled"{% endunless %}>


<a
{% if entityview.next_page %}
href="{{ request.url | add_query:'page', entityview.next_page | path_and_query }}"
{% endif %}>
&rsaquo;
</a>
</li>

<li {% unless last_page and entityview.page < last_page %}class="disabled"{% endunless %}>
<a
{% if last_page and entityview.page < last_page %}
href="{{ request.url | add_query:'page', last_page | path_and_query }}"
{% endif %}>
&raquo;
</a>
</li>
</ul>

{% endif %}

{% endentityview %}
{% endentitylist %}

Vea también
Crear una plantilla de página personalizada con Liquid y una plantilla de página de plantilla web
Crear una plantilla de página personalizada para representar una fuente RSS
Represente un encabezado y una barra de navegación principal de página web
Represente hasta tres niveles de jerarquía de páginas mediante la navegación híbrida
Crear una plantilla de página personalizada para
representar una fuente RSS
25/11/2019 • 4 minutes to read • Edit Online

En este ejemplo, crearemos una plantilla de página personalizada para representar una fuente RSS de artículos de
noticias, utilizando Liquid y una plantilla de página web. Más información:Almacenar contenido de origen con
plantillas web.

Paso 1: Crear nueva vista de PowerApps


Primero, crearemos una nueva vista de PowerApps que utilizaremos para cargar los datos para nuestra fuente. En
este ejemplo, la convertiremos en una vista de páginas web, y usaremos esta entidad para almacenar nuestros
artículos. Podemos usar esta vista para configurar la ordenación y el filtrado de resultados, e incluir como
columnas los atributos de entidad que deseamos disponibles en nuestra plantilla de Liquid.

Paso 2: Crear una plantilla web para la fuente RSS


En este paso, crearemos una plantilla web para nuestra fuente RSS. Esta plantilla será aplicada a una página web
particular en nuestro sitio web, por lo que usaremos el título y el resumen de esa página como título y descripción
de la fuente. A continuación usaremos la etiqueta entityview para cargar nuestra vista Artículos de noticias recién
creada. Más información: Etiquetas de entidad de PowerApps common data service. Tenga en cuenta que también
establecemos el campo Tipo MIME de la plantilla web como application/rss+xml. Esto indica qué tipo de
contenido de respuesta podría ser cuando se representa nuestra plantilla.
Fuente RSS (plantilla web)

<?xml version=1.0 encoding=UTF-8 ?>


<rss version=2.0>
<channel>
<title>{{ page.title | xml_escape }}</title>
<description>{{ page.description | strip_html | xml_escape }}</description>
<link>{{ request.url | xml_escape }}</link>
{% entityview logical_name:'adx_webpage', name:'News Articles', page_size:20 -%}
{% for item in entityview.records %}
<item>
<title>{{ item.adx_name | xml_escape }}</title>
<description>{{ item.adx_copy | escape }}</description>
<link>{{ request.url | base | xml_escape }}{{ item.url | xml_escape }}</link>
<guid>{{ item.id | xml_escape }}</guid>
<pubDate>{{ item.createdon | date_to_rfc822 }}</pubDate>
</item>
{% endfor -%}
{% endentityview %}
</channel>
</rss>

Paso 3: Crear una plantilla de página para asignar la plantilla de fuente


RSS
Ahora, crearemos una nueva plantilla de página, lo que nos permitirá asignar nuestra plantilla de fuente RSS a
cualquier página web en nuestro sitio web. Tenga en cuenta que anulamos la selección de Usar encabezado y el
pie de página del sitio web, ya que deseamos establecer la representación de la respuesta de la página
completa a nuestra fuente.
Paso 4: Crear una página web para hospedar fuente RSS
Ahora lo único que queda es crear una nueva página web a través de la plantilla de fuente RSS para hospedar
nuestra fuente. Cuando solicitamos esta nueva página web, recibiremos nuestro XML de fuente RSS:

En este ejemplo, hemos visto cómo podemos agrupar características de administración de contenido de Liquid,
plantillas web, vistas de PowerApps, y los portales para crear una fuente RSS personalizada. La combinación de
estas características agrega eficaces capacidades de personalización a cualquier aplicación de portal.
Vea también
Crear una plantilla de página personalizada con Liquid y una plantilla de página de plantilla web
Representar la lista de entidades asociada a la página actual
Represente un encabezado y una barra de navegación principal de página web
Represente hasta tres niveles de jerarquía de páginas mediante la navegación híbrida
Represente un encabezado y una barra de
navegación principal de página web
25/11/2019 • 4 minutes to read • Edit Online

Represente un encabezado y una barra de navegación principal de página web utilizando valores del portal,
fragmentos, weblinks y marcadores de sitio. Más información:Almacenar contenido de origen con plantillas web.

NOTE
El ejemplo en este tema funcionará correctamente únicamente si el la memoria caché de encabezado de solicitud cruzada
está deshabilitada en la aplicación. Está habilitada de forma predeterminada en la versión 7.0.0019 y posteriores. Se
pueden deshabilitar creando una configuración del sitio llamada Header/OutputCache/Enabled, y establecer su valor en
false.

<div class=masthead hidden-xs>


<div class=container>
<div class=toolbar>
<div class=toolbar-row>

{% assign search_enabled = settings['search/enabled'] | boolean | default:true %}


{% assign search_page = sitemarkers['Search'] %}
{% if search_enabled and search_page %}
<div class=toolbar-item toolbar-search>
<form method=GET action={{ search_page.url }} role=search>
<label for=q class=sr-only>
{{ snippets[Header/Search/Label] | default:Search }}
</label>
<div class=input-group>
<input type=text class=form-control id=q name=q
placeholder={{ snippets[Header/Search/Label] | default:Search }}
value={{ params.q }}
title={{ snippets[Header/Search/Label] | default:Search }}>
<div class=input-group-btn>
<button type=submit class=btn btn-default
title={{ snippets[Header/Search/ToolTip] | default:Search }}>
<span class=fa fa-search aria-hidden=true></span>
</button>
</div>
</div>
</form>
</div>
{% endif %}

<div class=toolbar-item>
<div class=btn-toolbar role=toolbar>
{% if user %}
<div class=btn-group>
<a href=# class=btn btn-default dropdown-toggle data-toggle=dropdown>
<span class=fa fa-user aria-hidden=true></span>
<span class=username>{{ user.fullname }}</span>
<span class=caret></span>
</a>
<ul class=dropdown-menu pull-right role=menu>
{% assign show_profile_nav = settings[Header/ShowAllProfileNavigationLinks] | boolean |
default:true %}
{% if show_profile_nav %}
{% assign profile_nav = weblinks[Profile Navigation] %}
{% if profile_nav %}
{% if profile_nav %}
{% for link in profile_nav.weblinks %}
<li>
<a href={{ link.url }}>{{ link.name }}</a>
</li>
{% endfor %}
{% endif %}
{% else %}
<li><a href={{ sitemarkers['Profile'].url }}>{{ snippets[Profile Link Text] |
default:Profile }}</a></li>
{% endif %}
<li class=divider></li>
<li>
<a href=/account-signout?returnUrl={{ request.raw_url }}>
{{ snippets[links/logout] | default:Sign Out }}
</a>
</li>
</ul>
</div>
{% else %}
<div class=btn-group>
<a class=btn btn-primary
href={{ sitemarkers['Login'].url | add_query:'returnurl', request.path_and_query }}>
<span class=fa fa-sign-in aria-hidden=true></span>
{{ snippets[links/login] | default:Sign In }}
</a>
</div>
{% endif %}
</div>
</div>

</div>
</div>
{% editable snippets 'Header' type: 'html' %}
</div>
</div>
<div class=header-navbar navbar navbar-default navbar-static-top role=navigation>
<div class=container>
<div class=navbar-header>
<button type=button class=navbar-toggle data-toggle=collapse data-target=#header-navbar-collapse>
<span class=sr-only>Toggle navigation</span>
<span class=icon-bar></span>
<span class=icon-bar></span>
<span class=icon-bar></span>
</button>
<div class=navbar-left visible-xs>
{% editable snippets 'Mobile Header' type: 'html' %}
</div>
</div>
<div id=header-navbar-collapse class=navbar-collapse collapse>
<div class=navbar-left hidden-xs>
{% editable snippets 'Navbar Left' type: 'html' %}
</div>
{% assign primary_nav = weblinks[Primary Navigation] %}
{% if primary_nav %}
<div class=navbar-left {% if primary_nav.editable %}xrm-entity xrm-editable-adx_weblinkset{% endif
%} data-weblinks-maxdepth=2>
<ul class=nav navbar-nav weblinks>
{% for link in primary_nav.weblinks %}
{% if link.display_page_child_links %}
{% assign sublinks = sitemap[link.url].children %}
{% else %}
{% assign sublinks = link.weblinks %}
{% endif %}
<li class=weblink {% if sublinks.size > 0 %} dropdown{% endif %}>
<a
{% if sublinks.size > 0 %}
href=# class=dropdown-toggle data-toggle=dropdown
{% else %}
href={{ link.url }}
href={{ link.url }}
{% endif %}
{% if link.nofollow %}rel=nofollow{% endif %}
{% if link.tooltip %}title={{ link.tooltip }}{% endif %}>
{% if link.image %}
{% if link.image.url startswith '.' %}
<span class={{ link.image.url | split:'.' | join }} aria-hidden=true></span>
{% else %}
<img src={{ link.image.url }}
alt={{ link.image.alternate_text | default:link.tooltip }}
{% if link.image.width %}width={{ link.image.width }}{% endif %}
{% if link.image.height %}height={{ link.image.height }}{% endif %}
/>
{% endif %}
{% endif %}
{% unless link.display_image_only %}
{{ link.name }}
{% endunless %}
{% if sublinks.size > 0 %}
<span class=caret></span>
{% endif %}
</a>

{% if sublinks.size > 0 %}
<ul class=dropdown-menu role=menu>
{% if link.url %}
<li>
<a href={{ link.url }}
{% if link.nofollow %}rel=nofollow{% endif %}
{% if link.tooltip %}title={{ link.tooltip }}{% endif %}>{{ link.name }}</a>
</li>
<li class=divider></li>
{% endif %}
{% for sublink in sublinks %}
<li>
<a href={{ sublink.url }}
{% if sublink.nofollow %}rel=nofollow{% endif %}
{% if sublink.tooltip %}title={{ link.tooltip }}{% endif %}>
{{ sublink.name | default:sublink.title }}
</a>
</li>
{% endfor %}
</ul>
{% endif %}

</li>
{% endfor %}
</ul>
{% editable primary_nav %}
</div>
{% endif %}
<div class=navbar-right hidden-xs>
{% editable snippets 'Navbar Right' type: 'html' %}
</div>
</div>
</div>
</div>

Vea también
Crear una plantilla de página personalizada con Liquid y una plantilla de página de plantilla web
Crear una plantilla de página personalizada para representar una fuente RSS
Representar la lista de entidades asociada a la página actual
Represente hasta tres niveles de jerarquía de páginas mediante la navegación híbrida
Use flujo de concesión implícito de OAuth 2.0 en el
portal
25/11/2019 • 16 minutes to read • Edit Online

Esta característica permite que un cliente realice llamadas del lado del cliente a API externas y las proteja mediante
flujo de concesión implícito de OAuth. Proporciona un extremo para obtener tokens de acceso seguro que
contendrán información de identidad de usuario para uso de API externas para autorización después de flujo de
concesión implícito de OAuth 2.0. La información de identidad de un usuario que ha iniciado sesión se pasa de
forma segura a llamadas AJAX externas. Esto no solo ayudará a los desarrolladores a pasar contexto de
autenticación sino también ayudará a los usuarios a proteger sus API mediante este mecanismo.
El flujo de concesión implícito de OAuth 2.0 admite extremos a los que un cliente puede llamar para obtener un
token de Id. Dos extremos se usan con este fin: autorizar y token.

Autorizar detalles del extremo


La dirección URL para el extremo autorizar es: <portal_url>/_services/auth/authorize . El extremo autorizar admite
los siguientes parámetros:

PARÁMETRO ¿OBLIGATORIO? DESCRIPCIÓN

client_id Sí Una cadena que se pasa al realizar una


llamada al extremo autorizar. Debe
asegurarse de el identificador del cliente
está registrado en el portal. De lo
contrario, se muestra un error. El
identificador de cliente se agrega en
notificaciones en el token aud además
del appid parámetro y lo pueden usar
clientes para validar que el token
devuelto es para su aplicación.
La longitud máxima es de 36 caracteres.
Solo se admiten caracteres
alfanuméricos y guiones.

redirect_uri Sí Dirección URL del portal donde se


pueden enviar y recibir respuestas de
autenticación. Debe estar registrado
para el client_id específico usado en
la llamada y debe ser exactamente el
mismo valor que el registrado.

estado No Un valor incluido en la solicitud que


también se devuelve en la respuesta del
token. Puede ser una cadena de
cualquier contenido que desee usar.
Generalmente, se usa un valor único
generado de forma aleatoria para evitar
ataques de falsificación de solicitudes
entre sitios.
La longitud máxima es de 20 caracteres.
PARÁMETRO ¿OBLIGATORIO? DESCRIPCIÓN

nonce No Un valor de cadena enviado por el


cliente que se incluye en el token de
identificador resultante como
notificación. El cliente puede entonces
comprobar este valor para mitigar los
ataques de repetición de token. La
longitud máxima es de 20 caracteres.

response_type No Este parámetro sólo admite token


como valor. Esto permite a la aplicación
inmediatamente recibir un token de
acceso del extremo autorizar, sin realizar
una segunda solicitud al extremo
autorizar.

Respuesta correcta
El extremo autorizar devuelve los siguientes valores en la dirección URL de respuesta como fragmento:
token: El token se devuelve como token web JSON (JWT) firmado digitalmente por la clave privada del portal.
state: Si un parámetro de estado se incluye en la solicitud, el mismo valor debe aparecer en la respuesta. La
aplicación debe comprobar que los valores de estado de la solicitud y la respuesta sean idénticos.
expires_in: El periodo de tiempo que el token de acceso es válido (en segundos).
Por ejemplo, una respuesta correcta tiene este aspecto:

GET
https://aadb2cplayground.azurewebsites.net/#token=eyJ0eXAiOiJKV1QiLCJhbGciOI1NisIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q&e
xpires_in=3599&state=arbitrary_data_you_sent_earlier

Respuesta de error
El error en el extremo autorizar se devuelve como documento de JSON con los siguientes valores:
Id. de error: Identificador único del error.
Mensaje de error: Un mensaje de error específico que puede ayudarle a identificar la causa raíz de un error de
autenticación.
Id. de correlación: Un GUID que se usa para fines de depuración. Si ha habilitado el registro de diagnóstico, el
id. de correlación estaría presente en registros de errores del servidor.
Marca de tiempo: Fecha y hora en que se generó el error.
El mensaje de error se muestra en el idioma predeterminado del usuario que ha iniciado sesión. Si el usuario no ha
iniciado sesión, la página de inicio de sesión se muestra para que el usuario inicie sesión. Por ejemplo, una
respuesta de error tiene este aspecto:

{"ErrorId": "PortalSTS0001", "ErrorMessage": "Client Id provided in the request is not a valid client Id
registered for this portal. Please check the parameter and try again.", "Timestamp": "4/5/2019 10:02:11 AM",
"CorrelationId": "7464eb01-71ab-44bc-93a1-f221479be847" }

Detalles del extremo de token


También puede ir un token realizando una solicitud al extremo /token . Es diferente del extremo de autorización en
que este se encarga de la lógica del token en página aparte (redirect_uri), mientras que el extremo token controla la
lógica de token en la misma página. La dirección URL para el extremo token es: <portal_url>/_services/auth/token
. El extremo token admite los siguientes parámetros:

PARÁMETRO ¿OBLIGATORIO? DESCRIPCIÓN

client_id No Una cadena que se pasa al realizar una


llamada al extremo autorizar. Debe
asegurarse de el identificador del cliente
está registrado en el portal. De lo
contrario, se muestra un error. El
identificador de cliente se agrega en
notificaciones en el token aud además
del appid parámetro y lo pueden usar
clientes para validar que el token
devuelto es para su aplicación.
La longitud máxima es de 36 caracteres.
Solo se admiten caracteres
alfanuméricos y guiones.

redirect_uri No Dirección URL del portal donde se


pueden enviar y recibir respuestas de
autenticación. Debe estar registrado
para el client_id específico usado en
la llamada y debe ser exactamente el
mismo valor que el registrado.

estado No Un valor incluido en la solicitud que


también se devuelve en la respuesta del
token. Puede ser una cadena de
cualquier contenido que desee usar.
Generalmente, se usa un valor único
generado de forma aleatoria para evitar
ataques de falsificación de solicitudes
entre sitios.
La longitud máxima es de 20 caracteres.

nonce No Un valor de cadena enviado por el


cliente que se incluye en el token de
identificador resultante como
notificación. El cliente puede entonces
comprobar este valor para mitigar los
ataques de repetición de token. La
longitud máxima es de 20 caracteres.

response_type No Este parámetro sólo admite token


como valor. Esto permite a la aplicación
inmediatamente recibir un token de
acceso del extremo autorizar, sin realizar
una segunda solicitud al extremo
autorizar.

NOTE
Aunque los parámetros client_id , redirect_uri , state y nonce son opcionales, se recomienda usarlos para
asegurarse de que las integraciones son seguras.

Respuesta correcta
El extremo token devuelve state expires_in como encabezados de respuesta, y token en el cuerpo del formulario.
Respuesta de error
El error en el extremo token se devuelve como documento de JSON con los siguientes valores:
Id. de error: Identificador único del error.
Mensaje de error: Un mensaje de error específico que puede ayudarle a identificar la causa raíz de un error de
autenticación.
Id. de correlación: Un GUID que se usa para fines de depuración. Si ha habilitado el registro de diagnóstico, el
id. de correlación estaría presente en registros de errores del servidor.
Marca de tiempo: Fecha y hora en que se generó el error.
El mensaje de error se muestra en el idioma predeterminado del usuario que ha iniciado sesión. Si el usuario no ha
iniciado sesión, una página de inicio de sesión se muestra para que el usuario inicie sesión. Por ejemplo, una
respuesta de error tiene este aspecto:

{"ErrorId": "PortalSTS0001", "ErrorMessage": "Client Id provided in the request is not a valid client Id
registered for this portal. Please check the parameter and try again.", "Timestamp": "4/5/2019 10:02:11 AM",
"CorrelationId": "7464eb01-71ab-44bc-93a1-f221479be847" }

Validar token de identificador


No basta con obtener un token de identificador para autenticar al usuario; también debe validar la firma del token y
comprobar las notificaciones en el token según los requisitos de la aplicación. El extremo del token pública
proporciona la clave pública del portal, que puede usarse para validar la firma del token proporcionado por el
portal. La dirección URL para el extremo token público es: <portal_url>/_services/auth/publickey .

Activar o desactivar flujo de concesión implícito


De forma predeterminada, flujo de concesión implícito está habilitado. Si desea desactivar el flujo de concesión
implícito, establezca el valor del ajuste Connector/ImplicitGrantFlowEnabled en Falso.
Si la configuración del sitio no está disponible en el portal, debe crear una nueva configuración del sitio con el valor
apropiado.

Configure validez de token


De forma predeterminada, el token es válido durante 15 minutos. Si desea cambiar la validez del token, establezca
el valor del sitio ImplicitGrantFlow/TokenExpirationTime con el valor necesario. El valor debe especificarse en
segundos. El valor máximo puede ser 1 hora, y el valor mínimo debe ser 1 minuto. Si se especifica un valor
incorrecto (por ejemplo, caracteres alfanuméricos), se usa el valor predeterminado de 15 minutos. Si especifica un
valor mayor que el valor máximo o inferior al valor mínimo, se usarán los valores máximo y mínimo
respectivamente de forma predeterminada.
Por ejemplo, para establecer la validez del token a 30 minutos, establezca el valor del sitio
ImplicitGrantFlow/TokenExpirationTime en 1800. Para establecer la validez del token a 1 hora, establezca el
valor del sitio ImplicitGrantFlow/TokenExpirationTime en 3600.

Registrar el identificador del cliente para flujo de concesión implícito


Debe registrar el identificador de cliente con el portal para el que está permitido este flujo. Para registrar un
identificador del cliente, debe crear los siguientes valores del sitio:
CONFIGURACIÓN DEL SITIO VALUE

ImplicitGrantFlow/RegisteredClientId Los valores de identificador de cliente válidos que se permiten


para este portal. Los valores deben ir separados por punto y
coma y pueden contener caracteres alfanuméricos y guiones.
La longitud máxima es de 36 caracteres.

ImplicitGrantFlow/{ClientId}/RedirectUri La redirección válida URI que se permite para un identificador


de cliente específico. Los valores deben separar por punto y
coma. La dirección URL proporcionada debe ser de una página
web válida del portal.

Código de ejemplo
Puede usar el código siguiente para empezar a usar la concesión implícita de OAuth 2.0 con las API de portales de
PowerApps.
Use el token de OAuth del portal con una API web externa
Este ejemplo es un proyecto basado en ASP.NET y se usa para validar el token de id. emitido por portales de
PowerApps. El código de ejemplo completo se puede encontrar aquí: Use el token de OAuth del portal con una API
web externa.
Ejemplo de Autorizar el extremo
En este ejemplo se muestra cómo autorizar el extremo devuelve el token de id. como fragmento en la dirección
URL redirigida. También se explica la validación de estado compatible en la concesión implícita. El ejemplo se
puede encontrar aquí: Ejemplo de Autorizar el extremo.
Ejemplo de extremo de token
Este ejemplo le muestra cómo puede usar la función getAuthenticationToken para capturar un token de
identificador mediante el extremo de token en portales de PowerApps. El ejemplo se puede encontrar aquí:
Ejemplo de extremo de token.
Configurar un contacto para su uso en un portal
25/11/2019 • 2 minutes to read • Edit Online

Tras completar la información básica para un contacto (o pedir a un usuario que rellene el formulario de
suscripción en un portal), vaya hasta la pestaña de autenticación web en el formulario de contacto del portal para
configurar un contacto utilizando autenticación local. Para más información sobre opciones de autenticación
federadas, consulte Establecer identidad de autenticación para un portal. Para configurar un contacto para portales
mediante autenticación local, siga estas instrucciones:
1. Escriba un nombre de usuario.
2. En la cinta de opciones de comando, vaya a Más comandos > Cambiar contraseña.
Complete el flujo de trabajo de cambio de contraseña y los campos requeridos se configurarán automáticamente.
Cuando haya terminado, el contacto estará configurado para los portales.

Cambiar contraseña de un contacto desde la aplicación Administración


del portal
1. Abra la aplicación Administración del portal.
2. Vaya a Portales > Contactos, y abra el contacto para el que desea cambiar la contraseña. Como
alternativa, también puede abrir la página Contactos del panel Compartir.
3. Seleccione Flujo de tarea en la barra de herramientas situada en la parte superior.

4. Seleccione el flujo de tareas Cambiar contraseña de contacto del portal.


5. En el panel Cambiar contraseña de contacto del portal, seleccione o crea un contacto para cambiar la
contraseña y, a continuación seleccione Siguiente.

6. En el campo Nueva contraseña, escriba una nueva contraseña y, a continuación seleccione Siguiente.
Si no escribe una contraseña y selecciona Siguiente, se le preguntarán si desea quitar la contraseña del
contacto seleccionado.

7. Después de realizar los cambios, seleccione Hecho.


Vea también
Invitar a contactos a los portales
Establecer identidad de autenticación para un portal
Invitar a contactos a los portales
25/11/2019 • 7 minutes to read • Edit Online

Use la característica de invitación a los portales para invitar a contactos a su portal a través de correo electrónico
automatizado creado en el sistema Common Data Service. Los invitados recibirán un correo electrónico,
completamente personalizable por usted, con un vínculo al portal y un código de invitación. Este código puede
usarse para tener acceso especial configurado por usted. Con esta característica tiene la capacidad de:
Enviar invitaciones individuales o de grupo
Especificar una fecha de vencimiento si lo desea
Especificar un usuario o contacto del portal como invitador si lo desea
Asignar automáticamente los contactos invitados a una cuenta tras canjear la invitación
Ejecutar automáticamente un flujo de trabajo tras canjear la invitación
Asignar automáticamente los contactos invitados a uno o vario roles web tras el canje
El canje de invitación se puede conseguir usando cualquier de las muchas opciones de autenticación. Para
documentación respecto a la autenticación del portal, vea Establecer identidad de autenticación para un portal y
elija el modelo aplicable a la versión y la configuración del portal. El usuario adoptará los valores proporcionados
por el administrador tras el canje. Se creará una actividad de canje de invitación para la invitación y el contacto.
Las invitaciones se envían a través del flujo de trabajo Enviar invitación. De forma predeterminada, el flujo de
trabajo crea un correo electrónico con un mensaje genérico y lo envía a la dirección de correo electrónico principal
del contacto invitado. El flujo de trabajo Enviar invitación contiene una plantilla de correo electrónico que debe
modificarse para contener un mensaje específico para el portal y el hipervínculo correcto a la página Canje de
invitación del portal.
Para editar el flujo de trabajo de plantilla de correo electrónico Enviar invitación, búsquelo y desactívelo. Una vez
desactivado, modifique la plantilla de correo electrónico para enviar el mensaje que desea y proporcionar un
vínculo a la página Canje de invitación del portal del portal.

NOTE
Se envía la invitación solo para el mensaje principal (emailaddress1) del contacto. La invitación no se enviará al correo
electrónico secundario (emailaddress2) o correo electrónico alternativo (emailaddress3) del registro de contacto.

Crear invitaciones desde la aplicación Administración del portal


1. Abra la aplicación Administración del portal.
2. Vaya a Portales > Contactos. Como alternativa, también puede abrir la página Contactos del panel
Compartir.
3. Seleccione un contacto o abra el registro de contacto para ser invitado.
4. En la barra de comandos, seleccione Crear invitación.
5. En la página Invitación , escriba los valores apropiados en los campos. Más información: Atributos de
invitación
6. Seleccione Guardar.
7. En la barra de comandos, seleccione Flujo > Enviar invitación.
8. En la ventana de confirmación, seleccione Aceptar. La invitación se enviará al contacto seleccionado.

Enviar varias invitaciones


Puede crear invitaciones para sus contactos y después enviar todas las invitaciones al mismo tiempo.
1. Cree invitaciones para contactos necesarios y vaya a Portales > Invitaciones.
2. Seleccione las invitaciones creadas.
3. En la barra de comandos, seleccione Flujo > Enviar invitación.

4. En la ventana de confirmación, seleccione Aceptar. Las invitaciones se enviarán a los contactos


seleccionados.
Atributos de invitación
La tabla de abajo explica los atributos de la página Invitación:

NOMBRE DESCRIPCIÓN

Nombre Un nombre descriptivo para ayudar a reconocer la invitación.

Tipo Único o Grupo. Único permitirá invitar solo a un contacto y


un solo canje. Grupo permite invitar a varios contactos y
varios canjes.

Propietario/remitente El usuario que sea el remitente del correo electrónico al enviar


la invitación. Esto se puede reemplazar en el flujo de trabajo
Enviar invitación si el correo electrónico creado ya contiene
alguien en el campo De.

Código de invitación Un código único para la invitación que sólo el invitado


conocerá. Se genera automáticamente al crear una nueva
invitación.

Fecha de expiración Fecha que representa cuándo la invitación dejará de ser válida
para canje. Opcional.

Invitador Puede usarse cuando un contacto sea el remitente de la


invitación. Opcional.

Contacto invitado El contacto o contactos que se invitan a un portal.

Asignar a cuenta Un registro de cuenta que se asociará como cliente primario


del contacto cuando se canjee la invitación. Opcional.

Ejecutar flujo de trabajo al canjear contacto Un proceso de flujo de trabajo que se ejecutará cuando se
canjee la invitación. El flujo de trabajo se pasará al contacto
que canjea como entidad principal. Opcional.

Asignar a roles web Un conjunto de roles de red que se asociará al contacto que
canjea cuando se cuando se canjee la invitación. Opcional.

Contacto canjeado El contacto o contactos que han canjeado correctamente la


invitación.

Canjes máximos permitidos El número de veces que la invitación pueden ser canjeada.
Disponible solo para invitaciones de tipo Grupo.

Vea también
Configurar un contacto para su uso en un portal
Establecer identidad de autenticación para un portal
Crear roles web para portales
25/11/2019 • 4 minutes to read • Edit Online

Una vez que se ha configurado un contacto para usar en el portal, debe recibir uno o varios roles web para
realizar acciones especiales o tener acceso a contenido protegido en el portal. Por ejemplo, para acceder a una
página restringida, el contacto debe asignarse a un rol con lectura restringida para esa página. Para publicar
contenido nuevo, el contacto se debe colocarse en un rol que reciba permisos de publicación de contenido.
Para crear un rol web:
1. Abra la aplicación Administración del portal.
2. Vaya a Portales > Roles web. Como alternativa, también puede abrir la página Roles web del panel
Compartir.
3. Seleccione Nuevo.
4. Especifique los valores adecuados en los campos.
5. Seleccione Guardar.

Atributos y relaciones
La tabla siguiente explica los atributos de rol web que usan los portales.

NOMBRE DESCRIPCIÓN

Nombre Nombre descriptivo del rol web

Sitio web Sitio web asociado

Descripción Una explicación del objetivo del rol web. Opcional.

Rol de usuarios autenticados Booleano. Si se establece como true, será el rol web
predeterminado para usuarios autenticados (consulte a
continuación). Sólo un rol web con el atributo Rol de usuarios
autenticados establecido como true debe existir para un sitio
web determinado. Este será el rol web predeterminado para
usuarios autenticados que no se les ha asignado ningún rol
web.

Rol del usuario anónimo Booleano. Si se establece como true, será el rol web
predeterminado para usuarios no autenticados (consulte a
continuación). Sólo un rol web con el atributo Rol de usuarios
anónimos establecido como true debe existir para un sitio
web determinado. Será el rol web predeterminado para
usuarios no autenticados. El Rol de usuarios anónimos
respetará solo Permisos de entidad.

Ahora que se creó el rol web, podrá configurarlo para satisfacer sus necesidades mediante diferentes permisos,
reglas y asociaciones.
Rol web predeterminado opcional para usuarios autenticados: Al habilitar Rol de usuarios
autenticados, se convertirá en el rol web predeterminado para todos los usuarios. Este rol suele utilizarse
para proporcionar un acceso predeterminado para los usuarios que no están asociados a otros roles. Tenga
en cuenta que los usuarios pueden tener varios roles web, pero sólo puede haber un rol web de usuarios
autenticados para los usuarios autenticados.
Rol web predeterminado opcional para usuarios no autenticados: El Rol de usuarios anónimos está
diseñado para usarse con permisos de la entidad. No respetará ninguna otra regla o permiso. Si habilita el
"Rol de usuarios anónimos", se convertirá en el rol web predeterminado de todos los usuarios. Sólo puede
haber un rol web de usuarios anónimos para usuarios no autenticados.
Vea también
Configurar un portal
Controlar el acceso a páginas web para los portales
Agregar seguridad basada en registros utilizando los permisos de entidad para portales
Agregar seguridad basada en registros utilizando
los permisos de entidad para portales
25/11/2019 • 18 minutes to read • Edit Online

Para aplicar recursos basados en la seguridad en portales a registros individuales, use permisos de entidad.
Agruegue permisos de entidad a roles web, para que pueda definir los roles de la organización que
corresponden lógicamente a los privilegios y los conceptos de propiedad y acceso de registro que se
introducen usando permisos de entidad. Recuerde que un contacto dado puede pertenecer a cualquier
número de roles y un determinado rol puede contener cualquier número de permisos de entidad. Más
información: Crear roles web para portales
Aunque los permisos para cambiar y acceder a direcciones URL en un mapa del sitio del portal se conceden
a través de autorización de contenido, los administradores del sitio también deberán proteger sus
aplicaciones web personalizadas creadas con formularios de entidad y listas de entidad. Más información:
Definir formularios de entidad y Definir listas de entidad
Para proteger estas características, los permisos de entidad permiten conceder derechos granulares para
entidades arbitrarias y habilitar seguridad a nivel de registro mediante definiciones de relación.

Agregar permisos de entidad a un rol web


1. Abra la aplicación Administración del portal.
2. Vaya a Portales > Roles web y abra el rol web al que desea agregar permisos.
3. Seleccione Agregar para agregar un permiso de entidad existente a un rol web.
4. Seleccione Nuevo para crear un nuevo registro de permisos de entidad.

Cuando crea un nuevo registro de permisos de entidad, el primer paso es determinar la entidad que se
protegerá. El paso siguiente es definir el ambito, como verá a continuación, y—para cualquier ámbito más
allá de Global—, las relaciones que definen ese ámbito. Finalmente, determine los derechos que se están
concediendo al rol a través de estos permisos. Tenga en cuenta que los derechos son acumulativos, por lo
que si un usuario está en un rol que concede lectura y otro que concede lectura y actualización, el usuario
tendrá derechos de lectura y actualización sobre cualquier registro que se solape entre los dos roles.
NOTE
La selección de las entidades de CMS, como la página web y los archivos web, no es válida y podría tener otras
consecuencias involuntarias. El portal validará la seguridad de las entidades de CMS basadas en los controles de
acceso a contenido, no los permisos de entidad.

Ámbito global
Si un registro de permiso de entidad con permiso de lectura se concede a un rol que tenga ámbito global,
cualquier contacto en dicho rol tendrá acceso a todos los registros de la entidad definida. Por ejemplo,
podrán ver todos los clientes potenciales, todas las cuentas, etc. Este permiso será respetado
automáticamente por cualquier lista de entidades, esencialmente mostrando todos los registros de acuerdo
con las vistas de la aplicación basada en modelo que se han definido para esa lista. Además, si un usuario
intenta acceder a un registro mediante un formulario de entidad al que no tiene acceso, recibirá un error de
permiso.
Ámbito de contacto
Con el ámbito de contacto, un usuario que ha iniciado sesión en el rol para el que se define el registro del
permiso tendrá los derechos que otorga dicho permiso solo para los registros que están relacionados con el
registro de contacto de ese usuario a través de una relación definida.
En una lista de entidades, esto significa que un filtro se agregará a las vistas de cualquier aplicación basada
en modelo que hayan emergido de esa lista, que recupera solo los registros vinculados al usuario actual
directamente. (En función del escenario, esta relación puede considerarse como propiedad o derechos de
administración).
Los formularios de entidad permitirán sólo el permiso apropiado para lectura, creación, escritura, etc. si
existe esta relación cuando el registro se carga. Más información: Definir formularios de entidad y lógica
personalizada en el portal
Ámbito de cuenta
Con el ámbito de cuenta, un usuario que haya iniciado sesión en el rol para el que se define el registro del
permiso tendrá los derechos que otorga dicho permiso solo para los registros que estén relacionados con el
registro de cuenta primaria de ese usuario, a través de una relación definida.
Ámbito propio
El ámbito propio permite definir los derechos que tiene un usuario sobre su propio registro de contacto
(identidad). Esto permite que los usuarios usen formularios de entidad o formularios web para realizar
cambios en su propio registro de contacto vinculado con su perfil. Tenga en cuenta que la página de Perfil
predeterminada tiene un formulario integrado especial que permite que que cualquier usuario cambie su
información de contacto básica y opte por recibir o anular las a listas de marketing. Si este formulario se
incluye en su portal (que es la opción predeterminada), los usuarios no necesitarán este permiso para
usarlo. Sin embargo, mecesitarán este permiso para usar cualquier formulario de entidad personalizado o
formularios web destinados a su registro de contacto de usuario.
Ámbito jerárquico
En este caso más complejo, se conceden permisos para una entidad que esté en una relación separada de
una entidad para la que ya se haya definido un registro de permiso de entidad. Este permiso es realmente
un registro secundario del permiso de la entidad principal.
El registro del permiso principal define un permiso y un ámbito para una entidad (probablemente de ámbito
global o de contacto, aunque jerárquico también es posible). Esa entidad podría estar relacionada con un
contacto (en el caso de ámbito de contacto) o definida globalmente. Con ese permiso instalado, se crea un
permiso secundario que define una relación de otra entidad en la entidad definida en la relación principal.
Así, los usuarios de un rol web que tengan acceso a los registros definidos por los permisos de la entidad
principal, también tendrán derechos definidos por el registro secundario a los registros relacionados con el
registro primario.
Atributos y relaciones
La tabla de abajo explica los atributos de permiso de entidad.

NOMBRE DESCRIPCIÓN

Nombre Nombre descriptivo del registro. Este campo es


obligatorio.

Nombre de entidad El nombre lógico de la entidad que se va a proteger o que


definirá la relación de contacto o relación principal para
proteger a una entidad relacionada en un permiso
secundario. Este campo es obligatorio.

Ámbito (obligatorio) Global: Conceda privilegios al registro de entidad


sin requisitos para un propietario (contacto).
Contacto: Conceda privilegios al registro de
entidad que tiene una relación directa con un
propietario (contacto).
Cuenta: Conceda privilegios al registro de entidad
que tiene una relación con una cuenta, que sirve
como propietario, suponiendo que la cuenta es el
cliente principal del contacto.
Principal: Conceda privilegios al registro de
entidad a través de la cadena de relaciones de
permisos primarios.

Relación de contacto Sólo se requiere si Ámbito = Contacto. El nombre de


esquema de la relación entre el contacto y la entidad
especificada por el campo Nombre de entidad.

Relación primaria Sólo se requiere si se asigna un permiso de entidad


principal. El nombre de esquema de la relación entre la
entidad especificada por el campo Nombre de entidad y la
entidad especificada por el campo Nombre de entidad en
su registro de permiso de entidad principal.

Permiso de entidad primaria Sólo se requiere si Ámbito = Principal.

Leer Privilegio que controla si el usuario puede leer un registro.

Escribir Privilegio que controla si el usuario puede actualizar un


registro.

Crear Privilegio que controla si el usuario puede crear un nuevo


registro. El derecho para crear un registro de un tipo de
entidad no se aplica a un registro individual, sino a una
clase de entidades.

Supr Privilegio que controla si el usuario puede eliminar un


registro.
NOMBRE DESCRIPCIÓN

Anexar Privilegio que controla si el usuario puede adjuntar otro


registro al registro especificado. Los derechos de acceso de
Anexar y Anexar a funcionan conjuntamente. Cada vez que
un usuario asocia un registro a otro, el usuario debe tener
ambos derechos. Por ejemplo, si adjunta una nota a un
caso, debe tener el derecho de acceso Anexar en la nota y
el derecho de acceso Anexar a en el caso para que la
operación funcione.

Anexar a Privilegio que controla si el usuario puede anexar el


registro en cuestión a otro registro. Los derechos de
acceso de Anexar y Anexar a funcionan conjuntamente.
Para obtener más información, consulte la descripción para
Anexar.

Permisos globales para tareas relacionadas con clientes potenciales


En un escenario, podríamos desear usar una lista de entidad y formularios de entidad para exponer a todos
los clientes potenciales en el portal a cualquiera en un rol web de Administrador de clientes potenciales
personalizado. En el formulario de edición de cliente potencial, que se inicia cada vez que se selecciona una
fila de cliente potencial en la lista, se mostrará una subcuadrícula de los registros de tareas relacionados.
Estos registros deben ser accesibles para cualquiera con el rol de administrador de clientes potenciales.
Como primer paso, daremos permisos globales sobre clientes potenciales a cualquiera en nuestro rol de
administrador de clientes potenciales.
Este rol tiene un permiso de entidad relacionado para la entidad Cliente potencial, con un ámbito global.
Los usuarios de este rol pueden obtener acceso a todos los clientes potenciales mediante listas de entidades
o formularios en el portal.

Ahora agregaremos un permiso secundario al permiso de clientes potenciales global. Con el registro de
permiso primario abierto, vaya a la subcuadrícula Permisos de entidad secundaria y seleccione Nuevo
para abrir una búsqueda de permisos de entidad, seleccione la lupa y luego seleccione Nuevo para agregar
un nuevo registro.
Seleccione la entidad como Tareas y el ámbito como Jerárquica. Tenga en cuenta que a continuación puede
seleccionar la relación principal (Lead_Tasks). Este permiso implica que un contacto que es un rol web con
el permiso primario tendrán permiso global a todas las tareas que estén relacionadas con clientes
potenciales.
Recuerde que para que la lista respete estos permisos, debe haber habilitado permisos de entidad en la lista
Y debe haber acciones que permitan realmente que los usuarios realicen las acciones para las que se les han
concedido sus permisos. Además, los permisos también se deben habilitar en el registro de formulario de
entidad y de ese formulario debe emerger una página con una subcuadrícula para la entidad que desea
habilitar con permisos secundarios, en este caso Tareas. Además, para habilitar permisos de lectura o
creación para tareas, deberá configurar esos formularios de entidad también y editar los formularios para
quitar el campo de búsqueda referente.

Esto le concederá permisos para todas las tareas que estén relacionados con clientes potenciales. Si las
tareas emergen en una lista de entidad, esencialmente se agrega un filtro a la lista de modo que solo las
tareas relacionadas con un cliente potencial aparezcan en la lista. En nuestro ejemplo, emergen con una
subcuadrícula en un formulario de entidad.

Permisos con ámbito de contacto para tareas


Otro ejemplo sería si deseara permitir el acceso a las tareas para las que un contacto está relacionado con el
cliente potencial principal de esa tarea. Este escenario es prácticamente idéntico a la sección anterior, salvo
que en este caso el permiso principal tiene un ámbito de contacto, en lugar de global. Debe especificar una
relación en la relación principal entre la entidad de cliente potencial y la entidad de contacto.
Una vez establecidos estos permisos, los usuarios en el rol de administrador de clientes potenciales pueden
tener acceso a los clientes potenciales relacionados con ellos directamente especificados por el permiso de
ámbito de contacto y las tareas de acceso relacionadas con esos mismos clientes potenciales especificadas
por el registro de permiso secundario.
Vea también
Crear roles web para portales
Controlar el acceso a páginas web para los portales
Controlar el acceso a páginas web para los portales
25/11/2019 • 7 minutes to read • Edit Online

Las reglas de control de acceso a páginas web son reglas que usted crea para el sitio, para controlar las acciones
de publicación que un rol web puede realizar en las páginas del sitio web así como controlar qué páginas están
visibles para qué roles web. La entidad de acceso a páginas web tiene los siguientes atributos:

NOMBRE DESCRIPCIÓN

Nombre Un nombre descriptivo para la regla.

Sitio web El sitio web al que se aplica esta regla; debe coincidir con el
sitio web de la página al que se aplica esta regla. Página web
Filtros.

Página web La página web a la que se aplica esta regla. La regla afectará
no solo a la página sino a todas las páginas secundarias de la
página, por consiguiente haciendo que este atributo
seleccione la rama del sitio web al que se aplicará la regla. Si
una regla se aplica a la página principal, se aplicará al portal
completo.

Derecho Conceder cambio o Restringir lectura a continuación.

Ámbito Todo el contenido: Todo el contenido descendiente


se incluye en la validación de seguridad.
Excluir archivos web secundarios directos: todos
los archivos web secundarios relacionados
directamente con esta página web quedarán excluidos
de la validación de seguridad. Esto no excluye los
descendientes secundarios.
La opción Todo el contenido se encuentra seleccionada de
forma predeterminada.

Descripción (Opcional) Agregue una descripción de la regla.

Después de crear una nueva regla de control de acceso, asóciela a una página. Esto afectará a la página que tenga
asignada la regla y a todas las páginas secundarias—es decir, la rama completa de la página web.
Hay dos tipos de reglas de control de acceso: Conceder cambio y Restringir lectura.

Conceder cambio
Conceder cambio permite al usuario en un rol web asociado a la regla publicar cambios de contenido para esta
página y todas las páginas secundarias de esta página. Conceder cambio tiene prioridad sobre restringir lectura.
Por ejemplo, podría tener una sección de noticias del sitio que quiere que los usuarios puedan editar en el rol web
editor de noticias. Estos usuarios pueden no tener acceso al sitio completo, y sin duda no pueden modificar el sitio
completo, pero en esta rama tienen autoridad completa de publicación de contenido. Crearía un control de acceso
a páginas web llamado conceder publicación de noticias a editores de noticias.
A continuación, establecería el derecho como conceder cambio y la página web como la página principal de toda la
rama de novedades del sitio. Después asignaría este rol web a los contactos que desee designar como editores de
noticias. Tenga en cuenta que un usuario puede tener muchos roles web.
Una regla Conceder cambio siempre debe estar presente en cualquier portal para el que desee habilitar la edición
del lado frontal. Esta regla se aplicará a la página principal del sitio, convirtiéndola así en la regla predeterminada
para el sitio completo. Esta regla se asociará con un rol web que deberá representar el rol administrativo del sitio.
Se asignará este rol a los usuarios a los que se conceden derechos de publicación de contenido del lado frontal.

Restringir lectura
Se usa la regla Restringir lectura para limitar la vista de una página (y sus páginas secundarias) y su contenido a
usuarios específicos. Mientras que conceder cambio es una regla permisiva (concede la capacidad de hacer algo a
los usuarios), la regla Restringir lectura es una regla restrictiva, ya que restringe una acción a un conjunto limitado
de usuarios. Por ejemplo, podría tener una sección del sitio destinada a que la utilicen los empleados solo. Puede
restringir la lectura de esta rama únicamente a aquellas personas con el rol web empleado. Se crearía una nueva
regla llamada restringir lectura a empleados solo.
A continuación se establecería el derecho como restringir lectura y la página como la página en la parte superior
de la rama que será de solo lectura para los empleados. Después asociaría esta regla con el rol web de empleado y
asignaría usuarios a este rol.

NOTE
Si se aplica el derecho de Restringir lectura a la página "principal" raíz de una página web y se selecciona Excluir archivos
web secundarios directos como el Ámbito, todos los usuarios podrán acceder a los archivos web secundarios directos de
la página principal.

Vea también
Crear roles web para portales
Agregar seguridad basada en registros utilizando los permisos de entidad para portales
Crear permisos de acceso al sitio web
25/11/2019 • 2 minutes to read • Edit Online

Los permisos de acceso al sitio web son un conjunto de permisos, asociados con un rol web, lo que permite la
edición del lado frontal de los distintos elementos administrados de contenido dentro del portal que no sean solo
páginas web. La configuración de permisos determina los componentes se pueden ser administradas en el portal.

NOMBRE DESCRIPCIÓN

Administrar fragmentos de contenido Permite la edición de los controles de fragmentos.

Administrar marcadores de sitio Permite la edición de hipervínculos que usan marcadores de


sitio.

Administrar conjuntos de vínculos web Permite la edición de conjuntos de vínculos web, incluido
agregar y quitar vínculos web de un conjunto de vínculos web.

Vista previa de entidades sin publicar Permite ver entidades expuestas al portal que tienen un
estado de publicación de Borrador.

Para crear un permiso de acceso al sitio web y agregarlo a un rol web:


1. Abra la aplicación Administración del portal.
2. Vaya a Portales > Permisos de acceso a sitios web.
3. Seleccione Nuevo.
4. En General, especifique el nombre y el sitio web y seleccione los permisos necesarios.
5. En Roles web, seleccione y agregue el rol web al que asociar el permiso.
6. Guarde los cambios.
Configurar notas para formularios de entidad y
formularios web en portales
25/11/2019 • 18 minutes to read • Edit Online

Como con las subcuadrículas, agregar notas a los formularios administrados en el portal es sencillo—
simplemente agregue el control de notas a formularios de aplicaciones basadas en modelo a través del diseñador
de formularios y ya está. Puede configurar el comportamiento del control de notas utilizando metadatos.

NOTE
Se requieren permisos de entidad explícitos para cualquier nota que aparece en el portal. Para leer y editar, deben ser
concedidos los privilegios de la lectura y escritura. Para crear, deben existir dos permisos: un permiso con los privilegios crear
y anexar debe concederse para la entidad de nota (anotación), el segundo permiso debe asignarse al tipo de entidad al que
se anexa la nota con el privilegio de Anexar a concedido. La casilla de verificación Habilitar los permisos de la entidad
debe estar seleccionado en el formulario correspondiente de la entidad o el paso web de formulario para que los permisos
de la entidad surtan efecto.

Configuración de notas para formularios de entidad


1. Abra la aplicación Administración del portal.
2. Vaya a Portales > Contenido > Formularios de entidad. Aparece una lista de formularios de entidad
activos.
3. Seleccione el formulario de entidad al que desee agregar una configuración de notas.
4. Vaya a Metadatos del formulario de entidad con la lista desplegable superior o la subcuadrícula en el
formulario principal del registro del formulario de entidad con el que trabaja.
5. Seleccione Agregar nuevos metadatos del formulario de entidad para agregar un nuevo registro.
6. De la lista desplegable Tipo, seleccione Notas. Se muestran los valores específicos de la–configuración de
notas La mayoría de los valores están contraídos de forma predeterminada. Puede expandir una sección
para ver la configuración adicional.
7. Complete los campos con los valores apropiados. Más información: Atributos, Crear opciones de diálogo,
Editar opciones de diálogo, y Eliminar opciones de diálogo
8. Guarde el formulario.
Después de agregar la configuración, el control de nota se representará con las opciones adecuadas
habilitadas en el portal.

Atributos
NOMBRE DESCRIPCIÓN

Configuración básica

Creación habilitada Habilita la capacidad de agregar nuevas notas a la entidad.

Opciones del diálogo de creación Contiene la configuración para configurar el cuadro de


diálogo cuando Creación habilitada es true. Consulte
Opciones del diálogo de creación para obtener más detalles.

Edición habilitada Habilita la capacidad de editar notas existentes en la entidad.

Opciones del diálogo de edición Contiene la configuración para configurar el cuadro de


diálogo cuando EditEnabled es true. Consulte Opciones del
diálogo de edición para obtener más detalles.

Eliminación habilitada Habilita la capacidad de eliminar notas de la entidad.

Opciones del diálogo de eliminación Contiene la configuración para configurar el cuadro de


diálogo cuando DeleteEnabled es true. Consulte Opciones
del diálogo de eliminación para obtener más detalles.

Ubicación de archivo adjunto Seleccione la ubicación del archivo adjunto:


Datos adjuntos de nota
Azure Blob Storage

Aceptar tipos MIME Permite especificar una lista de tipos MIME aceptados.
NOMBRE DESCRIPCIÓN

Restringir tipos MIME Seleccione si permite o restringe los tipos MIME.

Tamaño máximo de archivo (en kB) Permite especificar el tamaño máximo de archivo que se
puede adjuntar.

Configuración avanzada

Mostrar título Reemplaza el título sobre el área Notas.

Etiqueta del botón Agregar nota Reemplaza la etiqueta en el botón Agregar notas.

Etiqueta de privacidad de nota Reemplaza la etiqueta que denota que una nota es privada.

Cargando mensaje Reemplaza el mensaje que se muestra mientras la lista de


notas se carga.

Mensaje de error Reemplaza el mensaje que se muestra cuando se produce un


error al intentar cargar la lista de notas.

Mensaje de acceso denegado Reemplaza el mensaje que se muestra cuando el usuario no


tiene permisos suficientes para ver la lista de notas.

Mensaje vacío Reemplaza el mensaje que se muestra cuando la entidad


actual no tiene notas que pueden ser vistas.

Mostrar órdenes Permite establecer el orden en que las notas se mostrarán.


Los configuración de lista de órdenes le permite establecer lo
siguiente:
Atributo: el nombre lógico de la columna por la que
desea ordenar
Alias: el alias para el atributo en la consulta
Dirección: Ascendente (menor a mayor, o primera a
última), o descendente (mayor a menor, o última a
primera).
![Establecer atributos para Mostrar órdenes](media/set-
attributes-list-orders.png "SEstablecer atributos para Mostrar
órdenes”) Para agregar una regla de ordenación, seleccione
"Columna" (4) y rellene los detalles. Mostrar órdenes se
procesará en orden de arriba de la lista que tenga la prioridad
máxima.

Opciones del diálogo de creación


NOMBRE DESCRIPCIÓN

Configuración básica

Mostrar campo de opciones de privacidad Activa una casilla en el cuadro de diálogo Agregar nota que
permite al usuario marcar una nota como privada.
NOMBRE DESCRIPCIÓN

Valor predeterminado del campo de opción de privacidad Especifica el valor predeterminado para la casilla del campo
Mostrar opciones de privacidad. El valor predeterminado de
este campo es "false".

Mostrar adjuntar archivo Habilita un campo de carga de archivos en el cuadro de


diálogo Agregar nota, lo que permite a un usuario adjuntar
un archivo a una nota.

Aceptar archivo adjunto El tipo MIME aceptado por la entrada de carga de archivos.

Configuración avanzada

Etiqueta de campo de nota Reemplaza la etiqueta del campo Nota en el cuadro de


diálogo Agregar nota.

Columnas de campo de nota Establece el valor de cols en la Nota <textarea>

Filas de campo de nota Establece el valor de rows en la Nota <textarea>

Etiqueta de campo de opción de privacidad Reemplaza la etiqueta del campo Opción de privacidad (si está
habilitado).

Etiqueta de archivo adjunto Reemplaza la etiqueta del campo Adjuntar archivo privacidad
(si está habilitado)

Clase CSS de columna izquierda Agrega la clase o clases CSS a la columna izquierda que
contiene etiquetas en cuadro de diálogo Agregar nota.

Clase CSS de columna derecha Agrega la clase o clases CSS a la columna derecha que
contiene entradas de campo en el cuadro de diálogo Agregar
nota.

Título Reemplaza el texto HTML en el encabezado del cuadro de


diálogo Agregar nota.

Texto del botón primario Reemplaza el HTML que aparece en el botón Principal
(Agregar nota) en el cuadro de diálogo.

Texto del lector de pantalla del botón Descartar Reemplaza el texto del lector de pantalla asociado al botón
descartar del cuadro de diálogo.

Texto del botón Cerrar Reemplaza el HTML que aparece en el botón Cerrar (Cancelar)
en el cuadro de diálogo.

Tamaño Especifica el tamaño del cuadro de diálogo Agregar nota. Las


opciones son: Predeterminado, Grande y Pequeño. Para el
cuadro de diálogo Agregar nota, el tamaño predeterminado
es Predeterminado.

Clase de CSS Especifique una clase o clases CSS que se aplicarán al cuadro
de diálogo resultante.

Clase CSS de título Especifique una clase o clases CSS que se aplicarán a la barra
de título del cuadro de diálogo resultante.
NOMBRE DESCRIPCIÓN

Clase CSS del botón primario Especifique una clase o clases CSS que se aplicará al botón
Principal (Agregar nota) del cuadro de diálogo.

Clase CSS del botón Cerrar Especifique una clase o clases CSS que se aplicarán al botón
Cerrar (Cancelar) del cuadro de diálogo.

Opciones del diálogo de edición


NOMBRE DESCRIPCIÓN

Configuración básica

Mostrar campo de opciones de privacidad Activa una casilla en el cuadro de diálogo Editar nota que
permite al usuario marcar una nota como privada.

Valor predeterminado del campo de opción de privacidad Especifica el valor predeterminado para la casilla del campo
Mostrar opciones de privacidad. El valor predeterminado de
este campo es "false".

Mostrar adjuntar archivo Habilita un campo de carga de archivos en el cuadro de


diálogo Editar nota, lo que permite a un usuario adjuntar un
archivo a una nota.

Aceptar archivo adjunto El tipo MIME aceptado por la entrada de carga de archivos.

Configuración avanzada

Etiqueta de campo de nota Reemplaza la etiqueta del campo Nota en el cuadro de


diálogo Editar nota.

Columnas de campo de nota Establece el valor de cols en la Nota <textarea>

Filas de campo de nota Establece el valor de rows en la Nota <textarea>

Etiqueta de campo de opción de privacidad Reemplaza la etiqueta del campo Opción de privacidad (si está
habilitado).

Etiqueta de archivo adjunto Reemplaza la etiqueta del campo Adjuntar archivo privacidad
(si está habilitado)

Clase CSS de columna izquierda Agrega la clase o clases CSS a la columna izquierda que
contiene etiquetas en cuadro de diálogo Editar nota.

Clase CSS de columna derecha Agrega la clase o clases CSS a la columna derecha que
contiene entradas de campo en el cuadro de diálogo Ediar
nota.

Título Reemplaza el texto HTML en el encabezado del cuadro de


diálogo Editar nota.
NOMBRE DESCRIPCIÓN

Texto del botón primario Reemplaza el HTML que aparece en el botón Principal
(Actualizar nota) en el cuadro de diálogo.

Texto del lector de pantalla del botón Descartar Reemplaza el texto del lector de pantalla asociado al botón
descartar del cuadro de diálogo.

Texto del botón Cerrar Reemplaza el HTML que aparece en el botón Cerrar (Cancelar)
del cuadro de diálogo.

Tamaño Especifica el tamaño del cuador de diálogo Editar nota. Las


opciones son: Predeterminado, Grande y Pequeño. Para el
cuadro de diálogo Editar nota, el tamaño predeterminado es
Predeterminado.

Clase de CSS Especifique una clase o clases CSS que se aplicarán al cuadro
de diálogo resultante.

Clase CSS de título Especifique una clase o clases CSS que se aplicará a la barra de
título del diálogo resultante.

Clase CSS del botón primario Especifique una clase o clases CSS que se aplicará al botón
Principal (Actualizar nota) del cuadro de diálogo.

Clase CSS del botón Cerrar Especifique una clase o clases CSS que se aplicarán al botón
Cerrar (Cancelar) del cuadro de diálogo.

Opciones del diálogo de eliminación


NOMBRE DESCRIPCIÓN

Configuración básica

Confirmación Reemplace el mensaje de confirmación para eliminar la nota.

Configuración avanzada

Título Reemplaza el texto HTML en el encabezado del cuadro de


diálogo Eliminar nota.

Texto del botón primario Reemplaza el HTML que aparece en el botón Principal
(Eliminar) en el cuadro de diálogo.

Texto del lector de pantalla del botón Descartar Reemplaza el texto del lector de pantalla asociado al botón
descartar del cuadro de diálogo.

Texto del botón Cerrar Reemplaza el HTML que aparece en el botón Cerrar (Cancelar)
en el cuadro de diálogo.
NOMBRE DESCRIPCIÓN

Tamaño Especifica el tamaño del cuadro de diálogo Eliminar nota. Las


opciones son: Predeterminado, Grande y Pequeño. Para el
cuadro de diálogo Eliminar nota, el tamaño predeterminado
es Predeterminado.

Clase de CSS Especifique una clase o clases CSS que se aplicarán al cuadro
de diálogo resultante.

Clase CSS de título Especifique una clase o clases CSS que se aplicarán a la barra
de título del cuadro de diálogo resultante.

Clase CSS del botón primario Especifique una clase o clases CSS que se aplicarán al botón
Principal (Eliminar) del cuadro de diálogo.

Clase CSS del botón Cerrar Especifique una clase o clases CSS que se aplicarán al botón
Cerrar (Cancelar) del cuadro de diálogo.

Asignar permisos de entidad


Debe crear y asignar el permiso de entidad adecuado a los registros como sigue; de lo contrario, los botones
Agregar, Editar y Eliminar para la nota estarán ocultos:
Privilegios Leer, Escribir, Crear, Anexar y Anexar a para la entidad Actividad (activitypointer) con el
ámbito como Global. Este permiso de entidad debe estar asociado a un rol web para el usuario.
Privilegios Leer, Escribir, Crear, Anexar y Anexar a para la entidad que tiene el control Notas habilitado. El
ámbito debe establecerse en Global. Este permiso de entidad debe estar asociado a un rol web para el
usuario.

Si ha creado un formulario personalizado y ha agregado la sección notas, asegúrese de seleccionar Notas como
la pestaña predeterminada que quiere que esté visible.
Configuración de notas para formularios web
Las notas de formulario web se configuran de la misma forma que las notas de formulario de entidad. Primero
debe crear un registro de metadatos para el paso del formulario web que tiene notas, y luego agregue los
metadatos de configuración de notas.
Habilitar Azure Storage
25/11/2019 • 5 minutes to read • Edit Online

La integración de Azure Storage para los portales le permite aprovechar la mayor capacidad de almacenamiento
de archivo de Azure, utilizando la misma interfaz y proporcionando la misma experiencia de usuario que para los
datos adjuntos del archivo predeterminado. Esta característica se admite para los archivos web, los formularios de
entidades, y los formularios web.
Debe crear una cuenta de almacenamiento con Administrador de recursos como el modelo de implementación.
Más información: Crear una cuenta de almacenamiento de Azure.
Una vez que la cuenta de almacenamiento esté activa, los portales requieren una determinada configuración global
que indique a aplicación cómo buscar su cuenta de almacenamiento. En la aplicación Administración del portal,
vaya a Configuración > Nuevo, y agregue un valor nuevo con el nombre FileStorage/CloudStorageAccount.

NOTE
El límite máximo de carga de archivos es 125MB.

Para buscar el valor de FileStorage/CloudStorageAccount, debe obtener una cadena de conexión de su Portal de
Azure.
1. Inicie sesión en su Portal de Azure.
2. Desplácese a su cuenta de almacenamiento.
3. Seleccione Teclas de acceso.

4. En el panel resultante, localice el campo etiquetado con Cadena de conexión. Seleccione el icono Copiar
junto al campo del que necesita copiar el valor y, a continuación, pegue el valor en la nueva configuración:
Especifique el contenedor de almacenamiento
Si no tiene todavía un contenedor Blob de Azure en su cuenta de almacenamiento, debe agregar uno con su Portal
de Azure.
En la aplicación Administración del portal, vaya a Configuración > Nuevo y agregue un nuevo valor
denominado FileStorage/CloudStorageContainerName, con el nombre del contenedor como el valor.

Agregar regla de CORS


También debe agregar la regla de uso compartido de recursos de origen cruzado (CORS ) en su cuenta de Azure
Storage como sigue; de lo contrario, verá el icono normal de los datos adjuntos en lugar del icono de nube:
Orígenes permitidos: Especifique el dominio. Por ejemplo, contoso.crm.dynamics.com.
Verbos permitidos: OBTENER, PONER, ELIMINAR, ENCABEZAR, PUBLICAR
Encabezados permitidos: Especifique los encabezados de solicitud que el dominio de origen puede
especificar en la solicitud de CORS. Por ejemplo, x-ms-meta-data*, x-ms-meta-target*.
Encabezados expuestos: Especifique los encabezados de respuesta que se pueden enviar en la respuesta a la
solicitud de CORS y que expone el explorador al emisor de la solicitud. Por ejemplo, x-ms-meta-*.
Edad máxima (segundos): Especifique la cantidad máxima de tiempo que un explorador debe almacenar en
caché la solicitud OPCIONES de preparación. Por ejemplo, 200.
Más información: Soporte CORS para Azure Storage Services

Agregar configuraciones de sitios


Agregue la siguiente configuración de sitio de portales > configuración del sitio. Más información: Administrar
la configuración del sitio de portal

NOMBRE VALUE

WebFiles/CloudStorageAccount Proporcione la misma cadena de conexión que se ha


proporcionado para la configuración de
FileStorage/CloudStorageAccount.

WebFiles/StorageLocation AzureBlobStorage

Ahora puede crear un archivo secundario en el portal y mencionar el nombre completo (junto con contenedor) en
la dirección URL de Azure Blob. Con esta configuración, el portal está listo para comenzar mediante la descarga y
la carga de los archivos desde Azure Storage. Sin embargo, no puede aprovechar por completo esta característica
hasta que usted agregue un recurso web que permita cargar los datos adjuntos en Azure Storage, y configurar
formularios de entidad o formularios web.
Vea también
Agregar recurso web
Configuración de notas
Agregar el recurso de web Azure Storage a un
formulario
25/11/2019 • 7 minutes to read • Edit Online

Los datos adjuntos cargados en Azure Storage, en lugar de directamente en Common Data Service, se pueden
administrar con notas en Common Data Service.
Para que los datos adjuntos de un formulario determinado se puedan cargar en Azure Storage, debe agregar un
recurso web al formulario y debe configurar Azure Storage para la organización.

NOTE
En este ejemplo, el formulario se agrega al formulario de cliente potencial para la entidad Cliente potencial. Se recomienda
tener precaución al editar los formularios existentes.

Cuando un archivo (por ejemplo, attachments.zip) se carga en Azure Storage mediante el portal, es representado
por una nota en una entidad y un marcador para el dato adjunto.

Tenga en cuenta que el archivo de datos adjuntos ahora está denominado attachment.zip.txt. De forma
predeterminada, Common Data Service no tiene ningún concepto de archivo Azure, por lo que este archivo
placeholder.txt se almacena en Common Data Service en su lugar. El contexto de Azure Storage del archivo con
marcadores muestra detalles sobre el archivo.

{
Name: attachment.zip,
Type: application/x-zip-compressed,
Size: 24890882,
"Url": "https://accountname.blob.core.windows.net/storage/81a9a9491c36e51182760026833bcf82/attachment.zip"
}
Para ver e interactuar con el archivo almacenado en Azure, debe agregar el recurso web adx.annotations.html al
formulario. Como requisito previo, asegúrese de que sus usuarios obtienen acceso de lectura a adx_setting. De lo
contrario, el recurso web no generará representaciones correctamente.
1. En el editor de formularios del formulario relevante, seleccione Recurso web en la pestaña Insertar .
2. En la casilla Recurso web , seleccione adx_annotations/adx.annotations.html.
3. Escriba una etiqueta de nombre para el recurso.
4. En la casilla Parámetro personalizado (datos) introduzca azureEnabled=true.
También puede usar el recurso web sin habilitar el soporte de Azure de esta forma, en este caso funciona
casi completamente del mismo modo que el control predeterminado.
5. En la pestaña Formato , elija las reglas de formato que prefiere. Se recomienda desactivar la casilla de
verificación Mostrar el borde .
6. Seleccione Aceptar para guardar el recurso.
7. Como alternativa, es posible que desee quitar el control existente de notas, o moverlo a una ficha o a una
sección que esté marcada para que no se vea de forma predeterminada.
8. Guarde el formulario y, a continuación, publique los cambios.

El nuevo control ahora se generará en la página, dándole la capacidad de administrar sus datos adjuntos en Azure
Storage.
El icono de clip de papel se ha reemplazado por un icono de nube para indicar que este archivo se ha almacenado
en Azure Storage. Puede continuar almacenando los datos adjuntos de Common Data Service; estos archivos se
indicarán con el icono de clip de papel.

NOTE
También debe agregar la regla de uso compartido de recursos de origen cruzado (CORS) en su cuenta de Azure Storage
como sigue; de lo contrario, verá el icono normal de los datos adjuntos en lugar del icono de nube.
Orígenes permitidos: Especifique el dominio. Por ejemplo, contoso.crm.dynamics.com.
Verbos permitidos: OBTENER, PONER, ELIMINAR, ENCABEZAR, PUBLICAR
Encabezados permitidos: Especifique los encabezados de solicitud que el dominio de origen puede especificar en la
solicitud de CORS. Por ejemplo, x-ms-meta-data*, x-ms-meta-target*. En este escenario, debe especificar *, si no el
recurso web no generará representaciones correctamente.
Encabezados expuestos: Especifique los encabezados de respuesta que se pueden enviar en la respuesta a la solicitud
de CORS y que expone el explorador al emisor de la solicitud. Por ejemplo, x-ms-meta-*.
Edad máxima (segundos): Especifique la cantidad máxima de tiempo que un explorador debe almacenar en caché la
solicitud OPCIONES de preparación. Por ejemplo, 200.
Más información: Soporte CORS para Azure Storage Services.

Si el archivo adjunto es una imagen, el control mostrará la imagen como miniatura si está almacena en Common
Data Service o Azure Storage.

NOTE
La característica de la miniatura está limitada a las imágenes de menos de 1 MB de tamaño.
Admisión de protocolo CORS
El protocolo Uso compartido de recursos de origen cruzado (CORS ) se compone de un conjunto de encabezados
que indican si una respuesta se puede compartir con otro dominio. La siguiente configuración se usa para
configurar CORS.

NOMBRE DESCRIPCIÓN

HTTP/Access-Control-Allow-Credentials El único valor válido para este encabezado es verdadero (con


distinción entre mayúsculas de minúsculas). Si no necesita las
credenciales, omita este encabezado completamente (en lugar
de establecer el valor en falso).

HTTP/Access-Control-Allow-Headers Una lista delimitada por comas de los encabezados de


solicitud HTTP admitidos.

HTTP/Access-Control-Allow-Methods Una lista delimitada por comas de los métodos de solicitud


HTTP admitidos como OBTENER, CORREO, OPCIONES.

HTTP/Access-Control-Allow-Origin Para permitir que un recurso acceda a las recursos, puede


especificar *. De lo contrario, especifique el URI que puede
tener acceso a los recursos.

HTTP/Access-Control-Expose-Headers Una lista delimitada por comas de nombres de encabezado


HTTP distintos a los encabezados de respuesta sencillos que el
recurso puede usar y a los que puede ser expuesto.

HTTP/Access-Control-Max-Age El número máximo de segundos que se pueden almacenar los


resultados en la caché.
Administrar documentos de SharePoint
25/11/2019 • 16 minutes to read • Edit Online

Common Data Service admite la integración de SharePoint Online que le habilita a usar las funcionalidades de
administración de documentos de SharePoint desde Common Data Service. Los portales de PowerApps ahora
admiten cargar y mostrar documentos desde y hacia SharePoint directamente en un formulario de entidad o
formulario web en un portal. Esto permite que los usuarios del portal vean , descarguen, agreguen y eliminen
documentos de un portal. Los usuarios del portal también pueden crear subcarpetas para organizar sus
documentos.

NOTE
La administración de documentos solo fuinciona con SharePoint Online.
Se admiten a la administración de documentos con la integración basada en servidor.

Para trabajar con las funcionalidades de la administración de documentos de SharePoint dentro de Common Data
Service debe:
1. Habilitar la función de administración de documentos en aplicaciones basadas en modelo en Dynamics 365
2. Configurar la integración de SharePoint del centro de administración de portales PowerApps
3. Habilitar la administración de documentos para entidades
4. Configurar el formulario correspondiente en documentos de PowerApps
5. Crear el permiso de entidad adecuado y asignarlo al rol web adecuado

Paso 1: Habilitar la función de administración de documentos en


aplicaciones basadas en modelo en Dynamics 365
Debe habilitar la funcionalidad de administración de documentos en aplicaciones basadas en modelo en Dynamics
365 mediante la integración de SharePoint basada en servidor. La integración de SharePoint basada en servidor
permite a aplicaciones basadas en modelo en Dynamics 365 y SharePoint Online realizar una conexión entre
servidores. El portal usa el registro del sitio SharePoint predeterminado. Para obtener información sobre cómo
habilitar funcionalidades de administración de documentos en aplicaciones basadas en modelo en Dynamics 365,
consulte Configurar aplicaciones basadas en modelo en Dynamics 365 para usar SharePoint Online.

Paso 2: Configurar la integración de SharePoint del centro de


administración de portales de PowerApps
Para usar las funcionalidades de administración de documentos de SharePoint, debe habilitar la integración de
SharePoint desde el centro de administración de portales de PowerApps.

NOTE
Debe ser un administrador global para realizar esta acción.

1. Abra Centro de administración de Portales de PowerApps.


2. Vaya a Configurar la integración de SharePoint > Habilitar la integración de SharePoint.

3. Seleccione Habilitar en la ventana de confirmación. Esto permitirá al portal comunicarse con SharePoint.
Mientras la integración de SharePoint está siendo activada, el portal se reiniciará y no estará disponible
durante unos minutos. Aparece un mensaje cuando la integración de SharePoint está habilitada.
Cuando la integración de SharePoint se habilita, la acción siguiente está disponible:
Deshabilitar la integración de SharePoint: Le permite deshabilitar la integración de SharePoint con su
portal. Mientras la integración de SharePoint está siendo desactivada, el portal se reiniciará y no estará
disponible durante unos minutos. Aparece un mensaje cuando la integración de SharePoint está
desactivada.

Al habilitar o deshabilitar la integración de SharePoint actualizará la aplicación Azure Active Directory (Azure AD )
para el portal y agregará o quitará los permisos de SharePoint necesarios, respectivamente. También se le
redirigirá para dar su consentimiento para que se realicen los cambios en la aplicación Azure AD.
Si no da su consentimiento:
La habilitar o deshabilitación de la integración de SharePoint no se completará y se mostrará un mensaje de
error.
Su inicio de sesión de Azure AD en el portal no funcionará.

Paso 3: Habilitar la administración de documentos para entidades


Debe permitir que la administración de documentos para entidades almacene documentos relacionados con
registros de entidad en SharePoint. Para obtener información sobre cómo habilitar la administración de
documentos para entidades, consulte Habilitar la administración de documentos de SharePoint para entidades
específicas.

Paso 4: Configurar el formulario apropiado para mostrar documentos


PowerApps personalización
Identifique el formulario donde desea usar funcionalidades de administración de documentos. Debe editar el
formulario usando el editor de formularios de aplicaciones basadas en formulario y agregarle una subcuadrícula. El
subcuadrícula agrega una sección al formulario, lo que le permite trabajar con documentos desde un portal. Debe
establecer las siguientes propiedades en la subcuadrícula para que esta característica funcione:
En Origen de datos, seleccione Ubicaciones de documentos del lista Entidad.
En Origen de datos, seleccione Ubicaciones de documentos activos del lista Vista predeterminada.
Puede especificar el nombre y la etiqueta según sus necesidades. Guarde y publique el formulario una vez que se
haya agregado y configurado la subcuadrícula.

NOTE
La administración de documentos debe estar habilitada para la entidad para la que edita el formulario. Más información:
Habilitar la administración de documentos para entidades

Configuración de portales de PowerApps


Aparte de la configuración estándar necesaria para el formulario de entidad o el formulario web, debe establecer
las siguientes propiedades para habilitar la administración de documentos:
Nombre de entidad y Nombre del formulario: Especifique los nombres de la entidad y formulario
personalizados en el paso anterior, respectivamente.
Seleccione la casilla de verificación Habilitar permiso de entidad en el formulario para permitir que un
usuario lea los documentos.
Establezca el Modo en Editar para permitir cargas de documentos.

NOTE
La carga de documentos requiere que el registro de la entidad principal exista. Si establece el modo de inserción, la carga del
documento no funcionará porque el registro de la entidad principal no se creará hasta que se haya enviado el formulario.

Paso 5: Crear el permiso de entidad adecuado y asignarlo al rol web


adecuado
Se necesitan dos registros de permiso de entidad para establecer el acceso necesario para ver y para cargar
documentos.
Permisos en la entidad del formulario de entidad o el formulario web:
Cree un registro de Permiso de entidad que especifique el Nombre de entidad como la entidad del
formulario de entidad o el formulario web configurado anteriormente.
Seleccione un Ámbito y una relación de ámbito que sea adecuado al comportamiento que desee en el
formulario.
Habilite los privilegios Leer y Anexar a para permitir acceso de lectura de los documentos y habilitar
opcionalmente el privilegio de Escribir para permitir cargas de documentos. Omita la sección Permisos
de entidad secundaria por ahora, ya que se rellenará en el paso siguiente.
Permisos en la Ubicación de documentos con el Ámbito primario que hace referencia al anterior registro
del permiso:
Cree un registro de Permisos de entidad que especifique el Nombre de entidad como entidad de
Ubicación de documentos con Ámbito establecido como Primario.
Seleccione el permiso de entidad primaria para el registro de permiso de entidad creado en el paso
anterior.
Privilegios
Los privilegios mínimos para permitir acceso de lectura a los documentos son Leer, Crear y
Anexar.
Incluya privilegios de Escribir para el acceso a la carga de documentos.
Incluya Eliminar para permitir la eliminación de un documento.

NOTE
Un permiso de entidad secundaria correspondiente en la entidad Ubicación de documentos debe haberse creado para cada
instancia de registro de permiso de entidad primaria que exista en la entidad de formulario de entidad o formulario web
donde los documentos se deben mostrar.

Configure el tamaño del archivo de carga


De manera predeterminada, el tamaño del archivo se establece en 10 MB. Sin embargo, puede configurar el
tamaño del archivo hasta un máximo de 50 MB usando la configuración del sitio SharePoint/MaxUploadSize .
Configuración de ejemplo para habilitar la administración de
documentos en el formulario de entidad Caso
El siguiente ejemplo demuestra la configuración utilizando la entidad Caso que necesita la aplicación Dynamics
365 Customer Service como requisito previo. Aunque este ejemplo usa la entidad Caso, sólo es una ilustración de
los pasos mencionados y se puede seguir con cualquier otra entidad personalizada o cualquier entidad de
Common Data Service que admita la administración de documentos en SharePoint.
1. Siga las instrucciones en Paso 1 para asegurarse de que la configuración basada en servidor está completa
para aplicaciones basadas en modelo en la integración de Dynamics 365 y SharePoint.
2. Siga las instrucciones en Paso 2 para asegurarse de que el portal tiene permisos para integrarse con
SharePoint.
3. Siga las instrucciones en Paso 3 para asegurarse de que la administración de documentos está habilitada
para la entidad Caso.
4. Siga las instrucciones en Paso 4 con las siguientes configuraciones:
Aplicaciones basadas en modelo en la personalización de Dynamics 365
a. Vaya a Personalizaciones > Personalización > Personalización del sistema.
b. In la Solución predeterminada, vaya a Caso entidad > Formularios.
c. Abra Web – editar Caso en el editor de formularios.

d. Seleccione el campo Creado en en el formulario y, en la pestaña Insertar , seleccione


Subcuadrícula.
e. En el cuadro de diálogo Establecer propiedades, defina las siguientes propiedades y seleccione
Aceptar:
Nombre (Puede ser cualquier nombre): CaseDocuments
Etiqueta (Puede ser cualquier nombre de etiqueta): Documentos de Caso
Entidad: Ubicaciones de documentos
Vista predeterminada: Ubicaciones de documentos activos
f. En el editor de formularios, seleccione Guardar y, después, seleccione Publicar.
Configuración de portales de PowerApps
a. Vaya a Portales > Formularios de entidad.
b. Busque y abra el el formulario de entidad Servicio al cliente - Editar Caso.
c. Revise y asegúrese de que están establecidas las siguientes las propiedades:
Nombre de entidad: Caso (incidente)
Nombre del formulario: Web – Editar Caso
Modo: Editar
Permisos de entidad: Habilitados
d. Si ha realizado algún cambios en el formulario, seleccione Guardar.
5. Siga Paso 5 para asegurarse de que los permisos de entidad se conceden a los usuarios.
a. Vaya al registro Rol web que está asociado al usuario. Para este ejemplo, asumiremos que el usuario
tiene un rol web de administrador.
b. Asegúrese de que existe un registro de permiso de entidad con el nombre de Servicio al cliente -
Casos en los que el contacto es cliente.

NOTE
Asegúrese de que su rol web tenga este permiso de entidad agregado. Si el usuario ya es un administrador, el
permiso de entidad anterior no necesita ser asignado explícitamente.

c. Cree un nuevo permiso de entidad, especifique los siguientes detalles y seleccione Guardar:
Nombre (Puede ser cualquier nombre): Servicio al cliente - Documentos relacionados
Nombre de entidad: Ubicación de documentos
Ámbito: Primario
Permiso de entidad primaria: Servicio de atención al cliente - casos en los que el contacto es el
cliente
Relación primaria: incident_SharePointDocumentLocations
Privilegios: Leer, Crear, Anexar, Escribir, Eliminar
d. Inicie sesión en el portal para asegurarse de que la administración de documentos esté habilitada
para la entidad Caso.
a. Vaya a la página Soporte.

b. Haga clic en un registro de Caso existente de la lista. Vaya a la sección Documentos de Caso en la
página y vea la lista de documentos agregada.
Problemas conocidos
25/11/2019 • 10 minutes to read • Edit Online

Problemas generales
La Fecha de modificación para la aplicación puede ser incorrecta porque son aplicaciones
preaprovisionadas y podrían haber sido aprovisionadas anteriormente.
Al crear un entorno junto con el portal de inicio, no se muestra el propietario del portal correctamente. Se
muestra como sistema.
Si está reutilizando la dirección URL de un portal eliminado recientemente para crear un nuevo portal,
tendrá cierto retraso para configurar tiempo de ejecución. Esto se debe a que la purga de recursos
anteriores aún estaría en curso y puede tardar de 30 minutos a 1 hora para que el nuevo portal se configure
en Azure. El portal tampoco estará disponible para editar durante este tiempo y puede mostrar errores
cuando se lance en Studio para su edición.
Al cambiar un entorno en PowerApps, los portales en un entorno pueden no mostrarse inmediatamente en
Aplicaciones o lista Aplicaciones recientes. Esto ocurre en particular en entornos que se crean en una
región distinta que su inquilino. La solución alternativa consiste en usar la actualización de explorador o
esperar algún tiempo a que portal aparezca en la lista de aplicaciones.
Si mantiene abierto el panel de configuración del portal en la página principal de PowerApps mientras
restablece el portal desde el Centro de administración de portales de PowerApps, un usuario verá el
mensaje de error “Se ha producido un error" el panel de configuración del portal, ya que el portal no está
disponible.
En determinados casos, cuando se crea un portal, los estilos no se aplican correctamente al portal, y el sitio
web se muestra sin los estilos cuando se abre con Examinar sitio web. Esto ocurre raramente y los estilos
pueden ser recuperados reiniciando el portal desde el Centro de administración de portales de PowerApps.

Problemas de portales de PowerApps Studio


Si un portal tiene jerarquía de páginas de más de tres niveles, las páginas del cuarto nivel en adelante no se
muestran en portales de PowerApps Studio.
El tamaño de fuente de texto seleccionado solo se visualizará si hay un tamaño de fuente definido
específicamente para ese texto. Si es parte de etiquetas HTML estándar como p, H1, H2, H3, etc., portales
de PowerApps Studio no mostrará el tamaño de fuente.
La página web que utiliza la plantilla Página con navegación lateral muestra sólo el vínculo de las
páginas que existían durante la creación de la página web. Puede actualizar los vínculos de la parte lateral
izquierdo de la página cambiando la plantilla de página a otra plantilla y después de nuevo a Página con
navegación lateral.
Cuando elimina una página web, el lienzo no refleja el menú actualizado hasta la siguiente actualización del
lienzo.
El selector de colores y sus cadenas relacionadas sólo se admiten en inglés.
Algunas páginas de plantilla en el portal Autoservicio de empleados no pueden representar la ruta de
exploración correcta.
Algunas plantillas de portales de PowerApps, enlazadas especialmente a las aplicaciones basadas en
modelo en Dynamics 365, no tienen elementos de menú predeterminados en su jerarquía de páginas. La
razón es que no hay orden de páginas disponible en todas o algunas páginas web. Cualquier portal sin
orden de presentación de páginas web tendrá este problema.
Se muestra un mensaje de error cuando el contenido de la página (copia de página) supera el límite de
65536 caracteres y el resumen de la página supera el límite predeterminado de 2000 caracteres.
El menú de navegación solo es visible en el lienzo con una resolución de ancho mínimo de 1600px.
Una imagen cargada en una página se convierte en el elemento secundario de la página. Si elimina la
página, y usa la imagen en otra página, la imagen no se representará en portales de PowerApps Studio ni el
sitio web.
La representación de formulario no se admite actualmente en portales de PowerApps Studio. Cuando se
agrega un formulario, debe seleccionar Examinar sitio web para abrir el sitio web y comprobar el
formulario.
En un fondo de texto o de sección, si cambia color a Sin color, portales de PowerApps Studio no quita los
atributos relacionados como color de fondo o color de fuente, sino que convierte los valores en nulos.
En los siguientes escenarios, portales de PowerApps Studio deja de cargar y muestra el error "Hay una
desconexión":
Si la página principal se elimina o deshabilita para un portal.
Si una plantilla de página relacionada con la página principal o cualquier página se deshabilita o se
elimina.
Portales de PowerApps Studio no podrá cargar código fuente esos fragmentos de contenido que no tienen
un idioma asignado en Common Data Service.
En algunos casos los cambios del encabezado y el pie de página, a través de la experiencia WYSIWYG de
portales de PowerApps Studio o a través del editor de código, no se reflejarán inmediatamente.
Si a una página web se le asigna la plantilla de búsqueda en portales de PowerApps Studio, mostrará una
página sencilla con el cargador. Para que esto funcione, tendrá que crear un marcador del sitio adecuado
para esa página.
La plantilla de Studio predeterminada también aparece como opción en la plantilla de página cuando se
crea una nueva página una vez se usa en portales de PowerApps Studio. Además, esta plantilla se inserta
solo en inglés y no admite la localización en función del idioma predeterminado de Common Data Service
o del portal.
Una lista representada como control del calendario o mapa no se puede configurar a través de portales de
PowerApps Studio.
El campo Dirección URL parcial en las propiedades de página no acepta caracteres especiales y rompe la
representación en el lienzo durante algún tiempo.
La carga de CSS podría producir un error cuando el nombre de archivo CSS contenga caracteres especiales
o espacios en el nombre de archivo.
Las páginas web no publicadas no se representan en el lienzo de portales de PowerApps Studio.
Mientras usa portales de PowerApps Studio, si el idioma base del portal es diferente del idioma del
explorador, las nuevas páginas web creadas mediante la plantilla predeterminada de Studio tendrán
contenido ficticio insertado en el idioma del explorador en lugar del idioma del portal.
Solo se muestra CSS aplicado en la página raíz en el panel Tema. Aunque si intenta cargar un archivo CSS
con un mismo nombre que cualquier otro archivo CSS disponible en el portal, portales de PowerApps
Studio le pedirá que reemplace ese archivo.
Portales de PowerApps Studio no se admite actualmente en Safari en un sistema operativo Mac y tiene los
siguientes problemas:
La selección de componente no es correcta y al pasar el cursor sobre un componente se proporciona
una indicación de destino incorrecta.
Dos o tres secciones de columna no se representan correctamente en portales de PowerApps Studio
pero son correctas en el sitio web.
Preguntas más frecuentes sobre portales de
PowerApps
25/11/2019 • 5 minutes to read • Edit Online

Hemos recopilado una lista de preguntas frecuentes con respuestas breves para que obtenga la información que
necesita con rapidez.

Recibo un error de que sólo un portal pueda ser creado.


Actualmente, puede crear solo un portal de cada tipo en un entorno por idioma. Si intenta crear más de un portal,
verá un mensaje de error como el siguiente:

Para crear más portales, debe crear un nuevo entorno mediante el vínculo crear nuevo entorno en el mensaje de
error. Para obtener más información sobre crear un portal, consulte Crear un portal.

Recibo un error de que no puedo eliminar mi portal.


Si no tiene suficientes privilegios para eliminar un portal, verá un error como el siguiente:

Para obtener información sobre eliminar un portal y los privilegios necesarios, vea Eliminar un portal.

Recibo un error de que no puedo crear un portal.


Si no tiene suficientes privilegios para crear un portal en un entorno, verá un error como el siguiente:
Para obtener información sobre crear un portal y los privilegios necesarios, vea Crear un portal.

Recibo el mensaje: “Sus datos no están listos”.


Algunas veces la creación de la base de datos puede tardar un tiempo y el estado correcto puede no reflejarse en la
página principal. En este caso verá el mensaje siguiente:

Si sigue recibiendo el mensaje de crear base de datos o los datos no están listos, puede intentar actualizar la página
principal de PowerApps antes de seleccionar la ventana Portal en blanco.

Recibo un error de que no tengo los permisos necesarios para crear


aplicaciones de Azure Active Directory.
Al crear un portal, el portal como nueva aplicación se registra en Azure Active Directory asociado al inquilino. Si no
tiene suficientes privilegios para registrar una aplicación con el inquilino de Azure Active Directory, verá un error
como el siguiente:
Para crear y registrar aplicaciones en Azure Active Directory, debe ponerse en contacto con el administrador de
inquilinos para activar la configuración Registros de aplicación para su inquilino. Para obtener información,
consulte Permisos requeridos.

Recibo un error de que la creación del portal es bloqueada en este


inquilino por el administrador global
Si la creación del portal está bloqueada en un inquilino por el administrador global, verá un error como el
siguiente:

Debe ponerse en contacto con el administrador global para habilitar la creación de portales por no
administradores.
Si usted es un administrador global, debe deshabilitar el valor del nivel de inquilino de
disablePortalsCreationByNonAdminUserscon PowerShell. Ejecute el siguiente comando en una ventana de
PowerShell (ejecute PowerShell como administrador).

Set-TenantSettings -RequestBody @{ "disablePortalsCreationByNonAdminUsers" = $false }

Más información: Deshabilitar creación de portal en un inquilino

Estoy obteniendo un error de que no tengo licencia adecuada para


obtener acceso a este sitio web.
Los usuarios internos de una organización que usan portales para tener acceso a páginas autenticadas requieren
que haya licencias asignadas al entorno al que esté conectado un portal. Puede leer más acerca de los derechos de
usuario para los portales para usuarios internos aquí. Cuando un entorno no tiene licencias asignadas, los usuarios
internos recibirán un error como el siguiente:
¿Qué es Common Data Service?
25/11/2019 • 13 minutes to read • Edit Online

Common Data Service le permite almacenar y administrar de forma segura los datos que usan las aplicaciones
empresariales. Los datos de Common Data Service se almacenan en un conjunto de entidades. Una entidad es
un conjunto de registros que se usa para almacenar datos, similar a cómo una tabla almacena los datos en una
base de datos. Common Data Service incluye un conjunto base de entidades estándar que cubren escenarios
típicos, pero también puede crear entidades personalizadas específicas para su organización y rellenarlas con
datos usando Power Query. Los creadores de aplicaciones pueden usar PowerApps para crear aplicaciones
completas usando estos datos.

Para obtener información sobre cómo comprar un plan para usar Common Data Service, consulte Información
de precios.

¿Por qué usar Common Data Service?


Las entidades estándar y personalizadas de Common Data Service proporcionan una opción de
almacenamiento de datos segura y basada en la nube. Las entidades le permiten crear una definición orientada
al negocio de los datos de su organización para su uso en aplicaciones. Si no está seguro de si las entidades
son la mejor opción para usted, considere estas ventajas:
Fácil de administrar – Los metadatos y los datos se almacenan en la nube. No tiene que preocuparse de
los detalles de cómo se almacenan.
Fácil de proteger – Los datos se almacenan de forma segura de forma que los usuarios solo podrán verlos
si les concede acceso a ellos. La seguridad basada en roles le permite controlar el acceso a las entidades
para diferentes usuarios en la organización.
Acceso a sus datos de Dynamics 365 – Los datos de las aplicaciones de Dynamics 365 también se
almacenan en Common Data Service, lo que le permite crear rápidamente aplicaciones que aprovechan los
datos de Dynamics 365 y ampliar sus aplicaciones usando PowerApps.
Metadatos enriquecidos – Los tipos de datos y las relaciones se aprovechan directamente en PowerApps.
Lógica y validación – Defina campos calculados, reglas de negocio, flujos de trabajo y flujos de proceso de
negocio para garantizar la calidad de los datos e impulsar los procesos de negocio.
Herramientas de productividad – Las entidades están disponibles en los complementos de Microsoft
Excel para aumentar la productividad y garantizar la accesibilidad de los datos.

Dynamics 365 y Common Data Service


Las aplicaciones de Dynamics 365, como Dynamics 365 Sales, Dynamics 365 Customer Service o Dynamics
365 Talent, también usan Common Data Service para almacenar y proteger los datos que usan las aplicaciones.
Esto le permite crear aplicaciones mediante PowerApps y Common Data Service directamente con sus datos
de negocio clave ya usados en Dynamics 365 sin necesidad de integrarlos.
Crear aplicaciones con sus datos de Dynamics 365 – Cree aplicaciones rápidamente con sus datos
profesionales en PowerApps o usando el SDK Pro Developer.
Administrar reglas y lógica de negocios reutilizables – Las reglas y lógica de negocio ya definidas
en sus entidades de Dynamics 365 se aplican a las entidades de PowerApps para garantizar la
coherencia de datos independientemente del modo en que los usuarios accedan a los datos o con qué
aplicación.
Habilidades reutilizables en Dynamics 365 y PowerApps – Los usuarios con habilidades anteriores
en PowerApps o Dynamics 365 ahora pueden aprovecharlas en la nueva plataforma de Common Data
Service. La creación de entidades, formularios, gráficos, etcétera ahora son funciones comunes en sus
aplicaciones.

NOTE
Las aplicaciones Finance and Operations requiere actualmente la configuración del integrador de datos para que
los datos profesionales de las aplicaciones Finance and Operations estén disponibles en Common Data Service.

Integrar datos en Common Data Service


La creación de una aplicación implica normalmente datos de más de un origen y, aunque a veces esto se puede
hacer en el nivel de aplicación, también hay casos en los que al integrar estos datos en un almacén común
permite una experiencia de creación de aplicaciones más sencilla y un único conjunto de lógica para mantener
y operar con los datos. Common Data Service permite integrar los datos de varios orígenes en un único
almacén que luego se pueden usar en PowerApps, Flow y Power BI, junto con los datos que ya estén
disponibles en las aplicaciones de Dynamics 365.
Integración programada con otros sistemas – Los datos que se mantienen en otra aplicación se pueden
sincronizar periódicamente con Common Data Service para poder aprovechar los datos de otras
aplicaciones en PowerApps.
Transformar e importar datos con PowerQuery – La transformación de datos al importar en Common
Data Service puede realizarse mediante PowerQuery desde muchos orígenes de datos en línea, una
herramienta común que se usa en Excel y Power BI.
Importación única de datos – Se puede usar una importación y exportación simples de archivos de Excel
y CSV para una importación única o poco frecuente de datos en Common Data Service.
Para obtener más información sobre cómo integrar datos en Common Data Service, consulte Agregar datos a
una entidad en Common Data Service usando Power Query.

Interactuar con entidades


Cuando desarrolla una aplicación, puede usar entidades estándar, entidades personalizadas o ambas. Common
Data Service proporciona entidades estándar de forma predeterminada. Estas están diseñadas, de acuerdo con
prácticas recomendadas, para capturar los conceptos y escenarios más comunes en una organización.
Para ver una lista completa de entidades, consulte Referencia de entidad.
Puede ampliar la funcionalidad de entidades estándar creando una o varias entidades personalizadas para
almacenar la información que es única para su organización. Para obtener más información, consulte Cómo
crear una entidad personalizada.

Lógica y validación
Las entidades de Common Data Service pueden aprovechar la lógica y validación enriquecidas de servidor
para garantizar la calidad de los datos y reducir código repetitivo en cada aplicación que crea y usa datos en
una entidad.
Las reglas de negocio validan los datos de varios campos y entidades, y proporcionan advertencias y
mensajes de error, independientemente de la aplicación usada para crear los datos. Para obtener más
información, consulte Crear una regla de negocio.
Los flujos de proceso de negocio guían a los usuarios para asegurarse de que introducen los datos de
forma coherente y de que siguen los mismos pasos cada vez. Actualmente, los flujos de proceso de negocio
solo se admiten para aplicaciones controladas por modelos. Para obtener más información, consulte
Información general sobre flujos de proceso de negocio.
Los flujos de trabajo le permiten automatizar los procesos de negocio sin interacción del usuario. Para
obtener más información, consulte Información general de flujos de trabajo.
La lógica de negocios con código admite escenarios avanzados de desarrollador para ampliar la
aplicación directamente con código. Para obtener más información, consulte Aplicar lógica de negocios con
código.

Seguridad
Common Data Service tiene un rico modelo de seguridad que protege la integridad de los datos y privacidad
de los usuarios al tiempo que promueve una colaboración y un acceso a los datos eficaces. Puede combinar
unidades de negocio, la seguridad basada en roles, la seguridad de registros y la seguridad basada en campos
para definir el acceso generala la información que los usuarios tienen en un entorno de Common Data Service.
Más información: Seguridad en Common Data Service

Capacidades de desarrollador
Además de las características disponibles mediante el portal de PowerApps, Common Data Service también
incluye características para que los desarrolladores puedan acceder de forma programática a los metadatos y
datos para crear entidades y lógica de negocios, así como para interactuar con datos. Para obtener más
información, consulte Información general para desarrolladores de Common Data Service

Pasos siguientes
Para empezar a utilizar Common Data Service:
Crear una aplicación de lienzo mediante una base de datos Common Data Service.
Crear una entidad personalizada y, a continuación, crear una aplicación de lienzo que use la entidad.
Crear una aplicación basada en modelos con Common Data Service.
Usar Power Query para conectarse a un origen de datos en línea o local e importar los datos directamente
en Common Data Service.

Aviso de privacidad
Con el modelo común de datos de Microsoft PowerApps, Microsoft recopila y almacena la entidad
personalizada y los nombres de campo en nuestros sistemas de diagnóstico. Usamos esta información para
mejorar el modelo común de datos para los clientes. La entidad y los nombres de campo que los creadores de
la aplicación crean nos ayudan a comprender los escenarios que son comunes en la comunidad de Microsoft
PowerApps y a determinar los huecos en la cobertura de las entidades estándar del servicio, como los
esquemas relacionados con las organizaciones. Microsoft no accede a los datos de las tablas de base de datos
asociadas a estas entidades ni los usa o replica fuera de la región en la que se proporciona la base de datos. No
obstante, tenga en cuenta que la entidad personalizada y los nombres de campo se pueden replicar en las
regiones y que se eliminan de acuerdo con nuestras directivas de retención de datos. Microsoft se compromete
a proteger su privacidad, como se describe con más detalle en nuestro Centro de confianza.
Información general sobre las entidades
25/11/2019 • 2 minutes to read • Edit Online

Las entidades se usan para modelar y administrar datos profesionales. Cuando desarrolla una aplicación, puede
usar entidades estándar, entidades personalizadas o ambas. Common Data Service proporciona entidades
estándar de forma predeterminada. Estas están diseñadas, de acuerdo con prácticas recomendadas, para capturar
los conceptos y escenarios más comunes en una organización.

Vea también
Crear una entidad personalizada
Tipos de entidades
Creación de una entidad personalizada
25/11/2019 • 12 minutes to read • Edit Online

En PowerApps, una entidad define la información de la que desea realizar un seguimiento en forma de registros,
que incluyen normalmente propiedades como el nombre, ubicación, productos, correo electrónico, y teléfono de
la compañía. A continuación puede exponer los datos desarrollando una aplicación que haga referencia a la
entidad. PowerApps ofrece entidades estándar “listas para usar” que cubren los escenarios típicos de una
organización (como citas de seguimiento), pero puede haber ocasiones en las que necesite crear entidades
personalizadas para almacenar datos que sean específicos de la organización.
En este tema, aprenderá a crear una entidad personalizada llamada Valoración de producto que puede usar para
crear una aplicación que muestre calificaciones y comentarios de los productos que vende su compañía.

Requisitos previos
Para seguir este procedimiento, debe tener un rol de seguridad de administrador del sistema o personalizador
del sistema en Common Data Service.

Iniciar sesión en PowerApps


Iniciar sesión en PowerApps en https://make.powerapps.com.

Crear una entidad


1. En el panel de navegación, haga clic o pulse en Datos para expandirlo y haga clic o pulse en Entidades.

2. en la barra de comandos, haga clic o pulse en Nueva entidad.


Antes de crear una entidad, compruebe la referencia de entidad para ver una descripción de las entidades
estándar disponibles. Estas entidades cubren los escenarios típicos. Si una de estas entidades cumple sus
requisitos tal como están o tras pocos cambios, puede ahorrar tiempo comenzando con esa entidad.
3. En el panel Nueva entidad, haga lo siguiente:
a. En el cuadro Nombre para mostrar, introduzca Valoración de producto.
Observe que los cuadros siguientes se rellenan automáticamente mientras escribe un nombre para
mostrar:
Nombre para mostrar plural - Este cuadro se rellena automáticamente cuando introduce un
nombre para mostrar, pero puede cambiarlo si fuera necesario. El nombre para mostrar plural es el
nombre de la entidad en la API web de Common Data Service y se usa para interactuar con esta
entidad desde PowerApps o Flow.
Nombre - Este cuadro también se rellena automáticamente al escribir un nombre para mostrar. El
prefijo se definió cuando se creó el entorno y garantiza que las entidades que cree se puedan
exportar e importar en otros entornos sin entrar en conflicto con otros nombres de entidad. Puede
cambiar este prefijo actualizándolo en su publicador para la solución predeterminada de Common
Data Service. Para evitar que se dañen las aplicaciones existentes, no puede cambiar el nombre
después de guardar la entidad.

NOTE
Para que el nombre de la entidad funcione con la búsqueda de conocimiento incrustado de Dynamics 365
for Customer Service, la longitud máxima del nombre de entidad, incluido el prefijo del editor, no puede
superar los 24 caracteres.

b. En la sección Campo principal, en el cuadro Nombre para mostrar, reemplace Nombre por
Valoración del producto.
De forma predeterminada, cada entidad contiene un campo Campo principal, que se usa en los campos
de búsqueda al establecer relaciones con otras entidades. El campo principal almacena normalmente el
nombre o la descripción principal de los datos almacenados en la entidad. Puede actualizar el nombre y el
nombre para mostrar del campo principal antes de guardar la entidad por primera vez.
Además, observe que el campo principal también tiene su propio cuadro Nombre , que funciona
semejantemente al nombre de entidad descrito anteriormente. El nombre del campo principal se rellena
automáticamente cuando se especifica un nombre para mostrar, usa la misma prefijo que la entidad, y no
se puede cambiar después de que se crean a la entidad.
c. Abra la sección Más valores y expanda el acordeón Descripción. Puede especificar una descripción
para la entidad si lo desea (las descripciones son útiles si otras personas usan esta entidad).
d. Cuando acabe, haga clic en Crear.
4. En la página de detalles de la entidad, observe que la entidad ahora se está aprovisionando en segundo
plano. Una vez completado el aprovisionamiento, la entidad se guardará y estará disponible para su uso
en aplicaciones. Los campos, relaciones, y las claves se pueden agregar a la entidad en cualquier
momento (incluso mientras el aprovisionamiento aún está en curso), pero las vistas, formularios, gráficos,
paneles, y las reglas de negocio se pueden agregar sólo a la entidad después de completar el
aprovisionamiento.

5. En la pestaña Campos, observe el Campo principal al que dio nombre en el paso anterior. Haga clic o
pulse en el campo Campo principal para abrir el panel Campo principal si desea realizar
personalizaciones adicionales al campo. Tenga en cuenta que Nombre ya no se puede cambiar más, ya
que la entidad ya se ha guardado.
6. Para agregar un campo a la entidad, realice lo siguiente:
a. En la barra de comandos, haga clic o pulse en Agregar campo para abrir el panel Propiedades de
campo.
b. En el cuadro Nombre para mostrar, introduzca Fecha de valoración.
c. En la lista desplegable Tipo de datos seleccione Solo fecha.
d. Haga clic o pulse en la casilla Necesario.
e. Haga clic o pulse en Hecho.
Para obtener más información, consulte Administrar campos de una entidad.

7. Repita el paso anterior para agregar tres campos más con las siguientes configuraciones:
Nombre para mostrar = Calificación de productos; Tipo de datos = Número entero; haga clic o
pulse en la casilla Necesario
Nombre para mostrar = Nombre del revisor; Tipo de datos = Texto
Nombre para mostrar = Comentario del revisor; Tipo de datos = Texto
Cuando finalice, debería tener cinco campos en la lista de la página de detalles de la entidad.

Tenga en cuenta que todas las entidades tienen campos del sistema de solo lectura. De forma
predeterminada, los campos del sistema no se muestran en la lista de campos aunque existan en la
entidad. Para ver todos los campos, cambie el filtro en la barra de comandos de Predeterminado a
Todos. Para obtener más información sobre los metadatos relacionados con una entidad, consulte
Metadatos de entidad.
8. Haga clic en Guardar entidad para guardar los últimos cambios a la entidad.
La entidad Valoración de producto debería aparecer en la lista de entidades en la base de datos. Si no la
ve, cambie el filtro en la barra de comandos de Predeterminado a Personalizado.

Pasos siguientes
En este tema, ha aprendido a crear una entidad personalizada llamada Valoración de producto que puede usar
para crear una aplicación que muestre calificaciones y comentarios para cada uno de los productos que vende
una determinada compañía. A continuación, aprenderá a definir relaciones entre entidades (en este caso entre la
entidad estándar Producto y la entidad personalizada Valoración de producto) para que pueda asociar cada
producto con las reseñas y comentarios que recibe.
Crear una relación

Aviso de privacidad
Con el modelo común de datos de Microsoft PowerApps, Microsoft recopila y almacena la entidad
personalizada y los nombres de campo en nuestros sistemas de diagnóstico. Usamos esta información para
mejorar el modelo común de datos para los clientes. La entidad y los nombres de campo que los creadores de la
aplicación crean nos ayudan a comprender los escenarios que son comunes en la comunidad de Microsoft
PowerApps y a determinar los huecos en la cobertura de las entidades estándar del servicio, como los esquemas
relacionados con las organizaciones. Microsoft no accede a los datos de las tablas de base de datos asociadas a
estas entidades ni los usa o replica fuera de la región en la que se proporciona la base de datos. No obstante,
tenga en cuenta que la entidad personalizada y los nombres de campo se pueden replicar en las regiones y que
se eliminan de acuerdo con nuestras directivas de retención de datos. Microsoft se compromete a proteger su
privacidad, como se describe con más detalle en nuestro Centro de confianza.
Crear una entidad personalizada que tenga
componentes en PowerApps
25/11/2019 • 7 minutes to read • Edit Online

Con in PowerApps puede personalizar su aplicación para que se ajuste más al sector, la nomenclatura y los
procesos de negocio únicos de la organización. El desarrollo de aplicaciones de PowerApps incluye agregar
entidades predefinidas estándar o crear entidades personalizadas. Una entidad define la información a la que desea
realizar seguimiento en forma de registros, que incluyen normalmente propiedades como el nombre, ubicación,
productos, correo electrónico, y teléfono de la compañía.
En este tema creará una entidad y luego agregará o personalizará componentes clave como campos, relaciones,
vistas, y formularios. Aprenderá a:
Crear una entidad personalizada
Agregar campos personalizados a la entidad
Agregar una relación entre entidades
Personalizar vistas
Personalizar formularios
El tema seguirá a la compañía, Contoso, que es un negocio de cuidado de animales domésticos que cuida perros y
gatos. Contoso necesita una aplicación para seguimiento de clientes y animales domésticos que pueden usar los
empleados a través de una variedad de dispositivos.

Requisitos previos
Inicie sesión en PowerApps. Si aún no tiene una cuenta de PowerApps, seleccione el vínculo Introducción
gratuita de powerapps.com.

Crear una entidad personalizada


1. En el panel de navegación izquierdo, expanda Datos, seleccione Entidades y seleccione Nueva entidad.

2. En el panel derecho, escriba los siguientes valores y luego seleccione Siguiente.


Nombre para mostrar: Animal doméstico
Descripción: Entidad personalizada para seguir servicios de animales domésticos
3. Seleccione Guardar entidad.

Agregue y personalice campos


1. En la lista de entidades, seleccione la entidad Animal doméstico que se creó en la sección anterior.
2. En la pestaña Campos, seleccione el campo Animal doméstico.
3. En el panel derecho realice los cambios siguientes en el campo Nombre para mostrar:
Cambie el Nombre para mostrar de Animal doméstico a Nombre de animal doméstico
Seleccione Búsqueda.

3. Seleccione Listo.
4. En la pestaña Campos en la barra de herramientas del diseñador de entidades seleccione Agregar campo. En
el panel Propiedades de campo , escriba o seleccione los siguientes valores y opciones.
Nombre para mostrar. Especie
Tipo de datos. Conjunto de opciones
Conjunto de opciones. Nuevo conjunto de opciones
5. Crear el conjunto de opciones
a. Seleccione Agregar nuevo elemento.
b. Reemplace Nueva opción con Perro.
c. Seleccione Agregar nuevo elemento.
d. Reemplace Nueva opción con Gato.
e. Seleccione Guardar.

6. Seleccione Búsqueday, a continuación seleccione Listo.


7. En la barra de herramientas del diseñador de entidades seleccione Agregar campo. En el panel
Propiedades de campo, escriba o seleccione los siguientes valores y luego seleccione Listo.
Nombre para mostrar. Raza
Tipo de datos. Texto
Búsqueda. Sí
8. En la barra de herramientas del diseñador de entidades seleccione Agregar campo.
9. En el panel Propiedades de campo, escriba o seleccione los siguientes valores y luego seleccione Listo.
Nombre para mostrar. Fecha de cita
Tipo de datos. Fecha y hora
10. Seleccione Guardar entidad.

Agregar una relación


1. Seleccione la pestaña Relaciones, en la barra de herramientas del diseñador de entidades seleccione Agregar
relación y, a continuación seleccione Varios a uno.
2. En el panel derecho, en el lista Relacionado seleccione Cuenta.
3. Seleccione Listo.
4. Seleccione Guardar entidad.
Recuerde que cuando agrega una relación de varios a uno, un campo Cuenta con el tipo de datos Búsqueda se
agrega automáticamente a la lista de campos en la pestaña Campos.

Personalizar vistas
1. Seleccione la pestaña Vistas y, a continuación seleccione la vista Animales domésticos activos. Si no ve la
vista Animales domésticos activos , seleccione Quitar filtro.
2. En el diseñador de vistas seleccione Agregar columnas, seleccione las columnas siguientes y, a continuación
seleccione Aceptar.
Cuenta
Fecha de cita
Raza
Especie
3. Seleccione la columna Fecha de creación, seleccione Quitar y, a continuación seleccione Aceptar para
confirmar la eliminación de la columna.
4. Para organizar las columnas, seleccione la columna que desea mover y use los botones de flecha < - y - > hasta
que la vista sea como esta.

5. En la barra de herramientas del diseñador de vistas, seleccione Guardar y cerrar.

Solo aplicaciones basadas en modelo: Personalizar el formulario


principal
Omita este paso si sólo desea usar la entidad Animal doméstico en una aplicación de lienzo.
1. En el panel de navegación izquierdo, expanda Datos, seleccione Entidades y seleccione Animal doméstico.
2. Seleccione la pestaña Formularios y, a continuación seleccione Información junto al tipo de formulario
Principal para abrir el editor de formularios.

3. En el editor de formularios, arrastre y coloque los campos Especie, Raza, Fecha de cita, y Cuenta situados en
el panel del Explorador de campos en la sección General del lienzo de formulario hasta que el formulario tenga
este aspecto.

4. Seleccione Guardar.
5. Seleccione Publish.
6. Seleccione Guardar y cerrar para cerrar el diseñador de formularios.

Agregue la entidad personalizada a una aplicación


La entidad está lista ahora para usarse para crear una basada de lienzo o basada en modelo.

Pasos siguientes
En este tema, aprendió cómo crear una entidad que puede usarse para crear una aplicación útil.
Para obtener más información sobre cómo crear una aplicación basada en modelo, consulte Crear la primera
aplicación basada en modelo.
Para obtener más información sobre cómo crear una aplicación de lienzo, consulte Cree una aplicación desde
cero.
Entidades y metadatos en Common Data Service
25/11/2019 • 11 minutes to read • Edit Online

Common Data Service está diseñado de modo que pueda crear de forma rápida y sencilla un modelo de datos
para su aplicación. Normalmente, no será necesario que se preocupe con algunos de los detalles sobre los
metadatos que este tema introducirá. Pero si desea desarrollar conocimientos más profundos sobre cómo
funcionan las aplicaciones que usan Common Data Service o si usted está evaluando lo que es posible, la
comprensión de los metadatos que usa Common Data Service puede proporcionarle información detallada.
Metadatos significa datos acerca de datos. Common Data Service le proporciona una plataforma flexible porque es
relativamente fácil editar las definiciones de los datos que usará el entorno. En Common Data Service, los
metadatos son una colección de entidades. Las entidades describen las clases de datos que se almacenan en la
base de datos. Cada entidad corresponde a una tabla de la base de datos y cada campo (también denominado
atributo) en una entidad representa una columna de la tabla. Los metadatos de la entidad controlan los tipos de
registros que puede crear y el tipo de acciones que se pueden realizar en ellos. Cuando utiliza las herramientas de
personalización para crear o editar entidades, campos y relaciones entre entidades, está editando estos metadatos.
Los distintos clientes que los usuarios usan para interactuar con los datos del entorno dependen de los metadatos
de la entidad y se adaptan cuando usted personaliza los metadatos. Estos clientes también dependen de otros
datos para controlar los elementos visuales que se van a mostrar, la lógica personalizada que se va a aplicar y
cómo se aplicará la seguridad. Estos datos del sistema también se almacenan en las entidades, pero las entidades
propiamente dichas no están disponibles para la personalización.
Puede obtener información sobre entidades estándar, atributos, y las relaciones entre entidades incluidas de forma
predeterminada en Common Data Service revisando la Referencia de entidad.

TIP
Los diseñadores disponibles para editar metadatos no pueden mostrar todos los detalles encontrados en los metadatos.
Puede instalar una aplicación basada en modelos llamada Explorador de metadatos que le permitirá todas las entidades y
propiedades de metadatos que se encuentran en el sistema. Más información: Examinar los metadatos para su entorno.

¿Crear nuevos metadatos o usar los metadatos existentes?


Common Data Service incluye varias entidades estándar que admiten las principales capacidades de aplicación de
negocios. Por ejemplo, los datos sobre los clientes o clientes potenciales están destinados a almacenarse mediante
las entidades de cuenta o contacto.
Cada una de estas entidades también contiene varios campos que representan los datos comunes que el sistema
puede necesitar para almacenar la entidad respectiva.
Para la mayoría de las organizaciones es una ventaja para usted utilizar las entidades y los atributos estándar para
los fines para los que se han diseñado.
Si instala una solución, puede esperar a que el desarrollador de la solución haya aprovechado las entidades y los
atributos estándar. La creación de una entidad personalizada que sustituya una entidad o un atributo del sistema
significará que las soluciones disponibles podrían no funcionar en su organización.
Por estas razones, se recomienda buscar y usar las entidades, campos y relaciones entre entidades estándar
proporcionados cuando resulten apropiadas para la organización. Si no tienen sentido y no se pueden editar para
adaptarlos a sus necesidades, debe evaluar si se necesita crear una nueva entidad, campo o relación entre
entidades.
Recuerde que puede cambiar el nombre para mostrar de una entidad para que coincida con la nomenclatura que
se usa en la organización. Por ejemplo, es muy común que los usuarios cambien el nombre para mostrar de la
entidad de Cuenta por Compañía o el nombre de la entidad de Contacto por Individual. Esto se puede hacer en las
entidades o los atributos sin cambiar el comportamiento de la entidad. Para obtener más información sobre cómo
cambiar el nombre de las entidades, consulte Cambiar el nombre de una entidad.
No puede eliminar entidades, campos o relaciones entre entidades estándar. Se consideran parte de la solución del
sistema y se espera que cada organización los tenga. Si desea ocultar una entidad estándar, cambie los privilegios
del rol de seguridad de su organización para quitar el privilegio de lectura para la entidad. Esto quitará la entidad
de la mayoría de las partes de la aplicación. Si existe un campo del sistema que no necesita, quítelo del formulario
y de cualquier vista que lo utilice. Cambie el valor Se puede buscar en las definiciones del campo y la relación
entre entidades de forma que no aparezcan en la búsqueda avanzada.

Limitaciones para crear elementos de metadatos


Hay un límite en el número de entidades que puede crear. Puede encontrar información sobre el número máximo
en la página Configuración > Administración > Recursos en uso. Si necesita más entidades personalizadas,
póngase en contacto con el soporte técnico. Este límite superior se puede ajustar.
Dentro de cada entidad hay un límite superior en el número de campos que puede crear. Este límite se basa en las
limitaciones técnicas de la cantidad de datos que se pueden almacenar en una fila de una tabla de la base de datos.
Es difícil proporcionar un número específico porque para cada tipo de campo puede usar una cantidad de espacio
diferente. El límite superior depende del espacio total usado por todos los campos de la entidad.
La mayoría de las personas no crean suficientes campos personalizados para alcanzar el límite, pero si tiene
previsto agregar cientos de campos personalizados a una entidad, debe considerar si este es el mejor diseño.
¿Todos los campos que prevé agregar describen las propiedades de un registro de dicha entidad? ¿Tiene previsto
que los usuarios que utilicen su organización puedan administrar un formulario que incluya un número tan
elevado de campos? El número de campos que agrega a un del formulario incrementa la cantidad de datos que
deberán transferirse cada vez que un registro se modifique, lo que afectará al rendimiento del sistema. Tenga en
cuenta estos factores cuando esté agregando campos personalizados a una entidad.
Los campos de conjunto de opciones ofrecen un conjunto de opciones que se mostrará en un control desplegable
en un formulario o un control de lista desplegable al usar la búsqueda avanzada. Su entorno puede admitir miles
de opciones en un conjunto de opciones, pero no debería considerar esta característica como el límite superior. Los
estudios de capacidad de uso demuestran que los usuarios tienen problemas para utilizar un sistema donde un
control desplegable proporciona un gran número de opciones. Utilice el campo de conjunto de opciones para
definir categorías de datos. No use los campos de conjunto de opciones para seleccionar categorías que
representen realmente elementos de datos diferentes. Por ejemplo, en lugar de mantener un campo de conjunto
de opciones que almacene cientos de fabricantes posibles de un tipo de equipamiento, considere crear una entidad
que almacene referencias a cada fabricante y use un campo de búsqueda en lugar de un conjunto de opciones.

Pasos siguientes
Crear o editar entidades (tipos de registros)
Crear y editar relaciones entre entidades
Tipos de entidades
25/11/2019 • 6 minutes to read • Edit Online

Antes de crear o modificar entidades en Common Data Service, debe comprender que hay diferentes tipos de
entidades. Una vez que se crea una entidad personalizada, estos tipos no se pueden cambiar. Las dos divisiones
principales se basan en la propiedad de la entidad y en si las entidades son entidades de actividad.

Propiedad de la entidad
Existen cuatro tipos diferentes de propiedad de la entidad. Cuando cree una entidad personalizada las únicas
opciones son propiedad de un usuario o equipo o propiedad de la organización, pero debe tener en cuenta
que otras entidades tienen tipos de propiedad diferentes.

PROPIEDAD DESCRIPCIÓN

Propiedad del negocio Los datos de estas entidades pertenecen a la unidad de


negocio. El acceso a los datos se puede controlar en el nivel de
unidad de negocio.

Ninguno Los datos no son propiedad de otra entidad.

Propiedad de la organización Los datos pertenecen a la organización. El acceso a los datos


se controla en el nivel de organización.

Propiedad del usuario o el equipo Los datos pertenecen a un usuario o un equipo. Las acciones
que se pueden realizar en estos registros se pueden controlar
en un nivel de usuario.

IMPORTANT
Cuando se crea una entidad, no puede cambiar la propiedad. Antes de crear una entidad, asegúrese de que elija el tipo
adecuado de propiedad. Si determina posteriormente que la entidad personalizada debe ser de un tipo diferente, tendrá que
eliminarla y crear una nueva.

Entidades de actividad
Una actividad puede considerarse cualquier acción de la que se puede crear una entrada en un calendario. Una
actividad puede tener dimensiones de tiempo (hora de inicio, hora de detención, fecha de vencimiento y duración)
que ayudan a determinar cuándo se ha producido la acción o cuándo tendrá lugar. Las actividades también
contienen datos que ayudan a determinar qué acción representa la actividad, por ejemplo, el tema y la descripción.
Una actividad se puede abrir, cancelar o completar.El estado completado de una actividad tendrá varios valores de
estado secundarios asociados para aclarar el modo en que la actividad se ha completado.
Las entidades de actividad solo pueden pertenecer a un usuario o equipo, no pueden ser propiedad de una
organización.
En la tabla siguiente se muestran las entidades de actividad que están disponibles en un entorno predeterminado
de Common Data Service.
MOSTRAR EN LOS MENÚS DE
NOMBRE DESCRIPCIÓN ACTIVIDADES REFERENCIA

Cita Compromiso que representa Sí Cita


un intervalo de tiempo con
las fechas de inicio y fin, y la
duración.

Correo electrónico Actividad entregada con Sí Correo electrónico


protocolos de correo
electrónico.

Fax Actividad que mantiene un Sí Fax


seguimiento del resultado de
llamadas y el número de
páginas para un fax y que,
opcionalmente, almacena
una copia electrónica del
documento.

Carta Actividad que realiza un Sí Carta


seguimiento de la entrega
de una carta. Actividad que
puede contener la copia
electrónica de la carta.

Llamada de teléfono Actividad para mantener un Sí PhoneCall


seguimiento de una llamada
de teléfono.

Cita periódica Cita principal de una serie de Sí Maestro recurrente de la cita


citas periódicas.

Tarea Actividad genérica que Sí Tarea


representa el trabajo que se
debe realizar.

Puede crear nuevas entidades de actividad personalizadas. Por ejemplo, puede crear una entidad de actividad
personalizada para registrar comunicaciones de mensajes instantáneos. Crear una entidad de actividad es diferente
de crear una entidad de no actividad porque no especifica un campo principal. Todas las entidades de actividad
tienen Campo principal establecido en Asunto y otros campos comunes que se definen mediante la entidad
Actividad. Esto permite que se incluyan todos los tipos de actividades en una vista que solo muestra los campos
comunes.

NOTE
No puede crear una actividad personalizada mediante el portal de PowerApps. Debe abrir el explorador de soluciones con el
botón Avanzado.

Para crear una entidad de actividad personalizada, seleccione Definir como entidad de actividad. Después de
seleccionar esto, verá que la opción Mostrar en los menús de actividades está seleccionada. Esta opción permite
a las personas crear este tipo de actividad en los menús de actividad. No está activada para las actividades que
suelen asociarse con determinados eventos y que se crean detrás mediante código o por un flujo de trabajo.
Después de guardar la entidad, no se puede cambiar la configuración.
Vea también
Crear o editar entidades
Crear y editar entidades en Common Data Service
25/11/2019 • 10 minutes to read • Edit Online

Antes de crear una entidad personalizada, evalúe si el uso de una entidad existente cumplirá sus requisitos. Más
información: ¿Crear nuevos metadatos o usar los metadatos existentes?
Hay dos diseñadores que puede usar para crear una entidad:

DISEÑADOR DESCRIPCIÓN

Portal PowerApps Proporciona una experiencia fácil y ágil, pero algunos valores
especiales no están disponibles.
Más información:
Tutorial: Crear una entidad personalizada que tenga
componentes en PowerApps
Crear y editar entidades con el portal de PowerApps

Explorador de soluciones No es tan fácil, pero proporciona más flexibilidad para


requisitos menos comunes.
Más información: Crear y editar entidades con el explorador
de soluciones

NOTE
También puede crear entidades en su entorno mediante lo siguiente:
Importe una solución que contenga la definición de la entidad.
Use Power Query para crear nuevas entidades y rellenarlas con datos. Más información: Agregar datos a una entidad en
Common Data Service mediante Power Query..
Un programador puede usar Servicios de metadatos para escribir un programa.

Las opciones de entidad no están disponibles en el portal de


PowerApps
La información de este tema le ayudará a elegir el diseñador que puede usar. Puede usar el portal de PowerApps
para crear la entidad a menos que necesite satisfacer cualquiera de los siguientes requisitos.
Controlar el prefijo de personalización
La parte del nombre de cualquier entidad personalizada que cree es el prefijo de personalización. Esto se
establece en función del editor de soluciones para la solución en la que trabaja. Si le interesa el prefijo de
personalización, asegúrese de que está trabajando en una solución no administrada donde el prefijo de
personalización es el que desea para esta entidad. Más información Cambiar el prefijo del editor de
soluciones.
Crear entidad propiedad de la organización
De forma predeterminada, el portal de PowerApps creará entidades propiedad de un Usuario o equipo.
Use el explorador de soluciones para establecer la propiedad en Organización. Más información:
Propiedad de entidad.
Crear una entidad de actividad
Una entidad de actividad es un tipo especial de entidad que realiza un seguimiento de las acciones para
los que se puede realizar entrada en un calendario. Más información: Entidades de actividad.
Cambiar los iconos para una entidad personalizada
De forma predeterminada, todas las entidades personalizadas en las aplicaciones basadas en modelos
tienen los mismos iconos. Puede crear recursos web de imagen para los iconos que desea para las
entidades personalizadas. Más información: Cambio de iconos para entidades personalizadas.
Cambiar cualquiera de las propiedades siguientes que solo se pueden habilitar:

OPCIÓN DESCRIPCIÓN

Actividades Permite asociar actividades a registros de esta entidad.

Flujos de proceso de negocio Permite crear flujos de proceso de negocio para esta
entidad. Más información Crear un flujo de proceso de
negocio para estandarizar los procesos

Conexiones Use la característica de conexiones para mostrar cómo los


registros de esta entidad tienen conexiones con los
registros de otras entidades que también tengan las
conexiones habilitadas.

Comentarios Permite a los clientes escribir comentarios sobre cualquier


registro de entidad, o calificar registros de entidad con un
rango de puntuación definido. Más información: Habilitar
comentarios/clasificaciones en una entidad

Notas Permite anexar notas a los registros de esta entidad. Las


notas incluyen la capacidad de agregar datos adjuntos.

Colas Permite usar la entidad con colas. Las colas mejoran el


proceso de redirigir y compartir trabajo haciendo que los
registros de esta entidad estén disponibles en una
ubicación central a la que todos los usuarios pueden
acceder.

Envío de correo electrónico Permite enviar mensajes de correo electrónico utilizando


una dirección de correo electrónico almacenada en uno
de los campos de esta entidad. Si para esta entidad no
existe ya un campo Línea de texto única con el formato
establecido en correo electrónico, se creará uno nuevo
al habilitar el envío de correo electrónico.

Cambiar cualquiera de las propiedades siguientes:

OPCIÓN DESCRIPCIÓN

Equipos de acceso Cree plantillas de equipo para esta entidad.


OPCIÓN DESCRIPCIÓN

Permitir creación rápida Una vez creado y publicado un Formulario de creación


rápida para esta entidad, los usuarios tendrán la opción
de crear un nuevo registro con el botón Crear del panel
de navegación. Más información: Crear y diseñar
formularios

Cuando esta opción está habilitada para una entidad de


actividad personalizada, dicha actividad personalizada
será visible en el grupo de entidades de actividad cuando
los usuarios usen el botón Crear en el panel de
navegación. Sin embargo, debido a que las actividades no
admiten formularios de creación rápida, se utilizará el
formulario principal cuando se haga clic en el icono de
entidad personalizada.

Áreas que muestran esta entidad En la aplicación web, seleccione una de las áreas
disponibles del mapa del sitio para mostrar esta entidad.
Esto no se aplica a las aplicaciones basadas en modelos.

Auditoría Cuando se habilita la auditoría para la organización,


permite capturar los cambios en los registros de entidad
a lo largo del tiempo. Al habilitar la auditoría para una
entidad, también se habilita la auditoría en todos sus
campos. Puede seleccionar (o anular la selección de) los
campos en los que desee habilitar la auditoría.

Seguimiento de cambios Habilita la sincronización de datos de alto rendimiento


mediante la detección de los datos que han cambiado
desde que se extrajeron inicialmente o desde que se
sincronizaron por última vez.

Color Establezca color que se usará para la entidad en


aplicaciones basadas en modelos.

Administración de documentos Después de realizar otras tareas para habilitar la


administración de documentos para la organización,
habilitar esta característica permite que esta entidad
participe en la integración con SharePoint.

Detección de duplicados Si la detección de duplicados está habilitada para la


organización, habilitar esta opción le permite crear reglas
de detección de duplicados para esta entidad.

Habilitar para móvil Hace que esta entidad esté disponible para las
aplicaciones de Dynamics 365 for phones y tablets.
También tiene la opción de convertir esta entidad en
Solo lectura en móvil.

Si los formularios de una entidad requieren una extensión


que no es compatible con las aplicaciones Dynamics 365
for phones y tablets, use esta configuración para
asegurarse de que los usuarios de aplicaciones móviles
no puedan editar los datos de estas entidades.

Habilitar para Phone Express Hace que esta entidad esté disponible para la aplicación
Dynamics 365 for phones.
OPCIÓN DESCRIPCIÓN

Combinar correspondencia Los usuarios pueden usar esta entidad con la


combinación de correspondencia.

Funcionalidad sin conexión para Dynamics 365 for Especifica si los datos de esta entidad estarán disponibles
Outlook mientras la aplicación Dynamics 365 for Outlook no esté
conectada a la red.

Panel de lectura en Dynamics 365 for Outlook Especifica si la entidad estará visible en el panel de lectura
de la aplicación Dynamics 365 for Outlook.

Usar la Ayuda personalizada Si se habilita esta opción, establece una dirección URL de
Ayuda para controlar qué página verán los usuarios
cuando hagan clic en el botón Ayuda de la aplicación. Use
esta opción para dar instrucciones específicas para los
procesos de su empresa para la entidad.

Vea también
Crear y editar entidades con el explorador de soluciones
Tutorial: Crear una entidad personalizada que tenga componentes en PowerApps
Editar una entidad
Documentación para desarrolladores: crear una entidad personalizada
Editar una entidad
25/11/2019 • 13 minutes to read • Edit Online

Puede modificar cualquier entidad personalizada que cree. Las entidades estándar o las entidades personalizadas
administradas pueden tener limitaciones sobre los cambios que puede realizar.

NOTE
Las entidadesestándar son entidades comunes que se incluyen con el entorno y que no son entidades del Sistema o
Personalizadas. Las entidades personalizadas administradas son entidades que se han agregado al sistema importando
una solución administrada. El grado con que puede modificar estas entidades depende de las propiedades administradas
establecidas para cada entidad. Las propiedades que no puede modificar estarán deshabilitadas.

Hay dos formas de editar una entidad mediante un diseñador:

DISEÑADOR DESCRIPCIÓN

Portal PowerApps Proporciona una experiencia fácil y ágil, pero algunos valores
especiales no están disponibles.

Explorador de soluciones No es tan fácil, pero proporciona más flexibilidad para


requisitos menos comunes.

En el portal de PowerApps y en el explorador de soluciones puede realizar lo siguiente:


Editar campos de la entidad. Más información: Crear y editar campos para Common Data Service
Editar relaciones entre entidades. Más información: Crear y editar relaciones entre entidades
Claves. Definir claves alternativas para hacer referencia a registros
También puede realizar cambios en los registros que admiten la entidad:
Reglas de negocio. Más información: Crear reglas de negocio y recomendaciones para aplicar lógica en
un formulario
Vistas. Más información: Crear o editar una vista
Formularios. Más información: Crear y diseñar formularios
Paneles. Más información: Crear o editar paneles
Gráficos. Creación o edición de un gráfico del sistema

Editar usando el diseñador del portal de PowerApps


En el diseñador del portal de PowerApps solo hay tres propiedades de la entidad que se pueden editar:
Nombre para mostrar
Nombre para mostrar plural
Descripción
En el diseñador, seleccione la entidad que desea editar y haga clic en ella para abrir el diseñador de entidades. Para
modificar las propiedades de la entidad, haga clic en el comando Configuración para ver el formulario Editar
entidad como se muestra a continuación:

NOTE
El nombre de muchas entidades estándar también se puede usar en otro texto de la aplicación. Para buscar y cambiar el
texto donde se ha usado este nombre, consulte Editar mensajes de entidades estándar

Para cualquier otro cambio en las opciones de entidades, debe editar la entidad usando el explorador de
soluciones.

Editar usando el explorador de soluciones


Al editar una entidad usando el explorador de soluciones, necesita buscar la solución no administrada a la que
desea agregarla.
Ir a una solución no administrada
1. En el portal de PowerApps, seleccione Soluciones y, a continuación, en la barra de herramientas,
seleccione Cambiar a clásico.
2. En la lista Todas las soluciones seleccione la solución no administrada que desee.

Cambiar el nombre de una entidad


Use las propiedades Nombre para mostrar y Nombre en plural para cambiar el nombre de la entidad de la
aplicación.

NOTE
El nombre de muchas entidades estándar también se puede usar en otro texto de la aplicación. Para buscar y cambiar el
texto donde se ha usado este nombre, consulte Editar mensajes de entidades estándar

Cambiar los iconos usados para entidades personalizadas


De forma predeterminada, todas las entidades personalizadas en la aplicación web tienen los mismos iconos.
Puede crear recursos web de imagen para los iconos que desea para las entidades personalizadas. Más
información: Cambiar iconos para entidades personalizadas.
Opciones de la entidad que solo pueden estar habilitadas
La siguiente tabla enumera las opciones que puede habilitar para una entidad, pero después de habilitar estos
elementos, estos no se pueden deshabilitar:

OPCIÓN DESCRIPCIÓN

Actividades Permite asociar actividades a registros de esta entidad.

Flujos de proceso de negocio Permite crear flujos de proceso de negocio para esta entidad.
Más información Crear un flujo de proceso de negocio para
estandarizar los procesos

Conexiones Use la característica de conexiones para mostrar cómo los


registros de esta entidad tienen conexiones con los registros
de otras entidades que también tengan las conexiones
habilitadas.

Comentarios Permite a los clientes escribir comentarios sobre cualquier


registro de entidad, o calificar registros de entidad con un
rango de puntuación definido. Más información: Habilitar
comentarios/clasificaciones en una entidad

Notas Permite anexar notas a los registros de esta entidad. Las


notas incluyen la capacidad de agregar datos adjuntos.

Colas Permite usar la entidad con colas. Las colas mejoran el


proceso de redirigir y compartir trabajo haciendo que los
registros de esta entidad estén disponibles en una ubicación
central a la que todos los usuarios pueden acceder.

Envío de correo electrónico Permite enviar mensajes de correo electrónico utilizando una
dirección de correo electrónico almacenada en uno de los
campos de esta entidad. Si para esta entidad no existe ya un
campo Línea de texto única con el formato establecido en
correo electrónico, se creará uno nuevo al habilitar el envío
de correo electrónico.

Habilitar o deshabilitar las opciones de la entidad


La siguiente tabla enumera las opciones de la entidad que puede habilitar o deshabilitar en cualquier momento.

OPCIÓN DESCRIPCIÓN

Equipos de acceso Permite crear plantillas de equipo para esta entidad.


OPCIÓN DESCRIPCIÓN

Permitir creación rápida Una vez creado y publicado un Formulario de creación


rápida para esta entidad, los usuarios tendrán la opción de
crear un nuevo registro con el botón Crear del panel de
navegación. Más información: Crear y diseñar formularios

Cuando esta opción está habilitada para una entidad de


actividad personalizada, dicha actividad personalizada será
visible en el grupo de entidades de actividad cuando los
usuarios usen el botón Crear en el panel de navegación. Sin
embargo, debido a que las actividades no admiten formularios
de creación rápida, se utilizará el formulario principal cuando
se haga clic en el icono de entidad personalizada.

Áreas que muestran esta entidad En la aplicación web, seleccione una de las áreas disponibles
del mapa del sitio para mostrar esta entidad. Esto no se aplica
a las aplicaciones basadas en modelos.

Auditoría Cuando se habilita la auditoría para la organización, permite


capturar los cambios en los registros de entidad a lo largo del
tiempo. Al habilitar la auditoría para una entidad, también se
habilita la auditoría en todos sus campos. Puede seleccionar (o
anular la selección de) los campos en los que desee habilitar la
auditoría.

Seguimiento de cambios Habilita la sincronización de datos de alto rendimiento


mediante la detección de los datos que han cambiado desde
que se extrajeron inicialmente o desde que se sincronizaron
por última vez.

Color Establezca el color que se usará para la entidad en


aplicaciones basadas en modelos.

Descripción Proporcione una descripción significativa del objetivo de la


entidad.

Administración de documentos Después de realizar otras tareas para habilitar la


administración de documentos para la organización, si habilita
esta característica permite que esta entidad participe en la
integración con SharePoint.

Detección de duplicados Si la detección de duplicados está habilitada para la


organización, habilitar esta opción le permite crear reglas de
detección de duplicados para esta entidad.

Habilitar para móvil Hace que esta entidad esté disponible para las aplicaciones de
Dynamics 365 for phones y tablets. También tiene la opción
de convertir esta entidad en Solo lectura en móvil.

Si los formularios de una entidad requieren una extensión que


no es compatible con las aplicaciones Dynamics 365 for
phones y tablets, use esta configuración para asegurarse de
que los usuarios de aplicaciones móviles no puedan editar los
datos de estas entidades.

Habilitar para Phone Express Hace que esta entidad esté disponible para la aplicación
Dynamics 365 for phones.
OPCIÓN DESCRIPCIÓN

Combinar correspondencia Los usuarios pueden usar esta entidad con la combinación de
correspondencia.

Capacidad de trabajar sin conexión de Dynamics 365 for Especifica si los datos de esta entidad estarán disponibles
Outlook mientras la aplicación Dynamics 365 for Outlook no esté
conectada a la red.

Imagen principal Las entidades del sistema que admiten imágenes ya tendrán
un campo Imagen. Puede elegir mostrar los datos en este
campo como la imagen del registro estableciendo el campo en
Ninguna o en Imagen predeterminada.

Para las entidades personalizadas primero debe crear un


campo de imagen. Cada entidad solo puede tener un campo
de imagen. Después de crear uno, puede cambiar este valor
para establecer la imagen principal. Más información: Campos
de imagen.

Panel de lectura en Dynamics 365 for Outlook Especifica si la entidad estará visible en el panel de lectura de
la aplicación Dynamics 365 for Outlook.

Usar la Ayuda personalizada Si se habilita esta opción, establece una dirección URL de
Ayuda para controlar qué página verán los usuarios cuando
hagan clic en el botón Ayuda de la aplicación. Use esta opción
para dar instrucciones específicas para los procesos de la
empresa para la entidad.

Vea también
Crear una entidad
Crear y editar entidades con el explorador de soluciones
Crear y editar entidades virtuales que contienen
datos desde un origen de datos externo
25/11/2019 • 15 minutes to read • Edit Online

Una entidad virtual es una entidad personalizada de Common Data Service que tiene campos que contienen datos
de un origen de datos externo. Las entidades virtuales aparecen en la aplicación para los usuarios como registros
de entidad normales, pero contienen datos procedentes de una base de datos externa, como una base datos SQL
de Azure. Los registros basados en las entidades virtuales están disponibles en todos los clientes, incluidos los
clientes personalizados desarrollados con los servicios web de Common Data Service.
En el pasado, para integrar los orígenes de datos dispares habría que crear un conector para mover datos o para
desarrollar un complemento personalizado, en el lado del cliente o del servidor. Sin embargo, con las entidades
virtuales, puede conectarse directamente con un origen de datos externo en el tiempo de ejecución de forma que
los datos específicos del origen de datos externo estén disponibles en un entorno, sin necesidad de replicación de
datos.
Las entidades virtuales están formadas por tres componentes principales: un proveedor de datos, un registro de
origen de datos y una entidad virtual. El proveedor de datos está formado por complementos y una entidad de
origen de datos. El origen de datos es un registro de entidad en Common Data Service, que incluye los metadatos
que representan el esquema de los parámetros de conexión. Cada entidad virtual hace referencia a un origen de
datos en la definición de la entidad.
Common Data Service incluye un proveedor de datos de OData que se puede usar para conectarse con un
servicio web de OData v4 que tenga acceso a los datos externos.
Como alternativa, los programadores pueden crear sus propios proveedores de datos. Los proveedores de datos
están instalados en un entorno como solución. Más información: Documentación para desarrolladores:
Introducción a las entidades virtuales
Ventajas de la entidad virtual
Los desarrolladores pueden implementar complementos para leer los datos externos con los servicios web de
Common Data Service y la herramienta de registro de complementos.
Los personalizadores del sistema usan el explorador de soluciones de PowerApps para configurar el registro
del origen de datos y crear las entidades virtuales que se usan para tener acceso a datos externos sin necesidad
de escribir código.
Los usuarios finales trabajan con los registros creados por la entidad virtual para ver los datos en campos,
cuadrículas, resultados de la búsqueda e informes y paneles basados en Fetch XML.

Agregar un origen de datos para usarlo con las entidades virtuales


Los desarrolladores pueden crear un complemento personalizado a fin de usarlo como proveedor de datos para
una entidad virtual. Como alternativa, puede usar el proveedor de datos OData v4 que se proporciona. Más
información: Configuración, requisitos y prácticas recomendadas del proveedor de datos de OData v4
1. Acceda a Configuración > Administración > Orígenes de datos de entidad virtual.
2. En la barra de herramientas de acciones, seleccione Nuevo.
3. En el cuadro de diálogo Seleccionar proveedor de datos, seleccione uno de los siguientes orígenes de
datos y, a continuación, seleccione Aceptar.

PROVEEDOR DE DATOS DESCRIPCIÓN

Proveedor de datos personalizado Si ha importado un complemento del proveedor de datos,


el proveedor de datos aparecerá aquí. Más información:
Documentación para desarrolladores: Introducción a las
entidades virtuales
PROVEEDOR DE DATOS DESCRIPCIÓN

Proveedor de datos OData v4 Common Data Service incluye un proveedor de datos


OData que puede usarse con los servicios web de OData
v4. Más información: Configuración, requisitos y prácticas
recomendadas del proveedor de datos de OData v4

Agregar un campo protegido a un origen de datos


Puede crear los campos de un origen de datos igual que con cualquier otra entidad. Para los datos cifrados o
confidenciales, habilite el atributo Secreto del origen de datos en el campo personalizado del origen de datos. Por
ejemplo, para proteger un campo de que contiene una cadena de conexión de base de datos.

NOTE
El atributo Secreto del origen de datos solo está disponible con campos agregados a un formulario del origen de datos.

Crear entidad virtual


Puede crear una entidad virtual al igual que cualquier otra entidad en Common Data Service con la incorporación
de algunos atributos adicionales descritos aquí. Las entidades virtuales deben crearse usando el explorador de
soluciones.

NOTE
Aunque puede crear una entidad virtual seleccionando Ninguno como origen de datos, para adquirir datos una entidad
virtual requiere un origen de datos. Más información Agregar un origen de datos para usarlo con las entidades virtuales

Abra el explorador de soluciones


La parte del nombre de cualquier entidad virtual que cree es el prefijo de personalización. Esto se establece en
función del editor de soluciones para la solución en la que trabaja. Si le interesa el prefijo de personalización,
asegúrese de que está trabajando en una solución no administrada donde el prefijo de personalización es el que
desea para esta entidad virtual. Más información: Cambiar el prefijo del editor de soluciones
Ir a una solución no administrada
1. En el portal de PowerApps, seleccione Soluciones y, a continuación, en la barra de herramientas,
seleccione Cambiar a clásico.
2. En la lista Todas las soluciones seleccione la solución no administrada que desee.
Crear entidad virtual
1. En el explorador de soluciones, cree una nueva entidad. Para ello, seleccione Entidades en el panel de
navegación izquierdo y, luego, seleccione Nuevo.
2. En la pestaña General de Definición de entidad, seleccione Entidad virtual y, a continuación, en la lista
desplegable Origen de datos, seleccione el origen de datos que desee.

3. En la definición de entidad, rellene los siguientes campos obligatorios.

CAMPO DESCRIPCIÓN

Nombre externo Especifique el nombre de la tabla del origen de datos


externos al que se asigna esta entidad.

Nombre de colección externa Especifique el nombre plural de la tabla del origen de


datos externos al que se asigna esta entidad.

Aquí mostramos un ejemplo de una entidad virtual denominada Movie que usa un proveedor de datos de
Azure Cosmos DB para tener acceso a los archivos de documento.
IMPORTANT
Varias opciones, como equipos de acceso, colas y creación rápida, no están disponibles con las entidades virtuales.
Más información Consideraciones al usar las entidades virtuales

Rellene las propiedades necesarias y opcionales adicionales, como los nombres en plural y los nombres
para mostrar, según sea necesario. Para obtener más información acerca estas propiedades, consulte Crear
y editar entidades.
4. Crear y agregar uno o varios campos para la entidad virtual. Además de las propiedades de campo
estándar necesarias para crear un campo personalizado, estas propiedades opcionales están disponibles
para cada campo personalizado que se cree para una entidad virtual.

CAMPO DESCRIPCIÓN

Nombre externo Normalmente, este es el nombre único para identificar los


datos que se deben mostrar en el campo.

Nombre de tipo externo Si el tipo de campo que crea es OptionSet: esta propiedad
establece una relación con el nombre externo del conjunto
de valores en el servicio externo para el conjunto de
opciones. Normalmente, puede tratarse de una
enumeración o del nombre de una clase de valor de
cadena. El Nombre de tipo externo se puede usar cuando
se requiere un nombre completo. Por ejemplo, como en el
caso de Nombre de tipo con OData, donde los
parámetros de una consulta requieren el nombre
completo, como [Nombre de tipo].[Valor].

Valor externo Si el tipo de campo que crea es OptionSet: esta propiedad


establece una relación con el valor correspondiente en el
origen de datos externo para el elemento del conjunto de
opciones. Este valor especificado se usa para determinar
qué elemento del conjunto de opciones se mostrará en la
aplicación.

Rellene las propiedades adicionales según sea necesario. Para obtener más información acerca estas
propiedades, consulte Crear y editar campos.
5. Seleccione Guardar y cerrar en la página de propiedades Campo.
6. En la barra de herramientas del explorador de soluciones, seleccione Guardar.
7. En la barra de herramientas del explorador de soluciones, seleccione Publicar.
8. Cierre el explorador de soluciones.

Consideraciones al usar las entidades virtuales


Las entidades virtuales presentan estas restricciones.
Todas las entidades virtuales son de solo lectura.
Las entidades existentes no pueden convertirse en entidades virtuales.
De forma predeterminada, las entidades virtuales contienen solo un campo de nombre e Id. No se admite
ningún otro campo del sistema administrado, como estado o fecha de creación o modificación.
Las entidades virtuales no admiten campos personalizados con los tipos de datos de moneda, imagen o cliente.
Las entidades virtuales no admiten funciones de auditoría.
Los campos de la entidad virtual no se pueden usar en paquetes acumulativos ni campos calculados.
Una entidad virtual no puede ser un tipo de actividad de entidad.
Muchas características que afectan a filas de la tabla de la entidad no se pueden habilitar con entidades
virtuales. Los ejemplos incluyen colas, administración del conocimiento, SLA, detección de duplicados,
seguimiento de los cambios, capacidad de Mobile offline, seguridad de campo, Búsqueda por relevancia,
portales para soluciones de portal web de Dynamics 365 y relaciones N:N entre entidades virtuales.
Las entidades virtuales son propiedad de la organización y no admiten los conceptos de seguridad de nivel de
fila de Common Data Service. Se recomienda implementar su propio modelo de seguridad para el origen de
datos externo.
Se recomienda centrarse en un único origen de datos al usar las entidades virtuales en las búsquedas
avanzadas. Por ejemplo, no se admite crear una búsqueda avanzada que, en última instancia, cree una
combinación entre los datos nativos de Common Data Service y los datos externos de la entidad virtual.
Las propiedades de metadatos de campos que se validan en la actualización no se aplican a las entidades
virtuales. Por ejemplo, un campo Número entero en un campo de la entidad virtual puede establecerse para
tener un valor mínimo de cero. Sin embargo, ya que el valor se proporcionará de un origen de datos externos,
una consulta devolverá valores menores que cero cuando se recuperen de una entidad virtual. La propiedad de
valor mínimo no se implica en la consulta. Aún debería filtrar los valores para que sean mayores que 0 si es lo
se desea.
Las entidades virtuales no admiten el seguimiento de los cambios y no se pueden sincronizar usando una
característica de Common Data Service, como el Servicio de exportación de datos.
Vea también
Requisitos y prácticas recomendadas del proveedor de datos OData v4
Crear y editar entidades
Crear y editar campos
Configuración, requisitos y prácticas recomendadas
del proveedor de datos de OData v4
25/11/2019 • 7 minutes to read • Edit Online

En este tema se describe cómo configurar el proveedor de datos de OData v4 así como los requisitos y las
prácticas recomendadas para usar el proveedor de datos de OData v4 para establecer la conexión con un servicio
web de OData v4.

Prácticas recomendadas del proveedor de datos de OData v4


Common Data Service requiere que todas las entidades tengan un atributo de id. este identificador es único y
el valor debe ser un GUID. Solo puede asignar los campos de id. a campos externos con el tipo de datos
Edm.Guid . No puede asignar un tipo de datos Edm.Int32 a un campo de tipo de datos de identificador único en
Common Data Service.
Las entidades de OData que tengan propiedades con valores nulos se deben configurar para que coincidan
con el campo asignado en la entidad virtual. Por ejemplo, una propiedad de la entidad de OData con un valor
nulo =False debe tener el campo asignado en el conjunto de atributos de Requisito de campo de Common
Data Service como Requerido por la empresa.
Para recuperar consultas múltiples como aquellas resultantes de cargar datos en una cuadrícula, debe
controlar el tamaño del conjunto de datos devuelto desde el origen de datos externo; para ello, use los
parámetros para seleccionar y filtrar la consulta.
Si no está habilitado, los administradores del sistema deben habilitar la opción de seguimiento de
complementos. Una habilitada, todos los errores del extremo de OData se capturan en el registro de
seguimiento de complementos. Más información: Guía del administrador: Cuadro de diálogo Configuración
del sistema - Pestaña Personalización

Asignaciones de tipos de datos


En la siguiente tabla se enumeran las asignaciones de tipo de datos de OData Entity Data Model (EDM ) con los
tipos de datos Common Data Service.

TIPOS DE DATOS DE ODATA TIPOS DE DATOS DE COMMON DATA SERVICE

Edm.Boolean Dos opciones

Edm.DateTime Fecha y hora

Edm.DateTimeOffset Fecha y hora

Edm.Decimal Número decimal o divisa

Edm.Double Número de punto flotante

Edm.Guid Identificador único

Edm.Int32 Número entero


TIPOS DE DATOS DE ODATA TIPOS DE DATOS DE COMMON DATA SERVICE

Edm.Int64 Número entero

Edm.String Línea de texto individual o varias líneas de texto

Tipos de datos de OData EDM que no se admiten para asignarlos con entidades virtuales
Edm.Binary
Edm.Time
Edm.Float
Edm.Single
Edm.Int16
Edm.Byte
Edm.SByte

Agregar un origen de datos con el proveedor de datos de OData v4


Este procedimiento muestra cómo usar el proveedor de datos de OData integrado como origen de datos de
entidad virtual.
1. Acceda a Configuración > Administración > Orígenes de datos de entidad virtual.
2. En la barra de herramientas Acciones, haga clic en Nuevo.
3. En el cuadro de diálogo Seleccionar proveedor de datos, seleccione uno de los siguientes orígenes de
datos y, a continuación, haga clic en Aceptar.
Proveedor de datos OData v4. Common Data Service incluye un proveedor de datos de Odata v4
que se puede usar para conectarse a los orígenes de datos que admiten el estándar abierto de OData
v4.
Personalice el proveedor de datos. Si ha importado un complemento del proveedor de datos, el
proveedor de datos aparecerá aquí. Más información: Documentación para desarrolladores:
Introducción a las entidades virtuales
4. En la página de propiedades Nuevo origen de datos, rellene los siguientes campos y, a continuación,
guarde el registro.
Nombre. Escriba un nombre para describir el origen de datos.
Uri. Si usa el proveedor de datos de OData, especifique el URI del servicio web de OData. Por ejemplo,
si está usando el proveedor de OData para conectarse a un servicio web hospedado en Azure, el URI
puede parecerse a https://contosodataservice.azurewebsites.net/odata/ .
Tiempo de espera en segundos. Escriba la cantidad de segundos que se debe esperar a una
respuesta del servicio web antes de agotar el tiempo de espera de una solicitud de datos. Por ejemplo,
escriba 30 para esperar un máximo de treinta segundos antes de que se agote el tiempo de espera.
Modo de paginación. Seleccione si usará la paginación del lado del cliente o del servidor para
controlar cómo se paginan los resultados de la consulta. El valor predeterminado es la paginación del
lado del cliente. Con la paginación del lado de servidor, el servidor controla la manera de paginar los
resultados mediante el parámetro $skiptoken, que se agrega a la cadena de consulta. Más información:
Opción para omitir la consulta del sistema de token ($skiptoken)
Devolver recuento alineado Devuelve el número total de registros en el conjunto de
resultados. Esta configuración se usa para habilitar la funcionalidad de la siguiente página
cuando se devuelven los datos a una cuadrícula. Use un valor "false" si el extremo de OData no
admite el parámetro de OData $inlinecount. El valor predeterminado es false.
Parámetros de solicitud. Como alternativa, puede agregar parámetros de cadena de consulta o de
encabezado personalizado que se usan para conectar con el servicio web de OData, como parámetros
de autenticación para el servicio externo. Haga clic en Cadena de consulta para alternar entre el
parámetro de cadena de consulta y el encabezado y el valor. Se pueden agregar hasta 10 cadenas de
consulta o encabezado.

Vea también
Crear y editar entidades virtuales que contienen datos desde un origen de datos externo
Blog de TechNet: interacción con datos de sistemas externos mediante nuevas entidades virtuales
Definir las claves alternativas con el portal de
PowerApps
25/11/2019 • 2 minutes to read • Edit Online

El portal de PowerApps proporciona una forma fácil de ver y crear claves alternativas de entidad con Common
Data Service.
El portal permite configurar las opciones más comunes, pero algunas opciones solo se pueden configurar usando
el explorador de soluciones.
Más información:
Definir claves alternativas para hacer referencia a registros
Definir las claves alternativas con el explorador de soluciones

Ver claves alternativas


1. En el portal de PowerApps, seleccione el modo de diseño Controlado por modelos o Lienzo.
2. Seleccione Datos > Entidades y seleccione la entidad que desea ver.
3. Seleccione Claves para ver una lista de las claves alternativas que están definidas.

Crear una clave alternativa


1. Mientras visualiza claves alternativas, seleccione Agregar clave.
2. Use el panel para establecer un Nombre para mostrar y seleccione los campos que se usarán para crear la
clave alternativa.
El campo Nombre se rellenará automáticamente según el nombre para mostrar.
3. Seleccione Hecho para cerrar el panel.
4. Haga clic en Guardar entidad para crear la clave alternativa.

NOTE
La clave alternativa no estará disponible inmediatamente. Se inicia un trabajo del sistema cuando guarda la entidad para
crear índices de la base de datos para admitir la clave alternativa.

Eliminar una clave alternativa


Mientras visualiza claves alternativas, seleccione la clave que desea eliminar y elija Eliminar clave en la barra de
comandos.
Vea también
Definir claves alternativas para hacer referencia a registros
Definir claves alternativas usando el explorador de soluciones
Documentación para desarrolladores: Definir claves alternativas para una entidad
Definir las claves alternativas con el explorador de
soluciones
25/11/2019 • 3 minutes to read • Edit Online

El explorador de soluciones proporciona una forma de ver y crear claves alternativas para Common Data Service.
El portal de PowerApps permite configurar las opciones más comunes, pero algunas opciones solo se pueden
configurar usando el explorador de soluciones.
Más información:
Definir claves alternativas para hacer referencia a registros
Definir las claves alternativas con el portal PowerApps

Abra el explorador de soluciones


La parte del nombre de cualquier clave alternativa que cree es el prefijo de personalización. Esto se establece en
función del editor de soluciones para la solución en la que trabaja. Si le interesa el prefijo de personalización,
asegúrese de que está trabajando en una solución no administrada donde el prefijo de personalización es el que
desea para esta entidad. Más información: Cambiar el prefijo del editor de soluciones
Ir a una solución no administrada
1. En el portal de PowerApps, seleccione Soluciones y, a continuación, en la barra de herramientas,
seleccione Cambiar a clásico.
2. En la lista Todas las soluciones seleccione la solución no administrada que desee.

Ver claves alternativas


1. Con el explorador de soluciones abierto, en Componentes expanda Entidades y seleccione la entidad
donde desea ver claves alternativas.
2. Expanda la entidad y seleccione Claves.
Crear una clave alternativa
1. Mientras visualiza claves alternativas, seleccione Nuevo.
2. En el formulario, escriba el Nombre para mostrar. El campo Nombre se rellenará automáticamente según el
Nombre para mostrar.
3. De la lista Atributos disponibles, seleccione cada atributo y después Agregar > para mover el atributo a la
lista Atributos seleccionados.

4. Seleccione Aceptar para cerrar el formulario.


(Opcional) Ver el seguimiento del trabajo del sistema de creación de índices
1. Mientras visualiza claves alternativas después de haber creado una nueva clave alternativa, verá una fila
para la clave que ha creado.
2. En la columna Trabajo del sistema encontrará un vínculo al trabajo del sistema que supervisa la creación
de los índices para admitir la clave alternativa.
Este trabajo del sistema tendrá un nombre que sigue este patrón: Create index for {0} for entity {1}
donde 0 es el Nombre para mostrar de la clave alternativa y 1 es el nombre de la entidad.
El vínculo al trabajo del sistema no se mostrará una vez que el trabajo del sistema haya finalizado
correctamente. Más información: Supervisar y administrar trabajos del sistema

Eliminar una clave alternativa


Mientras visualiza claves alternativas, seleccione .
Vea también
Definir claves alternativas para hacer referencia a registros
Definir las claves alternativas con el portal PowerApps
Documentación para desarrolladores: Definir claves alternativas para una entidad
Crear y editar entidades con el portal de PowerApps
25/11/2019 • 6 minutes to read • Edit Online

El portal de PowerApps proporciona una forma fácil de crear y de editar entidades para Common Data Service.
El portal permite configurar las opciones más comunes, pero algunas opciones solo se pueden configurar usando
el explorador de soluciones. Más información:
Crear y editar entidades en Common Data Service
Crear y editar entidades con el explorador de soluciones

Ver entidades
1. En el portal de PowerApps, seleccione el modo de diseño Controlado por modelos o Lienzo.
2. Seleccione Datos > Entidades

Puede filtrar las entidades que ve mediante las vistas siguientes en una lista:
VISTA DESCRIPCIÓN

Todo Muestra todas las entidades

Personalizada Muestra solo entidades personalizadas

Predeterminado Muestra únicamente las entidades estándar

También puede seleccionar Grupo para agrupar entidades por las Etiquetas aplicadas a ellas.

Crear una entidad


Mientras ve entidades, en la barra de menú seleccione Nueva entidad. Se abrirá el panel Nueva entidad.

Escriba datos para los campos siguientes:

CAMPO DESCRIPCIÓN

Nombre Este es el nombre singular de la entidad que aparecerá en la


aplicación. Se puede cambiar posteriormente.

Nombre plural para mostrar Este es el nombre plural de la entidad que aparecerá en la
aplicación. Se puede cambiar posteriormente.

Nombre Este campo se rellena previamente según el Nombre para


mostrar que escriba. Incluye el prefijo de personalización para
el editor de soluciones de Common Data Service. No se puede
cambiar esto una vez guardada la entidad.

Descripción Proporcione una descripción significativa del objetivo de la


entidad.

Seleccione Siguiente para continuar, se cerrará el panel Nueva entidad y se mostrará la lista de campos.
El campo Nombre principales el único campo visible en este momento. Seleccione el campo Nombre
principal para editarlo si desea cambiar el Nombre para mostrar o el Nombre del campo. Los valores
predeterminados se muestran debajo:

Seleccione Guardar entidad para crear la entidad o siga editando la entidad.

Editar una entidad


Mientras ve entidades, seleccione la entidad que desea editar.
Seleccione Configuración en el menú si desea editar el Nombre para mostrar, Nombre plural para mostrar o
Descripción de la entidad.

Para otros elementos elija de las pestañas.


Campos
Vea Crear y editar campos
Relaciones
Vea Crear y editar relaciones entre entidades
Reglas de negocio
Vea Crear reglas de negocio y recomendaciones para aplicar lógica en un formulario
Vistas
Vea Creación o edición de vistas
Formularios
Vea Creación y diseño de formularios
Paneles
Vea Crear o editar paneles
Gráficos
Vea Crear un gráfico del sistema
Claves
Vea Definir claves alternativas para hacer referencia a registros
Datos
Vea los datos en la entidad. Use el menú Seleccionar vista para elegir entre las vistas disponibles para la entidad
o para mostrar todos los campos.
Use los comandos Página siguiente y Página anterior en la parte inferior del formulario para ver más datos.

Eliminación de una entidad


Como usuario con el rol de seguridad de administrador del sistema, puede eliminar entidades personalizadas que
no sean parte de una solución administrada.

IMPORTANT
Cuando se elimina una entidad personalizada, las tablas de base de datos que almacenan los datos de la entidad se eliminan
y se pierden todos los datos que contienen. Los registros asociados con una relación jerárquica con la entidad personalizada
también se eliminan. Para obtener más información sobre las relaciones jerárquicas, consulte Creación y edición de
relaciones entre entidades.

NOTE
La única forma de recuperar datos de una entidad que se haya eliminado es restaurar la base de datos desde un punto
anterior a la eliminación de la entidad. Más información: Copia de seguridad y restauración de instancias

Mientras ve entidades, seleccione la entidad y seleccione Eliminar entidad en el menú o en el menú contextual.
Si la entidad tiene las dependencias que impiden que sea eliminado verá un mensaje de error. Para identificar y
quitar cualquier dependencia, deberá usar el explorador de soluciones. Más información Identificar dependencias
de la entidad
Vea también
Crear y editar entidades en Common Data Service
Crear y editar entidades con el explorador de soluciones
Crear y editar entidades con el explorador de
soluciones
25/11/2019 • 19 minutes to read • Edit Online

Puede crear fá cilmente una entidad mediante el portal de PowerApps para la mayoría de las situaciones
comunes, pero no todas las capacidades se implementan ahí. Cuando necesite cumplir los requisitos descritos en
Creación y edición de entidades en Common Data Service, puede cumplirlas creando o editar entidades
mediante el Explorador de soluciones.

Abra el explorador de soluciones


La parte del nombre de cualquier entidad que cree es el prefijo de personalización. Esto se establece en función
del editor de soluciones para la solución en la que trabaja. Si le interesa el prefijo de personalización, asegúrese
de que está trabajando en una solución no administrada donde el prefijo de personalización es el que desea para
esta entidad. Más información: Cambiar el prefijo del editor de soluciones
Ir a una solución no administrada
1. En el portal de PowerApps, seleccione Soluciones y, a continuación, en la barra de herramientas,
seleccione Cambiar a clásico.
2. En la lista Todas las soluciones seleccione la solución no administrada que desee.

Ver entidades
En el nodo Componentes del explorador de soluciones, seleccione el nodo Entidades.

Creación de entidades
Mientras ve entidades, seleccione Nuevo para abrir el nuevo formulario de entidad.
El nuevo formulario de entidad tiene dos pestañas. La pestaña General es para opciones de la entidad. La
pestaña Campo principal es para opciones sobre el campo especial de una sola línea de texto que cada entidad
tiene y que define el texto que se muestra cuando hay un vínculo para abrir la entidad en un campo de búsqueda.
Para obtener información acerca de cada sección, vea lo siguiente:
Configurar el campo principal
Configurar campos obligatorios

NOTE
También puede convertir la entidad en una actividad personalizada. Esta opción cambia algunos de los valores de opción
predeterminados. Más información: Crear una entidad de actividad personalizada

Después de establecer las opciones necesarias para la entidad, haga clic en para crear la entidad personalizada.
Configurar el campo principal
En la pestaña Campo principal normalmente puede aceptar los valores predeterminados para el campo
principal, pero tiene las siguientes opciones:

CAMPO DESCRIPCIÓN

Nombre para mostrar Especifique la etiqueta localizable que mostrará para este
campo en formularios y listas. El valor predeterminado es
Nombre.

Nombre Establezca el nombre usado en el sistema para este campo. El


valor predeterminado es <customization prefix>_name
CAMPO DESCRIPCIÓN

Longitud máxima Introduzca la longitud máxima para los valores de campo. El


valor predeterminado es 100.

NOTE
Estas opciones no se aplican si la entidad es una entidad de actividad. Más información: Crear una entidad de actividad
personalizada

Configurar campos obligatorios


En la pestaña General, algunas de las opciones son necesarias para poder guardar la entidad.

CAMPO DESCRIPCIÓN

Nombre para mostrar Este es el nombre singular de la entidad que aparecerá en la


aplicación.
Se puede cambiar posteriormente.

Nombre plural Este es el nombre plural de la entidad que aparecerá en la


aplicación.
Se puede cambiar posteriormente.

Nombre Este campo se rellena previamente según el nombre para


mostrar que escriba. Incluye el prefijo de personalización del
editor de soluciones.

Propiedad Puede elegir que sea propiedad del usuario o el equipo, o


propiedad de la organización. Más información: Propiedad de
entidad.

Editar una entidad


Mientras ve entidades, seleccione la entidad que desee modificar, o continúa editando una nueva entidad que
acaba de guardar.

NOTE
Las entidades estándar o las entidades personalizadas que son parte de una solución administrada pueden tener
limitaciones sobre los cambios que puede aplicar. Si la opción no está disponible o está deshabilitada, usted no está
autorizado a realizar el cambio.

Establecer opciones de una vez


Las siguientes opciones se pueden configurar una vez y no se pueden cambiar después de configurarlas. Procure
establecer estas opciones solo cuando las necesite.

OPCIÓN DESCRIPCIÓN

Actividades Permite asociar actividades a registros de esta entidad.

Flujos de proceso de negocio Permite crear flujos de proceso de negocio para esta entidad.
Más información Crear un flujo de proceso de negocio para
estandarizar los procesos
OPCIÓN DESCRIPCIÓN

Conexiones Use la característica de conexiones para mostrar cómo los


registros de esta entidad tienen conexiones con los registros
de otras entidades que también tengan las conexiones
habilitadas.

Comentarios Permite a los clientes escribir comentarios sobre cualquier


registro de entidad, o calificar registros de entidad con un
rango de puntuación definido. Más información: Habilitar
comentarios/clasificaciones en una entidad

Notas Permite anexar notas a los registros de esta entidad. Las


notas incluyen la capacidad de agregar datos adjuntos.

Colas Permite usar la entidad con colas. Las colas mejoran el


proceso de redirigir y compartir trabajo haciendo que los
registros de esta entidad estén disponibles en una ubicación
central a la que todos los usuarios pueden acceder.

Envío de correo electrónico Permite enviar mensajes de correo electrónico utilizando una
dirección de correo electrónico almacenada en uno de los
campos de esta entidad. Si para esta entidad no existe ya un
campo Línea de texto única con el formato establecido en
correo electrónico, se creará uno nuevo al habilitar el envío
de correo electrónico.

Opciones que puede cambiar


Puede cambiar las propiedades siguientes en cualquier momento.

OPCIÓN DESCRIPCIÓN

Equipos de acceso Permite crear plantillas de equipo para esta entidad.

Permitir creación rápida Una vez creado y publicado un Formulario de creación


rápida para esta entidad, los usuarios tendrán la opción de
crear un nuevo registro con el botón Crear del panel de
navegación. Más información: Crear y diseñar formularios

Cuando esta opción está habilitada para una entidad de


actividad personalizada, dicha actividad personalizada será
visible en el grupo de entidades de actividad cuando los
usuarios usen el botón Crear en el panel de navegación. Sin
embargo, debido a que las actividades no admiten
formularios de creación rápida, se utilizará el formulario
principal cuando se haga clic en el icono de entidad
personalizada.

Áreas que muestran esta entidad En la aplicación web, seleccione una de las áreas disponibles
del mapa del sitio para mostrar esta entidad. Esto no se aplica
a las aplicaciones basadas en modelos.

Auditoría Cuando se habilita la auditoría para la organización, permite


capturar los cambios en los registros de entidad a lo largo del
tiempo. Al habilitar la auditoría para una entidad, también se
habilita la auditoría en todos sus campos. Puede seleccionar
(o anular la selección de) los campos en los que desee
habilitar la auditoría.
OPCIÓN DESCRIPCIÓN

Seguimiento de cambios Habilita la sincronización de datos de alto rendimiento


mediante la detección de los datos que han cambiado desde
que se extrajeron inicialmente o desde que se sincronizaron
por última vez.

Color Establezca el color que se usará para la entidad en


aplicaciones basadas en modelos.

Descripción Proporcione una descripción significativa del objetivo de la


entidad.

Administración de documentos Después de realizar otras tareas para habilitar la


administración de documentos para la organización, si
habilita esta característica permite que esta entidad participe
en la integración con SharePoint.

Detección de duplicados Si la detección de duplicados está habilitada para la


organización, habilitar esta opción le permite crear reglas de
detección de duplicados para esta entidad.

Habilitar para móvil Hace que esta entidad esté disponible para las aplicaciones de
Dynamics 365 for phones y tablets. También tiene la opción
de convertir esta entidad en Solo lectura en móvil.

Si los formularios de una entidad requieren una extensión


que no es compatible con las aplicaciones Dynamics 365 for
phones y tablets, use esta configuración para asegurarse de
que los usuarios de aplicaciones móviles no puedan editar los
datos de estas entidades.

Habilitar para Phone Express Hace que esta entidad esté disponible para la aplicación
Dynamics 365 for phones.

Combinar correspondencia Los usuarios pueden usar esta entidad con la combinación de
correspondencia.

Capacidad de trabajar sin conexión de Dynamics 365 Especifica si los datos de esta entidad estarán disponibles
for Outlook mientras la aplicación Dynamics 365 for Outlook no esté
conectada a la red.

Imagen principal Las entidades del sistema que admiten imágenes ya tendrán
un campo Imagen. Puede elegir mostrar los datos en este
campo como la imagen del registro estableciendo el campo
en Ninguna o en Imagen predeterminada.

Para las entidades personalizadas primero debe crear un


campo de imagen. Cada entidad solo puede tener un campo
de imagen. Después de crear uno, puede cambiar este valor
para establecer la imagen principal. Más información: Campos
de imagen.

Panel de lectura en Dynamics 365 for Outlook Especifica si la entidad estará visible en el panel de lectura de
la aplicación Dynamics 365 for Outlook.
OPCIÓN DESCRIPCIÓN

Usar la Ayuda personalizada Si se habilita esta opción, establece una dirección URL de
Ayuda para controlar qué página verán los usuarios cuando
hagan clic en el botón Ayuda de la aplicación. Use esta opción
para dar instrucciones específicas para los procesos de la
empresa para la entidad.

También puede realizar los siguientes cambios:


Crear y editar campos para Common Data Service
Crear y editar relaciones entre entidades
Creación y diseño de formularios
Crear un flujo de proceso de negocio para estandarizar los procesos

Eliminación de una entidad


Como usuario con el rol de seguridad de administrador del sistema, puede eliminar entidades personalizadas que
no sean parte de una solución administrada.

IMPORTANT
Cuando se elimina una entidad personalizada, las tablas de base de datos que almacenan los datos de la entidad se
eliminan y se pierden todos los datos que contienen. Los registros asociados con una relación jerárquica con la entidad
personalizada también se eliminan. Para obtener más información sobre las relaciones jerárquicas, consulte Creación y
edición de relaciones entre entidades.

NOTE
La única forma de recuperar datos de una entidad que se haya eliminado es restaurar la base de datos desde un punto
anterior a la eliminación de la entidad. Más información: Copia de seguridad y restauración de instancias

Mientras ve entidades, haga clic en el comando en la barra de herramientas.


Mientras ve una entidad use el comando eliminar de la barra de menús.
WARNING
Si elimina una entidad que contiene datos se quitarán todos los datos. Estos datos se pueden recuperar sólo mediante la
copia de seguridad de la base de datos.

NOTE
Si hay dependencias de entidad recibirá un error No se puede eliminar el componente con un vínculo Detalles que
puede usar para detectar información sobre por qué la entidad no se puede eliminar. En la mayoría de los casos, será
debido a una dependencia que debe quitarse.
Puede haber más de una dependencia que bloquee la eliminación de una entidad. Este mensaje de error puede mostrar
sólo la primera. Para una forma alternativa de detectar dependencias, consulte Identificar dependencias de entidad

Identificar dependencias de entidad


Puede identificar dependencias que impiden eliminar una entidad antes de intentar eliminarla.
1. En el explorador de soluciones con la entidad seleccionada, haga clic en Mostrar dependencias en la barra
de comandos.
2. En la ventana de diálogo que se abre, desplace la lista a la derecha para ver la columna Tipo de
dependencia.

Las dependencias publicadas impedirán eliminar una entidad. Las dependenciasinternas debe resolverlas el
sistema.
3. Quite estas dependencias publicadas y debe poder eliminar la entidad.

NOTE
Una dependencia muy común es que otro formulario de entidad tiene un campo de búsqueda para la entidad que desea
eliminar. Al quitar el campo de búsqueda del formulario se resolverá la dependencia.
Crear una entidad de actividad personalizada
Para crear la entidad como entidad de actividad, siga los mismos pasos descritos en este tema, pero seleccione
Definir como entidad de actividad.

Una entidad de actividad es un tipo especial de entidad que realiza un seguimiento de las acciones para los que
se puede realizar entrada en un calendario. Más información: Entidades de actividad.
Cuando establece esta opción algunas propiedades de la entidad no son compatibles. Una entidad de actividad
debe ajustarse a comportamientos estándar que todas las entidades de actividad usan.
El campo principal Nombre y Nombre para mostrar se establecerán como Asunto y no puede cambiarlo.
Las siguientes opciones se establecen de forma predeterminada y no se pueden cambiar:
Comentarios
Notas (incluye archivos adjuntos)
Conexiones
Colas
Funcionalidad sin conexión para Dynamics 365 for Outlook
Las siguientes opciones no se pueden establecer:
Áreas que muestran esta entidad
Actividades
Enviar correo electrónico
Combinar correspondencia
Auditoría de un solo registro
Auditoría de varios registros

Crear una entidad virtual


Algunas opciones se usan únicamente al crear una entidad virtual.

OPCIÓN DESCRIPCIÓN

Entidad virtual Si la entidad es una entidad virtual.

Origen de datos El origen de los datos de la entidad.

Más información: Crear y editar entidades virtuales que contienen datos desde un origen de datos externo
Vea también
Crear y editar entidades en Common Data Service
Tutorial: Crear una entidad personalizada que tenga componentes en PowerApps
Crear una solución
Importar o exportar datos de Common Data Service
25/11/2019 • 8 minutes to read • Edit Online

Para importar y exportar datos de forma masiva desde archivos de Microsoft Excel o CSV, use las funciones
Obtener datos de archivo de Excel y Exportar datos para entornos actualizados de Common Data Service.
Existen dos formas de importar archivos en entidades desde archivos de Excel o CSV.

Opción 1: importar creando y modificando una plantilla de archivo


Cada entidad tiene campos necesarios que deben existir en el archivo de entrada. Se recomienda que cree una
plantilla. Primero, exporte los datos de la entidad. Use el mismo archivo (modificado con sus datos) para importar
los datos en la entidad. Esta plantilla le permite ahorrar tiempo y esfuerzo. No tendrá que preocuparse por los
campos necesarios para cada entidad.
1. Prepare la plantilla de archivo.
a. Exporte los datos de la entidad al archivo CSV. Siga los pasos de Exportar datos a CSV.
b. Defina un plan para asegurarse de que los datos sean únicos. Use claves principales o claves
alternativas.
c. Consulte las instrucciones en la siguiente sección para asegurarse de que los datos sean únicos antes de
importarlos a una entidad.
2. Modifique el archivo con sus datos.
Copie los datos de su archivo de Excel o CSV en la plantilla que acaba de crear.
3. Importe el archivo.
a. En powerapps.com, expanda la sección Datos. Seleccione Entidades en el panel de navegación izquierdo.
b. Seleccione la entidad a la que desea importar los datos.
c. Seleccione los puntos suspensivos o el menú de la parte superior. Seleccione Obtener datos. Seleccione
Obtener datos de Excel.

NOTE
Para importar datos en más de una entidad, en el menú superior, seleccione Obtener datos. Seleccione Obtener
datos de Excel. Después puede elegir varias entidades y seleccionar Siguiente.

d. En la pantalla Importar datos, elija si desea importar datos de un archivo de Excel o CSV.
e. Seleccione Cargar.
f. Elija su archivo. Siga las indicaciones para cargar el archivo.
g. Después de cargar el archivo y cuando el Estado de asignación sea verde, seleccione Importar en la
esquina superior derecha. Consulte la siguiente sección para navegar y corregir los errores de asignación.

h. Una vez que la importación finalice correctamente, verá el número total de inserciones y actualizaciones.

NOTE
Use la lógica de Upsert (Actualizar o Insertar) para actualizar el registro, si ya existe, o para insertar un nuevo registro.

Opción 2: Importar incorporando su propio archivo de origen


Si es un usuario avanzado y conoce los campos necesarios para una determinada entidad para Common Data
Service, defina su propio archivo de origen de Excel o CSV. Siga los pasos de Importar el archivo.

Desplazarse por los errores de la asignación


Si obtiene errores de asignación después de cargar el archivo, seleccione Estado de asignación. Siga estos pasos
para inspeccionar y rectificar los errores de asignación de campos.
1. Use el menú desplegable de la derecha, en Mostrar, para desplazarse por Campos no asignados, Campos
con erroreso Campos obligatorios.

TIP
En función de si obtiene una advertencia o un error, inspeccione Campos no asignados o Campos con errores a
través del menú desplegable de Asignaciones de campos.
2. Cuando resuelva todos los errores y advertencias, seleccione Guardar cambios en la esquina superior
derecha. Volverá a la pantalla Importar datos.
3. Cuando la columna Estado de asignación muestre Completado en verde, seleccione Importar en la
esquina superior derecha.
4. Cuando reciba el mensaje Importe realizada correctamente se mostrará el total de inserciones y
actualizaciones.

Asegurar la univocidad al importar datos en una entidad de Excel o de


CSV
Las entidades de Common Data Service usan una clave principal para identificar los registros de forma única en
una tabla de entidades de Common Data Service. La clave principal de una entidad de Common Data Service es un
identificador único global (GUID ). Forma la base predeterminada para la identificación de registro. Las operaciones
de datos, como la importación de datos en entidades de Common Data Service, exponen las claves principales
predeterminadas.
Ejemplo:
La clave principal de una entidad Cuenta es accountid.

A veces, una clave principal puede que no funcione cuando se integran datos desde un origen externo. Use
Common Data Service para definir claves alternativa que identifican de manera única un registro en lugar de la
clave principal.
Ejemplo:
Para una entidad Cuenta, puede establecer transactioncurrencyid como clave alternativa usando una
identificación basada en claves naturales. Por ejemplo, use Dólar de EE. UU. en lugar del valor de GUID
88c6c893-5b45-e811-a953-000d3a33bcb9 que se muestra anteriormente. También puede elegir símbolo de
moneda o nombre de la moneda como claves.
Los usuarios pueden seguir usando claves principales como identificadores después de especificar claves
alternativas. En el ejemplo anterior, el primer archivo sigue siendo válido si los GUID son datos válidos.

Exportar datos a CSV


Puede realizar una exportación de datos única desde una entidad estándar o entidad personalizada. También puede
exportar datos desde más de una entidad a la vez. Si exporta datos de más de una entidad, cada entidad se exporta
en su propio archivo CSV de Microsoft.
1. En powerapps.com, expanda la sección Datos. Seleccione Entidades en el panel de navegación izquierdo.
2. Seleccione la entidad de la que desea importar los datos.
3. Seleccione los puntos suspensivos o el menú de la parte superior. Seleccione Exportar. Seleccione Datos.

NOTE
Para exportar datos desde varias entidades, en el menú superior, seleccione Exportar. Seleccione Datos. Puede elegir
varias entidades.

4. Cuando la exportación finalice correctamente, podrá Descargar los datos exportados. Esta descarga
proporciona un vínculo al archivo CSV descargable.

Tipos de datos no admitidos


Actualmente no se admiten los siguientes tipos de datos.
Zona horaria
Conjunto de opciones de selección múltiple
Imagen
Abrir datos de entidad en Excel
25/11/2019 • 8 minutes to read • Edit Online

Al abrir datos de entidad en Microsoft Excel, puede ver y editar datos de forma rápida y sencilla usando el
complemento de Excel Microsoft PowerApps. El complemento PowerApps Excel requiere Microsoft Excel 2016.

Abrir datos de entidad en Excel


1. En powerapps.com, expanda la sección Datos y haga clic o pulse en Entidades en el panel de navegación de la
izquierda. Se muestran todas las entidades.
2. Haga clic en los puntos suspensivos (...) a la derecha de la entidad que le interesa.
3. Haga clic en Abrir en Excel y abra el libro generado. Este libro tiene información de enlace para la entidad, un
puntero al entorno y un puntero al complemento PowerApps Excel.
4. En Excel, haga clic en Habilitar edición para habilitar el complemento PowerApps Excel para que se ejecute. El
complemento de Excel se ejecuta en un panel a la derecha de la ventana de Excel.
5. Si esta es la primera vez que ha ejecutado el complemento PowerApps Excel, haga clic en Confiar en este
complemento para permitir que el complemento de Excel se ejecute.
6. Si se le solicita iniciar sesión, haga clic en Iniciar sesión y, a continuación, inicie sesión con las mismas
credenciales que usó en powerapps.com. El complemento de Excel usará un contexto de inicio de sesión
anterior y establecerá la conexión, si puede. Por lo tanto, compruebe el nombre de usuario en la parte superior
derecha del complemento de Excel.
El complemento de Excel lee automáticamente los datos de la entidad seleccionada. Tenga en cuenta que no habrá
datos en el libro hasta que el complemento de Excel los lea.
Visualizar y actualizar datos en Excel
Cuando el complemento de Excel lea datos de la entidad en el libro, puede actualizar los datos en cualquier
momento haciendo clic en Actualización en el complemento de Excel.

Editar datos de Excel


Puede cambiar los datos de la entidad como sea necesario y después volver a publicarlos haciendo clic en Publicar
en el complemento de Excel.
Para editar un registro, seleccione una celda en la hoja de cálculo y, a continuación, cambie el valor de la celda.
Para agregar un nuevo registro, siga estos pasos:
Haga clic en cualquier lugar de la hoja de cálculo y después haga clic en Nuevo en el complemento de Excel.
Haga clic en la última fila de la hoja de cálculo, pulse la tecla TAB hasta que el cursor salga de la última columna
de esa fila y se creará una nueva fila.
Haga clic en la fila inmediatamente que hay debajo de la hoja de cálculo y empiece a introducir datos en una
celda. Cuando salga de esa celda, la hoja de cálculo se expandirá para incluir la nueva fila.
Para eliminar un registro, siga estos pasos:
Haga clic con el botón secundario en el número de fila que hay junto a la fila de la hoja de cálculo que desea
eliminar y, a continuación, haga clic en Eliminar.
Haga clic con el botón secundario en la fila de la hoja de cálculo que desea eliminar y, a continuación, haga clic
en Eliminar > Filas de la tabla.

Agregar o quitar columnas


Puede usar el diseñador para ajustar las columnas y las entidades que se agregan automáticamente a la hoja de
cálculo.
1. Habilite el diseñador de origen de datos del complemento de Excel haciendo clic en el botón Opciones (el
símbolo de engranaje) y seleccionando la casilla Habilitar diseño.
2. Haga clic en Diseño en el complemento de Excel. Se muestra una lista de todos los orígenes de datos.
3. Junto al origen de datos, haga clic en el botón Editar (el símbolo de lápiz).
4. Ajuste la lista en el campo Campos seleccionados como necesite:
Para agregar un campo del campo Campos disponibles al campo Campos seleccionados, haga clic en
el campo y, a continuación, haga clic en Agregar. O bien, haga doble clic en el campo.
Para quitar un campo del campo Campos seleccionados, haga clic en el campo y, a continuación, haga
clic en Quitar. O bien, haga doble clic en el campo.
Para cambiar el orden de los campos, haga clic en el campo del campo Campos seleccionados y, a
continuación, haga clic en Arriba o Abajo.
5. Aplique los cambios al origen de datos haciendo clic en Actualizar y, a continuación, haga clic en Hecho para
salir del diseñador. Si agregó un campo (columna), haga clic en Actualizar para obtener un conjunto de datos
actualizado.

NOTE
Asegúrese de incluir siempre el identificador y los campos necesarios en el libro, ya que podría recibir errores al publicar.
NOTE
Al agregar campos de consulta, asegúrese de agregar el identificador y los campos de visualización.

Solución de problemas
Existen algunos problemas que se pueden resolver a través de una serie de pasos sencillos.
No todas las entidades admiten la edición y creación de nuevos registros, estas entidades se abrirán en Excel y
le permitirán ver datos, aunque la publicación estará deshabilitada.
Los campos de búsqueda deben editarse con el complemento para garantizar que se hace referencia al registro
correcto, no se permite actualizar estos campos mediante la función de copiar o pegar o introduciéndolos
directamente en el campo.
Si se produce un problema que no se describe aquí, póngase en contacto con nosotros mediante las páginas de
soporte.

Pasos siguientes
Administrar campos de una entidad
Definir relaciones entre entidades
Generar una aplicación mediante Common Data Service
Crear una aplicación desde cero usando Common Data Service
Definir claves alternativas para hacer referencia a
registros
25/11/2019 • 8 minutes to read • Edit Online

Las claves alternativas ofrecen una forma eficaz y precisa de integrar datos con sistemas externos. Es esencial en
los casos en que un sistema externo no almacena los Id. de identificador único global (GUID ) que identifican de
forma única registros en Common Data Service.
Un sistema de integración de datos usará claves alternativas para identificar de forma exclusiva registros
mediante uno o más valores del campo de la entidad que representen una única combinación. Cada clave
alternativa tiene un nombre único.
Por ejemplo, para identificar un registro de cuenta con una clave alternativa, puede usar el número de cuenta o el
campo de número de cuenta conjuntamente con otros campos que tienen valores que no deben cambiar.

NOTE
Aunque puede definir claves alternativas con PowerApps, solo se pueden usar mediante programación en código. Para
obtener más información sobre cómo usar claves alternativas mediante programación, consulte:
Documentación para desarrolladores: Usar una clave alternativa para crear un registro
Documentación para desarrolladores: Recuperar un registro con la API web mediante una clave alternativa

Algunas de las ventajas de la característica de claves alternativas:


Consulta más rápida de los registros.
Operaciones de datos en masa más robustas.
Programación simplificada con datos importados desde sistemas externos sin identificadores de registro.

Crear una clave alternativa


Hay dos diseñadores que puede usar para crear claves alternativas:

DISEÑADOR DESCRIPCIÓN

Portal PowerApps Proporciona una experiencia fácil y ágil, pero algunas


opciones no están disponibles.
Más información: Definir claves alternativas con el portal de
PowerApps

Explorador de soluciones No es tan fácil, pero proporciona más flexibilidad para


requisitos menos comunes.
Más información: Definir claves alternativas con el explorador
de soluciones
NOTE
También puede crear una clave alternativa en su entorno mediante lo siguiente:
Importe una solución que contenga la definición de la clave alternativa.
Un desarrollador también puede escribir código para crearlas. Más información: Documentación para desarrolladores:
Definir claves alternativas para una entidad

La información de este tema le ayudará a elegir el diseñador que puede usar.


Debería usar el portal de PowerApps para crear claves alternativas, a menos que necesite satisfacer cualquiera de
los siguientes requisitos:
Crear una clave alternativa en una solución distinta de la solución predeterminada de Common Data Service
Desea realizar fácilmente un seguimiento del trabajo del sistema que realiza el seguimiento del progreso de
creación de los índices de soporte

Límites al crear claves alternativas


Hay restricciones a la hora de crear una clave alternativa.
Campos que se pueden usar para las claves alternativas
Solo estos tipos de campos se pueden usar para crear claves alternativas:
Decimal
Número entero (entero)
Una sola línea de texto (cadena)
Fecha y hora
Búsqueda
Conjunto de opciones
Número de claves
Puede definir hasta cinco claves diferentes para una entidad.
Tamaño de clave válido
Cuando se crea una clave, el sistema valida que la plataforma puede admitir la clave, incluido que el tamaño total
de la clave no infringe restricciones de índice basadas en SQL como 900 bytes por clave y 16 columnas por clave.
Si el tamaño de la clave no cumple las restricciones, un mensaje de error se mostrará.
Caracteres Unicode en valor de clave
Si los datos en un campo que se usa en una clave alternativa contienen uno de los caracteres siguientes < ,>,*,
% , & , : , / , \\ las acciones de revisión o upsert no funcionarán.

Si solo necesita unicidad, este método funciona, pero si necesita usar estas claves como parte de la integración de
datos, entonces es mejor crear la clave en los campos que no tendrán datos con dichos caracteres.

Seguir el estado de creación de la clave alternativa


Cuando se crea una clave alternativa, se iniciará un trabajo del sistema para crear índices en las tablas de base de
datos para aplicar restricciones exclusivas en los campos que se usan en la clave alternativa. La clave alternativa
no surtirá efecto hasta que se creen estos índices. La creación de estos índices puede tardar más tiempo en
función de la cantidad de datos del sistema.
El estado del trabajo del sistema determina el estado de la clave alternativa. La clave alternativa puede tener los
siguientes estados:
Pendiente
En curso
Active
Con error
Cuando se completa el trabajo del sistema, el estado de la clave alternativa es Activo y está disponible para su
uso.
Si se produce un error en el trabajo del sistema, busque el trabajo del sistema para ver los errores. El trabajo del
sistema tendrá un nombre que sigue este patrón: Create index for {0} for entity {1} donde 0 es el Nombre
para mostrar de la clave alternativa y 1 es el nombre de la entidad.

NOTE
Si desea supervisar el estado del trabajo del sistema debe usar el explorador de soluciones para crear el índice. Incluirá un
vínculo al trabajo del sistema para poder supervisarlo. Más información: (Opcional) Ver el seguimiento del trabajo del
sistema de creación de índices

Vea también
Definir las claves alternativas con el portal PowerApps
Definir las claves alternativas con el explorador de soluciones
Documentación para desarrolladores: Definir claves alternativas para una entidad
Documentación para desarrolladores: Usar una clave alternativa para crear un registro
Definir las transiciones de razón para el estado de la
entidad Caso o de entidades personalizadas
25/11/2019 • 5 minutes to read • Edit Online

Puede especificar las transiciones de razón para el estado de la entidad Incidente (Caso) o de entidad
personalizada.

NOTE
Aunque la entidad de incidente (caso) no se incluye en un entorno predeterminado de Common Data Service, se usa en
Dynamics 365 for Customer Service y se define dentro del Modelo común de datos

Las transiciones de razón para el estado son un nivel de filtrado adicional y opcional para definir qué valor puede
cambiarse para cada razón para el estado. Definir una lista limitada de opciones válidas puede facilitar a los
usuarios la selección de la siguiente razón para el estado de un registro cuando tiene un gran número de
combinaciones para valores válidos de razón para el estado.

¿Cuál es la conexión entre los campos Estado y Razón para el estado?


Entidades que pueden tener diferentes valores de estado tienen dos campos que capturan estos datos:

NOMBRE PARA MOSTRAR DESCRIPCIÓN

Estado Representa el estado del registro. Normalmente Activo o


Inactivo. No puede agregar nuevas opciones de estado.

Razón para el estado Representa una razón que está vinculada a un estado
específico. Cada estado debe tener al menos una razón para el
estado posible. Puede agregar opciones adicionales de razón
para el estado.

Los metadatos para el campo definen qué valores de estado son válidos para un estado determinado. Por ejemplo,
para la entidad Incidente (Caso), el estado predeterminado y las opciones de razón para el estado son:

ESTADO RAZÓN PARA EL ESTADO

Activo En curso
Retenido
Esperando detalles
Investigación

Resuelto Problema resuelto


Información proporcionada

Cancelado Cancelado
Combinado

Edite transiciones de razón para el estado


Puede modificar las opciones de campo de razón para el estado para que las entidades de entidad de caso y
personalizadas definan qué otras opciones de razón para el estado pueden elegir. La única restricción es que cada
opción de razón para el estado de un estado activo debe permitir al menos una ruta a un estado inactivo. Si no,
podría crear una condición donde no sería posible resolver ni cancelar el caso.

NOTE
Editar las transiciones de razón para el estado requiere el uso del explorador de soluciones. Consulte Crear y editar campos
para Common Data Service usando el explorador de soluciones de PowerApps para obtener información sobre cómo editar
campos.

Cuando edita un campo de razón para el estado, el botón Editar las transiciones de la razón para el estado
está en el menú.

Al hacer clic en este botón, el cuadro de diálogo Transiciones de la razón para el estado proporciona la opción
de elegir Habilitar las transiciones de la razón para el estado. Cuando esta opción está seleccionada debe
definir qué otros valores de razón para el estado que se permiten para cada razón para el estado. Para quitar el
filtrado aplicado, quite la selección Habilitar las transiciones de la razón para el estado. Las transiciones que
ha definido se conservarán, pero no se aplicarán.
La captura de pantalla a continuación proporciona un ejemplo que cumple los siguientes requisitos:
Un caso se puede combinar en cualquier momento. No podrá combinar casos si una transición de razón para el
estado no lo permite.
Un caso activo se puede cancelar en cualquier momento.
Un caso resuelto o cancelado no se puede reactivar.
Todos los casos deben pasar a través de las siguientes fases: En curso > En espera > Esperando detalles >
Bajo investigación antes de que se puedan resolver. Con esta configuración, un caso no se pudo establecer en
un estado anterior.

NOTE
Esto no es un buen ejemplo para el trabajo real, pero demuestra cómo las fases de estado se pueden aplicar a través
de transiciones de razón para el estado.
Vea también
Crear y editar campos para Common Data Service con el explorador de soluciones de PowerApps
Metadatos de entidad > Estados de entidad
Definir transiciones de modelo de estado personalizadas
Eliminación de entidades personalizadas
25/11/2019 • 2 minutes to read • Edit Online

Puede eliminar entidades personalizadas, pero no puede eliminar entidades estándar.


1. En powerapps.com, expanda la sección Datos y haga clic o pulse en Entidades en el panel de navegación
de la izquierda.

2. En la lista de entidades, haga clic o pulse en la entidad para eliminar, y haga clic o pulse en la opción
Eliminar entidad de la barra de comandos.
3. En el cuadro de diálogo que aparece, haga clic o pulse en Eliminar para eliminar la entidad.

NOTE
Cuando se elimina una entidad, se elimina tanto la definición de la entidad como todos los datos que contiene. Las entidades
y los datos incluidos no se pueden recuperar si se eliminan.

NOTE
Es posible que dañe una aplicación o un flujo si elimina una entidad que se usa en esa aplicación.

NOTE
Si la entidad A tiene campos de búsqueda respecto a la entidad B, es posible que deba eliminar la entidad B para poder
eliminar la entidad. A.
Mostrar iconos personalizados junto con los valores
en vistas de lista
25/11/2019 • 9 minutes to read • Edit Online

Los administradores y personalizadores de entornos de PowerApps pueden agregar gráficos a una vista y
establecer la lógica usada para seleccionar un gráfico según el valor de la columna con JavaScript. La
funcionalidad le permite personalizar las vistas de lista que muestran iconos junto al texto o los valores numéricos.

NOTE
Los iconos de cuadrícula se muestran únicamente en la interfaz web. No se muestran en Outlook o la aplicación móvil.

Agregue gráficos personalizados y JavaScript como recursos web


1. Cree los nuevos archivos de gráficos necesarios para la personalización. Se recomienda un tamaño de icono
de 16x16 píxeles (las imágenes más grandes serán reducidas proporcionalmente).
2. Escriba una o más funciones JavaScript que establezcan qué iconos se mostrarán para qué valores
(normalmente necesitará una función para cada columna que desea personalizar). Cada función debe
aceptar un objeto de datos fila y un código de idioma (LCID ) como entrada y devolver una matriz que
contiene un nombre de imagen y texto de información sobre herramientas. Para ver una función de
ejemplo, consulte Función JavaScript de ejemplo, más adelante en este tema.
3. Inicie sesión en el entorno como administrador y abra el explorador de soluciones.
4. Se abre la ventana Solución predeterminada. Vaya a Componentes > Recursos web aquí.
5. A continuación, cargará los gráficos personalizados, uno cada vez, como recursos web. Seleccione el botón
Nuevo en la barra de herramientas para crear un nuevo recurso web. Se abre otra ventana emergente para
ayudarle a crear el recurso. Haga lo siguiente:
a. Dé Nombre significativo para el nuevo recurso. Es el nombre que usará para referirse a cada gráfico
desde su código JavaScript.
b. Establezca el Tipo en el formato gráfico que ha usado para guardar el archivo gráfico (PNG, JPEG o
GIF ).
c. Seleccione Elegir archivo para abrir una ventana del explorador de archivos. Úsela para buscar y
seleccionar el archivo gráfico.
d. Agregue el Nombre para mostrar y/o la Descripción si lo desea.
e. Seleccione Guardar y luego cierre la ventana Recurso web.
6. Repita el paso anterior para cada archivo gráfico que tiene.
7. Ahora, agregará JavaScript como recurso web final. Seleccione Nuevo en la barra de herramientas para
crear un nuevo recurso web. Se abre otra ventana emergente para ayudarle a crear el recurso. Haga lo
siguiente:
a. Dé Nombre significativo para el nuevo recurso.
b. Establezca el Tipo como Script (JScript).
c. Seleccione Editor de texto (junto a la configuración Tipo) para abrir una ventana del editor de
texto. Pegue el código Javascript aquí y seleccione Aceptar para guardarlo.
d. Agregue el Nombre para mostrar y/o la Descripción si lo desea.
e. Seleccione Guardar y luego cierre la ventana Recurso web.
8. Con la ventana emergente Solución predeterminada aún abierta, expanda el árbol Componentes >
Entidades y busque la entidad que desea personalizar.
9. Expanda la entidad y seleccione su icono Vistas.
10. Ahora verá una lista de vistas para la entidad seleccionada. Seleccione una vista de la lista. A continuación
abra la lista desplegable Más acciones en la barra de herramientas y seleccione Editar.
11. Una ventana emergente se abre con controles para editar la vista seleccionada. Muestra cada columna que
forma parte de la vista. Seleccione la columna de destino y seleccione Cambiar propiedades en el cuadro
Tareas comunes. El diálogo Cambiar propiedades de columna se abre; establezca los valores siguientes
aquí:
Recurso web: especifique el nombre del recurso web que ha creado para albergar las funciones
Javascript (seleccione el botón Explorar para elegir de una lista).
Nombre de función: escriba el nombre de la función que escribió para modificar la columna y la
vista seleccionadas.
12. Seleccione Aceptar para cerrar el cuadro de diálogo Cambiar propiedades de la columna.
13. Seleccione Guardar y cerrar para guardar la vista.
14. Repita estos pasos para cada entidad, vista, y columna según sea necesario.
15. Cuando esté listo, seleccione Publicar todas las personalizaciones para publicar los cambios. A
continuación, cierre la ventana Solución predeterminada.
Función JavaScript de ejemplo
La función JavaScript para mostrar iconos personalizados e informaciones sobre herramientas espera los dos
argumentos siguientes: el objeto de fila completo especificado en layoutxml y el Id. de configuración regional del
usuario que llama (LCID ). El parámetro LCID permite especificar el texto de información sobre herramientas en
varios idiomas. Para obtener más información sobre los idiomas admitidos por el entorno, consulte Habilitar
idiomas e Instalar o actualizar paquetes de idioma. Para ver una lista de valores de Id. de configuración regional
(LCID ) que puede usar en el código, consulte Id. de configuración regional asignados por Microsoft.
Suponiendo que agregará iconos personalizados para un tipo de conjunto de opciones de atributo, que tiene un
conjunto limitado de opciones predefinidas, asegúrese de que usa el valor entero de las opciones en lugar de
etiqueta para evitar problemas de localización.
El siguiente código de ejemplo muestra iconos e informaciones sobre herramientas basándose en uno de tres
valores (1: Muy interesado, 2: Algo interesado, 3: No interesado) en el atributo opportunityratingcode (Nivel de
interés). El código de ejemplo también muestra cómo mostrar texto de información sobre herramientas localizado.
Para que este ejemplo funcione, debe crear tres recursos web de imagen con imágenes 16x16 con los nombres
siguientes: new_Hot, new_Warm y new_Cold.

IMPORTANT
Este ejemplo requiere la entidad oportunidad, que está disponible con la aplicación Dynamics 365 Sales.

function displayIconTooltip(rowData, userLCID) {


var str = JSON.parse(rowData);
var coldata = str.opportunityratingcode_Value;
var imgName = "";
var tooltip = "";
switch (parseInt(coldata,10)) {
case 1:
imgName = "new_Hot";
switch (userLCID) {
case 1036:
tooltip = "French: Opportunity is Hot";
break;
default:
tooltip = "Opportunity is Hot";
break;
}
break;
case 2:
imgName = "new_Warm";
switch (userLCID) {
case 1036:
tooltip = "French: Opportunity is Warm";
break;
default:
tooltip = "Opportunity is Warm";
break;
}
break;
case 3:
imgName = "new_Cold";
switch (userLCID) {
case 1036:
tooltip = "French: Opportunity is Cold";
break;
default:
tooltip = "Opportunity is Cold";
break;
}
break;
default:
imgName = "";
tooltip = "";
break;
}
var resultarray = [imgName, tooltip];
return resultarray;
}

Vea también
Conocer las vistas de las aplicaciones controladas por modelos
Editar mensajes de entidades del sistema
25/11/2019 • 3 minutes to read • Edit Online

El nombre para mostrar predeterminado de algunas entidades del sistema se usa en texto y mensajes de error de
la interfaz de usuario en Common Data Service. Si cambia el nombre para mostrar, también debe actualizar los
mensajes que usan el nombre para mostrar predeterminado. Por ejemplo, si cambia el nombre para mostrar de
Cuenta a Empresa, podría aparecer un mensaje de error con el nombre antiguo.
No puede editar mensajes del sistema mediante el portal de PowerApps, debe usar el explorador de soluciones.
Ir a una solución no administrada
1. En el portal de PowerApps, seleccione Soluciones y, a continuación, en la barra de herramientas,
seleccione Cambiar a clásico.
2. En la lista Todas las soluciones seleccione la solución no administrada que desee.
En el explorador de soluciones, debajo de la entidad, si ve un nodo Mensajes, puede editar determinado texto
que incluye referencias al nombre para mostrar de la entidad original.

Modificar este texto es bastante sencillo. Haga doble clic en el mensaje para ver un formulario con tres campos:

CAMPO DESCRIPCIÓN

Cadena para mostrar predeterminada Muestra el texto original.

Cadena para mostrar personalizada Edite este texto para cambiar la cadena para mostrar.

Comentario Opcional. Incluya un comentario sobre lo que cambió y


porqué.

Parte de texto del mensaje puede tener marcadores. Estos marcadores son números con llaves a ambos lados.
Por ejemplo: {0} . Estos marcadores permiten insertar texto en el mensaje. Si modifica mensajes, asegúrese de
mantener esos marcadores.
Seleccione para guardar los cambios. Seleccione Guardar y cerrar para cerrar el formulario al guardar.

NOTE
Aunque la IU expuesta para editar mensajes de entidad del sistema incluye muchas referencias a los nombres de entidad,
no los incluye todos. Para un enfoque más completo, consulte Actualizar texto localizable en el idioma base

Actualizar mediante programación las cadenas para mostrar de la


entidad
Para los desarrolladores que buscan una forma de trabajar con estos elementos en código, las cadenas para
mostrar se almacenan en la entidad DisplayString.
La entidad DisplayString no contiene las cadenas para mostrar predeterminadas. Los dos atributos de esta
entidad que contienen texto son CustomDisplayString y PublishedDisplayString. De forma predeterminada, estos
valores de atributo son nulos a menos que se haya personalizado y publicado la cadena para mostrar. El valor de
PublishedDisplayString es de solo lectura y refleja el valor publicado actualmente de CustomDisplayString .

Vea también
Editar una entidad
Traducir texto localizable para aplicaciones controladas por modelos
Configurar una entidad para
comentarios/clasificación
25/11/2019 • 2 minutes to read • Edit Online

Permita que los clientes o empleados escriban comentarios sobre cualquier registro de entidad, o califiquen
registros de entidad en un rango de calificación definido habilitando entidades para comentarios.
Esta capacidad es de uso general con un sistema que captura datos de clientes a través de un portal, o encuesta.
Los datos sobre satisfacción con el servicio o el producto se pueden aplicar con entidades que representan ese
tipo de datos.
La comentarios también se puede usar por empleados para proporcionar comentarios acerca de un esfuerzo
colaborativo.

NOTE
Necesitará tener el rol de seguridad de Administrador del sistema o de Personalizador del sistema o permisos equivalentes
para realizar estos pasos.

Habilitar comentarios
Edite la entidad para habilitar Comentarios. Más información: Editar una entidad

Agregar una subcuadrícula para comentarios en el formulario de


entidad
De forma predeterminada, los usuarios deben ir a la lista de registros asociados del registro al que desee agregar
comentarios. Para facilitar que los usuarios agreguen comentarios, es posible que desee agregar una
subcuadrícula de comentarios al formulario de la entidad para la que habilita comentarios.
Más información: Información general sobre las propiedades de subcuadrícula

Agregar un campo consolidado al formulario de entidad para mostrar


las clasificaciones
Según cómo quiera calcular la clasificación de la entidad, puede crear un campo consolidado que calcule la
clasificación y luego agregarlo al formulario de la entidad que está habilitando para comentarios. Más
información: Definir campos consolidados que agregan valores
Vea también
Enviar comentarios o clasificaciones para registros de Dynamics 365
Característica de vista previa: Requisitos del
proveedor de datos de Azure Cosmos DB para la API
SQL
25/11/2019 • 8 minutes to read • Edit Online

En este tema se describen los requisitos para el proveedor de datos de Azure Cosmos DB para la API de SQL y
también cómo configurar y las prácticas recomendadas cuando se usa el proveedor de datos de Azure Cosmos DB
para la API de SQL con entidades virtuales.

IMPORTANT
Las vistas previas de características no se han diseñado para un uso de producción y pueden tener una funcionalidad
restringida. Estas características están disponibles antes del lanzamiento oficial para que los clientes puedan tener un
acceso anticipado y proporcionar comentarios.
Se espera que esta característica se modifique, así que no debería usarla en producción. Úsela solo en entornos de
desarrollo y prueba.
Microsoft no ofrece soporte técnico para esta versión preliminar de característica. El soporte técnico de Microsoft
Dynamics 365 no podrá ayudarle con los problemas o las preguntas que pueda tener. Las características en vista
previa no se han diseñado para su uso en producción y están sujetas a otros términos de uso complementarios.

¿Qué es Azure Cosmos DB?


Azure Cosmos DB es el servicio de la base de datos de varios modelos global distribuido de Microsoft para
aplicaciones críticas. Proporciona capacidades de consulta SQL enriquecidas y familiares con latencias bajas
homogéneas en datos JSON sin esquema. Más información: Introducción a Azure Cosmos DB: API SQL

Requisitos
Suscripción de Azure que incluye Azure Cosmos DB.
Una colección de la API SQL de Azure Cosmos DB.
El tipo de base de datos Azure Cosmos DB debe ser SQL.

Asignaciones de tipos de datos


Supongamos que tiene un documento Azure Cosmos DB en una colección denominada pedidos que tiene la
siguiente estructura JSON.
Esta tabla indica las asignaciones de tipo de datos para el documento de la API SQL en la colección pedidos con
Common Data Service.

DATOS DE LA API DE SQL COMMON DATA SERVICE

id Clave principal

name Línea de texto única

quantity Número entero

orderid Línea de texto única

ordertype Conjunto de opciones

amount Número decimal o divisa

delivered Dos opciones

datetimeoffset Fecha y hora


NOTE
Los atributos con un prefijo de subrayado () se generan mediante la API de SQL.
Los atributos que están configurados como opcionales en el documento de la API SQL y se asignan en Common Data
Service como necesario para la empresa generarán un error de tiempo de ejecución.
los valores de atributo de identificador deben ser guids.
Para obtener más información sobre el uso de fechas en la API SQL, consulte Trabajar con fechas en Azure Cosmos DB.

Filtro de consultas SQL admitido


El filtro de consultas SQL admite los siguientes operadores.
Operadores de comparación: < , > , <= , >= , !=
Operadores lógicos: and , or
Operadores de conjuntos: in , not in
Operadores de cadena: like , contains , begins with , ends with

NOTE
El uso del operador like se traduce en el equivalente a los operadores contains / begins with / ends with . La API de SQL
no admite argumentos de patrón como se explica en el tema Like (Transact-SQL). El proveedor de datos de Azure Cosmos DB
para la API de SQL puede traducir el caso único especial Like('[aA]%') a BeginsWith('a') O BeginsWith('A') . Tenga
en cuenta que la comparación de cadenas en la API de SQL distingue entre mayúsculas y minúsculas.

Añadir un origen de datos con Azure Cosmos DB para el proveedor de


datos API SQL
1. Vaya a AppSource, seleccione OBTENERLO AHORA y siga las instrucciones para agregar la aplicación a su
entorno usando v9x o una versión posterior.
2. Después de que la solución esté instalada, inicie sesión en en entorno y vaya a Configuración >
Administración > Orígenes de datos de entidades virtuales.
3. En la barra de herramientas Acciones, seleccione NUEVO y, en el cuadro de diálogo Seleccionar
proveedor de datos, seleccione Azure Cosmos DB para proveedor de datos API SQL y seleccione

Aceptar.
4. Especifique la siguiente información y luego seleccione GUARDAR Y CERRAR.

CAMPO DESCRIPCIÓN

Nombre Escriba un nombre para describir el origen de datos.


CAMPO DESCRIPCIÓN

Nombre de recopilación El nombre de la base de datos de Azure Cosmos DB que


contiene la colección que desea que se muestre en una
entidad virtual.

Clave de autorización La clave principal o secundaria para la cuenta de Azure


Cosmos DB. Puede encontrar la clave en el portal de
administración de Azure en la opción claves en su cuenta
de Azure Cosmos DB.

Uri El URI del grupo de recursos donde se encuentra la


colección de Azure Cosmos DB. La dirección URI se forma
como https://contoso/documents.azure.com:443 .
Puede encontrar el URI del portal de administración de
Azure en la opción claves de la cuenta de Azure Cosmos
DB.

Tiempo de espera en segundos Escriba la cantidad de segundos que se debe esperar a una
respuesta del servicio Azure Cosmos DB antes de agotar el
tiempo de espera de una solicitud de datos. Por ejemplo,
escriba 30 para esperar un máximo de treinta segundos
antes de que se agote el tiempo de espera. El tiempo de
espera predeterminado es de 120 segundos.

Recomendaciones y limitaciones
Tenga en cuenta lo siguiente cuando utilice Azure Cosmos DB como origen de datos:
Cada origen de datos Azure Cosmos DB solo se puede asociar a una sola entidad virtual.
Puede conectar varios orígenes de datos a la misma colección en el Azure Cosmos DB.
No se puede segmentar los datos de una colección por entidad.
Las bases de datos Azure Cosmos DB no requieren un esquema; sin embargo los datos de la Azure Cosmos DB
se deben estructurar mediante un esquema predecible.
Aunque el proveedor de datos de Azure Cosmos DB para la API de SQL implementa la traducción de consultas
de operadores de proyección, filtro y ordenación, no admite las operaciones join.
Solo puede filtrar por una sola columna con la API de SQL.
Vea también
Crear y editar entidades virtuales que contienen datos desde un origen de datos externo
Tutorial de entidad virtual mediante el proveedor de
datos de OData v4
25/11/2019 • 8 minutes to read • Edit Online

Imagine que quiere acceder a la información del vale desde un origen de datos externos en la aplicación basada en
modelos. En este sencillo tutorial, modelará una entidad virtual con los campos asignados al esquema externo que
recupera datos del vale en tiempo de ejecución de un servicio web de OData.

Detalles del origen de datos:


Puesto que el origen de datos que se utiliza para este tutorial tiene un servicio web de OData v4, podemos usar el
proveedor de datos OData v4 que se incluye con su entorno.
Dirección URL del servicio web: https://contosowebservice.azurewebsites.net/odata/

IMPORTANT
La url del servicio web utilizado para este tutorial no es un servicio web operativo.

Para este tutorial, se necesita una única entidad virtual que contiene los tres campos siguientes.

TIPO DE DATOS DE ENTIDAD


NOMBRE DE CAMPO EX TERNO TIPO DE DATOS EX TERNOS VIRTUAL FINALIDAD

TicketID Edm.Guid Clave principal Clave principal de la entidad

Título Edm.String Línea de texto única Título del vale

Gravedad Edm.Int32 Número entero Valor numérico de 0 a 4 que


indica la gravedad del vale

Los metadatos de OData de la entidad de vale de origen de datos externos:

<EntityType Name="Ticket">
<Key>
<PropertyRef Name="TicketID" />
</Key>
<Property Name="TicketID" Nullable="false" Type="Edm.Guid" />
<Property Name="Title" Type="Edm.String" />
<Property Name="Severity" Nullable="false" Type="Edm.Int32" />
</EntityType>

Cree el origen de datos


Crear el origen de datos para el proveedor de datos de OData v4 que utiliza el servicio web de ejemplo de OASIS
Open Data Protocol (OData).
1. Acceda a Configuración > Administración > Orígenes de datos de entidad virtual.
2. Seleccione NUEVO, seleccione Proveedor de datos de OData v4 y luego seleccione Aceptar.
3. Introduzca o seleccione la siguiente información.

CAMPO VALUE

Nombre Origen de datos de ejemplo de Contoso

Dirección URL https://contosowebservice.azurewebsites.net/odata

Tiempo de espera 30

Devolver recuento alineado Verdadero

Deje los demás campos tal cual y seleccione GUARDAR Y CERRAR.

TIP
Cuando utilice su propio servicio web, compruebe que la dirección URL es válida pegándola en su explorador web.

Abra el explorador de soluciones


La parte del nombre de cualquier entidad personalizada que cree es el prefijo de personalización. Esto se establece
en función del editor de soluciones para la solución en la que trabaja. Si le interesa el prefijo de personalización,
asegúrese de que está trabajando en una solución no administrada donde el prefijo de personalización es el que
desea para esta entidad. Más información: Cambiar el prefijo del editor de soluciones
Ir a una solución no administrada
1. En el portal de PowerApps, seleccione Soluciones y, a continuación, en la barra de herramientas, seleccione
Cambiar a clásico.
2. En la lista Todas las soluciones seleccione la solución no administrada que desee.

Crear la entidad virtual


1. En el panel de navegación izquierdo del explorador de soluciones seleccione Entidades y seleccione Nuevo
desde el panel principal.
2. En el formulario Entidad: nueva, seleccione la opción Entidad virtual y luego introduzca la siguiente
información:

CAMPO VALUE

Origen de datos Origen de datos de ejemplo de Contoso

Nombre para mostrar Vale

Nombre plural Vales

Nombre new_ticket

Nombre externo Vale

Nombre de colección externa Vales


CAMPO VALUE

Notas (incluye archivos adjuntos) seleccionado

Actividades seleccionado

3. Al lado de Áreas que muestran esta entidad, seleccione Servicio y seleccione Guardar (pero no cierre el
formulario de entidad).

Crear los campos de la entidad virtual


En el panel de navegación izquierdo de la página Entidad: vale, seleccione Campos. Como parte de este tutorial,
editará los dos campos existentes y agregará un tercer campo.

IMPORTANT
Los nombres externos distinguen mayúsculas de minúsculas. Consulte los metadatos del servicio web para asegurarse de que
utiliza el nombre correcto. Un valor false que acepta NULL indica que es necesario el atributo. Tenga en cuenta que los
campos de clave principal son siempre obligatorios para el sistema.

1. Abra el campo new_ticketid y cambie el siguiente atributo con el valor que se indica aquí: Nombre
externo: TicketID
2. Seleccione Guardar y cerrar.
3. Abra el campo new_name y cambie los siguientes atributos que tenga los valores que se indican aquí:
Nombre para mostrar: Título
Nombre externo: Título

4. Seleccione Guardar y cerrar.


5. Seleccione Nuevo y en la página Campo: nuevo para vale, introduzca la siguiente información:
CAMPO VALUE

Nombre para mostrar Gravedad

Nombre new_severity

Nombre externo Gravedad

Requisito de campo Requerido por la empresa

Tipo de datos Número entero

Valor mínimo 0

Valor máximo 4

1. Seleccione Guardar y cerrar.

Agregar los campos al formulario principal


1. En la ventana de entidad Vale, seleccione Formularios.
2. Abra el formulario principal, arrastre y coloque el campo Gravedad del panel derecho del formulario de la
sección General en el campo Título.
3. En la ventana de entidad Vale, seleccione Guardar y cerrar.

Configurar la vista predeterminada


1. En el panel izquierdo del explorador de soluciones, en la Entidad Vale, seleccione Vistas.
2. Abra la vista Todos los vales.
3. En el panel Tareas comunes, seleccione Agregar columnas.

4. Seleccione Gravedad y, a continuación, Aceptar.


5. En la ventana Ver: todos los vales, seleccione Guardar y cerrar.
6. En la ventana del explorador de soluciones, seleccione Publicar todas las personalizaciones.
7. Una vez publicadas todas las personalizaciones, cierre la ventana del explorador de soluciones.

Vea la entidad virtual en acción con Dynamics 365


1. Vaya a Servicio > Extensiones > Vales.

Se muestra la vista Todos los vales. Tenga en cuenta que puede que tenga que actualizar el explorador para
ver la entidad del área Servicio.

2. Abra un registro Vale para ver el formulario que incluye los campos Título y Gravedad para el registro
determinado.
Vea también
Configuración, requisitos y prácticas recomendadas del proveedor de datos de OData v4
Crear y editar entidades virtuales que contienen datos desde un origen de datos externo
Información general sobre relaciones entre entidades
25/11/2019 • 2 minutes to read • Edit Online

Las relaciones de entidad definen las formas en que los registros de la entidad se pueden asociar con registros de
otras o de la misma entidad. Hay dos tipos de relaciones entre entidades.
Relaciones de uno a varios. En una relación de entidad de uno a varios, muchos registros de entidad que
referencian (relacionados) se pueden asociar con un solo registro de entidad (principal) al que se hace
referencia. El registro de entidad referenciado se denomina a veces "principal" y los registros de entidad que
referencian se denominan "secundarios". Una relación de varios a uno es tan solo la perspectiva secundaria de
una relación de uno a varios.
Relaciones de varios a varios. En una relación entre entidades de varios a varios, muchos registros de entidad
se pueden asociar con otros muchos registros de entidad. Los registros relacionados mediante una relación de
varios a varios pueden considerarse iguales y la relación es recíproca.

Vea también
Crear una relación entre entidades
Crear relaciones varios a varios entre entidades en Common Data Service con el portal de PowerApps
Información general sobre relaciones entre
entidades
25/11/2019 • 17 minutes to read • Edit Online

Las relaciones de entidad definen cómo pueden relacionarse los registros entre sí en la base de datos. En el
nivel más sencillo, si agrega un campo de búsqueda a una entidad se crea una nueva relación 1:N (uno a
varios) entre las dos entidades y permite colocar el campo de búsqueda en un formulario. Con el campo de
búsqueda, los usuarios pueden asociar varios registros secundarios de la entidad a un solo registro de la
entidad primaria.
Además de simplemente definir cómo pueden relacionarse los registros con otros registros, las relaciones de
entidad 1:N también ofrecen datos para abordar las siguientes preguntas:
¿Cuándo elimino un registro debo eliminar también los registros relacionados con dicho registro?
¿Cuándo asigno un registro, también es necesario asignar todos los registros relacionados con dicho
registro al nuevo propietario?
¿Cómo puedo simplificar el proceso de entrada de datos cuando creo un registro relacionado en el
contexto de un registro existente?
¿Cómo deberían los usuarios que visualizan un registro poder ver los registros asociados?

Las entidades pueden también participar en una relación de N:N (varios a varios) donde cualquier número de
registros de dos entidades pueden asociarse entre sí.

Decida si se deben usar relaciones o conexiones de entidad


Las relaciones de entidad son metadatos que realizan cambios en la base de datos. Estas relaciones permiten
que las consultas recuperen datos relacionados de manera muy eficaz. Use las relaciones entre entidades para
definir las relaciones formales que definen la entidad o que puedan usar la mayoría de los registros. Por
ejemplo, una oportunidad sin un cliente potencial no será muy útil. La entidad Oportunidad también tiene
una relación de N:N con la entidad Competidor. Esto permite que varios competidores se agreguen a la
oportunidad. Es posible que desee capturar estos datos y para crear un informe que muestre los
competidores.
Hay otros tipos menos formales de relaciones entre registros que se denominan conexiones. Por ejemplo,
puede resultar útil saber si dos contactos están casados, o quizás son amigos fuera del trabajo o quizás un
contacto suele trabajar con otra cuenta. La mayoría de los negocios no generarán informes con este tipo de
información ni requerirán que se introduzca, por lo que es posible que no valga la pena crear relaciones entre
entidades. Más información: Configurar valores de conexión

Tipos de relaciones entre entidades


Al mirar el explorador de soluciones es posible que piense que existen tres tipos de relaciones entre
entidades. Realmente solo hay dos, como se muestra en la siguiente tabla.

TIPO DE RELACIÓN DESCRIPCIÓN


TIPO DE RELACIÓN DESCRIPCIÓN

1:N (uno a varios) Una relación entre entidades en la que un registro de


entidad para Entidad principal se puede asociar a muchos
otros registros de Entidad relacionada debido a un
campo de búsqueda en la entidad relacionada.

Al ver un registro de entidad principal puede ver una lista


de los registros de entidad relacionados asociados a este.

En el portal de PowerApps, Entidad actual representa la


entidad principal.

N:N (varios a varios) Una relación de entidad que depende de una Entidad
relación especial, a veces denominada una entidad de
intersección, para que se puedan relacionar muchos
registros de una entidad con muchos registros de otra
entidad.

Para ver los registros de cualquier entidad en una relación


de N:N puede ver una lista de los registros de la otra
entidad relacionados con esta.

El tipo de relación N:1 (varios a uno) existe en la interfaz de usuario porque el diseñador muestra una vista
agrupada por entidades. Las relaciones de 1:N existen realmente entre entidades y hacen referencia a cada
entidad como Entidad principal/actual o Entidad relacionada. La entidad relacionada, a veces
denominada la entidad secundaria, tiene un campo de búsqueda que permite almacenar una referencia en un
registro desde la entidad principal, a veces denominada la entidad principal. Una relación de N:1 es
simplemente una relación de 1:N vista desde la entidad relacionada.

Comportamiento de relación de entidades


Los comportamientos de las entidades relacionadas es importante porque ayuda a garantizar la integridad de
los datos segura y puede automatizar los procesos de negocio para su empresa.
Preservación de la integridad de los datos
Algunas entidades existen para admitir otras entidades. No tienen sentido por sí solas. Tendrán normalmente
un campo de búsqueda requerido para vincularlo a la entidad principal que admiten. ¿Qué debe suceder
cuando el registro principal se elimina?
Puede usar el comportamiento de la relación para definir esto según las reglas para su negocio. Las dos
opciones son:
Evitar eliminar la entidad principal para poder reconciliar los registros de entidades relacionadas, quizás
asociándolas a otra entidad principal.
Permitir que eliminen a las entidades relacionadas automáticamente con la eliminación del registro de
entidad principal.
Si la entidad relacionada no admite una entidad principal, puede permitir que eliminen a la entidad principal y
el valor de búsqueda se vaciará.
Automatización de los procesos de negocio
Digamos que tiene un nuevo comercial y que desea asignarle varias cuentas existentes actualmente asignadas
a otro comercial. Cada registro de cuenta puede tener varias actividades de tareas asociadas. Puede buscar
fácilmente las cuentas activas que desea reasignar y asignarlas al nuevo comercial. ¿Qué sucedería con
cualquiera de estas actividades de tareas asociadas con las cuentas? ¿Desea abrir todas las tareas y decidir si
también deben asignarse al nuevo comercial? Probablemente no. En su lugar, puede permitir que la relación
aplique algunas reglas estándar automáticamente. Estas reglas solo se aplican a los registros de tareas
asociados a cuentas que está reasignando. Sus opciones son:
Reasignar todas las tareas activas.
Reasignar todas las tareas.
No reasignar ninguna de las tareas.
Reasignar todas las tareas asignadas actualmente al propietario anterior de la cuenta.
La relación puede controlar el modo en que las acciones realizadas en un registro para el registro de entidad
principal se ponen en cascada en los registros de entidad relacionados.
Comportamientos
Existen varios tipos de comportamientos que se pueden aplicar cuando se producen determinadas acciones.

COMPORTAMIENTO DESCRIPCIÓN

Poner activa en cascada Realiza la acción en todos los registros de entidad


relacionados activos.

Poner todas en cascada Realiza la acción en todos los registros de entidad


relacionados.

No poner ninguna en cascada No hacer nada.

Quitar vínculo Quite el valor de búsqueda para todos los registros


relacionados.

Restringir Impide que el registro de entidad principal se elimine


cuando existen registros de entidad relacionados.

Poner en cascada las que pertenecen al usuario Realiza una acción en todos los registros de entidad
relacionados que pertenecen al mismo usuario que el
registro de entidad principal.

Acciones
Estos son las acciones que pueden desencadenar determinados comportamientos:

CAMPO DESCRIPCIÓN OPCIONES

Asignar ¿Qué debe suceder cuando el registro Poner todas en cascada


de entidad principal se asigna a otra Poner activa en cascada
persona? Poner en cascada las que pertenecen
al usuario
No poner ninguna en cascada

Cambiar primario ¿Qué debe suceder cuando cambia el Poner todas en cascada
valor de búsqueda de una entidad Poner activa en cascada
relacionada en una relación Poner en cascada las que pertenecen
jerárquica? al usuario
Más información: Relaciones No poner ninguna en cascada
jerárquicas entre entidades
CAMPO DESCRIPCIÓN OPCIONES

Compartir ¿Qué debe suceder cuando el registro Poner todas en cascada


de entidad principal se comparte? Poner activa en cascada
Poner en cascada las que pertenecen
al usuario
No poner ninguna en cascada

Eliminar ¿Qué debe suceder cuando el registro Poner todas en cascada


de entidad principal se elimina? Quitar vínculo
Restringir

Dejar de compartir ¿Qué debe suceder cuando un Poner todas en cascada


registro de entidad principal deja de Poner activa en cascada
compartirse? Poner en cascada las que pertenecen
al usuario
No poner ninguna en cascada

Combinar ¿Qué debe suceder cuando un Poner todas en cascada


registro de entidad principal se No poner ninguna en cascada
combina?

Vista de informe ¿Cuál es el comportamiento deseado Poner todas en cascada


de la vista de informe asociada a esta Poner activa en cascada
relación? Poner en cascada las que pertenecen
al usuario
No poner ninguna en cascada

Relaciones jerárquicas entre entidades


Cada par de entidades que pueden tener una relación de 1:N pueden tener varias relaciones de 1:N entre
ellas. Sin embargo, generalmente solo una de esas relaciones se puede considerar como una relación
jerárquica entre entidades.
Una relación jerárquica entre entidades es cualquier relación de 1:N en la que una de las opciones en cascada
en la columna Jerárquica de la siguiente tabla es verdadera.

PARA JERÁRQUICA NO JERÁRQUICA

Asignar Poner todas en cascada No poner ninguna en cascada


Poner en cascada las que pertenecen
al usuario
Poner activa en cascada

Eliminar Poner todas en cascada RemoveLink


Restringir

Cambiar primario Poner todas en cascada No poner ninguna en cascada


Poner en cascada las que pertenecen
al usuario
Poner activa en cascada

Compartir Poner todas en cascada No poner ninguna en cascada


Poner en cascada las que pertenecen
al usuario
Poner activa en cascada
PARA JERÁRQUICA NO JERÁRQUICA

Dejar de compartir Poner todas en cascada No poner ninguna en cascada


Poner en cascada las que pertenecen
al usuario
Poner activa en cascada

Por ejemplo, si crea una nueva entidad personalizada y agrega una relación de 1:N entre entidades con la
entidad de cuenta en la que la entidad personalizada es la entidad relacionada, puede configurar las acciones
para que dicha relación entre entidades use las opciones de la columna Jerárquica. Si más adelante agrega
otra relación de 1:N entre entidades con la entidad personalizada como la entidad de referencia, solo puede
configurar las acciones para que usen las opciones de la columna No jerárquica.
Normalmente, esto significa que para cada par de entidad solo hay una relación jerárquica. Hay algunos casos
en los que la búsqueda en la entidad relacionada puede permitir que una relación sea más de un tipo de
entidad.
Por ejemplo, si una entidad tiene una búsqueda de cliente que pueda hacer referencia a un contacto o a la
entidad de cuenta. Hay dos relaciones jerárquicas entre entidades de 1:N diferentes.
Cualquier entidad de actividad tiene un conjunto similar de relaciones jerárquicas entre entidades para
entidades que pueden asociarse a través del campo de búsqueda Referente a.
Limitaciones en comportamientos que puede establecer
Dado que son relaciones jerárquicas, existen limitaciones que debe tener presentes cuando defina las
relaciones de entidad.
Una entidad personalizada no puede ser la entidad principal en una relación con una entidad del sistema
relacionada que esté en cascada. Esto quiere decir que no puede tener una relación con alguna acción
establecida en Poner todas en cascada, Poner activa en cascada o Poner en cascada las que
pertenecen al usuario entre una entidad personalizada principal y una entidad del sistema relacionada.
Ninguna relación nueva puede tener alguna acción establecida en Poner todas en cascada, Poner activa
en cascada o Poner en cascada las que pertenecen al usuario si la entidad relacionada de esa relación
ya existe como entidad relacionada en otra relación que tenga alguna acción establecida en Poner todas
en cascada, Poner activa en cascada o Poner en cascada las que pertenecen al usuario. Esto evita
que se creen relaciones entre varias entidades principales.
Vea también
Información general sobre los metadatos y las entidades
Crear y editar relaciones 1: N (uno a varios) o N:1 (varios a uno)
Crear relaciones entre entidades de varios a varios (N:N )
Información general sobre crear relaciones entre
entidades de uno a varios o varios a uno
25/11/2019 • 4 minutes to read • Edit Online

En Common Data Service, las relaciones de 1:N (uno a varios) o N:1 (varios a uno) definen cómo se relacionan
dos entidades entre sí.
Antes de crear una relación entre entidades personalizada, evalúe si el uso de una relación entre entidades
existente cumple sus requisitos.
Más información: ¿Crear nuevos metadatos o usar los metadatos existentes?
Hay dos diseñadores que puede usar para crear y editar relaciones de 1:N (uno a varios) o N:1 (varios a uno):

DISEÑADOR DESCRIPCIÓN

Portal PowerApps Proporciona una experiencia fácil y ágil, pero algunos valores
especiales no están disponibles.
Más información: Creación y edición de relaciones entre
entidades 1:N (uno a varios) o N:1 (varios a uno) en el portal
de PowerApps

Explorador de soluciones No es tan fácil, pero proporciona más flexibilidad para


requisitos menos comunes.
Más información: Creación y edición de relaciones entre
entidades 1:N (uno a varios) o N:1 (varios a uno) con el
explorador de soluciones

NOTE
También puede crear una nueva relación entre entidades en su entorno mediante lo siguiente:
En aplicaciones basadas en modelos, seleccione Nuevo campo del editor de formularios y cree un campo Búsqueda.
Más información: Agregar un campo a un formulario
Crear un nuevo campo de búsqueda para la entidad relacionada.
Más información: Crear y editar campos
Importe una solución que contenga la definición de la relación entre entidades.
Más información: Importar, actualizar y exportar soluciones
Use Power Query para crear nuevas entidades y rellenarlas con datos.
Más información: Agregar datos a una entidad en Common Data Service mediante Power Query..
Un programador puede usar servicios de metadatos para escribir un programa para crear y actualizar relaciones entre
entidades.
Más información: Personalizar metadatos de relaciones entre entidades

La información de este tema le ayudará a elegir el diseñador que puede usar.


Debe usar el portal PowerApps para crear y editar relaciones entre entidades de 1:N (uno a varios) o N:1 (varios a
uno) a menos que necesite satisfacer cualquiera de los siguientes requisitos:
Configurar asignaciones de campos
Configurar opciones del panel de navegación para aplicaciones basadas en modelos
Configurar comportamientos de relaciones
Definir si la relación está oculta en búsqueda avanzada.
Crear una relación jerárquica

Herramientas de la Comunidad
Creador de diagramas de relaciones entre entidades es una herramienta que la comunidad XrmToolbox
desarrolló para Common Data Service. Consulte el tema Herramientas para desarrolladores de Common Data
Service para obtener información sobre herramientas desarrolladas por la comunidad.

NOTE
Las herramientas de la comunidad no son un producto de Microsoft y no se incluyen en el soporte técnico. Si tiene alguna
duda relacionada con la herramienta, póngase en contacto con el Editor. Más información: XrmToolBox.

Vea también
Crear y editar relaciones entre entidades
Creación y edición de relaciones entre entidades 1:N (uno a varios) o N:1 (varios a uno) en el portal de
PowerApps
Creación y edición de relaciones entre entidades 1:N (uno a varios) o N:1 (varios a uno) con el explorador de
soluciones
Documentación para desarrolladores: Personalizar metadatos de relaciones entre entidades
Documentación para desarrolladores: Elegibilidad de relación entre entidades
Crear información general de relación varios a varios
entre entidades
25/11/2019 • 4 minutes to read • Edit Online

Las relaciones entre entidades de uno a varios (1:N ) establecen una jerarquía entre registros. Con relaciones de
varios a varios (N:N ) no existe una jerarquía explícita. No existen campos de búsqueda ni comportamientos para
configurar. Los registros creados utilizando relaciones de varios a varios pueden considerarse iguales y la relación
es recíproca.
Con relaciones de varios a varios una entidad de relaciones (o intersección) almacena los datos que asocia las
entidades. Esta entidad tiene una relación entre entidades de uno a varios con las dos entidades relacionadas y
almacena solo los valores necesarios para definir relación. No puede agregar campos personalizados a una
entidad de relación y nunca es visible en la interfaz de usuario.
Crear una relación de varios a varios requiere elegir las dos entidades que desea que participen en la relación.
Para aplicaciones basadas en modelos usted puede decidir cómo desea que las listas respectivas estén
disponibles en la navegación para cada entidad. Estas son las mismas opciones usadas para la entidad principal
en las relaciones de entidad de 1:N. Más información: Elemento del panel de navegación para una entidad
principal
No todas las entidades se pueden usar con relaciones de varios a varios. Si la entidad no está disponible para
elegir en el diseñador, no puede crear una nueva relación de varios a varios con esta entidad. Más información:
Documentación para desarrolladores: Elegibilidad de relación entre entidades
Hay dos diseñadores que puede usar para crear y editar relaciones de 1:N (uno a varios) o N:1 (varios a uno):

DISEÑADOR DESCRIPCIÓN

Portal PowerApps Proporciona una experiencia fácil y ágil, pero algunos valores
especiales no están disponibles.
Más información: Crear relaciones varios a varios entre
entidades en Common Data Service con el portal de
PowerApps

Explorador de soluciones No es tan fácil, pero proporciona más flexibilidad para


requisitos menos comunes.
Más información: Crear relaciones entre entidades N:N (varios
a varios) en Common Data Service mediante el explorador de
soluciones

NOTE
También puede crear una nueva relación entre entidades de varios a varios (N:N) en su entorno mediante lo siguiente:
Importe una solución que contenga la definición de la relación. Más información: Importar, actualizar y exportar
soluciones
Un programador puede usar servicios de metadatos para escribir un programa para crear y actualizar relaciones entre
entidades. Más información: Documentación para desarrolladores: Personalizar metadatos de relaciones entre entidades

La información de este tema le ayudará a elegir el diseñador que puede usar.


Debe usar el portal PowerApps para crear y editar relaciones entre entidades de varios a varios (N:N ) a menos
que necesite satisfacer cualquiera de los siguientes requisitos:
Configurar opciones del panel de navegación para aplicaciones basadas en modelos
Ocultar la relación de la Búsqueda avanzada en aplicaciones basadas en modelos.

Vea también
Crear y editar relaciones entre entidades
Crear relaciones varios a varios entre entidades en Common Data Service con el portal de PowerApps
Crear relaciones entre entidades N:N (varios a varios) en Common Data Service mediante el explorador de
soluciones
Documentación para desarrolladores: Personalizar metadatos de relaciones entre entidades
Documentación para desarrolladores: Elegibilidad de relación entre entidades
Crear una relación entre entidades
25/11/2019 • 12 minutes to read • Edit Online

Los datos de una entidad suelen estar relacionados con los datos de otra entidad. Por ejemplo, podría tener una
entidad Profesores y una entidad Clase, y la entidad Clase podría tener una relación de búsqueda con la entidad
Profesores para indicar qué profesor da la clase. Puede usar un campo de búsqueda para mostrar los datos de la
entidad Profesores. Se le suele denominar campo de búsqueda.

Definir una relación


Puede crear varios tipos de relaciones desde una entidad a otra (o entre una entidad y ella misma). Cada entidad
puede tener una relación con más de una entidad, y cada entidad puede tener más de una relación con otra
entidad. Algunos tipos de relación comunes son:
Varios a uno - En este tipo de relación, cada registro de la entidad A puede coincidir con más de un registro
de la entidad B, pero cada registro de la entidad B solo puede coincidir con un registro de la entidad A. Por
ejemplo, una clase solo tiene una sala. Este es el tipo de relación más común y se muestra en la lista de
campos como Campo de búsqueda
Uno a varios - En este tipo de relación, cada registro de la entidad B puede coincidir con más de un registro
de la entidad A, pero cada registro de la entidad A solo puede coincidir con un registro de la entidad B. Por
ejemplo, un único profesor da varias clases.
Varios a varios - En este tipo de relación, cada registro de la entidad A puede coincidir con más de un
registro de la entidad B, y viceversa. Por ejemplo, los alumnos asisten a muchas clases y cada clase puede
tener varios alumnos.
Además, puede establecer comportamientos en cascada avanzados en relaciones de varios a uno y de uno a
varios siempre que se realice una acción en la entidad principal.

Agregar un campo de búsqueda (relación de varios a uno)


Para agregar una relación de búsqueda a una entidad, cree una relación en la pestaña Relaciones y especifique
la entidad con la que desee crear una relación.
1. En powerapps.com, expanda la sección Datos y haga clic o pulse en Entidades en el panel de navegación
de la izquierda.
2. Haga clic o pulse en una entidad existente o Cree una nueva entidad
3. Haga clic en Relaciones.
4. Haga clic en Agregar relación, se abrirá un nuevo panel para que elija la entidad con la que desea crear
una relación. Seleccione la entidad en la lista desplegable Entidad relacionada.
5. Después de seleccionar una entidad, los campos de búsqueda se mostrarán en la entidad principal y
adoptarán de forma predeterminada el nombre de la entidad (en este ejemplo, Clase), aunque puede
cambiarlo si es necesario.

6. Haga clic en Hecho para agregar la relación a la entidad y, a continuación, haga clic en Guardar entidad.
Agregar una relación de uno a varios
Para agregar una relación de uno a varios, cree una relación en la pestaña Relaciones y especifique la entidad
con la que desee crear una relación.
1. En powerapps.com, expanda la sección Datos y haga clic o pulse en Entidades en el panel de navegación
de la izquierda.
2. Haga clic o pulse en una entidad existente o Cree una nueva entidad
3. Haga clic en Relaciones.
4. Haga clic en la flecha abajo, a la derecha de Agregar relación; se le ofrecerá la opción de ambos tipos de
relaciones. Haga clic en Uno a varios, se abrirá un nuevo panel para que elija la entidad con la que desea
crear una relación. Seleccione la entidad en la lista desplegable Entidad relacionada.

5. Después de seleccionar una entidad, los campos de búsqueda se mostrarán en la entidad principal y
adoptarán de forma predeterminada el nombre de las entidades (en este ejemplo, Clase), aunque puede
cambiarlo si es necesario.
NOTE
En el caso de relaciones de uno a varios, el campo de búsqueda se creará en la entidad relacionada, no en la entidad
seleccionada actualmente. Si necesita que la búsqueda esté en la entidad actual, cree una relación de varios a uno.

6. Haga clic en Hecho para agregar la relación a la entidad y, a continuación, haga clic en Guardar entidad.

Agregar una relación de varios a varios


Para agregar una relación de varios a varios, cree una relación en la pestaña Relaciones y especifique la entidad
con la que desee crear una relación.
1. En powerapps.com, expanda la sección Datos y haga clic o pulse en Entidades en el panel de navegación
de la izquierda.
2. Haga clic o pulse en una entidad existente o Cree una nueva entidad
3. Haga clic en Relaciones.
4. Haga clic en la flecha abajo, a la derecha de Agregar relación; se le ofrecerá la opción de ambos tipos de
relaciones. Haga clic en Varios a varios, se abrirá un nuevo panel para que elija la entidad con la que
desea crear una relación. Seleccione la entidad en la lista desplegable Entidad relacionada.
5. Después de seleccionar una entidad, los nombres para la relación y la entidad de relación aparecerán.
Adoptarán de forma predeterminada los nombres de las entidades combinadas, pero puede cambiarlos si
es necesario.

6. Haga clic en Hecho para agregar la relación a la entidad y, a continuación, haga clic en Guardar entidad.

Agregar comportamiento de relación avanzado


Mientras crea una relación de uno a varios o de varios a uno, también puede definir comportamientos
avanzados.

Estas opciones también se denominan comportamientos en cascada ya que se despliegan en cascada en la


jerarquía de entidades relacionadas. Por ejemplo, podría ser deseable eliminar las pruebas y las tareas
relacionadas de un estudiante si este se quita del sistema. Este tipo de comportamiento se llama relación
jerárquica.
Además, puede decidir que no desea que las acciones se sitúen en cascada en la jerarquía. Por ejemplo, en la
relación de profesor a clase, puede decidir que la entidad secundaria (clase) no se debe eliminar cuando se
elimina un superior (profesor). Esto se llama relación de referencia.
Cuando modela los datos empresariales mediante la creación de entidades personalizadas o cuando utiliza las
entidades existentes del Common Data Model, analice el comportamiento que necesita y las consecuencias para
la jerarquía completa de entidades relacionadas y elija entre uno de los siguientes comportamientos estándar:
De referencia, Quitar vínculo: En una relación de referencia entre dos entidades, se puede navegar a
registros relacionados, pero las acciones realizadas en una no afectarán a la otra. Por ejemplo, si tiene una
relación de uno a varios entre profesores y clases, al eliminar un profesor no se producirá ningún impacto
en la clase relacionada.
De referencia, restringir eliminación: En una relación de referencia con restricción de eliminación, se
puede navegar a registros relacionados. Las acciones realizadas en el registro primario no se aplicarán al
registro secundario, pero el registro primario no se puede eliminar mientras exista el registro secundario.
Esto es útil si no desea que los registros secundarios se queden huérfanos. Esto fuerza al usuario a
eliminar todos los elementos secundarios antes de eliminar el elemento principal.

Jerárquica: En una relación jerárquica entre dos entidades, cualquier acción realizada en un registro de la
entidad principal se realiza también en los registros de la entidad secundaria relacionados con el registro
de la entidad principal. Por ejemplo, esto haría que todos registros secundarios se eliminaran cuando
eliminara el elemento principal.
Personalizado: En una relación personalizada entre dos entidades, seleccione el comportamiento
asociado con un conjunto de acciones posibles.

Para obtener más información sobre valores predeterminados y comportamientos personalizados: Configurar
comportamiento de relaciones entre entidades.

Usar un campo de búsqueda en una aplicación


Si crea una aplicación automáticamente a partir de una entidad que contiene un campo de búsqueda, ésta
aparece como control Desplegable que contiene datos del campo Nombre principal de la entidad.

Agregue relaciones de 1:N y de N:N para las aplicaciones del lienzo


Use la función Relacionar para vincular dos registros a través de una relación de uno a varios o de varios a
varios en Common Data Service. Más información: Funciones Relacionar y Cancelar la relación en PowerApps

Pasos siguientes
Generar una aplicación mediante una base de datos de Common Data Service
Crear una aplicación desde cero usando una base de datos de Common Data Service
Creación y edición de relaciones entre entidades uno
a varios o varios a uno utilizando el portal de
PowerApps
25/11/2019 • 6 minutes to read • Edit Online

El portal de PowerApps proporciona una forma de crear y editar relaciones de 1:N (uno a varios) o N:1 (varios a
uno) para Common Data Service.
El portal permite configurar las opciones más comunes, pero algunas opciones solo se pueden configurar usando
el explorador de soluciones. Más información:
Crear y editar relaciones 1: N (uno a varios) o N:1 (varios a uno)
Creación y edición de relaciones entre entidades 1:N (uno a varios) o N:1 (varios a uno) con el explorador de
soluciones.

Ver relaciones entre entidades


1. En el portal de PowerApps, seleccione el modo de diseño Controlado por modelos o Lienzo.
2. Seleccione Datos > Entidades y seleccione la entidad que tiene las relaciones que desea ver.
3. Con la pestaña Relaciones seleccionada, seleccione las vistas siguientes:

VISTA DESCRIPCIÓN

Todo Muestra todas las relaciones para la entidad

Personalizada Muestra solo relaciones personalizadas para la entidad

Predeterminado Muestra solo relaciones estándar para la entidad

Crear relaciones
Mientras ve relaciones entre entidades, en la barra de comandos, seleccione Agregar relación y elija Varios a
uno o Uno a varios.

NOTE
Para obtener información acerca de las relaciones Varios a varios consulte Crear relaciones N:N (varios a varios)

IMPORTANT
El portal usa terminología diferente que el explorador de soluciones. La Entidad principal del explorador de soluciones es la
Entidad actual en el portal.

Dependiendo de su elección verá:

ESCRIBA PANEL

Varios a uno

Uno a varios

Elija la Entidad relacionada para la relación que desea crear entre las dos entidades.

NOTE
En cualquier opción, un campo de búsqueda se creará en la entidad actual.

Una vez que seleccione la entidad puede editar los detalles de la relación. En este ejemplo, varios registros de
entidad de contacto se pueden asociar a una sola cuenta.
Puede editar los valores predeterminados proporcionados antes de guardar. Seleccione Más opciones para ver
los valores de Nombre de relación y Descripción del campo de búsqueda

CAMPO DESCRIPCIÓN

Nombre para mostrar del campo de búsqueda El texto localizable del campo de búsqueda que se creará en la
entidad relacionada.
Se puede editar posteriormente.

Nombre de campo de búsqueda El nombre del campo de búsqueda que se creará en la entidad
relacionada.

Nombre de la relación El nombre para la relación que se creará.

Descripción del campo de búsqueda Descripción del campo de búsqueda. En aplicaciones basadas
en modelos esto se mostrará como información sobre
herramientas cuando se mantenga el mouse sobre el campo.
Se puede editar posteriormente.

Puede continuar editando la entidad. Seleccione Guardar entidad para crear la relación que ha configurado.

Editar relaciones
Mientras ve relaciones entre entidades, seleccione la relación que desea editar.
NOTE
Cada relación se puede encontrar en la entidad principal o la entidad relacionada como relación Varios a uno o Uno a
varios . Aunque puede ser editada en ambos lugares, es la misma relación.
El editor de una solución administrada puede evitar algunas personalizaciones de relaciones que forman parte de la solución.

Los únicos campos que puede editar son Nombre para mostrar del campo de búsqueda y Descripción del
campo de búsqueda. Estos también se pueden editar en las propiedades del campo de búsqueda en la entidad
relacionada. Más información: Editar un campo

Eliminar relaciones
Mientras ve relaciones entre entidades, seleccione la relación que desea eliminar.

Puede usar el comando Eliminar relación de la barra de comandos o del menú del contexto contextual de la fila
al hacer clic en los puntos suspensivos (...).
Al eliminar la relación se eliminará el campo de búsqueda en la entidad relacionada.

NOTE
No podrá eliminar una relación que tenga dependencias. Por ejemplo, si ha agregado el campo de búsqueda a un formulario
para la entidad relacionada, debe quitar el campo del formulario antes de eliminar la relación.

Vea también
Crear y editar relaciones entre entidades
Crear y editar relaciones 1: N (uno a varios) o N:1 (varios a uno)
Creación y edición de relaciones entre entidades 1:N (uno a varios) o N:1 (varios a uno) con el explorador de
soluciones
Editar un campo
Creación y edición de relaciones entre entidades 1:N
(uno a varios) o N:1 (varios a uno) con el explorador
de soluciones
25/11/2019 • 23 minutes to read • Edit Online

El explorador de soluciones proporciona una forma de crear y editar relaciones entre entidades de 1:N (uno a
varios) o N:1 (varios a uno) para Common Data Service.
El portal de PowerApps permite configurar las opciones más comunes, pero algunas opciones solo se pueden
configurar usando el explorador de soluciones. Más información:
Crear relaciones 1: N (uno a varios) o N:1 (varios a uno)
Creación y edición de relaciones entre entidades 1:N (uno a varios) o N:1 (varios a uno) en el portal de
PowerApps

Abra el explorador de soluciones


La parte del nombre de cualquier relación personalizada que cree es el prefijo de personalización. Esto se
establece en función del editor de soluciones para la solución en la que trabaja. Si le interesa el prefijo de
personalización, asegúrese de que está trabajando en una solución no administrada donde el prefijo de
personalización es el que desea para esta entidad. Más información: Cambiar el prefijo del editor de soluciones
Ir a una solución no administrada
1. En el portal de PowerApps, seleccione Soluciones y, a continuación, en la barra de herramientas,
seleccione Cambiar a clásico.
2. En la lista Todas las soluciones seleccione la solución no administrada que desee.

Ver relaciones entre entidades


En el explorador de soluciones, expanda Entidades y seleccione una entidad. En esa entidad, seleccione
Relaciones de 1:N o Relaciones de N:1.
Crear relaciones
Mientras ve relaciones entre entidades, seleccione Nueva relación de uno a varios o Nueva relación de
varios a uno de la barra de comandos.

NOTE
Si los comandos no están disponibles, la entidad no es válida para crear una relación personalizada.

Cualquier opción abrirá un formulario como el siguiente. La diferencia es si está establecido el campo Entidad
principal o Entidad relacionada.
Con Relación de 1:N, la Entidad principal se establece como entidad actual
Con Relación de N:1, la Entidad relacionada se establece como entidad actual
Los siguientes campos deben establecerse para guardar la relación entre entidades:

CAMPO OBLIGATORIO DESCRIPCIÓN

Entidad principal Esta entidad será el tipo de destino del campo de búsqueda
creado en la entidad relacionada.

Entidad relacionada Esta entidad tendrá un campo de búsqueda agregado para


asociar los registros de entidad con el registro de entidad
principal.

Nombre El nombre de la relación. Se generará un valor en función de


los valores de entidad principales y relacionados. Se agregará
al campo el prefijo de personalización del editor de
soluciones.

Nombre para mostrar del campo de búsqueda El texto localizable del campo de búsqueda que se creará para
la entidad relacionada. Suele ser el mismo que el nombre
para mostrar de la entidad principal.
Se puede cambiar posteriormente.
CAMPO OBLIGATORIO DESCRIPCIÓN

Nombre de campo de búsqueda El nombre del campo de búsqueda que se creará en la


entidad relacionada. Se generará un valor en función del
Nombre para mostrar del campo de búsqueda. Se
agregará al campo el prefijo de personalización del editor de
soluciones.

Puede hacer clic en para guardar la entidad y para continuar editando. Más información: Editar relaciones

NOTE
Si los valores de Nombre o Nombre del campo de búsqueda ya existen en el sistema se mostrará un error cuando
guarde. Edite los valores de modo que sean únicos y vuelva a intentarlo.

Editar relaciones
Mientras ve relaciones entre entidades, seleccione la entidad que desea editar. Las siguientes propiedades de
relación entre entidades pueden editarse una vez creada la relación.

NOTE
El editor de una solución administrada puede evitar algunas personalizaciones de relaciones que forman parte de la
solución.

Propiedades de relación entre entidades


Estas las propiedades son sobre la relación.

CAMPO DESCRIPCIÓN

Búsqueda Si esta relación debe ser visible en Búsqueda avanzada en


aplicaciones basadas en modelos. Seleccione No si es una
relación que no es importante para su empresa.

Jerárquica Esta opción se habilita únicamente para relaciones que hacen


referencia a sí mismas. Si la entidad debe ser considerada
para definir una jerarquía de la entidad.
Importante: Una vez que establece esta propiedad, puede
configurar campos consolidados, procesos, y vistas para que
dependan de esta propiedad. Si cambia posteriormente este
valor, las capacidades que dependen de la jerarquía no
funcionarán.
Más información: Definir y consultar datos relacionados
jerárquicamente

Campo de búsqueda
Son propiedades del campo de búsqueda creado en la entidad relacionada. Las propiedades se pueden editar
aquí o editando el campo de búsqueda directamente. Algunas propiedades de campo no son editables desde la
relación. Más información: Editar un campo

CAMPO DESCRIPCIÓN

Nombre para mostrar El texto localizable del campo de búsqueda que se creará para
la entidad relacionada.
CAMPO DESCRIPCIÓN

Requisito de campo Si el campo debe tener datos antes de que se pueda guardar
un formulario en una aplicación basada en modelos. Más
información: Opciones de requisito de campo

Descripción Escriba instrucciones para indicar al usuario para qué sirve el


campo. Estas descripciones aparecen como información sobre
herramientas para el usuario en aplicaciones basadas en
modelos cuando mantienen el mouse sobre la etiqueta del
campo.

Elemento del panel de navegación para una entidad principal


Desde la entidad principal puede navegar para ver registros relacionados. Estos datos se usan en aplicaciones
basadas en modelos para controlar cómo se muestran los registros de entidades relacionadas. Estos valores
también se pueden editar mediante el editor de formularios.

CAMPO DESCRIPCIÓN

Opción de visualización Cómo se debe mostrar la lista de entidades relacionadas. Más


información: Opciones de visualización

Etiqueta personalizada Especifique el texto localizable que se usará en lugar del


nombre plural cuando seleccione Usar etiqueta
personalizada como Opción de visualización.

Área de visualización Seleccione una de las agrupaciones disponibles para mostrar


esta lista. Las opciones disponibles son: Detalles (para el
grupo Común ), Marketing, Ventas y Servicio.

Orden de visualización Controla dónde se incluirá el elemento de navegación en el


área de visualización seleccionada. El intervalo de números
admitidos empieza con 10.000. Los elementos del panel de
navegación con un valor inferior aparecerán encima de otras
relaciones con un valor más alto.

Opciones de visualización
Estas son las opciones de visualización disponibles:

OPCIÓN DESCRIPCIÓN

No mostrar No muestra las entidades relacionadas para esta relación.

Usar etiqueta personalizada Cuando se selecciona esta opción, se habilita el campo


Etiqueta personalizada para que pueda especificar el texto
localizable que se usará en lugar del nombre plural.

Usar nombre plural Use el nombre plural para mostrar definido para la entidad
relacionada.

Comportamiento de las relaciones


Aquí es donde puede definir los comportamientos estándar para entidades relacionadas. Esta información es
importante porque ayuda a garantizar la integridad de los datos segura y puede automatizar los procesos de
negocio para su empresa.
Veamos un ejemplo.
Digamos que tiene un nuevo comercial y que desea asignarle varias oportunidades existentes actualmente
asignadas a otro comercial. Cada registro de oportunidad puede tener varias actividades de tareas asociadas.
Puede buscar fácilmente las oportunidades activas que desea reasignar y asignarlas al nuevo comercial. ¿Qué
sucedería con cualquiera de estas actividades de tareas asociadas con las oportunidades? ¿Desea abrir todas las
tareas y decidir si también deben asignarse al nuevo comercial? Probablemente no. En su lugar, puede permitir
que la relación aplique algunas reglas estándar automáticamente. Estas reglas solo se aplican a los registros de
tareas asociados a oportunidades que está reasignando. Sus opciones son:
Reasignar todas las tareas activas.
Reasignar todas las tareas.
No reasignar ninguna de las tareas.
Reasignar todas las tareas asignadas actualmente al propietario anterior de la oportunidad.
La relación puede controlar el modo en que las acciones realizadas en un registro para el registro de entidad
principal se ponen en cascada en los registros de entidad relacionados.
Existen varios tipos de comportamientos que se pueden aplicar cuando se producen determinadas acciones.
Comportamientos
Estos son los comportamientos disponibles para configurar.

COMPORTAMIENTO DESCRIPCIÓN

Poner activa en cascada Realiza la acción en todos los registros de entidad


relacionados activos.

Poner todas en cascada Realiza la acción en todos los registros de entidad


relacionados.

No poner ninguna en cascada No hacer nada.

Quitar vínculo Quite el valor de búsqueda para todos los registros


relacionados.

Restringir Impide que el registro de entidad principal se elimine cuando


existen registros de entidad relacionados.

Poner en cascada las que pertenecen al usuario Realiza una acción en todos los registros de entidad
relacionados que pertenecen al mismo usuario que el registro
de entidad principal.

Acciones
Estos son las acciones que pueden desencadenar determinados comportamientos:

CAMPO DESCRIPCIÓN OPCIONES

Asignar ¿Qué debe suceder cuando el registro Poner todas en cascada


de entidad principal se asigna a otra Poner activa en cascada
persona? Poner en cascada las que pertenecen al
usuario
No poner ninguna en cascada
CAMPO DESCRIPCIÓN OPCIONES

Cambiar primario ¿Qué debe suceder cuando cambia el Poner todas en cascada
valor de búsqueda de una entidad Poner activa en cascada
relacionada en una relación jerárquica? Poner en cascada las que pertenecen al
Más información: Relaciones jerárquicas usuario
entre entidades No poner ninguna en cascada

Compartir ¿Qué debe suceder cuando el registro Poner todas en cascada


de entidad principal se comparte? Poner activa en cascada
Poner en cascada las que pertenecen al
usuario
No poner ninguna en cascada

Eliminar ¿Qué debe suceder cuando el registro Poner todas en cascada


de entidad principal se elimina? Quitar vínculo
Restringir

Dejar de compartir ¿Qué debe suceder cuando un registro Poner todas en cascada
de entidad principal deja de Poner activa en cascada
compartirse? Poner en cascada las que pertenecen al
usuario
No poner ninguna en cascada

Combinar ¿Qué debe suceder cuando un registro Poner todas en cascada


de entidad principal se combina? No poner ninguna en cascada

Vista de informe ¿Cuál es el comportamiento deseado Poner todas en cascada


de la vista de informe asociada a esta Poner activa en cascada
relación? Poner en cascada las que pertenecen al
usuario
No poner ninguna en cascada

Opciones de tipo de comportamiento


Use el campo Tipo de comportamiento para elegir entre un conjunto de comportamientos estándar o si desea
configurarlos independientemente.

OPCIÓN DESCRIPCIÓN

Jerárquica Asignar: Poner todas en cascada


Cambiar primario: Poner todas en cascada
Compartir: Poner todas en cascada
Eliminar: Poner todas en cascada
Dejar de compartir: Poner todas en cascada
Combinar: No poner ninguna en cascada
Vista de informe: No poner ninguna en cascada | Poner
todas en cascada

De referencia Asignar: No poner ninguna en cascada


Cambiar primario: No poner ninguna en cascada
Compartir: No poner ninguna en cascada
Eliminar: Quitar vínculo
Dejar de compartir: No poner ninguna en cascada
Combinar: No poner ninguna en cascada
Vista de informe: No poner ninguna en cascada | Poner
todas en cascada
OPCIÓN DESCRIPCIÓN

De referencia, restringir eliminación Asignar: No poner ninguna en cascada


Cambiar primario: No poner ninguna en cascada
Compartir: No poner ninguna en cascada
Eliminar: Restringir
Dejar de compartir: No poner ninguna en cascada
Combinar: No poner ninguna en cascada
Vista de informe: No poner ninguna en cascada | Poner
todas en cascada

En cascada configurable Puede configurar el comportamiento que desea para cada


acción en función de las opciones disponibles

NOTE
Es posible que no pueda seleccionar la opción Jerárquica si una de las entidades ya participa en una relación jerárquica
entre entidades. Más información: Relaciones jerárquicas entre entidades
Si usa En cascada configurable para establecer los comportamientos de las acciones para que coincidan con los
comportamientos de las acciones asociadas con otro Tipo de comportamiento cuando guarda la relación, el Tipo de
comportamiento se establece automáticamente en el tipo coincidente.

Eliminar relaciones
Mientras ve relaciones entre entidades, seleccione la relación entre entidades que desea eliminar y haga clic en el
comando .
Al eliminar la relación se eliminará el campo de búsqueda en la entidad relacionada.

NOTE
No podrá eliminar una relación que tenga dependencias. Por ejemplo, si ha agregado el campo de búsqueda a un
formulario para la entidad relacionada, debe quitar el campo del formulario antes de eliminar la relación.

Relaciones jerárquicas entre entidades


Cada par de entidades que pueden tener una relación de 1:N pueden tener varias relaciones de 1:N entre ellas.
Sin embargo, generalmente solo una de esas relaciones se puede considerar como una relación jerárquica entre
entidades.
Una relación jerárquica entre entidades es cualquier relación de 1:N en la que una de las opciones en cascada en
la columna Jerárquica de la siguiente tabla es verdadera.

PARA JERÁRQUICA NO JERÁRQUICA

Asignar Poner todas en cascada No poner ninguna en cascada


Poner en cascada las que pertenecen al
usuario
Poner activa en cascada

Eliminar Poner todas en cascada RemoveLink


Restringir
PARA JERÁRQUICA NO JERÁRQUICA

Cambiar primario Poner todas en cascada No poner ninguna en cascada


Poner en cascada las que pertenecen al
usuario
Poner activa en cascada

Compartir Poner todas en cascada No poner ninguna en cascada


Poner en cascada las que pertenecen al
usuario
Poner activa en cascada

Dejar de compartir Poner todas en cascada No poner ninguna en cascada


Poner en cascada las que pertenecen al
usuario
Poner activa en cascada

Por ejemplo, si crea una nueva entidad personalizada y agrega una relación de 1:N entre entidades con la entidad
de cuenta en la que la entidad personalizada es la entidad relacionada, puede configurar las acciones para que
dicha relación entre entidades use las opciones de la columna Jerárquica. Si más adelante agrega otra relación
de 1:N entre entidades con la entidad personalizada como la entidad de referencia, solo puede configurar las
acciones para que usen las opciones de la columna No jerárquica.
Normalmente, esto significa que para cada par de entidad solo hay una relación jerárquica. Hay algunos casos en
los que la búsqueda en la entidad relacionada puede permitir que una relación sea más de un tipo de entidad.
Por ejemplo, si una entidad tiene una búsqueda de cliente que pueda hacer referencia a un contacto o a la
entidad de cuenta. Hay dos relaciones jerárquicas entre entidades de 1:N diferentes.
Cualquier entidad de actividad tiene un conjunto similar de relaciones jerárquicas entre entidades para entidades
que pueden asociarse a través del campo de búsqueda Referente a.
Limitaciones en comportamientos que puede establecer
Dado que son relaciones jerárquicas, existen limitaciones que debe tener presentes cuando defina las relaciones
de entidad.
Una entidad personalizada no puede ser la entidad principal en una relación con una entidad del sistema
relacionada que esté en cascada. Esto quiere decir que no puede tener una relación con alguna acción
establecida en Poner todas en cascada, Poner activa en cascada o Poner en cascada las que
pertenecen al usuario entre una entidad personalizada principal y una entidad del sistema relacionada.
Ninguna relación nueva puede tener alguna acción establecida en Poner todas en cascada, Poner activa
en cascada o Poner en cascada las que pertenecen al usuario si la entidad relacionada de esa relación ya
existe como entidad relacionada en otra relación que tenga alguna acción establecida en Poner todas en
cascada, Poner activa en cascada o Poner en cascada las que pertenecen al usuario. Esto evita que se
creen relaciones entre varias entidades principales.
Vea también
Crear y editar relaciones entre entidades
Crear y editar relaciones 1: N (uno a varios) o N:1 (varios a uno)
Creación y edición de relaciones entre entidades 1:N (uno a varios) o N:1 (varios a uno) en el portal de
PowerApps
Crear relaciones N:N (varios a varios)
Crear relaciones varios a varios entre entidades en
Common Data Service con el portal de PowerApps
25/11/2019 • 3 minutes to read • Edit Online

El portal de PowerApps proporciona una forma de crear y editar relaciones de varios a varios para Common Data
Service.
El portal permite configurar las opciones más comunes, pero algunas opciones solo se pueden configurar usando
el explorador de soluciones. Más información:
Crear relaciones entre entidades N:N (varios a varios)
Crear relaciones entre entidades N:N (varios a varios) en Common Data Service mediante el explorador de
soluciones

Ver relaciones entre entidades de varios a varios


1. En el portal de PowerApps, seleccione el modo de diseño Controlado por modelos o Lienzo.
2. Seleccione Datos > Entidades y seleccione la entidad que tiene las relaciones que desea ver.
3. Con la pestaña Relaciones seleccionada, seleccione las vistas siguientes:

VISTA DESCRIPCIÓN

Todo Muestra todas las relaciones para la entidad

Personalizada Muestra solo relaciones personalizadas para la entidad

Predeterminado Muestra solo relaciones estándar para la entidad

Las relaciones de varios a varios tendrán un Tipo de relación de Varios a varios.


NOTE
La entidad que ve puede no tener ninguna relación de Varios a varios.

Crear relaciones
Mientras ve relaciones entre entidades, en la barra de comandos, seleccione Agregar relación y elija Varios a
varios.

En el panel Varios a varios, elija la entidad que desea relacionar con la entidad actual.

Seleccione Más opciones para ver los campos Nombre de relación y Nombre de entidad de relación.

Los valores de estos campos se generan en función de las entidades elegidas.

NOTE
Si crea más de una relación de Varios a varios con las mismas dos entidades, tendrá que editar los campos Nombre de la
relación y Nombre de entidad de relación generados de modo que sean únicos.

Seleccione Aceptar para cerrar el panel Varios a varios. Se creará la relación al guardar los cambios en la entidad.
Una vez guardados, no se puede cambiar nada mediante el portal de PowerApps. Para editar las propiedades de la
relación para aplicaciones basadas en modelos, utilice el explorador de soluciones.

Eliminar relaciones
Mientras ve relaciones entre entidades, seleccione la relación que desea eliminar.

Puede usar el comando Eliminar relación de la barra de comandos o del menú del contexto contextual de la fila al
seleccionar los puntos suspensivos (...).
Al eliminar la relación de varios a varios se eliminará la entidad de relación creada. Se perderán a todas las
entidades de conexión de datos que usen la relación.
Vea también
Crear relaciones entre entidades N:N (varios a varios)
Crear relaciones entre entidades N:N (varios a varios) en Common Data Service mediante el explorador de
soluciones
Establecer las propiedades administradas de
relaciones
25/11/2019 • 2 minutes to read • Edit Online

Las Propiedades administradas se aplican únicamente al incluir un campo con una solución administrada e
importarla en otra organización. Estos valores permiten al responsable de la solución tener un determinado control
sobre el nivel de personalización que desea permitir a los usuarios que instalen la solución administrada al
personalizar una relación de entidad. Para establecer propiedades administradas para una relación, en el explorador
de soluciones expanda la entidad, abra la relación y, a continuación, seleccione Propiedades administradas en la
barra de menús.
Con las relaciones, la única propiedad administrada es Se puede personalizar. Este valor único controla todos los
cambios que se pueden realizar en la relación entre entidades.

Pasos siguientes
Crear y editar relaciones entre entidades
Visualizar datos jerárquicos con aplicaciones
controladas por modelos
25/11/2019 • 9 minutes to read • Edit Online

Cuando una entidad está configurada para tener una relación jerárquica que hace referencia a sí misma, puede
configurar visualizaciones usando esa jerarquía. Más información: Definir y consultar datos relacionados
jerárquicamente
Las entidades que tienen visualizaciones disponibles de forma predeterminada incluyen Cuenta, Posición y
Usuario. En la vista de cuadrícula de estas entidades, puede ver el icono que muestra el gráfico de jerarquía a la
izquierda del nombre del registro. El icono de jerarquía no está presente para todos los registros de forma
predeterminada. El icono se muestra para los registros que están relacionados con la relación jerárquica.

Si selecciona el icono de jerarquía, puede ver la jerarquía, con la vista de árbol a la izquierda y la vista de mosaico a
la derecha, como se indica a continuación:
Hay más entidades que pueden habilitarse para una jerarquía. Estas entidades incluyen Contacto y Equipo. Todas
las entidades personalizadas pueden habilitarse para una jerarquía.
Cosas más importantes para recordar al crear visualizaciones:
Solo se pueden configurar como jerárquica una relación que hace referencia a sí misma (1: N ) por entidad. En
una relación que hace referencia a sí misma la entidad principal y la entidad relacionada deben ser del mismo
tipo.
Una jerarquía o una visualización se basa en una entidad solo. Puede describir la jerarquía de cuenta mostrando
cuentas en varios niveles, pero no puede mostrar cuentas y contactos en la misma visualización de la jerarquía.
El número máximo de campos que se pueden mostrar en una ventana es cuatro. Si desea agregar más campos
al formulario rápido que se usa para la vista de mosaico, sólo los primeros cuatro campos se mostrarán.

Configuración de jerarquía
Para habilitar las visualizaciones de una jerarquía debe conectar la jerarquía a un formulario de vista rápida. Esto
solo se puede hacer usando el explorador de soluciones.
Ir a una solución no administrada
1. En el portal de PowerApps, seleccione Soluciones y, a continuación, en la barra de herramientas, seleccione
Cambiar a clásico.
2. En la lista Todas las soluciones seleccione la solución no administrada que desee.
Los valores de la jerarquía estás asociados a una entidad en el explorador de soluciones.
1. Mientras visualiza entidades, seleccione Configuración de la jerarquía.
2. Si existe un valor existente de la jerarquía puede editarlo. En caso contrario, haga clic en Nuevo para crear
uno nuevo.

NOTE
Si no existen los valores de la jerarquía, la entidad no es elegible para tener una jerarquía configurada. Solo puede
haber un valor de jerarquía

3. Defina los datos en los campos siguientes:


CAMPO DESCRIPCIÓN

Nombre Requerido. Agregue un nombre único para la configuración de


la jerarquía. Suele ser el nombre de la entidad. Este valor
incluirá el prefijo de personalización del editor de soluciones.

Formulario de vista rápida predeterminado Requerido. Elija un formulario de vista rápida existente o elija
Crear nuevo para abrir el editor de formularios de vista
rápida para crear uno nuevo.

Relación jerárquica Requerido. Si una relación jerárquica ya está definida para la


entidad, el valor se establecerá aquí. Si no hay ningún valor,
seleccione Marcar una relación como habilitada para las
jerarquías para abrir un cuadro de diálogo para elegir una de
las relaciones que hacen referencia a sí mismas disponibles.

Descripción Incluya una descripción del objetivo para esta jerarquía de


modo que los usuarios futuros que personalicen el sistema
puedan saber por qué se hizo.

Los mismos valores jerárquicos de visualización se establecen una vez, pero, se aplican a clientes web y móviles. En
tabletas, las representaciones visuales se muestran en un formato modificado conveniente para el factor de forma
más pequeño. Los componentes personalizables necesarios para la visualización jerárquica son compatibles con
las soluciones, por consiguiente, se pueden transportar entre organizaciones como cualquier otra personalización.
Puede configurar los atributos que se muestran en la visualización personalizando un formulario rápido mediante
el editor de formularios.

Recorrido por la visualización


Miremos un ejemplo de crear la visualización para una entidad personalizada. Hemos creado una entidad
personalizada llamada new_Widget , hemos creado una relación que hace referencia a sí misma (1:N )
new_new_widget_new_widget y marcado como jerárquica, como se indica aquí.

A continuación, en la vista de cuadrícula Configuración de la jerarquía seleccionamos la relación jerárquica


new_new_widget_new_widget . En el formulario, completamos los atributos requeridos. Si aún no ha marcado la
relación (1:N ) como jerárquica, el vínculo del formulario le devolverá al formulario de definición de la relación,
donde puede marcar la relación como jerárquica.
IMPORTANT
Cada entidad sólo puede tener una relación jerárquica a la vez. Si lo cambia a otra relación que hace referencia a sí misma
puede tener consecuencias. Más información: Definir datos jerárquicos

Para el Formulario de vista rápida, creamos un formulario rápido llamado Formulario de ventana de
jerarquía del widget. En este formulario, agregamos cuatro campos para mostrar en cada ventana.

Después de completar la configuración, creamos dos registros: Widget estándar y Widget premium. Después de
marcar el Widget premium como elemento principal del Widget estándar mediante el campo de búsqueda, la vista
de cuadrícula de new_Widget mostró los iconos de la jerarquía, como se indica a continuación:
NOTE
Los iconos de la jerarquía no aparecen en la vista de cuadrícula del registro hasta que los registros se relacionen usando la
relación jerárquica.

Si elige el icono de jerarquía, se mostrará la jerarquía new_Widget , con la vista de árbol a la izquierda y la vista de
ventana a la derecha, mostrando dos registros. Cada ventana contiene cuatro campos que proporcionamos en el
Formulario de ventana de jerarquía del widget.

Según sus necesidades, puede elegir entre una vista de árbol, que muestra la jerarquía completa, o una vista en
mosaico, que representa una parte menor de la jerarquía. Ambas vistas se muestran lado a lado. Puede explorar
una jerarquía expandiendo y contrayendo un árbol de jerarquía.
Vea también
Definir y consultar datos relacionados jerárquicamente
Vídeo: Visualización de la jerarquía
Definir y consultar datos relacionados
jerárquicamente
25/11/2019 • 6 minutes to read • Edit Online

Puede obtener información de negocio valiosa definiendo y consultando datos relacionados jerárquicamente. Las
funciones de visualización y modelado jerárquico tienen varias ventajas:
Vea y explore información jerárquica compleja.
Vea indicadores clave de rendimiento (KPIs) en la vista contextual de una jerarquía.
Analice visualmente información clave en la web y las tabletas.
Algunas entidades estándar ya tienen definidas jerarquías. Otras entidades, incluidas las entidades personalizadas,
pueden habilitarse para una jerarquía y puede crear las visualizaciones para ellas.

Definir datos jerárquicos


Con Common Data Service, las estructuras jerárquicas de datos son compatibles con relaciones de uno a varios
(1:N ) que hacen referencia a sí mismas de registros relacionados.

NOTE
Que hacen referencia a sí mismas significa que la entidad está relacionada consigo misma. Por ejemplo, la entidad Cuenta
tiene un campo de búsqueda para asociarlo al registro de otra entidad Cuenta.

Cuando existe una relación de uno a varios (1:N ) que hace referencia a sí misma, en la definición de la relación,
existe la opción Jerárquica que se puede definir como Sí.

Para consultar los datos como jerarquía, debe habilitar como jerárquica una de las relaciones que hacen referencia
a sí mismas de uno a varios (1: N ) de la entidad. Esto solo se puede hacer usando el explorador de soluciones.
Ir a una solución no administrada
1. En el portal de PowerApps, seleccione Soluciones y, a continuación, en la barra de herramientas, seleccione
Cambiar a clásico.
2. En la lista Todas las soluciones seleccione la solución no administrada que desee.
Para activar la jerarquía:
1. Mientras visualiza relaciones de 1:N, seleccione la relación que hace referencia a sí misma que desee editar.
2. En Definición de relación, establezca Jerárquica en Sí.
NOTE
Algunas de las relaciones (1:N) predefinidas no se pueden personalizar. Esto evitará que configure esas relaciones como
jerárquicas.
Puede especificar una relación jerárquica para las relaciones que hacen referencia a sí mismas del sistema. Esto incluye las
relaciones 1:N que hacen referencia a sí mismas de tipo sistema, como la relación "contact_master_contact".

IMPORTANT
Puede tener varias relaciones que hacen referencia a sí mismas, pero únicamente una relación por entidad se puede definir
como la relación jerárquica. Si intenta cambiar el valor una vez aplicado, recibirá una advertencia:
Al deshabilitar: Si desactiva la configuración de jerarquías para esta relación, todas las definiciones, procesos y vistas
consolidadas que usen esta jerarquía dejarán de funcionar. ¿Desea continuar?
Al habilitar: Si habilita la configuración de jerarquías para esta relación, todas las definiciones consolidadas que usen esta
jerarquía existente dejarán de ser válidas. ¿Desea continuar?
A menos que esté seguro de que no hay otras dependencias en la jerarquía existente, revise cualquier documentación sobre la
implementación o consulte con otros personalizadores para saber cómo se usa la relación jerárquica existente antes de
continuar.

Consultar datos jerárquicos


Sin una jerarquía definida, para recuperar datos jerárquicos deberá consultar de forma iterativa los registros
relacionados. Con una jerarquía definida, podrá consultar los datos relacionados como una jerarquía en un paso.
Puede consultar los registros usando la lógica de Bajo y No menor que. Los operadores jerárquicos Bajo y No
menor que aparecen en Búsqueda avanzada y el editor de flujo de trabajo. Para obtener más información acerca
de cómo utilizar estos operadores, consulte Configurar pasos del flujo de trabajo. Para obtener más información
sobre Búsqueda avanzada, consulte Crear, editar o guardar la búsqueda de Búsqueda avanzada..

NOTE
Los desarrolladores también podrán utilizar estos operadores en código. Más información Documentación para
desarrolladores: Consultar datos jerárquicos

Los siguientes ejemplos muestran escenarios para consultar jerarquías:


Consultar jerarquía de cuenta
Consultar jerarquía de cuenta, incluidas actividades relacionadas

Consultar jerarquía de cuenta, incluidas oportunidades relacionadas


Vea también
Crear y editar relaciones de entidad de 1: N (uno a varios) o N:1 (varios a uno)
Creación y edición de relaciones entre entidades 1:N (uno a varios) o N:1 (varios a uno) con el explorador de
soluciones
Visualizar datos jerárquicos con aplicaciones controladas por modelos
Vídeo: Modelos de seguridad jerárquica
Vídeo: Visualización de la jerarquía
Configurar roles de conexión
25/11/2019 • 11 minutes to read • Edit Online

Con Common Data Service puede definir conexiones entre registros de entidad sin crear una relación de entidad.
En aplicaciones basadas en modelos los usuarios pueden establecer un vínculo con nombre entre registros para
establecer una relación menos formal que no justifique la creación de una relación entre entidades real. Algunos
ejemplos son amigo, hermano, esposo, asistente y parte interesada. Algunas conexiones puede que también sean
recíprocas, como hijo y padre, marido y esposa, o doctor y paciente.
Cuando las personas establezcan una conexión entre dos registros, también pueden agregar una descripción e
información adicional como fechas de inicio y finalización para la relación. Más información: Creación de
conexiones para definir y ver relaciones entre registros.
Cualquiera con acceso de escritura a la entidad Rol de conexión puede establecer qué conexión está disponible
para que las personas la usen.

IMPORTANT
Para que una entidad esté disponible como tipo de registro para un nuevo o existente rol de conexión, la propiedad Habilitar
conexiones debe estar habilitado para la entidad.

Habilitar roles de conexión para una entidad


1. Inicie sesión en PowerApps.
2. Expanda Datosy, a continuación seleccione Entidades.
3. Seleccione la entidad que desee habilitar para roles de conexión y, en la barra de comandos seleccione
Configuración.
4. En el panel Configuración expanda el área Colaboración y, a continuación seleccione Habilitar
conexiones.

5. Seleccione Listo.
Ver roles de conexión
Hay varios roles estándar de conexión ya configurados en Common Data Service. Para verlos debe desplazarse al
área de Configuración.
Navegue al área de Configuración.
1. En una aplicación basada en modelo seleccione Configuración > Configuración avanzada.
2. Navegue a Configuración > Negocio > Administración de empresas y después seleccione Roles de
conexión.

En esta vista puede ver todos los roles de conexión que estén disponibles para este entorno y puede editarlos aquí.

NOTE
Si desea distribuir roles de conexión con una solución, asegúrese de que se incluyen en la solución que desea distribuir. Más
información: Agregue roles de conexión a una solución

Vea roles de conexión en el explorador de soluciones.


Puesto que los roles de conexión son compatibles con las soluciones, significa que se pueden incluir en una
solución, también puede agregar roles de conexión a una solución que distribuye.
Ir a una solución no administrada
1. En el portal de PowerApps, seleccione Soluciones y, a continuación, en la barra de herramientas, seleccione
Cambiar a clásico.
2. En la lista Todas las soluciones seleccione la solución no administrada que desee.
La mayoría de los roles de conexión que puede ver en el área Configuración se definen en la Solución
predeterminada interna (que no debe confundirse con Solución predeterminada de Common Data Service).
La Solución predeterminada interna contiene todas las personalizaciones del sistema. Para ver la Solución
predeterminada elija el vista Todas las soluciones: internas.

Agregar roles de conexión a una solución


Generalmente no es recomendable editar los componentes de la Solución predeterminada interna. En la
Solución predeterminada de Common Data Service o cualquier solución que haya creado para trabajar, puede
usar el comando Agregar existente para llevar los roles de conexión predeterminados a la solución.
Una vez que agrega el rol de conexión a la solución, puede editarlo donde esté visible.

Creación o edición de roles de conexión.


IMPORTANT
Si tiene previsto distribuir una solución que incluya nuevos roles o cambios en roles de conexión existentes debe agregarlos a
la solución que se distribuirá. Al editar o agregar nuevos roles de conexión mediante el área Configuración se agregarán
estos roles de conexión a la Solución predeterminada interna y no se incluirán en la solución que distribuirá a menos que
primero la agregue a la solución. Más información Agregue roles de conexión a una solución

En la lista Roles de conexión, seleccione uno de los roles de conexión para editarlo. Hay tres pasos para definir un
rol de conexión que se indican claramente en el formulario.
Describa el rol de conexión
Establezca los siguientes campos:

CAMPO DESCRIPCIÓN

Nombre (Necesario) Texto que describe la conexión.

Categoría Grupo que describe la categoría de la conexión. Más


información: Valores de categoría de rol de conexión

Descripción Especifique una definición para el rol.

Valores de categoría de rol de conexión


Los valores Categoría predeterminados son:
Empresa
Familia
Social
Sales
Otras
Parte interesada
EQUIPO DE VENTAS
Servicio
Puede agregar nuevas categorías o modificar las existentes editando el conjunto de opciones globales Categoría.
Más información: Creación y edición de conjuntos de opciones globales para Common Data Service (listas
desplegables)
Seleccionar tipos de registro
Seleccione los tipos de registro que deben estar disponibles para conectar.

NOTE
Aunque Todos esté seleccionado de forma predeterminada, asegúrese de considerar los tipos adecuados para el rol de
conexión que va a agregar.

Roles de conexión coincidentes


En este paso opcional, puede definir los roles que se aplicarán de forma recíproca. No es necesario, pero las
conexiones son más significativas si los define.
Por ejemplo, los usuarios pueden establecer que Glen es Amigo de Mary, pero ¿significa esto que Mary es Amiga
de Glen? Esperamos que sí. Pero si Glen es el Padre de Mary no significa que Mary sea el Padre de Glen. El
establecimiento de reciprocidad correcta requiere este paso adicional.
Cuando las personas establecen un rol de conexión que no tiene ningún rol de conexión coincidente, el rol solo se
mostrará al ver la conexión desde el registro al que se aplicó la conexión. Cuando se ve desde el registro conectado,
el rol estará vacío a menos que se establezca un rol coincidente.
Para definiciones de roles como Amigo, Cónyuge, Compañero, Hermano, es mejor asignar el rol coincidente a uno
mismo. Si está configurado un único rol de conexión coincidente, el único rol de conexión coincidente se aplicará en
ambas direcciones.

IMPORTANT
Deberá guardar un nuevo rol de conexión sin este rol de conexión coincidente antes de poder establecer el rol de conexión
coincidente a sí mismo.

Encontrará que algunos roles de conexión ya están configurados con roles de conexión coincidentes. Empleado
anterior coincide con Contratador anterior y viceversa. Este tipo de rol de conexión coincidente uno a uno es el
más común.
Puede configurar múltiples roles de conexión coincidentes para describir complejas relaciones. Si crea un rol de
conexión como Padre, podrá configurar dos roles más como Hija e Hijo y aplicar ambos como roles de conexión
coincidentes a Padre. A su vez, los roles de conexión Hija e Hijo deben asociarse con Padre. Por supuesto, después
debe configurar un rol equivalente para Madre que coincida semejantemente con Hija e Hijo.

TIP
Antes de crear un conjunto complejos de roles de conexión, piense si un conjunto más sencillo de roles es suficiente. Por
ejemplo, en lugar de crear un conjunto complejo de roles de conexión como Padre, Madre, Hijo, e Hija, piense si usar
simplemente Progenitor y Descendiente le servirá.

Si configura más de un rol de conexión coincidente, esos roles de conexión representan los únicos roles recíprocos
válidos. El primero se aplicará automáticamente como valor predeterminado. Si el valor predeterminado no es
correcto, los usuarios deben editar manualmente la conexión y elegir entre opciones válidas definidas en la
configuración.
Vea también
Crear conexiones para definir y ver relaciones entre registros
Crear y editar conjuntos de opciones globales para Common Data Service (listas desplegables)
Crear y editar relaciones entre entidades
Crear relaciones varios a varios entre entidades en
Common Data Service con el portal de PowerApps
25/11/2019 • 3 minutes to read • Edit Online

El portal de PowerApps proporciona una forma de crear y editar relaciones de varios a varios para Common Data
Service.
El portal permite configurar las opciones más comunes, pero algunas opciones solo se pueden configurar usando
el explorador de soluciones. Más información:
Crear relaciones entre entidades N:N (varios a varios)
Crear relaciones entre entidades N:N (varios a varios) en Common Data Service mediante el explorador de
soluciones

Ver relaciones entre entidades de varios a varios


1. En el portal de PowerApps, seleccione el modo de diseño Controlado por modelos o Lienzo.
2. Seleccione Datos > Entidades y seleccione la entidad que tiene las relaciones que desea ver.
3. Con la pestaña Relaciones seleccionada, seleccione las vistas siguientes:

VISTA DESCRIPCIÓN

Todo Muestra todas las relaciones para la entidad

Personalizada Muestra solo relaciones personalizadas para la entidad

Predeterminado Muestra solo relaciones estándar para la entidad

Las relaciones de varios a varios tendrán un Tipo de relación de Varios a varios.

NOTE
La entidad que ve puede no tener ninguna relación de Varios a varios.
Crear relaciones
Mientras ve relaciones entre entidades, en la barra de comandos, seleccione Agregar relación y elija Varios a
varios.

En el panel Varios a varios, elija la entidad que desea relacionar con la entidad actual.

Seleccione Más opciones para ver los campos Nombre de relación y Nombre de entidad de relación.

Los valores de estos campos se generan en función de las entidades elegidas.

NOTE
Si crea más de una relación de Varios a varios con las mismas dos entidades, tendrá que editar los campos Nombre de la
relación y Nombre de entidad de relación generados de modo que sean únicos.

Seleccione Aceptar para cerrar el panel Varios a varios. Se creará la relación al guardar los cambios en la
entidad.
Una vez guardados, no se puede cambiar nada mediante el portal de PowerApps. Para editar las propiedades de
la relación para aplicaciones basadas en modelos, utilice el explorador de soluciones.
Eliminar relaciones
Mientras ve relaciones entre entidades, seleccione la relación que desea eliminar.

Puede usar el comando Eliminar relación de la barra de comandos o del menú del contexto contextual de la fila
al seleccionar los puntos suspensivos (...).
Al eliminar la relación de varios a varios se eliminará la entidad de relación creada. Se perderán a todas las
entidades de conexión de datos que usen la relación.
Vea también
Crear relaciones entre entidades N:N (varios a varios)
Crear relaciones entre entidades N:N (varios a varios) en Common Data Service mediante el explorador de
soluciones
Crear relaciones entre entidades N:N (varios a
varios) en Common Data Service mediante el
explorador de soluciones
25/11/2019 • 6 minutes to read • Edit Online

El explorador de soluciones proporciona una forma de crear y editar relaciones N:N (varios a varios) para
Common Data Service.
El portal de PowerApps permite configurar las opciones más comunes, pero algunas opciones solo se pueden
configurar usando el explorador de soluciones. Más información:
Crear relaciones entre entidades de varios a varios (N:N )
Crear relaciones varios a varios entre entidades en Common Data Service con el portal de PowerApps

Abra el explorador de soluciones


La parte del nombre de cualquier relación personalizada que cree es el prefijo de personalización. Esto se
establece en función del editor de soluciones para la solución en la que trabaja. Si le interesa el prefijo de
personalización, asegúrese de que está trabajando en una solución no administrada donde el prefijo de
personalización es el que desea para esta entidad. Más información: Cambiar el prefijo del editor de soluciones
Ir a una solución no administrada
1. En el portal de PowerApps, seleccione Soluciones y, a continuación, en la barra de herramientas,
seleccione Cambiar a clásico.
2. En la lista Todas las soluciones seleccione la solución no administrada que desee.

Ver relaciones entre entidades


En el explorador de soluciones, expanda Entidades y seleccione una entidad. En esa entidad, seleccione
Relaciones N:N.
Crear relaciones
Mientras ve relaciones entre entidades, seleccione Nueva relación de varios a varios de la barra de
comandos.

NOTE
Si el comando no está disponible, la entidad no es válida para crear una relación personalizada.

En el grupo Otra entidad, en el campo Nombre de entidad, elija la entidad con la que desea crear la relación.
De este modo se rellenarán los campos Nombre y Nombre de entidad de relación en el grupo Definición
de relación.
Puede hacer clic en para guardar la entidad y para continuar editando. Más información: Editar relaciones

NOTE
Si los valores de Nombre o Nombre de entidad de relación ya existen en el sistema se mostrará un error cuando
guarde. Edite los valores de modo que sean únicos y vuelva a intentarlo.

Editar relaciones
Mientras ve relaciones entre entidades, seleccione la entidad que desea editar.

NOTE
El editor de una solución administrada puede evitar personalizaciones de relaciones que forman parte de la solución.

Las siguientes propiedades de relación entre entidades pueden editarse una vez creada la relación.

IMPORTANT
Después de editar estas propiedades debe publicar personalizaciones para que surtan efecto en aplicaciones basadas en
modelos.

Editar opciones de visualización


Para Entidad actual y Otra entidad, puede editar los campos de opción de visualización que controlan cómo
se muestran las entidades relacionadas para las aplicaciones basadas en modelos.

CAMPO DESCRIPCIÓN

Opción de visualización Cómo se debe mostrar la lista de entidades relacionadas.


Más información: Opciones de visualización

Etiqueta personalizada Especifique el texto localizable que se usará en lugar del


nombre plural cuando seleccione Usar etiqueta
personalizada como Opción de visualización.

Área de visualización Seleccione una de las agrupaciones disponibles para mostrar


esta lista. Las opciones disponibles son: Detalles (para el
grupo Común ), Marketing, Ventas y Servicio.

Orden de visualización Controla dónde se incluirá el elemento de navegación en el


área de visualización seleccionada. El intervalo de números
admitidos empieza con 10.000. Los elementos del panel de
navegación con un valor inferior aparecerán encima de otras
relaciones con un valor más alto.

Opciones de visualización
Estas son las opciones de visualización disponibles:

OPCIÓN DESCRIPCIÓN

No mostrar No muestra las entidades relacionadas para esta relación.


OPCIÓN DESCRIPCIÓN

Usar etiqueta personalizada Cuando se selecciona esta opción, se habilita el campo


Etiqueta personalizada para que pueda especificar el texto
localizable que se usará en lugar del nombre plural.

Usar nombre plural Use el nombre plural para mostrar definido para la entidad
relacionada.

Búsqueda
Puede ocultar relación desde Búsqueda avanzada en aplicaciones basadas en modelos estableciendo el
campo Búsqueda como No.

Eliminar relaciones
Mientras ve relaciones entre entidades, seleccione la relación entre entidades que desea eliminar y haga clic en
el comando .
Al eliminar la relación se eliminará la entidad de relación creada. Se perderán a todas las entidades de conexión
de datos que usen la relación.
Vea también
Crear relaciones entre entidades de varios a varios (N:N )
Crear relaciones varios a varios entre entidades en Common Data Service con el portal de PowerApps
Crear y editar relaciones de entidad de 1: N (uno a varios) o N:1 (varios a uno)
Establecer las propiedades administradas de
relaciones
25/11/2019 • 2 minutes to read • Edit Online

Las Propiedades administradas se aplican únicamente al incluir un campo con una solución administrada e
importarla en otra organización. Estos valores permiten al responsable de la solución tener un determinado
control sobre el nivel de personalización que desea permitir a los usuarios que instalen la solución administrada al
personalizar una relación de entidad. Para establecer propiedades administradas para una relación, en el
explorador de soluciones expanda la entidad, abra la relación y, a continuación, seleccione Propiedades
administradas en la barra de menús.
Con las relaciones, la única propiedad administrada es Se puede personalizar. Este valor único controla todos los
cambios que se pueden realizar en la relación entre entidades.

Pasos siguientes
Crear y editar relaciones entre entidades
Consultar y visualizar datos relacionados
jerárquicamente
25/11/2019 • 10 minutes to read • Edit Online

Puede obtener valiosas perspectivas profesionales visualizando los datos relacionados jerárquicamente. Las
funciones de visualización y modelado jerárquico tienen varias ventajas:
Vea y explore información jerárquica compleja.
Vea indicadores clave de rendimiento (KPIs) en la vista contextual de una jerarquía.
Analice visualmente información clave en la web y las tabletas.
Para algunas entidades, como cuenta y usuario, las visualizaciones se suministran predefinidas. Otras entidades,
incluidas las entidades personalizadas, pueden habilitarse para una jerarquía y puede crear las visualizaciones para
ellas. Según sus necesidades, puede elegir entre una vista de árbol, que muestra la jerarquía completa, o una vista
en mosaico, que representa una parte menor de la jerarquía. Ambas vistas se muestran lado a lado. Puede explorar
una jerarquía expandiendo y contrayendo un árbol de jerarquía. Los mismos valores jerárquicos de visualización se
establecen una vez, pero, se aplican a clientes web y móviles. En tabletas, las representaciones visuales se muestran
en un formato modificado conveniente para el factor de forma más pequeño. Los componentes personalizables
necesarios para la visualización jerárquica son compatibles con las soluciones, por consiguiente, se pueden
transportar entre organizaciones como cualquier otra personalización. Puede configurar los atributos que se
muestran en la visualización personalizando un formulario rápido mediante el editor de formularios. No hay
requisito de escribir código.

Consultar datos jerárquicos


Con Common Data Service, las estructuras jerárquicas de datos son compatibles con relaciones que hacen
referencia a sí mismas de registros relacionados. En el pasado, para ver datos jerárquicos era necesario consultar
iterativamente los registros relacionados. Actualmente, puede consultar los datos relacionados como una jerarquía,
en un paso. Podrá consultar los registros de entidad, usando la lógica de Bajo y No menor que. Los operadores
jerárquicos Bajo y No menor que aparecen en Búsqueda avanzada y el editor de flujo de trabajo. Para obtener
más información acerca de cómo utilizar estos operadores, consulte Configurar pasos del flujo de trabajo. Para
obtener más información sobre Búsqueda avanzada, consulte Crear, editar o guardar la búsqueda de Búsqueda
avanzada..
Los siguientes ejemplos muestran los distintos escenarios para consultar jerarquías:
Consultar jerarquía de cuenta
Consultar jerarquía de cuenta, incluidas actividades relacionadas

Consultar jerarquía de cuenta, incluidas oportunidades relacionadas


Para consultar los datos como jerarquía, debe habilitar como jerárquica una de las relaciones que hacen referencia
a sí mismas de uno a varios o de varios a uno de la entidad. Para activar la jerarquía:
1. En powerapps.com, expanda la sección Datos y haga clic o pulse en Entidades en el panel de navegación
de la izquierda.
2. Haga clic o pulse en una entidad existente o Cree una nueva entidad
3. Haga clic en Relaciones.
4. Seleccione una relación que hace referencia a sí misma.
5. En el panel de detalles de la relación, marque Jerárquico.

NOTE
Algunas de las relaciones predefinidas no se pueden personalizar. Esto evitará que configure esas relaciones como
jerárquicas.
Puede especificar una relación jerárquica para las relaciones que hacen referencia a sí mismas del sistema. Esto incluye las
relaciones que hacen referencia a sí mismas de tipo sistema, como la relación "contact_master_contact".

Visualice datos jerárquicos


Las entidades del sistema que tienen visualizaciones disponibles predefinidas son: Account , Position , Product y
User . En la vista de cuadrícula de estas entidades, puede ver el icono que muestra el gráfico de jerarquía a la
izquierda del nombre del registro. El icono de jerarquía no está presente para todos los registros de forma
predeterminada. El icono se muestra para los registros que tienen un registro primario, un registro secundario o
ambos.
Si selecciona el icono de jerarquía, puede ver la jerarquía, con la vista de árbol a la izquierda y la vista de mosaico a
la derecha, como se indica a continuación:

Algunas otras entidades del sistema predefinidas se pueden habilitar para una jerarquía. Estas entidades incluyen
Case , Contact , Opportunity , Order , Quote , Campaign , y Team . Todas las entidades personalizadas pueden
habilitarse para una jerarquía.

TIP
Si una entidad pueden habilitarse para una jerarquía:
En el explorador de soluciones, expanda la entidad que desee. Verá el componente de la entidad denominado Configuración
de jerarquía. Las entidades que no se pueden habilitar para una jerarquía no tienen este componente, con la excepción de la
entidad Zona de ventas de Dynamics 365. Aunque Configuración de la jerarquía se muestra para la entidad Zona de
ventas, la entidad no se puede habilitar para una jerarquía.

Cosas más importantes para recordar al crear visualizaciones:


Solo se pueden configurar como jerárquica una relación que hace referencia a sí misma (1: N ) por entidad.
En esta relación la entidad principal y la entidad relacionada deben ser del mismo tipo, por ejemplo,
account_parent_account o Widget_new_Widget_new_Widget.
Actualmente, una jerarquía o una visualización se basa en una entidad solo. Puede describir la jerarquía de
cuenta mostrando cuentas en varios niveles, pero no puede mostrar cuentas y contactos en la misma
visualización de la jerarquía.
El número máximo de campos que se pueden mostrar en un mosaico es cuatro. Si desea agregar más
campos al formulario rápido que se usa para la vista de mosaico, sólo los primeros cuatro campos se
mostrarán.
Ejemplo de visualización
Miremos un ejemplo de crear la visualización para una entidad personalizada. Hemos creado una entidad
personalizada llamada new_Widget, hemos creado una relación que hace referencia a sí misma y marcado como
jerárquica, como se indica aquí.

A continuación, en la vista de cuadrícula Configuración de la jerarquía seleccionamos la relación jerárquica


Widget_new_Widget_new_Widget. En el formulario, completamos los atributos requeridos. Si aún no ha
marcado la relación como jerárquica, el vínculo del formulario le devolverá al editor de entidades clásico, donde
también puede marcar la relación como jerárquica.
Para el Formulario de vista rápida, creamos un formulario rápido llamado Formulario de ventana de
jerarquía del widget. En este formulario, agregamos cuatro campos para mostrar en cada ventana.
Después de completar la configuración, creamos dos registros: Widget estándar y Widget premium. Después de
convertir el Widget premium en un elemento principal del Widget estándar mediante el campo de búsqueda, la
vista de cuadrícula de new_Widget mostró los iconos de la jerarquía, como se indica a continuación:

TIP
Los iconos de la jerarquía no aparecen en la vista de cuadrícula del registro hasta que los registros se emparejen en el
elemento principal - relación secundaria.

Si elige el icono de jerarquía, se mostrará la jerarquía new_Widget, con la vista de árbol a la izquierda y la vista de
mosaico a la derecha, mostrando dos registros. Cada ventana contiene cuatro campos que proporcionamos en el
Formulario de ventana de jerarquía del widget.
Vea también
Vídeo: Modelos de seguridad jerárquica
Vídeo: Visualización de la jerarquía
Definir y consultar datos relacionados
jerárquicamente
25/11/2019 • 6 minutes to read • Edit Online

Puede obtener información de negocio valiosa definiendo y consultando datos relacionados jerárquicamente. Las
funciones de visualización y modelado jerárquico tienen varias ventajas:
Vea y explore información jerárquica compleja.
Vea indicadores clave de rendimiento (KPIs) en la vista contextual de una jerarquía.
Analice visualmente información clave en la web y las tabletas.
Algunas entidades estándar ya tienen definidas jerarquías. Otras entidades, incluidas las entidades
personalizadas, pueden habilitarse para una jerarquía y puede crear las visualizaciones para ellas.

Definir datos jerárquicos


Con Common Data Service, las estructuras jerárquicas de datos son compatibles con relaciones de uno a varios
(1:N ) que hacen referencia a sí mismas de registros relacionados.

NOTE
Que hacen referencia a sí mismas significa que la entidad está relacionada consigo misma. Por ejemplo, la entidad Cuenta
tiene un campo de búsqueda para asociarlo al registro de otra entidad Cuenta.

Cuando existe una relación de uno a varios (1:N ) que hace referencia a sí misma, en la definición de la relación,
existe la opción Jerárquica que se puede definir como Sí.

Para consultar los datos como jerarquía, debe habilitar como jerárquica una de las relaciones que hacen
referencia a sí mismas de uno a varios (1: N ) de la entidad. Esto solo se puede hacer usando el explorador de
soluciones.
Ir a una solución no administrada
1. En el portal de PowerApps, seleccione Soluciones y, a continuación, en la barra de herramientas,
seleccione Cambiar a clásico.
2. En la lista Todas las soluciones seleccione la solución no administrada que desee.
Para activar la jerarquía:
1. Mientras visualiza relaciones de 1:N, seleccione la relación que hace referencia a sí misma que desee editar.
2. En Definición de relación, establezca Jerárquica en Sí.
NOTE
Algunas de las relaciones (1:N) predefinidas no se pueden personalizar. Esto evitará que configure esas relaciones como
jerárquicas.
Puede especificar una relación jerárquica para las relaciones que hacen referencia a sí mismas del sistema. Esto incluye
las relaciones 1:N que hacen referencia a sí mismas de tipo sistema, como la relación "contact_master_contact".

IMPORTANT
Puede tener varias relaciones que hacen referencia a sí mismas, pero únicamente una relación por entidad se puede definir
como la relación jerárquica. Si intenta cambiar el valor una vez aplicado, recibirá una advertencia:
Al deshabilitar: Si desactiva la configuración de jerarquías para esta relación, todas las definiciones, procesos y vistas
consolidadas que usen esta jerarquía dejarán de funcionar. ¿Desea continuar?
Al habilitar: Si habilita la configuración de jerarquías para esta relación, todas las definiciones consolidadas que usen
esta jerarquía existente dejarán de ser válidas. ¿Desea continuar?
A menos que esté seguro de que no hay otras dependencias en la jerarquía existente, revise cualquier documentación
sobre la implementación o consulte con otros personalizadores para saber cómo se usa la relación jerárquica existente
antes de continuar.

Consultar datos jerárquicos


Sin una jerarquía definida, para recuperar datos jerárquicos deberá consultar de forma iterativa los registros
relacionados. Con una jerarquía definida, podrá consultar los datos relacionados como una jerarquía en un paso.
Puede consultar los registros usando la lógica de Bajo y No menor que. Los operadores jerárquicos Bajo y No
menor que aparecen en Búsqueda avanzada y el editor de flujo de trabajo. Para obtener más información acerca
de cómo utilizar estos operadores, consulte Configurar pasos del flujo de trabajo. Para obtener más información
sobre Búsqueda avanzada, consulte Crear, editar o guardar la búsqueda de Búsqueda avanzada..

NOTE
Los desarrolladores también podrán utilizar estos operadores en código. Más información Documentación para
desarrolladores: Consultar datos jerárquicos

Los siguientes ejemplos muestran escenarios para consultar jerarquías:


Consultar jerarquía de cuenta
Consultar jerarquía de cuenta, incluidas actividades relacionadas

Consultar jerarquía de cuenta, incluidas oportunidades relacionadas


Vea también
Crear y editar relaciones de entidad de 1: N (uno a varios) o N:1 (varios a uno)
Creación y edición de relaciones entre entidades 1:N (uno a varios) o N:1 (varios a uno) con el explorador de
soluciones
Visualizar datos jerárquicos con aplicaciones controladas por modelos
Vídeo: Modelos de seguridad jerárquica
Vídeo: Visualización de la jerarquía
Configurar roles de conexión
25/11/2019 • 11 minutes to read • Edit Online

Con Common Data Service puede definir conexiones entre registros de entidad sin crear una relación de
entidad. En aplicaciones basadas en modelos los usuarios pueden establecer un vínculo con nombre entre
registros para establecer una relación menos formal que no justifique la creación de una relación entre entidades
real. Algunos ejemplos son amigo, hermano, esposo, asistente y parte interesada. Algunas conexiones puede que
también sean recíprocas, como hijo y padre, marido y esposa, o doctor y paciente.
Cuando las personas establezcan una conexión entre dos registros, también pueden agregar una descripción e
información adicional como fechas de inicio y finalización para la relación. Más información: Creación de
conexiones para definir y ver relaciones entre registros.
Cualquiera con acceso de escritura a la entidad Rol de conexión puede establecer qué conexión está disponible
para que las personas la usen.

IMPORTANT
Para que una entidad esté disponible como tipo de registro para un nuevo o existente rol de conexión, la propiedad
Habilitar conexiones debe estar habilitado para la entidad.

Habilitar roles de conexión para una entidad


1. Inicie sesión en PowerApps.
2. Expanda Datosy, a continuación seleccione Entidades.
3. Seleccione la entidad que desee habilitar para roles de conexión y, en la barra de comandos seleccione
Configuración.
4. En el panel Configuración expanda el área Colaboración y, a continuación seleccione Habilitar
conexiones.

5. Seleccione Listo.
Ver roles de conexión
Hay varios roles estándar de conexión ya configurados en Common Data Service. Para verlos debe desplazarse al
área de Configuración.
Navegue al área de Configuración.
1. En una aplicación basada en modelo seleccione Configuración > Configuración avanzada.
2. Navegue a Configuración > Negocio > Administración de empresas y después seleccione Roles de
conexión.

En esta vista puede ver todos los roles de conexión que estén disponibles para este entorno y puede editarlos aquí.

NOTE
Si desea distribuir roles de conexión con una solución, asegúrese de que se incluyen en la solución que desea distribuir. Más
información: Agregue roles de conexión a una solución

Vea roles de conexión en el explorador de soluciones.


Puesto que los roles de conexión son compatibles con las soluciones, significa que se pueden incluir en una
solución, también puede agregar roles de conexión a una solución que distribuye.
Ir a una solución no administrada
1. En el portal de PowerApps, seleccione Soluciones y, a continuación, en la barra de herramientas,
seleccione Cambiar a clásico.
2. En la lista Todas las soluciones seleccione la solución no administrada que desee.
La mayoría de los roles de conexión que puede ver en el área Configuración se definen en la Solución
predeterminada interna (que no debe confundirse con Solución predeterminada de Common Data
Service). La Solución predeterminada interna contiene todas las personalizaciones del sistema. Para ver la
Solución predeterminada elija el vista Todas las soluciones: internas.

Agregar roles de conexión a una solución


Generalmente no es recomendable editar los componentes de la Solución predeterminada interna. En la
Solución predeterminada de Common Data Service o cualquier solución que haya creado para trabajar,
puede usar el comando Agregar existente para llevar los roles de conexión predeterminados a la solución.
Una vez que agrega el rol de conexión a la solución, puede editarlo donde esté visible.

Creación o edición de roles de conexión.


IMPORTANT
Si tiene previsto distribuir una solución que incluya nuevos roles o cambios en roles de conexión existentes debe agregarlos
a la solución que se distribuirá. Al editar o agregar nuevos roles de conexión mediante el área Configuración se agregarán
estos roles de conexión a la Solución predeterminada interna y no se incluirán en la solución que distribuirá a menos que
primero la agregue a la solución. Más información Agregue roles de conexión a una solución

En la lista Roles de conexión, seleccione uno de los roles de conexión para editarlo. Hay tres pasos para definir
un rol de conexión que se indican claramente en el formulario.
Describa el rol de conexión
Establezca los siguientes campos:

CAMPO DESCRIPCIÓN

Nombre (Necesario) Texto que describe la conexión.

Categoría Grupo que describe la categoría de la conexión. Más


información: Valores de categoría de rol de conexión

Descripción Especifique una definición para el rol.

Valores de categoría de rol de conexión


Los valores Categoría predeterminados son:
Empresa
Familia
Social
Sales
Otras
Parte interesada
EQUIPO DE VENTAS
Servicio
Puede agregar nuevas categorías o modificar las existentes editando el conjunto de opciones globales Categoría.
Más información: Creación y edición de conjuntos de opciones globales para Common Data Service (listas
desplegables)
Seleccionar tipos de registro
Seleccione los tipos de registro que deben estar disponibles para conectar.

NOTE
Aunque Todos esté seleccionado de forma predeterminada, asegúrese de considerar los tipos adecuados para el rol de
conexión que va a agregar.

Roles de conexión coincidentes


En este paso opcional, puede definir los roles que se aplicarán de forma recíproca. No es necesario, pero las
conexiones son más significativas si los define.
Por ejemplo, los usuarios pueden establecer que Glen es Amigo de Mary, pero ¿significa esto que Mary es Amiga
de Glen? Esperamos que sí. Pero si Glen es el Padre de Mary no significa que Mary sea el Padre de Glen. El
establecimiento de reciprocidad correcta requiere este paso adicional.
Cuando las personas establecen un rol de conexión que no tiene ningún rol de conexión coincidente, el rol solo se
mostrará al ver la conexión desde el registro al que se aplicó la conexión. Cuando se ve desde el registro
conectado, el rol estará vacío a menos que se establezca un rol coincidente.
Para definiciones de roles como Amigo, Cónyuge, Compañero, Hermano, es mejor asignar el rol coincidente a
uno mismo. Si está configurado un único rol de conexión coincidente, el único rol de conexión coincidente se
aplicará en ambas direcciones.

IMPORTANT
Deberá guardar un nuevo rol de conexión sin este rol de conexión coincidente antes de poder establecer el rol de conexión
coincidente a sí mismo.

Encontrará que algunos roles de conexión ya están configurados con roles de conexión coincidentes. Empleado
anterior coincide con Contratador anterior y viceversa. Este tipo de rol de conexión coincidente uno a uno es el
más común.
Puede configurar múltiples roles de conexión coincidentes para describir complejas relaciones. Si crea un rol de
conexión como Padre, podrá configurar dos roles más como Hija e Hijo y aplicar ambos como roles de conexión
coincidentes a Padre. A su vez, los roles de conexión Hija e Hijo deben asociarse con Padre. Por supuesto, después
debe configurar un rol equivalente para Madre que coincida semejantemente con Hija e Hijo.

TIP
Antes de crear un conjunto complejos de roles de conexión, piense si un conjunto más sencillo de roles es suficiente. Por
ejemplo, en lugar de crear un conjunto complejo de roles de conexión como Padre, Madre, Hijo, e Hija, piense si usar
simplemente Progenitor y Descendiente le servirá.

Si configura más de un rol de conexión coincidente, esos roles de conexión representan los únicos roles recíprocos
válidos. El primero se aplicará automáticamente como valor predeterminado. Si el valor predeterminado no es
correcto, los usuarios deben editar manualmente la conexión y elegir entre opciones válidas definidas en la
configuración.
Vea también
Crear conexiones para definir y ver relaciones entre registros
Crear y editar conjuntos de opciones globales para Common Data Service (listas desplegables)
Crear y editar relaciones entre entidades
Información general de campos
25/11/2019 • 2 minutes to read • Edit Online

Los campos definen los elementos de datos individuales que se pueden usar para almacenar información en una
entidad. Cree nuevos campos para capturar datos cuando las entidades estándar existentes no tengan campos que
cumplan sus requisitos. Después de crear un nuevo campo, asegúrese de incluirlo en los formularios y vistas
apropiados de la entidad, de modo que estén disponibles en su aplicación.

Vea también
Tipos de campos
Tipos de campos
25/11/2019 • 23 minutes to read • Edit Online

Los nombres usados para los tipos dependen del diseñador usado. El portal de PowerApps usa una convención
que incluye la forma en que están formateados los datos. El tipo de explorador de soluciones usa un nombre
alineado con el tipo de datos de la base de datos con un modificador de formato. La tabla siguiente incluye el tipo
de API AttributeTypeDisplayName correspondiente.

TIPO DE DATOS DEL PORTAL TIPO DE EXPLORADOR DE SOLUCIONES TIPO DE API

Entero grande Marca de tiempo BigIntType

Divisa Divisa MoneyType

Cliente Cliente CustomerType

Fecha y hora Fecha y hora DateTimeType


Formato de fecha y hora

Solo fecha Fecha y hora DateTimeType


Formato de Solo fecha

Número decimal Número decimal DecimalType

Duración Número entero IntegerType


Formato deDuración

Correo electrónico Línea de texto única StringType


Formato de Correo electrónico

Archivo Archivo FileType

Número de punto flotante Número de punto flotante DoubleType

Imagen Imagen ImageType

Idioma Número entero IntegerType


Formato de Idioma

Búsqueda Búsqueda LookupType

Conjunto de opciones de selección Conjunto de opciones MultiSelectPicklistType


múltiple multiselección

Texto multilínea Varias líneas de texto MemoType

Conjunto de opciones Conjunto de opciones PicklistType

Propietario Propietario OwnerType


TIPO DE DATOS DEL PORTAL TIPO DE EXPLORADOR DE SOLUCIONES TIPO DE API

Teléfono Línea de texto única StringType


Formato deTeléfono

Razón para el estado Razón para el estado StatusType

Estado Estado StateType

Área de texto Línea de texto única StringType


Formato de Área de texto

Texto Línea de texto única StringType


Formato deTexto

Símbolo del valor Línea de texto única StringType


Formato de Símbolo del valor

Zona horaria Número entero IntegerType


Formato de Zona horaria

Dos opciones Dos opciones BooleanType

Identificador único Identificador único o Clave principal UniqueidentifierType

Dirección URL Línea de texto única StringType


Formato de URL

Número entero Número entero IntegerType


Formato de Ninguno

Para obtener más descripciones para cada tipo que puede agregar o editar, consulte el tema sobre el diseñador
correspondiente:
Crear y editar campos para Common Data Service mediante el portal de PowerApps: Tipos de datos de campo
Crear y editar campos para Common Data Service mediante el explorador de soluciones de PowerApps: Tipos
de datos de campo
Para obtener más información acerca de cómo se definen los tipos de datos de campos en la API, consulte
Metadatos de atributos

Tipos de campos que se usan en el sistema


Existen algunos campos usados por el sistema que no es posible agregar mediante el diseñador.

ESCRIBA DESCRIPCIÓN

Entero grande o Marca de tiempo Usado por el sistema para capturar un número de versión
para administrar las actualizaciones en una entidad.

Cliente Un campo de búsqueda que puede usar para especificar un


cliente, que puede ser una cuenta o un contacto.
Nota: este atributo se puede agregar con el diseñador del
explorador de soluciones.
ESCRIBA DESCRIPCIÓN

Propietario Un campo de búsqueda del sistema que hace referencia al


usuario o al equipo que tiene asignado un registro de entidad
propiedad de un usuario o equipo.

Razón para el estado Un campo del sistema que tiene opciones que proporcionan
información adicional sobre el campo Estado. Cada opción
está asociada con una de las opciones de Estado disponibles.
Puede agregar y editar las opciones.

También puede incluir transiciones de estado personalizadas


para controlar qué las opciones de estado están disponibles
para determinadas entidades. Más información: Definir las
transiciones de razón para el estado para entidades
personalizadas

Estado Un campo del sistema que tiene opciones que corresponden


normalmente a los estados activo e inactivo. Algunos
atributos del sistema tienen opciones adicionales, pero todos
los atributos personalizados solo tienen las opciones de
estado Activo e Inactivo.

Identificador único Un campo del sistema almacena un identificador único global


(GUID) para cada registro.

Conjunto de opciones multiselección


Puede personalizar formularios (principal, creación rápida y vista rápida) así como plantillas de correo electrónico
agregando campos de selección múltiple. Cuando agrega un campo de conjunto de opciones de selección
múltiple, puede especificar múltiples valores que los usuarios pueden seleccionar. Cuando los usuarios rellenan el
formulario pueden seleccionar uno, varios o todos los valores mostrados en una lista desplegable.
Por ejemplo, si una organización opera en varias áreas o países, puede incluir varias ubicaciones o países en un
campo 'Área de operación'. Un usuario puede seleccionar entonces una ubicación o varias en la lista de valores
disponibles.
El conjunto de opción de selección múltiple solo está disponible en formularios, cuadrículas editables y
formularios. El conjunto de opciones de selección múltiple no es compatible en:
Flujos de trabajo, acciones, cuadros de diálogo, resúmenes, gráficos y campos calculados.
Informes, SLA y regla de enrutamiento.
Los campos de selección múltiple están permitidos en los siguientes tipos de formularios:

TIPO DE FORMULARIO DISPONIBILIDAD

Formulario turbo Sí

Formulario actualización Solo lectura (el campo estará disponible, pero no se puede
editar)

Formulario heredado No

Formulario de edición masiva No

Puede usar los conjuntos de opciones globales definidos en su organización para configurar los valores para los
conjuntos de opciones de selección múltiple.

Usar el tipo de número correcto


Al elegir el tipo correcto de campo de número que se va a usar, la opción para usar el tipo Número entero o
Divisa debe ser suficientemente directa. La decisión entre usar números de Punto flotante o Decimal requiere
más premeditación.
Los números decimales se almacenan en la base de datos exactamente como están especificados. Los números de
punto flotante almacenan una aproximación extremadamente parecida al valor. ¿Por qué elige la aproximación
extremadamente parecida cuándo puede tener el valor exacto? La respuesta es que se obtiene un rendimiento
diferente del sistema.
Use decimales si necesita proporcionar informes que requieren cálculos muy precisos, o si suele usar consultas
que buscan valores iguales o distintos a otro valor.
Use los números de punto flotante cuando almacene datos que representen fracciones o valores que
normalmente consultaría para compararlos con otro valor utilizando operadores mayor que o menor que. En la
mayoría de los casos, la diferencia entre los tipos decimal y flotante es imperceptible. A menos que necesite
realizar cálculos los más precisos posible, los números de punto flotante son una opción adecuada para usted.

Usar campos de divisa


Los campos de divisa permiten a una organización configurar varias divisas que puedan usarse para registros de
la organización. Cuando las organizaciones tienen varias divisas, suelen desear poder realizar cálculos para
proporcionar valores usando la divisa base. Cuando se agrega un campo de divisa a una entidad que no tiene
ningún otro campo de divisa, se agregan dos campos adicionales:
Un campo de búsqueda llamado Divisa que puede establecer en cualquier divisa activa configurada para
su organización. Puede configurar varias divisas activas para su organización en Configuración >
Administración de empresas > Divisas. Aquí puede especificar la divisa y un tipo de cambio con
respecto a la divisa base establecida para su organización. Si tiene varias divisas activas, puede agregar el
campo de divisa al formulario y permitir a los usuarios especificar qué divisa debería aplicarse a los valores
monetarios del registro. Esto cambiará el símbolo de moneda que aparece para los campos de divisa en el
formulario.
Los individuos también pueden cambiar sus opciones personales para seleccionar una divisa
predeterminada para los registros que crean.
Un campo decimal llamado Tipo de cambio que proporciona el tipo de cambio para una divisa
seleccionada asociada a la entidad en cuanto a la divisa base. Si este campo se agrega al formulario, los
usuarios pueden ver el valor, pero no pueden modificarlo. El tipo de cambio se almacena con la divisa.
Para cada campo de divisa que agregue, se agrega otro campo de divisa con el prefijo _Base en el nombre. Este
campo almacena el cálculo del valor del campo de divisa que ha agregado y la divisa base. Una vez más, si este
campo se agrega al formulario, no se puede editar.
Cuando se configura un campo de divisa puede elegir el valor de precisión. Existen tres opciones, como se
muestra en la siguiente tabla.

OPCIÓN DESCRIPCIÓN

Precisión de precios decimal Se trata de una sola precisión de la organización que se usará
para los precios que se encuentran en Configuración >
Administración > Configuración del sistema > Pestaña
General.
OPCIÓN DESCRIPCIÓN

Precisión de la divisa Esta opción aplica la precisión definida para la divisa del
registro.

Valores de precisión específica Estos valores permiten definir una precisión específica usando
valores entre 0 y 4.

Diferentes tipos de búsquedas


Cuando crea un nuevo campo de búsqueda se crea una nueva relación de entidad de varios a uno (N:1) entre la
entidad en la que está trabajando y el Tipo de registro de destino definido para la búsqueda. Hay opciones de
configuración adicionales para esta relación que se describen en Crear y editar relaciones entre entidades. Pero
todas las búsquedas personalizadas pueden permitir solo una referencia a un registro único para un único tipo de
registro de destino.
Sin embargo, debe conocer que no todas las búsquedas se comportan de esta forma. Existen varios tipos
diferentes de búsquedas del sistema como se indica a continuación.

TIPO DE BÚSQUEDA DESCRIPCIÓN

Básico Permite una única referencia a una entidad específica. Todas


las búsquedas personalizadas son de este tipo.

Cliente Permite una única referencia a una cuenta o un registro de


contacto.

Propietario Permite una única referencia a un equipo o un registro de


usuario. Todas las entidades propiedad del equipo el usuario
presentan una de estas opciones. Más información: Agregar la
entidad de equipo como opción de búsqueda en la aplicación

Lista de partes Permite asignar varias referencias a varias entidades. Estas


búsquedas se encuentran en los campos Para y CC de la
entidad Correo electrónico. También se usan en las entidades
Teléfono y Cita.

Referente a Permite asignar una sola referencia a varias entidades. Estas


búsquedas se encuentran en el campo referente usado en las
actividades.

Campos de imagen
Use los campos de imagen para presentar una sola imagen por cada registro de la aplicación. Cada entidad puede
tener un campo de imagen. Puede agregar un campo de imagen a entidades personalizadas pero no a entidades
estándar. Algunas entidades estándar tienen campos de imágenes definidos.
Aunque una entidad tenga un campo de imagen, la visualización de dicha imagen en una aplicación controlada
por modelos requiere que habilite dos ajustes.
El valor de propiedad Imagen principal de la definición de entidad estándar se debe establecer como
Imagen predeterminada. Las entidades personalizadas requieren un campo de imagen personalizado. A
continuación, puede seleccionar ese campo de imagen para el valor Imagen principal en la definición de
entidad personalizada.
El formulario de entidad donde se debe mostrar la imagen debe tener la propiedad Mostrar la imagen en el
formulario habilitada.
Cuando se habilita la visualización de la imagen para una entidad, cualquier registro que no tenga una imagen
mostrará una imagen de marcador de posición. Por ejemplo:

Los usuarios pueden elegir la imagen predeterminada para cargar una imagen desde su equipo. Las imágenes
deben ser de tamaño inferior a 10 MB y deben tener uno de los siguientes formatos:
jpg
jpeg
gif
tif
tiff
bmp
png
Cuando la imagen se cargue, se convertirá al formato .jpg y todas las imágenes descargadas también usarán este
formato. Si se carga un archivo .gif animado, solo se guardará el primer fotograma.
Cuando se cargue una imagen, su tamaño se modificará como imagen en "miniaturaa" hasta una tamaño máximo
de 144 píxeles por 144 píxeles. Los usuarios deben cambiar el tamaño de las imágenes o recortarlas antes de
cargarlas, de modo que se muestren correctamente con este tamaño. Todas las imágenes se recortan para ser
cuadradas. Si ambos lados de una imagen son más pequeños que 144 píxeles, la imagen se recortará para que
sea cuadrada con las dimensiones del más pequeño.
Agregar compatibilidad de imagen para un formulario en una entidad personalizada usando el explorador de
soluciones
1. Abra el explorador de soluciones.
2. En el panel de navegación izquierda, expanda Entidades, expanda la entidad personalizada que desee y
luego seleccione Campos.
3. En la barra de herramientas, seleccione Nuevo.
4. En la sección Tipo en la lista desplegable Tipo de datos seleccione Imagen.
5. Escriba un Nombre para mostrar, como Imagen de entidad personalizada.
6. Complete los campos restantes como corresponda. Tenga en cuenta que los campos Nombre, Requisitos
de campo y Búsqueda no podrán cambiarse. Seleccione Guardar y cerrar.
7. En la definición de entidad junto a la propiedad Imagen principal asegúrese de que el valor se ha
configurado como la imagen personalizada que creó en el paso anterior. Si no es así, selecciónela.

8. Abra el formulario donde desea compatibilidad de imagen, como el formulario principal de entidad.
9. En la cinta de opciones del editor de formularios, seleccione Propiedades del formulario.
10. En la página Propiedades de formulario, seleccione la pestaña Mostrar, seleccione Mostrar imagen en
el formulario y, a continuación seleccione Aceptar.
11. En la cinta de opciones del editor de formularios, seleccione Guardar y, después, seleccione Publicar.
Cierre el editor de formularios.
Los usuarios de la aplicación ahora pueden seleccionar la imagen para mostrar en el formulario. Cuando un
usuario abre el formulario para un registro, puede elegir la imagen que desea mostrar en el formulario.

IMPORTANT
Si el registro es un nuevo registro que no se ha guardado, el error Argumento no válido se devuelve al intentar cambiar la
imagen.

Cambiar la imagen para un registro


Una vez que un formulario de entidad tiene un campo de imagen, los usuarios de la aplicación pueden cambiar la
imagen para un registro determinado.
1. Abra la aplicación que incluye el formulario de entidad y luego seleccione la imagen en el formulario.
2. Seleccione Cargar imagen, examine y seleccione la imagen que desea mostrar en el formulario de entidad
y, a continuación seleccione Cambiar. La imagen aparecerá en el registro.

Más información para desarrolladores que trabajan con datos de imágenes:


Metadatos de entidad > Imágenes de entidad
Atributos de imagen

Campos del archivo


[Este tema es documentación preliminar y está sujeto a modificaciones.]
Actualmente, el tipo de datos de archivo sólo está disponible para aplicaciones de lienzo y flujos.
El campo Archivo sirve para almacenar datos binarios. El uso principal previsto de este campo es almacenar una
sola imagen, nota, o datos adjuntos. Sin embargo, el almacenamiento de otras formas de datos binarios es
también posible. Uno o varios campos de este tipo de datos se pueden agregar a una entidad personalizable
estándar existente o una entidad personalizada.
El Tamaño máximo de archivo predeterminado es 32 MB y el tamaño mayor que puede establecer es 128 MB.
El límite de tamaño de archivo puede establecerse de forma individual para cada campo del tipo de archivo
agregado a una entidad.
Más información para desarrolladores que trabajan con datos de archivo: Atributos de archivo
Información general para crear y editar conjuntos
de opciones globales
25/11/2019 • 4 minutes to read • Edit Online

Un conjunto de opciones (lista desplegable) es un tipo de campo que se puede incluir en una entidad. Define un
conjunto de opciones. Cuando un conjunto de opciones se muestra en un formulario usa un control de lista
desplegable. Cuando se muestra en Búsqueda avanzada, se usa un control de lista desplegable. A veces, los
desarrolladores llaman a los conjuntos de opciones listas desplegables.
Puede definir un conjunto de opciones para usar un conjunto de opciones definido en sí mismo (localmente) o
puede usar un conjunto de opciones definido en otra parte (globalmente) que se pueda usar en otros campos
del conjunto de opciones.
Los conjuntos de opciones globales son útiles cuando existe un conjunto estándar de categorías que se pueden
aplicar a más de un campo. Mantener dos conjuntos de opciones independientes con los mismos valores es
difícil y si no se sincronizan pueden aparecer errores, especialmente si está asignando campos de la entidad con
una relación de entidad de uno a varios. Más información: Asignación de campos de entidad

NOTE
Si define cada conjunto de opciones como conjunto de opciones global, la lista de conjuntos de opciones globales crecerá y
puede resultar difícil de administrar. Si sabe que el conjunto de opciones solo se usará en un lugar, use un conjunto de
opciones local.

Hay dos diseñadores que puede usar para crear o editar conjuntos de opciones globales:

DISEÑADOR DESCRIPCIÓN

Portal PowerApps Proporciona una experiencia fácil y ágil, pero algunos valores
especiales no están disponibles.
Más información: Crear un conjunto de opciones

Explorador de soluciones No es tan fácil, pero proporciona más flexibilidad para


requisitos menos comunes.
Más información: Creación y edición de conjuntos de
opciones globales para Common Data Service utilizando el
explorador de soluciones

NOTE
También puede crear conjuntos de opciones globales en su entorno mediante lo siguiente:
Importe una solución que contenga la definición de los conjuntos de opciones globales.
Un desarrollador puede escribir un programa para crearlas.
Más información: Documentación de desarrollador: Personalizar conjuntos de opciones globales.

La información de este tema le ayudará a elegir el diseñador que puede usar.


Debe usar el portal de PowerApps para trabajar con conjuntos de opciones globales a menos que necesite
satisfacer cualquiera de los siguientes requisitos:
Asignar colores a opciones
Cambiar el orden de las opciones
Creación de un conjunto de opciones global en una solución distinta de la solución predeterminada de
Common Data Service
Establecer propiedades administradas
Establezca propiedades usadas para entidades virtuales
Ver dependencias

Vea también
Crear un conjunto de opciones
Creación y edición de conjuntos de opciones globales para Common Data Service utilizando el explorador de
soluciones
Documentación para desarrolladores: Personalizar conjuntos de opciones globales
Campos de numeración automática
25/11/2019 • 6 minutes to read • Edit Online

Los campos de numeración automática son campos que generan automáticamente cadenas alfanuméricas cuando
se crean. Los fabricantes pueden personalizar el formato de estos campos según sus preferencias y, a continuación
dejar que el sistema genere valores coincidentes que los completan automáticamente en tiempo de ejecución.
Si bien los campos de numeración automática son formalmente solo campos de texto con funcionalidad adicional
agregada sobre ellos, PowerApps simplifica este concepto exponiendo simplemente Numeración automática
como tipo de datos distinto en la categoría Texto. Cabe dejar constancia de que el explorador de soluciones clásico
no admite la creación o administración de campos de numeración automática.
Para crear un campo de numeración automática, siga los mismos pasos para crear un campo y simplemente
seleccione Numeración automática en el cuadro de lista desplegable Tipo de datos.
También puede activar funcionalidad de numeración automática en un campo de texto existente abriendo el campo
y seleccionando Numeración automática del cuadro de lista desplegable Tipo de datos. De forma similar, la
funcionalidad de numeración automática también puede ser deshabilitada en cualquier momento abriendo el
campo y seleccionando otra opción en el cuadro de lista desplegable Tipo de datos.

NOTE
Los valores de numeración automaica son preseleccionados por la base de datos al iniciar el registro. Si se inicia un registro
pero se cancela, el número que se asignó no se usa. Si, durante este tiempo, otro registro se completa con el número
secuencial siguiente, los huecos estarán presentes en la numeración automática de registros.

Tipos de numeración automática


Para facilitar la creación de los campos de numeración automática, hay algunos tipos predeterminados
predefinidos de numeración automática para capturar los escenarios más comunes.
Número predefinido de cadena
El formato más común de numeración automática es un número predefinido de cadena sencilla. Cuando
seleccione este tipo, la numeración automática consistirá en un número que se incrementa automáticamente con
un prefijo constante de cadena opcional. Por ejemplo, un número predefinido de cadena con el prefijo Contoso
generaría registros como Contoso -1000, Contoso -1001, Contoso -1002, etc.
Número predefinido de fecha
Otro formato común de numeración automática es un número predefinido de fecha. Cuando seleccione este tipo,
la numeración automática consistirá en un número que se incrementa automáticamente con un prefijo de fecha
formateado. La parte de fecha del registro reflejará la fecha y hora actuales en la que se creó el registro en hora
UTC. Hemos proporcionado varios formatos distintos de fecha que puede elegir. Por ejemplo, un número
predefinido de fecha generaría registros como 2019 -26 -02 -1000, 2019 -27 -02 -1000, 2019 -28 -02 -1000, etc., en
función de la fecha actual y el formato de fecha seleccionado.
Personalizada
Para creadores más avanzados con casos de uso específicos, proporcionamos la opción de personalizar
completamente el formato deseado de un campo de numeración automática. El formato puede estar compuesto
de constantes de cadena, incrementando automáticamente los números, fechas con formato o secuencias
alfanuméricas aleatorias. Para obtener información detallada sobre cómo definir formatos personalizados, consulte
Opciones de AutoNumberFormat.

Valores de inicialización
El valor de inicialización de un campo de numeración automática es el número inicial que se usa para la parte
numérica del formato. Por ejemplo, si desea que haya un campo de numeración automática para generar registros
como Contoso -1000, Contoso -1001, Contoso -1002, etc., el valor de inicialización deseado es 1000 porque éste es
el valor con el que se inicia la secuencia de número. Los campos de numeración automática tienen un valor de
inicialización predeterminado de 1000, pero puede establecer un valor de inicialización personalizado si lo desea.

IMPORTANT
Establecer el valor de inicialización sólo cambia el valor numérico actual para el atributo especificado en el entorno actual. El
valor de inicialización no se incluye en una solución cuando se importa en un entorno diferente.

Crear un campo de numeración automática


1. Inicie sesión en el PowerAppsportal.
2. En el panel izquierdo, expanda Datos, y seleccione Entidades.
3. Seleccione la entidad a la que desea agregar un campo de numeración automática y seleccione la pestaña
Campos .
4. En la barra de herramientas, seleccione Agregar.
5. En el panel derecho, escriba un Nombre para mostrar y seleccione Numeración automática para Tipo
de datos.

6. Establezca los campos opcionales según sea necesario. Más información: Crear y editar campos
7. Seleccione un tipo de numeración automática o mantenga la opción Número predefinido de cadena
predeterminada.
8. Personalice un valor de inicialización o mantenga el valor predeterminado 1000.
9. Seleccione Listo.

Vea también
Crear y editar campos para Common Data Service utilizando el portal PowerApps
Establecer las propiedades administradas de los
campos
25/11/2019 • 2 minutes to read • Edit Online

Las Propiedades administradas se aplican únicamente al incluir campos en una solución administrada e importar
la solución en otro entorno. Estos valores permiten al responsable de la solución tener un determinado control
sobre el nivel de personalización que desea permitir a los usuarios que instalen la solución administrada al
personalizar este campo. Para establecer las propiedades administradas de un campo, seleccione Propiedades
administradas en la barra de menú.
La opción Se puede personalizar controla el resto de opciones. Si esta opción es False , no se aplicará ninguno
de los demás valores. Si es True , puede especificar las demás opciones de personalización.
Si el campo es personalizable, defina las siguientes opciones en True o False .
Se puede modificar el nombre para mostrar
Se puede cambiar el nivel de requisito
Se puede cambiar propiedades adicionales
Estas opciones se explican por sí mismas. Si establece todas las opciones individuales en False , también puede
establecer Se puede personalizar en False .

Pasos siguientes
Crear y editar campos
Comportamiento y formato del campo de fecha y
hora
25/11/2019 • 7 minutes to read • Edit Online

En Common Data Service, el tipo de datos Fecha y hora se usa en muchos campos de entidad estándar.
Dependiendo del tipo de fecha que represente el campo, puede elegir distintos comportamientos del campo:
Local de usuario, Solo fecha o Independiente de zona horaria.

Comportamiento y formato de campos de fecha y hora


La siguiente tabla contiene información sobre el comportamiento y el formato de los campos de fecha y hora.

COMPORTAMIENTO FORMATO DESCRIPCIÓN

Local del usuario Solo fecha Éste es el comportamiento


- o bien - predeterminado de los campos
Fecha y hora personalizados de fecha y hora.

Los valores de campo se muestran en


la hora local del usuario actual.
En servicios web, estos valores se
devuelven utilizando un formato de
zona horaria UTC común.

Puede cambiar esto una vez si


selecciona el comportamiento
predeterminado. Más información
Cambiar comportamiento Local del
usuario

Solo fecha Solo fecha Sin conversión de zona horaria.

La parte de hora del valor siempre es


12:00AM.
La parte de fecha del valor se almacena
y se recupera como se especifica en la
interfaz de usuario y los servicios web.

Independiente de la zona horaria Solo fecha Sin conversión de zona horaria.


- o bien -
Fecha y hora Los valores de fecha y hora se
almacenan y se recuperan como se
especifica en la interfaz de usuario y los
servicios web.

Cambiar comportamiento de Local del usuario:


A menos que el editor de una solución administrada lo impida, puede cambiar el comportamiento de los campos
de fecha personalizados existentes de Local del usuario a Solo fecha o Independiente de la zona horaria. Se
trata de un cambio de una sola vez.
Cambiar el comportamiento del campo afecta a los valores de campo que se agregan o modificaron después de
cambiar el comportamiento del campo. Los valores de los campos existentes permanecen en la base de datos con
el formato de la zona horaria UTC. Para modificar el comportamiento de los valores de campo existentes de UTC
a Solo fecha quizá necesite la ayuda de un desarrollador para hacerlo mediante programación. Más información:
Convertir el comportamiento de valores existentes de fecha y hora en la base de datos.

WARNING
Antes de modificar el comportamiento de un campo de fecha y hora existente, debe comprobar todas las dependencias del
campo, como reglas de negocio, flujos de trabajo, campos calculados o campos consolidados, para asegurarse de que no
hay problemas como resultado de modificar el comportamiento. Después de modificar el comportamiento de un campo de
fecha y hora, debe abrir cada regla de negocio, flujo de trabajo, campo calculado y campo consolidado dependiente del
campo que cambió, revisar la información y guardarla, para asegurarse de que se usarán el comportamiento y el valor más
recientes del campo de fecha y hora.

Cambiar comportamiento durante la importación de una solución


Cuando importa una solución que contiene un campo de fecha con el comportamiento Local del usuario puede
tener la opción de cambiar el comportamiento a Solo fecha o Independiente de la zona horaria.
Evitar cambio de comportamiento
Si va a distribuir un campo de fecha personalizado en una solución administrada, puede impedir que las personas
que usan la solución cambien el comportamiento configurando la propiedad administrada
CanChangeDateTimeBehavior a False. Más información: Propiedades administradas de campos

Casos de uso
Tenga en cuenta los siguientes casos de uso para los comportamientos Solo fecha e Independiente de la zona
horaria.
Escenario de Solo fecha: cumpleaños y aniversarios
El comportamiento Solo fecha es correcto para casos cuando la información sobre la hora del día y de zona
horaria no es necesaria, por ejemplo cumpleaños o aniversarios. Con esta selección, todos los usuarios de la
aplicación de todo el mundo ven el mismo valor exacto de fecha.
Escenario de Independiente de la zona horaria: registro en el hotel
Puede usar este comportamiento cuando la información de zona horaria no es necesario, como la hora de
registro en un hotel. Con esta selección, todos los usuarios de la aplicación de todo el mundo ven el mismo valor
exacto de fecha y hora.

Operadores de consulta de fecha y hora no admitidos en el


comportamiento Solo fecha
Los siguientes operadores de consulta relacionados con fecha y hora no son válidos para el comportamiento
Solo fecha. Se genera un error de excepción de operador no válido cuando uno de estos operadores se usa en la
consulta.
Más antiguo de X minutos
Más antiguo de X horas
Últimas X horas
Próximas X horas
Vea también
Crear y editar campos
Definir campos calculados para automatizar los cálculos manuales
Propiedades administradas de campos
Propiedades administradas
Cómo crear y editar campos
25/11/2019 • 5 minutes to read • Edit Online

En Common Data Service, los campos definen los elementos de datos individuales que se pueden usar para
almacenar datos en una entidad. A veces, los desarrolladores denominan atributos a los campos.
Antes de crear un campo personalizado, evalúe si el uso de un campo existente cumple sus requisitos. Más
información: ¿Crear nuevos metadatos o usar los metadatos existentes?
Hay dos diseñadores que puede usar para crear o editar campos:

DISEÑADOR DESCRIPCIÓN

Portal PowerApps Proporciona una experiencia fácil y ágil, pero algunos


valores especiales no están disponibles.
Más información: Crear y editar campos para Common
Data Service mediante el portal de PowerApps

Explorador de soluciones No es tan fácil, pero proporciona más flexibilidad para


requisitos menos comunes.
Más información: Crear y editar campos para Common
Data Service con el explorador de soluciones de PowerApps

NOTE
También puede crear campos en su entorno mediante lo siguiente:
En aplicaciones basadas en modelos, seleccione Nuevo campo del editor de formularios.
Importe una solución que contenga la definición de los campos.
Use Power Query para crear nuevas entidades y rellenarlas con datos.
Más información: Agregar datos a una entidad en Common Data Service mediante Power Query..
Un programador puede usar servicios de metadatos para escribir un programa para crear y actualizar campos.

La información de este tema le ayudará a elegir el diseñador que puede usar.


Debería usar el portal de PowerApps para Crear y editar campos para Common Data Service, a menos que
necesite satisfacer cualquiera de los siguientes requisitos:
Crear un campo de búsqueda de clientes.
Más información: Diferentes tipos de búsquedas
Crear un campo en una solución distinta de la solución predeterminada de Common Data Service.
Para obtener más información: Información general de las soluciones
Definir transiciones de razón para el estado.
Más información: Definir las transiciones de razón para el caso o las entidades personalizadas
Editar varios campos al mismo tiempo.
Habilitar la auditoría.
Más información: Información general sobre auditorías
Habilitar perfiles de seguridad de campo.
Más información: Entidades de seguridad de campo
Seleccionar si el campo aparece en el filtro global en la experiencia interactiva.
Más información: Configurar paneles de experiencia interactiva de aplicaciones basadas en modelos
Seleccionar si el campo se puede ordenar en paneles de experiencia interactiva.
Más información: Configurar paneles de experiencia interactiva de aplicaciones basadas en modelos
Establecer un nivel de requisito de campo como Recomendado por la empresa.
Más información: Crear reglas de negocio y recomendaciones para aplicar lógica en un formulario
de aplicaciones basadas en modelos
Establecer propiedades administradas para un campo.
Más información: Establecer propiedades administradas para campos

NOTE
Puede crear un campo de búsqueda en el portal de PowerApps o en el explorador de soluciones creando una relación
de uno a varios en la entidad. Pero sólo el explorador de soluciones ofrece la opción de crear esta relación cuando se
crea un campo.

Herramientas de la Comunidad
Administrador de atributos es una herramienta que la comunidad XrmToolbox ha desarrollada para
Common Data Service. Consulte el tema Herramientas para desarrolladores para obtener información sobre
herramientas desarrolladas por la comunidad.

NOTE
Las herramientas de la comunidad no son un producto de Microsoft y no se incluyen en el soporte técnico. Si tiene
alguna duda relacionada con la herramienta, póngase en contacto con el Editor. Más información: XrmToolBox.

Vea también
Crear y editar campos para Common Data Service utilizando el portal PowerApps
Crear y editar campos para Common Data Service con el explorador de soluciones de PowerApps
Tipos de campos y tipos de datos de campos
Documentación para desarrolladores: Trabajar con metadatos de atributo
Administrar campos personalizados de una entidad
25/11/2019 • 10 minutes to read • Edit Online

Puede crear y actualizar uno o varios campos personalizados de cualquier entidad. Cuando crea un campo
personalizado, especifica un conjunto de propiedades, como el nombre del campo, el nombre para mostrar y el
tipo de datos que contendrá. Para obtener más información, consulte Metadatos de atributos de entidad.

NOTE
Cada entidad tiene campos del sistema, como campos que indican cuándo se actualizó un registro por última vez y quién lo
actualizó. Además, las entidades estándar tienen campos (predeterminados) estándar. No puede modificar o eliminar campos
del sistema o campos estándar. Si crea un campo personalizado, debe proporcionar funcionalidad sobre estos campos
integrados.

Crear un campo
1. En powerapps.com, expanda la sección Datos y haga clic o pulse en Entidades en el panel de navegación
de la izquierda.

2. Haga clic o pulse en una entidad existente o Cree una nueva entidad
3. Agregue un nuevo campo a la entidad haciendo clic en Agregar campo.
4. En el panel Nuevo campo, introduzca el Nombre para mostrar para el campo, el Nombre se rellenará
automáticamente y se usa como el nombre único para el campo. Se usa Displayname al mostrar este
campo a sus usuarios, se usa Nombre cuando crea la aplicación, en expresiones y fórmulas.

NOTE
Los campos Nombre para mostrar se pueden actualizar en cualquier momento para que se muestre de forma
diferente en sus aplicaciones, el campo Nombre no se puede cambiar una vez guardada la entidad, ya que esto
podría dañar una aplicación existente.
5. Seleccione el Tipo de datos del campo, esto controla la forma en que se almacena la información y
también cómo se muestra en aplicaciones. Por ejemplo, el texto se almacena de forma diferente a un
número decimal o una dirección URL. Para obtener información detallada de los tipos de datos disponibles,
consulte Metadatos de atributos de entidad.
Si se le solicita, especifique información adicional para el tipo de datos que ha especificado. Según el tipo
de datos, distintos campos se mostrarán. Si está creando un campo de tipo Conjunto de opciones o
Conjunto de opciones de selección múltiple, puede seleccionar Nuevo conjunto de opciones y crear un
nuevo conjunto de opciones cuando cree el campo. Para obtener más información, consulte Crear un
conjunto de opciones

6. En Obligatorio, active la casilla si desea recomendar este campo como obligatorio en sus aplicaciones.
Esto no proporciona una aplicación fija en todas las conexiones a Common Data Service. Si necesita
asegurarse de si el campo se ha rellenado, cree una Regla de negocio
7. En Buscable, active la casilla si necesita que este campo esté disponible en vistas, gráficos, paneles y
búsqueda avanzada. En la mayoría de los casos deberá activarse esta casilla.
8. Haga clic o pulse en Hecho para cerrar el panel Campo y volver a la entidad. Puede repetir los pasos 3-9
para cada campo adicional.

IMPORTANT
El campo aún no se guarda ni crea hasta que guarde los cambios en la entidad.

9. Haga clic o pulse en Guardar entidad para finalizar los cambios y guardarlos en Common Data Service.
Se le notificará cuando la operación finalice correctamente. Si la operación no se realiza correctamente,
aparece un mensaje de error que indica los problemas que se han producido y cómo puede corregirlos.

Crear un campo calculado o consolidado


Los campos calculados permiten automatizar cálculos manuales que se usan en los procesos de negocio. Por
ejemplo, un comercial puede querer conocer los ingresos ponderados de una oportunidad que se basan en los
ingresos estimados de una oportunidad multiplicados por la probabilidad. O bien, automáticamente desea aplicar
un descuento, si un pedido es superior a $500. Un campo calculado puede que contenga valores resultado de
simples operaciones matemáticas, u operaciones condicionales, por ejemplo, Mayor que o If-Else, y muchos otras.
Los campos calculados se pueden crear mediante los siguientes tipos de datos:
Línea única de texto
Conjunto de opciones
Dos opciones
Número entero
Número decimal
Divisa
Fecha y hora
Para obtener más detalles sobre los tipos de expresiones compatibles y ejemplos, consulte Definir campos
calculados

Actualizar o eliminar un campo


1. En powerapps.com, expanda la sección Datos y haga clic o pulse en Entidades en el panel de navegación
de la izquierda, y haga clic o pulse en una entidad.
2. En la lista de campos para la entidad seleccionada, haga clic o pulse en un campo, y luego siga uno de estos
pasos:
Cambie una o más propiedades del campo.
Elimine el campo haciendo clic o pulsando en los puntos suspensivos (...) cerca del borde derecho del
campo y haciendo clic o pulsando en Eliminar.
3. Haga clic o pulse en Guardar entidad para enviar los cambios.

IMPORTANT
Los cambios se perderán si no los guarda antes de abrir otra página en el explorador o de salir del explorador.

Se le notificará cuando la operación finalice correctamente. Si la operación no se realiza correctamente,


aparece un mensaje de error que indica los problemas que se han producido y cómo puede corregirlos.

Prácticas recomendadas y restricciones


Cuando cree y modifique campos, tenga en cuenta lo siguiente:
No puede modificar o eliminar campos del sistema ni sus valores.
En una entidad estándar, no puede modificar o eliminar un campo (predeterminado) estándar, agregar un
campo que requiera datos o efectuar ningún otro cambio que pudiera dañar una aplicación basada en esa
entidad.
En una entidad personalizada, debe asegurarse de que los cambios realizados no dañen ninguna aplicación
basada en esa entidad.
Debe asignar a cada campo personalizado un nombre que sea único en la entidad y no es posible cambiar el
nombre de un campo después de crearlo.

Pasos siguientes
Definir relaciones entre entidades
Crear una regla de negocio
Crear una aplicación usando entidades
Crear una aplicación desde cero usando una base de datos de Common Data Service

Aviso de privacidad
Con el modelo común de datos de Microsoft PowerApps, recopilamos y almacenamos la entidad personalizada y
los nombres de campo en nuestros sistemas de diagnóstico. Usamos esta información para mejorar el modelo
común de datos para los clientes. La entidad y los nombres de campo que los creadores crean nos ayudan a
comprender los escenarios que son comunes en la comunidad de Microsoft PowerApps y a determinar los huecos
en la cobertura de las entidades estándar del servicio, como los esquemas relacionados con las organizaciones.
Microsoft no accede a los datos de las tablas de base de datos asociadas a estas entidades ni los usa o replica
fuera de la región en la que se proporciona la base de datos. No obstante, tenga en cuenta que la entidad
personalizada y los nombres de campo se pueden replicar en las regiones y que se eliminan de acuerdo con
nuestras directivas de retención de datos. Microsoft se compromete a proteger su privacidad, como se describe
con más detalle en nuestro Centro de confianza.
Crear y editar campos para Common Data Service
utilizando el portal PowerApps
25/11/2019 • 22 minutes to read • Edit Online

El portal de PowerApps proporciona una forma fácil de crear y de editar campos de entidad con Common
Data Service.
El portal permite configurar las opciones más comunes, pero algunas opciones solo se pueden configurar
usando el explorador de soluciones.
Más información:
Crear y editar campos para Common Data Service
Crear y editar campos para Common Data Service con el explorador de soluciones de PowerApps

Campos de vista
1. En el portal de PowerApps, seleccione el modo de diseño Controlado por modelos o Lienzo.
2. Seleccione Datos > Entidades y seleccione la entidad que contiene los campos que desea ver.
3. Con la pestaña Campos seleccionada, seleccione las vistas siguientes:

VISTA DESCRIPCIÓN

Todo Muestra todos los campos para la entidad

Personalizada Muestra solo campos personalizados para la entidad

Predeterminado Muestra solo campos estándar para la entidad

Crear un campo
Mientras ve campos, en la barra de comandos, haga clic en Agregar campo que mostrará el panel
Propiedades de campo.
En principio, solo tres propiedades de campo están disponibles:

PROPIEDAD DESCRIPCIÓN

Nombre para mostrar El texto que se muestra para el campo en la interfaz de


usuario.

Nombre El nombre único en el entorno. Se generará un nombre para


usted basado en el nombre para mostrar que ha
especificado, pero puede editarlo antes de guardar. Una vez
que un campo se crea el nombre no se puede cambiar, ya
que se puede hacer referencia a él en sus aplicaciones o
código. El nombre tendrá el prefijo de personalización para
su Editor predeterminado de Common Data Service
antepuesto.

Tipo de datos Controla cómo se almacenan los valores y también cómo se


formatean en algunas aplicaciones. Una vez que se guarda
un campo, no puede cambiar el tipo de datos excepto
convertir campos de texto a campos de numeración
automática.

Puede establecer opciones adicionales en función de su elección de Tipo de datos.

Tipos de datos de campo


Hay muchos diferentes tipos de campos, pero solo puede crear algunos. Para obtener más información sobre
todos los tipos de campos, consulte Tipos de campos y tipos de datos de campo.
Cuando crea un campo, Tipo de datos proporciona las siguientes opciones:
Text
Los campos de texto estándar pueden almacenar hasta de 4000 caracteres. La opción Longitud máxima
predeterminada se establece en un valor menor que puede ajustar.
TIPO DE DATOS DESCRIPCIÓN

Texto Un valor de texto pensado para mostrar en un cuadro de


texto de una línea.

Área de texto Un valor de texto pensado para mostrar en un cuadro de


texto de varias líneas. Si requiere más de 4.000 caracteres,
use un tipo de datos Texto multilínea.

Correo electrónico Valor de texto validado como dirección de correo


electrónico y generado como vínculo mailto en el campo.

Dirección URL Valor de texto validado como dirección URL y generado


como un vínculo para abrir la dirección URL.

Símbolo del valor Un valor del texto para un símbolo de valor que mostrará
un vínculo que se abrirá para mostrar una oferta para el
símbolo de valor bursátil.

Teléfono Valor de texto validado como número de teléfono generado


como vínculo para realizar una llamada de teléfono con
Skype.

Numeración automática Una combinación personalizable de números y letras que es


generada automáticamente por el servidor cuando se crea
el registro. Más información: Campos de numeración
automática

Longitud máxima
Los campos que almacenan el texto tienen un máximo absoluto según el tipo. La opción Longitud máxima
establece un valor menor que el máximo específico del entorno. Puede aumentar esta longitud máxima pero
no debería bajarla si tiene datos en el sistema que superen el valor inferior.
Número entero
Estos campos almacenan datos como número pero incluyen distintas opciones de presentación y validación.

TIPO DE DATOS DESCRIPCIÓN

Número entero Valor de número presentado en un cuadro de texto.

Duración Valor de número presentado como lista desplegable que


contiene intervalos de tiempo. El usuario puede seleccionar
un valor de la lista o escribir un valor entero que represente
el número de minutos. La duración se debe especificar en el
formato: "x minutos", "x horas" o "x días". Las horas y los
días también se pueden introducir con decimales, por
ejemplo, "x,x horas" o "x,x días". Los valores especificados
deben poder expresarse en minutos, los valores por debajo
del minuto se redondean al minuto más cercano.

Zona horaria Valor de número presentado como lista desplegable que


contiene una lista de zonas horarias.
TIPO DE DATOS DESCRIPCIÓN

Idioma Un valor numérico presentado como lista desplegable con


los idiomas que se hayan habilitado para el entorno. Si no
se ha activado ningún otro idioma, el idioma base será la
única opción. El valor guardado es el valor del Identificador
de configuración regional (LCID) del idioma.

Fecha y hora
Use estos campos para almacenar valores de hora. Puede almacenar valores de hasta 1/1/1753 12:00 AM.

TIPO DE DATOS DESCRIPCIÓN

Fecha y hora Un valor de fecha y hora.

Solo fecha Valor de fecha y hora que solo se muestra una fecha. El
valor de hora se almacena como 12:00 AM (00:00: 00) en el
sistema.

También puede establecer un Comportamiento específico para los campos de fecha y hora en Opciones
avanzadas.
Local del usuario : Muestra valores convertidos a la zona horaria local del usuario actual. Es el valor
predeterminado de nuevos campos.
Solo fecha: Este comportamiento está disponible para el tipo Solo fecha. Muestra valores sin conversión
de zona horaria. Úselo para datos como cumpleaños y aniversarios.
Independiente de la zona horaria: Muestra valores sin conversión de la zona horaria.
Más información: Comportamiento y formato del campo de fecha y hora
Otros tipos de datos
TIPO DE DATOS DESCRIPCIÓN

Divisa Un valor de divisa para divisas configuradas para el entorno.


Puede establecer un nivel de precisión o elegir basar la
precisión en una divisa específica o una precisión estándar
única usada por la organización. Más información: Usar
campos de divisa

Número decimal Valor decimal con una precisión de hasta 10 puntos. Más
información: Uso del tipo correcto de número

Número de punto flotante Número de punto flotante con una precisión de hasta 5
puntos. Más información: Uso del tipo correcto de número

Imagen Muestra una sola imagen por cada registro de la aplicación.


Cada entidad puede tener un campo de imagen. El
Nombre que escriba cuando crea un campo de imagen se
omitirá. Los campos de imagen siempre se denominan
'EntityImage'.

Conjunto de opciones multiselección Muestra una lista de opciones donde puede seleccionar más
de una.
TIPO DE DATOS DESCRIPCIÓN

Texto multilínea Un valor de texto pensado para mostrar en un cuadro de


texto de varias líneas. Limitado a un máximo de 1.048.576
caracteres. También puede establecer una Longitud máxima
menor.

Conjunto de opciones Muestra una lista de opciones donde solo puede seleccionar
una.

Dos opciones Muestra dos opciones donde solo puede seleccionar una.
Puede elegir las etiquetas que se muestran para cada
opción. Los valores predeterminados son Sí y No.

Guardar nuevo campo


Una vez que ha establecido las propiedades de Nombre para mostrar, Nombre y Tipo de datos puede
hacer clic en Listo para cerrar el panel Propiedades de campo.
Puede seguir editando la entidad y agregar campos adicionales o volver y seguir editando este campo. Los
campos no se crearán hasta que haga clic en Guardar entidad para guardar todos los cambios a la entidad.

También puede hacer clic en Descartar para descartar los cambios que ha realizado.

Editar un campo
Mientras ve campos, seleccione el campo que desea editar. Puede modificar el Nombre para mostrar pero
no puede cambiar el Nombre y Tipo de datos si ha guardado cambios en la entidad para agregar el campo.
Propiedades generales
Cada campo tiene las siguientes propiedades que puede modificar:

PROPIEDAD DESCRIPCIÓN

Obligatorio Cuando selecciona esto, el registro no se puede guardar sin


datos en este campo.
PROPIEDAD DESCRIPCIÓN

Búsqueda Anule esta selección para los campos de la entidad que no


use. Cuando un campo permite búsquedas aparece en
Búsqueda avanzada y está disponible cuando se
personalizan las vistas. Si anula esta selección se reducirá el
número de opciones mostradas a las personas que usan la
búsqueda avanzada.

Descripción Encontrado en Opciones avanzadas. Escriba instrucciones


para indicar al usuario para qué sirve el campo. Estas
descripciones aparecen como información sobre
herramientas para el usuario en aplicaciones basadas en
modelos cuando mantienen el mouse sobre la etiqueta del
campo.

NOTE
Crear campos obligatorios: Tenga cuidado al crear campos obligatorios. Los usuarios se opondrán al uso de la
aplicación si no pueden guardar registros porque carecerán de la información correcta para introducir en un campo
obligatorio. Los usuarios pueden especificar datos incorrectos simplemente para guardar el registro y comenzar con su
trabajo.
Establecer requisito dinámicamente: En aplicaciones basadas en modelo, puede usar reglas de negocio o scripts de
formulario para cambiar el nivel de requisito a medida que los datos del registro cambian con el trabajo de los usuarios.
Más información: Crear reglas de negocio y recomendaciones para aplicar lógica en un formulario
Disponibilidad de búsqueda avanzada: Búsqueda avanzada actualmente solo está disponible para aplicaciones
basadas en modelo que utilizan el cliente web. Búsqueda avanzada no está disponible para clientes de la interfaz
unificada.

Calculado o consolidado
Puede establecer un campo personalizado como campo Calculado o Consolidado. Los campos que no son
campos calculados o consolidados a veces se denominan campos sencillos.
Calculado
Con un campo calculado puede especificar una fórmula para asignar un valor al campo. Estos tipos de datos
pueden establecerse como campos calculados: Divisa, Fecha y hora, Solo fecha, Número decimal,
Duración, Correo electrónico, Idioma, Conjunto de opciones multiselección, Conjunto de opciones,
Texto, Área de texto, Símbolo del valor, Zona horaria, Dos opciones, Dirección URL y Número
entero.
Más información: Definir campos calculados para automatizar los cálculos manuales
Consolidado
Con un campo consolidado puede establecer funciones de agregación que se ejecutarán periódicamente para
configurar un valor numérico para el campo. Estos tipos de datos pueden establecerse como campos
calculados: Divisa, Fecha y hora, Solo fecha, Número decimal, Duración, Idioma, Zona horaria y
Número entero.
Más información: Definir campos consolidados que agregan valores

Opciones de campo de número


Cada tipo de campo de número tiene valores mínimos y máximos absolutos. Puede establecer el Valor
mínimo y el Valor máximo dentro de estos valores absolutos. Haga esto para que Common Data Service
valide los valores de los datos que desea almacenar en el campo.
Para los tipos de datos Número de punto flotante y Número decimal, puede especificar varias Posiciones
decimales.

Opciones de campos Conjunto de opciones


Los campos que proporcionan un conjunto de opciones pueden incluir su propio conjunto de opciones locales
o hacer referencia a un conjunto común de opciones globales que se pueden usar para varios campos.
El uso de un conjunto de opciones global es útil cuando se tiene que crear el mismo conjunto de opciones de
varios campos. Con un conjunto de opciones global, solo necesita mantener el conjunto de opciones en un
lugar.
Cuando seleccione el tipo de datos Conjunto de opciones multiselección o Conjunto de opciones el
diseñador mostrará una serie de conjuntos de opciones globales disponibles para elegir y proporcionará la
opción de crear un Nuevo conjunto de opciones.

Si elige Nuevo conjunto de opciones el comportamiento predeterminado es crear un nuevo conjunto de


opciones global.
NOTE
Cuando está editando opciones para un nuevo conjunto de opciones global, los valores de Nombre para mostrar y
Nombre son para el conjunto de opciones global en lugar de para el campo. Los valores predeterminados coinciden
con los valores de campo, pero puede editarlos mientras edita el conjunto de opciones global para que sea distinto del
campo que está creando actualmente.

Si desea crear un conjunto de opciones local debe hacer clic en Ver más y elegir Conjunto de opciones
local.

NOTE
Si define cada conjunto de opciones como conjunto de opciones global, la lista de conjuntos de opciones globales
crecerá y puede resultar difícil de administrar. Si sabe que el conjunto de opciones solo se usará en un lugar, use un
conjunto de opciones local.

WARNING
Si quita una opción que haya sido usada por un registro de entidad, los datos para ese registro dejarán de ser válidos
cuando guarde los cambios en el conjunto de opciones globales.
Antes de quitar una opción que haya sido usada debe cambiar a un valor válido los datos de los registros de entidad
que usen esa opción.

Eliminación de campos
Con el rol de seguridad de administrador del sistema, puede eliminar campos personalizados que no sean
parte de una solución administrada. Si elimina campos, los datos almacenados en los campos se perderán. La
única forma de recuperar datos de un campo que se haya eliminado es restaurar la base de datos de un punto
anterior a la eliminación del campo.

NOTE
Antes de poder eliminar un campo personalizado, debe quitar las dependencias que pueden existir en otros
componentes de la solución.

Mientras ve campos, si selecciona un campo personalizado que se puede eliminar en la lista, el comando
Eliminar campo aparece y está habilitado.

Use el comando Eliminar el campo para eliminar el campo. Después de eliminar el campo debe guardar los
cambios de la entidad.

NOTE
Si obtiene un error relacionado con las dependencias, debe usar el explorador de soluciones para detectar dependencias.
Más información: Comprobar dependencias de campos
Modo IME
Cualquiera de los campos que proporcionan la entrada de texto directa tienen un Modo IME. El editor de
métodos de entrada (IME ) se usa para idiomas asiáticos orientales como el japonés. Los IME permiten que el
usuario especifique miles de caracteres distintos usados en idiomas escritos del este de Asia con un teclado
estándar de 101 teclas.
Vea también
Crear y editar campos para Common Data Service
Crear y editar campos para Common Data Service con el explorador de soluciones de PowerApps
Tipos de campos y tipos de datos de campos
Definir campos calculados para automatizar los cálculos manuales
Definir campos consolidados que agregan valores
Comportamiento y formato del campo de fecha y hora
Crear y editar campos para Common Data Service
con el explorador de soluciones PowerApps
25/11/2019 • 29 minutes to read • Edit Online

El explorador de soluciones proporciona una forma de crear y editar relaciones campos para Common Data
Service.
El portal de PowerApps permite configurar las opciones más comunes, pero algunas opciones solo se pueden
configurar usando el explorador de soluciones.
Más información:
Crear y editar campos para Common Data Service
Crear y editar campos para Common Data Service utilizando el portal PowerApps

Abra el explorador de soluciones


La parte del nombre de cualquier campo personalizado que cree es el prefijo de personalización. Esto se
establece en función del editor de soluciones para la solución en la que trabaja. Si le interesa el prefijo de
personalización, asegúrese de que está trabajando en una solución no administrada donde el prefijo de
personalización es el que desea para esta entidad. Más información: Cambiar el prefijo del editor de soluciones
Ir a una solución no administrada
1. En el portal de PowerApps, seleccione Soluciones y, a continuación, en la barra de herramientas,
seleccione Cambiar a clásico.
2. En la lista Todas las soluciones seleccione la solución no administrada que desee.

Campos de vista
Con el explorador de soluciones abierto, en Componentes expanda Entidades y seleccione la entidad donde
desea crear o editar el campo.

Puede seleccionar las siguientes vistas:


VISTA DESCRIPCIÓN

Todo Muestra todos los campos para la entidad

Personalizada Muestra solo campos personalizados para la entidad

Personalizable Muestra solo los campos que se pueden editar

Crear un campo
Mientras ve campos, en la barra de comandos, haga clic en Nuevo que abrirá el nuevo formulario de campo. Es
posible que algunas entidades estándar o entidades personalizadas que se incluyen en una solución
administrada no permitan que agregue nuevos campos.

NOTE
Para aplicaciones basadas en modelos también puede crear un nuevo campo desde el editor de formularios. En el editor de
formularios, debajo de Explorador de campos haga clic en Nuevo campo para crear un nuevo campo. Más información:
Agregar un campo a un formulario

Debe especificar datos y confirmar los valores predeterminados establecidos para las propiedades siguientes
antes de guardar.

PROPIEDAD DESCRIPCIÓN

Nombre para mostrar El texto que se muestra para el campo en la interfaz de


usuario. Puede cambiar esto después de guardar, pero el
valor que especifique generará un valor para el campo
Nombre.
PROPIEDAD DESCRIPCIÓN

Requisito de campo Si se necesitan datos en el campo para guardar el registro.


Más información: Opciones de requisito de campo

Nombre El nombre único en el entorno. Se generará un nombre para


usted basado en el nombre para mostrar que ha
especificado, pero puede editarlo antes de guardar. Una vez
que un campo se crea el nombre no se puede cambiar, ya
que se puede hacer referencia a él en sus aplicaciones o
código. El nombre tendrá antepuesto el prefijo de
personalización del editor de la solución actual.

Búsqueda Establezca esta como No para los campos de la entidad que


no use. Cuando un campo permite búsquedas aparece en
Búsqueda avanzada en aplicaciones basadas en modelos y
está disponible cuando se personalizan las vistas. Si anula
esta selección se reducirá el número de opciones mostradas a
las personas que usan la búsqueda avanzada.

Seguridad de campo Si los datos del campo están protegidos a un nivel más alto
que la entidad. Más información: Seguridad de nivel de
campo para controlar el acceso

Auditoría Si los datos para este campo se auditarán cuando la entidad


esté habilitada para auditoría. Más información: Auditar
datos y actividad de usuario para seguridad y conformidad

Descripción Escriba instrucciones para indicar al usuario para qué sirve el


campo. Estas descripciones aparecen como información sobre
herramientas para el usuario en aplicaciones basadas en
modelos cuando mantienen el mouse sobre la etiqueta del
campo.

Aparece en el filtro global en la experiencia interactiva Más información: Configurar paneles de experiencia
interactiva

Se puede ordenar en el panel de experiencia Más información: Configurar paneles de experiencia


interactiva interactiva

Tipo de datos Controla cómo se almacenan los valores y también cómo se


formatean en algunas aplicaciones. Un vez se guarda un
campo, no puede cambiar el tipo de datos ya que puede
afectar a los datos en la entidad. Más información: Tipos de
datos de campos

Tipo de campo Si el campo es Simple, Calculado o Consolidado. Más


información: Tipo de campo

Formato Cómo se formateará el campo. Las opciones de formato


disponibles dependen del Tipo de datos.

Puede establecer opciones adicionales en función de su elección de Tipo de datos. Más información: Tipos de
datos de campos

Opciones de requisito del campo


Hay tres opciones de requisito del campo:
Opcional: Se puede guardar el registro aunque no haya ningún dato en este campo
Recomendado por la empresa: Se puede guardar el registro aunque no haya ningún dato en este campo
Sin embargo, un símbolo azul aparece junto al campo para indicar que es importante.
Necesario para la empresa: No se puede guardar el registro si no hay ningún dato en este campo

NOTE
Tenga cuidado cuando cree campos requeridos por la empresa. Los usuarios se opondrán al uso de la aplicación si no
pueden guardar registros porque carecerán de la información correcta para introducir en un campo obligatorio. Los
usuarios pueden especificar datos incorrectos simplemente para guardar el registro y comenzar con su trabajo. Puede usar
reglas de negocio o scripts de formulario para cambiar el nivel de requisito a medida que los datos del registro cambian
con el trabajo de los usuarios. Más información: Crear reglas de negocio y recomendaciones para aplicar lógica en un
formulario

Tipos de datos de campo


Hay muchos diferentes tipos de campos, pero solo puede crear algunos. Para obtener más información sobre
todos los tipos de campos, consulte Tipos de campos y tipos de datos de campo.
Cuando crea un campo, Tipo de datos proporciona las siguientes opciones:

OPCIÓN DESCRIPCIÓN

Línea de texto única Este campo puede contener hasta 4000 caracteres de texto.
Puede establecer una longitud máxima inferior a esta. Este
campo tiene varias opciones de formato que cambiarán la
presentación del texto. Más información: Opciones de una
línea de texto única

Conjunto de opciones Muestra una lista de opciones donde puede seleccionar una.
Más información: Opciones de campo de conjunto de
opciones

Conjunto de opciones multiselección Muestra una lista de opciones donde puede seleccionar más
de una. Más información: Opciones de campo de conjunto de
opciones

Dos opciones Muestra una lista de opciones donde puede seleccionar dos.

Dos campos de opción no proporcionarán opciones de


formato en el de nivel de campo. Pero cuando agregue uno
al formulario puede elegir presentarlos como botones de
opción, una casilla o una lista de selección.

Imagen Muestra una sola imagen por cada registro de la aplicación.


Cada entidad puede tener un campo de imagen. Los campos
de imagen siempre se denominan EntityImage .

Número entero Los valores enteros con un valor entre -2.147.483.648 y


2.147.483.647 pueden estar en este campo. Este campo tiene
opciones que cambian en función de cómo se presenta el
campo. Más información: Opciones de número entero
OPCIÓN DESCRIPCIÓN

Número de punto flotante Hasta 5 puntos decimales de precisión se pueden usar para
valores entre -100.000.000.000 y -100.000.000.000 en este
campo. Puede especificar el nivel de precisión y los valores
máximo y mínimo. Más información: Uso del tipo correcto de
número

Número decimal Hasta 10 puntos decimales de precisión se pueden usar para


valores entre -100.000.000.000 y -100.000.000.000 en este
campo. Puede especificar el nivel de precisión y los valores
máximo y mínimo. Más información: Uso del tipo correcto de
número

Divisa Los valores monetarios entre -922.337.203.685.477 y


922.337.203.685.477 pueden estar en este campo. Puede
establecer un nivel de precisión o elegir basar la precisión en
una divisa específica o una precisión estándar única usada
por la organización. Más información: Uso de campos de
divisa

Varias líneas de texto Este campo puede contener hasta 1 048 576 caracteres de
texto. Puede establecer que la longitud máxima sea inferior a
esta. Cuando agrega este campo a un formulario de
aplicación basado en modelos, puede especificar las
dimensiones del campo.

Fecha y hora Use estos campos para almacenar valores de hora. Puede
almacenar valores de hasta 1/1/1753 12:00 AM. Más
información: Opciones de fecha y hora

Búsqueda Un campo que permite la configuración de una referencia a


un registro único de un tipo específico de entidad. Algunos
campos de búsqueda del sistema se comportan de forma
distinta. Más información: Diferentes tipos de búsquedas

Cliente Un campo de búsqueda que puede usar para especificar un


cliente, que puede ser una cuenta o un contacto. Más
información: Diferentes tipos de búsquedas

Opciones de una sola línea de texto


El tipo de datos de una sola línea de texto tiene las opciones de formato siguientes:

FORMATO DESCRIPCIÓN

Texto Un valor de texto pensado para mostrar en un cuadro de


texto de una línea.

Área de texto Un valor de texto pensado para mostrar en un cuadro de


texto de varias líneas. Si requiere más de 4.000 caracteres,
use un tipo de datos Varias líneas de texto.

Correo electrónico Valor de texto validado como dirección de correo electrónico


y generado como vínculo mailto en el campo.

Dirección URL Valor de texto validado como dirección URL y generado


como un vínculo para abrir la dirección URL.
FORMATO DESCRIPCIÓN

Símbolo del valor Un valor del texto para un símbolo de valor que mostrará un
vínculo que se abrirá para mostrar una oferta para el símbolo
de valor bursátil.

Teléfono Valor de texto validado como número de teléfono generado


como vínculo para realizar una llamada de teléfono con
Skype.

También puede establecer una Longitud máxima para que el sistema no permita valores de texto más largos
de los que especifique.
Opciones de campos Conjunto de opciones
Los campos que proporcionan un conjunto de opciones pueden incluir su propio conjunto de opciones locales o
hacer referencia a un conjunto común de opciones globales que se pueden usar para varios campos.
El uso de un conjunto de opciones global es útil cuando se tiene que crear el mismo conjunto de opciones de
varios campos. Con un conjunto de opciones global, solo necesita mantener el conjunto de opciones en un lugar.
Cuando seleccione el tipo de datos Conjunto de opciones multiselección o Conjunto de opciones el
diseñador del explorador de soluciones le confiere la opción para un conjunto de opciones local de forma
predeterminada.

Configurar opciones locales


Para definir opciones, en el área Opciones haga clic en para agregar una opción.
Para cada opción puede agregar los siguientes valores de propiedad

PROPIEDAD DESCRIPCIÓN

Etiqueta El texto localizable de la opción.

Valor El valor numérico de la opción. Se prefija con un valor


definido en el editor de soluciones para la solución en la que
está trabajando. Este prefijo ayuda a garantizar que el valor
será distinto de los valores de opción definidos en otra
solución e importados en el entorno.

Valor externo Este valor se usa para que las entidades virtuales asignen un
valor de un origen de datos externos con esta opción.

Descripción Un lugar para registrar el objetivo de esta opción. Este valor


no se muestra a los usuarios de la aplicación.
PROPIEDAD DESCRIPCIÓN

Color Especifica un color para los gráficos de esta opción.


Sugerencia: use un sitio como w3schools.com HTML Color
Picker para ver los valores de códigos hexadecimal de los
colores.

Use los otros iconos de la barra de herramientas de opciones para realizar las operaciones siguientes:

ICONO OPERACIÓN

Quitar la opción seleccionada

Subir la opción seleccionada

Baja la opción seleccionada

Ordenar las opciones por etiqueta en orden ascendente

Ordenar las opciones por etiqueta en orden descendente

Usar Conjunto de opciones existente


Si elige Usar Conjunto de opciones existente el diseñador mostrará una lista de conjuntos de opciones
globales existentes e incluirá los botones Editar y Nuevo para configurar las opciones globales que este campo
deberá usar.

También puede configurar conjuntos de opciones globales por separado. Más información: Creación y edición de
conjuntos de opciones globales para Common Data Service (listas desplegables)

NOTE
Si define cada conjunto de opciones como conjunto de opciones global, la lista de conjuntos de opciones globales crecerá y
puede resultar difícil de administrar. Si sabe que el conjunto de opciones solo se usará en un lugar, use un conjunto de
opciones local.
Opciones de número entero
Los campos de número entero tienen las siguientes opciones de formato:

FORMATO DESCRIPCIÓN

Ninguno Valor de número presentado en un cuadro de texto.

Duración Valor de número presentado como lista desplegable que


contiene intervalos de tiempo. El usuario puede seleccionar
un valor de la lista o escribir un valor entero que represente
el número de minutos.

Zona horaria Valor de número presentado como lista desplegable que


contiene una lista de zonas horarias.

Idioma Un valor numérico presentado como lista desplegable con los


idiomas que se hayan habilitado para el entorno. Si no se ha
activado ningún otro idioma, el idioma base será la única
opción. El valor guardado es el valor del Identificador de
configuración regional (LCID) del idioma.

También puede restringir los valores máximo o mínimos permitidos.


Opciones de fecha y hora
Los campos de fecha y hora tienen las siguientes opciones:

FORMATO DESCRIPCIÓN

Fecha y hora Un valor de fecha y hora.

Solo fecha Valor de fecha y hora que solo se muestra una fecha. El valor
de hora se almacena como 12:00 AM (00:00: 00) en el
sistema.

También puede establecer un Comportamiento específico para los campos de fecha y hora en Opciones
avanzadas.
Local del usuario : Muestra valores convertidos a la zona horaria local del usuario actual. Es el valor
predeterminado de nuevos campos.
Solo fecha: Este comportamiento está disponible para el tipo Solo fecha. Muestra valores sin conversión de
zona horaria. Úselo para datos como cumpleaños y aniversarios.
Independiente de la zona horaria: Muestra valores sin conversión de la zona horaria.
Más información: Comportamiento y formato del campo de fecha y hora

Tipo de campo
Puede establecer que un Tipo de campo personalizado se Simple, Calculado o Consolidado.
Básico
Simple significa que el campo no es un campo calculado ni consolidado.
Calculado
Con un campo calculado puede especificar una fórmula para asignar un valor al campo. Estos tipos de datos
pueden establecerse como campos calculados: Divisa, Fecha y hora, Número decimal, Conjunto de
opciones multiselección, Conjunto de opciones, Línea única de texto, Dos opciones y Número entero.
Más información: Definir campos calculados para automatizar los cálculos manuales
Consolidado
Con un campo consolidado puede establecer funciones de agregación que se ejecutarán periódicamente para
configurar un valor numérico para el campo. Estos tipos de datos pueden establecerse como campos calculados:
Divisa, Fecha y hora, Número decimal y Número entero.
Más información: Definir campos consolidados que agregan valores

Guardar nuevo campo


Una vez que haya configurado el campo, use uno de los tres comandos en la barra de comandos:

COMANDO DESCRIPCIÓN

Guardar Guarde la definición del campo y deje la ventana del


formulario abierta.

Guardar y cerrar Guarde la definición del campo y cierre la ventana.

Guardar y crear nuevo Guarde la definición de campo y abra un formulario nuevo


para crear un campo nuevo.

Editar un campo
Mientras ve campos, haga clic en el campo que desea editar. Es posible que algunos campos estándar o campos
personalizados que se incluyen en una solución administrada no permitan que los edite.

NOTE
Cuando edite un formulario, para los campos ya agregados al formulario puede hacer doble clic en el campo para mostrar
Propiedades de campo. En la pestaña Detalles, haga clic en Editar. Más información: Agregar un campo a un formulario

Después de realizar cambios en un campo, debe publicar personalizaciones.


Para publicar los cambios para una entidad, en Componentes, seleccione Entidades, y luego seleccione
la entidad en la que ha realizado cambios. En la barra de herramientas Acciones, seleccione Publicar.
Para publicar todos los cambios realizados en varias entidades o componentes, en la barra de
herramientas Acciones, seleccione Publicar todas las personalizaciones.

NOTE
La instalación de una solución o la publicación de personalizaciones puede interferir en el funcionamiento normal del
sistema. Le recomendamos que programe una solución para que se publique cuando menos perjudique a los usuarios.

Editar varios campos


Para editar uno o más campos, seleccione el campo o los campos (mediante la tecla Mayús) que desee modificar
y en la barra de herramientas Acciones, seleccione Editar.
Al seleccionar varios campos para la edición, aparece el cuadro de diálogo Editar varios campos. Puede editar
Requisito de campo, Búsqueda y Auditoría.

Eliminación de campos
Con el rol de seguridad de administrador del sistema, puede eliminar campos personalizados que no sean parte
de una solución administrada. Si elimina campos, los datos almacenados en los campos se perderán. La única
forma de recuperar datos de un campo que se haya eliminado es restaurar la base de datos de un punto anterior
a la eliminación del campo.

NOTE
Antes de poder eliminar un campo personalizado, debe quitar las dependencias que pueden existir en otros componentes
de la solución.

1. Mientras ve campos, si selecciona un campo personalizado que se puede eliminar en la lista y haga clic en el
botón en la barra de comandos.
2. En el cuadro de diálogo Confirmar eliminación, seleccione Eliminar.

TIP
Puede seleccionar varios campos personalizados para eliminar en una operación.

Compruebe las dependencias de campo


Seleccione el campo en la lista. En el menú Más acciones, seleccione Mostrar dependencias.

Las dependencias son cualquier uso relacionado del campo que evitaría que se eliminara. Por ejemplo, si el
campo se usa en un formulario o una vista, primero debe quitar las referencias al campo en esos componentes
de la solución.
Si elimina un campo de búsqueda, la relación de entidad 1:N correspondiente se eliminará automáticamente.

Modo IME
Cualquiera de los campos que proporcionan la entrada de texto directa tienen un Modo IME. El editor de
métodos de entrada (IME ) se usa para idiomas asiáticos orientales como el japonés. Los IME permiten que el
usuario especifique miles de caracteres distintos usados en idiomas escritos del este de Asia con un teclado
estándar de 101 teclas.
Vea también
Crear y editar campos para Common Data Service
Crear y editar campos para Common Data Service utilizando el portal PowerApps
Tipos de campos y tipos de datos de campos
Definir campos calculados para automatizar los cálculos manuales
Definir campos consolidados que agregan valores
Comportamiento y formato del campo de fecha y hora
Crear un conjunto de opciones
25/11/2019 • 6 minutes to read • Edit Online

Los conjuntos de opciones le permiten incluir listas desplegables de valores fijos para un usuario dentro de la
aplicación para garantizar la coherencia de datos. A veces se hace referencia a ellos como listas desplegables o
campos de opciones en otras aplicaciones. Similar a las entidades, hay conjuntos de opciones estándar y la
posibilidad de crear conjuntos de opciones personalizadas para usar dentro de la aplicación.
Los conjuntos de opciones se pueden crear de dos maneras, ya sea desde la lista de conjuntos de opciones del
portal o directamente en una entidad cuando se crea un campo. Para obtener más información sobre cómo crear
una entidad, consulte Crear una entidad.

Crear un conjunto de opciones mientras agrega un campo.


1. En powerapps.com, expanda la sección Datos y haga clic o pulse en Entidades en el panel de navegación
de la izquierda.

2. Haga clic o pulse en una entidad existente o Cree una nueva entidad
3. Agregue un nuevo campo a la entidad haciendo clic en Agregar campo.
4. En el panel del nuevo campo, introduzca el Nombre para mostrar para el campo, el Nombre se rellenará
automáticamente y se usa como el nombre único para el campo. Se usa Nombre para mostrar al
mostrar este campo a sus usuarios, se usa Nombre cuando crea la aplicación, en expresiones y fórmulas.
5. Haga clic en la lista desplegable Tipo de datos y seleccione Conjunto de opciones o Conjunto de
opciones de selección múltiple.
6. Haga clic en la lista desplegable Conjunto de opciones y seleccione Nuevo conjunto de opciones

NOTE
Si un conjunto de opciones existente puede usarse para la entidad, puede seleccionarla de esta lista sin crear una
nueva.

7. Se abrirá un nuevo panel para crear el conjunto de opciones. El Nombre para mostrar y el Nombre se
adoptarán por defecto del nombre del campo, pero se pueden cambiar si es necesario. Haga clic en
Agregar nuevo elemento para empezar a crear la lista de opciones. Repita este paso hasta que se creen
todos los elementos.
8. Una vez que haya introducido los elementos, haga clic en Guardar para crear el conjunto de opciones.

9. Haga clic en Hecho para cerrar el panel del campo y, a continuación, en Guardar entidad para guardar la
entidad en Common Data Service.

NOTE
Puede seleccionar uno de los elementos como Predeterminado para este campo y se seleccionará de forma
predeterminada cuando los usuarios creen nuevos registros en la entidad.
Crear un conjunto de opciones desde la lista de conjuntos de
opciones
1. En powerapps.com, expanda la sección Datos y haga clic o pulse en Conjuntos de opciones en el panel
de navegación de la izquierda.

2. Haga clic en Nuevo conjunto de opciones


3. Se abrirá un nuevo panel para crear el conjunto de opciones, introduzca el Nombre para mostrar y el
Nombre. Haga clic en Agregar nuevo elemento para empezar a crear la lista de opciones. Repita este
paso hasta que se creen todos los elementos.
4. Una vez que haya introducido los elementos, haga clic en Guardar para crear el conjunto de opciones.

5. Ahora puede utilizar este conjunto de opciones para crear un nuevo campo en una entidad.

Conjuntos de opciones globales y locales


De forma predeterminada, los conjuntos de opciones se crean como conjuntos de opciones globales que permite
reutilizarlos en varias entidades. En la opción Ver más, al crear un nuevo conjunto de opciones puede elegir
establecer un conjunto de opciones como Local. Esta opción solo está disponible al crear un conjunto de
opciones mientras agrega un campo, y no en la lista de conjuntos de opciones. Los conjuntos de opciones locales
solo se pueden usar en la entidad y el campo para los que se han creado, y no se pueden reutilizar en otras
entidades. Este método se recomienda solo para usuarios avanzados con una necesidad específica para un
conjunto de opciones local.
IMPORTANT
Una vez creado un conjunto de opciones como local o global, no se puede cambiar.
Creación y edición de conjuntos de opciones
globales para Common Data Service utilizando el
explorador de soluciones
25/11/2019 • 8 minutes to read • Edit Online

El explorador de soluciones proporciona una forma de crear y editar conjuntos de opciones globales para
Common Data Service.
El portal de PowerApps permite configurar las opciones más comunes, pero algunas opciones solo se pueden
configurar usando el explorador de soluciones.
Más información:
Crear y editar conjuntos de opciones globales para Common Data Service
Crear un conjunto de opciones

Abra el explorador de soluciones


La parte del nombre de cualquier conjunto de opciones globales que cree es el prefijo de personalización. Esto se
establece en función del editor de soluciones para la solución en la que trabaja. Si le interesa el prefijo de
personalización, asegúrese de que está trabajando en una solución no administrada donde el prefijo de
personalización es el que desea para este conjunto de opciones globales. Más información: Cambiar el prefijo del
editor de soluciones
Ir a una solución no administrada
1. En el portal de PowerApps, seleccione Soluciones y, a continuación, en la barra de herramientas,
seleccione Cambiar a clásico.
2. En la lista Todas las soluciones seleccione la solución no administrada que desee.

Ver conjuntos de opciones globales


Con el explorador de soluciones abierto, en Componentes seleccione Conjuntos de opciones.
NOTE
Algunos conjuntos de opciones globales del sistema no se pueden personalizar. Estas opciones pueden cambiar con
actualizaciones o nuevas versiones, por lo que le recomendamos que no los use a menos que esté seguro de que sus
requisitos se alinean con la manera en que Common Data Service usa estos valores.

Creación de un conjunto de opciones global


NOTE
No es necesario crear un conjunto de opciones global antes usarlo en un campo personalizado. Al crear un nuevo campo de
conjunto de opciones tiene la opción de crear un nuevo conjunto de opciones global o usar uno existente. Vea Opciones de
campos Conjunto de opciones

Mientras ve conjuntos de opciones globales, haga clic en Nuevo para abrir un formulario para definir el conjunto
de opciones global.

Escriba un Nombre para mostrar que será visible para las personas con rol de administrador del sistema o
personalizador que elegirán este conjunto de opciones global al definir los nuevos campos que lo usen. Este
nombre no estará visible para las personas que usen sus aplicaciones.
Se generará un valor de campo Nombre en función del valor de Nombre para mostrar que escriba. Incluirá el
prefijo de personalización del editor de soluciones en el contexto de la solución en la que está trabajando. Puede
cambiar la parte generada del valor del campo Nombre antes de guardar.
Escribir una Descripción para el conjunto de opciones global.
TIP
Use la Descripción para explicar el objetivo de este conjunto de opciones global. Este valor no es visible para los usuarios de
la aplicación, es para otras personas con rol de administrador del sistema o personalizador que quieran saber para qué se
creó este conjunto de opciones global concreto.

Configurar opciones
Para definir opciones, en el área Opciones haga clic en para agregar una opción.
Para cada opción puede agregar los siguientes valores de propiedad

PROPIEDAD DESCRIPCIÓN

Etiqueta El texto localizable de la opción.

Valor El valor numérico de la opción. Se prefija con un valor definido


en el editor de soluciones para la solución en la que está
trabajando. Este prefijo ayuda a garantizar que el valor será
distinto de los valores de opción definidos en otra solución e
importados en el entorno.

Valor externo Este valor se usa para que las entidades virtuales asignen un
valor de un origen de datos externos con esta opción.

Descripción Un lugar para registrar el objetivo de esta opción. Este valor


no se muestra a los usuarios de la aplicación.

Color Especifica un color para los gráficos de esta opción.


Sugerencia: use un sitio como w3schools.com HTML Color
Picker para ver los valores de códigos hexadecimal de los
colores.

Use los otros iconos de la barra de herramientas de opciones para realizar las operaciones siguientes:

ICONO OPERACIÓN

Quitar la opción seleccionada

Subir la opción seleccionada

Baja la opción seleccionada

Ordenar las opciones por etiqueta en orden ascendente

Ordenar las opciones por etiqueta en orden descendente

Edición de un conjunto de opciones global


Mientras ve conjuntos de opciones globales, seleccione el conjunto de opciones que desea editar para abrir el
panel para editarlo.
Con la excepción de cambiar el valor del campo Nombre o el Valor del número asignado a una opción, puede
realizar cualquier de los cambios que puede al crear el conjunto de opciones global.
WARNING
Si quita una opción que haya sido usada por un registro de entidad, los datos para ese registro dejarán de ser válidos
cuando guarde los cambios en el conjunto de opciones globales.
Antes de quitar una opción que haya sido usada debe cambiar a un valor válido los datos de los registros de entidad que
usen esa opción.

Eliminar un conjunto de opciones global


Para eliminar un conjunto de opciones global, mientras ve la lista seleccione el comando en la barra de
comandos.

IMPORTANT
Si el conjunto de opciones global se ha usado para un campo, no podrá eliminarlo hasta que se elimine ese campo.

Vea también
Crear y editar conjuntos de opciones globales para Common Data Service
Crear un conjunto de opciones
Crear y editar campos
Documentación para desarrolladores: Personalizar conjuntos de opciones globales
Definir campos calculados para automatizar los
cálculos manuales
25/11/2019 • 22 minutes to read • Edit Online

Usar campos calculados para automatizar los cálculos manuales usados en los procesos de negocio.
Por ejemplo, un comercial puede querer conocer los ingresos ponderados de una oportunidad que se basan en
los ingresos estimados de una oportunidad multiplicados por la probabilidad. O bien, automáticamente desea
aplicar un descuento, si un pedido es superior a $500. Un campo calculado puede que contenga valores
resultado de simples operaciones matemáticas, u operaciones condicionales, por ejemplo, Mayor que o If-Else, y
muchos otras. Puede llevar a todo esto utilizando PowerApps, sin necesidad de escribir código.

Capacidades
Los campos calculados usan campos de la entidad actual o de entidades principales relacionadas.
El soporte de expresión está disponible en los campos de la entidad actual y las entidades principal
relacionadas en las secciones Condición y las secciones Acción. Las funciones integradas incluyen:
ADDHOURS, ADDDAYS, ADDWEEKS, ADDMONTHS, ADDYEARS, SUBTRACTHOURS,
SUBTRACTDAYS, SUBTRACTWEEKS, SUBTRACTMONTHS, SUBTRACTYEARS, DIFFINDAYS,
DIFFINHOURS, DIFFINMINUTES, DIFFINMONTHS, DIFFINWEEKS, DIFFINYEARS, CONCAT,
TRIMLEFT y TRIMRIGHT.
Un soporte condicional rico proporciona bifurcación y condiciones múltiples. Las operaciones lógicas incluyen
los operadores AND y OR.
Las funcionalidades de edición visual incluyen una moderna interfaz de usuario e intellisense en la sección
ACCIÓN.
Una integración sin problemas de los campos calculados con formularios, vistas, gráficos e informes está
disponible en tiempo real.
Puede configurar campos calculados para usar controles personalizados.

Escenarios
Ingresos ponderados: Ingresos estimados multiplicados por probabilidad
Valor neto: Activos restados de los pasivos de una cuenta determinada
Costo de mano de obra: Tasa base hasta 40 horas, más horas extras adicionales
Número de contacto: Número de teléfono para una cuenta o contacto basados en una oportunidad
Puntuación de cliente potencial: Un campo que proporciona ideas sobre la calidad de un cliente potencial
determinado
Seguimiento por: Seguimiento de una actividad por un número especificado de días en función de su
prioridad

IMPORTANT
Para crear un campo calculado debe tener el privilegio de Escritura en la entidad Perfil de seguridad de campo. Si el campo
calculado usa los campos protegidos en un cálculo, debe considerar proteger el campo calculado también, para evitar que
los usuarios accedan a datos para los que no tienen suficientes permisos. El editor del campo calculado proporciona una
advertencia, si usted está creando un campo calculado que usa campos protegidos en un cálculo, sugiriendo que proteja el
campo calculado. Más información: Seguridad de nivel de campo para controlar el acceso.
Crear un campo calculado
Use el editor de campos para especificar un campo calculado. En este ejemplo usaremos PowerApps pero los
pasos son similares con el explorador de soluciones. Más información: Crear y editar campos
1. AbrirPowerApps
2. Expanda Datos > Entidades.
3. Seleccione la entidad que desee y que elija Campos. Elija Agregar campo.
4. Indique la información necesaria para el campo, incluidos el Nombre para mostrar, el Nombre y el Tipo
de datos.
5. Si el tipo de datos es uno de los tipos que admiten campos calculados, puede convertir el campo en un
campo calculado seleccionando Agregar > Cálculo.

Estos son los tipos de campos que admiten cálculos:


Texto
Conjunto de opciones
Dos opciones
Número entero
Número decimal
Divisa
Fecha y hora
6. Si selecciona Cálculo, debe guardar los cambios en la entidad. Haga clic en Guardar en el cuadro de
diálogo Cambios pendientes para continuar.
7. Se abrirá el editor de definiciones del campo calculado, donde se ha creado el nuevo campo calculado,
pero no se ha establecido ninguna fórmula. La definición del campo calculado consta de dos secciones:
CONDICIÓN y ACCIÓN.
En la sección Condición puede especificar una entidad, un campo, un operador, tipo y un valor. En la lista
desplegable para Entidad, puede seleccionar una entidad actual o una entidad relacionada. En el cuadro
desplegable Campo tiene una selección de todos los campos disponibles para la entidad. Según el operador
que elija, puede ser necesario proporcionar el tipo y el valor. Puede especificar varias condiciones mediante
los operadores AND o OR
En la sección Acción, proporcione la fórmula para el campo calculado.

NOTE
Puede usar datos de registros de búsqueda en la acción. Primero tiene que seleccionar el campo de búsqueda y después
especificar un período. Después, puede seleccionar uno de los campos disponibles en la entidad relacionada. Por ejemplo,
en el caso de <LookupFieldName>.<RelatedFieldName> , puede seleccionar: ParentAccountId.AccountNumber .
Tenga en cuenta que la seguridad de nivel de campo se omitirá en la entidad relacionada, por lo que si hay datos
confidenciales en el campo al que se ha accedido le recomendamos que también proteja el campo calculado.

Ejemplos
Veamos ejemplos de campos calculados con mayor detalle.
Ingresos ponderados de oportunidad
En este ejemplo usamos los campos de la entidad de oportunidad para calcular los ingresos ponderados basados
en la probabilidad de la oportunidad. En el editor de campos para una entidad de oportunidad, creamos un
campo denominado Ingresos ponderados y especificamos el tipo de campo como Calculado y el tipo de datos
como Divisa.
En el editor de definición de campos calculados, en la sección Condición, especificamos la oportunidad con el
Estado = Abierto. En la ACCIÓN, la fórmula calcula los ingresos ponderados a partir de los ingresos estimados
de la oportunidad multiplicados por la probabilidad de la oportunidad. Las siguientes capturas de pantalla
muestran paso a paso cómo definir el campo calculado Ingresos ponderados.
Fije la condición de las oportunidades:
Proporcione la fórmula para los ingresos ponderados:

En conjunto:

Fecha de seguimiento de oportunidad


En este ejemplo utilizamos los campos del cliente potencial que originó una oportunidad para calcular la fecha
adecuada para realizar seguimiento de la oportunidad.
En el editor de campos para una entidad de oportunidad, creamos un campo denominado Fecha de
seguimiento y especificamos el tipo de campo como Calculado y el tipo de datos como Fecha y hora.
En el editor de definiciones de campos calculados, en la sección Condición, especificamos dos condiciones: plazo
de tiempo de la compra y valor estimado de cliente potencial.
En ACCIÓN, proporcionamos dos fórmulas:
Seguimiento a una semana de la oportunidad inmediata
Seguimiento a un mes si no es probable que la oportunidad ocurra inmediatamente.
Las siguientes capturas de pantalla muestran paso a paso cómo definir el campo calculado Fecha de
seguimiento.
Fije las dos condiciones del cliente potencial original:

Proporcione la fórmula para seguimiento a una semana:


Proporcione la fórmula para seguimiento a un mes:

En conjunto:
Días desde la creación de un registro
En este ejemplo, usamos la función DIFFINDAYS para calcular la diferencia en días desde la hora en que se creó
un registro hasta la fecha actual.
Cree un nuevo campo de número entero llamado Diferencia calculada en días.
Proporcione la fórmula para calcular la diferencia en días

En conjunto:
Sintaxis de funciones
La siguiente tabla contiene información acerca de la sintaxis de las funciones suministradas en la sección
ACCIÓN del campo calculado.

TIP
Los nombres de función se especifican en letras mayúsculas.

SINTAXIS DE LA FUNCIÓN DESCRIPCIÓN TIPO DEVUELTO

ADDDAYS (número entero, fecha y Devuelve una nueva fecha y hora que Fecha y hora
hora) es igual a la fecha y hora dadas, más el
número de días especificado.

ADDHOURS (número entero, fecha y Devuelve una nueva fecha y hora que Fecha y hora
hora) es igual a la fecha y hora dadas, más el
número de horas especificado.

ADDMONTHS (número entero, fecha Devuelve una nueva fecha y hora que Fecha y hora
y hora) es igual a la fecha y hora dadas, más el
número de meses especificado.

ADDWEEKS (número entero, fecha y Devuelve una nueva fecha y hora que Fecha y hora
hora) es igual a la fecha y hora dadas, más el
número de semanas especificado.

ADDYEARS (número entero, fecha y Devuelve una nueva fecha y hora que Fecha y hora
hora) es igual a la fecha y hora dadas, más el
número de años especificado.

SUBTRACTDAYS (número entero, Devuelve una nueva fecha y hora que Fecha y hora
fecha y hora) es igual a la fecha y hora dadas, menos
el número de días especificado.

SUBTRACTHOURS (número entero, Devuelve una nueva fecha y hora que Fecha y hora
fecha y hora) es igual a la fecha y hora dadas, menos
el número de horas especificado.

SUBTRACTMONTHS (número entero, Devuelve una nueva fecha y hora que Fecha y hora
fecha y hora) es igual a la fecha y hora dadas, menos
el número de meses especificado.
SINTAXIS DE LA FUNCIÓN DESCRIPCIÓN TIPO DEVUELTO

SUBTRACTWEEKS (número entero, Devuelve una nueva fecha y hora que Fecha y hora
fecha y hora) es igual a la fecha y hora dadas, menos
el número de semanas especificado.

SUBTRACTYEARS (número entero, Devuelve una nueva fecha y hora que Fecha y hora
fecha y hora) es igual a la fecha y hora dadas, menos
el número de años especificado.

DIFFINDAYS (fecha y hora, fecha y Devuelve la diferencia en días entre dos Número entero
hora) campos Fecha y hora. Si ambas fechas
y horas coinciden en el mismo día, la
diferencia es cero.

DIFFINHOURS (fecha y hora, fecha y Devuelve la diferencia en horas entre Número entero
hora) dos campos Fecha y hora.

DIFFINMINUTES (fecha y hora, fecha y Devuelve la diferencia en minutos entre Número entero
hora) dos campos Fecha y hora.

DIFFINMONTHS (fecha y hora, fecha y Devuelve la diferencia en meses entre Número entero
hora) dos campos Fecha y hora. Si ambas
fechas y horas coinciden en el mismo
mes, la diferencia es cero.

DIFFINWEEKS (fecha y hora, fecha y Devuelve la diferencia en semanas Número entero


hora) entre dos campos Fecha y hora. Si
ambas fechas y horas coinciden en la
mismo semana, la diferencia es cero.

DIFFINYEARS (fecha y hora, fecha y Devuelve la diferencia en años entre Número entero
hora) dos campos Fecha y hora. Si ambas
fechas y horas coinciden en el mismo
año, la diferencia es cero.

CONCAT (una línea de texto, una línea Devuelve una cadena que es el Cadena
de texto, ... línea de texto única) resultado de concatenar dos o más
cadenas.

TRIMLEFT (una línea de texto, número Devuelve una cadena que contiene una Cadena
entero) copia de una cadena especificada sin
los primeros N caracteres.

TRIMRIGHT (una línea de texto, Devuelve una cadena que contiene una Cadena
número entero) copia de una cadena especificada sin
los últimos N caracteres.

NOTE
Todas las funciones DIFF requieren que el primer campo de Fecha y hora y el segundo campo de Fecha y hora tengan el
mismo comportamiento: Local del usuario, Solo fecha o Independiente de zona horaria. Si no coincide el
comportamiento del segundo campo con el comportamiento del primer campo, el mensaje de error aparece, indicando que
el segundo campo no se puede usar en la función actual. Más información: Comportamiento y formato del campo de fecha
y hora.
NOTE
No puede especificar una fecha, como 01/01/2015, como el valor Fecha en un campo calculado. Los valores de Fecha y
Fecha y hora solo se pueden configurar o comparar usando otros campos Fecha y hora.

En la función CONCAT , puede usar cadenas literales como líneas individuales de texto, campos de entidad que
contienen una sola línea de texto, o una combinación de ambos. Por ejemplo: CONCAT (FirstName, LastName,
"es un jefe"). Si una cadena literal contiene comillas, preceda cada marca con el carácter de escape de barra
diagonal inversa (\), de este modo: This string contains the \"quotation marks.\" . Esto garantiza que las
comillas dentro de cadena no se tratan como caracteres especiales que separan las cadenas.
Los siguientes ejemplos muestran cómo usar las funciones TRIMLEFT y TRIMRIGHT. Contienen las cadenas
iniciales y las cadenas resultantes, devueltas por las funciones TRIMLEFT y TRIMRIGHT:
TRIMLEFT (“RXX10-3456789”, 3), devuelve la cadena 10-3456789
TRIMRIGHT (“20-3456789RXX”, 3), devuelve la cadena 20-3456789

Consideraciones
Debe conocer determinadas condiciones y limitaciones cuando trabaja con campos calculados:
Las consultas, gráficos, y las visualizaciones guardados pueden tener un máximo de 10 campos calculados
únicos.
Los valores de los campos calculados no se muestran en modo sin conexión del cliente de Outlook en las
vistas de ventana o en los formularios principales de entidad.
El número máximo de los campos calculados encadenados es 5.
Un campo calculado no puede hacer referencia a sí mismo o tener cadenas cíclicas.
Si cambia uno de los operadores de condición en una cláusula de condición múltiple, todos los operadores de
condición se actualizarán a esa condición. Por ejemplo, en la cláusula IF (x > 50) OR (y ==10) OR (z < 5) , si
cambia el operador OR al operador AND , todos los operadores OR de la cláusula se convertirán en
operadores AND .
Puede obtener acceso a campos primarios mediante el campo de búsqueda en la entidad primaria, como
<LookupFieldName>.<FieldName> . Esto no es posible con los campos de búsqueda de varias entidades como
Cliente, que puede ser Cuenta o Contacto. Sin embargo, algunas entidades tienen campos de búsqueda
individuales para una entidad específica, como ParentAccountid. <FieldName> o ParentContactid.
<FieldName> .
El orden está deshabilitado en:
Un campo calculado que contiene un campo de un registro primario.
Un campo calculado que contiene un campo lógico (por ejemplo, campo de dirección)
Un campo calculado que contiene otro campo calculado.
Los campos calculados pueden abarcar dos entidades sólo.
Un campo calculado puede contener un campo de otra entidad (que abarca dos entidades - entidad
actual y registro primario).
Un campo calculado no puede contener un campo calculado procedente de otra entidad que también
contenga otro campo de una entidad distinta (abarcando tres entidades):
(Entidad actual) Campo calculado ← (Registro primario) Campo calculado 1 ← (Registro primario)
Campo calculado 2.
No se pueden desencadenar flujos de trabajo o complementos en los campos calculados.
No puede cambiar un campo simple existente en un campo calculado. Si la aplicación actual está usando
JavaScript o complementos para calcular un campo, no podrá usar la característica de campos calculados sin
crear un nuevo campo.
Las reglas de detección de duplicados no se activan en campos calculados.
Un consolidado no puede hacer referencia a un campo calculado que use otro campo calculado, incluso si
todos los campos del otro campo calculado están en la entidad actual.
Vea también
Crear y editar campos
Definir campos consolidados que agregan valores
Vídeo: Campos consolidados y calculados
Definir campos consolidados que agregan valores
25/11/2019 • 25 minutes to read • Edit Online

Los campos consolidados ayudan a los usuarios a obtener ideas sobre los datos supervisando indicadores clave
de negocio. Un campo consolidado contiene un valor agregado calculado a través de los registros relacionados
con un registro específico. Esto incluye entidades normales y entidades de actividad, como correos electrónicos y
citas.
En situaciones más complejos, puede agregar datos a la jerarquía de registros. Como administrador o
personalizador, puede definir campos consolidados mediante las herramientas de personalización de
PowerApps, sin necesidad de escribir código.

Ventajas y funciones de los campos consolidados


Las ventajas y funciones de los campos consolidados incluyen lo siguiente:
La edición visual es fácil. Puede crear campos consolidados utilizando el Editor de campos, como cuando crea
un campo regular.
Amplia selección de las capacidades agregadas. Puede agregar datos mediante las siguientes funciones: SUM ,
COUNT , MIN , MAX y AVG .
Soporte de filtro completo para agregado. Puede configurar varios filtros para la entidad de origen o la
entidad relacionada mientras establece varias condiciones.
Integración sin problemas con la interfaz de usuario. Puede incluir campos consolidados en formularios,
vistas, gráficos e informes.
Los campos consolidados son componentes de la solución. Puede transportar fácilmente los campos
consolidados como componentes entre los entornos y distribuirlos en soluciones.
Los campos consolidados y los campos calculados son complementarios entre sí. Puede usar un campo
consolidado como parte del campo calculado, y viceversa.
Puede configurar campos consolidados para usar controles personalizados.
Algunos ejemplos de los campos consolidados:
Ingresos estimados totales de oportunidades abiertas de una cuenta
Ingresos estimados totales de oportunidades abiertas de todas las cuentas de una jerarquía
Ingresos estimados totales de una oportunidad incluidas oportunidades secundarias
Valor estimado total de clientes potenciales calificados generados por una campaña
Número de casos abiertos de alta prioridad en todas las cuentas de una jerarquía
Hora de creación más temprana de todos los casos abiertos de alta prioridad para una cuenta
Cada campo consolidado crea dos campos accesorios con el patrón de sufijos <fieldname> _date y
<fieldname> _state . El campo _date contiene datos de fecha y hora y el campo _state contiene datos de
enteros. El campo _state tiene los siguientes valores:

VALUE ESTADO DESCRIPCIÓN

0 NotCalculated El valor del campo aún está por


calcular.
VALUE ESTADO DESCRIPCIÓN

1 Calculado El valor del campo se ha calculado de


acuerdo con la última hora de
actualización en el campo _date.

2 OverflowError El cálculo del valor del campo dio lugar


a error de desbordamiento.

3 OtherError No se pudo calcular el valor del campo


debido a un error interno. La siguiente
ejecución del trabajo de cálculo lo
corregirá probablemente.

4 RetryLimitExceeded El cálculo del valor del campo produjo


un error porque el número máximo de
reintentos de calcular el valor se ha
excedido debido al número elevado de
conflictos de la simultaneidad y
bloqueo.

5 HierarchicalRecursionLimitReached El cálculo del valor del campo produjo


un error porque se alcanzó el límite
máximo de la profundidad de la
jerarquía para el cálculo.

6 LoopDetected El cálculo del valor del campo produjo


error porque se detectó un bucle
recursivo en la jerarquía del registro.

Cálculos consolidados
Las consolidaciones son calculadas por los trabajos del sistema programados que se ejecutan asincrónicamente
en segundo plano. Usted tiene que ser administrador para ver y administrar los trabajos consolidados.
Ver trabajos consolidados
Para ver los trabajos consolidados:
1. Mientras visualiza la Solución predeterminada de Common Data Service, edite la dirección URL,
quitando todo lo que hay después de dynamics.com y actualizado la página.
2. En el área Configuración seleccione Sistema > Trabajos del sistema.
3. En el selector de vistas, elija Trabajos del sistema periódicos.
4. Para buscar rápidamente un trabajo relevante, puede filtrar por el tipo de trabajo del sistema: Cálculo
masivo de campos consolidados o Calcular campo consolidado.
Cálculo masivo de campos consolidados
El Cálculo masivo de campos consolidados es un trabajo periódico, creado por un campo consolidado. Se
ejecuta una vez, después de crear o actualizar un campo consolidado. El trabajo recalcula el valor del campo
consolidado especificado en todos los registros existentes que contienen este campo. De forma predeterminada,
el trabajo se ejecutará 12 horas después de crear o actualizar un campo. Una vez que complete el trabajo, se
programa automáticamente para ejecutarse en un futuro lejano, aproximadamente, en 10 años. Si se modifica el
campo, el trabajo se reinicializa para ejecutarse de nuevo en 12 horas después de la actualización. El retraso de
12 horas es necesario para garantizar que el Cálculo masivo de campos consolidados se ejecuta durante las
horas no operativas del entorno. Se recomienda que un administrador ajuste la hora de inicio de un trabajo de
Cálculo masivo de campos consolidados después de que se cree o se edite el campo consolidado, de tal
forma que se ejecute en horas no operativas. Por ejemplo, un buen momento para ejecutar el trabajo podría ser
a medianoche, para garantizar un procesamiento eficaz de los campos consolidados.
Calcular campo consolidado
Calcular campo consolidado es un trabajo periódico que realiza cálculos incrementales de todos los campos
consolidados en los registros existentes para una entidad especificada. Solo hay un trabajo de Calcular campo
consolidado por entidad. Los cálculos incrementales suponen que el trabajo Calcular campo consolidado
procesa los registros creados, actualizados o eliminados después de la última ejecución terminada del trabajo de
Cálculo masivo de campos consolidados. El valor de periodicidad predeterminado máximo es una hora. El
trabajo se crea automáticamente cuando el primer campo consolidado de una entidad se crea y elimina cuando
se elimina el último campo consolidado.

Opción de recálculo en línea


Si coloca el mouse sobre el campo consolidados del formulario, puede ver la hora de la última consolidación y
puede actualizar el valor de consolidación seleccionando el icono Actualizar junto al campo, como se muestra a
continuación:

Existen algunas consideraciones que debe tener presentes cuando usa la opción recálculo en línea (actualización
manual en el formulario):
Debe tener privilegios de escritura sobre la entidad y derechos de acceso de escritura sobre el registro de
origen en el que está solicitando la actualización. Por ejemplo, si está calculando los ingresos estimados de las
oportunidades abiertas de una cuenta, no es necesario tener privilegios de escritura en la entidad de
oportunidad, únicamente en la entidad de cuenta.
Esta opción solo está disponible en modo online. No puede usarla mientras trabaja sin conexión.
El número máximo de registros durante la actualización de consolidado se limita a 50.000 registros. En caso
de la consolidación jerárquica, esto se aplica a los registros relacionados a través de la jerarquía. Si se supera
el límite, recibe un mensaje de error: Los cálculos no se pueden realizar en línea porque el límite de cálculo de
50.000 registros relacionados se ha alcanzado. Este límite no se aplica cuando los trabajos del sistema
recalculan la consolidación automáticamente.
La profundidad máxima de la jerarquía está limitada a 10 para el registro de origen. Si se supera el límite,
recibe un mensaje de error: Los cálculos no se pueden realizar en línea porque se ha alcanzado el límite de
profundidad de jerarquía de 10 para el registro de origen. Este límite no se aplica cuando los trabajos del
sistema recalculan la consolidación automáticamente.

Modificación de la periodicidad de trabajo consolidado


Como administrador del sistema, puede modificar el patrón de periodicidad del trabajo consolidado, posponer,
pausar o reanudar el trabajo consolidado. Sin embargo, no puede cancelar o eliminar un trabajo consolidado.
Para pausar, posponer, reanudar o editar el patrón de periodicidad, debe ver los trabajos del sistema.Más
información Ver trabajos consolidados
En la barra de navegación, elija Acciones y seleccione la acción que desee.
Para el trabajo Cálculo masivo de campos consolidados, las selecciones disponibles son: Reanudar,
Posponer y Pausa.
Para el trabajo Calcular campo consolidado, las selecciones disponibles son: Modificar periodicidad,
Reanudar, Posponer y Pausa.

Ejemplos
Veamos varios ejemplos de campos consolidados. Agregaremos los datos para un registro de los registros
relacionados, usando y sin usar una jerarquía. También agregaremos datos para un registro desde actividades
relacionadas y actividades relacionadas indirectamente con un registro mediante la entidad ActivityParty. En
cada ejemplo, definimos el campo consolidado mediante el Editor de campos. Para abrir el Editor de campo, abra
el explorador de soluciones y expanda Componentes > Entidades. Seleccione la entidad que desee y
seleccione Campos. Elija Nuevo. En el editor, proporcione la información necesaria para el campo, incluidos
Tipo de campo y Tipo de datos. En Tipo de campo, seleccione Consolidado, después de seleccionar el tipo
de datos. Los tipos de datos incluyen decimales o números enteros, divisa y fecha y hora. Elija el botón Editar
junto a Tipo de campo. Esto le llevará al editor de definiciones de campos consolidados. La definición de campo
consolidado consta de tres secciones: Entidad de origen, Entidad relacionada y Agregado.
En la sección Entidad de origen, especifique la entidad para la que se define el campo consolidado y si
agrega o no sobre una jerarquía. Puede agregar filtros con varias condiciones para especificar los
registros de la jerarquía que desee usar para la consolidación.
En la sección Entidad relacionada, especifique la entidad sobre la que desea agregar. Esta sección es
opcional cuando selecciona consolidar sobre la jerarquía de la entidad de origen. Puede agregar filtros
con varias condiciones para especificar qué registros relacionados desea usar en el cálculo. Por ejemplo,
se incluyen los ingresos de las oportunidades abiertas con unos ingresos anuales mayores que $1000.
En la sección Agregado, especifique la métrica que desea calcular. Puede elegir funciones de agregado
disponibles, como SUM, COUNT, MIN, MAX o AVG.
Agregar datos para un registro desde registros relacionados
En este ejemplo, no se usa una jerarquía. Los ingresos estimados totales se calculan para una cuenta, a partir de
las oportunidades abiertas relacionadas.
Agregar datos para un registro desde los registros secundarios sobre la jerarquía
En este ejemplo, calculamos los ingresos estimados totales de una oportunidad incluidas las oportunidades
secundarias sobre la jerarquía.

Agregar datos para un registro desde los registros relacionados sobre la jerarquía
En este ejemplo, calculamos los ingresos estimados totales de oportunidades abiertas en todas las cuentas sobre
la jerarquía.
Agregar datos para un registro desde todas las actividades relacionadas
En este ejemplo, calculamos el tiempo total invertido y facturado de todas las actividades relacionadas con una
cuenta. Esto puede incluir el tiempo empleado en el teléfono, en citas o en actividades personalizadas.
En versiones anteriores, podía definir un campo consolidado para una actividad individual, como una llamada de
teléfono, fax, o una cita. Pero, para conseguir el resultado del ejemplo que se muestra a continuación, tenía que
calcular el total de los datos mediante los campos calculados. Ahora, puede hacer todo en un paso definiendo un
campo consolidado para la entidad Actividad.

Agregar datos para un registro desde todas las actividades relacionadas y actividades relacionadas
indirectamente mediante la entidad Grupo de actividad
En este ejemplo, contamos el número total de correos electrónicos enviados a una cuenta, donde cuenta aparece
en la línea "Destinatario Para" o “Destinatario CC". Esto se realiza especificando el Tipo de participación en
FILTROS para la entidad Grupo de actividad en la definición de campo consolidado. Si no usa filtros, todos los
tipos de participación disponibles para una actividad se usan en el cálculo.
Para obtener más información acerca de la entidad Grupo de actividad y los tipos de participación disponibles
para una actividad determinada, vea Entidad ActivityParty.

Agregar datos para un registro desde registros relacionados utilizando el operador AVG
En este ejemplo, calculamos ingresos estimados medios de todas las oportunidades relacionadas con una
cuenta.

En el siguiente ejemplo se muestra cómo calcular los ingresos estimados medios de oportunidades relacionadas
a través de una jerarquía de cuentas. Los ingresos estimados medios se pueden ver en cada nivel de la jerarquía.
Consideraciones sobre los campos consolidados
Debe conocer determinadas condiciones y restricciones cuando trabaja con campos consolidados:
Puede definir un máximo de 100 campos consolidados para la organización y de hasta 10 campos
consolidados por entidad.
Las actualizaciones de campos consolidados no pueden desencadenar un flujo de trabajo.
Una condición de espera de flujo de trabajo no puede usar un campo consolidado.
No se admite una consolidación sobre un campo consolidado.
Un consolidado no puede hacer referencia a un campo calculado que use otro campo calculado, incluso si
todos los campos del otro campo calculado están en la entidad actual.
La consolidación sólo puede aplicar filtros a la entidad de origen o entidades relacionadas, campos sencillos o
campos calculados no complejos.
Solo se puede realizar una consolidación sobre entidades relacionadas con la relación 1:N. No se puede
realizar una consolidación sobre las relaciones N:N.
No se puede realizar una consolidación sobre la relación 1:N para la entidad Actividad o la entidad Grupo de
actividad.
Las reglas de negocio, los flujos de trabajo o los campos calculados usan siempre el último valor calculado
del campo consolidado.
Un campo consolidado se agrega en el contexto del usuario del sistema. Todos los usuarios pueden ver el
mismo valor de campo consolidado. Puede controlar la visibilidad del campo consolidado con la seguridad de
nivel de campo (FLS ), limitando quién tiene acceso al campo consolidado. Más información Seguridad de
nivel de campo para controlar el acceso.
Redondeo de precisión
Si la precisión del campo agregado es mayor que la precisión del campo consolidado, la precisión del campo
agregado se redondea a la precisión del campo consolidado, antes de que se realice la agregación. Para ilustrar
este comportamiento miremos un ejemplo específico. Digamos que el campo consolidado en la entidad de
cuenta, para calcular los ingresos totales estimados de las oportunidades relacionadas, tiene una precisión de
dos decimales. El campo Ingresos estimados de la entidad de oportunidad es el campo agregado con la
precisión de cuatro decimales. En nuestro ejemplo, la cuenta tiene dos oportunidades relacionadas. La suma
agregada de los ingresos estimados se calcula de este modo:
1. Ingresos estimados para la primera oportunidad: $1000,0041
2. Ingresos estimados para la segunda oportunidad: $2000,0044
3. Suma agregada de ingresos Ingresos: 1000,00 $ + 2000,00 $ = 3000,00 $
Como puede ver, la precisión se redondea a dos decimales en el campo agregado antes de que se realice la
agregación.
Diferente comportamiento de cuadrículas asociadas
Algunos formularios de entidades, como Cuenta o Contacto, contienen las cuadrículas asociadas de forma
predefinida. Por ejemplo, un formulario de cuenta incluye contratos, casos, oportunidades y otras cuadrículas.
Algunos de los registros mostrados en las cuadrículas de formulario de cuenta están relacionados directamente
con el registro de cuenta; otros, indirectamente, a través de relaciones con otros registros. En comparación, las
aplicaciones de agregación de campo consolidado utilizan únicamente relaciones directas definidas forma
explícita en la definición del campo consolidado. No se consideran otras relaciones. Para mostrar la diferencia de
comportamiento, miremos el siguiente ejemplo.
1. La cuenta A1 tiene un contacto principal, P1. El caso C1 está asociado a la cuenta A1 (C1.campo de cliente =
A1) y el caso C2 está asociado al contacto P1 (C2.campo de cliente = P1).
2. La cuadrícula Casos en el formulario Cuenta para el registro A1 muestra dos casos, C1 y C2.
3. El campo consolidado en la entidad de cuenta, denominado Número total de casos, se usa para contar los
casos asociados con la cuenta.
4. En la definición de campo consolidado de cuenta, especificamos los casos que tienen la relación de cliente con
la cuenta. Después de la agregación, el Número total de casos es igual a 1 (caso C1). El caso C2 no se incluye
en el total, que se relaciona directamente con el contacto, no con la cuenta y no se puede definir
explícitamente en la definición del campo consolidado de cuenta. Como resultado, el número total de casos
devueltos por la operación consolidada no coincide con el número de casos que se muestra en la cuadrícula
Casos.
Vea también
Crear y editar campos
Definir campos calculados
Comportamiento y formato del campo de fecha y hora
Definir y consultar datos relacionados jerárquicamente
Vídeo: Campos consolidados y calculados
Vídeo: Usar Power BI
Asignar campos de entidad
25/11/2019 • 9 minutes to read • Edit Online

Puede asignar atributos entre entidades que tienen una relación de entidad. Esto le permite establecer valores
predeterminados para un registro creado en el contexto de otro registro.

Una forma más fácil de crear nuevos registros en aplicaciones


controladas por modelos
Supongamos que los usuarios desean agregar un nuevo registro de contacto para una persona que es un
empleado de una cuenta específica. Pueden hacerlo de dos maneras distintas:
La forma complicada
Pueden navegar simplemente a la aplicación para crear un nuevo registro de contacto desde cero. No obstante,
luego deberán establecer la cuenta primaria y especificar varios elementos de información (como información de
dirección y número de teléfono) que probablemente coincidirán con los de la cuenta primaria. Esto puede resultar
largo y presenta posibilidad de errores.
La forma más fácil
La forma más sencilla es empezar con la entidad de cuenta y, mediante la subcuadrícula Contactos del
formulario, seleccionar + para agregar un contacto. Primero guiará a los usuarios a buscar un contacto
relacionado existente para que no creen accidentalmente un registro duplicado. Si no encuentran un registro
existente, pueden seleccionar Nuevo y crear un nuevo registro de contacto.
El nuevo formulario de registro de contacto incluirá cualquiera de los valores de atributo asignados de la cuenta
(como información de dirección y de teléfono) como los valores predeterminados. Los usuarios pueden editar
estos valores antes de guardar el registro.

Cómo funciona
Cuando asigna campos de entidad para una relación de entidad 1:N, algunos datos del registro de entidad
principal se copiarán en el nuevo formulario de la entidad relacionada para definir los valores predeterminados
que los usuarios pueden editar antes de guardar.

NOTE
Estas asignaciones solo establecen los valores predeterminados en un registro antes de guardarlo. Los usuarios pueden
modificar los valores antes de guardarlos. Los datos se transfieren son los datos en ese momento. No se sincroniza si
cambian los datos de origen más adelante.
Estas asignaciones no se aplican a los registros relacionados creados mediante un flujo de trabajo o un proceso de diálogo.
No se aplican automáticamente a los nuevos registros creados mediante código, aunque los desarrolladores pueden usar un
mensaje especial llamado InitializeFrom (Función InitializeFrom o Clase InitializeFromRequest) para crear un nuevo
registro mediante las asignaciones disponibles.

Abra el explorador de soluciones


La única forma de asignar campos de una entidad es usar el explorador de soluciones.
Ir a una solución no administrada
1. En el portal de PowerApps, seleccione Soluciones y, a continuación, en la barra de herramientas,
seleccione Cambiar a clásico.
2. En la lista Todas las soluciones seleccione la solución no administrada que desee.
La asignación de campos se realiza en el contexto de una relación de entidad 1:N o N:1, de modo que primero
debe ver las relaciones de entidad 1:N o N:1.

Ver los campos que se pueden asignar


Las asignaciones de campos no se definen realmente dentro de las relaciones de entidad, sino que se muestran en
la interfaz de usuario de la relación. No todas las relaciones de entidad de 1:N los tienen. Al ver una lista de
relaciones de entidad de 1:N (o N:1), puede filtrar las relaciones mostradas por tipo. Puede seleccionar Todo,
Personalizado, Personalizable o Se puede asignar. Las relaciones entre entidades que se pueden asignar
proporcionan acceso para permitir la asignación de campos de entidad.

Al abrir una relación de entidad que se puede asignar, seleccione Asignaciones en la navegación izquierda.

Eliminar asignaciones
Si existen asignaciones que no desea que se apliquen, puede seleccionarlas y hacer clic en el icono de icono.
Agregar nuevas asignaciones
Para crear una nueva asignación, en la barra de herramientas haga clic en Nuevo. Se abrirá el cuadro de diálogo
Crear asignación de campos.

Seleccione un campo de entidad de origen y campos de una entidad de destino con los valores que desee asignar.

A continuación, seleccione Aceptar para cerrar el cuadro diálogo.


Las siguientes reglas muestran qué tipos de datos se pueden asignar.
Los dos campos deben ser del mismo tipo y del mismo formato.
La longitud del campo de destino debe ser igual o mayor que la longitud del campo de origen.
El campo de destino no puede estar asignado a otro campo.
El campo de origen debe estar visible en el formulario.
El campo de destino debe ser un campo en el que un usuario pueda especificar datos.
Los valores de identificador de dirección no se pueden asignar.
Si realiza asignaciones a un campo (o desde este) que no aparece en un formulario, la asignación no se
efectuará hasta que se agregue el campo a un formulario.
Si los campos son conjuntos de opciones, los valores enteros de cada opción deben ser idénticos.
NOTE
Si necesita asignar campos de conjunto de opciones, se recomienda configurar ambos campos para que usen el mismo
conjunto de opciones globales. Si no, puede resultar difícil mantener dos conjuntos de opciones separados sincronizadas
manualmente. Si los valores enteros de cada opción no se asignan correctamente puede experimentar problemas con los
datos. Más información: Creación y edición de conjuntos de opciones globales para Common Data Service (listas
desplegables)

Generar asignaciones de campos automáticamente


También puede generar asignaciones automáticamente seleccionando Generar asignaciones en el menú Más
acciones.
Debe prestar atención al hacerlo con entidades del sistema. Use esta opción cuando cree entidades personalizadas
y desee aprovechar la asignación.

WARNING
Esto quita cualquier asignación existente y la reemplaza con asignaciones sugeridas que se basan únicamente en los campos
con nombres y tipos de datos similares. Si usa esto en una entidad del sistema, podría perder algunas asignaciones
esperadas. Para las entidades personalizadas, ayuda a ahorrar tiempo porque puede eliminar más fácilmente las asignaciones
que no desea y agregar otras que la acción de generar asignaciones no ha creado.

Publicación de personalizaciones
Puesto que las asignaciones de campos no son metadatos, debe publicarlas para que los cambios surtan efecto.
Vea también
Creación y edición de relaciones entre entidades 1:N (uno a varios) o N:1 (varios a uno) con el explorador de
soluciones
Documentación para desarrolladores: Personalizar asignaciones de atributos y entidades
Documentación para desarrolladores: API web para crear una nueva entidad desde otra entidad
Eliminar campos
25/11/2019 • 2 minutes to read • Edit Online

Como usuario con el rol de seguridad de administrador del sistema, puede eliminar campos personalizados que no
sean parte de una solución administrada. Si elimina campos, los datos almacenados en los campos se perderán. La
única forma de recuperar datos de un campo que se haya eliminado es restaurar la base de datos de un punto
anterior a la eliminación del campo.
Antes de poder eliminar una entidad personalizada, debe quitar las dependencias que pueden existir en otros
componentes de la solución. Abra el campo y use el botón Mostrar dependencias de la barra de menú para ver
los Componentes dependientes. Por ejemplo, si el campo se usa en un formulario o una vista, primero debe
quitar las referencias al campo en esos componentes de la solución.
Si elimina un campo de búsqueda, la relación de entidad 1:N correspondiente se eliminará automáticamente.

Pasos siguientes
Eliminación de entidades personalizadas
Aplicar la lógica de negocios en Common Data
Service
25/11/2019 • 2 minutes to read • Edit Online

Defina las reglas de negocio de una entidad que se aplica a todos los formularios de entidad y en el nivel de
servidor. Las reglas de negocio definidas para una entidad se aplican a las aplicaciones de lienzo y las aplicaciones
basadas en modelos si la entidad se usa en la aplicación. Más información: Crear una regla de negocio para una
entidad.

NOTE
Para definir una regla de negocio que se aplique a un formulario en una aplicación basada en modelos, consulte Crear reglas
de negocio para un formulario de aplicaciones controladas por modelos

También puede usar los procesos de Common Data Service clásicos, que son flujos de trabajo y acciones. Más
información: Microsoft Flow: Usar procesos de flujo de trabajo y Microsoft Flow: Información general sobre
acciones.

Vea también
Aplicar la lógica de negocios en aplicaciones basadas en modelos
Crear una regla de negocio para una entidad
25/11/2019 • 11 minutes to read • Edit Online

Puede crear reglas de negocio y recomendaciones para aplicar lógica y validaciones sin escribir código ni crear
complementos. Las reglas de negocio proporcionan una interfaz básica para implementar y mantener reglas de
rápida evolución y de uso general.

IMPORTANT
Las reglas de negocio definidas para una entidad se aplican a las aplicaciones de lienzo y las aplicaciones basadas en
modelos si la entidad se usa en la aplicación. No todas las acciones de reglas de negocio están disponibles en aplicaciones
de lienzo en este momento. Más información: Diferencias entre aplicaciones de lienzo y aplicaciones basadas en modelos

Para definir una regla de negocio que se aplique a un formulario en una aplicación basada en modelos, consulte Crear reglas
de negocio para aplicar lógica en un formulario de aplicaciones controladas por modelos.

Combinando condiciones y acciones puede realizar cualquiera de las siguientes reglas de negocio:
Establecer valores de campo
Borrar valores de campos
Establecer niveles de requisitos de campo
Mostrar u ocultar campos
Habilitar o deshabilitar campos
Validar datos y mostrar mensajes de error
Cree recomendaciones de negocio basadas en inteligencia empresarial.

Diferencias entre aplicaciones de lienzo y controladas por modelos


Las aplicaciones controladas por modelos pueden usar todas las acciones disponibles en las reglas de negocio,
aunque no todas las acciones de reglas de negocio están disponibles en aplicaciones de lienzo en este momento.
Las siguientes acciones no están disponible en aplicaciones de lienzo:
Mostrar u ocultar campos
Habilitar o deshabilitar campos
Cree recomendaciones de negocio basadas en inteligencia empresarial.

Requisitos previos
Para seguir este tema, debe cambiar a un entorno en el que pueda crear y editar entidades.

Creación de una regla de negocio


1. Inicie sesión en PowerApps y haga clic o pulse en la flecha hacia abajo para Datos cerca del borde
izquierdo.
2. En la lista que aparece, haga clic o pulse en Entidades.
3. Abra la entidad para la que desea crear la regla de negocio (por ejemplo, abra la entidad Cuenta) y haga
clic en la pestaña Reglas de negocio.
4. Haga clic en Nuevo.
La ventana del diseñador de reglas de negocio se abre con una sola condición ya creada para usted. Cada
regla empieza con una condición. La regla de negocio toma una o varias acciones basadas en esa
condición.

TIP
Si desea modificar una regla de negocio existente, debe desactivarla para poder editarla.

5. Agregue una descripción, si lo desea, en el cuadro de descripción en la esquina superior izquierda de la


ventana.
6. Establezca el ámbito, según lo siguiente:

Si selecciona este elemento… El ámbito se establece como...

Entidad Formularios controlador por modelos y servidor

Todos los formularios Formularios controlados por modelos

Formulario específico (formulario de Cuenta, por ejemplo) Simplemente ese formulario controlado por modelos

TIP
Si está creando una aplicación de lienzo, debe usar la entidad como ámbito.

7. Agregar condiciones. Para agrega más condiciones a su regla de negocio:


a. Arrastre el componente Condición de la pestaña Componentes hasta un signo más en el
diseñador.

b. Para establecer propiedades para la condición, haga clic en el componente Condición en la ventana
del diseñador y, a continuación establezca las propiedades en la pestaña Propiedades a la derecha
de la pantalla. A medida establezca propiedades, Common Data Service crea una expresión en la
parte inferior de la pestaña Propiedades.
c. Para agregar una cláusula adicional (AND u OR ) a la condición, haga clic en Nuevo en la pestaña
Propiedades para crear una nueva regla y, a continuación establezca las propiedades para dicha
regla. En el campo Lógica de la regla puede especificar si agrega la nueva regla como AND u OR.
d. Cuando termine de establecer propiedades para la condición, haga clic en Aplicar.
8. Agregar acciones. Para agregar una acción:
a. Arrastre uno de los componentes de acción desde la pestaña Componentes hasta un signo más
junto al componente Condición. Arrastre la acción a un signo más junto a una marca de
verificación si desea que la regla de negocio realice esa acción cuando la condición se cumple, o a un
signo más junto a una x si desea que la regla de negocio realice esa acción si la condición no se
cumple.

b. Para establecer propiedades para la acción, haga clic en el componente Acción en la ventana del
diseñador y, a continuación establezca las propiedades en la pestaña Propiedades.
c. Cuando termine de establecer propiedades, haga clic en Aplicar.
9. Agregue una recomendación de negocio. (Solo para controlado por modelos) Para agregar una
recomendación de negocio:
a. Arrastre el componente Recomendación desde una pestaña Componentes hasta un signo más
junto a un componente Condición. Arrastre el componente Recomendación a un signo más junto
a una marca de verificación si desea que la regla de negocio realice esa acción cuando la condición
se cumple, o a un signo más junto a una x si desea que la regla de negocio realice esa acción si la
condición no se cumple.
b. Para establecer propiedades para la recomendación, haga clic en el componente Recomendación
en la ventana del diseñador y, a continuación establezca las propiedades en la pestaña
Propiedades.
c. Para agregar más acciones a la recomendación, arrástrelas desde la pestaña Componentes y, a
continuación establezca propiedades para cada acción en la pestaña Propiedades.

NOTE
Al crear una recomendación, Common Data Service agrega una sola acción de forma predeterminada. Para
ver todas las acciones en una recomendación, haga clic en Detalles en el componente Recomendación.

d. Cuando termine de establecer propiedades, haga clic en Aplicar.


10. Para validar la regla de negocio, haga clic en Validar en la barra de acciones.
11. Para guardar la regla de negocio, haga clic en Guardar en la barra de acciones.
12. Para activar la regla de negocio, selecciónela en la ventana Explorador de soluciones y, a continuación haga
clic en Activar. No puede activar la regla de negocio desde la ventana del diseñador.

TIP
A continuación se proporcionan algunas sugerencias a tener presentes mientras trabaja en reglas de negocio en la
ventana del diseñador:
Para realizar una instantánea de todo en la ventana Reglas de negocio, haga clic en Instantánea en la barra de
acciones. Esto es útil, por ejemplo, si desea compartir y obtener comentarios en la regla de negocio de un
miembro del equipo.
Use el minimapa para navegar rápidamente a distintas partes del proceso. Esto es útil cuando tiene un proceso
complicado que se desplaza fuera de la pantalla.
A medida que agregue condiciones, acciones, y recomendaciones de negocio a la regla de negocio, Common
Data Service crea el código para la regla de negocio en la parte inferior de la ventana del diseñador. Este código
es de solo lectura.

Buscar los mensajes de error que se usan en reglas de negocio


Si tiene más de un idioma aprovisionado para su organización, deseará localizar los mensajes de error que haya
configurado. Cada vez que se establece un mensaje, el sistema genera la etiqueta. Si exporta las traducciones de
su organización, puede agregar versiones localizadas de sus mensajes y luego importar las etiquetas nuevamente
en Common Data Service, de modo que los usuarios que utilicen otros idiomas distintos del idioma base puedan
ver los mensajes traducidos.
Información general de las soluciones
25/11/2019 • 10 minutes to read • Edit Online

En PowerApps, las soluciones se aprovechan para transportar aplicaciones y componentes desde un entorno a
otro o para aplicar un conjunto de personalizaciones a aplicaciones existentes. Una solución puede contener una
o varias aplicaciones así como otros componentes como mapas del sitio, entidades, procesos, recursos web, los
conjuntos de opciones, etc. Puede obtener una solución de AppSource o de un proveedor de software
independiente (ISV ).
Más información: Notas del producto: Administración del ciclo de vida de las soluciones

NOTE
Si es un ISV que crea una aplicación que va a distribuir, deberá usar soluciones. Para obtener más información acerca del
uso de soluciones, vea Guía para desarrolladores: Introducción a soluciones.

Componentes
Un componente representa algo que puede personalizar. Todo lo que se puede incluir en una solución es un
componente. La siguiente es una lista de componentes que puede ver en una solución:
Modelo de IA
Cinta de la aplicación
Plantilla de artículo
Regla de negocio
Aplicación de lienzo
Gráfico
Rol de conexión
Plantilla de contrato
Conector personalizado
Control personalizado
Panel
Plantilla de correo electrónico
Entidad
Relación de entidad
Variable de entorno
Campo
Perfil de seguridad de campo
Flujo
Formulario
Plantilla de combinación de correspondencia
Mensaje
Aplicación basada en modelo
Conjunto de opciones
Ensamblado de complementos
Proceso
Informe de
Paso de procesamiento del mensaje de SDK
Rol de seguridad
Extremo de servicio
Mapa del sitio
Proveedor de datos de entidad virtual
Origen de datos de entidad virtual
Recurso web
Algunos componentes se anidan en otros componentes. Por ejemplo, una entidad contiene formularios, vistas,
gráficos, campos, relaciones de entidad, mensajes y reglas de negocio. Cada uno de los componentes necesita
que exista una entidad. Un campo no puede existir fuera de una entidad. Decimos que el campo depende de la
entidad. Existe el doble de tipos de componentes que se muestra en la lista anterior, pero la mayoría de ellos no
se anidan en otros componentes y no son visibles en la aplicación.
El objetivo de tener componentes es mantener un seguimiento de las limitaciones sobre lo que se puede
personalizar mediante propiedades administradas y todas las dependencias para que se pueda exportar,
importar y (en las soluciones administradas) eliminar sin dejar nada atrás.
Soluciones administradas y no administradas
Hay soluciones administradas y no administradas. Una solución administrada no se puede modificar y
puede desinstalarse una vez importada. Todos los componentes de la solución se eliminan al desinstalar la
solución.
Cuando importa una solución no administrada, debe agregar todos los componentes de la solución a su
entorno. No puede eliminar componentes desinstalando la solución.
Cuando importa una solución no administrada que contiene componentes que ya personalizó, las
personalizaciones se sobrescribirán por las personalizaciones de la solución no administrada importada. No se
puede deshacer esto.

IMPORTANT
Instale una solución no administrada si solo desea agregar todos los componentes del entorno y sobrescribir las
personalizaciones existentes.

Incluso si no va a distribuir las aplicaciones o personalizaciones, es posible que desee crear y usar una solución
no administrada para tener una vista diferente que solo incluya las partes de la aplicación que ha personalizado.
Siempre que personalice algún elemento, agréguelo a la solución no administrada que ha creado.
Para crear una solución administrada, puede elegir la opción Como administrado cuando se exporta la
solución. Si crea una solución administrada, no puede importarla nuevamente al mismo entorno usado para
crearla. Solo puede importarla en otro entorno.
Cómo se aplican las soluciones
Todas las soluciones se evalúan como capas para determinar lo que hace la aplicación hará realmente. En el
siguiente diagrama se muestra cómo las soluciones administradas y no administradas se evalúan y cómo los
cambios que se realicen en ellas aparecerán en el entorno.

Empezando por abajo y siguiendo hasta el principio:


Solución del sistema
La solución del sistema es como una solución administrada que todo entorno tiene. La solución del sistema es la
definición de todos los componentes predefinidos del sistema.
Soluciones administradas
Las soluciones administradas pueden editar componentes de la solución del sistema y agregar nuevos
componentes. Si se instalan varias soluciones administradas, la primera que se instala aparece debajo de la
solución administrada instalada más tarde. Esto significa que la segunda solución instalada puede personalizar
la que se ha instalado antes. Cuando dos soluciones administradas tienen definiciones en conflicto, la regla
general es la "última gana". Si desinstala una solución administrada, la solución administrada siguiente toma
efecto. Si desinstala todas las soluciones administradas, el comportamiento predeterminado definido en la
solución del sistema se aplica.
Personalizaciones no administradas
Las personalizaciones no administradas son los cambios que haya realizado en su entorno a través de una
solución no administrada. La solución del sistema define lo que se puede y no se puede personalizar mediante
propiedades administradas. Los editores de soluciones administradas tienen la misma capacidad de restringir su
capacidad de personalización de los componentes de la solución que agregan a su solución. Puede personalizar
cualquier componente de la solución que no tenga propiedades administradas que le impidan personalizarlo.
Comportamiento de aplicación
Esto es lo que se ve realmente en su entorno. La solución predeterminada del sistema más todas las soluciones
administradas, más todas las personalizaciones no administradas que ha aplicado.
Propiedades administradas
Algunos componentes no se pueden personalizar. Estos componentes en la solución del sistema tienen
metadatos que impiden personalizarlos. Se denominan propiedades administradas. El editor de una solución
administrada también puede establecer las propiedades administradas para evitar que personalice su solución
de formas que no desea.
Dependencias de soluciones
Debido al modo en que las soluciones administradas se estructuran, algunas soluciones administradas pueden
ser dependientes de los componentes de la solución en otras soluciones administradas. Algunos editores de
soluciones aprovecharán esta característica para crear soluciones modulares. Es posible que tenga que instalar
una solución administrada "base" primero y luego puede instalar una segunda solución administrada que
personalice aún más los componentes de la solución administrada base. La segunda solución administrada
depende de los componentes de la solución que forman parte de la primera solución.
El sistema sigue estas dependencias entre las soluciones. Si intenta instalar una solución que requiere una
solución base que no está instalada, no podrá instalar la solución. Recibirá un mensaje que indica que la solución
requiere que se instale otra solución primero. De forma similar, debido a las dependencias, no puede desinstalar
la solución base mientras una solución que depende de esta aún está instalada. Es necesario desinstalar la
solución dependiente antes de desinstalar la solución base.

Pasos siguientes
Importar, actualizar y exportar soluciones
Navegar a una solución específica
Usar soluciones en PowerApps
25/11/2019 • 8 minutes to read • Edit Online

En PowerApps, puede ver una lista de soluciones seleccionando Soluciones en la navegación izquierda. A
continuación puede seleccionar una solución para ver todos sus componentes.

NOTE
La experiencia de soluciones solo está disponibles con conexión y para entornos de la versión 9.1.0.267 y posteriores. Para
comprobar la versión, vaya a …Centro de administración de PowerApps> Entornos > seleccione el entorno > pestaña
Detalles. Para los entornos de una versión anterior, la selección de una solución lo abrirá en la experiencia clásica.

Puede examinar todos los componentes de una solución desplazándose a través de los elementos. Si hay más de
100 elementos en la lista puede seleccionar Cargar los siguientes 100 elementos para ver más.

Buscar y filtrar en una solución


También puede buscar un componente específico por su nombre.
O bien filtre todos los elementos de la lista por tipo de componente.

Comandos contextuales
Cuando selecciona cada componente, las acciones disponibles en la barra de comandos cambiarán según el tipo
del componente seleccionado y si la solución es predeterminada o administrada.

Cuando no seleccione ningún componente, la barra de comandos mostrará las acciones aplicadas a la propia
solución.

Crear componentes en una solución


Con soluciones que son no administradas o la predeterminada, puede usar el comando Nuevo para crear
diferentes tipos de componentes. Esto le llevará a crear un experiencia diferente según el tipo de componente que
elija. Cuando termine de crear el componente, se agregará a la solución.

Agregar un componente existente a una solución


Con soluciones que no sean administradas o la predeterminada, puede usar el comando Agregar existente para
traer componentes que todavía no se encuentran en la solución.
Con soluciones que son administradas solo algunos comandos están disponibles y verá el mensaje que se
muestra a continuación. Deberá agregarlo a otra solución no administrada que ha creado para personalizar el
componente. El componente puede no ser personalizable. Más información: Propiedades administradas

Muchas de las personalizaciones que deseará hacer incluyen las entidades. Puede usar el filtro Entidad para
mostrar una lista de todas las entidades de la solución actual que se pueden personalizar de alguna forma. Cuando
profundiza en una entidad puede ver los componentes que forman parte de la entidad como se indica con la
entidad Cuenta en la captura de pantalla siguiente.
Explorador de soluciones clásico
En PowerApps, puede ver el explorador de soluciones clásico seleccionando Soluciones en el panel de
navegación de la izquierda y, a continuación seleccionando Cambiar a clásica en la barra de comandos. El
explorador de soluciones clásico es el que anteriormente estaba disponible en el área Configuración >
Personalizaciones avanzadas en PowerApps.

Limitaciones conocidas
Las siguientes limitaciones se aplican al uso de aplicaciones de lienzo, flujos y conectores personalizados en
soluciones.
Los flujos desencadenados por aplicaciones del lienzo no están disponibles en soluciones.
Si una aplicación de lienzo se empaqueta en una solución administrada, no puede editarse y volver a publicarse
en el entorno de destino. Use soluciones no administradas si las aplicaciones requieren edición en el entorno
de destino.
Las conexiones requieren autenticación y consentimiento, que requiere una sesión de usuario interactiva y por
tanto no se pueden transportar mediante soluciones. Después de importar la solución, juegue la aplicación
para autenticar conexiones. También puede crear las conexiones en el entorno de destino antes de importar la
solución.
Las aplicaciones de lienzo compartidas como copropietario con grupo de seguridad Azure Active Directory
(AAD ) no se pueden agregar a soluciones. Deje de comaprtir la aplicación antes de agregarla a una solución.
Las aplicaciones de lienzo no se mostrarán en el explorador de soluciones clásico. Use la experiencia moderna.
El acceso a la aplicación de lienzo (CRUD y seguridad) se administra completamente en PowerApps y no en la
base de datos de Common Data Service ().
Las operaciones de base de datos como copia de seguridad, restauración, y copia no son compatibles con las
aplicaciones de lienzo y flujos. Estas operaciones pueden dañar a aplicaciones de lienzo y flujos.
Al eliminar una solución administrada no se revertirá a la versión de otra aplicación de lienzo. En su lugar,
todas las versiones de la aplicación se eliminan.
Cuando se importa una solución que contiene un flujo no se crearán o asociarán conexiones necesarias. El flujo
se debe editar para corregir las conexiones.
Si usa soluciones administradas, se crea una personalización activa en la capa no administrada. Por tanto
las actualizaciones posteriores de la solución al flujo no se reflejarán.
Los flujos creados a partir de soluciones no se mostrarán en la lista "Flujos de equipo”. Se debe acceder a ellos
a través de una solución.
Los flujos desencadenados por botón no están disponibles en soluciones.
Los flujos desencadenados desde aplicaciones de Microsoft 365 como Excel no están disponibles en
soluciones.
Los flujos que conectan con SharePoint no están disponibles en soluciones.
Los flujos en soluciones no admiten la autenticación delegada. Por ejemplo, el acceso a un flujo no se concede
automáticamente en función del acceso a la lista de SharePoint de la que se creó el flujo.
Los conectores externos creados fuera de soluciones no se pueden agregar a soluciones en este momento.
Para obtener más información acerca de los componentes individuales de una solución, vea los temas siguientes:
Para las personalizaciones de entidad, relaciones de entidades, campos y mensajes, consulte Metadatos..
Para los formularios de entidades, consulte Formularios.
Para los procesos, consulte Procesos..
Para las reglas de negocio, consulte Reglas de negocio.
Usar la solución predeterminada de Common Data
Service
25/11/2019 • 4 minutes to read • Edit Online

Todos los entornos de PowerApps incluyen las siguientes soluciones.


Solución predeterminada de Common Data Service - Es una solución base que está disponible para que
los fabricantes la usen de forma predeterminada para sus personalizaciones en un entorno.
Solución predeterminada - Es una solución especial que contiene todas las personalizaciones de todas las
soluciones en un entorno.
Tenga en cuenta que si ha instalado o ha importado otras aplicaciones o soluciones, puede haber soluciones
adicionales disponibles en la lista de soluciones.
De forma predeterminada, al crear o personalizar una aplicación controlada por modelos trabaja con la solución
predeterminada de Common Data Service. Puede abrir la solución predeterminada de Common Data Service para
ver y editar los componentes que se incluyen en ella. Para hacerlo, siga estos pasos.
1. En el panel de navegación izquierdo, seleccione Soluciones.
2. En la lista de soluciones, seleccione Solución predeterminada de Common Data Service.

TIP
Si tiene pensado distribuir las aplicaciones que crea, plantéese la posibilidad de cambiar el prefijo de personalización del editor.
Más información: Prefijo del editor de soluciones.

Avisos de privacidad
Al habilitar una solución, consiente en compartir sus datos con un sistema externo. Los datos importados en
Microsoft Dynamics 365 (online) desde sistemas externos están sujetos a la Declaración de privacidad y cookies de
Microsoft.
Puede importar y exportar soluciones desde y hacia Microsoft Dynamics 365 (online). Al hacerlo, las soluciones
(que podrían contener su nombre u otra información personal) se transfieren a través de una conexión segura
entre su equipo y los servidores de Microsoft. A su vez, el código de terceros importado a Dynamics 365 (online)
podría transferir eventualmente datos de clientes a un sistema externo (por ejemplo, InsideView ) o bien configurar
o expandir entidades que se sincronizan (es decir, exportan) con otros sistemas externos que están controlados por
una entidad que no es Microsoft.

Si una solución que se va a importar está diseñada para transferir datos de clientes fuera de los límites de
seguridad de Dynamics 365 (online), se recomienda que los administradores comprueben los tipos de datos de
clientes que recuperará el servicio, el software o la aplicación antes de cargar código de terceros en su instancia de
Dynamics 365 (online).
El cliente, y no Microsoft, controla la extracción de datos de clientes por parte de servicios, software, aplicaciones o
soluciones de terceros. El administrador controla el destino final y las directivas de privacidad aplicables a los
puntos de datos extraídos por estas soluciones externas; se recomienda una revisión adecuada de las directivas
aplicables por terceros que operan estos servicios/software/aplicaciones.
Vea también
Conocer los componentes de las aplicaciones controladas por modelos
Notas del producto: Patrones y principios para los creadores de soluciones
Importar, actualizar y exportar soluciones
25/11/2019 • 16 minutes to read • Edit Online

Puede importar soluciones manualmente usando los pasos siguientes. Importe únicamente las soluciones que
se obtengan de una fuente de confianza. Es posible que las personalizaciones incluyan un código que puede
enviar datos a orígenes externos.
1. Seleccione Soluciones en la barra de navegación izquierda.
2. En el menún de la lista de soluciones, seleccione Importar.

3. En el cuadro de diálogo Importar solución, en el paso Seleccionar paquete de solución, seleccione


Elegir archivo y busque el archivo comprimido (.zip o .cab) que contiene la solución que desea importar.
4. Seleccione Siguiente.
5. Ver información acerca de la solución. Seleccione importar.
6. Es posible que tenga que esperar unos momentos mientras la importación se completa. Vea los
resultados y, a continuación, seleccione Cerrar.
Si importó cambios que requieren publicación, debe publicar las personalizaciones antes de que estén
disponibles.
Si la importación no es correcta, verá un informe que mostrará los errores o advertencias capturados.
Seleccione Descargar archivo de registro para capturar detalles sobre la causa del error de importación. La
causa más común para que una importación falle es que la solución no contenía algunos componentes
requeridos.
Cuando descargue el archivo de registro, encontrará un archivo XML que puede abrir mediante Office Excel
para ver el contenido.

NOTE
No se puede editar un conjunto de reglas de enrutamiento activo. Por tanto, si importa una solución que incluye un
conjunto activo de reglas de enrutamiento a un entorno donde la regla ya existe con el mismo identificador, la
importación generará un error. Más información: Crear reglas para enrutar casos automáticamente

Actualizar soluciones
Hay ocasiones en las que podría desear instalar una actualización de una solución administrada existente. El
proceso es similar a instalar una nueva solución administrada, salvo en que obtendrá algunas opciones
diferentes. Si va a actualizar una solución que ha obtenido de otra persona, debe obtener instrucciones del
editor de soluciones sobre las opciones que debe elegir.
1. Seleccione Soluciones en la barra de navegación izquierda.
2. En el menún de la lista de soluciones, seleccione Importar.
3. En el cuadro de diálogo Importar solución, en el paso Seleccionar paquete de solución, seleccione
Elegir archivo y busque el archivo comprimido (.zip o .cab) que contiene la solución que desea actualizar.
4. Seleccione Siguiente.
5. Vea la información de la solución y seleccione Siguiente. Esta página mostrará una barra amarilla que
indica que Este paquete de solución contiene una actualización para una solución que ya está
instalada.
6. Tendrá las siguientes opciones:
Mantener personalizaciones (recomendado)
Al seleccionar esta opción se mantendrán las personalizaciones no administradas realizadas en los
componentes, pero algunas de las actualizaciones incluidas en esta solución no surtirán efecto.
Sobrescribir personalizaciones
Al seleccionar esta opción se sobrescriben las personalizaciones no administradas realizadas
anteriormente en los componentes incluidos en esta solución. Todas las actualizaciones incluidas
en esta solución surtirán efecto.
Elija la opción correcta y seleccione Siguiente.
7. Es posible que tenga que esperar unos momentos mientras la importación se completa. Vea los
resultados y, a continuación, seleccione Cerrar.
Si importó cambios que requieren publicación, debe publicar las personalizaciones antes de que estén
disponibles.
Los editores de soluciones pueden pedirle que exporte las personalizaciones no administradas existentes, que
actualice su solución administrada mediante la opción para sobrescribir personalizaciones y que vuelva a
importar las personalizaciones no administradas. Esto le permitirá asegurarse de que se han aplicado los
cambios que están esperando mientras se mantienen las personalizaciones.

Exportar soluciones
Se recomienda crear una solución no administrada para usar para exportar las personalizaciones. A
continuación exporte las personalizaciones periódicamente para tener una copia de seguridad en caso de que
surjan problemas. No puede exportar soluciones administradas. Puede exportar soluciones desde PowerApps o
puede exportar mediante la experiencia clásica.

IMPORTANT
Exportar la solución predeterminada no se admite.

Exportar de PowerApps
1. Seleccione Soluciones en la barra de navegación izquierda.
2. En la lista, seleccione la solución que desea exportar y luego seleccione Exportar.
3. Seleccione el tipo de paquete Como no administrado o Como administrado. Esto iniciará la
exportación, que puede tardar varios minutos en completarse. Una vez finalizada, el archivo .zip de
exportación está disponible en la carpeta de descarga especificada por el explorador web.
Exportación desde la experiencia clásica
1. Seleccione Soluciones desde la barra de navegación izquierda y después seleccione Cambiar a clásica.
2. En la lista, seleccione la solución que desea exportar y luego seleccione Exportar.
3. En el paso Publicar personalizaciones se le recordará que solo se exportan las personalizaciones
publicadas y podrá utilizar la opción Publicar todas las personalizaciones antes de seleccionar
Siguiente.
4. Si la solución contiene componentes necesarios que faltan verá el paso Faltan componentes
necesarios. Puede ignorar esta advertencia solo si tiene previsto volver a realizar la importación como
una solución no administrada en el entorno original. De lo contrario, siga las instrucciones del diálogo
para cancelar la exportación y agregar los componentes necesarios.
5. En el paso Exportar configuración del sistema (avanzado) puede elegir determinadas
configuraciones del sistema para incluir en la solución. Si la solución depende de grupos de configuración
del sistema, selecciónelos y elija Siguiente.
Consulte Opciones de configuración para la exportación de la solución a continuación para
obtener más información sobre la configuración que se incluirá con cada opción.
6. En el paso Tipo de paquete, es necesario elegir si se debe exportar la solución como una solución No
administrada o Administrada.
7. El siguiente paso le permite elegir una solución de destino para una versión determinada. Esta opción
suelen usarla los ISV que desean exportar una solución que sea compatible con una versión anterior. A
menos que pretenda importar esta solución en un entorno que no esté actualizado a la misma versión
que la versión del entorno que usted está usando, acepte la opción predeterminada.
8. Seleccone Exportar para descargar el archivo de la solución.
El comportamiento exacto para descargar archivos varía entre exploradores web.

Opciones de configuración para la exportación de la solución


Si exporta la solución desde PowerApps, ignore esta sección. La siguiente tabla muestra las opciones
disponibles cuando se exporta una solución desde la experiencia clásica.

GRUPO CONFIGURACIÓN DESCRIPCIÓN

Numeración automática Prefijo de la campaña Prefijo usado para la numeración de


campañas.

Prefijo del caso Prefijo para usar en todos los casos en


la aplicación.
GRUPO CONFIGURACIÓN DESCRIPCIÓN

Prefijo del contrato Prefijo para usar en todos los


contratos en la aplicación.

Prefijo de factura Prefijo para usar en todos los números


de factura en la aplicación.

Prefijo del artículo Prefijo para usar en todos los artículos


en la aplicación.

Prefijo de pedido Prefijo que se debe usar en todos los


pedidos en la aplicación.

Longitud de cadena única Número de caracteres anexados a los


números de factura, oferta y pedido.

Calendario Tipo de calendario Tipo de calendario para el sistema.


Establecido en Gregoriano EE.UU. de
manera predeterminada

Código de formato de fecha Especifica cómo se muestra la fecha en


Common Data Service

Separador de fecha Carácter usado para separar el día, el


mes y el año en las fechas en la
aplicación.

Duración máxima de la cita Número máximo de días que puede


durar una cita.

Mostrar número de semana Especifica si se muestra el número de


semana en el calendario en la
aplicación.

Código de formato de hora Especifica cómo se muestra la hora en


la aplicación.

Código de primer día de la semana Primer día de la semana designado en


la aplicación.

Personalización Está habilitado el modo de aplicación Indica si está habilitada la carga de una
aplicación en una ventana de
explorador que no tenga barras de
menú, de herramientas ni de
direcciones.

Seguimiento de correo electrónico Permitir envío de mensajes de correo Indica si se permite a los usuarios
electrónico con direcciones sin resolver enviar correo electrónico a los grupos
sin resolver (los grupos deben seguir
teniendo una dirección de correo
electrónico).

Omitir mensajes de correo electrónico Indica si se debe seguir el correo


internos electrónico entrante enviado por colas
o usuarios de la aplicación.
GRUPO CONFIGURACIÓN DESCRIPCIÓN

Número de seguimiento máximo Número de seguimiento máximo antes


de reciclar.

Representar marco seguro para correo Marque para representar el cuerpo de


electrónico correo electrónico del formulario web
en un IFRAME con el atributo de
security='restricted' definido. Aunque
es seguridad adicional, puede causar
una solicitud de credenciales.

Prefijo de seguimiento Lista de historial de prefijos de tokens


de seguimiento.

Seguimiento de base del token Número base usado para proporcionar


identificadores de tokens de
seguimiento distintos a usuarios que
pertenecen a implementaciones
diferentes.

Seguimiento de dígitos del token Número de dígitos usados para


representar un identificador de token
de seguimiento.

General Bloquear datos adjuntos Evita la carga o descarga de


determinados tipos de datos adjuntos
que se consideran peligrosos.

Código de formato de la divisa Especifica la colocación de los símbolos


de divisa en la aplicación.

Símbolo de moneda Símbolo de moneda

Pedido de visualización de nombre Orden en que se deben mostrar los


completo nombres en la aplicación.

Presencia habilitada Información sobre si está habilitada la


presencia de MI.

Formato negativo Información que especifica cómo


aparecen los números negativos en la
aplicación.

Formato de número Especifica cómo se muestran los


números en la aplicación.

Precisión decimal de precios Número de posiciones decimales que


se pueden usar para los precios.

Compartir con propietario anterior tras Especifica si se comparte con el


asignación propietario anterior tras la asignación.

Marketing Permitir creación de respuesta Indica si se permite la creación de


automática respuestas automáticas
GRUPO CONFIGURACIÓN DESCRIPCIÓN

Permitir cancelación automática de Indica si se permite la cancelación


suscripciones automática de suscripciones.

Permitir confirmación de cancelación Indica si se permite el envío por correo


automática de suscripciones electrónico de la confirmación de
cancelación de una suscripción.

Permitir ejecución de mensajes de Indica si se permite la ejecución de


correo electrónico de marketing mensajes de correo electrónico de
marketing.

Sincronización con Outlook Permitir sincronización de libreta de Indica si se permite la sincronización de


direcciones la libreta de direcciones en segundo
plano en Microsoft Office Outlook.

Permitir sincronización programada sin Indica si se permite la sincronización


conexión sin conexión en segundo plano en
Outlook.

Permitir sincronización programada Indica si se permiten sincronizaciones


programadas de Outlook.

Frecuencia de sondeo de envío de Frecuencia normal de sondeo usada


correos electrónicos para el envío de correo electrónico en
Outlook.

Frecuencia mínima de sincronización Frecuencia normal de sondeo usada


de direcciones para la sincronización de la libreta de
direcciones en Outlook.

Frecuencia mínima de sincronización Frecuencia normal de sondeo usada


sin conexión para la sincronización sin conexión en
segundo plano en Outlook.

Frecuencia mínima de sincronización Tiempo mínimo permitido entre


sincronizaciones de Outlook
programadas.

Máximo de ciclos de etiquetado Máximo de ciclos de sondeo dinámicos


automático ejecutados para el etiquetado
automático de correo electrónico
cuando se recibe un mensaje nuevo.

Intervalo de etiquetado automático Frecuencia normal de sondeo usada


para el etiquetado automático de
correo electrónico en Outlook.

Configuración ISV Configuración de apariencia del Puede definir estilos visuales para
calendario de servicios calendarios de servicio.

Más información: Configuración de la apariencia del calendario de servicios|

Pasos siguientes
Distribuir soluciones y revisiones
Navegue a una solución específica
25/11/2019 • 2 minutes to read • Edit Online

Si su organización ya tiene una solución específica con la que debe trabajar, esta es la forma de encontrarla. Para
crear una solución nueva, consulte Crear una solución propia.

Abra una solución.


1. Seleccione Soluciones en el panel de navegación izquierdo para ver una lista de soluciones en el entorno.
2. Seleccione la solución en la que desea trabajar o vea todos los componentes que contiene. Más información:
Agregar componentes

Pasos siguientes
Supervisión y administración de procesos de flujo de trabajo
Crear una solución
25/11/2019 • 7 minutes to read • Edit Online

Puesto que la solución predeterminada contiene todos los componentes de soluciones, puede ser más fácil para
usted ubicar solo los componentes de la solución que ha personalizado si crea una solución independiente y
realiza toda la personalización ahí. Esto también ayuda exportar una copia de seguridad de la solución como un
archivo más pequeño. Si elige realizar esta acción, debe recordar siempre agregar los componentes de la
solución que edite para esta solución. Cuando crea nuevos componentes de la solución, debe crearlos siempre en
el contexto de esta solución. De esta forma el prefijo de personalización del editor de soluciones se aplica de
forma coherente. Después de crear los componentes de la solución en la solución, o de agregar componentes de
la solución existentes a esa solución, también puede modificarlos en la solución predeterminada si lo desea.
Para obtener más información sobre conceptos de una solución, consulte Trabajar con soluciones.
1. Inicie sesión en PowerApps y seleccione Soluciones en el panel de navegación de la izquierda.
2. Elija Nueva solución y rellene los campos requeridos para la solución.

CAMPO DESCRIPCIÓN

Nombre para mostrar Nombre que se muestra en la lista de soluciones. Puede


cambiarlo más adelante.

Nombre Nombre único de la solución. Este se genera con el valor


especificado en el campo Nombre para mostrar. Puede
modificarlo antes de guardar la solución, pero no podrá
hacerlo una vez haya guardado la solución.

Editor Puede seleccionar el editor predeterminado o crear un


nuevo editor. A menos que tenga previsto distribuir la
solución, debe usar únicamente al editor predeterminado
para la organización.

Versión Escriba un número para la versión de la solución. Solo es


importante si exporta la solución. El número de versión
se incluirá en el nombre de archivo cuando exporte la
solución.

3. Seleccione Guardar.
Después de guardar la solución, puede ser conveniente agregar información a los campos que no son necesarios.
Estos pasos son opcionales. Use el campo Descripción para describir la solución y elija un recurso web HTML
como Página de configuración de la solución. La página de configuración la usan normalmente los ISV que
distribuyen soluciones. Si se ha configurado, un nuevo nodo Configuración aparece bajo el nodo Información
para mostrar este recurso web. Los desarrolladores usarán esta página para incluir instrucciones o controles para
permitir definir los datos de configuración o iniciar su solución.

Agregar componentes de la solución


Una vez que haya creado la solución, no contendrá ningún componente de la solución. Puede crear nuevos
componentes de la solución o usar el botón Agregar existente en el menú de lista para agregar todos los
componentes de la solución pertenecientes a la solución predeterminada.
Al hacerlo, es posible que se muestre un diálogo Faltan componentes necesarios.

Este diálogo le alerta de que un componente de la solución tiene dependencias de otros componentes de la
solución. Si selecciona No, no incluir los componentes necesarios, la solución puede generar errores si se
importa en otra organización donde no existen todos los componentes necesarios. Si la importación de la
solución es correcta, el comportamiento en la otra solución puede no ser idéntico al de la organización original,
porque los componentes están configurados de forma distinta a los de la solución de origen.
Normalmente, es más seguro incluir los componentes necesarios si tiene previsto exportar la solución a otra
organización. Si no agrega estos componentes cuando agrega un componente de la solución individual, puede
volver más tarde, seleccionar el componente de la solución que ha agregado y elija Agregar componentes
necesarios en el menú.
Si no se piensa exportar la solución, o si solo pretende exportarla como una solución no administrada e
importarla nuevamente en la misma organización, no es necesario incluir componentes necesarios. Si alguna vez
exporta la solución, verá otra advertencia indicando que faltan algunos componentes necesarios. Si va a importar
solo esta solución nuevamente en la misma organización, puede ignorar esta advertencia. Los pasos para
modificar la navegación de la aplicación o la cinta sin usar una herramienta de edición de terceros prevén que
exportará la solución nuevamente en la misma organización.

IMPORTANT
Si piensa incluir citas en soluciones, se recomienda no incluir solo citas y solo citas periódicas en soluciones independientes.
Si instala y desinstala soluciones independientes con tipos de citas diferentes, se mostrará un error de SQL Server y tendrá
que volver a crear las citas.

Vea también
Usar soluciones
Vista previa: Información general sobre las variables
de entorno
25/11/2019 • 7 minutes to read • Edit Online

[Este tema es documentación preliminar y está sujeto a modificaciones.]


Las aplicaciones y los flujos requieren a menudo distintas opciones de configuración a través de entornos. Las
variables de entorno como parámetros de entrada configurables permiten la administración de datos por separado
en comparación valores de codificación rígida en la personalización o usando herramientas adicionales. Dado que
son componentes de la solución, el rendimiento es mucho mejor que la importación de datos de configuración
como datos de registro.
Beneficios de usar variables de entorno:
No es necesario editar manualmente valores configurables en un entorno de producción.
Configure una o más variables en un solo lugar y haga referencia a ellas como un parámetro en distintos varios
componentes de la solución.
Actualice los valores sin un cambio de código.
Seguridad de nivel granular administrada por Common Data Service.
Número ilimitado de variables (el tamaño máximo de la solución es 29 MB ).
Mantenga las definiciones y los valores de forma independiente o conjuntamente.
Con ayuda de las herramientas SolutionPackager y DevOps habilite la integración continua y la entrega
continua (CI/CD ).
Compatibilidad para localización.
Se puede usar para controlar marcas de características y otras configuraciones de la aplicación.

IMPORTANT
Esta es una característica de vista previa.
Las vistas previas de características no se han diseñado para un uso de producción y pueden tener una funcionalidad
restringida. Estas características están disponibles antes del lanzamiento oficial para que los clientes puedan tener un
acceso anticipado y proporcionar comentarios.

¿Cómo funcionan?
Las variables de entorno se pueden crear y administrar en la interfaz de la solución moderna o mediante código.
Un archivo JSON aparte se crea en la paquete de solución para los valores, que también se puede administrar en
control de código fuente y modificar en una canalización de compilación. Se admite la exportación e importación
de Excel. Después de crear variables de entorno, puede usarlas como entradas en complementos, flujos y otros
componentes.

Valor predeterminado
Este campo forma parte de la entidad de definición de variables de entorno y no es obligatorio. Defina un valor
predeterminado para entornos de producción o cuando los valores no deban cambiar para diferentes entornos.

Valor
También conocido como valor actual o valor de reemplazo, este campo es opcional y es parte de la entidad de
valores de variable de entorno. Establezca el valor cuando desee reemplazar el valor predeterminado en el entorno
actual. Quite el valor de la solución si no desea usarlo en el siguiente entorno. Los valores también se separarán en
un archivo JSON aparte en el archivo solution.zip que se exporta.

NOTE
Un valor no puede existir sin una definición. La interfaz sólo permite la creación de un valor por definición.

La separación del valor predeterminado y el valor actual permite mantener la definición y el valor predeterminado
por separado del valor actual. También permite que extendamos la funcionalidad en el futuro para dar
compatibilidad con varios valores de ámbito de un contexto específico en tiempo de ejecución.

Notificaciones
Se muestra una notificación cuando las variables de entorno no tienen valores. Este es un aviso para establecer los
valores de modo que no fallen los componentes dependientes de variables. También permite que los partners
entreguen variables sin valores y se solicite al cliente que especifique los valores.

NOTE
Se recomienda a partners crear sus propias interfaces que requieran que los clientes proporcionen los valores. Las
notificaciones ayudan a evitar errores si se salta este paso.

Seguridad
Las entidades environmentvariabledefinition y environmentvariablevalue son propiedad del usuario o del equipo.
Al crear una aplicación que usa variables de entorno, asegúrese de asignar usuarios el nivel adecuado de permiso.
Más información: Seguridad en Common Data Service.

Limitaciones actuales
Almacenamiento en caché. Los complementos deberán ejecutar una consulta para capturar los valores.
Las aplicaciones de lienzo y los flujos pueden consumir variables de entorno al igual que datos de registro de la
entidad. En el futuro planeamos crear acciones adicionales en diseñadores de aplicaciones de lienzo y flujos.
Esto simplificará la creación y aportará mejor visibilidad de las variables de entorno que está usando una
aplicación o un flujo específicos.
Integración de Azure Key Vault para administración de secretos. Las variables de entorno actuales no deben
usarse para almacenar datos seguros como contraseñas y claves.
Los tipos de datos se validan en la interfaz de la solución moderna solo, pero no actualmente en el servidor
durante la vista previa.
No se aplican dependencias para algunos tipos de componentes.
Si usa Excel para importar variables de entorno, asegúrese de anteponer el prefijo del editor a SchemaName.
Vea también
Use complementos para ampliar los procesos de negocio
Ejemplos de la API web
Crear aplicación de lienzo desde cero mediante Common Data Service.
Crea un flujo con Common Data Service
Ver capas de las soluciones
25/11/2019 • 2 minutes to read • Edit Online

Las capas de las soluciones le permiten ver todos los cambios del componente que se producen debido a cambios
en la solución a lo largo del tiempo. En una capa de solución, puede explorar para ver los detalles cambiados y sin
cambios específicos de la propiedad para un componente.
Capas de las soluciones:
Permiten ver el orden en el que una solución ha cambiado un componente.
Permiten ver todas las propiedades de un componente en una solución específica incluidos los cambios en el
componente.
Se pueden usar para solucionar problemas de dependencias o disposición en capas de la solución mostrando
información detallada sobre los cambios para un componente que ha introducido un cambio en la solución.

Ver las capas de las soluciones de un componente


Puede obtener acceso a las capas des las soluciones desde la lista Componentes o del cuadro de diálogo Detalles
de la dependencia en el explorador de soluciones.
1. Para ver las capas de las soluciones de la lista Componentes, abra explorador de soluciones. En la lista
Componentes, seleccione un componente, como Cuenta y, a continuación seleccione Capas de las
soluciones en la barra de herramientas.

2. Se muestra la página de capas de la soluciones. Muestra cada capa para el componente, como la entidad
Cuenta que se muestra aquí, con la capa más reciente en la parte superior. Para ver los detalles de una capa
de soluciones, selecciónela.
3. En el cuadro de diálogo Capas de las soluciones , la pestaña Cambiar propiedades muestra únicamente
las propiedades que se modificaron como parte de la capa de la solución específica.

4. Seleccione la pestaña Todas las propiedades para ver todas las propiedades, incluidas las propiedades con
y sin cambios, para la capa de las soluciones.
Vea también
Información general de las soluciones
Ver el historial de una solución
25/11/2019 • 3 minutes to read • Edit Online

Puede ver los detalles de las operaciones de una solución desde el área Soluciones de una aplicación basada en
modelos. Una operación puede ser la importación, exportación o eliminación de una solución. El historial de la
solución muestra información como versión de la solución, editor de soluciones, tipo de operación, hora de inicio y
finalización de la operación, y estado de la operación.

Ver historial de la solución


1. Seleccione Configuración y, a continuación, seleccione Historial de soluciones.

NOTE
Para ir al área Configuración desde una aplicación basada en modelo de la interfaz unificada de PowerApps,
seleccione Configuración en la barra de herramientas de la aplicación y, a continuación seleccione Opciones
avanzadas.

2. De forma predeterminada, se muestra la vista Historial de la solución personalizado. Las vistas


siguientes están disponibles en el área Historial de soluciones.
Historial de todas las soluciones. Muestra el historial de las soluciones personalizadas e internas del sistema.
Historial de la solución personalizado. Muestra solo el historial de las soluciones personalizadas.
Historial de la solución interno. Muestra solo el historial de las soluciones internas del sistema.
Cada registro de historial de soluciones es de solo lectura e incluye las propiedades siguientes:
Hora de inicio. Hora en que se inició la operación.
Hora de finalización: Hora en que la operación terminó.
Versión de la solución. Versión de la solución.
Nombre del editor. Nombre del editor que está asociado con la operación. Más información: Cambiar el
prefijo del editor de soluciones
Operación. La operación, como importar, exportar, o eliminar.Más información: Importar, actualizar y exportar
soluciones
Suboperación: Indica el tipo de operación, como la importación de una nueva solución o la actualización de
una solución existente.
Estado. El estado actual de la operación, como Completado o No completado.
Resultado. El resultado de la operación, como Éxito o Error.
Código de error: Código de error devuelto de la operación. Un código de error de 0 significa que la operación
se completó correctamente.
Ver detalles de error de operaciones de la solución
Cuando una operación de solución incluye un error puede seleccionarlo para mostrar una página con los detalles
adicionales de error.

La página de detalles contiene información que incluye el Mensaje de excepción que puede ayudar a
diagnosticar la causa subyacente para este error de la operación. Algunos errores, incluidos errores de dependencia
de la solución, también pueden incluir vínculos a capas de la solución para que sea más fácil diagnosticar el
problema. El Id. de actividad puede resultar útil en casos en los que necesite ponerse en contacto con el soporte
al cliente de Microsoft.

Vea también
Ver capas de las soluciones
Información general de las soluciones
Use el comprobador de soluciones para validar sus
aplicaciones basadas en modelos en PowerApps
25/11/2019 • 18 minutes to read • Edit Online

Para cumplir complejos requisitos de negocio, los fabricantes de aplicaciones basadas en modelos pueden
terminar con frecuencia con soluciones muy avanzadas que personalizan y extienden la plataforma Common Data
Service. Con implementaciones avanzadas aumenta el riesgo, pues se presentan problemas de rendimiento,
estabilidad y fiabilidad que pueden afectar negativamente la experiencia de usuario. Identificar y comprender
cómo resolver estos problemas puede ser complejo y laborioso. Con la característica del comprobador de
soluciones puede realizar una completa verificación de análisis estático de sus soluciones con un conjunto de
reglas de prácticas recomendadas e identificar rápidamente estos patrones problemáticos. Cuando la
comprobación se completa, usted recibe un informe detallado que lista los problemas identificados, los
componentes y el código afectados y vínculos a la documentación que describe cómo solucionar cada problema.
El comprobador de soluciones analiza estos componentes de la solución:
Complementos Common Data Service
Actividades de flujo de trabajo personalizadas Common Data Service
Recursos web de Common Data Service (HTML y JavaScript)
Configuraciones de Common Data Service, como pasos de mensajes de SDK
El comprobador de soluciones trabaja con soluciones no administradas que se pueden exportar desde un entorno.

NOTE
En este tema se explica cómo ejecutar el comprobador de soluciones desde el portal de creadores de PowerApps.
También está disponible un módulo de PowerShell que puede usar para interactuar directamente con el servicio. El
módulo Microsoft.PowerApps.Checker.PowerShell se puede usar para análisis de soluciones administradas y no
administradas para versiones admitidas de entornos locales y en línea, o para automatizar e integrar el servicio en las
canalizaciones de compilación y de lanzamiento. Más información: Información general sobre
Microsoft.PowerApps.Checker.PowerShell
El comprobador de soluciones no funciona con soluciones que contienen JavaScript que usa ECMAScript 6 (2015) o
versiones posteriores. Cuando se detecta JavaScript que usa una de estas versiones, se informará de un problema de la
sintaxis JS001 para el recurso web.

Habilitar el comprobador de soluciones


El comprobador de soluciones está habilitado de forma predeterminada en cada entorno de Common Data
Service. Un elemento de menú Comprobador de soluciones está disponible cuando selecciona una solución no
administrada en el área Soluciones de PowerApps. Si la opción Ejecutar no está disponible en el menú
Comprobador de soluciones, puede habilitarla instalando la solución del comprobador de PowerApps. Para
instalarlo, siga estos pasos:
1. Inicie sesión en PowerApps y seleccione el entorno de Common Data Service donde desea habilitar el
comprobador de soluciones.
2. En el panel de navegación izquierdo, seleccione Soluciones.
3. En la barra de herramientas, seleccione Comprobador de soluciones y después seleccione Instalar – esto
abre la página de Microsoft AppSource. Debe permitir ventanas emergentes si el explorador bloquea la
apertura de la página.

4. Seleccione Prueba gratuita en la página de AppSource.


5. Si está de acuerdo, acepte las condiciones y seleccione el entorno para instalar la solución de comprobador
de PowerApps.
6. Cuando se complete la instalación, actualice la lista Solución en el sitio de PowerApps para comprobar que
el comprobador de soluciones está disponible.
7. Para comprobar una solución Ejecute al comprobador de soluciones.

Ejecutar el comprobador de soluciones


Después de instalar el comprobador de PowerApps en el entorno, un elemento de menú Comprobador de
soluciones está disponible cuando seleccione una solución no administrada en el área Soluciones de
PowerApps.
1. Inicie sesión en PowerApps.
2. En el panel izquierdo, seleccione Soluciones.
3. Junto a la solución no administrada que desea analizar, seleccione ..., señale a Comprobador de
soluciones y, a continuación seleccione Ejecutar.
4. El panel de estado situado en la parte superior derecha de la página Soluciones muestra Comprobador
de soluciones ejecutándose.

Tenga en cuenta lo siguiente:


El comprobador de soluciones puede tardar varios minutos en completar el análisis.
Durante este tiempo observará el estado Ejecutándose… en la columna Comprobación de
solución de la lista Solución.
Usted recibe un correo electrónico de notificación y una notificación en el área Notificaciones del
sitio de PowerApps cuando finalice la comprobación.
5. Vea el informe cuando finalice la comprobación.

Cancelar una comprobación


Después de enviar una comprobación de soluciones en el entorno, la comprobación se puede cancelar a través del
panel de estado en el área superior derecha de la página Soluciones.
Cuando usted cancela una comprobación, la comprobación de la solución deja de ejecutarse y la comprobación de
la solución vuelve al estado anterior.

Estados del comprobador de soluciones


Al instalar el comprobador de soluciones en el entorno, la columna Comprobación de solución pasa a estar
disponible en la lista Soluciones. En esta columna se muestran los estados de análisis para una solución.
ESTADO DESCRIPCIÓN

No se ha ejecutado La solución no se ha analizado.

En ejecución La solución se está analizando.

No se pudo completar El análisis de soluciones se ha solicitado pero no se ha


completado correctamente.

Resultados en la fecha y hora El análisis de soluciones se ha completado y los resultados


están disponible para descarga.

No se pudo completar. Resultado en la fecha y hora La última solicitud de análisis no se completó correctamente.
Los últimos resultados correctos pueden descargarse.

Comprobado por Microsoft Esta es una solución administrada de Microsoft. El análisis de


soluciones no está permitido en estas soluciones.

Comprobado por el editor Se trata de una solución administrada por terceros.


Actualmente, los análisis de soluciones no está disponible para
estas soluciones.

Revise el informe del comprobador de soluciones


Cuando se completa una comprobación de la solución, puede ver el informe de análisis en el portal o puede
descargar el informe desde el explorador web. En el portal, tiene opciones de filtrar, agrupar resultados por Error,
Ubicación o Gravedad y ver información detallada de los problemas detectados en la solución.
1. En el panel izquierdo, seleccione Soluciones.
2. Junto a la solución no administrada donde desea ver el informe del comprobador de soluciones, seleccione
..., señale a Comprobador de soluciones y, a continuación seleccione Ver resultados.
3. Seleccione un problema para ver los detalles y orientación sobre cómo resolverlo.

Los resultados de comprobación de la solución también están disponibles para descarga. El archivo zip del
comprobador de soluciones se descarga en la carpeta especificada por el explorador web. El informe de descarga
está en formato Excel y contiene varias visualizaciones y columnas que pueden ayudarle a identificar el impacto,
tipo y la ubicación de cada problema detectado en la solución. Un vínculo a orientación detallada sobre cómo
resolver el problema también se proporciona.
1. En el panel izquierdo, seleccione Soluciones.
2. Junto a la solución no administrada donde desea descargar el informe del comprobador de soluciones,
seleccione ..., señale a Comprobador de soluciones y, a continuación seleccione Descargar resultados.
3. El archivo zip del comprobador de soluciones se descarga en la carpeta especificada por el explorador web.
Este es un resumen de cada columna del informe.

CAMPO DEL INFORME DESCRIPCIÓN SE APLICA AL COMPONENTE

Problema El título del problema identificado en la Todo


solución.

Categoría La clasificación del problema Todo


identificado, por ejemplo, Rendimiento,
Uso o Compatibilidad.

Gravedad Representa el impacto potencial del Todo


problema identificado. Los tipos de
impacto disponibles son Alto, Medio,
Bajo e Informativo.

Instrucciones Vínculo al artículo que detalla el Todo


problema, el impacto, y acción
recomendada.

Componente El componente de soluciones donde se Todo


identificó el problema.

Location La ubicación y/o el archivo de origen del Todo


componente donde se produjo el
problema que se ha identificado, como
el ensamblado o el nombre de archivo
JavaScript.

Nº. de línea La referencia de número de línea del Recursos web


problema en el componente del recurso
web afectado.

Módulo Nombre del módulo donde se detectó Complemento o actividad de flujo de


el problema identificado en el trabajo personalizada
ensamblado.

Escriba Tipo de problema identificado en el Complemento o actividad de flujo de


ensamblado. trabajo personalizada

Integrante Miembro del problema identificado en Complemento o actividad de flujo de


el ensamblado. trabajo personalizada

Instrucción La instrucción de código o Todo


configuración produjo el problema.

Comentarios Detalles acerca del problema que Todo


incluyen pasos de resolución de alto
nivel.

Reglas de prácticas recomendadas usadas por el comprobador de


soluciones
COMPONENTE DE LA SOLUCIÓN NOMBRE DE REGLA DESCRIPCIÓN DE LA REGLA

Complemento o actividad de flujo de il-specify-column Evite seleccionar todas las columnas


trabajo mediante API de consulta de Common
Data Service.

Complemento o actividad de flujo de meta-remove-dup-reg Evite duplicar registros del


trabajo complemento Common Data Service.

Complemento o actividad de flujo de il-turn-off-keepalive Establecer KeepAlive en false para


trabajo interactuar con hosts externos en un
complemento Common Data Service.

Complemento o actividad de flujo de il-avoid-unpub-metadata Evite recuperar metadatos de Common


trabajo Data Service sin publicar.

Complemento o actividad de flujo de il-avoid-batch-plugin Evite usar tipos de solicitud por lotes en
trabajo complementos y actividades de flujo de
trabajo de Common Data Service.

Complemento o actividad de flujo de meta-avoid-reg-no-attribute Incluir atributos de filtrado con el


trabajo registro de complementos de Common
Data Service

Complemento o actividad de flujo de meta-avoid-reg-retrieve Adopta precauciones con


trabajo complementos de Common Data
Service registrados para mensajes
Retrieve y RetrieveMultiple.

Complemento o actividad de flujo de meta-remove-inactive Quitar configuraciones inactivas de


trabajo Common Data Service.

Complemento o actividad de flujo de il-meta-avoid-crm2011-depr-message No use mensajes obsoletos de


trabajo Microsoft Dynamics CRM 2011.

Complemento o actividad de flujo de meta-avoid-crm4-event No use la fase de registro de


trabajo complementos Microsoft Dynamics
CRM 4.0.

Complemento o actividad de flujo de il-avoid-specialized-update-ops No use solicitudes de operaciones de


trabajo actualización especializadas en Common
Data Service.

Complemento o actividad de flujo de il-use-autonumber-feature Use la característica de numeración


trabajo automática en lugar de una solución
personalizada de numeración
automática.

Complemento o actividad de flujo de il-avoid-parallel-plugin El uso de patrones paralelos se debe


trabajo evitar en complementos.

Complemento o actividad de flujo de il-avoid-lock-plugin Evite el bloqueo de miembros estáticos


trabajo en complementos.
COMPONENTE DE LA SOLUCIÓN NOMBRE DE REGLA DESCRIPCIÓN DE LA REGLA

Complemento o actividad de flujo de meta-avoid-retrievemultiple-annotation Evite registrar un complemento en


trabajo RetrieveMultiple de anotación.

Recursos web web-use-async Interactúe con recursos HTTP y HTTPS


forma asincrónica.

Recursos web meta-remove-invalid-form-handler Corrija o quite registros de eventos de


formulario de Common Data Service no
válidos.

Recursos web meta-remove-orphaned-form-element Corrija o quite registros de eventos de


formulario de Common Data Service
huérfanos.

Recursos web web-avoid-modals Evite el uso de diálogos modales.

Recursos web web-avoid-crm2011-service-odata No se dirija al extremo de Microsoft


Dynamics CRM 2011 OData 2.0.

Recursos web web-avoid-crm2011-service-soap No se dirija a los servicios de Microsoft


Dynamics CRM 2011 SOAP.

Recursos web web-avoid-browser-specific-api No use complementos del explorador o


API heredados de Internet Explorer.

Recursos web web-avoid-2011-api No use el modelo de objetos de


Microsoft Dynamics CRM 2011 en
desuso.

Recursos web web-use-relative-uri No use URL de extremo absolutos de


Common Data Service.

Recursos web web-use-client-context Use contextos del cliente.

Recursos web web-use-dialog-api-param Usar parámetros API de diálogo.

Recursos web web-use-org-setting Use configuración de organización.

Recursos web web-use-grid-api Use las API de cuadrícula.

Recursos web web-avoid-isActivityType Reemplace el método


Xrm.Utility.isActivityType por el nuevo
Xrm.Utility.getEntityMetadata y no lo
utilice en reglas de cinta de opciones.

Recursos web meta-avoid-silverlight El uso del recurso web de Silverlight ha


quedado obsoleto.

Recursos web web-remove-debug-script Evite incluir el script de depuración en


entornos que no sean de desarrollo.

Recursos web web-use-strict-mode Utilice el modo estricto si es posible.


COMPONENTE DE LA SOLUCIÓN NOMBRE DE REGLA DESCRIPCIÓN DE LA REGLA

Recursos web web-use-strict-equality-operators Utilice operadores de igualdad estricta.

Recursos web web-avoid-eval No use la función 'eval' o sus


equivalentes funcionales.

Vea también
Prácticas recomendadas e instrucciones para Common Data Service
Prácticas recomendadas e instrucciones para aplicaciones basadas en modelos
Problemas y soluciones comunes para el Comprobador de soluciones
Problemas y soluciones comunes para el
Comprobador de soluciones
25/11/2019 • 19 minutes to read • Edit Online

En este artículo se enumeran algunos problemas comunes que puede encontrar mientras usa el Comprobador de
soluciones. En los casos que correspondan, se proporcionan las soluciones alternativas.

No puede usar el comprobador de soluciones para ejecutar análisis o


descargar resultados
Poco después de enviar una solicitud al comprobador de soluciones para ejecutar un análisis o descargar
resultados la operación no se completa y se muestra un mensaje de error como:

“No pudimos ejecutar la comprobación en la solución Nombre de la solución. Ejecútela de nuevo."

Siempre que sea posible, el comprobador de soluciones intenta devolver un mensaje de error específico con un
vínculo a los detalles sobre la causa potencial y pasos de resolución. Seleccione 'Más información' para los
detalles.

Los errores que se producen durante el procesamiento en segundo plano de análisis fallarán con el estado No se
pudo completar y devuelven un mensaje de error en el portal de PowerApps además de enviar una notificación
por correo electrónico al solicitante.

La selección de notificación del portal vinculará a esta página de problemas comunes para la solución de
problemas adicionales. Si uno de los problemas comunes proporcionados no resuelve el problema, también se
devuelve un número de referencia. Proporcione este número de referencia al soporte técnico de Microsoft para su
posterior investigación.

El comprobador de soluciones falla debido a una versión no compatible


del Comprobador de PowerApps
El Comprobador de soluciones es una característica habilitada por la aplicación Comprobador de PowerApps. Si ha
instalado una versión de la aplicación Comprobador de PowerApps anterior a 1.0.0.47, las ejecuciones del
Comprobador de soluciones pueden no completarse correctamente. Debe actualizar la versión del Comprobador
de PowerApps desde Centro de administración de Dynamics 365.
Sin embargo, si tiene una versión del Comprobador de PowerApps anterior a 1.0.0.45 instalado, se recomienda
eliminar la solución y volver a instalarla. Debido a los cambios recientes de esquema, la actualización del
Comprobador de PowerApps de versiones anteriores a 1.0.0.45 puede provocar errores.
Si desea conservar los resultados anteriores del Comprobador de la solución, exporte los resultados de una
ejecución anterior o exporte todos los datos del Comprobador de soluciones con Exportar datos a Excel para
exportar los datos de las siguientes entidades:
Componente de análisis
Trabajo de análisis
Resultado de análisis
Detalle de resultado de análisis
Cómo desinstalar el Comprobador de PowerApps
Para desinstalar la solución Comprobador de PowerApps:
1. Como administrador del sistema o como personalizador del sistema, abra el portal de PowerApps en
https://make.powerapps.com/environments.
2. Seleccione Solución.
3. Seleccione Comprobador de PowerApps y, a continuación, en la barra de herramientas de soluciones
seleccione Eliminar.
Cómo instalar el Comprobador de PowerApps
Para instalar el Comprobador de PowerApps en el entorno Common Data Service:
1. Como administrador del sistema o como personalizador del sistema, abra el portal de PowerApps en
https://make.powerapps.com/environments.
2. Seleccione Solución.
3. En la barra de herramientas de soluciones, seleccione Comprobador de soluciones y, a continuación,
seleccione Instalar.

El Comprobador de soluciones no puede tener acceso a las


organizaciones en modo de administración
Las organizaciones que se han situado en Modo de administración limitan a propósito el acceso solo a los usuarios
con roles de Administrador del sistema y Personalizador del sistema. Puesto que la identidad de aplicación
Comprobador de PowerApps no tiene ningún de estos roles asignados de forma predeterminada, no tiene acceso
a las organizaciones que trabajan en este modo.
Para usar el Comprobador de soluciones en esta organización, el modo de administración debe deshabilitarse.
Cómo deshabilitar el modo de administración
Para deshabilitar el modo de administración en una instancia de organización:
1. Abra el selector de instancias de Dynamics 365:
https://port.crm.dynamics.com/G/Instances/InstancePicker.aspx.
2. Seleccione la instancia de la organización que tiene problemas de ejecución del Comprobador de
soluciones.
3. Seleccione ADMINISTRACIÓN.
4. Desactive Habilitar modo de administración y a continuación, seleccione Guardar.

5. Volver a ejecutar el Comprobador de soluciones

El Comprobador de soluciones falla porque faltan roles de seguridad


El usuario de la aplicación para el Comprobador de soluciones requiere dos roles de seguridad asignados para
proporcionar los privilegios necesarios para comunicarse con la organización de Common Data Service. Si uno de
estos roles no se asigna al usuario 'Comprobador de PowerApps', se producirá error al intentar ejecutar análisis,
descargar resultados y ejecutar cancelación. Esto ocurre con más frecuencia cuando los clientes tienen instalada
automatización que quita roles de seguridad de usuarios inesperados. Los roles de seguridad siguientes contienen
permisos mínimos necesarios:
Exportar personalizaciones
Comprobador de soluciones
Cómo asignar roles de seguridad que faltan
Para asignar roles de seguridad que faltan al usuario del Comprobador de PowerApps:
1. Abra la organización de Common Data Service y vaya a Configuración > Seguridad > Usuarios.
2. Seleccione el usuario del 'Comprobador de PowerApps' de la lista de usuarios.
3. Seleccione ADMINISTRAR ROLES en la barra de comandos.
4. Seleccione las casillas de rol “Exportar personalizaciones y “Comprobador de soluciones” y, a
continuación seleccione Aceptar.
5. Volver a ejecutar el Comprobador de soluciones

El comprobador de soluciones falla debido al modo de acceso


restringido
El usuario de la aplicación para el Comprobador de soluciones requiere un modo de acceso de 'No interactivo' o
'Solo lectura' para comunicarse con la organización de Common Data Service. Si ha cambiado el modo de
acceso a otro valor como “Administrativo”, fallarán los intentos de ejecutar análisis, descargar resultados y
ejecutar cancelación.
Para resolver este problema, debe actualizar el usuario de la aplicación 'Comprobador de PowerApps' con el
modo de acceso 'No interactivo'.
Cómo actualizar el modo de acceso del usuario
Para actualizar el modo de acceso del usuario del Comprobador de PowerApps:
1. Abra la organización de Common Data Service y vaya a Configuración > Seguridad > Usuarios.
2. Seleccione el usuario del 'Comprobador de PowerApps' de la lista de usuarios y haga doble clic para
abrir el formulario de usuario.
3. Vaya a la sección 'Administración' > 'Información de licencia de acceso de cliente (CAL )' del
formulario.
4. Seleccione 'No interactivo' en el control desplegable Modo de acceso.
5. Guarde y cierre el formulario de usuario.
6. Volver a ejecutar el Comprobador de soluciones

El comprobador de soluciones falla debido a que la aplicación de


primera parte está deshabilitada en AAD
La identidad de la aplicación de empresa de primera parte utilizada por el Comprobador de soluciones
(PowerApps-Advisor) no debe ser deshabilitada en Azure Active Directory (AAD ). Si está deshabilitada, la
identidad no puede autenticarse cuando se solicitan tokens de portador para Common Data Service y otros
proveedores necesarios de recursos en nombre del usuario que realiza la solicitud.
Siga los pasos indicados a continuación para comprobar que la identidad de la aplicación no se ha deshabilitado en
AAD y, si es necesario, habilite la aplicación.
Cómo comprobar y/o modificar el estado habilitado de la aplicación
Para comprobar y/o modificar el estado habilitado de la identidad de la aplicación empresarial PowerApps-Advisor
1. Obtenga acceso al inquilino en el Portal de Azure Active Directory (AAD ).
2. Navegue a Otras aplicaciones.
3. Seleccione Toda la aplicación y busque 'PowerApps-Advisor'.

4. Seleccione 'PowerApps-PowerApps' para ver los detalles de la aplicación.


5. Seleccione Propiedades.
6. Compruebe el estado de Habilitado para que los usuarios inicien sesión. Si 'No', la aplicación se ha
deshabilitado.

7. Seleccione el control de radio para cambiar el valor a 'Sí'. Se habilita la aplicación.

8. Seleccione Guardar. La aplicación está habilitada ahora. Es posible que tenga que esperar unos minutos
para que el cambio se propague.
9. Volver a ejecutar el Comprobador de soluciones

IMPORTANT
Debe tener privilegios de administrador en Azure Active Directory (AAD) para editar aplicaciones empresariales.

El Comprobador de soluciones no exporta soluciones con


componentes de flujo de proceso de negocio de borrador
Si una solución contiene un componente del flujo de proceso de negocio con el estado de borrador que nunca se
ha activado anteriormente, el Comprobador de soluciones no podrá exportar la solución para análisis. Este error
no es exclusivo del Comprobador de soluciones y es producido por el flujo de proceso de negocio que tiene una
dependencia en un componente de entidad de apoyo (personalizado) que no se crea hasta que el flujo de proceso
de negocio se activa por primera vez. Este problema también puede producirse si un flujo de proceso de negocio
se activa desde el Explorador de soluciones.
Referencia Artículo de KB #4337537: Exportación no válida - Falta entidad de proceso de negocio para obtener
más información sobre el problema y pasos para la resolución.

El Comprobador de soluciones no exporta las soluciones con parches


Si a una solución se le han aplicado parches, el Comprobador de soluciones no podrá exportar la solución para
analizarla. Cuando se aplicaron parches a una solución, la solución original pasa a bloquearse y no se puede
cambiarla o exportarla mientras haya revisiones dependientes que existan en la organización que identifica la
solución como solución primaria.
Para resolver este problema, clone la solución para que todos los parches relacionados con la solución se
implementen en una solución recién creada. Esto desbloquea la solución y permite exportarla desde el sistema.
Para obtener más información, consulte Clonar una solución.

El Comprobador de soluciones no analizará soluciones vacías


Si el Comprobador de soluciones exporta una solución que no contiene componentes para analizar, finalizará el
posterior procesamiento y considerará la ejecución un error. Asegúrese de que la solución seleccionada enviada
para un análisis del Comprobador de soluciones contiene al menos un componente.

El Comprobador de soluciones no exporta soluciones grandes


La escenario principal por el que no se exporta una solución grande desde el entorno de Common Data Service
implica una excepción de tiempo de espera en la solicitud de exportación. Esto se producirá si la solicitud supera
20 minutos. Las soluciones pesadas, como la solución predeterminada, puedan experimentar errores para poder
exportarse en este intervalo de tiempo y la comprobación no se completará correctamente. Si el Comprobador de
soluciones encuentra un tiempo de espera agotado durante la exportación, lo volverá a intentar tres veces antes de
que dé error en el trabajo, por lo que pueden pasar más de una hora antes de que reciba una notificación de error.
La solución provisional es crear soluciones más pequeñas con menos componentes para analizar. Si el gran
tamaño del archivo de la solución se debe a muchos componentes de ensamblado de complementos, consulte las
instrucciones en Optimizar el desarrollo de ensamblados personalizados.
IMPORTANT
Para reducir los falsos positivos, asegúrese de agregar las personalizaciones dependientes. Cuando cree una solución y
agregue estos componentes, incluya lo siguiente:
Cuando agregue complementos, incluya las Pasos de procesamiento de mensajes de SDK para el complemento.
Cuando agregue formularios de entidades, incluya los recursos web de JavaScript que se adjuntan a los eventos de
formulario.
Cuando agregue recursos web de JavaScript, incluya cualquier recurso web de JavaScript dependiente.
Cuando agregue recursos web de HTML, incluya cualquier dependiente script que esté definido en el recurso web HTML.
Cuando agregue flujos de trabajo personalizados, incluya el ensamblado que se usa en el flujo de trabajo.

Las referencias de número de línea para problemas en los recursos de


HTML con JavaScript insertada no son correctas
Cuando se procesan recursos web HTML en el Comprobador de soluciones, el recurso web HTML se procesa
independientemente de JavaScript en el recurso de web HTML. Por este motivo, el número de número de línea de
la infracción detectada en <script> del recurso web HTML no es correcto.

Problema de sintaxis web no admitida para recursos web


ECMAScript 6 (2015) o las versiones posteriores no se admiten actualmente en el Comprobador de soluciones.
Cuando el Comprobador de soluciones analiza JavaScript con ECMAScript 6 o versiones posteriores, se registra
un problema de sintaxis web no admitida para el recurso web.

Informes de varias infracciones para complementos y actividades de


flujo de trabajo en función de ámbito de llamada
Para reglas de complemento y de actividad de flujo de trabajo donde el problema sólo es relevante en el contexto
de llamadas, la herramienta Comprobador de soluciones inicia su análisis en la implementación de la interfaz de
IPlugin y atraviesa un gráfico de llamada para detectar problemas en el ámbito de esa implementación. En algunos
casos, muchas rutas de llamada pueden llegar a la misma ubicación donde se detecta el problema. Puesto que el
problema es relevante al ámbito de llamadas, la herramienta puede informar en función de ese ámbito para
proporcionar una mejor imagen del impacto en lugar de en ubicaciones distintas. Como resultado, varios
problemas pueden hacer referencia a una sola ubicación que deben ser corregida.

Vea también
Prácticas recomendadas e instrucciones para Common Data Service
Prácticas recomendadas e instrucciones para aplicaciones basadas en modelos
Usar soluciones y revisiones segmentadas para
exportar activos seleccionados de la entidad
25/11/2019 • 12 minutes to read • Edit Online

Para conseguir un control más estrecho sobre lo que distribuye en soluciones y revisiones de solución, utilice
segmentación de la solución. Con la segmentación de soluciones, puede exportar soluciones con activos
seleccionados de la entidad, como campos de la entidad, formularios y vistas, en lugar de entidades completas con
todos los activos. Para crear soluciones y revisiones segmentadas, puede usar la interfaz de usuario de las
soluciones sin escribir código.
Además de tener más control sobre qué contiene una solución, podrá controlar qué incluye una revisión. Puede
crear una revisión para una solución primaria y exportarla como actualización de menor importancia en la
solución base. Cuando se clona una solución, el sistema resume todas las revisiones relacionadas en la solución
base y crea una nueva versión.
Cuando trabaja con las revisiones y soluciones clonadas, tenga en cuenta la siguiente información:
Una revisión representa una actualización incremental de menor importancia de la solución primaria. Una
revisión puede agregar o actualizar componentes y activos en la solución primaria cuando se instala en el
sistema de destino, pero no puede eliminar ningún componente o activo de la solución primaria.
Una revisión solo puede tener una solución primaria, pero una solución primaria tiene una o más
revisiones.
Una revisión se crea para una solución no administrada. No se puede crear una revisión para una solución
administrada.
Cuando exporta una revisión a un sistema de destino, debe exportarlo como revisión administrada. No use
revisiones no administradas en entornos de producción.
La solución primaria debe estar presente en el sistema de destino para instalar una revisión.
Puede eliminar o actualizar una revisión.
Si elimina una solución primaria, todas las revisiones secundarias también se eliminan. El sistema muestra
un mensaje de advertencia de que no puede deshacer la operación de eliminación. La eliminación se realiza
en una sola transacción. Si una de revisiones o la solución primaria no se elimina, la transacción completa
se revertirá.
Una vez que haya creado la primera revisión para una solución primaria, la solución pasa a estar bloqueada,
y no puede realizar ningún cambio en esta solución o exportarla. Sin embargo, si elimina todas sus
revisiones secundarias, la solución primaria se desbloquea.
Cuando se clona una solución base, todas las revisiones secundarias se resumen en la solución base y pasa
a ser una nueva versión. Puede agregar, editar, o eliminar componentes y activos en la solución clonada.
Una solución clonada representa la sustitución de la solución base cuando se instala en el sistema de
destino como solución administrada. Normalmente, puede usar una solución clonada para enviar una
actualización importante a la solución precedente.

Descripción de los números de versión para soluciones clonadas y


revisiones
La versión de una solución tiene el siguiente formato: primaria.secundaria.compilación.revisión. Una revisión debe
tener un número de compilación o de revisión más alto que la solución primaria. No puede tener una versión
importante o de menor importancia más alta. Por ejemplo, para una versión de solución base 3.1.5.7, una revisión
podría ser una versión 3.1.5.8 o versión 3.1.7.0, pero no versión 3.2.0.0. Una solución clonada debe tener el
número de versión mayor o igual que el número de versión de la solución base. Por ejemplo, para una versión de
solución base 3.1.5.7, una solución clonada podría ser una versión 3.2.0.0 o versión 3.1.5.7. En la interfaz de
usuario, solo puede establecer los valores de versión importante y secundaria para una solución clonada, y los
valores de compilación o de revisiones para una revisión.

Crear una solución segmentada con los activos de entidad que desee
Para crear una solución segmentada, comience con la creación de una solución no administrada y agregue los
recursos existentes. Puede agregar varias entidades del sistema o personalizadas y, para cada entidad, elija los
activos que desea incluir en la solución. El programa de instalación de tipo asistente le orienta paso a paso en el
proceso de agregar activos de entidad.
1. Vaya a Configuración > Soluciones.
2. Seleccione Nueva para crear una solución. Especifique la información en los campos obligatorios.
Seleccione Guardar y cerrar.
3. Abra la solución que acaba de crear. En la lista desplegable Agregar existente, seleccione Entidad.
4. En el cuadro de diálogo Seleccionar componentes de la solución, seleccione una o varias entidades que
desea agregar a la solución. Seleccione Aceptar.
5. Se abrirá el asistente. Siga las indicaciones del asistente para agregar activos para cada entidad
seleccionada a la solución.
6. Seleccione Publicar para que los cambios surtan efecto.
Las ilustraciones siguientes proporcionan un ejemplo de crear una solución segmentada eligiendo activos de
entidad desde las entidades Account , Case y Contact .
Comience eligiendo el componente Entidad.

A continuación, seleccione los componentes de la solución.


Siga el asistente. En el paso 1, empiece en orden alfabético, seleccione los activos para la primera entidad, entidad
Account , como se indica aquí.

Abra la pestaña Campos y seleccione el campo Número de cuenta.


En el paso 2, para la entidad Caso, agregue todos los activos.

En el paso 3, agregue el campo Aniversario para la entidad Contacto.


Como resultado, la solución segmentada que se crea contiene tres entidades, Account , Case ,y Contact . Cada
entidad solo contiene los activos que fueron elegidos.

Crear una revisión de la solución


Una revisión contiene cambios en la solución primaria, como agregar o editar componentes y activos. No es
necesario incluir los componentes primarios a menos que prevea modificarlos.
Crear una revisión de una solución no administrada
1. Vaya a Configuración > Soluciones.
2. En la lista, seleccione una solución no administrada para la que crear una revisión. Seleccione Clonar una
revisión. El cuadro de diálogo que se abre contiene el nombre de la solución base y el número de versión
de la revisión. Seleccione Guardar.
3. En la cuadrícula, busque y abra la revisión recién creada. Al igual con la solución base, siga las indicaciones
del asistente para agregar los componentes y los activos que desee.
4. Seleccione Publicar para que los cambios surtan efecto.
Las ilustraciones siguientes proporcionan un ejemplo de crear una revisión para una solución existente. Empiece
seleccionando Clonar una revisión (en la vista comprimida, el icono Clonar una revisión se muestra como dos
cuadrados pequeños, como se indica a continuación).
En el cuadro de diálogo Clonar para revisar se ve que el número de versión de la revisión se basa en el número
de versión de la solución primaria, pero el número de compilación se incrementa en uno. Cada revisión posterior
tiene un número de compilación o de revisión más alto que la revisión precedente.

La captura de pantalla siguiente muestra la solución base SegmentedSolutionExample, versión 1.0.1.0 y


revisión SegmentedSolutionExample_Patch, versión 1.0.2.0.

En la revisión agregamos una nueva entidad personalizada llamada Book , e incluimos todos los activos de la
entidad Book en la revisión.
Clonar una solución
Cuando se clona una solución no administrada, todas las revisiones relacionadas con esta solución se resumen en
la versión recién creada de la solución original.
1. Vaya a Configuración > Soluciones.
2. En la lista, seleccione una solución no administrada que desea clonar. Seleccione Clonar solución. El
cuadro de diálogo que se abre contiene el nombre de la solución base y el nuevo número de versión.
Seleccione Guardar.
3. Seleccione Publicar para que los cambios surtan efecto.
Continuando con el ejemplo, verá el cuadro de diálogo Clonar para solucionar que indica el nuevo número de
versión de la solución.

Después de clonar, la nueva versión de la solución contiene tres entidades originales ( Account , Case , y Contact ),
y la entidad personalizada llamada Book que se agregó en su revisión. Cada entidad solo contiene los activos que
se agregaron en el ejemplo.

Pasos siguientes
Información general de las soluciones [Crear revisiones para simplificar las actualizaciones de la solución]
Cambiar el prefijo del editor de soluciones
25/11/2019 • 5 minutes to read • Edit Online

Cada personalización creada es parte de una solución. Cada solución tiene un editor. De forma
predeterminada, la solución con la que trabajará en PowerApps será la Solución predeterminada de
Common Data Service que está asociado con el Editor predeterminado de Common Data Service.
El prefijo de personalización predeterminado se asignará aleatoriamente para este editor, por ejemplo,
podría ser cr8a3 . Esto significa que el nombre de cada nuevo elemento de metadatos creado para su
organización tendrá que anexarse a los nombres usados para identificar los elementos. Si crea una nueva
entidad denominada Animal, el nombre único usado por Common Data Service sería cr8a3_animal . Lo
mismo se aplica a los nuevos campos (atributos), relaciones u opciones de conjuntos de opciones.
A menos que vaya a distribuir la solución para instalarla junto con los elementos de metadatos que se
crearon para otro editor de soluciones, no es realmente importante cuál es el prefijo de personalización. No
es visible para la mayoría de las personas que usan sus aplicaciones. Pero se expone a los desarrolladores y
a otras personas técnicas que hacen cosas como crear informes. Proporciona una forma rápida de entender
qué solución se agregó al elemento.
Por este motivo, a mucha gente le gusta cambiar el prefijo del editor de soluciones para que sea más
significativo, especialmente para ver elementos de metadatos que incluyen los importados de otras
soluciones.

NOTE
Si cambia el prefijo del editor de soluciones, debe hacerlo antes de crear nuevos elementos de metadatos. Puede
cambiar los nombres de los elementos de metadatos. Cuando cambie el valor del prefijo de personalización,
asegúrese de pulsar en el campo siguiente. La opción Prefijo de valor de opción generará automáticamente un
número según el prefijo de personalización. Este número se usa al agregar opciones de conjuntos de opciones y
ofrece un mensaje de la solución usada para agregar la opción.

Cambiar el prefijo del editor de soluciones del editor


predeterminado de Common Data Service
1. En el portal PowerApps, seleccione Aplicaciones basadas en modelos en la esquina inferior izquierda.
2. Haga clic en Avanzadas en la navegación izquierda para abrir la Solución predeterminada de
Common Data Service
3. En el explorador de soluciones, seleccione el área Información en la navegación izquierda.
4. Haga clic en el vínculo Editor para abrir el formulario Editor predeterminados de Common Data
Service.
5. Edite el valor del campo Prefijo con el prefijo de personalización que desee.
6. Haga clic en Guardar y cerrar.

Cambiar el prefijo del editor de soluciones de cualquier editor


Las personas que distribuyen sus soluciones trabajarán normalmente en una solución que se creen en lugar
de en la Solución predeterminada de Common Data Service. El prefijo de personalización suele
establecerse cuando crean la solución. Puede cambiar el prefijo de personalización para otra solución no
administrada con la que trabaja siguiendo estos pasos:
1. En el portal PowerApps, seleccione Aplicaciones basadas en modelos en la esquina inferior izquierda.
2. Haga clic en Avanzadas en la navegación izquierda para abrir la Solución predeterminada de
Common Data Service
3. Edite la dirección URL de la página para quitar todos después dynamics.com y volver a cargar la página.
4. Navegue a Configuración > Personalización > Personalizaciones.
5. Haga clic en Editores. Ahora puede ver una lista de editores disponibles.
6. Haga clic en el editor que desee editar para abrir el formulario del editor.
7. Edite el valor del campo Prefijo con el prefijo de personalización que desee.
8. Haga clic en Guardar y cerrar.
Establecer propiedades administradas en metadatos
de Common Data Service
25/11/2019 • 6 minutes to read • Edit Online

Las propiedades administradas se aplican únicamente al incluir metadatos con una solución administrada e
importarlos en otro entorno. Estos valores permiten al responsable de la solución tener un determinado control
sobre el nivel de personalización que desea permitir a los usuarios que instalen su solución administrada.

TIP
Normalmente es una buena idea permitir a los usuarios ampliar metadatos en su solución que funcionen con los datos
profesionales. Esto les permitirá adaptar su solución a sus necesidades de la misma forma que pueden hacer para entidades
estándar.
Para los metadatos que ofrecen funcionalidades para admitir la solución pero no contienen datos empresariales, ésta es una
buena idea para limitar qué personalizaciones se permiten.

La definición de las propiedades administradas debe hacerse mediante el explorador de soluciones.


Ir a una solución no administrada
1. En el portal de PowerApps, seleccione Soluciones y, a continuación, en la barra de herramientas, seleccione
Cambiar a clásico.
2. En la lista Todas las soluciones seleccione la solución no administrada que desee.

Propiedades administradas de entidad


Mientras visualiza entidades, seleccione la entidad y seleccione Propiedades administradas en la barra de
menús. Se abrirá el cuadro de diálogo Establecer propiedades administradas.

Las entidades tienen más propiedades administradas que ningún otro tipo de componente de la solución. Si la
entidad es personalizable, puede definir las siguientes opciones:
OPCIÓN DESCRIPCIÓN

Se puede personalizar Controla el resto de opciones. Si esta opción es False , no se


aplicará ninguno de los demás valores. Si es True , puede
especificar las demás opciones de personalización. Cuando
False , es equivalente a establecer el resto de opciones en
falso.

Se puede modificar el nombre para mostrar Si el nombre para mostrar de la entidad puede modificarse.

Se puede cambiar propiedades adicionales Se aplica a cualquier elemento no cubierto por las otras
opciones.

Se pueden crear nuevos formularios Si se pueden crear nuevos formularios para la entidad.

Se pueden crear nuevos gráficos Si se pueden crear nuevos gráficos para la entidad.

Se pueden crear vistas nuevas Si se pueden crear nuevas vistas para la entidad.

Puede cambiar la relación jerárquica Si los valores de las relaciones jerárquicas se pueden cambiar.
Más información: Definir y consultar datos relacionados
jerárquicamente

Puede habilitarse el seguimiento de cambios Si la propiedad Seguimiento de cambios de la entidad


puede cambiar.

Se puede habilitar la sincronización con el índice de Si la entidad se puede configurar para habilitar la búsqueda
búsqueda externo por relevancia. Más información: Configurar la búsqueda por
relevancia para mejorar resultados de búsquedas y
rendimiento

Propiedades administradas de campos


Consulte Crear y editar campos para Common Data Service usando el explorador de soluciones de PowerApps
para obtener información sobre cómo editar campos.
Mientras visualiza campos, seleccione un campo personalizado de una solución no administrada y elija Más
acciones > Propiedades administradas en la barra de menús.

Se abrirá el cuadro de diálogo Establecer propiedades administradas.


La opción Se puede personalizar controla el resto de opciones. Si esta opción es False, no se aplicará ninguno de
los demás valores. Si es Verdadero, puede especificar las demás opciones de personalización.
Si el campo es personalizable, defina las siguientes opciones como Verdadero o Falso.
Se puede modificar el nombre para mostrar
Se puede cambiar el nivel de requisito
Se puede cambiar propiedades adicionales : esta propiedad controla cualquier otra personalización que no
tiene una propiedad administrada específica.
Si establece todas las opciones individuales como Falso, es equivalente a establecer Se puede personalizar como
Falso.
Aplique sus opciones y haga clic en Establecer para cerrar el cuadro de diálogo.

NOTE
Si este campo es un campo de Fecha y hora, habrá disponible una propiedad adicional de Puede cambiar el
comportamiento de fecha y hora. Más información: Comportamiento y formato del campo de fecha y hora

Propiedades administradas de la relación


Mientras visualiza relaciones de entidad, seleccione una relación de una solución no administrada y elija Más
acciones > Propiedades administradas en la barra de menús.
Con las relaciones, la única propiedad administrada es Se puede personalizar. Este valor único controla todos los
cambios que se pueden realizar en la relación entre entidades.
Vea también
Propiedades administradas
Crear y editar entidades con el explorador de soluciones
Crear y editar campos para Common Data Service con el explorador de soluciones de PowerApps
Creación y edición de relaciones entre entidades 1:N (uno a varios) o N:1 (varios a uno) con el explorador de
soluciones
Crear relaciones entre entidades N:N (varios a varios) en Common Data Service mediante el explorador de
soluciones
Publicar cambios
25/11/2019 • 2 minutes to read • Edit Online

Determinadas personalizaciones que realizan cambios en la interfaz de usuario requieren que se publiquen antes
de que los usuarios puedan usarlas en la aplicación.

Publique las personalizaciones


1. Seleccione Soluciones en la barra de navegación izquierda.
2. Seleccione la solución que desea publicar para abrirla.
3. En la lista de comandos, seleccione Publicar todas las personalizaciones.

IMPORTANT
La preparación de personalizaciones puede tardar tiempo. Si aparece un mensaje que indica que la página del explorador ha
dejado de responder, espere a que responda y no la cierre.

Pasos siguientes
Conocer los componentes de las aplicaciones basadas en modelos
Prácticas recomendadas cuando trabaja con
soluciones
25/11/2019 • 2 minutes to read • Edit Online

Este tema describe las prácticas recomendadas cuando trabaja con soluciones.

Use una sola solución administrada para administrar una aplicación


basada en modelo
Para actualizar la aplicación que se incluyó en la solución administrada, use actualizar o revisar soluciones. No
instale diferentes soluciones administradas en un entorno que tiene la misma aplicación basada en modelos. Más
información: Actualizar soluciones y Usar soluciones segmentadas y parches para exportar activos seleccionados
de la entidad

Use roles de seguridad para gestionar el acceso a aplicaciones


Las aplicaciones basadas en modelo deben tener roles de seguridad asignados para controlar el acceso de
usuarios. Más información: Agregar roles de seguridad a la aplicación

Eliminar la solución administrada para eliminar una aplicación basada en


modelos
Para eliminar una aplicación basada en modelo que se instaló en la solución predeterminada como parte de una
solución administrada, elimine la solución administrada.
No elimine directamente una aplicación o el mapa del sitio de una aplicación del entorno predeterminado que se
instaló como parte de una solución administrada. Si lo hace podría producirse un error en la actualización de la
solución usada para instalar la aplicación. Un ejemplo de eliminar directamente una aplicación basada en modelo
sería abrir la solución predeterminada en el Explorador de soluciones e ir a Aplicaciones basadas en modelo,
seleccionar la aplicación y, a continuación seleccionar Eliminar.
Vea también
Información general de las soluciones
Preparación de los datos de autoservicio con flujos
de datos
25/11/2019 • 13 minutes to read • Edit Online

[Este tema es documentación preliminar y está sujeto a modificaciones.]


A medida que el volumen de datos sigue creciendo, también aumenta el reto de dar forma a los datos en
información bien estructurada y procesable. Conviene que los datos estén listo para aplicaciones, cargas de trabajo
de IA o análisis para poder convertir rápidamente volúmenes de datos en información procesable. Con la
preparación de los datos de autoservicio en el portal de PowerApps, puede transformar y cargar los datos en
Common Data Service o la cuenta de Azure Data Lake Storage Gen2 en solo unos clics.
Los flujos de datos se introdujeron para ayudar a las organizaciones a unificar datos de orígenes dispares y a
prepararlos para el consumo. Puede crear fácilmente flujos de datos mediante herramientas familiares de
autoservicio para ingerir, transformar, integrar, y mejorar los macrodatos. Cuando cree un flujo de datos, definirá
las conexiones a un origen de datos, la lógica ETL (extraer, transformar, cargar), y el destino para cargar los datos
resultantes. Una vez creados, puede configurar un programación de actualización de flujos de datos para indicar la
frecuencia con la que debe ejecutarse. Además, el nuevo motor de cálculo basado en modelo hace que el proceso
de preparación de datos sea más administrable, más determinista, y menos incómodo para los clientes de flujo de
datos. Con los flujos de datos, las tarea que antes requerían una organización TI de datos para crear y supervisar (y
muchas horas o días para completar) se ahora pueden administrar con solo unos pocos clics por individuos que ni
siquiera son científicos de datos, como creadores de aplicación, analistas de negocios y creadores de informes.
Los flujos de datos almacenan datos en entidades. Una entidad es un conjunto de registros que se usa para
almacenar datos, similar a cómo una tabla almacena los datos en una base de datos. Los clientes pueden definir un
esquema de entidad personalizada o aprovechar las entidades estándar de Common Data Model. Common Data
Model es un lenguaje de datos compartido para uso de aplicaciones de negocios y analíticas. El sistema de
metadatos Common Data Store habilita la coherencia de datos y sus significado a través de aplicaciones y de
procesos de negocio, como PowerApps, Power BI, algunas aplicaciones de Dynamics 365 (aplicaciones basadas en
modelo), y Azure, que almacenan datos de conformidad con el Common Data Store. Las entidades resultantes de
un flujo de datos pueden a continuación almacenarse en uno de los siguientes:
Common Data Service. Le permite almacenar y administrar de forma segura los datos que usan las
aplicaciones empresariales utilizando PowerApps y Microsoft Flow.
Azure Data Lake Storage Gen2. Le permite colaborar con personas de la organización usando Power BI,
Azure Data, y los servicios de IA o aplicaciones de línea de negocio a la medida que leen datos del lago. Los
flujos de datos que cargan datos en una cuenta de Azure Data Lake Storage almacenan datos en carpetas de
Common Data Model. Las carpetas de Common Data Service contienen datos y metadatos
esquematizados en un formato estandarizado para facilitar el intercambio de datos y permitir una
interoperabilidad completa entre los servicios que producen o consumen datos almacenados en la cuenta de
Azure Data Lake Storage de una organización como capa de almacenamiento compartido.
Puede usar flujos de datos para preparar datos de un conjunto grande y creciente de orígenes de datos admitidos
locales y basados en la nube incluidos Excel, la base de datos de Azure SQL, SharePoint, Azure Data Explorer,
Salesforce, base de datos Oracle, etc.
Después de seleccionar el origen de datos, puede usar la experiencia sin código o con poco código de Power Query
para transformar los datos y asignarlos a entidades estándar en Common Data Model o crear entidades
personalizadas. Los usuarios avanzados pueden editar directamente el lenguaje M de un flujo de datos para
personalizar completamente flujos de datos, similares a la experiencia de Power Query que millones de usuarios de
Power BI Desktop y Excel conocen ya.
Una vez que ha creado y ha guardado un flujo de datos, tendrá que ejecutarlo en la nube. Puede elegir
desencadenar un flujo de datos para ejecutarse manualmente o programar la frecuencia para que el servicio de
flujo de datos de Power Platform lo ejecute por usted. Cuando un flujo de datos completa una ejecución, sus datos
están disponibles para usar. Para cargar los datos de flujo de datos en Common Data Service, el conector de
Common Data Service se puede usar en PowerApps, Microsoft Flow, Excel, y el resto de aplicaciones que admiten
el conector Common Data Service. Para obtener flujos de datos almacenados en la cuenta de Azure Data Lake
Storage Gen2 de su organización, puede usar el conector de flujo de datos de Power Platform en Power BI Desktop
o tener acceso a los archivos directamente en el lago.

Cómo usar flujos de datos


La sección anterior proporcionó información general sobre la tecnología de flujos de datos. En esta sección,
veremos cómo los flujos de datos se pueden usar en una organización.

NOTE
Debe tener un plan PowerApps de pago para usar flujos de datos, pero no se le cobra por separado por usar flujos de datos.

Cargar datos en Common Data Service


Los flujos de datos se pueden usar para rellenar entidades en Common Data Service que se usan en aplicaciones
PowerApps. Con solo unos clics puede integrar datos de orígenes online y locales.
Ampliar el Common Data Model para las necesidades de negocio
Para las organizaciones que desean ampliar y crear basándose en Common Data Model, los flujos de datos
permiten a profesionales de inteligencia empresarial personalizar entidades estándar o para crear nuevas. Este
método de autoservicio para personalizar el modelo de datos se puede usar posteriormente con flujos de datos
para crear paneles Power BI que están adaptados a una organización.
Extender las funciones con servicios de Azure Data e IA
Puede configurar flujos de datos de Power Platform para almacenar datos de flujos de datos en la cuenta de Azure
Data Lake Storage Gen2 de la organización. Cuando un entorno está conectado al lago de datos de la organización,
los científicos y los programadores de datos pueden aprovechar productos eficaces de Azure como Azure Machine
Learning, Azure Databricks, Azure Data Factory, etc.
Para obtener más información sobre integración de Azure Data Lake Storage Gen2 y flujos de datos, y cómo crear
flujos de datos que residen en Azure Data Lake de la organización, consulte Conectar Azure Data Lake Storage
Gen2 para almacenamiento de flujo de datos.

Resumen de preparación de los datos de autoservicio para macrodatos


en PowerApps
Hay varias situaciones y ejemplos donde los flujos de datos pueden permitirle para obtener mejor control —e
información más rápida— de los datos profesionales. Otros usuarios de la organización pueden aprovechar los
flujos de datos mediante Common Data Service, el conector de flujo de datos Power Platform de Power BI o
acceso directo a la carpeta Common Data Service del flujo de datos en la cuenta de Azure Data Lake Storage
Gen2 de la organización. Mediante un modelo de datos del estándar (esquema) definido por Common Data Model,
las aplicaciones empresariales pueden depender del esquema de una entidad, y resumirse del modo en que los
datos se crearon o cuál sea su origen. Cuando un flujo de datos completa una ejecución programada, los datos
están listos para modelado y creación de aplicaciones, flujos o ideas de BI en un período muy corto, mientras que
antes se tardaban meses, o más.
El formato estandarizado del Common Data Model permite que las personas en su organización crear aplicaciones
que generan elementos visuales e informes rápidos fáciles, y automáticos. Entre estos se incluyen, entre otros:
Asignación de datos de diversos orígenes a entidades estándar en Common Data Model para unificar datos
y aprovechar el esquema conocido para controlar aplicaciones listas para usar.
Crear sus propias entidades personalizadas para unificar datos en toda la organización.
Crear informes y paneles Power BI que aprovechen los datos de flujo de datos.
Crear integración con servicios de Azure Data e IA mediante la cuenta de Azure Data Lake Storage Gen2 de
la organización.

Pasos siguientes
Este artículo proporcionó una visión general de preparación de datos de autoservicio en el portal PowerApps, y las
formas en que puede usarlos. Los temas siguientes dan más detalles sobre los escenarios de uso comunes para
flujos de datos:
Creación y uso de flujos de datos en PowerApps
Agregar datos a una entidad en Common Data Service
Conexión a Azure Data Lake Storage Gen2 para el almacenamiento del flujo de datos
Uso de flujos de datos con orígenes de datos locales
Para obtener más información acerca de Power Query y actualización programada, puede leer estos artículos:
Información general sobre consulta en Power BI Desktop
Configurar la actualización programada
Para obtener más información sobre Common Data Model, puede leer el artículo de información general:
Common Data Model - visión general
Creación y uso de flujos de datos en PowerApps
25/11/2019 • 15 minutes to read • Edit Online

[Este tema es documentación preliminar y está sujeto a modificaciones.]


Con la preparación de datos avanzada disponible en PowerApps, puede crear una colección de datos llamada flujo
de datos, que puede usar posteriormente para conectar con datos empresariales de varios orígenes, limpiar datos,
transformarlos y, a continuación cargarlos a Common Data Service o la cuenta de almacenamiento de Azure Data
Lake Gen 2 de la organización.
Un flujo de datos es una colección de entidades (las entidades son similares a las tablas) que se crean y se
administran en entornos en el servicio de PowerApps. Puede agregar y editar as entidades en su flujo de datos, así
como administrar programaciones de actualización de datos, directamente desde el entorno en el que se creó el
flujo de datos.
Una vez que cree un flujo de datos en el portal de PowerApps, puede obtener datos de este utilizando el conector
Common Data Service o el conector de flujo de datos de Power BI Desktop, en función del destino que eligió al
crear el flujo de datos.
Hay tres pasos primarios para usar un flujo de datos:
1. Cree el flujo de datos en el portal de PowerApps. Seleccione el destino al que cargar los datos de salida, el
origen del que obtener los datos, y pasos de Power Query para transformar los datos mediante
herramientas de Microsoft diseñadas para hacerlo directamente.
2. Programe ejecuciones de flujo de datos. Ésta es la frecuencia con la que el flujo de datos de Power Platform
debe actualizar los datos que el flujo de datos cargará y transformará.
3. Use los datos que cargó en el almacenamiento de destino. Puede crear aplicaciones, flujos, informes Power
BI y paneles o conectar directamente a la carpeta Common Data Model del flujo de datos en el lago de su
organización mediante servicios de datos de Azure como Azure Data Factory, Azure Databricks o cualquier
otro servicio que admita el estándar de carpeta Common Data Model.
Las secciones siguientes examinan cada uno de estos pasos para que pueda estar familiarizado con las
herramientas proporcionadas para completar cada paso.

Crear un flujo de datos


Los flujos de datos se crean en un entorno. Por lo tanto, solo podrán verlos y administrarlos desde ese entorno.
Además, los individuos que desean obtener datos del flujo de datos deben tener acceso al entorno en el que los
creó.

NOTE
No se admite la creación de flujos de datos que cargan datos a Azure Data Lake Storage Gen2 en el entorno predeterminado.

1. Inicie sesión en PowerApps, y compruebe en qué entorno está, busque aparece el selector de entorno cerca
del lado derecho de la barra de comandos.

2. En el panel de navegación de la izquierda, seleccione la flecha abajo junto a Datos.


3. En la lista Datos, seleccione Flujos de datos y, a continuación seleccione Nuevo flujo de datos.

4. En la página Seleccionar destino de carga, seleccione el almacenamiento de destino donde desea


almacenar entidades. Los flujos de datos pueden almacenar entidades en Common Data Service o en la
cuenta de Azure Data Lake Storage de la organización. Una vez que seleccione un destino al que cargar
datos, escriba un Nombre para el flujo de datos y, a continuación seleccione Crear.
IMPORTANT
Hay un solo propietario de cualquier flujo de datos - la persona que lo creó. Solo el propietario puede editar el flujo
de datos. La licencia y el acceso a los datos creadas por el flujo de datos dependen del destino al que cargó los datos.
Los datos cargados en Common Data Service estarán disponibles a través del conector de Common Data Service y
requieren que la persona que tiene acceso a los datos está autorizada en Common Data Service. Los datos cargados
en la cuenta de almacenamiento de Azure Data Lake Gen 2 de la organización están accesibles desde el conector de
flujo de datos de Power Platform y el acceso a ellos requiere suscripción en el entorno que se crearon.

5. En la página Elegir origen de datos, seleccione el origen de datos donde se almacenan las entidades, y
después seleccione Crear. La selección de orígenes de datos mostrada le permite crear entidades de flujo de
datos.

6. Después de seleccionar un origen de datos, se le pedirá que proporcione los valores de conexión, incluida la
cuenta para usar al conectarse al origen de datos.
7. Una vez conectado, seleccione los datos que desea usar para la entidad. Cuando seleccione datos y un
origen, el servicio de flujo de datos de Power Platform volverá a conectar posteriormente al origen de datos
para mantener los datos en el flujo de datos actualizado, con la frecuencia que seleccione más adelante en el
proceso de instalación.

Ahora que ha seleccionado los datos para usar en la entidad, puede usar el editor de flujo de datos para dar forma
o transformar los datos al formato necesario para usarlos en el flujo de datos.

Use el editor de flujo de datos para dar forma o transformar datos


Puede dar forma a la selección de datos en un formulario que funcione mejor para su entidad mediante una
experiencia de edición de Power Query, similar al editor de Power Query en Power BI Desktop. Para obtener más
información acerca de Power Query, consulte Información general de consultas en Power BI Desktop.
Si desea ver el código que el editor de consultas está creando con cada paso, o si desea crear su propio código de
formato, puede usar el editor avanzado.

Flujos de datos y Common Data Model


Las entidades de flujos de datos incluyen nuevas herramientas para asignar fácilmente los datos empresariales el
Common Data Model, enriquecerlos con Microsoft y datos de terceros, y obtener acceso simplificado al
aprendizaje automático. Estas nuevas capacidades se pueden aprovechar para proporcionar ideas inteligentes y
procesable a los datos profesionales. Cuando haya finalizado las transformaciones en el paso de edición de
consultas descrito más abajo, puede asignar columnas de las tablas de origen de datos a campos de entidades
estándar definidas por Common Data Model. Las entidades estándar tienen un esquema conocido definido por
Common Data Model.
Para obtener más información acerca de este método, y sobre Common Data Model, consulte Common Data
Model.
Para aprovechar Common Data Model con el flujo de datos, seleccione la transformación Asignar a estándar en
el diálogo Editar consultas. En la pantalla Asignar entidades que aparece, seleccione la entidad estándar que
desee asignar.

Cuando asigna una columna de origen a un campo estándar, se produce lo siguiente:


1. La columna de origen toma el nombre del campo estándar (la columna cambia de nombre si los nombres
son diferentes).
2. La columna de origen obtiene el tipo de datos del campo estándar.
Para mantener la entidad estándar del Common Data Model, todos los campos estándar que no se asignan
obtienen valores Null.
Todas las columnas de origen que no están asignadas permanecen como están para asegurarse de que el resultado
de la asignación es una entidad estándar con campos personalizados.
Cuando haya finalizado las selecciones y la entidad y la configuración de datos estén completas, estará listo para el
siguiente paso, que es seleccionar la frecuencia de actualización del flujo de datos.

Establecer la frecuencia de actualización


Una vez que se han definido las entidades, le conviene programar la frecuencia de actualización para cada uno de
los orígenes de datos conectados.
1. Los flujos de datos usan un proceso de actualización de datos para mantener los datos actualizados. En la
Herramienta de creación de flujo de datos de Power Platform, puede seleccionar actualizar el flujo de
datos manualmente o automáticamente en un intervalo programado que elija. Para programar una
actualización automáticamente, seleccione Actualizar automáticamente.

2. Escriba la frecuencia de actualización del flujo de datos, la fecha de inicio, y la hora en UTC.
3. Seleccione Crear.

Usar flujos de datos almacenados en Azure Data Lake Storage Gen2


Algunas organizaciones pueden usar su propio almacenamiento para la creación y administración de flujos de
datos. Puede integrar flujos de datos con Azure Data Lake Storage Gen2 si sigue los requisitos para configurar la
cuenta de almacenamiento correctamente. Más información: Conexión a Azure Data Lake Storage Gen2 para el
almacenamiento del flujo de datos

Solución de problemas de conexión de datos


Es posible que haya ocasiones en las que al conectarse a orígenes de datos para ejecuciones de flujos de datos se
produzcan problemas. En esta sección se proporcionan sugerencias de solución a los problemas aparecen.
Conector de Salesforce. El uso de una cuenta de prueba para Salesforce con flujos de datos produce un
error de conexión sin información proporcionada. Para solucionar esto, use una cuenta de Salesforce de
producción o una cuenta de desarrollador para pruebas.
Conector de SharePoint. Asegúrese de proporcionar la dirección raíz del sitio de SharePoint, sin
subcarpetas o documentos. Por ejemplo, use un vínculo similar a
https://microsoft.sharepoint.com/teams/ObjectModel.
Conector de archivos JSON. Puede conectar actualmente a un archivo JSON mediante autenticación
básica únicamente. Por ejemplo, no se admite una dirección URL similar a
https://XXXXX.blob.core.windows.net/path/file.json?sv=2019 -01 -
01&si=something&sr=c&sig=123456abcdefg actualmente.
Azure SQL Data Warehouse. Los flujos de datos no admiten actualmente autenticación de Azure Active
Directory para Azure SQL Data Warehouse. Use autenticación básica para este escenario.

Pasos siguientes
Los siguientes artículos son útiles para obtener más información y escenarios al usar flujos de datos:
Agregar datos a una entidad en Common Data Service
Uso de flujos de datos con orígenes de datos locales
Conexión a Azure Data Lake Storage Gen2 para el almacenamiento del flujo de datos
Para obtener más información sobre Common Data Model:
Common Data Model - visión general
Más información sobre el esquema y entidades de Common Data Model en GitHub
Agregar datos a una entidad en Common Data
Service con Power Query
25/11/2019 • 5 minutes to read • Edit Online

En este procedimiento, creará una entidad en Common Data Service y la rellenará con datos de una fuente de
OData usando Power Query. Puede usar las mismas técnicas para integrar datos desde estos orígenes en línea y
locales, entre otros:
SQL Server
Salesforce
IBM DB2
Acceso
Excel
API web
Fuentes de OData
Archivos de texto
También puede filtrar, transformar y combinar datos antes de cargarlos en una entidad nueva o existente.
Si no tiene una licencia de PowerApps, puede suscribirse para obtener una gratuita.

Requisitos previos
Para seguir este tema, debe cambiar a un entorno en el que pueda crear entidades.

Especificar los datos de origen


1. Inicie sesión en PowerApps y haga clic o pulse en la flecha hacia abajo para Datos cerca del borde
izquierdo.

2. En la lista que aparece, haga clic o pulse en Integración de datos y haga clic o pulse en Nuevo proyecto
cerca de la esquina superior derecha de la ventana.
3. En la lista de orígenes de datos, haga clic o pulse en OData.
4. En Configuración de conexión, escriba o pegue esta dirección URL y, a continuación, seleccione
Siguiente:
https://services.odata.org/V4/Northwind/Northwind.svc/

5. En la lista de tablas, seleccione la casilla Clientes y haga clic o pulse en Siguiente.

6. (opcional) Modifique el esquema para adaptarlo a sus necesidades eligiendo qué columnas se incluirán,
transformando la tabla de una o varias maneras, agregando un índice o una columna condicional o
realizando otros cambios.
7. En la esquina inferior derecha haga clic o pulse en Siguiente.

Especificar la entidad de destino


1. En Configuración de carga, seleccione Cargar en nueva entidad.
Puede asignar a la nueva entidad un nombre distinto o un nombre para mostrar, pero mantenga los valores
predeterminados para seguir este tutorial exactamente.
2. En el lista de Campos de nombre principal, haga clic o pulse en ContactName y, a continuación, haga
clic o pulse en Siguiente en la esquina inferior derecha.
Puede especificar otro campo de nombre principal diferente, asignar una columna diferente de la tabla de
origen a cada campo de la entidad que está creando, o ambas cosas. También puede especificar si las
columnas de texto del resultado de la consulta se deben crear como Texto multilínea o Texto de una línea en
Common Data Service. Para seguir este tutorial de forma precisa, deje la asignación de columnas
predeterminada.
3. Cuando el Estado de carga sea Completado, seleccione Hecho en la esquina inferior derecha.
4. En Datos (cerca del borde izquierdo), seleccione Entidades para mostrar la lista de entidades en la base de
datos.
La entidad Clientes que creó de una fuente de OData aparece como entidad personalizada.

WARNING
Si usa Power Query para agregar datos a una entidad existente, todos los datos de esa entidad se sobrescribirán.

Si selecciona Cargar en entidad existente, puede especificar la entidad a la que agregará datos desde la tabla
Clientes. Podría, por ejemplo, agregar los datos a la entidad Cuenta con la que se suministra Common Data
Service. En Columna de origen, puede especificar con mayor detalle que los datos de la columna ContactName
de la tabla Clientes se deben agregar a la columna Nombre en la entidad Cuentas.
Estamos encantados con esta funcionalidad y estamos deseando oír sus comentarios. Envíenos sus sugerencias y
comentarios sobre esta función.
Si aparece un mensaje de error sobre permisos, consulte con el administrador.

WARNING
Hay un límite de 500.000 filas por ejecución y por proyecto que se pueden cargar usando esta característica.
Conexión a Azure Data Lake Storage Gen2 para el
almacenamiento del flujo de datos
25/11/2019 • 11 minutes to read • Edit Online

[Este tema es documentación preliminar y está sujeto a modificaciones.]


Puede configurar flujos de datos para almacenar sus datos en la cuenta de Azure Data Lake Storage Gen2 de la
organización. En este artículo se describen los pasos generales necesarios para ello, y proporciona instrucciones y
prácticas recomendadas a lo largo del proceso.
Hay algunas ventajas de configurar flujos de datos para almacenar sus definiciones y archivos de datos en su lago
de datos, por ejemplo:
Azure Data Lake Storage Gen2 proporciona instalaciones de almacenamiento de datos enormemente
escalables.
Los datos de flujo de datos y los archivos de definición se pueden aprovechar por los desarrolladores del
departamento de TI para aprovechar servicios de datos y de inteligencia artificial (IA) de Azure como se
demuestra en los ejemplos de GitHub de los servicios de datos de Azure.
Permite a los desarrolladores de la organización integrar datos del flujo de datos en aplicaciones internas y
soluciones de línea de negocios, mediante recursos para programadores para flujos de datos y Azure.

Requisitos
Para usar Azure Data Lake Storage Gen2 para flujos de datos, necesita lo siguiente:
Un entorno de PowerApps. Cualquier plan de PowerApps permitirá crear flujos de datos con Azure Data Lake
Storage Gen2 como destino. Deberá estar autorizado en el entorno como fabricante.
Una suscripción a Azure. Necesita una suscripción a Azure para usar Azure Data Lake Storage Gen2.
Un grupo de recursos. Use un grupo de recursos que ya tiene, o bien cree uno nuevo.
Una cuenta de almacenamiento de Azure. La cuenta de almacenamiento debe tener la característica Data Lake
Storage Gen2 habilitada.

TIP
Si no dispone de una suscripción con Azure, cree una cuenta gratuita antes de comenzar.

Preparar Azure Data Lake Storage Gen2 para flujos de datos de Power
Platform
Antes de configurar el entorno con una cuenta Azure Data Lake Storage Gen2, debe crear y configurar una cuenta
de almacenamiento. A continuación se enumeran los requisitos para flujos de datos de Power Platform:
1. La cuenta de almacenamiento se debe crear en el mismo inquilino de Azure Active Directory que su inquilino
de PowerApps.
2. Es recomendable que la cuenta de almacenamiento se cree en la misma región que el entorno de PowerApps
donde planea usarla. Para determinar dónde está el entorno de PowerApps, póngase en contacto con el
administrador del entorno.
3. La cuenta de almacenamiento debe tener la característica de espacio de nombres jerárquico habilitada.
4. Deben concederse un rol de propietario en la cuenta de almacenamiento.
En las siguientes secciones se indican los pasos necesarios para configurar su cuenta de Azure Data Lake Storage
Gen2.

Crear la cuenta de almacenamiento


Siga los pasos en Crear una cuenta de almacenamiento Azure Data Lake Storage Gen2.
1. Asegúrese de seleccionar la misma región que el entorno y establecer el almacenamiento como StorageV2
(propósito general v2).
2. Asegúrese de habilitar la característica de espacio de nombres jerárquico.
3. Se recomienda establecer el ajuste de replicación como Almacenamiento con redundancia geográfica de acceso
de lectura (RA-GRS ).

Conectar Azure Data Lake Storage Gen2 con PowerApps


Una vez que haya configurado su cuenta de Azure Data Lake Storage Gen2 en el portal de Azure, estará listo para
conectarlo a un flujo de datos específico o a un entorno de PowerApps. La conexión del lago a un entorno permite
que otros fabricantes y administradores del entorno creen flujos de datos que almacenan sus datos en el lago de la
organización también.
Para conectar su cuenta de Azure Data Lake Storage Gen2 con el flujo de datos, siga estos pasos:
1. Inicie sesión en PowerApps y compruebe en qué entorno está. El selector de entorno se encuentra en la
parte derecha del encabezado.
2. En el panel de navegación de la izquierda, seleccione la flecha abajo junto a Datos.

3. En la lista que aparece, seleccione Flujos de datos y en la barra de comandos seleccione Nuevo flujo de
datos.
4. Seleccione las entidades analíticas que desee. Estas entidades indican qué datos desea almacenar en la
cuenta Azure Data Lake Store Gen 2 de la organización.

Seleccione la cuenta de almacenamiento que se usará para


almacenamiento de flujo de datos
Si una cuenta de almacenamiento aún no se ha asociado al entorno, aparece un cuadro de diálogo Vincular a
lago de datos. Deberá iniciar sesión y encontrar el lago de datos que creó en los pasos anteriores. En este
ejemplo, no se asocia ningún lago de datos al entorno y por tanto aparece un mensaje para agregar uno.
1. Seleccione cuenta de almacenamiento.
La pantalla Seleccionar cuenta de almacenamiento aparece.
2. Seleccione el Identificador de la suscripción de la cuenta de almacenamiento.
3. Seleccione el Nombre de grupo de recursos en el que la cuenta de almacenamiento se creó.
4. Especifique el Nombre de la cuenta de almacenamiento.
5. Seleccione Guardar.
Una vez que estos pasos se completan correctamente, la cuenta de Azure Data Lake Storage Gen2 está conectada
con flujos de datos de Power Platform y puede continuar creando un flujo de datos.

Consideraciones y limitaciones
Hay algunas consideraciones y limitaciones a tener presentes para trabajar con almacenamiento de flujo de datos:
No se admite la vinculación de una cuenta de Azure Data Lake Store Gen 2 para almacenamiento de flujo de
datos en el entorno predeterminado.
Una vez que una ubicación de almacenamiento de flujo de datos está configurada para un flujo de datos, no se
puede cambiar.
De forma predeterminada, cualquier miembro del entorno puede tener acceso a los datos de flujo de datos con
el Conector de flujos de datos de Power Platform. Sin embargo, solo los propietarios de un flujo de datos
podrán tener acceso a sus archivos directamente en Azure Data Lake Storage Gen2. Para autorizar que
usuarios adicionales obtengan acceso a los datos de flujo de datos directamente en el lago, debe autorizarlos en
la Carpeta de CDM del lago de datos o en el propio lago de datos.
Cuando se elimina un flujo de datos, su Carpeta de CDM en el lago también se eliminará.

IMPORTANT
No debería cambiar los archivos creados por flujos de datos en el lago de su organización o agregar archivos a la Carpeta
de CDMde un flujo de datos. El cambio de los archivos podría afectar negativamente a flujos de datos o modificar su
comportamiento y no se admite. Los flujos de datos de Power Platform sólo conceden acceso a los archivos que crea en el
lago. Si autoriza a otros usuarios o servicios al filesystem usado por flujos de datos de Power Platform, solo concederá acceso
de lectura a los archivos o a las carpetas de ese filesystem.

Preguntas más frecuentes


¿Qué sucede si había creado anteriormente flujos de datos en Azure Data Lake Storage Gen2 de mi organización
y deseo cambiar su ubicación de almacenamiento?
No puede cambiar la ubicación de almacenamiento de un flujo de datos después de que se ha creado.
¿Cuándo puedo cambiar la ubicación de almacenamiento de flujo de datos de un entorno?

Cambiar la ubicación de almacenamiento de flujo de datos del entorno no se admite actualmente.

Pasos siguientes
Este artículo proporcionó instrucciones sobre cómo conectar una cuenta de Azure Data Lake Storage Gen2 para
almacenamiento de flujo de datos.
Para obtener más información sobre flujos de datos, el Common Data Model, y Azure Data Lake Storage Gen2,
consulte estos artículos:
Preparación de los datos de autoservicio con flujos de datos
Creación y uso de flujos de datos en PowerApps
Conexión a Azure Data Lake Storage Gen2 para el almacenamiento del flujo de datos
Agregar datos a una entidad en Common Data Service
Para obtener más información sobre Azure Storage, consulte este artículo:
Guía de seguridad de Azure Storage
Para obtener más información sobre el Common Data Model, consulte estos artículos:
Common Data Model - visión general
Carpetas de Common Data Model
Definición del archivo de modelo de CDM
Puede formular preguntas en la Comunidad de PowerApps.
Uso de una puerta de enlace de datos local en flujos
de datos de Power Platform
25/11/2019 • 8 minutes to read • Edit Online

[Este tema es documentación preliminar y está sujeto a modificaciones.]


Instale una puerta de enlace de datos local para transferir los datos de forma rápida y segura entre un flujo de
datos de Power Platform y un origen de datos que no está en la nube, como una base de datos de SQL Server
local o un sitio SharePoint local. Se pueden ver todas las puertas de enlace para las cuales dispone de permisos
administrativos y administrar los permisos y las conexiones de estas puertas de enlace.
Con una puerta de enlace, puede conectarse a los datos locales a través de estas conexiones:
SharePoint
SQL Server
Oracle
Informix
Filesystem
DB2

Requisitos previos
Una cuenta de PowerApps. ¿No tiene una? Suscribirse durante 30 días gratis.
Se requieren permisos administrativos sobre una puerta de enlace. Estos permisos se proporcionan de
forma predeterminada para las puertas de enlace que instale. Los administradores pueden conceder
permisos a otros usuarios para puertas de enlace.
Una licencia que admite datos locales de acceso mediante una puerta de enlace local. Para obtener más
información, consulte la sección “Conectar con los datos y sistemas" de Buscar la página del plan de
PowerApps adecuado”.
Las puertas de enlace y las conexiones locales se pueden crear y usar solo en el entorno predeterminado del
usuario. Más información: Trabajar con entornos y Microsoft PowerApps.

Instalar una puerta de enlace


1. En el panel de navegación de la izquierda de powerapps.com, seleccione Puertas de enlace.
2. Seleccione una puerta de enlace de la lista. Si no tiene permisos administrativos para una puerta de enlace,
seleccione Instale ahora una puerta de enlace y, a continuación siga las indicaciones del asistente.

Para obtener más información sobre cómo instalar una puerta de enlace, consulte Comprender las puertas
de enlace de datos locales.

Usar un origen de datos local en un flujo de datos


1. Seleccione un origen de datos local de la lista de orígenes de datos.

2. Proporcione los detalles de la conexión para la puerta de enlace de empresa que se usará para tener acceso
a los datos locales. Debe seleccionar la propia puerta de enlace, y proporcionar credenciales para la puerta
de enlace seleccionada. Solo aparecen en la lista las puertas de enlace para las que es administrador.
Puede cambiar la puerta de enlace de empresa usada para un flujo de datos determinado y cambiar la puerta de
enlace asignada a todas las consultas con la herramienta de creación de flujos de datos.

NOTE
El flujo de datos intentará encontrar o crear los orígenes de datos requeridos mediante la nueva puerta de enlace. Si no
puede hacerlo, no podrá cambiar la puerta de enlace hasta que todos los flujos de datos necesarios estén disponibles desde
la puerta de enlace seleccionada.

Ver y administrar permisos de puerta de enlace


1. En el panel de navegación de la izquierda de powerapps.com, seleccione Puertas de enlace y seleccione la
puerta de enlace que desee.
2. Para agregar un usuario a una puerta de enlace, seleccione Usuarios, especifique un usuario o un grupo, y
después especifique un nivel de permisos:
Puede usar. Los usuarios con este permiso pueden crear conexiones en la puerta de enlace para
usar para aplicaciones y flujos, pero no pueden compartir la puerta de enlace. Use este permiso para
usuarios que ejecutarán aplicaciones pero no las comparten.
Puede usar + compartir. Los usuarios con este permiso pueden crear una conexión en la puerta de
enlace para usar para aplicaciones y flujos, y compartir automáticamente la puerta de enlace cuando
compartan una aplicación. Use este permiso para los usuarios que necesiten compartir aplicaciones
con otros usuarios o con la organización.
Administración. Los administradores tienen control total de puerta de enlace, incluido agregar
usuarios, establecer permisos, crear conexiones a todos los orígenes de datos disponibles, y eliminar
la puerta de enlace.
Para los niveles de permisos Puede usar y Puede usar + compartir, seleccione los orígenes de datos con
los que el usuario puede conectarse a través de puerta de enlace.

Ver y administrar conexiones de puerta de enlace


1. En la barra de navegación de la izquierda de powerapps.com, seleccione Puertas de enlace y elija la puerta
de enlace que desee.
2. Realice la acción que desee:
Para ver detalles, editar valores, o eliminar una puerta de enlace, seleccione Conexiones y luego
seleccione una conexión.
Para compartir una conexión, seleccione Compartir y agregue o elimine usuarios.

NOTE
Puede compartir solo algunos tipos de conexiones, como una conexión SQL Server. Para obtener más
información, consulte Compartir recursos de aplicación de lienzo en PowerApps.
Para obtener más información acerca de cómo administrar una conexión, consulte Administrar conexiones de
aplicación de lienzo en PowerApps.

Limitaciones
Hay algunas limitaciones conocidas al usar puertas de enlace y flujos de datos de empresa.
Cada flujo de datos puede usar únicamente una puerta de enlace. Por lo tanto, todas las consultas deben
configurarse con la misma puerta de enlace.
Cambiar la puerta de enlace afecta al flujo de datos completo.
Si se necesitan varias puertas de enlace, la práctica recomendada es crear varios flujos de datos (uno para
cada puerta de enlace) y usar las funcionalidades de referencia de cálculo o entidad para unificar los datos.
Los flujos de datos solo se admiten usando puertas de enlace de empresa. Las puertas de enlace personales
no estarán disponibles para selección en las listas desplegables y las pantallas de configuración.
Para obtener información sobre solucionar los problemas con puertas de enlace, o configurar servicio de puerta de
enlace para la red, consulte Comprender las puertas de enlace de datos locales.

Pasos siguientes
Creación y uso de flujos de datos en PowerApps
Agregar datos a una entidad en Common Data Service con Power Query
Conexión a Azure Data Lake Storage Gen2 para el almacenamiento del flujo de datos
Requisitos de licencia para entidades
25/11/2019 • 11 minutes to read • Edit Online

IMPORTANT
Este tema está obsoleto y se actualizará pronto para reflejar los últimos cambios en licencias aplicables a partir del 1 de
octubre de 2019. Para obtener la información más reciente sobre los requisitos de licencia para entidades, consulte Manual
de licencias de PowerApps.

Los creadores de aplicaciones pueden usar la mayoría de entidades disponibles en Common Data Service
(incluidas las entidades personalizadas y las entidades que forman parte del modelo común de datos) para crear
aplicaciones y flujos para los usuarios que tienen una licencia de Plan 1 de PowerApps o de Plan 1 de Microsoft
Flow. En algunos casos, las entidades contienen lógica de negocios compleja o están ligadas a aplicaciones de
Dynamics 365 para las que es necesario que los usuarios tengan una licencia específica.

ENTIDAD DESCRIPCIÓN REQUISITO

Entidades con lógica de negocios Estas son entidades que usan una Plan de 2 PowerApps o Plan 2 de Flow
compleja lógica de negocios compleja de servidor.
Por ejemplo, cualquier entidad que use
un flujo de trabajo en tiempo real o un
complemento de código.

Entidades restringidas Son entidades que no son estándar con Un plan de Dynamics 365
Common Data Service pero se incluyen
en la aplicación basadas en modelo
disponible en Dynamics 365 (como
Dynamics 365 Sales o Dynamics 365
Customer Service) o una solución de
terceros. Por ejemplo, las entidades de
artículo de conocimientos, de objetivo y
de derecho.

NOTE
Las aplicaciones y los flujos que usan estas entidades requieren que la aplicación y el usuario del flujo tengan una licencia
adecuada (no el creador o desarrollador de la aplicación o flujo).

Entidades con lógica de negocios compleja


Las entidades que incluyen la siguiente lógica compleja de servidor requieren que los usuarios de una aplicación o
flujo en el que se usen estas entidades tengan una licencia de Plan 2 de PowerApps o de Plan 2 de Microsoft Flow:
Complementos de código (para obtener más información, consulte Desarrollo de complementos)
Flujos de trabajo en tiempo real (para obtener más información, consulte Procesos de flujo de trabajo)
NOTE
Solo los flujos de trabajo que se convierten a un flujo de trabajo en tiempo real se consideran en tiempo real y
sincrónicos. Los flujos de trabajo que se ejecutan en segundo plano pueden usarse con el plan adecuado de
PowerApps y no requieren licencias adicionales.

Para saber si ha agregado lógica de negocios compleja a las entidades, revise la lista de ensamblados de
complementos y de flujos de trabajo configurados en el entorno. Para la lista de entidades que pueden contener
lógica del lado del servidor después de instalar una aplicación basada en modelo en Dynamics 365 (como
Dynamics 365 Sales o Dynamics 365 Customer Service), consulte Entidades complejas que requieren licencias de
PowerApps Plan 2
Elementos que afectan a los requisitos de licencia al agregar lógica de negocios compleja
Los creadores de aplicaciones pueden agregar complementos de código y flujos de trabajo en tiempo real a las
entidades de Common Data Service, pero el hacerlo podría cambiar los requisitos de licencia para los usuarios de
aplicaciones ya implementadas. Los creadores de aplicaciones deben ser prudentes al agregar lógica de negocios
compleja a una entidad y primero deben comprobar qué aplicaciones usan la entidad y si los usuarios de esas
aplicaciones tienen las licencias adecuadas.

Entidades restringidas
Algunas entidades que están ligadas a la funcionalidad de las aplicaciones de Dynamics 365 requieren que los
usuarios de la aplicación tengan la licencia correspondiente para esa aplicación si desean crear, actualizar, o
eliminar registros dentro de las entidades. Para obtener una lista completa de las entidades restringidas, consulte
Entidades restringidas que requieren licencias de Dynamics 365.

Ejemplos de licencias
Barb e Isaac van a crear aplicaciones en PowerApps mediante Common Data Service para almacenar los datos.
Barb va a crear dos aplicaciones de lienzo:
La aplicación 1 – usa la entidad Cita junto con una entidad personalizada que almacena información
relacionada
La aplicación 2 – usa la entidad Cita junto con la entidad Incidente, que es una entidad restringida
Isaac va a crear dos aplicaciones controladas por modelos:
La aplicación 3 – usa la entidad Cita junto con una entidad personalizada que almacena información
relacionada
La aplicación 4 – usa la entidad Cita junto con la entidad Incidente, que es una entidad restringida
Barb e Isaac necesitan las licencias siguientes:
Barb necesita una licencia de Plan 1 de PowerApps para crear aplicaciones de lienzo usando Common Data
Service. Si tuviera que crear una base de datos o una entidad personalizada, necesitaría una licencia de Plan
2 de PowerApps.
Isaac necesita una licencia de Plan 2 de PowerApps para crear aplicaciones controladas por modelos.
Los usuarios de la aplicación necesitan las licencias siguientes:
Los usuarios de la aplicación 1 sólo necesitan una licencia de Plan 1 o de Plan 2 de PowerApps, ya que la
aplicación no tiene ninguna entidad con lógica de negocios compleja o entidades restringidas.
Los usuarios de la aplicación 2 necesitan una licencia de Dynamics 365 Customer Service, Enterprise
Edition (o un plan de Dynamics 365 o Dynamics 365 Customer Engagement) porque la aplicación incluye
una entidad restringida.
Los usuarios de la aplicación 3 necesitan una licencia de Plan 2 de PowerApps, ya que es una aplicación
controlada por modelos.
Los usuarios de la aplicación 4 necesitan una licencia de Dynamics 365 for Customer Service, Enterprise
Edition (o un plan de Dynamics 365 Customer Engagement) porque la aplicación incluye una entidad
restringida.
El plan de Dynamics 365 for Customer Service incluye una licencia de PowerApps Plan 2, que permite a los
usuarios ejecutar aplicaciones basadas en modelo.
Ahora, veamos lo que sucede cuando Isaac agrega un flujo de trabajo en tiempo real a la entidad personalizada
que Barb e Isaac usan en sus aplicaciones.
Barb e Isaac necesitan las licencias siguientes:
Barb sigue necesitando una licencia de Plan 1 de PowerApps para crear aplicaciones de lienzo usando
Common Data Service.
Isaac sigue necesitando una licencia de Plan 2 de PowerApps para crear aplicaciones controladas por
modelos.
Los usuarios de la aplicación necesitan las licencias siguientes:
Los usuarios de la aplicación 1 ahora necesitan una licencia de Plan 2 de PowerApps, ya que la aplicación
contiene una entidad con un flujo de trabajo en tiempo real.
Los usuarios de la aplicación 2 siguen necesitando una licencia de Dynamics 365 for Customer Service,
Enterprise Edition (o un plan de Dynamics 365 Customer Engagement) porque la aplicación incluye una
entidad restringida.
Los usuarios de la aplicación 3 siguen necesitando una licencia de Plan 2 de PowerApps, ya que es una
aplicación basada en modelos.
Los usuarios de la aplicación 4 siguen necesitando una licencia de Dynamics 365 for Customer Service,
Enterprise Edition (o un plan de Dynamics 365 Customer Engagement) porque la aplicación incluye una
entidad restringida.
El plan de Dynamics 365 for Customer Service incluye una licencia de PowerApps Plan 2, que permite a los
usuarios ejecutar aplicaciones basadas en modelo.
La única aplicación a la que afecta este cambio es la aplicación 1, que antes requería una licencia de Plan 1 de
PowerApps, pero ahora requiere una licencia de Plan 2 de PowerApps, porque contiene una entidad con lógica de
negocios compleja.

Más información sobre las licencias


Para obtener más información acerca de las licencias de PowerApps y Dynamics 365, consulte Información general
de las licencias.
Entidades y licencias complejas
25/11/2019 • 7 minutes to read • Edit Online

IMPORTANT
Este tema está obsoleto y se actualizará pronto para reflejar los últimos cambios en licencias aplicables a partir del 1 de
octubre de 2019. Para obtener la información más reciente sobre los requisitos de licencia para entidades, consulte Manual
de licencias de PowerApps.

Las entidades que incluyen la siguiente lógica compleja de servidor requieren que los usuarios de una aplicación o
flujo en el que se usen estas entidades tengan una licencia de Plan 2 de PowerApps o de Plan 2 de Microsoft Flow:
Complementos de código. Más información: Desarrollo de complementos
Flujos de trabajo en tiempo real. Más información: Procesos de flujo de trabajo

IMPORTANT
Solo los flujos de trabajo que se convierten a un flujo de trabajo en tiempo real se consideran en tiempo real y
sincrónicos. Los flujos de trabajo que se ejecutan en segundo plano pueden usarse con el plan adecuado de
PowerApps y no requieren licencias adicionales.

Para saber si ha agregado lógica de negocios compleja a las entidades, revise la lista de ensamblados de
complementos y de flujos de trabajo configurados en el entorno.

Entidades complejas instaladas con aplicaciones de Dynamics 365


En la tabla siguiente se muestran las entidades que contienen lógica del lado del sevidor personalizada predefinida
como parte de la instalación de aplicaciones basadas en modelo en Dynamics 365, como Dynamics 365 Sales y
Dynamics 365 Customer Service. Esta lista está diseñada como referencia. Según las aplicaciones y versiones de
Dynamics 365 en las que estén instaladas en su entorno, la lista de entidades complejas puede variar.

NOTE
Si está usando Common Data Service y no ha instalado una aplicación o una solución de terceros de Dynamics 365, el
entorno no tendrá entidades que contengan lógica compleja de servidor.

Cuenta
Acuerdo
Fecha de reserva del acuerdo
Incidente de reserva del acuerdo
Producto de reserva del acuerdo
Servicio de reserva del acuerdo
Tarea de servicio de reserva del acuerdo
Configuración de reserva del acuerdo
Fecha de factura del acuerdo
Producto de la factura del acuerdo
Configuración de factura del acuerdo
Subestado del acuerdo
Recurso que se puede reservar
Reserva de recursos que se pueden reservar
Encabezado de reserva de recursos que se pueden reservar
Categoría de recurso que se puede reservar
Asociación de categoría de recurso que se puede reservar
Característica del recurso que se puede reservar
Grupo de recursos que se pueden reservar
Alerta de reserva
Estado de alerta de reserva
Estado de reserva
Característica
Requisito de competencia (Obsoleto)
Competidor
Contacto
Activo del cliente
Delegación
Gasto
Cálculo de campo
Elemento de lista de precios de Field Service
Filtro
Seguir
Tipo de incidente
Producto de tipo de incidente
Servicio de tipo de incidente
Tarea de servicio de tipo de incidente
Trabajo de integración
Detalle del trabajo de integración
Ajuste de inventario
Producto de ajuste de inventario
Transferencia de inventario
Factura
Frecuencia de factura
Línea de factura
Detalle de línea de factura
Diario
Línea del diario
Cliente potencial
Nota
Origen de datos de OData v4
Oportunidad
Línea de oportunidad
Detalle de línea de oportunidad
Pedido
Producto de facturación de pedidos
Configuración de facturación de pedidos
Línea de pedido
Pago
Detalle de pago
Configuración de publicación
Configuración de regla de publicación
Código postal
Lista de precios
Elemento de lista de precios
Producto
Proyecto
Aprobación de proyecto
Detalle de línea de contrato de proyecto
Hito de línea de contrato de proyecto
Categoría de recursos de línea de contrato de proyecto
Categoría de transacciones de línea de contrato de proyecto
Parámetro de proyecto
Fases del proyecto
Usuario de estado de tareas de proyecto
Inscripción como miembro del equipo del proyecto
Pedido de compra
Factura de pedido de compra
Producto de pedido de compra
Recibo de pedido de compra
Producto de recibo de pedido de compra
Subestado del pedido de compra
Elemento de cola
Oferta
Incidente de reserva de la oferta
Producto de reserva de la oferta
Servicio de reserva de la oferta
Tarea de servicio de reserva de la oferta
Configuración de reservas de oferta
Producto de facturación de la oferta
Configuración de facturación de la oferta
Línea de oferta
Detalle de línea de oferta
Hito de línea de oferta
Categoría de recursos de línea de oferta
Categoría de transacciones de línea de oferta
Lista de precios de proyecto de oferta
Modelo de clasificación
Valor de la clasificación
Característica de requisito
Categoría de recursos de requisito
Preferencia de recursos de requisito
Estado de requisito
Solicitud de recursos
Requisito de recursos
Detalle de requisitos de recursos
RMA
Producto de RMA
Recibo de RMA
Producto de recibo de RMA
Subestado de RMA
Requisito de competencia de rol
Precio de rol
RTV
Producto de RTV
Subestado de RTV
Código impositivo
Detalle de código impositivo
Entrada de tiempo
Grupo de horarios
Detalle de grupo de horarios
Solicitud de indisponibilidad
Precio de categoría de transacciones
Usuario
Vista
Vista de muro
Almacén
Orden de trabajo
Incidente de orden de trabajo
Producto de orden de trabajo
Servicio de orden de trabajo
Tarea de servicio de orden de trabajo
Subestado de la orden de trabajo
Plantilla de trabajo

Licencias
Para obtener más información acerca de las licencias de PowerApps y Dynamics 365, consulte la página
Información general de las licencias.
Entidades con restricciones que requieren licencias de
Dynamics 365
25/11/2019 • 12 minutes to read • Edit Online

IMPORTANT
Este tema está obsoleto y se actualizará pronto para reflejar los últimos cambios en licencias aplicables a partir del 1 de
octubre de 2019. Para obtener la información más reciente sobre los requisitos de licencia para entidades, consulte Manual
de licencias de PowerApps.

Los creadores de aplicaciones pueden usar la mayoría de entidades disponibles en Common Data Service para
crear aplicaciones y flujos para los usuarios que solo tengan una licencia de Plan 1 de PowerApps. Sin embargo,
algunas entidades contienen lógica de negocios compleja que requiere a los usuarios de la aplicación tener una
licencia de Plan 2 de PowerApps o de Plan 2 de Microsoft Flow (para obtener más información, consulte
Requisitos de licencia de entidad). Un conjunto incluso inferior a entidades vinculadas a productos de Dynamics
365 requiere a los usuarios de aplicaciones de lienzo y controladas por modelos que tengan una licencia del
producto de Dynamics 365 correspondiente si tienen que crear, actualizar o eliminar registros dentro de las
entidades. Estas se conocen como entidades restringidas.
Las entidades pueden estar restringidas a una licencia de Dynamics 365 por las siguientes razones:
La entidad se usa para almacenar y mantener los datos de configuración específicos de productos que no se
suelen usar fuera de la aplicación.
La entidad viene acompañada por una lógica avanzada que crea y mantiene los datos de una forma específica
cuando se usan dentro de un producto de Dynamics 365.
Si una aplicación o un flujo lee únicamente información de una entidad, no se necesita una licencia de Dynamics
365, tan solo la licencia apropiada de PowerApps o Microsoft Flow.

Entidades restringidas para operaciones de creación, actualización y


eliminación
En la tabla siguiente se muestran las entidades restringidas y los requisitos de licencia de Dynamics 365 asociados
para los usuarios de aplicaciones de PowerApps y Microsoft Flow que crean, actualizan o eliminan los datos
almacenados dentro de las entidades.

ENTIDAD NOMBRE LÓGICO LICENCIA NECESARIA

Real msdyn_actual Dynamics 365 for Field Service


o Dynamics 365 for Project Service
Automation
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Proceso de negocio de acuerdo msdyn_bpf_baa0a411a239410cb8bded Dynamics 365 for Field Service


8b5fdd88e3 o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365
ENTIDAD NOMBRE LÓGICO LICENCIA NECESARIA

Diario de reserva msdyn_bookingjournal Dynamics 365 for Field Service


o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Metadatos de la configuración de msdyn_bookingsetupmetadata Dynamics 365 for Field Service


reserva o Dynamics 365 for Project Service
Automation
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Marca de tiempo de reserva msdyn_bookingtimestamp Dynamics 365 for Field Service


o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Caso incident Dynamics 365 for Customer Service,


Enterprise edition
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Proceso de negocio de caso a orden de msdyn_bpf_989e9b1857e24af18787d5 Dynamics 365 for Field Service
trabajo 143b67523b o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Configuración msdyn_configuration Dynamics 365 for Field Service


o Dynamics 365 for Project Service
Automation
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Derecho derecho Dynamics 365 for Customer Service,


Enterprise edition
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Línea de estimación msdyn_estimateline Dynamics 365 for Project Service


Automation
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Estimación msdyn_estimate Dynamics 365 for Project Service


Automation
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365
ENTIDAD NOMBRE LÓGICO LICENCIA NECESARIA

Hecho msdyn_fact Dynamics 365 for Project Service


Automation
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Configuración de Field Service msdyn_fieldservicesetting Dynamics 365 for Field Service


o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Trabajo del sistema de Field Service msdyn_fieldservicesystemjob Dynamics 365 for Field Service
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Objetivo goal Dynamics 365 for Sales Professional,


o Dynamics 365 for Sales, Enterprise
edition,
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Diario de inventario msdyn_inventoryjournal Dynamics 365 for Field Service


o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Proceso de factura msdyn_bpf_d8f9dc7f099f44db9d641dd Dynamics 365 for Project Service


81fbd470d Automation
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Recorrido recorrido Dynamics 365 for Marketing


o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Artículo de conocimientos Artículo de conocimientos Dynamics 365 for Customer Service,


Enterprise edition
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Unidad organizativa msdyn_organizationalunit Dynamics 365 for Field Service


o Dynamics 365 for Project Service
Automation
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Inventario de productos msdyn_productinventory Dynamics 365 for Field Service


o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365
ENTIDAD NOMBRE LÓGICO LICENCIA NECESARIA

Parámetro de proyecto msdyn_projectparameter Dynamics 365 for Project Service


Automation
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Fases del proyecto msdyn_bpf_665e73aa18c247d886bfc5 Dynamics 365 for Project Service


0499c73b82 Automation
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Dependencia de tareas de proyecto msdyn_projecttaskdependency Dynamics 365 for Project Service


Automation
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Tarea de proyecto msdyn_projecttask Dynamics 365 for Project Service


Automation
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Miembro del equipo del proyecto msdyn_projecteam Dynamics 365 for Project Service
Automation
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Proceso de negocio de pedido de msdyn_bpf_2c5fe86acc8b414b8322ae5 Dynamics 365 for Field Service


compra 71000c799 o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Detalle de asignación de recursos msdyn_resourceassignmentdetail Dynamics 365 for Project Service


(obsoleto) Automation
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Asignación de recursos msdyn_resourceassignment Dynamics 365 for Project Service


Automation
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Restricción de recursos (obsoleto) msdyn_workorderresourcerestriction Dynamics 365 for Field Service


o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Conjunto de reglas de enrutamiento routingrule Dynamics 365 for Customer Service,


Enterprise edition
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365
ENTIDAD NOMBRE LÓGICO LICENCIA NECESARIA

Configuración del tablero de msdyn_scheduleboardsetting Dynamics 365 for Field Service


programación o Dynamics 365 for Project Service
Automation
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Parámetro de programación msdyn_schedulingparameter Dynamics 365 for Field Service


o Dynamics 365 for Project Service
Automation
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

SLA sla Dynamics 365 for Customer Service,


Enterprise edition
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Configuración del programador de msdyn_systemuserschedulersetting Dynamics 365 for Field Service


usuarios del sistema o Dynamics 365 for Project Service
Automation
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Conexión de transacciones msdyn_transactionconnection Dynamics 365 for Project Service


Automation
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Origen de la transacción msdyn_transactionorigin Dynamics 365 for Project Service


Automation
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Tipo de transacción msdyn_transactiontype Dynamics 365 for Project Service


Automation
o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Número único msdyn_uniquenumber Dynamics 365 for Field Service


o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Proceso de negocio de orden de trabajo msdyn_bpf_d3d97bac8c294105840e99 Dynamics 365 for Field Service
e37a9d1c39 o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365
ENTIDAD NOMBRE LÓGICO LICENCIA NECESARIA

Cola de generación de detalles de msdyn_workorderdetailsgenerationque Dynamics 365 for Field Service


orden de trabajo (obsoleta) ue o plan de Dynamics 365 Customer
Engagement
o plan de Dynamics 365

Licencias
Para obtener más información acerca de las licencias de PowerApps y Dynamics 365, consulte la página
Información general de las licencias.
Integración de SharePoint, OneNote y OneDrive con
Common Data Service
25/11/2019 • 2 minutes to read • Edit Online

Common Data Service ofrece soporte para integración de SharePoint, OneDrive y OneNote. La integración con
estos servicios requiere que primero permita la integración de SharePoint.

SERVICIO OFFICE 365 DESCRIPCIÓN MÁS INFORMACIÓN

SharePoint Permita que los usuarios de la aplicación Administrar los documentos con
administren tipos de documento SharePoint
comunes, como Word, Excel,
PowerPoint, OneNote y creen carpetas Configurar la integración de SharePoint
para guardar y administrar esos
documentos que se almacenan sin
problemas en SharePoint desde
aplicaciones de Common Data Service.

OneDrive para la Empresa Los usuarios de la aplicación pueden Habilitar OneDrive para la Empresa
crear y administrar documentos
privados a los que se puede acceder
desde aplicaciones de Common Data
Service.

OneNote Los usuarios de la aplicación pueden Configurar la integración de OneNote


usar OneNote para tomar o revisar
notas desde registros de Common Data
Service.
Crear informes Power BI
25/11/2019 • 7 minutes to read • Edit Online

Common Data Service le permite conectarse directamente a sus datos mediante Power BI Desktop para crear
informes y para publicarlos en Power BI. Desde Power BI, los informes se pueden usar en paneles, se pueden
compartir con otros usuarios y se puede acceder a ellos desde varias plataformas en las aplicaciones móviles de
Power BI.

Requisitos previos
Pra usar Power BI con Common Data Service se requiere lo siguiente:
Descargar e instalar Power BI Desktop, que es una aplicación gratuita que se ejecuta en su equipo local. Puede
descargar Power BI desktop aquí.
Un entorno de Common Data Service con permisos de creador para acceder al portal y permisos de lectura
para acceder a los datos de las entidades.

Buscar la dirección URL del entorno de Common Data Service


1. Abra PowerApps, seleccione el entorno al que se va a conectar, haga clic en engranaje de configuración
en la esquina superior derecha y haga clic en Personalizaciones avanzadas
2. Haga clic en Recursos en la sección de recursos para desarrolladores, que se abrirá una nueva pestaña.

3. Copie la raíz de la dirección URL en la nueva pestaña, ésta es la dirección URL única para el entorno. La
dirección URL tendrá el formato https://yourenvironmentid.crm.dynamics.com/, asegúrese de no
copiar el resto de la dirección URL. Téngala a mano para que pueda usarla cuando cree su informe de
PowerBI.

Conectando con Common Data Service desde Power BI Desktop


1. Inicie Power BI Desktop. Si es la primera vez, se le presentará una pantalla de bienvenida o se le redirigirá
directamente a un lienzo en blanco. En cualquier caso, haga clic en Obtener datos y seleccione Más para
abrir la lista completa de orígenes de datos disponibles para Power BI Desktop.

2. Haga clic en Servicios en línea y en Common Data Service (Beta) de la lista de conectores. Haga clic en
Conectar.

3. Pegue la Dirección URL de entorno de Common Data Service en el campo Dirección URL del
servidor y haga clic en Aceptar. Si ésta es la primera vez, se le pedirá que inicie sesión usando las mismas
credenciales que usa para conectarse a PowerApps y a Common Data Service.
4. El explorador mostrará todas las entidades disponible para su entorno agrupadas en tres carpetas. Amplíe la
carpeta Modelo común de datos.
Modelo común de datos: son las entidades estándar que se suelen usar y que están disponibles en todos
los entornos como parte del modelo común de datos.
Entidades personalizadas: son las entidades que ha creado o importado en el entorno.
Sistema: contiene todas las entidades de su entorno, incluido el modelo común de datos y las entidades
personalizadas.

5. Seleccione la entidad Cuenta para obtener una vista previa de los datos en el panel derecho y haga clic en
Cargar.

6. La entidad ahora se carga en el informe y puede empezar a crear informes o puede repetir este proceso para
agregar entidades adicionales.

7. Haga clic en el campo Nombre en panel Campo para agregar una nueva visualización al lienzo de informes.
Ahora puede repetir este proceso y cambiar las visualizaciones para crear el informe.
Uso de conjuntos de opciones
Los conjuntos de opciones se usan en entidades para ofrecer una lista desplegable de valores a un usuario en
aplicaciones y flujos. Cuando se usa el conector de Power BI, los campos del conjunto de opciones se presentarán
como dos columnas para mostrar tanto el valor único como el valor de visualización.
Como ejemplo, si tuviera un conjunto de opciones en la entidad llamado ApprovalStatus, vería dos campos en
Power BI:
ApprovalStatus: mostrará un valor entero único para cada elemento del conjunto de opciones, esto resulta
útil al aplicar filtros, de modo que no se verá afectado si realiza cambios futuros en el nombre para mostrar.
ApprovalStatus_display: mostrará el nombre para mostrar fácil de usar del elemento y se usa con mayor
frecuencia al mostrar la opción en una tabla o un gráfico.

APPROVALSTATUS APPROVALSTATUS_DISPLAY

1 Enviado

2 En revisión

3 Aprobado

4 Rechazado

Navegar por las relaciones


Para las relaciones de Common Data Service es necesario que cree una relación en PowerBI Desktop entre las dos
entidades usando un campo GUID, que es un identificador único generado por el sistema que garantiza que las
relaciones se crean para los registros creados en los que puede haber ambigüedad o duplicación con otros campos.
Puede leer más acerca de la administración de relaciones en Power BI desktop aquí.
Mientras algunas relaciones pueden crearse automáticamente, puede revisar y asegurarse de que se han
establecido las relaciones correctas al crear el informe:
El campo de búsqueda en la entidad incluirá el GUID del registro en la entidad relacionada.
La entidad relacionada tendrá un campo con el formato “[EntityName]id”, que contiene el GUID, como
Accountid o MyCustomEntityid
Con la función de administración de relaciones de PowerBI Desktop, crearía una nueva relación entre el campo
de búsqueda y el campo de id. en la entidad relacionada.

Pasos siguientes
Administrar campos de una entidad
Definir relaciones entre entidades
Traducir texto de entidades y campos personalizados
a otros idiomas
25/11/2019 • 2 minutes to read • Edit Online

Después de crear texto de entidades y campos personalizado, quizás desee traducirlo a otros idiomas.
1. Abra el explorador de soluciones.
2. En el explorador de soluciones, en la barra de herramientas Acciones, seleccione Exportar traducciones.
3. Después de completar la exportación, abra o guarde el archivo comprimido (.zip) que contenga las etiquetas
exportadas en su equipo o red local.
4. Extraiga el archivo XML del archivo comprimido (.zip) y tradúzcalo.

Herramientas de la Comunidad
Easy Translator es una herramienta desarrollada para PowerApps por la comunidad de XrmToolbox. Use Easy
Translator para exportar e importar traducciones con información contextual.

NOTE
Las herramientas de la comunidad no se admiten en Microsoft. Si tiene alguna duda relacionada con la herramienta, póngase
en contacto con el editor. Más información: XrmToolBox.

Pasos siguientes
Importar texto de entidad y campo traducido
Importar entidades y texto de campo traducidos a
una aplicación
25/11/2019 • 3 minutes to read • Edit Online

Si ha personalizado texto de entidad o campo, como etiquetas de campos o valores de lista desplegable, puede
ofrecer a los usuarios de su organización que no trabajan con la versión del idioma base del entorno texto
personalizado en sus propios idiomas. Para ello, exporte las cadenas de texto de todas las personalizaciones para
traducirlas a los idiomas que se usan en su organización.
Después de la traducción, debe importar las cadenas de texto traducidas en el entorno para que los usuarios
puedan aprovechar los cambios.

IMPORTANT
El archivo que importe debe ser un archivo comprimido que contiene los archivos CrmTranslations.xml y
[Content_Types].xml en la raíz.
No puede importar texto traducido que tenga más de 500 caracteres. Si alguno de los elementos del archivo de
traducción tiene más de 500 caracteres, se producirá un error en el proceso de importación. Si esto sucede, revise la línea
que provocó el error, reduzca el número de caracteres e intente de nuevo la importación. Tenga en cuenta también que
después de importar texto traducido, debe volver a publicar las personalizaciones.

1. Abra el explorador de soluciones.


2. En el explorador de soluciones, en la barra de herramientas Acciones, seleccione Importar traducciones.
3. En el cuadro de diálogo Importar texto traducido, especifique el archivo que contiene el texto traducido y,
a continuación, seleccione Importar.
4. Cuando finalice la importación, seleccione Cerrar.

NOTE
La publicación de personalizaciones pueden interferir en el funcionamiento normal del sistema. Le recomendamos que
programe la publicación cuando perjudique lo menos posible a los usuarios.

Herramientas de la Comunidad
Easy Translator es una herramienta desarrollada para PowerApps por la comunidad de XrmToolbox. Use Easy
Translator para exportar e importar traducciones con información contextual.

NOTE
Las herramientas de la comunidad no se admiten en Microsoft. Si tiene alguna duda relacionada con la herramienta, póngase
en contacto con el editor. Más información: XrmToolBox.

Pasos siguientes
Exportar texto personalizado de entidades y campos para su traducción
Manual para desarrolladores de Common Data
Service
25/11/2019 • 4 minutes to read • Edit Online

PowerApps proporciona a usuarios, empresas, fabricantes independientes de software (ISV ) e integradores de


sistemas (SI) una plataforma eficaz para crear aplicaciones de línea de negocio. Common Data Service es la
plataforma subyacente de datos para PowerApps que contiene la funcionalidad básica como lógica del lado del
servidor (complementos y flujos de trabajo), flujos de proceso de negocio, un modelo de seguridad bien avanzado,
y una plataforma extensible para que los desarrolladores generen aplicaciones.
Hay muchos aspectos referentes a cómo los desarrolladores pueden contribuir a crear aplicaciones que usan
Common Data Service. Aunque sea posible crear una aplicación con un código mediante Common Data Service
como el origen de datos, la mayoría de los proyectos utilizarán aplicaciones basadas en modelos o aplicaciones de
lienzo para generar la experiencia que usan las personas.

Trabajar con aplicaciones basadas en modelos


Las aplicaciones basadas en modelo se crean con Common Data Service y solo pueden conectarse a un entorno
de Common Data Service. Todos los datos que definen una aplicación basada en modelos se almacenan en
Common Data Service.
Las aplicaciones basadas en modelos comparten el método de distribución de personalizaciones y extensiones que
usa Common Data Service utilizando Soluciones.
Las aplicaciones basadas en modelos también tienen varios puntos para que los desarrolladores escriban código
para ampliar. Para obtener información sobre lo que pueden hacer los desarrolladores con las aplicaciones
basadas en modelos, consulte Guía para desarrolladores sobre aplicaciones basadas en modelos.
Algunos ejemplos de aplicaciones basadas en modelo disponibles en Microsoft son Dynamics 365 Customer
Service, Dynamics 365 Field Servicey Dynamics 365 Marketing.

Comprender cuándo hay que escribir código


Dado que Common Data Service incluye muchas funcionalidades para que los usuarios configuren la lógica
empresarial personalizada sin escribir código, los escenarios más comunes para que los desarrolladores
contribuyan tienen que ver con rellenar espacios donde puede que las características existentes no proporcionen la
funcionalidad que necesita para cumplir requisitos. Afortunadamente, Common Data Service proporciona muchos
puntos para que los desarrolladores amplíen la funcionalidad común con código.
Para un desarrollador que ayude en proyectos es importante entender lo que se puede hacer sin necesidad de
escribir código. Debe familiarizarse con estas funcionalidades. Más información: Qué es Common Data Service

Contenido para implementaciones locales


Common Data Service no está disponible para implementaciones locales en este momento. El contenido de este
manual no incluye información sobre las opciones que solo están disponibles para implementaciones local o
implementaciones con conexión a Internet (IFD ). Para información relacionada con estas opciones, consulte la está
configurado de Dynamics 365 Customer Engagement (on-premises)).
Introducción
Vea también
PowerApps para desarrolladores
Manual para desarrolladores de aplicaciones basadas en modelos
Uso del generador de IA en PowerApps
15/11/2019 • 2 minutes to read • Edit Online

El generador de AI es una nueva funcionalidad de la plataforma de energía para los equipos que tienen experiencia
empresarial para automatizar los procesos fácilmente y predecir los resultados para mejorar el rendimiento
empresarial. El generador de AI es una solución llave en mano que aporta la eficacia de Microsoft AI a través de
una experiencia de apuntar y hacer clic y se integra directamente en PowerApps y en el proceso de automatización.
Más información: ¿Qué es el generador de AI?
Puede crear modelos de AI mediante la opción nuevo generador de AI en el panel de navegación izquierdo de
make.powerapps.com. Más información: tipos de modelos de AI

Puede usar modelos de inteligencia artificial creados mediante el generador de AI en lienzo y aplicaciones
controladas por modelos para agregar inteligencia a sus aplicaciones. Más información: uso del generador de AI en
PowerApps
Lista de seminarios web de PowerApps
19/11/2019 • 8 minutes to read

Estos seminarios web pueden ayudarle a aprovechar las características y funciones de Microsoft PowerApps. Los
seminarios web están disponibles a petición tras su difusión en directo. Tenga en cuenta que, en algunos casos,
deberá volver a escribir los detalles de registro y, después, recibirá un vínculo a la grabación por correo electrónico.

Serie de seminarios web para principiantes


Top 5 Tips for Designing Apps that Mean Business (Cinco principales sugerencias para diseñar aplicaciones
serias)
por Audrie Gordon Véalo ahora
Get started with gallery controls (Introducción a los controles de galería)
por Audrie Gordon Regístrese y véalo ahora
Get started with formulas in PowerApps (Introducción al uso de fórmulas en PowerApps)
por Audrie Gordon Regístrese y véalo ahora
Get started with formulas in PowerApps (Introducción al uso de formularios en PowerApps)
por Audrie Gordon Véalo ahora
Getting started with PowerApps controls (Introducción a los controles de PowerApps)
por Audrie Gordon Véalo ahora
PowerApps Community Opportunities & Rewards (Premios y oportunidades en la comunidad de PowerApps)
by Audrie Gordon & Mackenzie Lyng Véalo ahora
Overview of PowerApps Feature Releases for 2017 (Introducción a las versiones futuras de PowerApps para
2017)
por Darshan Desai Véalo ahora
Exploring Office Graph Templates (Exploración de plantillas de Office Graph)
por Emma Cooper Véalo ahora
New Office Graph Templates (Part 2) [Nuevas plantillas de Office Graph (parte 2)]
por Emma Cooper Véalo ahora

Serie de seminarios web de nivel intermedio


Application Lifecycle with the new Save and publish options in PowerApps (Ciclo de vida de la aplicación
con las nuevas opciones para guardar y publicar en PowerApps)
por Karthik Bharathy Ver ahora
PowerApps Focus on Using the Lookup Function (PowerApps, uso de la función de búsqueda)
por Audrie Gordon Véalo ahora
Using PowerApps and Flow to create Line of Business "portals" (Uso de PowerApps y Flow para crear
"portales" de línea de negocios)
por Vishwas Lele Véalo ahora
Laura Rogers from IWMentor Shares Best Practices for Production Apps (Laura Rogers de IWMentor
comparte los procedimientos recomendados para aplicaciones de producción)
por Laura Rodgers Ver ahora
Connector Series | Aplicaciones de Microsoft StaffHub (planificación de turnos) con PowerApps
por Marc André Lépine Ver ahora
Administración de PowerApps | Preguntas más frecuentes
por Manas Maheshwari Ver ahora
Inside the Universal Audit App: See what PowerApps and Flow are capable of by Paul Culmsee (Dentro
de la aplicación Universal Audit: vea lo que PowerApps y Flow son capaces de hacer, por Paul Culmsee)
por Paul Culmsee Ver ahora

Serie de seminarios web de nivel avanzado


PowerApps formulas (Fórmulas de PowerApps)
por Greg Lindhorst Verlo ahora
Building Server Patching Solutions with PowerApps by Brian Blanchard (Compilación de soluciones para
aplicar revisiones en servidores con PowerApps, por Brian Blanchard)
por Brian Blanchard & Audrie Gordon Ver ahora
Building Server Patching Solutions with PowerApps by Brian Blanchard (Part 2) [Compilación de
soluciones para aplicar revisiones en servidores con PowerApps, por Brian Blanchard (parte 2)]
por Brian Blanchard & Audrie Gordon Ver ahora
Click-Through PowerApps Analytics by Vivek Bavishi (Análisis de clics mediante PowerApps por Vivek
Bavishi)
por Vivek Bavishi y Audrie Gordon Ver ahora
Using PowerApps for Business Process Management (BPM ) by Dawid van Heerden (Uso de PowerApps
para la administración de procesos de negocio [BPM ] por Dawid van Heerden)
por Dawid van Heerden Ver ahora
Connector Series
Optimización de conectores en PowerApps y Power Automatic
por Theresa Palmer-Boroski Véalo ahora
Teams + PowerApps Tips and Tricks (Sugerencias y trucos de Teams y PowerApps)
por Audrie Gordon Véalo ahora
Tips for Connecting to Excel on OneDrive for Business from PowerApps (Sugerencias para conectarse a
Excel en OneDrive para la Empresa desde PowerApps)
por Audrie Gordon Véalo ahora
Connecting to on-premises data from PowerApps (Conexión a datos locales desde PowerApps)
por Archana Nair y Dimah Zaidalkilani Ver ahora
Working with Connectors: Using the Planner Connector (Trabajar con conectores: uso del conector de
Planner)
por Audrie Gordon Véalo ahora
The Power of Office Graph with PowerApps (La potencia del uso de Office Graph con PowerApps)
por Audrie Gordon Véalo ahora
Working with Connectors: Project Online (PWA ) [Trabajar con conectores: Project Online (PWA)]
por Audrie Gordon Véalo ahora

Serie de SharePoint
Rapidly build applications with PowerApps Studio (Creación rápida de aplicaciones con PowerApps Studio)
por Karthik Bharathy Ver ahora
Rebuilding an InfoPath Designer form in PowerApps (Generación de un formulario de InfoPath Designer en
PowerApps)
por Daniel Christian Véalo ahora
Tips for InfoPath Designers Transitioning to PowerApps - Part 1 (Sugerencias para diseñadores de InfoPath
que deseen realizar la transición a PowerApps, parte 1)
por Audrie Gordon Véalo ahora
Tips for Transitioning from InfoPath to PowerApps - Part 2 (Sugerencias para pasar de InfoPath a
PowerApps, parte 2)
por Audrie Gordon Véalo ahora
Introducing List Forms in SharePoint Online (Introducción a los formularios de lista en SharePoint Online)
por Ankit Saraf Véalo ahora

Serie de Aplicaciones controladas por modelos


Model Driven App Components | Introduction to Model Driven Apps (Componentes de aplicaciones
controladas por modelos | Introducción a las aplicaciones controladas por modelos)
por Charles Sterling & Adrian Orth Ver ahora
Model Driven App Components | Getting Started with Templates (Componentes de aplicaciones
controladas por modelos | Introducción a las plantillas)
por Charles Sterling & Casey Burke Ver ahora
Model Driven App Series Part 1 | Managing Entities and Data Imports (Serie de aplicaciones controladas
por modelos, parte 1 | Administración de entidades e importaciones de datos)
por Audrie Gordon y Clay Wesener Ver ahora
Model Driven App Series Part 2 | Creating Forms and Views (Serie de aplicaciones controladas por modelos,
parte 2 | Creación de formularios y vistas)
Por Audrie Gordon y Anees Ansari Ver ahora
Model Driven App Series Part 3 | Exploring Charts and Dashboards (Serie de aplicaciones controladas por
modelos, parte 3 | Exploración de gráficos y paneles)
Por Audrie Gordon y Casey Burke Ver ahora

Serie de Diseñador de aplicaciones


Building Apps for Adoption and Usability (Crear aplicaciones para su adopción y facilidad de uso)
por Veronica WardVer ahora
Building Dialogs or Pop-up Messages in PowerApps (Crear cuadros de diálogos o mensajes emergentes en
PowerApps)
por Veronica WardVer ahora
Look behind the curtain with one of the PowerApps Developers - A closer look at templates: Marie
Hoeger (Descubra lo que sucede entre bastidores con una desarrolladora de PowerApps, un examen más
detallado de las plantillas: Marie Hoeger)
por Audrie Gordon Véalo ahora
Optimización del rendimiento de las aplicaciones de
lienzo en PowerApps
07/10/2019 • 14 minutes to read

Microsoft se esfuerza por mejorar el rendimiento de todas las aplicaciones que se ejecutan en la plataforma de
PowerApps, pero puede seguir los procedimientos recomendados que aparecen en este tema para mejorar el
rendimiento de las aplicaciones que se crean.
Cuando un usuario abre una aplicación, esta pasa a través de estas fases de ejecución antes de mostrar cualquier
interfaz de usuario:
1. Autenticación del usuario: se le pide al usuario, si esa persona nunca antes abrió la aplicación, que inicie
sesión con las credenciales de cualquier conexión que la aplicación necesite. Si el mismo usuario vuelve a abrir
la aplicación, se le podría pedir nuevamente que lo haga, en función de las directivas de seguridad de la
organización.
2. Obtención de los metadatos: se recuperan metadatos, como la versión de la plataforma de PowerApps en la
que se ejecuta la aplicación y los orígenes desde donde se deben recuperar los datos.
3. Inicialización de la aplicación: se realiza cualquier tarea especificada en la propiedad OnStart.
4. Presentación de pantallas: se presenta la primera pantalla con controles que la aplicación ha rellenado con
datos. Si el usuario abre otras pantallas, la aplicación las presenta mediante el mismo proceso.

Límite de conexiones de datos


No se conecte a más de 30 orígenes de datos desde la misma aplicación. Las aplicaciones piden a los
usuarios nuevos que inicien sesión en cada conector, por tanto, cada conector adicional aumenta la cantidad de
tiempo que la aplicación necesita para iniciarse. Cuando se ejecuta una aplicación, cada conector requiere recursos
de CPU, memoria y ancho de banda de red cuando la aplicación solicita datos a ese origen.
Para medir rápidamente el rendimiento de la aplicación, active Herramientas de desarrollo en Microsoft Edge o
Google Chrome mientras se ejecuta la aplicación. Es más probable que la aplicación tarde más de 15 segundos en
devolver datos si suele solicitar datos de más de 30 orígenes de datos, como Common Data Service, Azure SQL,
SharePoint y Excel en OneDrive.

Límite del número de controles


No agregue más de 500 controles a la misma aplicación. PowerApps genera DOM HTML para presentar cada
control. Cuantos más controles agregue, más tiempo de generación necesita PowerApps.
En algunos casos, es posible llegar al mismo resultado y hacer que la aplicación se inicie más rápido si usa una
galería en lugar de controles individuales. Además, puede que quiera disminuir el número de tipos de control en la
misma pantalla. Algunos controles (como el visor de PDF, la tabla de datos y el cuadro combinado) incorporan
scripts de ejecución de gran tamaño y tardan más en presentarse.

Optimización de la función OnStart


Use la función ClearCollect para almacenar en caché local los datos si no cambian durante la sesión del usuario.
Además, use la función Concurrent para cargar orígenes de datos de manera simultánea.
Como se muestra en este tema de referencia, puede usar la función Concurrent para disminuir a la mitad el
tiempo que una aplicación necesita para cargar los datos.
Sin la función Concurrent, esta fórmula carga cada una por una cada una de estas cuatro tablas:

ClearCollect( Product, '[SalesLT].[Product]' );


ClearCollect( Customer, '[SalesLT].[Customer]' );
ClearCollect( SalesOrderDetail, '[SalesLT].[SalesOrderDetail]' );
ClearCollect( SalesOrderHeader, '[SalesLT].[SalesOrderHeader]' )

Puede confirmar este comportamiento en las Herramientas de desarrollo del explorador:

Puede incluir la misma fórmula en la función Concurrent para disminuir el tiempo total que necesita la operación:

Concurrent(
ClearCollect( Product, '[SalesLT].[Product]' ),
ClearCollect( Customer, '[SalesLT].[Customer]' ),
ClearCollect( SalesOrderDetail, '[SalesLT].[SalesOrderDetail]' ),
ClearCollect( SalesOrderHeader, '[SalesLT].[SalesOrderHeader]' ))

Con este cambio, la aplicación captura las tablas en paralelo:

Almacenamiento en caché de datos de búsqueda


Use la función Set para almacenar en caché local datos provenientes de tablas de búsqueda con el fin de evitar
tener que recuperar repetidamente los datos desde el origen. Esta técnica permite optimizar el rendimiento si es
probable que los datos no cambien durante una sesión. Como en este ejemplo, los datos se recuperan desde el
origen una sola vez y, después, se hace referencia a ellos de manera local hasta que el usuario cierra la aplicación.

Set(CustomerOrder, Lookup(Order, id = “123-45-6789”));


Set(CustomerName, CustomerOrder.Name);
Set(CustomerAddress, CustomerOrder.Address);
Set(CustomerEmail, CustomerOrder.Email);
Set(CustomerPhone, CustomerOrder.Phone);

La información de contacto con cambia con frecuencia, así como tampoco lo hacen los valores predeterminados ni
la información del usuario. Por tanto, puede usar habitualmente esta técnica también con las funciones Defaults y
User.

Evitar la dependencia de controles entre pantallas


Para mejorar el rendimiento, las pantallas de una aplicación se cargan en la memoria solo cuando se necesitan. Esta
optimización se puede dificultar si, por ejemplo, se carga la pantalla 1 y una de sus fórmulas usa una propiedad de
un control de la pantalla 2. Ahora la pantalla 2 debe cargarse para cumplir la dependencia antes de que se pueda
mostrar la pantalla 1. Imagine que la pantalla 2 tiene una dependencia en la pantalla 3, que tiene otra dependencia
en la pantalla 4, etc. Esta cadena de dependencia puede hacer que se carguen muchas pantallas.
Por este motivo, evite las dependencias de fórmulas entre pantallas. En algunos casos, puede usar una variable
global o una colección para compartir información entre pantallas.
Existe una excepción. En el ejemplo anterior, Imagine que la única manera de mostrar la pantalla 1 es desplazarse
por la pantalla 2. A continuación, la pantalla 2 ya se habría cargado en la memoria cuando se cargara la pantalla 1.
No es necesario realizar ningún trabajo adicional para cumplir la dependencia de la pantalla 2 y, por tanto, no hay
ningún impacto en el rendimiento.

Uso de la delegación
Siempre que sea posible, use las funciones que delegan el procesamiento de datos al origen de datos en lugar de
recuperar los datos en el dispositivo local para el procesamiento. Si una aplicación debe procesar localmente los
datos, la operación requiere mucha más potencia de procesamiento, memoria y ancho de banda de red,
especialmente si el conjunto de datos es grande.
Tal como se muestra en esta lista, distintos orígenes de datos admiten la delegación desde distintas funciones:

Por ejemplo, las listas de SharePoint admiten la delegación desde la función Filter, pero no desde la función
Search. Por tanto, debería usar Filter en lugar de Search para buscar elementos en una galería si la lista de
SharePoint contiene más de 500 elementos. Para más sugerencias, consulte la entrada de blog Working with large
SharePoint lists in PowerApps (Trabajo con listas grandes de SharePoint en PowerApps).

Uso de la carga retrasada


Active la característica experimental para carga retrasada si la aplicación tiene más de 10 pantallas, ninguna regla y
muchos controles que se encuentran en varias pantallas y que están directamente enlazados al origen de datos. Si
compila este tipo de aplicación y no habilita esta característica, el rendimiento de la aplicación podría verse
afectado porque los controles que están en todas las pantallas se deben rellenar incluso en las pantallas que no
están abiertas. Además, es necesario actualizar todas las pantallas de la aplicación cada vez que cambia el origen de
datos, como ocurre cuando el usuario agrega un registro.

Trabajo con conjuntos de datos grandes


Use los orígenes de datos y las fórmulas que se pueden delegar para que las aplicaciones sigan funcionando
correctamente mientras los usuarios pueden acceder a toda la información que necesitan y evite llegar al límite de
2000 filas de datos para las consultas que no se pueden delegar. En el caso de las columnas con registros de datos
en las que los usuarios pueden buscar, filtrar u ordenar los datos, esos índices de columna están diseñados tal
como lo describen estos documentos para SQL Server y SharePoint.

Volver a publicar aplicaciones de manera habitual


Consulte la entrada de blog Republish your apps (Volver a publicar las aplicaciones) para obtener mejoras en el
rendimiento y características adicionales desde la plataforma de PowerApps.

Evite repetir la misma fórmula en varios lugares


Si varias propiedades ejecutan la misma fórmula (especialmente si es compleja), considere la posibilidad de
establecerla una vez y hacer referencia a la salida de la primera propiedad en las subsiguientes. Por ejemplo, no
establezca la propiedad DisplayMode de los controles a, B, C, D y e a la misma fórmula compleja. En su lugar,
establezca la propiedad DisplayMode de la fórmula compleja, establezca la propiedad DisplayMode de B en el
resultado de la propiedad DisplayMode de la, y así sucesivamente para C, D y e.

Habilitar DelayOutput en todos los controles de entrada de texto


Si tiene varias fórmulas o reglas que hacen referencia al valor de un control entrada de texto , establezca la
propiedad DelayedOutput de ese control en true. La propiedad Text de ese control solo se actualizará después de
que se hayan dejado de presionar las teclas especificadas en sucesión rápida. Las fórmulas o reglas no se
ejecutarán tantas veces y el rendimiento de la aplicación mejorará.

Evitar el uso de Form. updates en reglas y fórmulas


Si hace referencia a un valor de entrada de usuario en una regla o una fórmula mediante el uso de una variable
Form. updates , recorre en iteración todas las tarjetas de datos del formulario y crea un registro cada vez. Para que
la aplicación sea más eficaz, haga referencia al valor directamente desde la tarjeta de datos o el valor del control.

Pasos siguientes
Revise los estándares de codificación para maximizar el rendimiento de la aplicación y mantener las aplicaciones
más fáciles de mantener.
Problemas y soluciones habituales de PowerApps
05/11/2019 • 20 minutes to read

En este artículo se enumeran algunos de los problemas habituales que puede experimentar al usar PowerApps. Si
procede, se proporcionan soluciones alternativas.
1. Problema de inicio de sesión en determinados dispositivos móviles Android cuando se usa el
autenticador (21 de agosto de 2019)
En ciertos dispositivos y escenarios, puede experimentar errores de inicio de sesión al usar el autenticador.
Esto se debe a que el OEM limita esta funcionalidad. Para obtener más información sobre el error y las
posibles mitigaciones, vea aquí.
2. Problema de cámara en dispositivos móviles Android (1 de enero de 2019)
Si el control de cámara deja de funcionar en un dispositivo Android, vuelva a publicar la aplicación y vuelva
a abrirla en el dispositivo. El control de cámara se actualizó en respuesta a un cambio en el sistema
operativo Android y la aplicación se beneficiará de la actualización cuando vuelva a publicarla.
3. Desplazamiento en galerías de alto flexible (27 de noviembre de 2018)
Si tiene una limitación al desplazarse con el dedo, levante el dedo y empiece a desplazarse de nuevo.
4. Dibujar con mouse o entrada táctil no es suave en PowerApps para Windows (Sep. 24, 2018)
El control Pen solo tiene compatibilidad parcial con el dibujo mediante el mouse o la entrada táctil en la
aplicación de Windows. Los trazos pueden ser intermitentes. Para suavizar el dibujo, use un lápiz o ejecute la
aplicación en un explorador.
5. Varios controles de medios en PowerApps Mobile (2 de agosto de 2018)
PowerApps Mobile se ejecuta en diversos tipos de dispositivos y, algunos de ellos, tienen limitaciones
específicas de esa plataforma:
Puede reproducir vídeos en varios controles de vídeo al mismo tiempo en todas las plataformas, excepto
en dispositivos iPhone.
Puede grabar audio con varios controles de micrófono al mismo tiempo en todas las plataformas,
excepto en el reproductor de web.
6. Volver a publicar aplicaciones (2 de agosto de 2018)
Si no ha actualizado la aplicación en varios meses, vuelva a publicarla para sincronizarla con la versión más
reciente de PowerApps, que incluye mejoras de rendimiento y otras correcciones.
7. Memoria insuficiente del explorador (23 de julio de 2018)
Si se queda sin memoria mientras usa PowerApps, considere la posibilidad de descargar una versión de 64
bits de Chrome, Microsoft Edge o Internet Explorer.
8. Iniciar un sitio web desde una aplicación insertada (10 de mayo de 2018)
Los exploradores Internet Explorer y Microsoft Edge pueden bloquear una dirección URL o sitio web que
esté en modo protegido o en una zona de seguridad más baja que el sitio web en el que se carga la
aplicación. Para resolver este problema, cambie la configuración de seguridad y privacidad de su explorador.
9. Controles de cuadro combinado en galerías (3 de mayo de 2018)
Cuando se usa un control de cuadro combinado en una galería, sus selecciones no se conservan cuando el
usuario se va desplazando por la galería. Esto no ocurre si se usa un control de cuadro combinado en una
galería que no permite el desplazamiento. En estos momentos no existe una solución alternativa.
10. Usar una imagen personalizada como icono de aplicación (11 de abril de 2018)
En la versión 3.18043 de PowerApps Studio para Windows, no se puede cargar una imagen personalizada
para usarla como icono de aplicación. Para solucionar este problema, utilice para ello PowerApps Studio
para web. Como alternativa, puede usar uno de los iconos que se incluyen con PowerApps Studio para
Windows y personalizar el color de fondo.
11. Copiar y pegar pantallas entre aplicaciones (4 de abril de 2018)
No se admite actualmente copiar y pegar pantallas entre aplicaciones. Para resolver este problema, agregue
una nueva pantalla a la aplicación de destino, copie los controles de la pantalla de la aplicación de origen y, a
continuación, péguelos en la pantalla de la aplicación de destino.
12. Cambiar el diseño de los formularios de SharePoint (7 de marzo de 2018)
Al personalizar un formulario de lista de SharePoint en algunos idiomas, si se intenta cambiar el diseño de
vertical (valor predeterminado) a horizontal, la aplicación puede mostrar varios errores (triángulos amarillos
en controles). Para resolver estos errores y conservar el diseño horizontal, haga clic en Deshacer.
13. Control Data Table
Si copia y pega un control Data Table en el que la propiedad Elementos se ha establecido en una fórmula
que contenga una función Filter, la fórmula de la propiedad Elementos del nuevo control Data Table
termina una con nombres de campo que contienen el sufijo _1. Esto hace que los nombres de campo no
sean válidos y que no se muestren datos en la tabla de datos. Para solucionar este problema, antes de copiar
el control, confirme que la función Filter no hace referencia a ningún campo del origen de datos que se
llame igual que alguna columna del control Data Table. En caso de que haga referencia, cambie el nombre
de la columna en el control Data Table. O bien, quite el sufijo _1 sufijo de los nombres de campo no válidos
para que coincidan con los nombres de la entidad.
14. Controles de la cámara en PowerApps Studio para Windows
PowerApps Studio para Windows puede bloquearse si agrega un control de cámara o abre una aplicación
que utilice un control de cámara. Para evitar este problema, use PowerApps Studio para web cuando
agregue o use un control de cámara.
15. Versión 2.0.700 en dispositivos Android
Si instala la versión 2.0.700 en un dispositivo Android y no puede abrir aplicaciones (o una aplicación deja
de responder), desinstale PowerApps, reinicie el dispositivo y vuelva a instalar PowerApps.
16. Galería "vacía" al abrir una aplicación
Si genera una aplicación automáticamente a partir de datos, guarda la aplicación y, a continuación, vuelve a
abrirla, la galería podría no mostrar datos inmediatamente. Para resolver este problema, escriba al menos un
carácter en el cuadro de búsqueda y, a continuación, elimine el texto que ha escrito. La galería mostrará los
datos según lo previsto.
17. Actualización de PowerApps en Windows 8.1
Si instala PowerApps en un equipo que ejecuta Windows 8 o Windows 8.1, mantenga la aplicación de la
Tienda Windows abierta y activa, use el acceso a Configuración para comprobar si hay actualizaciones y, a
continuación, instálelas.
18. Conectores personalizados y Common Data Service
Si una aplicación creada con PowerApps compilación 2.0.540 o anterior está basada en una base de datos
de Common Data Service y al menos un conector personalizado en un entorno diferente, tendrá que
implementar el conector en el mismo entorno que la base de datos y actualizar la aplicación para que use el
nuevo conector. De lo contrario, un cuadro de diálogo notificará a los usuarios de que no se encontró la API.
Para más información, consulte Environments overview (Información general de los entornos).
19. Ejecución de una aplicación en Windows 8.1
Si instala esta actualización para Windows 8.1, no podrá ejecutar aplicaciones que se abran en PowerApps
Studio en ese sistema operativo. Aunque todavía puede ejecutar aplicaciones que se abren en
powerapps.com o con PowerApps Mobile.
20. Nombres de columna con espacios
Si usa una lista de SharePoint o una tabla de Excel en la que un nombre de columna contenga un espacio,
PowerApps lo reemplazará por "_x0020_" . Por ejemplo, "Nombre de columna" en SharePoint o Excel
aparecerá como "Nombre_x0020_de_columna" en PowerApps cuando se muestre en el diseño de datos o
se use en una fórmula.
21. Cambio de un flujo en una aplicación compartida
Si agrega un flujo a una aplicación, la comparte y, después, agrega un servicio o cambia una conexión en el
flujo, debe quitar el flujo de la aplicación compartida, volver a agregar el flujo y volver a compartir la
aplicación. De lo contrario, los usuarios que desencadenan el flujo obtendrán un error de autenticación.
22. Uso de una versión localizada.
Si está ejecutando la versión 2.0.531 en Windows 8.1, no podrá escribir en un control de entrada de texto
si el dispositivo está configurado para un idioma que requiere una ventana IME.
23. Control de la cámara en Windows Phone
Una aplicación que contiene un control de la cámara puede bloquearse si abre la aplicación en Windows
Phone que ejecuta la compilación 10.0.10586.107. Para evitar este problema, actualice a la compilación más
reciente (por ejemplo, mediante la ejecución del Asesor de actualizaciones).
24. Abrir una aplicación a partir de una plantilla
Si está ejecutando la versión 2.0.500 o anterior, aparece un mensaje de error al intentar crear una aplicación
a partir de una plantilla. Debe actualizar la versión para poder usar esta característica.
Si está ejecutando la versión 2.0.510 o posterior, puede aparecer una advertencia al intentar crear una
aplicación a partir de una plantilla. No obstante, puede cerrar el mensaje y crear la aplicación.
25. Escaneo de un código de barras
Para más información sobre las limitaciones y los procedimientos recomendados al utilizar un control
Código de barras, consulte Escanear un código de barras.
26. Creación y modificación de aplicaciones en un explorador
En la versión web de PowerApps Studio puede hacer muchas de las cosas que puede hacer en PowerApps
Studio para Windows, pero no todas. Para más información, consulte Create an app in a browser (Crear una
aplicación en un explorador).
27. Cambio de un campo de título en una entidad
Si cambia el campo de título para una entidad que hace referencia a otras entidades mediante una o varias
búsquedas, se producirá un error al intentar guardar el cambio. Para evitar este problema, quite todas las
búsquedas de la entidad para la que desea cambiar el campo de título, realice el cambio y vuelva a crear las
búsquedas. Para más información acerca de las búsquedas, consulte Crear una relación entre entidades.
28. Aplicaciones que se conectan a SharePoint local
Si comparte una aplicación que se basa en conexiones que no se comparten automáticamente (por ejemplo,
un sitio de SharePoint local), los usuarios que abran la aplicación en un explorador verán un cuadro de
diálogo sin texto al hacer clic o pulsar en Iniciar sesión. Para cerrar el cuadro de diálogo, haga clic o pulse
en el icono Cerrar (X) en la esquina superior derecha. El cuadro de diálogo no aparece si se abre la
aplicación en PowerApps Studio o PowerApps Mobile. Para más información acerca de las conexiones
compartidas, consulte Share app resources (Uso compartido de recursos de la aplicación).
29. Cuando PowerApps genera una aplicación a partir de datos, el campo utilizado para ordenar y
buscar no está configurado automáticamente.
Para configurar este campo, modifique la fórmula Elementos de la galería, tal como se describe en las
secciones para filtrar y ordenar en Add a gallery (Agregar una galería).
30. Para las aplicaciones que se crean a partir de datos, solo se puede acceder a los 500 primeros
registros de un origen de datos.
En general, PowerApps funciona con orígenes de datos de cualquier tamaño mediante la delegación de
operaciones al origen de datos. Para las operaciones que no se pueden delegar, PowerApps mostrará una
advertencia en el momento de la creación y operará solo en los 500 primeros registros del origen de datos.
Consulte el artículo Filter function (Función de filtro) para más información acerca de la delegación.
31. Se debe dar un formato de tabla a los datos de Excel.
Para más información acerca de las limitaciones al usar Excel como origen de datos, consulte Cloud-storage
connections (Conexiones de almacenamiento en la nube).
32. Se admiten listas personalizadas de SharePoint pero no las bibliotecas, algunos tipos de columnas
de la lista o las columnas que admiten varios valores o selecciones.
Para más información, consulte SharePoint Online.
33. No se admite la co-autoría. Un autor a la vez, por favor.
Puede dañar una aplicación o sobrescribir los cambios de otros usuarios si más de una persona está
modificando a la vez la misma aplicación. Cierre la aplicación antes de que otra persona la edite.
34. A veces, se tarda un tiempo en poder usar una aplicación recién compartida.
En algunos casos, una aplicación recién compartida no estará disponible de inmediato. Espere unos
instantes y estará disponible.
35. En Control de formulario, no puede modificar datos con una tarjeta personalizada.
Falta la propiedad Update en la tarjeta personalizada de existencias, que es necesaria para escribir los
cambios. Para solucionar este problema:
Seleccione el control de formulario e inserte una tarjeta mediante el panel derecho en función del campo
que desee que muestre la tarjeta.
Desbloquee la tarjeta, tal como se describe en Understanding data cards (Comprender tarjetas de datos).
Quite o reorganice los controles dentro de la tarjeta como considere oportuno, tal como lo haría con la
tarjeta personalizada.
36. Una aplicación que se ejecuta en Android 5.0, Nexus 6 con Webview de versiones v48 o v49,
puede bloquearse.
Los usuarios pueden solucionar este problema mediante la actualización a una versión anterior de Webview
(3x) o a Android 6.0.
37. El uso de la cámara puede estar deshabilitado temporalmente si hay poca memoria.
Si el dispositivo móvil tiene poca memoria, la cámara se deshabilita temporalmente para evitar el bloqueo
del dispositivo.
38. El conector de vídeo de Office 365 no es compatible.
39. La galería de tarjetas está en desuso.
Las aplicaciones existentes que utilizan esta característica seguirán ejecutándose por el momento pero no
puede agregar una galería de tarjetas. Reemplace las galerías de tarjetas por los nuevos controles Editar
formulario y Mostrar formulario .
Obtención de un identificador de sesión o un
identificador de aplicación de lienzo
07/10/2019 • 2 minutes to read

Si encuentra un problema con una aplicación de lienzo que se creó en PowerApps, puede ayudar a Microsoft a
solucionar el problema de manera mucho más efectiva si les proporciona un identificador de sesión, un
identificador de aplicación o ambos para ese problema.

Obtención del identificador de sesión


Al editar una aplicación
1. En la esquina superior izquierda, seleccione Archivo.
2. Seleccionar Cuenta.
3. En Diagnósticos, seleccione Detalles de la sesión.

Al ejecutar una aplicación en un explorador


1. En la esquina superior derecha, seleccione el icono de engranaje.
2. Seleccione Detalles de la sesión.

Cuando ejecute una aplicación en un teléfono o una tableta


1. Deslice rápidamente hacia la derecha.
2. Pulse Detalles de la sesión.
Al ejecutar una aplicación o un formulario insertado
1. Realice uno de estos pasos:
Mientras mantiene presionada la tecla Alt, haga clic con el botón derecho en la aplicación o el formulario.
Pulse la aplicación o el formulario con dos dedos durante 1 o 2 segundos y luego suelte.
2. Seleccione Detalles de la sesión.

Obtención de un identificador de aplicación


1. Inicie sesión en PowerApps.
2. Cerca del borde izquierdo, seleccione Aplicaciones.
3. Seleccione los puntos suspensivos ( . . . ) para la aplicación en la que está solucionando problemas y luego
seleccione Detalles.
El identificador de la aplicación aparece en la parte inferior del panel Detalles para esa aplicación.
Solución de problemas de Power Query
25/11/2019 • 6 minutes to read • Edit Online

Cuando usa Power Query for Excel para crear una entidad personalizada que contiene datos de orígenes externos,
podría aparecer este error:

“El administrador de Azure Active Directory ha establecido una política que le impide usar esta función.
Póngase en contacto con al administrador, que puede conceder los permisos para esta función en su nombre”.

El error se produce si Power Query no puede acceder a los datos de la organización en PowerApps o Common
Data Service. Esta situación surge bajo dos grupos de circunstancias:
Un administrador de inquilinos de Azure Active Directory (Azure AD ) ha deshabilitado la capacidad de los
usuarios de consentir aplicaciones que acceden a datos de la compañía en su nombre.
Uso de un inquilino de Active Directory no administrado. Un inquilino no administrado es un directorio sin un
administrador global que se creó para completar una oferta de suscripción de autoservicio. Para corregir este
escenario, los usuarios primero deben realizar la conversión a un inquilino administrado y después seguir una
de las dos soluciones a este problema. Las soluciones se describen en la siguiente sección.
Para resolver este problema, el administrador de Azure Active Directory debe seguir cualquiera de los
procedimientos que se presentan más adelante en este artículo.

Permitir a los usuarios consentir aplicaciones que acceden a datos de la


compañía
Este método es quizás más sencillo que el siguiente, pero permite permisos más amplios.
1. En el portal de Azure, abra el panel Azure Active Directory y, a continuación, seleccione Configuración de
usuario.
2. Junto a Los usuarios pueden consentir aplicaciones que acceden a datos empresariales en su nombre,
seleccione Sí y, a continuación, seleccione Guardar.

Permitir a Power Query acceder a datos de la compañía


Como alternativa, el administrador de inquilinos puede dar consentimiento a Power Query sin modificar los
permisos de los inquilinos.
1. Instale Azure PowerShell.
2. Ejecute los siguientes comandos de PowerShell:
Login-AzureRmAccount (e inicie sesión como el administrador de inquilinos)
New -AzureRmADServicePrincipal -ApplicationId f3b07414-6bf4-46e6-b63f-56941f3f4128
La ventaja de este método (respecto a la solución de inquilinos) es que esta solución está muy dirigida.
Proporciona solo el servicio principal de Power Query y no se realiza ningún otro cambio en el inquilino.

Actualizar datos personales


Los usuarios pueden actualizar los mashups y otra información (como nombres de consulta y metadatos de
mashup) a través del editor de consultas y a través del cuadro Opciones al que se puede acceder desde el editor
de consultas.
En PowerApps, puede acceder al editor de consultas mediante el procedimiento siguiente:
1. Vaya al panel Datos, expándalo y, a continuación, seleccione Entidades.
2. Seleccione los puntos suspensivos (...) y, a continuación, seleccione Editar consultas.
3. En la cinta de opciones, seleccione el botón Opciones y después seleccione el botón Diagnóstico de
exportación.

Eliminar datos personales


La mayoría de los datos se elimina automáticamente en 30 días. Para los datos y metadatos alrededor de los
mashups, los usuarios deben quitar todos los mashups con PowerApps. Todos los datos y metadatos asociados se
eliminarán en 30 días.
Para quitar mashups de Power Apps:
1. Quite los proyectos del integrador de datos, que se pueden quitar desde la ficha homónima.
2. Seleccione los puntos suspensivos (...) y después seleccione la opción Eliminar.
Si ha creado un mashup a través de la función "Nuevas entidades desde datos (vista previa técnica)", puede
quitarlo mediante el procedimiento siguiente:
1. Seleccione los puntos suspensivos (...) y, a continuación, seleccione Editar consultas.
2. En la cinta de opciones, seleccione el botón Opciones.
3. Seleccione el botón Quitar todas las consultas.
Tras confirmar que desea eliminar las consultas, estas se eliminarán.

Exportar datos personales


Para exportar datos personales, los usuarios pueden hacer lo siguiente:
1. Abrir el editor de consultas.
2. En la cinta de opciones, seleccione el botón Opciones.
3. Seleccionar el botón Diagnóstico de exportación.
En PowerApps, puede acceder al editor de consultas mediante el procedimiento siguiente:
1. Vaya al panel Datos, expándalo y, a continuación, seleccione Entidades.
2. Seleccione los puntos suspensivos (...) y, a continuación, seleccione Editar consultas.
3. En la cinta de opciones, seleccione el botón Opciones y después seleccione el botón Diagnóstico de
exportación.
Se puede acceder a los registros generados por el sistema sobre acciones del usuario en la interfaz de usuario (IU )
en el portal de Azure.

También podría gustarte