Ayuda sobre productos BOLD:
Formato XML del objeto informe de tabla dinámica
Este informe tiene el código EnumAdvancedReport (también denominado a veces informe avanzado).
Campos principales
Además de los campos habituales en la importación de objetos del sistema (ver Campos XML std., los campos mas destacados son los siguientes:
ExtCode: este campo es imprescindible rellenarlo con un nombre que sea un identificador valido (comienza por una letra, sin espacios ni caracteres especiales). Se utiliza para etiquetar los nodos del documento XML de salida.
DataInputType: origen de los datos de entrada con los que se alimentará el informe. Los tipos posibles son los siguientes:
0 - Otro informe estándard del sistema 1 - Una consulta SQL 2 - Iterator_Task_ForPlanTasks Períodos planificados individuales (cada una de las tareas del plan). Objetos de tipo TaskContextObject con todas sus propiedades asociadas. 3 - IterBased_ByAccumulatedByNeedIncidence Períodos planificados agrupados por días (períodos del plan agrupados por jornadas y tipo de actividad realiza en ellas. También son objetos de tipo TaskContextObject. 4 - Sobre el iterador Iterator_ByDay_ForPlanTasks 5 - Sobre el iterador Iterator_TasksAndEmptyDays_ForPlanTasks 6 - Sobre el iterador Iterator_ByDayAndEmptyDays_ForPlanTasks
ReportClass: (reservado) cuando el origen de datos sea un informe nativo del sistema, indicará el tipo de informe
EnableAggregationStep: indica si esta definición de informe contempla la fase de agregación (lo normal) o bien únicamente incluye el procesado de los atributos calculados que se hayan podido añadir a los datos de entrada y eso será directamente la salida, sin agregación (como un informe de los nativos, pero configurado desde un objeto de informe en lugar de a través del querycustom.xml). Utilizando Input_Axis.
Parent: reservado
X_Axis: eje X u horizontal de agregación. Los resultados del informe se mostrarán en formato tabla agrupando los resultados según dos ejes X e Y en los que se definen campos clave de agregación de tal forma que a todos los registros que cumplan las condiciones de la clave se les aplicará la misma función de agregación.
Y_Axis: eje Y o vertical.
Cells: eje de agregación o cálculo
Los tres nodos o campos anteriores definen los siguientes subcampos:
- Name: nombre interno del campo
- ShowName: nombre a mostrar para el campo (título de la columna o fila)
- Type: tipo de datos del campo. Los valores posibles se pueden consultar en la tabla de Tipos de datos.
- Expression: expresión que determina el valor que le corresponde al objeto fila actual
- ShowFormat: expresión que configura cómo se mostrará en valor interno en pantalla.
- ShowType: tipo del valor a mostrar en pantalla
- ReverseShowFormat: función opcional para recuperar el valor interno a partir del valor mostrado en pantalla (inversa de Expression). Debe existir una correspondencia 1-1 entre ambos valores. Esta función es necesaria para recuperar de nuevo las filas de detalle a partir de los datos mostrados en el resultado del informe.
Además, los nodos de tipo Cells añaden los siguiente atributos:
- EnumAggrFunc: función de agregación a aplicar sobre cada valor. Es un valor enumerado. Ver tabla anterior.
- 1 Suma
- 2 Máximo
- 3 Mínimo
- 4 Cuenta
- Input_Axis: permite definir columnas adicionales sobre los datos de entrada que podrán reutilizarse como variables e las expresiones de agregación.
- Output_Axis: permite definir columnas adicionales que formarán parte de los datos agregados y que pueden utilizar estos datos agregados como variables para su cálculo. El contexto sería de evaluación de estas expresiones sería la clave de agregación y las dimensiones de agregación que se hayan definido.
Ejemplo XML de Informe de tabla dinámica
Un ejemplo de documento XML de un objeto report completo y preparado para su importación sería el siguiente:
<?xml version="1.0" encoding="ISO-8859-1" ?> <IntContainerVector Count="1" > <UpdateFields UpdateAll="1"/> <BIDatacubeModel> <Name value="Ejemplo1 de informe" /> <ExtCode value="Ejemplo1_interno" /> <DataInputType value="2" /> <ReportClass value="0" /> <EnableAggregationStep value="1" /> <Parent value="0" valueRef="" /> <Definition> <BeforeExpression> <Expression> <![CDATA[ LogMessage("Report starts") ]]> </Expression> </BeforeExpression> <AfterExpression> <Expression> <![CDATA[ LogMessage("Report ends") ]]> </Expression> </AfterExpression> <X_Axis > <Axis Count="2" > <Rows> <BIDimension> <Name value="Year" /> <ShowName value="" /> <Description value="" /> <Visible value="True" /> <Type value="3" /> <Default value="0" /> <EnumFamily value="" /> <RefClass value="0" /> <Expression> <![CDATA[Year(TimePeriod.StartTime)]]> </Expression> </BIDimension> <BIDimension> <Name value="Month" /> <ShowName value="" /> <Description value="" /> <Visible value="True" /> <Type value="3" /> <Default value="0" /> <EnumFamily value="" /> <RefClass value="0" /> <ShowFormat value="MonthNumber2Name(@value)" /> <ShowType value="19" /> <ReverseShowFormat value="MonthName2Number(@value)" /> <Expression> <![CDATA[Month(TimePeriod.StartTime)]]> </Expression> </BIDimension> </Axis> </X_Axis> <Y_Axis > <Axis Count="1" > <Rows> <BIDimension> <Name value="Incidence" /> <ShowName value="Incidencia" /> <Description value="" /> <Visible value="True" /> <Type value="9" /> <Default value="0" /> <EnumFamily value="" /> <RefClass value="7" /> <Expression> <![CDATA[TimePeriod.Incidence]]> </Expression> </BIDimension> </Rows> </Axis> </Y_Axis> <Cells > <DataCells Count="2" > <Rows> <BIDataCellDimension> <Name value="Count" /> <ShowName value="" /> <Description value="" /> <Visible value="True" /> <Type value="3" /> <Default value="0" /> <EnumFamily value="" /> <RefClass value="0" /> <EnumAggrFunc value="4" /> <Expression> <![CDATA[TimePeriod.Incidence!=0]]> </Expression> </BIDataCellDimension> <BIDataCellDimension> <Name value="CountMondays" /> <ShowName value="" /> <Description value="" /> <Visible value="True" /> <Type value="3" /> <Default value="0" /> <EnumFamily value="" /> <RefClass value="0" /> <EnumAggrFunc value="1" /> <Expression> <![CDATA[CIsOnMonday]]> </Expression> </BIDataCellDimension> </Rows> </DataCells> </Cells> <Input_Axis > <Axis Count="2" > <Rows> <BIDimension> <Name value="IsOnMonday" /> <ShowName value="" /> <Description value="" /> <Visible value="True" /> <Type value="0" /> <Default value="false" /> <EnumFamily value="" /> <RefClass value="0" /> <Expression> <![CDATA[DayOfTheWeek(TimePeriod.StartTime)==1 && TimePeriod.Incidence==0]]> </Expression> </BIDimension> <BIDimension> <Name value="CIsOnMonday" /> <ShowName value="" /> <Description value="" /> <Visible value="True" /> <Type value="3" /> <Default value="0" /> <EnumFamily value="" /> <RefClass value="0" /> <Expression> <![CDATA[IfElse(IsOnMonday, 1, 0)]]> </Expression> </BIDimension> </Rows> </Axis> </Input_Axis> <Output_Axis > <Axis Count="1" > <Rows> <BIDimension> <Name value="MeanMonth" /> <ShowName value="" /> <Description value="" /> <Visible value="True" /> <Type value="3" /> <Default value="0" /> <EnumFamily value="" /> <RefClass value="0" /> <Expression> <![CDATA[Count*10]]> </Expression> </BIDimension> </Rows> </Axis> </Output_Axis> </Definition> </BIDatacubeModel> </IntContainerVector>