Inspeccionar el componente ER configurado para evitar problemas de runtime
Cada componente de Informe electrónico (ER) con formato configurado y asignación de modelos puede ser validado en tiempo de diseño. Durante esta validación, se ejecuta una verificación de coherencia para ayudar a prevenir problemas de runtime que puedan ocurrir, como errores de ejecución y degradación del rendimiento. Para cada problema que se encuentra, la comprobación proporciona la ruta de un elemento problemático. Para algunos problemas, hay una solución automática disponible.
De forma predeterminada, la validación se aplica automáticamente en los siguientes casos para una configuración de ER que contiene los componentes de ER mencionados anteriormente:
- Usted importa una versión nueva de una configuración de ER en su instancia de Microsoft Dynamics 365 Finance.
- Cambia el estado de la configuración de ER configurable de Borrador a Completado.
- Usted rebasa una configuración de ER editable aplicando una nueva versión base.
Puede ejecutar explícitamente esta validación. Seleccione una de las siguientes tres opciones y siga los pasos que se proporcionan:
Opción 1:
- Vaya a Administración de la organización > Informes electrónicos > Configuraciones.
- En el árbol de configuraciones del panel izquierdo, seleccione la configuración de ER deseada que contiene el formato ER o el componente de asignación del modelo ER.
- En la ficha desplegable Versiones, seleccione la versión deseada de la configuración de ER seleccionada.
- En el panel de acciones, seleccione Validar.
Opción 2, para un formato ER:
- Vaya a Administración de la organización > Informes electrónicos > Configuraciones.
- En el árbol de configuraciones del panel izquierdo, seleccione la configuración de ER deseada que contiene el componente de formato ER.
- En la ficha desplegable Versiones, seleccione la versión deseada de la configuración de ER seleccionada.
- En el panel de acciones, haga clic en Diseñador.
- En la página Diseñador de formato, en el panel de acciones seleccione Validar.
Opción 3, para una asignación de modelo ER:
- Vaya a Administración de la organización > Informes electrónicos > Configuraciones.
- En el árbol de configuraciones del panel izquierdo, seleccione la configuración de ER deseada que contiene el componente de asignación del modelo ER.
- En la ficha desplegable Versiones, seleccione la versión deseada de la configuración de ER seleccionada.
- En el panel de acciones, haga clic en Diseñador.
- En la página Asignación de modelo a origen de datos en el Panel acciones, seleccione Diseñador.
- En la página Diseñador de asignación de modelo en el Panel acciones, seleccione Validar.
Para omitir la validación cuando se importa la configuración, siga estos pasos.
- Vaya a Administración de la organización > Informes electrónicos > Configuraciones.
- En la página Configuraciones, en el panel de acciones, en la pestaña Configuraciones, en el grupo Configuración avanzada, seleccione Parámetros de usuario.
- Establezca la opción Validar la configuración después de importar a No.
Para omitir la validación cuando cambia o resuelve el estado de la versión, siga estos pasos.
- Vaya a Administración de la organización > Informes electrónicos > Configuraciones.
- En la página Configuraciones, en el panel de acciones, en la pestaña Configuraciones, en el grupo Configuración avanzada, seleccione Parámetros de usuario.
- Establezca la opción Omitir la validación en el cambio de estado de la configuración y el cambio de base a Sí.
ER utiliza las siguientes categorías para agrupar las inspecciones de verificación de coherencia:
- Ejecutabilidad: inspecciones que detectan problemas críticos que pueden ocurrir en runtime. Estos problemas se encuentran principalmente en un nivel Error.
- Rendimiento: inspecciones que detectan problemas que pueden causar una ejecución ineficaz de los componentes ER configurados. Estos problemas se encuentran principalmente en un nivel Advertencia.
- Integridad de los datos: inspecciones que detectan problemas que pueden causar pérdida de datos o problemas de runtime. Estos problemas se encuentran principalmente en un nivel Advertencia.
Lista de inspecciones
La tabla siguiente proporciona información general de las inspecciones que proporciona ER. Para obtener más información sobre estas inspecciones, utilice los enlaces de la primera columna para ir a las secciones relevantes de este artículo. Esas secciones explican los tipos de componentes para los que ER proporciona inspecciones y cómo puede reconfigurar los componentes de ER para ayudar a prevenir problemas.
Nombre | Categoría | Nivel | Mensaje |
---|---|---|---|
Conversión de tipos | Ejecutabilidad | Error |
No se puede convertir la expresión de tipo <tipo> al campo de tipo <tipo>. Error de runtime: Excepción para tipo |
Compatibilidad de tipo | Ejecutabilidad | Error |
La expresión configurada no se puede utilizar como enlace del elemento de formato actual a una fuente de datos, ya que esta expresión devuelve el valor del tipo de datos <tipo> que está más allá del alcance de los tipos de datos que son compatibles con el elemento de formato actual de tipo <tipo>. Error de runtime: Excepción de tipo |
Falta un elemento de configuración | Ejecutabilidad | Error |
Ruta de acceso no encontraa <ruta de acceso>. Error de runtime: Elemento de la configuración <ruta de acceso> no encontrado |
Ejecutabilidad de una expresión con función FILTRO | Ejecutabilidad | Error |
La expresión de lista de la función FILTER no es consultable. Error de runtime: No se admite el filtrado. Valide la configuración para obtener más detalles sobre esto. |
Ejecutabilidad de una fuente de datos GROUPBY | Ejecutabilidad | Error | Ruta de acceso <ruta de acceso> no admite consultas. |
Ejecutabilidad | Error |
El grupo por función no se puede ejecutar con la consulta. Error de runtime: El grupo por función no se puede ejecutar con la consulta. |
|
Ejecutabilidad de una fuente de datos JOIN | Ejecutabilidad | Error |
No puede unirse a una lista <ruta de acceso> eso no es un filtro en la consulta. Error de runtime: La función unida a la fuente de datos debe ser una expresión de filtro. El campo calculado se ha llamado incorrectamente. |
Preferibilidad de la función FILTER frente a WHERE | Rendimiento | Advertencia | Es preferible usar la función FILTER para la expresión que WHERE desde la perspectiva del desempeño. Seleccione Reparar para reemplazarlo automáticamente. |
Preferibilidad de la función ALLITEMSQUERY vs ALLITEMS | Rendimiento | Advertencia | Es preferible usar la función ALLITEMSQUERY para la expresión que ALLITEMS desde la perspectiva del desempeño. Seleccione Reparar para reemplazarlo automáticamente. |
Consideración de casos de lista vacía | Ejecutabilidad | Advertencia |
Lista <ruta de acceso> no tiene ninguna verificación de caso de lista vacía, puede resultar en un error en runtime. Agregue una comprobación para caso de lista vacía. Error de runtime: La lista está vacía en <ruta de acceso> Posible problema: la línea se rellena una vez mientras que un origen de datos desde la que se rellena contiene varios registros |
Ejecutabilidad de una expresión con función FILTRO (caché) | Ejecutabilidad | Error |
La función FILTER no se puede aplicar al tipo de origen de datos seleccionado. Un origen de datos del tipo Registros de tabla es aplicable solo cuando no está almacenado en caché y no tiene fuentes de datos anidadas agregadas manualmente. Error de runtime: No se admite el filtrado. Valide la configuración para obtener más detalles sobre esto. |
Falta enlace | Ejecutabilidad | Advertencia |
Ruta de acceso <ruta de acceso> no tiene ningún vínculo con ninguna fuente de datos al usar la asignación del modelo. Error de runtime: Ruta de acceso <ruta de acceso> no está vinculada |
Plantilla no vinculada | Integridad de los datos | Advertencia | Archivo <nombre> no está vinculado a ningún componente de archivo y se eliminará después de cambiar el estado de la versión de configuración. |
Formato no sincronizado | Integridad de los datos | Advertencia | Nombre definido <nombre del componente> no existe en la hoja de Excel <nombre de la hoja> |
Formato no sincronizado | Integridad de datos | Advertencia |
La etiqueta <Control de contenido de Word etiquetado> no existe en el archivo de plantilla de Word Error de runtime: la etiqueta <Control de contenido de Word etiquetado> no existe en el archivo de plantilla de Word. |
Sin asignación predeterminada | Integridad de datos | Error |
Existe más de una asignación de modelo para el modelo de datos <nombre del modelo (descriptor raíz)> en las configuraciones <nombres de configuración separados por comas>. Establezca una de las configuraciones como predeterminada Error de runtime: existe más de una asignación de modelo para el <modelo de datos de nombre del modelo (descriptor raíz)> en las configuraciones <nombres de configuración separados por comas>. Establezca una de las configuraciones como predeterminada. |
Configuración incoherente de los componentes de encabezado o pie de página | Integridad de datos | Error |
Encabezados/pies de página (<tipo de componente: encabezado o pie de página>) incoherentes Runtime: el último componente configurado se utiliza en tiempo de ejecución si se ejecuta la versión de borrador del formato ER configurado. |
Configuración incoherente del componente de página | Integridad de datos | Error | Hay más de dos componentes de rango sin replicación. Elimine los componentes innecesarios. |
Ejecutabilidad de una expresión con función ORDERBY | Ejecutabilidad | Error |
La expresión de lista de la función ORDERBY no es consultable. Error de runtime: No se admite la ordenación. Valide la configuración para obtener más detalles sobre esto. |
Artefacto de aplicación obsoleta | Integridad de datos | Advertencia |
El elemento <path> está marcado como obsoleto. Ejemplo de error de tiempo de ejecución: Clase '<path>' no encontrada. |
Conversión de tipos
ER comprueba si el tipo de datos de un campo de modelo de datos es compatible con el tipo de datos de una expresión que está configurada como el enlace de ese campo. Si los tipos de datos son incompatibles, se produce un error de validación en el diseñador de asignación del modelo ER. El mensaje que recibe indica que ER no puede convertir una expresión de tipo A en un campo de tipo B.
Los siguientes pasos muestran cómo puede ocurrir este problema.
Comience a configurar el modelo de datos ER y los componentes de asignación del modelo ER simultáneamente.
En el árbol del modelo de datos, agregue un campo con el nombre X y seleccione Entero como tipo de datos.
En el diseñador de asignación de datos, en el panel Orígenes de datos, agregue un origen de datos del tipo Campo calculado.
Nombre la nueva fuente de datos Y y configúrela para que contenga la expresión
INTVALUE(100)
.Enlazar X a Y.
En el diseñador de modelos de datos, cambie el tipo de datos del campo X de Entero a Int64.
Seleccione Validar para inspeccionar el componente de asignación del modelo editable en la página Diseñador de asignación de modelos.
Seleccione Validar para inspeccionar el componente de asignación del modelo de la configuración de ER seleccionada en la página Configuraciones.
Observe que se produce un error de validación. El mensaje indica que el valor del tipo Entero que la expresión
INTVALUE(100)
del origen de datos Y devuelve no se puede almacenar en el campo del modelo de datos X del tipo Int64.
La siguiente ilustración muestra el error de runtime que se produce si ignora la advertencia y selecciona Ejecutar para ejecutar un formato que esté configurado para usar la asignación del modelo.
Resolución automática
No hay ninguna opción disponible para solucionar este problema automáticamente.
Resolución manual
Opción 1
Actualice la estructura del modelo de datos cambiando el tipo de datos del campo del modelo de datos para que coincida con el tipo de datos de la expresión configurada para el enlace de ese campo. Para el ejemplo anterior, el tipo de datos del campo X debe cambiarse de nuevo a Entero.
Opción 2
Actualice la asignación del modelo cambiando la expresión de la fuente de datos que está vinculada con el campo del modelo de datos. Para el ejemplo anterior, la expresión del origen de datos Y debe cambiarse a INT64VALUE(100)
.
Compatibilidad de tipo
ER comprueba si el tipo de datos de un elemento de formato es compatible con el tipo de datos de una expresión que está configurada como el enlace de ese elemento de formato. Si los tipos de datos son incompatibles, se produce un error de validación en el diseñador de Operaciones ER. El mensaje que ha recibido afirma que la expresión configurada no se puede utilizar como enlace del elemento de formato actual a una fuente de datos, ya que esta expresión devuelve un valor del tipo de datos A que está más allá del alcance de los tipos de datos que son compatibles con el elemento de formato actual de tipo B.
Los siguientes pasos muestran cómo puede ocurrir este problema.
Comience a configurar el modelo de datos ER y los componentes de formato ER simultáneamente.
En el árbol del modelo de datos, agregue un campo con el nombre X y seleccione Entero como tipo de datos.
En el árbol de estructura de formato, agregue un elemento de formato del tipo Numérico.
Nombre el nuevo elemento de formato Y. En el campo Tipo numérico, seleccione Entero como tipo de datos.
Enlazar X a Y.
En el árbol de estructura de formato, cambie el tipo de datos del elemento Y de formato de Entero a Int64.
Seleccione Validar para inspeccionar el componente de formato editable en la página Diseñador de formato.
Observe que se produce un error de validación. El mensaje indica que la expresión configurada solo puede aceptar valores Int64. Por tanto, el valor de del campo X del modelo de datos del tipo Entero no se puede introducir en el elemento de formato Y.
Resolución automática
No hay ninguna opción disponible para solucionar este problema automáticamente.
Resolución manual
Opción 1
Actualice la estructura del formato cambiando el tipo de datos del elemento de formato Numérico para que coincida con el tipo de datos de la expresión que configura para el enlace de ese elemento. En el ejemplo anterior, el valor del Tipo numérico del elemento de formato X debe cambiarse de nuevo a Entero.
Opción 2
Actualice la asignación de formato del elemento de formato X cambiando la expresión de model.X
a INT64VALUE(model.X)
.
Falta un elemento de configuración
ER comprueba si las expresiones vinculantes contienen solo orígenes de datos que están configurados en el componente ER editable. Por cada enlace que contiene un origen de datos que falta en el componente ER editable, se produce un error de validación en el diseñador de operaciones ER o en el diseñador de mapeo del modelo ER.
Los siguientes pasos muestran cómo puede ocurrir este problema.
Comience a configurar el modelo de datos ER y los componentes de asignación del modelo ER simultáneamente.
En el árbol del modelo de datos, agregue un campo con el nombre X y seleccione Entero como tipo de datos.
En el diseñador de asignación de datos, en el panel Orígenes de datos, agregue un origen de datos del tipo Campo calculado.
Nombre la nueva fuente de datos Y y configúrela para que contenga la expresión
INTVALUE(100)
.Enlazar X a Y.
En el diseñador de asignación de modelos, en el panel Orígenes de datos, elimine el origen de datos Y.
Seleccione Validar para inspeccionar el componente de asignación del modelo editable en la página Diseñador de asignación de modelos.
Observe que se produce un error de validación. El mensaje afirma que la vinculación del campo del modelo de datos X contiene la ruta que se refiere al origen de datos Y, pero esta fuente de datos no se encuentra.
Resolución automática
Seleccione Desenlazar para solucionar automáticamente este problema eliminando el enlace de origen de datos que falta.
Resolución manual
Opción 1
Desenlaza el campo X del modelo de datos para dejar de referirse al origen de datos Y inexistente.
Opción 2
En el panel Orígenes de datos del diseñador de asignación de modelos, agregue de nuevo el origen de datos Y.
Ejecutabilidad de una expresión con función FILTER
La función ER incorporada FILTRAR se utiliza para acceder a tablas de aplicaciones, vistas o entidades de datos al realizar una sola llamada SQL para obtener los datos requeridos como una lista de registros. Un origen de datos del tipo Lista de registros se utiliza como argumento de esta función y especifica el origen de la aplicación para la llamada. ER comprueba si se puede establecer una consulta SQL directa a una fuente de datos a la que se hace referencia en la función FILTER
. Si no se puede establecer una consulta directa, se produce un error de validación en el diseñador de mapas del modelo ER. El mensaje que recibe indica que la expresión ER que incluye la función FILTER
no se puede ejecutar en runtime.
Los siguientes pasos muestran cómo puede ocurrir este problema.
Comience a configurar el componente de asignación del modelo ER.
Agregue un origen de datos del tipo Dynamics 365 for Operations \ Registros de tabla.
Asigne un origen de datos nuevo Proveedor. En el campo Tabla, seleccione VendTable para especificar que este origen de datos solicitará la tabla VendTable.
Agregue un origen de datos del tipo Campo calculado.
Nombre el nuevo origen de datos FilteredVendor y configúrelo para que contenga la expresión
FILTER(Vendor, Vendor.AccountNum="US-101")
.Seleccione Validar para inspeccionar el componente de asignación del modelo editable en la página Diseñador de asignación de modelos y verifique que la expresión
FILTER(Vendor, Vendor.AccountNum="US-101")
en el origen de datos Proveedor pueda consultarse en el origen de datos.Modifique el origen de datos Proveedor agregando un campo anidado del tipo Campo calculado para obtener el número de cuenta de proveedor recortado.
Nombre el nuevo campo anidado $AccNumber y configúrelo para que contenga la expresión
TRIM(Vendor.AccountNum)
.Seleccione Validar para inspeccionar el componente de asignación del modelo editable en la página Diseñador de asignación de modelos y verifique que la expresión
FILTER(Vendor, Vendor.AccountNum="US-101")
en el origen de datos Proveedor pueda consultarse en el origen de datos.Observe que se produce un error de validación, porque el origen de datos Proveedor contiene un campo anidado del tipo Campo calculado que no permite la expresión del origen de datos FilteredVendor se traduzca a la instrucción SQL directa.
La siguiente ilustración muestra el error de runtime que se produce si ignora la advertencia y selecciona Ejecutar para ejecutar un formato que esté configurado para usar la asignación del modelo.
Resolución automática
No hay ninguna opción disponible para solucionar este problema automáticamente.
Resolución manual
Opción 1
En lugar de agregar un campo anidado del tipo Campo calculado al origen de datos Proveedor datos, agregue el campo anidado $AccNumber al origen de datos FilteredVendor y configúrelo para que contenga la expresión TRIM(FilteredVendor.AccountNum)
. De esta manera, la expresión FILTER(Vendor, Vendor.AccountNum="US-101")
se puede ejecutar en el nivel SQL y calcular el campo anidado $AccNumber después.
Opción 2
Cambiar la expresión del origen de datos FilteredVendor de FILTER(Vendor, Vendor.AccountNum="US-101")
a WHERE(Vendor, Vendor.AccountNum="US-101")
. No recomendamos que cambie la expresión para una tabla que tiene un gran volumen de datos (tabla transaccional), porque todos los registros se recuperarán y la selección de los registros necesarios se realizará en la memoria. Por lo tanto, este enfoque puede provocar un rendimiento deficiente. Para más información, ver función WHERE ER.
Ejecutabilidad de una fuente de datos GROUPBY
El origen de datos GROUPBY divide el resultado de la consulta en grupos de registros, generalmente con el propósito de realizar una o más agregaciones en cada grupo. Cada origen de datos GROUPBY se puede configurar para que se ejecute en el nivel de la base de datos o en la memoria. Cuando un origen de datos GROUPBY está configurado para que se ejecute en el nivel de la base de datos, ER comprueba si se puede establecer una consulta SQL directa a un origen de datos a la que se hace referencia en ese origen de datos. Si no se puede establecer una consulta directa, se produce un error de validación en el diseñador de mapas del modelo ER. El mensaje que recibe indica que el origen de datos configurado GROUPBY no se puede ejecutar en runtime.
Los siguientes pasos muestran cómo puede ocurrir este problema.
Comience a configurar el componente de asignación del modelo ER.
Agregue un origen de datos del tipo Dynamics 365 for Operations \ Registros de tabla.
Nombre el nuevo origen de datos Trans. En el campo Tabla, seleccione VendTrans para especificar que este origen de datos solicitará la tabla VendTrans.
Agregue un origen de datos del tipo Agrupado por.
Nombre el nuevo origen de datos GroupedTrans y configúrelo de la siguiente manera:
- Seleccione el origen de datos Trans como la fuente de registros que deben agruparse.
- En el campo Ubicación de ejecución, seleccione Consulta para especificar que desea ejecutar este origen de datos en el nivel de la base de datos.
Seleccione Validar para inspeccionar el componente de asignación del modelo editable en la página Diseñador de asignación de modelos y verifique que la expresión configurada GroupedTrans pueda consultarse.
Modifique el origen de datos Trans agregando un campo anidado del tipo Campo calculado para obtener el número de cuenta de proveedor recortado.
Nombre el nuevo origen de datos $AccNumber y configúrelo para que contenga la expresión
TRIM(Trans.AccountNum)
.Seleccione Validar para inspeccionar el componente de asignación del modelo editable en la página Diseñador de asignación de modelos y verifique que la expresión configurada GroupedTrans pueda consultarse.
Observe que se produce un error de validación, porque el origen de datos Trans contiene un campo anidado del tipo Campo calculado que no permite que la llamada del origen de datos GroupedTrans se traduzca a la instrucción SQL directa.
La siguiente ilustración muestra el error de runtime que se produce si ignora la advertencia y selecciona Ejecutar para ejecutar un formato que esté configurado para usar la asignación del modelo.
Resolución automática
No hay ninguna opción disponible para solucionar este problema automáticamente.
Resolución manual
Opción 1
En lugar de agregar un campo anidado del tipo Campo calculado al origen de datos Trans, agregue el campo anidado $AccNumber para el elemento GroupedTrans.lines del origen de datos GroupedTrans y configúrelo para que contenga la expresión TRIM(GroupedTrans.lines.AccountNum)
. De esta manera, el origen de datos GroupedTrans se puede ejecutar en el nivel SQL y calcular el campo anidado $AccNumber después.
Opción 2
Cambie el valor del campo Ubicación de ejecución para el origen de datos GroupedTrans de Consulta a En memoria. No recomendamos que cambie el valor para una tabla que tiene un gran volumen de datos (tabla transaccional), porque todos los registros se recuperarán y la agrupación y agregación se realizará en la memoria. Por lo tanto, este enfoque puede provocar un rendimiento deficiente.
Ejecutabilidad de una fuente de datos JOIN
El origen de datos JOIN combina registros de dos o más tablas de base de datos, según los campos relacionados. Cada origen de datos JOIN se puede configurar para que se ejecute en el nivel de la base de datos o en la memoria. Cuando un origen de datos JOIN está configurado para que se ejecute en el nivel de la base de datos, ER comprueba si se puede establecer una consulta SQL directa a orígenes de datos a la que se hace referencia en ese origen de datos. Si no se puede establecer una consulta directa SQL con al menos un origen de datos referenciado, se produce un error de validación en el diseñador de mapas del modelo ER. El mensaje que recibe indica que el origen de datos configurado JOIN no se puede ejecutar en runtime.
Los siguientes pasos muestran cómo puede ocurrir este problema.
Comience a configurar el componente de asignación del modelo ER.
Agregue un origen de datos del tipo Dynamics 365 for Operations \ Registros de tabla.
Asigne un origen de datos nuevo Proveedor. En el campo Tabla, seleccione VendTable para especificar que este origen de datos solicitará la tabla VendTable.
Agregue un origen de datos del tipo Dynamics 365 for Operations \ Registros de tabla.
Nombre el nuevo origen de datos Trans. En el campo Tabla, seleccione VendTrans para especificar que este origen de datos solicitará la tabla VendTrans.
Agregue una fuente de datos del tipo Campo calculado como el campo anidado del origen de datos Proveedor.
Nombre el nuevo origen de datos FilteredTrans y configúrelo para que contenga la expresión
FILTER(Trans, Trans.AccountNum=Vendor.AccountNum)
.Agregue un origen de datos del tipo Join.
Nombre el nuevo origen de datos JoinedList y configúrelo de la siguiente manera:
- Añada el origen de datos Proveedor como el primer conjunto de registros para unirse.
- Agregue el origen de datos Vendor.FilteredTrans como el segundo conjunto de registros para unirse. Seleccione INNER como el tipo.
- En el campo Ejecutar, seleccione Consulta para especificar que desea ejecutar este origen de datos en el nivel de la base de datos.
Seleccione Validar para inspeccionar el componente de asignación del modelo editable en la página Diseñador de asignación de modelos y verifique que la expresión configurada JoinedList pueda consultarse.
Cambiar la expresión del origen de datos Vendor.FilteredTrans de
FILTER(Trans, Trans.AccountNum=Vendor.AccountNum)
aWHERE(Trans, Trans.AccountNum=Vendor.AccountNum)
.Seleccione Validar para inspeccionar el componente de asignación del modelo editable en la página Diseñador de asignación de modelos y verifique que la expresión configurada JoinedList pueda consultarse.
Observe que se produce un error de validación, porque la expresión del origen de datos Vendor.FilteredTrans no se puede traducir a la llamada SQL directa. Además, la llamada SQL directa no permite la llamada al origen de datos JoinedList que se traducirá a la sentencia SQL directa.
La siguiente ilustración muestra el error de runtime que se produce si ignora la advertencia y selecciona Ejecutar para ejecutar un formato que esté configurado para usar la asignación del modelo.
Resolución automática
No hay ninguna opción disponible para solucionar este problema automáticamente.
Resolución manual
Opción 1
Cambie la expresión del origen de datos Vendor.FilteredTrans de WHERE(Trans, Trans.AccountNum=Vendor.AccountNum)
de vuelta a FILTER(Trans, Trans.AccountNum=Vendor.AccountNum)
, como aconsejaba la advertencia.
Opción 2
Cambie el valor del campo Ejecutar para el origen de datos JoinedList de Consulta a En memoria. No recomendamos que cambie el valor para una tabla que tiene un gran volumen de datos (tabla transaccional), porque todos los registros se recuperarán y la unión ocurrirá en la memoria. Por lo tanto, este enfoque puede provocar un rendimiento deficiente. Se muestra una advertencia de validación para informarle sobre este riesgo.
Preferibilidad de la función FILTER frente a WHERE
La función ER incorporada FILTRAR se utiliza para acceder a tablas de aplicaciones, vistas o entidades de datos al realizar una sola llamada SQL para obtener los datos requeridos como una lista de registros. La función WHERE recupera todos los registros de la fuente dada y registra la selección en la memoria. Un origen de datos del tipo Lista de registros se utiliza como argumento de ambas funciones y especifica un origen para obtener registros. ER comprueba si se puede establecer una llamada SQL directa a una fuente de datos a la que se hace referencia en la función WHERE. Si no se puede establecer una llamada directa, se produce una advertencia de validación en el diseñador de mapas del modelo ER. El mensaje que recibe recomienda que utilice la función FILTER en lugar de la función WHERE para ayudar a mejorar la eficiencia.
Los siguientes pasos muestran cómo puede ocurrir este problema.
Comience a configurar el componente de asignación del modelo ER.
Agregue un origen de datos del tipo Dynamics 365 for Operations \ Registros de tabla.
Nombre el nuevo origen de datos Trans. En el campo Tabla, seleccione VendTrans para especificar que este origen de datos solicitará la tabla VendTrans.
Agregue una fuente de datos del tipo Campo calculado como el campo anidado del origen de datos Proveedor.
Nombre el nuevo origen de datos FilteredTrans y configúrelo para que contenga la expresión
WHERE(Trans, Trans.AccountNum="US-101")
.Agregue un origen de datos del tipo Dynamics 365 for Operations \ Registros de tabla.
Asigne un origen de datos nuevo Proveedor. En el campo Tabla, seleccione VendTable para especificar que este origen de datos solicitará la tabla VendTable.
Agregue un origen de datos del tipo Campo calculado.
Nombre el nuevo origen de datos FilteredVendor y configúrelo para que contenga la expresión
WHERE(Vendor, Vendor.AccountNum="US-101")
.Seleccione Validar para inspeccionar el componente de asignación del modelo editable en la página Diseñador de asignación de modelos.
Tenga en cuenta que las advertencias de validación recomiendan que utilice la función FILTER en lugar de la función WHERE para los orígenes de datos FilteredVendor y FilteredTrans fuentes de datos.
Resolución automática
Seleccione Reparar para reemplazar automáticamente la función WHERE con la función FILTER en la expresión de todos los orígenes de datos que aparecen en la cuadrícula en la pestaña Advertencias para este tipo de inspección.
Alternativamente, puede seleccionar la fila para una sola advertencia en la cuadrícula y luego seleccionar Reparar seleccionado. En este caso, la expresión se cambia automáticamente solo en el origen de datos que se menciona en la advertencia seleccionada.
Resolución manual
Puede ajustar manualmente las expresiones de todos los orígenes de datos en la cuadrícula de validación reemplazando la función WHERE con la función FILTER.
Preferibilidad de la función ALLITEMSQUERY vs ALLITEMS
Las funciones integradas ALLITEMS y ALLITEMSQUERY de ER recuperan un valor aplanado de Lista de registros que consta de una lista de registros que representan todos los elementos que coinciden con la ruta especificada. ER comprueba si se puede establecer una llamada SQL directa a una fuente de datos a la que se hace referencia en la función ALLITEMS. Si no se puede establecer una llamada directa, se produce una advertencia de validación en el diseñador de mapas del modelo ER. El mensaje que recibe recomienda que utilice la función ALLITEMSQUERY en lugar de la función ALLITEMS para ayudar a mejorar la eficiencia.
Los siguientes pasos muestran cómo puede ocurrir este problema.
Comience a configurar el componente de asignación del modelo ER.
Agregue un origen de datos del tipo Dynamics 365 for Operations \ Registros de tabla.
Asigne un origen de datos nuevo Proveedor. En el campo Tabla, seleccione VendTable para especificar que este origen de datos solicitará la tabla VendTable.
Agregue un origen de datos del tipo Campo calculado para obtener registros de varios proveedores.
Nombre el nuevo origen de datos FilteredVendor y configúrelo para que contenga la expresión
FILTER(Vendor, OR(Vendor.AccountNum="US-101",Vendor.AccountNum="US-102"))
.Agregue un origen de datos del tipo Campo calculado para obtener las transacciones de todos los proveedores filtrados.
Nombre el nuevo origen de datos FilteredVendorTrans y configúrelo para que contenga la expresión
ALLITEMS(FilteredVendor.'<Relations'.'VendTrans.VendTable_AccountNum')
.Seleccione Validar para inspeccionar el componente de asignación del modelo editable en la página Diseñador de asignación de modelos.
Observe que se produce una advertencia de validación. El mensaje recomienda que utilice la función ALLITEMSQUERY en lugar de la función ALLITEMS función para el origen de datos FilteredVendorTrans.
Resolución automática
Seleccione Reparar para reemplazar automáticamente la función ALLITEMS con la función ALLITEMSQUERY en la expresión de todos los orígenes de datos que aparecen en la cuadrícula en la pestaña Advertencias para este tipo de inspección.
Alternativamente, puede seleccionar la fila para una sola advertencia en la cuadrícula y luego seleccionar Reparar seleccionado. En este caso, la expresión se cambia automáticamente solo en el origen de datos que se menciona en la advertencia seleccionada.
Resolución manual
Puede ajustar manualmente las expresiones de todos los orígenes de datos que se mencionan en la cuadrícula de validación reemplazando la función ALLITEMS con la función ALLITEMSQUERY.
Consideración de casos de lista vacía
Puede configurar su componente de asignación de modelo o formato ER para obtener el valor de campo de una fuente de datos del tipo Lista de registros. ER verifica si su diseño considera el caso en el que una fuente de datos que se llama no contiene registros (es decir, está vacía), para evitar errores de tiempo de ejecución cuando se obtiene un valor de un campo de un registro inexistente.
Los siguientes pasos muestran cómo puede ocurrir este problema.
Comience a configurar los componentes del modelo de datos ER, de asignación del modelo ER y el formato ER simultáneamente.
En el árbol del modelo de datos, agregue un elemento raíz que se llame Root3.
Modifique el elemento Root3 agregando un elemento anidado del tipo Lista de registros.
Nombre el nuevo elemento anidado Proveedor.
Modifique el elemento Proveedor de la siguiente manera:
- Agregue un campo anidado del tipo Cadena y nómbrelo Nombre.
- Agregue un campo anidado del tipo Cadena y nómbrelo AccountNumber.
En el diseñador de asignación de modelos, en el panel Orígenes de datos, agregue un origen de datos al tipo Dynamics 365 for Operations \ Registros de tabla.
Asigne un origen de datos nuevo Proveedor. En el campo Tabla, seleccione VendTable para especificar que este origen de datos solicitará la tabla VendTable.
Agregue un origen de datos del tipo General \ Parámetro de entrada de usuario para buscar una cuenta de proveedor en el cuadro de diálogo de runtime.
Asigne un origen de datos nuevo RequestedAccountNum. En el campo Etiqueta, introduzca el Número de cuenta del proveedor. En el campo Nombre del tipo de datos de operaciones, deje el valor predeterminado, Descripción.
Agregue un origen de datos del tipo Campo calculado para filtrar un proveedor al que se consulte.
Nombre el nuevo origen de datos FilteredVendor y configúrelo para que contenga la expresión
FILTER(Vendor, Vendor.AccountNum=RequestedAccountNum)
.Vincule los elementos del modelo de datos a los orígenes de datos configurados de la siguiente manera:
- Enlazar FilteredVendor a Proveedor.
- Enlazar FilteredVendor.AccountNum a Vendor.AccountNumber.
- Enlazar FilteredVendor.'name()' a Vendor.Name.
En el árbol de estructura de formato, agregue los siguientes elementos para generar un documento saliente en formato XML que contenga los detalles del proveedor:
Agregue el elemento XML raíz Instrucción.
Para el elemento XML Instrucción, agregue el elemento XML anidado Entidad.
Para el elemento XML Entidad, agregue los siguientes atributos XML anidados:
- Nombre
- AccountNum
Vincule elementos de formato a los orígenes de datos proporcionados de la siguiente manera:
- Vincule el elemento de formato Instrucción\Entidad\Nombre al campo de origen de datos model.Vendor.Name.
- Vincule el elemento de formato Instrucción\Entidad\AccountNum al campo de origen de datos model.Vendor.AccountNumber.
Seleccione Validar para inspeccionar el componente de formato editable en la página Diseñador de formato.
Observe que se produce un error de validación. El mensaje indica que se puede generar un error para el formato configurado de los componentes Instrucción\Entidad\Nombre e Instrucción\Entidad\AccountNum en runtime si la lista
model.Vendor
esta vacía.
La siguiente ilustración muestra el error de runtime que se produce si ignora la advertencia, selecciona Ejecutar para ejecutar el formato y seleccione el número de cuenta de un proveedor inexistente. Como el proveedor solicitado no existe, la lista model.Vendor
estará vacía (es decir, no contendrá registros).
Resolución automática
Para la fila seleccionada en la cuadrícula en la pestaña Advertencias, puede seleccionar Desvincular. El enlace que se señala en la columna Ruta se elimina automáticamente de los elementos de formato.
Resolución manual
Opción 1
Puede vincular el elemento de formato Instrucción\Entidad\Nombre al elemento de origen de datos model.Vendor
. En runtime, este enlace llama primero al origen de datos model.Vendor
. Cuando model.Vendor
devuelve una lista de registros vacía, los elementos de formato anidados no se ejecutan. Por lo tanto, no se producen advertencias de validación para esta configuración de formato.
Opción 2
Cambiar el enlace del elemento de formato Instrucción\Entidad\Nombre de model.Vendor.Name
a FIRSTORNULL(model.Vendor).Name
. El enlace actualizado convierte condicionalmente el primer registro del origen de datos model.Vendor
del tipo Lista de registros a un nuevo origen de datos del tipo Registro. Este origen de datos nuevo contiene el mismo conjunto de campos.
- Si al menos un registro está disponible en el origen de datos
model.Vendor
, los campos de ese registro se llenan con los valores de los campos del primer registro del origen de datosmodel.Vendor
. En este caso, el enlace actualizado devuelve el nombre del proveedor. - De lo contrario, cada campo del registro que se crea se completa con el valor predeterminado para el tipo de datos de ese campo. En este caso, la cadena en blanco se devuelve como el valor predeterminado del tipo de datos Cadena.
Por lo tanto, no se producen advertencias de validación para el elemento de formato Instrucción\Entidad\Nombre cuando está vinculado a la expresión FIRSTORNULL(model.Vendor).Name
.
Opción 3
Si desea especificar explícitamente los datos que se introducen en un documento generado cuando el origen de datos model.Vendor
del tipo Lista de registros no devuelve registros (el texto No disponible en este ejemplo), cambie el enlace del elemento de formato Instrucción\Entidad\Nombre de model.Vendor.Name
a IF(NOT(ISEMPTY(model.Vendor)), model.Vendor.Name, "Not available")
. También puedes usar la expresión IF(COUNT(model.Vendor)=0, model.Vendor.Name, "Not available")
.
Consideración adicional
La inspección también le advierte sobre otro problema potencial. De forma predeterminada, al vincular los elementos de formato Instrucción\Entidad\Nombre e Instrucción\Entidad\AccountNum a los campos apropiados del origen de datos model.Vendor
del tipo Lista de registros, esos enlaces se ejecutarán y tomarán los valores de los campos apropiados del primer registro del origen de datos model.Vendor
, si esa lista no está vacía.
Como no ha vinculado el elemento de formato Instrucción\Entidad con el origen de datos model.Vendor
, el elemento Instrucción\Entidad no se iterará para cada registro del origen de datos model.Vendor
durante la ejecución del formato. En cambio, un documento generado se llenará con información solo del primer registro de la lista de registros, si esa lista contiene varios registros. Por lo tanto, puede haber un problema si el formato está destinado a llenar un documento generado con información sobre todos los proveedores del origen de datos model.Vendor
. Para solucionar este problema, vincule el elemento Instrucción\Entidad con el origen de datos model.Vendor
.
Ejecutabilidad de una expresión con función FILTER (caché)
Varias funciones ER integradas, incluyendo FILTER y ALLITEMSQUERY se utilizan para acceder a tablas de aplicaciones, vistas o entidades de datos al realizar una sola llamada SQL para obtener los datos requeridos como una lista de registros. Un origen de datos del tipo Lista de registros se utiliza como argumento de cada una de estas funciones y especifica el origen de una aplicación para la llamada. ER comprueba si se puede establecer una llamada SQL directa a una fuente de datos a la que se hace referencia en una de estas funciones. Si no se puede establecer una llamada directa porque el origen de datos estaba marcado como caché, se produce un error de validación en el asignador de modelo ER. El mensaje que recibe indica que la expresión ER que contiene una de estas funciones no se puede ejecutar en runtime.
Los siguientes pasos muestran cómo puede ocurrir este problema.
Comience a configurar el componente de asignación del modelo ER.
Agregue un origen de datos del tipo Dynamics 365 for Operations \ Registros de tabla.
Asigne un origen de datos nuevo Proveedor. En el campo Tabla, seleccione VendTable para especificar que este origen de datos solicitará la tabla VendTable.
Agregue un origen de datos del tipo General \ Parámetro de entrada de usuario para buscar una cuenta de proveedor en el cuadro de diálogo de runtime.
Asigne un origen de datos nuevo RequestedAccountNum. En el campo Etiqueta, introduzca el Número de cuenta del proveedor. En el campo Nombre del tipo de datos de operaciones, deje el valor predeterminado, Descripción.
Agregue un origen de datos del tipo Campo calculado para filtrar un proveedor al que se consulte.
Nombre el nuevo origen de datos FilteredVendor y configúrelo para que contenga la expresión
FILTER(Vendor, Vendor.AccountNum=RequestedAccountNum)
.Marca el origen de datos configurado Proveedor como en caché.
Seleccione Validar para inspeccionar el componente de asignación del modelo editable en la página Diseñador de asignación de modelos.
Observe que se produce un error de validación. El mensaje dice que la función FILTER no se puede aplicar al origen de datos Proveedor en caché.
La siguiente ilustración muestra el error de runtime que se produce si ignora la advertencia y selecciona Ejecutar para ejecutar el formato.
Resolución automática
No hay ninguna opción disponible para solucionar este problema automáticamente.
Resolución manual
Opción 1
Eliminar la etiqueta Caché del origen de datos Proveedor. El origen de datos FilteredVendor se volverá ejecutable, pero el origen de datos Proveedor al que se hace referencia en la tabla VendTable se accederá cada vez que se llame al origen de datos FilteredVendor.
Opción 2
Cambiar la expresión del origen de datos FilteredVendor de FILTER(Vendor, Vendor.AccountNum="US-101")
a WHERE(Vendor, Vendor.AccountNum="US-101")
. En este caso, el origen de datos Proveedor al que se referencia en la tabla VendTable se accederá solo durante la primera llamada al origen de datos Proveedor. Sin embargo, la selección de registros se hará en memoria. Por lo tanto, este enfoque puede provocar un rendimiento deficiente.
Falta enlace
Cuando configura un componente de formato ER, el modelo de datos ER base se ofrece como origen de datos predeterminado para el formato ER. Cuando se ejecuta el formato ER configurado, la asignación de modelo predeterminado para el modelo base se utiliza para llenar el modelo de datos con datos de aplicación. El diseñador de formato de ER muestra una advertencia si vincula un elemento de formato a un elemento de modelo de datos que no está vinculado a ningún origen de datos en la asignación de modelo que está seleccionada actualmente como asignación de modelo predeterminado para el formato editable. Este tipo de enlace no se puede ejecutar en runtime, porque el formato que se ejecuta no puede llenar un elemento enlazado con datos de la aplicación. Por lo tanto, se produce un error en runtime.
Los siguientes pasos muestran cómo puede ocurrir este problema.
Comience a configurar los componentes del modelo de datos ER, de asignación del modelo ER y el formato ER simultáneamente.
En el árbol del modelo de datos, agregue un elemento raíz que se llame Root3.
Modifique el elemento Root3 agregando un nuevo elemento anidado del tipo Lista de registros.
Nombre el nuevo elemento anidado Proveedor.
Modifique el elemento Proveedor de la siguiente manera:
- Agregue un campo anidado del tipo Cadena y nómbrelo Nombre.
- Agregue un campo anidado del tipo Cadena y nómbrelo AccountNumber.
En el diseñador de asignación de modelos, en el panel Orígenes de datos, agregue un origen de datos al tipo Dynamics 365 for Operations \ Registros de tabla.
Asigne un origen de datos nuevo Proveedor. En el campo Tabla, seleccione VendTable para especificar que este origen de datos solicitará la tabla VendTable.
Agregue un origen de datos del tipo General \ Parámetro de entrada de usuario para buscar una cuenta de proveedor en el cuadro de diálogo de runtime.
Asigne un origen de datos nuevo RequestedAccountNum. En el campo Etiqueta, introduzca el Número de cuenta del proveedor. En el campo Nombre del tipo de datos de operaciones, deje el valor predeterminado, Descripción.
Agregue un origen de datos del tipo Campo calculado para filtrar un proveedor al que se consulte.
Nombre el nuevo origen de datos FilteredVendor y configúrelo para que contenga la expresión
FILTER(Vendor, Vendor.AccountNum=RequestedAccountNum)
.Vincule los elementos del modelo de datos a los orígenes de datos configurados de la siguiente manera:
- Enlazar FilteredVendor a Proveedor.
- Enlazar FilteredVendor.AccountNum a Vendor.AccountNumber.
Nota
El campo Vendor.Name del modelo de datos permanece sin consolidar.
En el árbol de estructura de formato, agregue los siguientes elementos para generar un documento saliente en formato XML que contenga los detalles de los proveedores consultados:
Agregue el elemento XML raíz Instrucción.
Para el elemento XML Instrucción, agregue el elemento XML anidado Entidad.
Para el elemento XML Entidad, agregue los siguientes atributos XML anidados:
- Nombre
- AccountNum
Vincule los elementos de formato a los orígenes de datos proporcionados de la siguiente manera:
- Vincule el elemento de formato Instrucción\Entidad al elemento de origen de datos
model.Vendor
. - Vincule el elemento de formato Instrucción\Entidad\Nombre al campo de origen de datos model.Vendor.Name.
- Vincule el elemento de formato Instrucción\Entidad\AccountNum al campo de origen de datos model.Vendor.AccountNumber.
- Vincule el elemento de formato Instrucción\Entidad al elemento de origen de datos
Seleccione Validar para inspeccionar el componente de formato editable en la página Diseñador de formato.
Observe que se produce una advertencia de validación. El mensaje dice que el campo del origen de datos model.Vendor.Name no está vinculado a ningún origen de datos en la asignación del modelo que está configurado para ser utilizado por el formato. Por lo tanto, el elemento de formato Instrucción\Entidad\Nombre es posible que el elemento de formato no se complete en runtime y que se produzca una excepción en runtime.
La siguiente ilustración muestra el error de runtime que se produce si ignora la advertencia y selecciona Ejecutar para ejecutar el formato.
Resolución automática
No hay ninguna opción disponible para solucionar este problema automáticamente.
Resolución manual
Opción 1
Modifique la asignación del modelo configurado agregando un enlace para el campo model.Vendor.Name del origen de datos.
Opción 2
Modifique el formato configurado eliminando el enlace para el elemento de formato Instrucción\Entidad\Nombre.
Plantilla no vinculada
Cuando usted configura manualmente un componente de formato ER para usar una plantilla para generar un documento saliente, debe agregar manualmente el elemento Excel\Archivo, agregue la plantilla requerida como un adjunto del componente editable y seleccione ese adjunto en el elemento Excel\Archivo agregado. De esta manera, indicas que el elemento agregado llenará la plantilla seleccionada en runtime. Cuando configura una versión de componente de formato en estado, Borrador puede agregar varias plantillas al componente editable y luego seleccionar cada plantilla en el elemento Excel\Archivo para ejecutar el formato ER. De esta manera, puede ver cómo se llenan las diferentes plantillas en runtime. Si tiene plantillas que no están seleccionadas en ningún elemento Excel\Archivo, el diseñador de formato ER le advierte que esas plantillas se eliminarán de la versión editable del componente de formato ER cuando su estado cambie de Borrador a Terminado.
Los siguientes pasos muestran cómo puede ocurrir este problema.
Comience a configurar el componente de formato ER.
En el árbol de estructura de formato, agregue el elemento Excel\Archivo.
Para el elemento Excel\Archivo que acaba de agregar, agregue un archivo de libro de Excel, A.xlsx, como archivo adjunto. Utilice el tipo de documento que está configurado en los Parámetros de ER para especificar el almacenamiento de plantillas de formato ER.
Para el elemento Excel\Archivo agregue otro archivo de libro de Excel, B.xlsx, como archivo adjunto. Utilice el mismo tipo de documento que se utiliza para el archivo de libro A.
En el elemento Excel\Archivo, seleccione el archivo de libro A.
Seleccione Validar para inspeccionar el componente de formato editable en la página Diseñador de formato.
Observe que se produce una advertencia de validación. El mensaje indica que el archivo del libro B.xlsx no está vinculado a ningún componente y que se eliminará después de que se cambie el estado de la versión de configuración.
Resolución automática
No hay ninguna opción disponible para solucionar este problema automáticamente.
Resolución manual
Modifique el formato configurado eliminando todas las plantillas que no están vinculadas a ningún elemento Excel\Archivo.
Formato no sincronizado
Cuando usted configura un componente de formato ER para usar una plantilla Excel para generar un documento saliente, puede agregar manualmente el elemento Excel\Archivo, agregue la plantilla requerida como un adjunto del componente editable y seleccione ese adjunto en el elemento Excel\Archivo agregado. De esta manera, indicas que el elemento agregado llenará la plantilla seleccionada en runtime. Debido a que la plantilla de Excel agregada se ha diseñado externamente, el formato ER editable puede contener nombres de Excel que faltan en la plantilla agregada. El diseñador de formato ER le advierte sobre cualquier inconsistencia entre las propiedades de los elementos del formato ER que se refieren a nombres que no están incluidos en la plantilla de Excel agregada.
Los siguientes pasos muestran cómo puede ocurrir este problema.
Comience a configurar el componente de formato ER.
En el árbol de estructura de formato, agregue el elemento de Excel\ArchivoInforme.
Para el elemento Excel\Archivo que acaba de agregar, agregue un archivo de libro de Excel, A.xlsx, como archivo adjunto. Utilice el tipo de documento que está configurado en los Parámetros de ER para especificar el almacenamiento de plantillas de formato ER.
Importante
Asegúrese de que el libro de Excel agregado no contenga el nombre ReportTitle.
Agregue el siguiente Título de elemento Excel\Celda como elemento anidado del elemento Informe. En el campo Intervalo de Excel, introduzca ReportTitle.
Seleccione Validar para inspeccionar el componente de formato editable en la página Diseñador de formato.
Observe que se produce una advertencia de validación. El mensaje dice que el nombre ReportTitle no existe en la hoja Hoja1 de la plantilla de Excel que está utilizando.
Resolución automática
No hay ninguna opción disponible para solucionar este problema automáticamente.
Resolución manual
Opción 1
Modifique el formato configurado eliminando todos los elementos que hacen referencia a los nombres de Excel que faltan en la plantilla.
Opción 2
Actualizar el formato ER editable mediante la importación de una plantilla de Excel. La estructura del formato ER editable se sincronizará con la estructura de la plantilla de Excel importada.
Consideración adicional
Para saber cómo se puede sincronizar la estructura del formato con una plantilla de ER en el editor de plantillas de Gestión de documentos empresariales, ver Actualizar la estructura de una plantilla de documento empresarial.
No sincronizado con un formato de plantilla de Word
Cuando usted configura un componente de formato ER para usar una plantilla de Word para generar un documento saliente, puede agregar manualmente el elemento Excel\Archivo, agregar la plantilla de Word requerida como un adjunto del componente editable y seleccionar ese adjunto en el elemento Excel\Archivo agregado.
Nota
Cuando se adjunta el documento de Word, el diseñador de formato ER presenta el elemento editable como Palabra\Archivo.
De esta manera, indicas que el elemento agregado llenará la plantilla seleccionada en runtime. Debido a que la plantilla de Word se ha diseñado externamente, el formato ER editable puede contener referencias a controles de contenido de Word que faltan en la plantilla agregada. El diseñador de formato ER le advierte sobre cualquier incoherencia entre las propiedades de los elementos del formato ER que se refieren a controles de contenido que no están incluidos en la plantilla de Word agregada.
Para ver un ejemplo que muestra cómo puede ocurrir este problema, consulte Configurar el formato editable para suprimir la sección de resumen.
Resolución automática
No hay ninguna opción disponible para solucionar este problema automáticamente.
Resolución manual
Opción 1
Modifique el formato configurado eliminando la fórmula Eliminado del elemento de formato que se menciona en la advertencia de validación.
Opción 2
Modifique la plantilla de Word agregando la etiqueta requerida para el control de contenido de Word relevante.
Sin asignación predeterminada
Cuando se realiza la inspección Enlace que falta, los enlaces de formato inspeccionados se evalúan frente a los enlaces del componente de asignación de modelo relevante. Como puede importar diversas configuraciones de asignación de modelos de ER a su instancia de Finance, y cada configuración puede contener el componente de asignación de modelos aplicable, se debe seleccionar una configuración como la configuración predeterminada. De lo contrario, cuando intente ejecutar, editar o validar el formato de ER inspeccionado, se producirá una excepción y recibirá el siguiente mensaje: "Existe más de una asignación de modelo para el <model name (root descriptor)> modelo de datos en las configuraciones <configuration names separated by comma>. Establezca una de las configuraciones como predeterminada".
Para ver un ejemplo que muestra cómo puede ocurrir este problema y cómo se puede solucionar, consulte Gestionar varias asignaciones derivadas para una única raíz de modelo.
Configuración incoherente de los componentes de encabezado o pie de página
Cuando usted configura un componente de formato ER para usar una plantilla de Excel para generar un documento saliente, puede agregar el componente Excel\Encabezamiento para completar los encabezados en la parte superior de una hoja de cálculo en un libro de Excel. También puede agregar el componente Excel\Pie de página para rellenar pies de página en la parte inferior de una hoja de cálculo. Para cada componente Excel\Encabezamiento o Excel\Pie de página componente que agregue, debe establecer la propiedad Apariencia del encabezado/pie de página para especificar las páginas para las que se ejecuta el componente. Porque puede configurar varios componentes Excel\Encabezamiento o Excel\Pie de página para un solo componente Hoja, y puede generar diferentes encabezados o pies de página para diferentes tipos de páginas en una hoja de cálculo de Excel, debe configurar un único componente Excel\Encabezamiento o Excel\Pie de página para un valor específico de la propiedaad Apariencia del encabezado/pie de página. Si se configura más de un componente Excel\Encabezamiento o Excel\Pie de página para un valor específico de la propiedad Apariencia del encabezado/pie de página, se produce un error de validación y recibe el siguiente mensaje de error: "Encabezados/pies de página (<tipo de componente: encabezado o pie de página>) incoherentes".
Resolución automática
No hay ninguna opción disponible para solucionar este problema automáticamente.
Resolución manual
Opción 1
Modifique el formato configurado eliminando uno de los componentes incoherentes Excel\Encabezamiento o Excel\Pie de página.
Opción 2
Modifique el valor de la propiedad Apariencia del encabezado/pie de página para uno de los componentes incoherentes Excel\Encabezamiento o Excel\Pie de página.
Configuración incoherente del componente de página
Al configurar un componente de formato ER para usar una plantilla de Excel para generar un documento saliente, puede agregar el componente Excel\Página para paginar un documento generado mediante el uso de fórmulas de ER. Para cada componente Excel\Página que agregue, puede agregar muchos componentes Rango y seguirá la compatibilidad con la siguiente estructura:
- El primer componente Rango anidado se puede configurar para que la propiedad Dirección de replicación esté establecida en Sin replicación. Este rango se utiliza para crear encabezados de página en documentos generados.
- Puede agregar muchos otros componentes Rango en los que la propiedad Dirección de replicación está establecida en Vertical. Estos rangos se utilizan para rellenar los documentos generados.
- El último componente Rango anidado se puede configurar para que la propiedad Dirección de replicación esté establecida en Sin replicación. Este rango se utiliza para crear pies de página en documentos generados y para agregar los saltos de página necesarios.
Si no sigue esta estructura para un formato ER en el diseñador de formato ER en tiempo de diseño, se produce un error de validación y se recibe el siguiente mensaje de error: "Hay más de dos componentes de rango sin replicación. Elimine los componentes innecesarios".
Resolución automática
No hay ninguna opción disponible para solucionar este problema automáticamente.
Resolución manual
Opción 1
Modifique el formato configurado cambiando la propiedad Dirección de replicación para todos los componentes Excel\Rango incoherentes.
Ejecutabilidad de una expresión con función ORDERBY
La función de ER incorporada ORDERBY se utiliza para ordenar los registros de una fuente de datos ER del tipo Lista de registros que se especifica como argumento de la función.
Los argumetnos de la función ORDERBY
se pueden especificar para ordenar los registros de las tablas de aplicaciones, vistas o entidades de datos al realizar una sola llamada a la base de datos para obtener los datos requeridos como una lista de registros. Un origen de datos del tipo Lista de registros se utiliza como argumento de esta función y especifica el origen de la aplicación para la llamada.
ER comprueba si se puede establecer una consulta de base de datos directa a una fuente de datos a la que se hace referencia en la función ORDERBY
. Si no se puede establecer una consulta directa, se produce un error de validación en el diseñador de mapas del modelo ER. El mensaje que recibe indica que la expresión ER que incluye la función ORDERBY
no se puede ejecutar en runtime.
Los siguientes pasos muestran cómo puede ocurrir este problema.
Comience a configurar el componente de asignación del modelo ER.
Agregue un origen de datos del tipo Dynamics 365 for Operations \ Registros de tabla.
Asigne un origen de datos nuevo Proveedor. En el campo Tabla, seleccione VendTable para especificar que este origen de datos solicitará la tabla VendTable.
Agregue un origen de datos del tipo Campo calculado.
Nombre el nuevo origen de datos OrderedVendors y configúrelo para que contenga la expresión
ORDERBY("Query", Vendor, Vendor.AccountNum)
.Seleccione Validar para inspeccionar el componente de asignación del modelo editable en la página Diseñador de asignación de modelos y verifique que la expresión en el origen de datos OrderedVendors pueda consultarse en el origen de datos.
Modifique el origen de datos Proveedor agregando un campo anidado del tipo Campo calculado para obtener el número de cuenta de proveedor recortado.
Nombre el nuevo campo anidado $AccNumber y configúrelo para que contenga la expresión
TRIM(Vendor.AccountNum)
.Seleccione Validar para inspeccionar el componente de asignación del modelo editable en la página Diseñador de asignación de modelos y verifique que la expresión en el origen de datos Proveedor pueda consultarse en el origen de datos.
Observe que se produce un error de validación, porque el origen de datos Proveedor contiene un campo anidado del tipo Campo calculado que no permite la expresión del origen de datos OrderedVendors se traduzca a la instrucción de base de datos directa. El mismo error ocurre en tiempo de ejecución si ignora el error de validación y selecciona Ejecutar para ejecutar este mapeo de modelo.
Resolución automática
No hay ninguna opción disponible para solucionar este problema automáticamente.
Resolución manual
Opción 1
En lugar de agregar un campo anidado del tipo Campo calculado al origen de datos Proveedor datos, agregue el campo anidado $AccNumber al origen de datos FilteredVendors y configúrelo para que contenga la expresión TRIM(FilteredVendor.AccountNum)
. De esta manera, la expresión ORDERBY("Query", Vendor, Vendor.AccountNum)
se puede ejecutar en el nivel de base de datos y el cálculo del campo anidado $AccNumber se puede hacer después.
Opción 2
Cambiar la expresión del origen de datos FilteredVendors de ORDERBY("Query", Vendor, Vendor.AccountNum)
a ORDERBY("InMemory", Vendor, Vendor.AccountNum)
. No recomendamos que cambie la expresión para una tabla que tiene un gran volumen de datos (tabla transaccional), porque todos los registros se recuperarán y la ordenación de los registros necesarios se realizará en la memoria. Por lo tanto, este enfoque puede provocar un rendimiento deficiente.
Artefacto de aplicación obsoleta
Cuando diseña un componente de asignación de modelo de ER o un componente de formato de ER, puede configurar una expresión de ER para llamar a un artefacto de aplicación en ER, como una tabla de base de datos, un método de una clase, etc. En Finance versión 10.0.30 y posteriores, puede obligar a ER a que le advierta que el artefacto de aplicación referido está marcado en el código fuente como obsoleto. Esta advertencia puede ser útil porque, por lo general, los artefactos obsoletos finalmente se eliminan del código fuente. Estar informado sobre el estado de un artefacto puede evitar que use el artefacto obsoleto en el componente de ER editable antes de eliminarlo del código fuente, lo que ayuda a evitar errores al llamar a artefactos de aplicaciones no existentes desde un componente de ER en tiempo de ejecución.
Habilite la característica Validar elementos obsoletos de fuentes de datos de informes electrónicos en el espacio de trabajo Gestión de características para comenzar a evaluar el atributo obsoleto de los artefactos de la aplicación durante la inspección de un componente ER editable. El atributo obsoleto se evalúa actualmente para los siguientes tipos de artefactos de aplicación:
- Tabla de base de datos
- Campo de una tabla
- Método de una tabla
- Clase de aplicación
- Método de una clase
Nota
Se produce una advertencia durante la inspección del componente de ER editable para una fuente de datos que hace referencia a un artefacto obsoleto solo cuando esta fuente de datos se usa en al menos un enlace de este componente de ER.
Sugerencia
Cuando la clase SysObsoleteAttribute se utiliza para notificar al compilador que emita mensajes de advertencia en lugar de errores, la advertencia de inspección presenta la advertencia especificada en el código fuente en tiempo de diseño en la ficha desplegable Detalles en el diseñador de asignación de modelos o la página diseñador de formato.
La siguiente ilustración muestra la advertencia de validación que se produce cuando el campo obsoleto DEL_Email
de la tabla de aplicación CompanyInfo
está vinculada a un campo de modelo de datos utilizando el configurado origen de datos company
.
Resolución automática
No hay ninguna opción disponible para solucionar este problema automáticamente.
Resolución manual
Modifique la asignación o el formato del modelo configurado eliminando todos los enlaces a un origen de datos que hace referencia a un artefacto de aplicación obsoleto.
Recursos adicionales
Visión general de la gestión de documentos empresariales
Suprimir los controles de contenido de Word en los informes generados
Gestionar varias asignaciones derivadas para una única raíz del modelo