""

SAP BusinessObjects

Mejora del rendimiento de los archivos Xcelsius con OpenOffice

During the past few months my coworkers and I have been working with Xcelsius on a regular basis to develop dashboard for our customers. Sometimes we face challenges when we generate a swf file from an xlf file in Xcelsius and we don’t know why. Other times, Xcelsius crashes during the generation of the swf file. Even when the swf generates correctly, we occasionally see dashboard performance issues (i.e. when we execute the Xcelsius swf file, the load time is very slow).  However, we have found a trick that can be used to resolve these issues.

In this post I will explain the results of two tests that we did to reduce xlf file sizes followed by the steps you can follow to achieve these results.

The main idea of this trick is to reduce the size of the xlf file using OpenOffice software. Let me start by showing you the test results:

For the purpose of this test, we created an Xcelsius file called TestCompression.xlf

Primero exportamos el archivo xls del archivo Xcelsius seleccionando Datos -> Exportar:

We then saved the xls file. As you can see in the screenshot below, this generated a 2,264 KB xls file, so our objective was to decrease this file size.

Next we opened the xls file with Microsoft Excel and without modifying anything we saved it using another name. We repeated the same steps but this time with OpenOffice. In the image below you can see the decrease in size of the xls file. The size difference between the original xls file and the OpenOffice xls file is quite significant.

Finalmente importamos el nuevo archivo xls a Xcelsius seleccionando Datos -> Importar

In the screenshot below you can see that we decreased the xlf file size using the OpenOffice xls, but the change wasn’t very significant. TestCompression-OpenOffice.xlf is 1,117 KB, compared to the original TestCompression.xlf which was 1,236 KB.

As a result, we decided to test with another xlf file, which included hard coded data, to see if the compression would be more significant. For the second test, we achieved the following results after completing the same steps as outlined above.

In this screenshot we can see a significant decrease in the file size of the OpenOffice xlf with hard coded data. The original file TestCompression2.xlf file was 1,241 KB and the final TestCompression2-OpenOffice.xlf file was less than half the size (577 KB).

As a result of these two tests, we observed the following:

  • Each time we modify an Excel Sheet inside Xcelsius, the size of the xls file increases.
  • When the original xls is very large, the decrease in size is more substantial when we use OpenOffice.
  • If we have hard coded data in the Excel file, we notice a greater size decrease than if we have QaaWs (Query as a Web Service) or Live Office Connections in the Excel sheet.

From now on, each time we attempt to generate a swf and we have made modifications (to data or Excel formulas) inside the Xcelsius Excel Sheet, we follow these best practice steps:

  1. Export from Xcelisus to xls file
  2. Open xls with OpenOffice
  3. Save it as xls file with new name
  4. Import to Xcelsius

In terms of speed, we notice changes in the swf loading process especially if most of our data is hard coded.

Finally find below a summary of the results obtained:

 

If you have experienced a similar situation with your Xcelsius files, I would be interested to hear how you have managed to reduce the file size. Also if you have any suggestions or feedback about my methods in this post, feel free to leave a comment below.

Cuadros de mando en tiempo real - lecciones aprendidas

Hay algunos escenarios en los que se requiere un ritmo rápido para el monitoreo de datos. Aquí es donde entran los paneles de control en tiempo real. Un panel de control en tiempo real puede mostrar información con un alto grado de frecuencia. Esta información es utilizada por el público para tomar decisiones rápidas para corregir el comportamiento de ciertas tendencias previsibles. Los cuadros de mando en tiempo real también pueden activar alertas basadas en umbrales empresariales que permiten al público reaccionar rápidamente basándose en información actualizada al minuto.

La inteligencia de negocios en tiempo real es relevante para múltiples industrias y departamentos. Los paneles de control se pueden usar para monitorear el desempeño del centro de llamadas, el uso del sistema de TI, la seguridad de los datos, los precios dinámicos y la optimización del inventario e incluso apoyar la detección de fraude y los esfuerzos de administración de riesgos. Basado en nuestra experiencia en la construcción de un panel de control en tiempo real para monitorear los datos del centro de llamadas, este artículo destacará los consejos y lecciones aprendidas para cualquier persona que esté llevando a cabo un proyecto similar.

ETL

Scheduling Frequency In reality the dashboard is not real time. It is a batch job with a very short refresh/update frequency. In our case it was 1 minute, which is also a limitation on Data Services batch jobs. It is important to know these limitations and also to know how fast your entire ETL batch job can run.

Si la duración total del trabajo por lotes> la frecuencia de ejecución del trabajo por lotes, se crean procesos superpuestos que inmediatamente pueden causar dos problemas:

  1. Sobrecarga el servidor o genera ralentizaciones de refresco

  2. Crear inconsistencias en sus datos si su ETL no hace correctamente bloques y colas de proceso de escritura a las tablas de DB.

Run Optimization Given the need presented above: batch job total duration < batch job run frequency, you must search for the optimal setting to run your batch job. In Data Services there are some situations that can easily speed up your job execution but there is a delicate balance you must consider. One example is the memory method it uses to run the batch job, which can be selected from:

  • Página

  • En memoria

Página

Además, siempre que tenga un proceso de comparación de tablas, el rendimiento se puede optimizar ejecutando la comparación como un proceso separado.

Comparación de tablas

El método In se ejecuta más rápido cuando el servidor tiene suficientes recursos de RAM, sin embargo, si su servidor no tiene suficiente RAM libre, se sobrecargará y no podrá ponerse al día con nuevos procesos de desove, ejecutándose cada vez más en la memoria física hasta que cause un error. Bloqueo completo del servidor.

Gato

Memory management Tomcat, under determined circumstances, does not perform well with memory management and garbage collection. When executing several QAAWS every minute the memory it uses can build up very quickly. Any Tomcat service on a 32bit Windows environment will have a limitation of 1.2 GB of memory to allocate. Tomcat becomes unstable when it reaches that limit and new requests are still coming in at a constant rate.

Hay varios ajustes en Tomcat y JVM memoria que se puede hacer para optimizar esto.

Un ejemplo de estos ajustes es los límites de memoria que se pueden establecer cuando se inicia Tomcat; Estos se pueden establecer mediante el registro de Windows o modificadores de tiempo de ejecución.

Cache Optim flag The QAAWS application that comes bundled with Business Objects has a limitation set to cache data requests. When the same request is done in short periods of time the cache data is sent instead of running the query again. To avoid this and get new data every time, you need to disable this functionality on the dsws application properties:

dswsproperties

Para desactivarlo, debe establecer el indicador qaaws.cache_dpresult.optim como false.

caché qaaws

Restart Script In order to keep Tomcat service from memory overloads it is a good practice to schedule an overnight restart that will force garbage collection. The script can be very basic or contain additional cleanup tasks.

Guión

HTML Container Placing the flash file on  html container will allow you to execute some actions prior and during the flash file execution. You can run javascripts, pass mandatory flash variables (i.e. suppressing tomcat error messages when running qaaws), etc.

El contenedor html más básico para un archivo flash xcelsius se verá de la siguiente manera:

Contenedor flash Xcelsius

Auto refresh Java script As mentioned before, an HTML container will allow you to run javascript programs on the Explorer window executing your xcelsius flash file. Many applications can be given to javascript but one of them could be the browser page auto-refresh function. With the refresh you can wipe out outdated errors from screen.

No Error flash Variable The no error flash variable is a new functionality on Xcelisus SP4. It allows you to set the pop-up error windows off in cases where the error is not directly related to Xcelsius logic, i.e. Tomcat outages, scheduled system restarts, etc.

Para añadir esta funcionalidad a cualquier panel de Xcelsius, primero debe agregar la entrada de la variable flash a su archivo xlf.

Variables de Flash

Finalmente, también es necesario pasar la variable al SWF como se indica en el ejemplo del código contenedor HTML anterior.

I hope these lessons learned are helpful to anyone working on a real time dashboard. Feel free to leave a comment or question below if you need more information on any of the tips provided in this post.

Working with multi-sections in SAP BusinessObjects Query & Analysis tools

Las secciones son características tradicionales en las herramientas de SAP BusinessObjects Query & Analysis (QA). Proporcionan una lista de elementos y su informe parcial asociado, que incluye tablas, gráficos o ambos. Esto es muy poderoso, como te puedes imaginar. Como ejemplo, el suscriptor crea una factura de teléfono móvil a partir de secciones, asociando cada suscriptor con su propia factura.

Este artículo de blog describirá un requisito particular junto con un desafío que enfrentamos en un escenario real y cómo se resolvió.

El requisito inicial

En este escenario, estábamos trabajando con una compañía de telecomunicaciones que tenía un sistema que contenía sus datos de facturación. A partir de esto, el requisito era desarrollar una tabla con los detalles de las llamadas de cada suscriptor, así como un gráfico con el consumo total de los últimos 12 meses. Además, había otras tres condiciones:

  • Los suscriptores a menudo se agrupan por compañía, por lo que se debe generar la factura total por compañía - mismo informe -
  • El pdf resultante debe mostrar Empresa / Suscriptores, en este orden, y permitir a los usuarios navegar a través del pdf
  • A solicitud del cliente, el informe debe hacerse en la herramienta tradicional de Desktop Intelligence

El reto

Comenzando una maqueta con WebI, creamos la consulta, arrastramos y soltamos 2 secciones (1 por compañía, 1 por suscriptor), redactamos la tabla y el gráfico, ajustamos el ancho de las secciones manualmente para que cada una cayera en una hoja, actualizada, exportada a pdf y "voilà", el borrador parecía cumplir con nuestras especificaciones.

Documento PDF guardado desde WebI
Documento PDF guardado desde WebI

Documento PDF guardado desde WebI con navegación a secciones y subsecciones (cada una en una página diferente)

Cuando probamos con DeskI, seguimos los mismos pasos; configurando el "inicio en una nueva página" y el "evitar romper página en bloque" como activo, pero aún nos encontramos con el problema de una página en blanco. Esto se debió al hecho de que entre la sección y el primer elemento de la segunda subsección, el "inicio en una nueva página" no se aplicaba automáticamente, por lo que tuvimos que crearlo nosotros mismos. Como el diseño de nuestra factura era bastante grande (y ocupaba toda la página A4), el informe se ejecutó en la página siguiente (es decir, el final de la sección), por lo que se generó una página vacía justo después.

Edición manual en DeskI
Edición manual en DeskI

En DeskI, la distancia entre la sección y el elemento 1 st de la subsección 2 nd debe ajustarse manualmente

Nuestra solución:

La solución en DeskI se basó en acciones incrementales. Hemos destacado las ventajas (+) y las desventajas (-) para dar más información sobre nuestra situación:

1. Elimine la opción "Comenzar en una página nueva" para la subsección (+) La página en blanco desaparece (-) 1 problema de navegación del sub-elemento: las líneas 2 de la sección / subsección aparecen en diferentes páginas, por lo que los enlaces PDF no funciona correctamente, ya que el botón del elemento 1 en la subsección permanece en la página de sección

2. Agregue una celda al final de la tabla y gráfico de la primera sección (+) Las líneas 2 de la sección / subsección siempre aparecen en la misma página, por lo que los enlaces PDF funcionan correctamente (-) En el caso específico de que una empresa no tenga un suscriptor, hay una página vacía entre compañías, ya que la 1 sección finaliza en la página siguiente

3. Hide the auxiliary cell in cases when a company does not have a subscriber (+) Create a condition based on a count of subscribers inside the company, and hide the cells if that count is zero (-) None Conclusión

Lo que aprendimos de este escenario es que las herramientas tradicionales como Desktop Intelligence realmente brindan una gran flexibilidad, pero debe tener a mano expertos que las lleven constantemente al límite. Por otro lado, cuando sea posible, debemos aprovechar el poder de Web Intelligence, que combina la fuerza de Consulta y Análisis de su predecesor junto con una capacidad funcional adaptada a las necesidades actuales del mundo basado en la web.

Comentarios y preguntas son siempre bienvenidos. Si tiene desafíos similares, estaremos encantados de compartir nuestra visión.

Conexión de SAP BW y BusinessObjects Data Integrator para la extracción de datos

En el seguimiento de mi artículo de blog sobre julio 7, quisiera compartir algunas ideas para conectar SAP BW y SAP BusinessObjects Data Integrator con fines de extracción de datos.   

 El problema que encontré fue que no podía conectar mi BODS a SAP BW. La conexión se creó correctamente en la consola de administración de Data Integrator, pero la puesta en marcha siempre fallaba. 

Después de lo que parecía cientos de pruebas y comandos del cmd, encontré la solución: el archivo de servicios que se encuentra en la misma ruta que el archivo host (windows / system32 / drivers / etc) requiere un pequeño cambio:

  1. Debe agregar la siguiente cadena SAPGWxx 33 xx / tcp donde xx es el número de sistema de su conexión SAP.
  2. Entonces aquí también configuré el sapjco3.jar que se almacena en tomcat (lo encontrará con una búsqueda fácil en la carpeta) en el CLASSPATH de Tomcat según el tema anterior publicado en julio 7.

Para iniciar el servicio utilicé un comando desde el cmd en la ubicación: Drive: Business ObjectsBusiness Objects Data Servicesbin: RfcSvr -aRFC_ProgramID -g / H / ip o nombre del nombre del servidor de aplicaciones SAP / S / 33 xx -xsapgwxx RfcSvr Es el archivo .exe que inicia los procesos DI. Si quieres saber más detalles sobre este comando, la mejor manera es hacer una búsqueda rápida en Google.

Después de seguir los pasos anteriores, todo debería funcionar bien. En este punto, puede utilizar cubos BW como fuente de datos en Data Integrator.

Si tiene alguna pregunta o comentario que añadir a esta solución rápida, no dude en dejar un comentario a continuación.

Conexión entre SAP BW y Universe Designer / BusinessObjects InfoView

En esta publicación de blog, explicaré algunos consejos que aprendí al integrar SAP BusinessObjects Universe Designer / Infoview con SAP BW.

En su mayor parte, los pasos deben ser simples y bastante estándar (a menos que enfrente algunos problemas inesperados). En primer lugar, debe instalar la plataforma y el kit de integración para SAP. Al final de este proceso, verá que puede crear universos sobre cubos BW o consultas BW. Puede publicar fácilmente el universo y recuperar sus datos en un informe.

Ahora, en teoría, después de configurar al usuario en el CMC (BO CMC -> Autenticaciones -> SAP), un usuario debería poder iniciar sesión en SAP BusinessObjects InfoView utilizando sus credenciales de SAP ...

Pero en realidad, BusinessObjects fallará al importar los roles del usuario de SAP. ¿Por qué? Porque necesitará un conector java, que no viene con el kit de integración "listo para usar".

Todo lo que necesita hacer es descargar los archivos de SAP (o desde la parte inferior de esta publicación de blog) y ponerlos a disposición de su sistema. Aquí una guía paso a paso:

  1. Cree las carpetas en su carpeta principal de tomcat55 llamada Sharedlib
  2. Copie allí los archivos sapjco.jar y .dll
  3. Copie los archivos .dll en Windows / system32
  4. Vaya a la configuración de Tomcat y agregue la ruta completa del archivo sapjco.jar a la cadena CLASSPATH - reinicie tomcat

Notes: Do not confuse the sapjco.jar with other versions in the folder. Download the 32bit version even if your machine is a 64bit.   Now try to import your user's role in BO CMC --> Authentications --> SAP again and you will see that everything will work as expected.

Si tiene alguna pregunta o comentario sobre esta solución, hágamelo saber dejando un comentario a continuación.

> Download this Shared file (contains sapjco.jar and the .dll files)

Desafío SAP Xcelsius para resultados de encuestas de la comunidad: mejores prácticas

I entered the SAP Xcelsius Challenge for Community Poll Results to flex my Xcelsius skills and also offer some fresh options for dashboarding to the SAP SDN community. I’m pleased to report that my submission received an honorable mention in the competition. Thanks to everyone who voted!

En esta publicación explicaré las herramientas, los objetivos, el contenido y la estructura con los que decidí trabajar para este desafío y mis pasos de mejores prácticas para desarrollar un panel de control de Xcelsius.

1. Selección de herramienta

Comencé definiendo el objetivo de alto nivel y seleccionando la herramienta que mejor se adapta. SAP Crystal Dashboard Design (anteriormente conocido como Xcelsius) es una gran herramienta y plataforma, obviamente para el tablero de instrumentos, pero no es para todos los propósitos. SAP BusinessObjects ofrece una amplia gama de herramientas que pueden resolver escenarios específicos; estos están bien integrados y, a menudo, una combinación de dos o más es la mejor solución.

2. Propósito y metas detalladas

¿Por qué estoy construyendo un tablero? ¿Qué información me interesa?

Además de mostrar los resultados de la encuesta, mi objetivo era permitir el análisis del rendimiento de los continentes, regiones y países que participan en los Juegos Olímpicos de Invierno, con un enfoque en los juegos en Vancouver.

En mi opinión, hacer y responder las preguntas anteriores es muy importante y a menudo se pasa por alto a favor de definir primero los KPI. Sin establecer un objetivo claro, no habría podido decidir qué KPI fue más o menos útil que otros. Con eso definido, procedí a responder las siguientes preguntas.

3. Contenido

¿Cómo puedo lograr el objetivo anterior? ¿Cuáles son los mejores indicadores de desempeño? ¿Cómo puedo mostrar estos KPI?

Posibles KPI

  • Numero de medallas

  • Numero de medallas de oro

  • Número ponderado de medallas (oro * 3 + plata * 2 + bronce)

  • Número de medallas / población

  • Número de medallas ganadas por país / Número total de medallas

Posibles opciones de visualización para KPI

  • Tendencias: ¿Qué tendencia de indicador sería mejor ver?

  • Comparaciones: ¿cuáles serían las dimensiones para comparar? 

Elegí el KPI más común: Número de medallas. Pero como verá, este KPI único se puede mostrar de varias maneras. Una forma menos tradicional, en términos de los Juegos Olímpicos, es la agrupación por dimensión geográfica. Esto ofrece una vista única, sin mencionar que me permite mostrar mi complemento DrillChart.

4. Estructura

¿Cómo puedo organizar mejor mi contenido? 

En este punto, decidí resumir qué información tenía y tratar de encontrar un lugar para mi contenido en la pantalla:

  • Los resultados obligatorios de la encuesta: gráfico de barras verticales.

  • Número de medallas por región: gráfico de barras horizontales

El cuadro de Encuesta tiene todos los deportes enumerados, por lo que le da la oportunidad de usarlo también como selector. Pensé que sería bueno conectar estos dos gráficos y permitir que el usuario analizara también el número de medallas por deporte. Aunque podría no ser tan claro como una barra de navegación horizontal que abarca el encabezado del tablero, opté por usarlo, con un subtítulo claro, para guardar algo de espacio en la pantalla.

El orden de selección sería: Deporte → Región, por lo que coloco los Resultados de la encuesta en el lado superior izquierdo, donde el espectador generalmente comienza a escanear la pantalla. Utilicé los dos colores de los juegos de Vancouver, verde y azul, para hacer una distinción clara entre la encuesta y el análisis de medallas.

Tablero de los Juegos Olímpicos 1

Los dos cuadros principales consumen aproximadamente la mitad de la pantalla, y todavía tenía mucho que mostrar:

  • Líneas de tendencia

  • Distribución de medallas: oro, plata, bronce

  • Agregaciones históricas

  • Comparación con el juego anterior.

Toda la información anterior depende de las selecciones del usuario (Deporte - Continente / Región) y proporciona más información sobre los datos. Usé micro-gráficos debajo del gráfico principal de medallas para mostrar los detalles.

Tablero de los Juegos Olímpicos 2

5. Implementación

La parte final es el desarrollo real. Afortunadamente, esto es sencillo, y mucho más rápido, cuando el diseño funcional y el diseño están bien definidos, aunque este siempre es un proceso iterativo con algunas modificaciones.  

I was happy to practice a little bit on this example, and would be happy to hear your feedback! And if you are looking for some creative dashboarding expertise, Clariba has a wealth of experience and very talented consultants in this area. Feel free to contact us at info@clariba.com.

Xcelsius Sugerencias: Búsqueda y filtrado

Todos los días enfrentamos nuevos desafíos de filtro según los requisitos de nuestros clientes. A veces la respuesta, "no es posible" parece ser la más lógica, pero después de unos minutos de lluvia de ideas, la solución se vuelve clara.

Xcelsius se hizo famoso gracias a sus opciones de análisis y filtrado. En este artículo quiero compartir la solución de búsqueda y filtrado dentro de Xcelsius usando un par de componentes listos para usar.

Esta característica permite al usuario escribir parte del texto necesario para un filtro, obtener la lista de valores (sugerencia), seleccionar uno de ellos y obtener la salida en el tablero.

Para construir esta solución, el desarrollador solo necesita 5 componentes (el gráfico, la imagen y el fondo blanco se han agregado para la demostración).

 

  1. The input text box is used to write the text to search/filter
  2. In the excel a “like” command is implemented as =IF(AND($A$1<>"",COUNTIF(A3,"*"&$A$1&"*")>0),1,0) where we are checking if the text written in the cell A1 is contained in A3
  3. Los otros componentes están destinados a filtrar y mover el valor deseado del origen al destino.

The result is the following:

 

Y al hacer clic en Luca de la lista de valores, el resultado es:

 The limitation of this solution is that the user has to click on enter after typing the text in the input text box. A better solution could be written using Flex and ActionScript in order to have only one component doing all the work and without the need to press enter at any selection.

Si está interesado en ver la fuente de la solución y los archivos flash, no dude en descargar los ejemplos a continuación. Por favor, háganos saber si tiene algún comentario dejando un comentario a continuación.

X-suggestions (swf) X-suggestions (zip file containing xlf)

New Insights into an Xcelsius (XLF) File

Xcelsius es una poderosa herramienta de tablero, pero a veces encontramos limitaciones y necesitamos usar nuestra imaginación para encontrar soluciones. Un ejemplo es cuando estamos desarrollando un tablero sin conexión al servidor de producción final usando QAAWS. Antes del lanzamiento, necesitamos abrir el archivo XLF y reasignar las conexiones una por una al nuevo servidor.

Un día, por casualidad, encontré una solución muy buena para este problema. También descubrí las capacidades adicionales que no están disponibles a través de la interfaz Xcelsius.

Descubriendo nuevas capacidades

Yendo directo al grano, hay un archivo XLF al final de un archivo estándar. Todo lo que necesita hacer es cambiarle el nombre a .ZIP y extraerlo en cualquier carpeta. Encontrará los siguientes archivos dentro:

  • Xldoc: This is the Excel Data model used in Xcelsius (you can open it using Excel)
  • Document.xml: This contains your Xcelsius definition (graphs, canvas, connections…)
  • Folder(long name): This contains the pictures embedded in your Xcelsius file

El archivo más interesante para los propósitos de este artículo es el Document.xml. En este archivo encontrará la definición completa de su modelo Xcelsius; que proporciona grandes capacidades y oportunidades! Déjame darte tres ejemplos:

  1. Puede reemplazar el servidor de sus conexiones QAAWS: solo busque el nombre de su servidor para encontrar las entradas de sus conexiones QAAWS (con las credenciales si están codificadas en el modelo) y luego reemplácelas por el nuevo servidor.
  2. Cambie el esquema de color sin pelear con el cliente Xcelsius: para cambiar el esquema de color, todo lo que necesita hacer es reemplazar el color antiguo con el nuevo en el archivo XML y listo. Si ha definido un esquema de color personalizado, también lo encontrará en el archivo.
  3. Cambie los logotipos / imágenes: solo necesita sobrescribir los logotipos que obtiene después de descomprimir el XLF.

Puedes jugar todo lo que quieras con estos archivos. Para obtener su nuevo archivo XLF, todo lo que necesita hacer es agregar la carpeta a un archivo zip y cambiarle el nombre a XLF.

Si tiene algún comentario, pregunta o nueva funcionalidad para este truco, ¡me complacerá leer y responder sus comentarios!

Truco de LiveOffice para desarrolladores y diseñadores de Xcelsius

LiveOffice es una herramienta lista para usar de SAP Business Objects que permite a los usuarios descargar informes o partes de informes de BusinessObjects (WebIntelligence y Crystal Reports). También permite la creación de nuevas consultas como QAAWS (consulta como servicio web).

En esta publicación de blog, nos gustaría compartir un consejo sobre una configuración importante de LiveOffice que puede ser útil para los desarrolladores y diseñadores de Xcelsius.

Por defecto, LiveOffice nos permite descargar 512 filas y 512 columnas cuando se usa dentro de Xcelsius. Lamentablemente, este número o filas no siempre es suficiente. Pero en lugar de cambiar las conexiones o la lógica de nuestro tablero, que puede ser complejo y llevar mucho tiempo, todo lo que tenemos que hacer es cambiar la configuración de un archivo .jar en tomcat.

Procedimiento paso a paso:

  1. Cree una copia de seguridad de dsws-liveoffice-ws.jar desde InstallDrive del servidor: archivos de programa objetos comerciales TomcatwebappsdswsbobjeWEB-INFlib (por si acaso)
  2. Copie dsws-liveoffice-ws.jar del InstallDrive del servidor: archivos de programa objetos comerciales TomcatwebappsdswsbobjeWEB-INFlib a su computadora
  3. Cambie el nombre del archivo que acaba de copiar a dsws-liveoffice-ws.jar.zip (agregue .zip al final del nombre de archivo)
  4. Cree una carpeta en la raíz de InstallDrive: llamado META-INF (distingue entre mayúsculas y minúsculas), en InstallDrive: META-INF llamado BusinessObjects (distinga entre mayúsculas y minúsculas) y en InstallDrive: META-INFBusinessObjects llama DSWS (distinga entre mayúsculas y minúsculas). Obtendrá la siguiente ruta: InstallDrive: META-INFBusiness ObjectsDSWS
  5. Con WinZip o WinRAR, descomprima el archivo denominado liveoffice_config.properties del archivo dsws-liveoffice-ws.jar.zip copiado del servidor. Coloque este archivo en InstallDrive: META-INFBusinessObjectsDSWS
  6. Abra el archivo liveoffice_config.properties y busque la siguiente sección: maxRowCount = 512 maxColumnCount = 512
  7. Edite maxRowCount y maxColumnCount (si es necesario) con el número de filas y columnas que prefiera.
  8. Guarde el archivo como liveoffice_config.properties (mismo nombre de archivo)
  9. Asegúrese de que el nuevo archivo esté en dsws-liveoffice-ws.jar.zip
  10. Elimine el archivo .zip del archivo
  11. Cópielo en la ubicación de Tomcat en el servidor: InstallDrive: archivos de programa objetos comerciales TomcatwebappsdswsbobjeWEB-INFlib
  12. Reiniciar Tomcat

¡Eso es! Ahora ya no está limitado a 512 filas y columnas. Si tiene alguna pregunta o comentario sobre este enfoque, no dude en dejar sus comentarios a continuación.

Visualizing a time series with missing data

De vez en cuando navego por foros especializados, y recientemente me encontré con el mismo problema en dos hilos desde diferentes ángulos. Básicamente la pregunta planteada es, "¿cómo podemos mostrar los valores faltantes en un gráfico de líneas?" Esta pregunta entra en juego cuando consideramos qué mostrar si tenemos una brecha.

Los datos faltantes pueden ocurrir por varias razones, pero por ahora concentrémonos en la visualización. Dibujaré un par de soluciones con Xcelsius, pero la idea general de estas opciones también se aplica a otras herramientas.

Primero echemos un vistazo a la posible situación inicial: si no tenemos datos para uno o más períodos en la base de datos.

Es posible que el usuario ni siquiera se dé cuenta, pero algo está mal con el gráfico anterior. Faltan los 3 rd, 4 th y 5 th. La razón detrás de esto puede ser que las ventas cayeron a cero, o que las ventas para estos meses no aparecen en la base de datos por cualquier razón.

Las dos opciones a continuación destacan que algo salió mal con las ventas (datos) durante el período de primavera (meses 3-5).

Aunque el último gráfico muestra la situación real en la base de datos, los usuarios comerciales pueden esperar ver un gráfico completo. Si sabemos que las ventas no cayeron a cero, pero de hecho se perdieron registros durante estos tres meses, entonces el requisito es conectar la brecha de alguna manera.

Calcular la media o la media ponderada de los dos valores más cercanos de períodos no nulos podría ser la solución. El promedio ponderado es un poco más complejo, pero en el caso de una brecha más grande, dará como resultado una conexión lineal entre dos extremos, en lugar de una línea plana.

Al interpolar valores que no tenemos (y cuando no sabemos exactamente qué se debe resaltar), sugeriría mostrar el espacio con un color significativamente más claro que el normal, lo que representa que estos son valores calculados.

Aunque los valores reales pueden diferir significativamente, en mi opinión con las leyendas adecuadas, esta representación podría ser mejor que romper la línea.

Me interesaría saber si otros se han encontrado con este problema y qué han hecho ustedes. Siéntase libre de dejar un comentario con su opinión.

EspañolEnglish