Sistema de composición de datos
Este artículo explica por qué un informe generado utilizando el sistema de composición de datos puede mostrar saldos incorrectos.
No hay campos de período principal en la consulta
El problema puede ocurrir en el siguiente escenario: una consulta recupera el campo Recorder pero no recupera el campo SecondPeriod.
Incorrecto:
SELECT ItemAccountingBalanceAndTurnovers.Recorder, ItemAccountingBalanceAndTurnovers.Item, ItemAccountingBalanceAndTurnovers.Warehouse, ItemAccountingBalanceAndTurnovers.QuantityOpeningBalance, ItemAccountingBalanceAndTurnovers.QuantityClosingBalance, ItemAccountingBalanceAndTurnovers.QuantityTurnover FROM AccumulationRegister.ItemAccounting.BalanceAndTurnovers(, , Auto, , ) AS ItemAccountingBalanceAndTurnovers
Para estas consultas, el sistema no puede calcular los saldos correctamente.
Para solucionar el problema, agregue el campo Period a la consulta.
Correcto:
SELECT ItemAccountingBalanceAndTurnovers.Recorder, ItemAccountingBalanceAndTurnovers.SecondPeriod, ItemAccountingBalanceAndTurnovers.Item, ItemAccountingBalanceAndTurnovers.Warehouse, ItemAccountingBalanceAndTurnovers.QuantityOpeningBalance, ItemAccountingBalanceAndTurnovers.QuantityClosingBalance, ItemAccountingBalanceAndTurnovers.QuantityTurnover FROM AccumulationRegister.ItemAccounting.BalanceAndTurnovers(, , Auto, , ) AS ItemAccountingBalanceAndTurnovers
No hay campo de saldo emparejado en la consulta
El problema ocurre si la consulta recupera solo el campo de saldo de apertura o solo el campo de saldo de cierre.
Incorrecto:
SELECT ItemAccountingBalanceAndTurnovers.Recorder, ItemAccountingBalanceAndTurnovers.SecondPeriod, ItemAccountingBalanceAndTurnovers.Item, ItemAccountingBalanceAndTurnovers.Warehouse, ItemAccountingBalanceAndTurnovers.QuantityClosingBalance FROM AccumulationRegister.ItemAccounting.BalanceAndTurnovers(, , Auto, , ) AS ItemAccountingBalanceAndTurnovers
Para solucionar el problema, recupere tanto los saldos de apertura como los saldos de cierre en la consulta.
Correcto:
SELECT ItemAccountingBalanceAndTurnovers.Recorder, ItemAccountingBalanceAndTurnovers.SecondPeriod, ItemAccountingBalanceAndTurnovers.Item, ItemAccountingBalanceAndTurnovers.Warehouse, ItemAccountingBalanceAndTurnovers.QuantityOpeningBalance, ItemAccountingBalanceAndTurnovers.QuantityClosingBalance FROM AccumulationRegister.ItemAccounting.BalanceAndTurnovers(, , Auto, , ) AS ItemAccountingBalanceAndTurnovers
Los roles de campo no están llenos
El problema ocurre si los roles de campo se llenan incorrectamente. Llene los roles correctamente para los campos de período, dimensión y saldo. Los campos de período deben tener numeración continua, comenzando desde 1. Los períodos deben estar ordenados por precisión: los períodos más cortos deben tener números menores. Por ejemplo, el campo LineNumber agrega precisión al campo Recorder, por lo tanto, el número del campo LineNumber debe ser menor que el número del campo Recorder. El número del campo DayPeriod debe ser menor que el número del campo YearPeriod.
Rol de período incorrecto:

En este ejemplo, el grabador no tiene el rol de período.
Los campos de dimensión (campos cuyos saldos se calculan) deben marcarse como dimensiones. Los campos que no están marcados como dimensiones no se incluyen en el cálculo de totales por campos de saldo, lo que puede llevar a un cálculo incorrecto de los valores de saldo. Los campos no dimensionales no deben marcarse como dimensiones porque esto también puede llevar a un cálculo incorrecto de los valores de saldo.
Incorrecto:

En este ejemplo, el campo Comentario está marcado como una dimensión mientras que no es una dimensión. Y el campo Almacén no está marcado como una dimensión mientras que es una dimensión.
Los campos de saldo deben tener roles de saldo correctos. Los campos de saldo emparejados deben tener nombres de grupo de campo de saldo idénticos. Los campos de saldo que no están emparejados deben tener nombres de grupo de campo de saldo diferentes.
Ejemplo:

En este ejemplo, los campos de saldo carecen del rol de saldo y del nombre del grupo de campo de saldo.
Procesamiento incorrecto de atributos de dimensión
Los problemas descritos en esta sección ocurren cuando una consulta recupera un atributo de dimensión.
Por ejemplo, un registro tiene la dimensión Acuerdo con el atributo Contraparte y una consulta incluye el campo Acuerdo.Contraparte.
En este escenario, pueden ocurrir dos problemas:
Primero, la consulta recupera el atributo de dimensión pero no recupera la dimensión en sí, por lo tanto, los totales por campos de saldo pueden calcularse incorrectamente.
Incorrecto:
SELECT BalanceAndTurnovers.Agreement.Counterparty AS Counterparty, BalanceAndTurnovers.AmountOpeningBalance, BalanceAndTurnovers.AmountClosingBalance, BalanceAndTurnovers.AmountTurnover, BalanceAndTurnovers.Recorder, BalanceAndTurnovers.SecondPeriod FROM AccumulationRegister.Accounting.BalanceAndTurnovers(, , Auto, , ) AS BalanceAndTurnovers
Si los datos de la consulta se recuperan de tablas virtuales, los campos de dimensión cuyos atributos se recuperan en la consulta también deben recuperarse en la consulta.
Correcto:
SELECT BalanceAndTurnovers.Agreement, BalanceAndTurnovers.Agreement.Counterparty AS Counterparty, BalanceAndTurnovers.AmountOpeningBalance, BalanceAndTurnovers.AmountClosingBalance, BalanceAndTurnovers.AmountTurnover, BalanceAndTurnovers.Recorder, BalanceAndTurnovers.SecondPeriod FROM AccumulationRegister.Accounting.BalanceAndTurnovers(, , Auto, , ) AS BalanceAndTurnovers
Segundo, un campo de atributo de dimensión puede no tener especificado el campo principal. Para solucionar el problema, especifique el campo principal en el rol del campo de atributo. En el ejemplo anterior, especifique el rol de Dimensión para el campo Contraparte y especifique Acuerdo como campo principal.

Uso de dimensiones de tabla virtual que no están en la lista de selección de la consulta
El problema ocurre si una consulta utiliza una dimensión de tabla virtual pero este campo no está en la lista de selección.
Incorrecto:
SELECT ItemAccountingBalanceAndTurnovers.Recorder, ItemAccountingBalanceAndTurnovers.SecondPeriod, ItemAccountingBalanceAndTurnovers.Item, ItemAccountingBalanceAndTurnovers.QuantityOpeningBalance, ItemAccountingBalanceAndTurnovers.QuantityClosingBalance FROM AccumulationRegister.ItemAccounting.BalanceAndTurnovers(, , Auto, , ) AS ItemAccountingBalanceAndTurnovers WHERE ItemAccountingBalanceAndTurnovers.Warehouse IN (&Warehouses)
En este ejemplo, la tabla virtual proporciona saldos basados en la dimensión Almacén pero el sistema de composición de datos no está al tanto de eso.
Para solucionar el problema, asegúrese de que todas las dimensiones de tabla virtual utilizadas fuera de los parámetros de tabla estén presentes en la lista de selección.
Correcto:
SELECT ItemAccountingBalanceAndTurnovers.Recorder, ItemAccountingBalanceAndTurnovers.SecondPeriod, ItemAccountingBalanceAndTurnovers.Item, ItemAccountingBalanceAndTurnovers.Warehouse, ItemAccountingBalanceAndTurnovers.QuantityOpeningBalance, ItemAccountingBalanceAndTurnovers.QuantityClosingBalance FROM AccumulationRegister.ItemAccounting.BalanceAndTurnovers(, , Auto, , ) AS ItemAccountingBalanceAndTurnovers WHERE ItemAccountingBalanceAndTurnovers.Warehouse IN (&Warehouses)
En este ejemplo, se agrega el campo Almacén a la lista de selección y el sistema de composición de datos calculará totales basados en esta dimensión.
También correcto:
SELECT ItemAccountingBalanceAndTurnovers.Recorder, ItemAccountingBalanceAndTurnovers.SecondPeriod, ItemAccountingBalanceAndTurnovers.Item, ItemAccountingBalanceAndTurnovers.QuantityOpeningBalance, ItemAccountingBalanceAndTurnovers.QuantityClosingBalance FROM AccumulationRegister.ItemAccounting.BalanceAndTurnovers(, , Auto, , Warehouse IN (&Warehouses)) AS ItemAccountingBalanceAndTurnovers
En este ejemplo, el campo Almacén no se utiliza fuera de los parámetros de tabla virtual.
Uso de periodicidad distinta de Auto
El problema ocurre cuando se recuperan datos de la tabla virtual BalanceAndTurnovers con una periodicidad distinta de Auto si algunos de los campos de período no se muestran en el informe. Esto es similar al problema “No hay campos de período principal en la consulta” descrito al principio del artículo.
Ejemplo de una consulta que puede proporcionar saldos incorrectos:
SELECT ItemAccountingBalanceAndTurnovers.Recorder, ItemAccountingBalanceAndTurnovers.Period, ItemAccountingBalanceAndTurnovers.Item, ItemAccountingBalanceAndTurnovers.Warehouse, ItemAccountingBalanceAndTurnovers.QuantityOpeningBalance, ItemAccountingBalanceAndTurnovers.QuantityClosingBalance, ItemAccountingBalanceAndTurnovers.QuantityTurnover FROM AccumulationRegister.ItemAccounting.BalanceAndTurnovers(, , Recorder, , ) AS ItemAccountingBalanceAndTurnovers
Para solucionar el problema, use la periodicidad Auto en las tablas virtuales BalanceAndTurnovers de los informes personalizables del sistema de composición de datos. Alternativamente, asegúrese de que todos los campos de período se muestren en el informe.
Ejemplo de consulta:
SELECT ItemAccountingBalanceAndTurnovers.Recorder, ItemAccountingBalanceAndTurnovers.SecondPeriod, ItemAccountingBalanceAndTurnovers.Item, ItemAccountingBalanceAndTurnovers.Warehouse, ItemAccountingBalanceAndTurnovers.QuantityOpeningBalance, ItemAccountingBalanceAndTurnovers.QuantityClosingBalance, ItemAccountingBalanceAndTurnovers.QuantityTurnover FROM AccumulationRegister.ItemAccounting.BalanceAndTurnovers(, , Auto, , ) AS ItemAccountingBalanceAndTurnovers
Uso de la periodicidad Semana junto con periodicidades más largas
El problema no ocurre a nivel del esquema de composición de datos, sino a nivel de la configuración de composición. Por ejemplo, ocurre si se muestran agrupaciones por mes y semana en el informe. Solución: no utilice periodicidades más largas que Semana junto con la periodicidad Semana.


