OBIEE 12 – Error al exportar en PDF

Un error común que te puedes encontrar en una instalación nueva de OBIEE es que al exportar o enviar PDF’s no salgan cortados. La configuración por defecto es bastante cicatera, así que si estamos intentando enviar un archivo con una tabla o una tabla pivotada algo grande, es posible que salga cortada.

Para solucionarlo, tenemos que localizar este archivo:

..\user_projects\domains\bi\config\fmwconfig\biconfig\OBIPS\instanceconfig.xml

y localizar:

<Views>
 <Pivot>
 <DefaultRowsDisplayedInDelivery>575</DefaultRowsDisplayedInDelivery>
 <DefaultRowsDisplayedInDownload>6500</DefaultRowsDisplayedInDownload>
 <DisableAutoPreview>false</DisableAutoPreview>
 </Pivot>
 <Table>
 <DefaultRowsDisplayedInDelivery>575</DefaultRowsDisplayedInDelivery>
 <DefaultRowsDisplayedInDownload>6500</DefaultRowsDisplayedInDownload>
 </Table>
 </Views>

Yo he puesto esos valores, que en mi caso, me son suficientes.
0

La soledad del código fuente

Después de unos cuantos años programando uno empieza a pensar en la cantidad de lineas de código que ha escrito, la cantidad de programas y aplicaciones en las que he participado. Todas esas líneas de código están por ahí, ejecutándose en algún ordenador, otras, la mayoría, abandonadas en algún soporte magnético y otras ni siquiera ya existen.

Piensas en el momento el que tú o cualquier otra programador escribió ese código pensando en su utilidad, en echarlo a correr libre. Miles y miles de línea de código abandonas, tristes…

 

0

No somos dioses

Si existe una profesión con un ego infinito es la de los informáticos. Y es normal, hacemos cosas increíbles: aplicaciones de banca, tiendas on-line, sistemas ERP, aplicaciones de Big-Data etc… No es ser egocéntrico, nuestro trabajo, en la era digital en la que vivimos, es clave. Sin embargo esto nos ha endiosado, bueno, nos hemos endiosado a nosotros mismos y nos hemos creído el ombligo del mundo. Cuando empecé en este mundo, y durante muchos años, me creí pertenecer a esa élite que formábamos los técnicos: algunos pocos árboles no me dejaban ver el bosque. Es típico en nuestra profesión pensar que gracias a nosotros la empresas funcionan, que estamos mal pagados mientras que los comerciales y los marketinianos se lo llevan crudo cuando somos nosotros quienes realmente trabajamos duro.

Todo esto se te empieza a desmoronar cuando te subes a uno de esos árboles que no te dejan ver el bosque. Cuando lees que muchas start-up mueren porque se han dejado casi todo su presupuesto y tiempo en crear un producto cojonudo, y cuando lo han tenido se han dado cuenta de que ese producto cojonudo no se vende solo. Te das cuenta cuando lees alguna entrevista a algún director de producto o de una start-up exitosa y te dicen que han invertido infinitamente más en comercial y marketing que en desarrollo.

Para que los técnicos pongan más en valor su trabajo deberían tender más puentes con las partes relacionadas con la creación y la venta del producto o, incluso, ser ellos mismos. ¿Quién mejor para promocionar un producto o venderlo que la misma persona que antes estuvo desarrollándolo? ¿Quizás las facultades de informática deberían incluir asignaturas relacionadas con la parte comercial y marketing de software?

El mundo del software es inmenso, el desarrollo solo es una pequeña parte de él, no dejemos que esos arbustos no quiten la visión del inmenso bosque.

0

Agilismo y motivación

Tras varios años intentando desarrollar e implementar en mis proyectos metodologías ágiles, he querido detenerme para hacer una pequeña retrospectiva de qué ha pasado hasta ahora. En general apoyo sin duda las metodologías ágiles, creo que el apellido “ágil” no lo llevan de manera gratuita, lo llevan por que se lo han ganado. Pero también me he llevado decepciones, me he dado cuenta de que las metodologías ágiles solo son factibles cuando se desarrollan en equipos de profesionales que están comprometidos con su trabajo.

He trabajado principalmente con Scrum y algún híbrido que lo podríamos llamar Canvan. Y mi impresión es que todos los proyectos han terminado pareciéndose más a proyectos de “Metodología en cascada” que ha un proyecto “ágil”. La pregunta es: ¿por qué ha pasado esto? Y creo que la respuesta es: la falta de implicación y de compromiso, la falta de amor por tu trabajo.

Seamos sinceros, mantener una constancia de desarrollo ágil es difícil. No siempre puede existir una figura que haga de Scrum Master exclusivamente y, lo más difícil, que esa figura no se termine convirtiendo en un jefe de proyecto a la vieja usanza. Es duro estar realizando continuamente planificaciones, estar cambiandolas y ser constante para que todo ese ecosistema produzca valor cada 2,3 0 4 semanas como mucho.

Me doy cuenta de que las metodologías ágiles requieren de personas altamente motivadas, que amen su trabajo y que sean críticas con ellas mismas. La metodología en cascada termina siendo más cómoda para el desarrollador, analista o cualquier otro rol implicado en el desarrollo: “dime qué tengo que hacer y cuánto tiempo tengo, que ya veremos qué pasa”.

Repasemos  algunos los principios de El Manifiesto Ágil:

“Los proyectos se desarrollan en torno a individuos  motivados. Hay que darles el entorno y el apoyo que  necesitan, y confiarles la ejecución del trabajo”

Blanco y en botella. El mismo manifiesto nos lo dice. Sin duda a un equipo hay que motivarlo y no sólo esperar a que se auto-motive, eso es evidente. Pero sin duda el propio equipo debe conocer y tener muy presente sus metas, la entrega de valor al cliente, y que ese valor sea de la máxima calidad posible. Para eso los integrantes deben amar su trabajo.

“La atención continua a la excelencia técnica y al buen diseño mejora la Agilidad.”

Esto es otro gran problema: excelencia técnica. Esta es otra de las razones por la cuáles el equipo debe amar su trabajo. Mi experiencia me dice que muchos responsables de proyectos se abandonan, olvidan la parte técnica y asumen un rol de gestión y organización del trabajo. Terminan no encajando en los esquemas ágiles por lo que boicotean estas metodologías y terminan haciendo in híbrido entre “ágil” y “cascada”, donde las reuniones de planificación son un mero paripé donde este “jefe de proyecto-  Scrum master” reparte tareas entre los desarrolladores y no se implica en la parte técnica.

Sin duda la implementación de metodologías ágiles no es sencilla, de hecho, creo que es bastante mas complicado que el uso de métodos tradicionales. Sin embargo las resultados son evidentes, la satisfacción tanto del equipo, como del cliente será mucho mayor. Pero para conseguirlo se requiere una implicación por parte del equipo que no siempre se consigue.

Si para un futuro proyecto me preguntaran: ¿qué metodología usarías para poner en marcha este proyecto? Yo contestaría: “dejadme conocer al equipo”

 

0

Preludio a la Fundación – Big Data

5855891739_ef5b39651a_z

Este fin de semana Miguel Ángel Criado ha publicado en El País un interesante artículo sobre la problemática a la que la sociedad de la información actual va tener que enfrentarse en los próximos años. Cada día generamos más y más datos, tanto personales como profesionales. La capacidad para generar información se duplica cada dos años; esto no tiene límite. Nos enfrentaremos a varios retos: primero, la obsolescencia de esta información, es decir, la capacidad para leer muchos de esos datos, almacenados en formatos para los que ya no existirán programas que puedan leerlos. También a la capacidad para almacenar todos esos datos, la obsolescencia de los propios soportes. Y segundo,  la utilidad y la capacidad para poder procesar tantísima información.

Nada más leer el artículo recordé la novela de Isaac Asimov, Preludio a la fundación. En esta novela el protagonista necesita estudiar la historia de los miles de planetas que están habitados, pero se encuentra con este mismo problema, no encuentra toda la información necesaria. Las grandes bibliotecas no han conseguido almacenar tantos datos. Han almacenados millones y millones de archivos que nadie jamás ha consultado y que poco a poco han ido quedando obsoletos y que nadie se ha preocupado por renovar, quedando así inservibles.

Asimov, hace 26 años, cuando la cantidad de datos que se generaban, era ridícula comparada con la generada hoy en día, ya advirtió el problema. Sin duda, esta será una de las problemáticas del siglo XXI: el tratamiento de la información, su conservación y la obsolescencia de los soportes.

En este siglo XXI, quién decidirá qué información debe conservarse y cómo será el acceso a tantísimos datos serán algunos de los grandes problemas a los de deberemos enfrentarnos.

0

Card Sorting

Cuando vamos a desarrollar una aplicación corporativa o una web siempre se nos plantea la duda de cómo ordenar nuestros contenidos. Aunque parezca una asunto banal, es algo de gran importancia y de esta organización dependerá el éxito de la misma, el fin para la que fue creada: ventas, conseguir leads, dar información corporativa, etc…cardsorting

El Card Sorting es una técnica para la estructuración de los contenidos de una web. Esta técnica parte de la base de que nadie va a saber mejor que tus usuarios cómo deben estar organizados éstos. Para la prueba se deberán crear una serie de tarjetas, cada una de ellas reflejará uno de nuestros contenidos, estas tarjetas serán luego las que los usuarios ordenarán.

Tipos de Card Sorting

Existen dos tipos:

  • Abierto. A los usuarios no se les facilita categorías. Deben ser ellos los que creen las categorías que creen adecuadas. Damos libertad absoluta al usuario y así podremos descubrir cuál seria la organización correcta
  • Cerrado. Se les propone un número finito de categorías. Este método nos ayuda a comprender si los usuarios comprenden las categorías propuestas.

Here we go!!

Los personas que realicen el test deberán ser target de nuestra web, no tendría sentido si esto no fuera así. El número de usuarios que deberán participar en la prueba es abierto, por supuesto que nunca deberán ser menos de 5-6 usuarios, ya que el muestreo sería demasiado bajo. Cuantos más usuarios más datos obtendremos, pero es evidente que no es fácil conseguir decenas para realizar este tipo de pruebas. Otra opción interesante es hacer grupos de 3-5 usuarios.

Existen diferentes opiniones respecto a cómo realizar el test, se habla de poner límites de tiempo bastante cortos para así buscar que los participantes sean más espontáneos y en otras ocasiones no se especifica el tiempo. Esto realmente debe ir definido por cada tipo de web, dependiendo de si es abierta o cerrada y del número de tarjetas.

Análisis de los datos

Se pueden realizar diferentes tipos de análisis. El análisis cualitativo consistiría en observa / grabar a los usuarios mientras realizan la prueba para observar pautas de comportamiento, ver si existen tarjetas o categorías que produzcan muchas indecisiones. El problema de los análisis cualitativos es que son muy costosos y si el número de usuarios es muy alto puede llegar a ser casi imposible de realizar, tanto por recuerdos como por dificultar para analizar los datos. Nos podría llevar muchísimo tiempo analizar todo.

El más común es el cuantitativo. Simplemente analizamos y confrontamos todos los resultados y vemos cuales son las categorizaciones más repetidas.

Confrontación de datos

El Card Sorting normalmente no propone esto, pero para mi es muy interesante tener desarrollado una categorización previa, la que los responsables crean que es la mejor y luego confrontarla contra los resultados. Esto nos da contacto con la realidad y nos enseña cuán lejos, o cerca, estamos de nuestros usuarios.

Herramientas

Es evidente que no siempre podremos realizar las pruebas con el usuario cara a cara. Para ello existen algunas herramientas que nos facilitan la labor:

Optimal Sort Recomiendo ver el video, es muy ilustrativo sobre cómo funciona el proceso.

Concept Codify

Algunos enlaces:

Ventajas y contras de realizar los test online o cara a cara. Aquí

Sobre el número de usuarios óptimo. Aquí

0

Libros: Spring in action

00106530813390___P1_1000x1000

Hace poco me he involucrado en un proyecto donde Spring será el framework de desarrollo. Y pensando en los mejores libros para refrescar la memoria ha aparecido este : Spring in action, de Craig Wells. Si alguien me pregunta qué libro debe leer para comprender la filosofía de Spring y comenzar a trabajar con él, sin duda sería este. Otra cosa a su favor es que está traducida al español. Claro está que todo desarrollador debe manejarse con el inglés a nivel lectura, pero nunca viene mal, a efectos de fluidez , que esté traducido, sobre todo cuando vas a leerte un libraco de 460 páginas. Habéis leído bien “leer”, porque se puede leer. Claro que está que no es una interesante novela, pero Walls escribe el libro con un lenguaje bastante ameno e ilustra cada punto con buenos ejemplos.

Otra de las cosas por las que todo desarrollador debería incluirlo entre su biblioteca es su explicación en los primeros capítulos de la Inyección de Dependencias y de la Programación Orientada a Aspectos (AOP). Si no sabes de qué estoy hablando entonces corre ahora mismo a por el libros, eres un dinosaurio de la programación.

Los podréis encontrar por nos 40 euritos, que para un libro técnico no es demasiado. Disfrutar de la lectura.

 

0

Oracle Discoverer & self-service

Ultimamente se habla mucho del self -service BI, es algo que está muy de moda, aparecen decenas de nuevas soluciones o adaptaciones de herramientas ya existentes. Pero sobre esto ya existen algunas herramientas en el mercando desde hace muchos años. Lo sé, Oracle Discoverer no es BI sino una herramienta de reporting, pero me parece muy interesante sacarla a la palestra.

No creo demasiado en herramientas self-service, creo que los proyectos en que el usuario tiene que perder mucho tiempo construyéndose sus propios informes terminan fracasando. Normalmente nuestro usuario quiere acceso a un número finito de informes. Quiere que sean fiables y no quiere perder un sólo minuto en algo que no sea “su trabajo”. Respecto a esto puede haber muchas objeciones, y sobre muchas de ellas yo estaré de acuerdo, pero es una realidad.

Oracle Discoverer es una herramienta que Oracle,se puede decir, que considera obsoleta, de hecho, es fácil encontrar multitud de guías para migrarla a OBIEE. Pero mi experiencia con ella me ha demostrado que mientras Oracle la siga ofreciendo debe ser tenida en cuenta como una buena opción para algunos escenarios.  Mi experiencia con ella en proyectos ha sido positiva. Requiere formar a los usuarios para su uso, pero una vez que aprenden su manejo suelen tener una gran acogida.

¿Cómo funciona? Bueno, principalmente nos encontramos con dos herramientas (aunque tiene alguna más): Discoverer Admistrator y Discoverer Desktop.

Discover Administrator

Sin título

El uso es bastante sencillo, con el administrador crearemos en End-user-layer (EUL), o como mis usuarios suelen decir: “carpetas”. Es una manera de organizar la información para el usuario final. Se realiza leyendo tablas o vistas de nuestra base de datos. Las carpetas podrán ser renombradas, así como sus atributos, y relacionarlas entre ellas.  De esta manera crearemos una estructura de datos que será consultada desde la siguiente herramienta

Discover Desktop

discoverer2

Desde Discoverer Desktop nuestros usuarios puedan cruzar la información. Como se puede ver en la captura de pantalla, lo primero que no viene a la mente es un Excel, razón por la cual el usuario final se suele sentir cómo con ella. Podremos crear tablas normales o tablas dinámicas, peticiones de datos en la cabecera, todo tipo de formulación, peticiones de datos al cargar los informes, etc…

Esto es pasar bastante por encima, pero el objetivo no es describir una a una sus características y funcionalidades.

Conclusiones

Oracle Discoverer, a priori, está pensado para “tirar” directamente de nuestra base de datos transaccional, sin moldeado de datos mediante ETL’s nocturnos ni nada por el estilo. Esto le resta cierta potencia, y es algo que debe ser tenido en cuenta a la hora de abordar un proyecto de este estilo. Hay que ser precavidos en el diseño de nuestro EUL y en la  formación a nuestros usuarios para que no terminen haciendo consultas que duren minutos y minutos. Para esto yo aconsejo crear vistas con la información que necesitemos y crear nuestro EUL a partir de ella. De esta manera conseguiremos que el usuario no tenga por qué conocer nuestro modelo de datos y simplificaremos consultas (evitamos que tenga que cruzar muchas carpetas para sacar los datos).

También hay que decir algunas cosas malas de la herramienta. Su potencia gráfica es penosa, es decir, ni lo intentéis. Los gráficos son malos y escasos, pero creo que no el lugar donde nos tenemos que fijar. Si queremos graficar y crear informes de ese estilo, esta no es la herramienta adecuado. Sin embargo su potencia como software de consulta de información que le ofrece al usuario una libertad para modificar sus informes de manera rápida (sin depender de los dichosos chicos de sistemas!!) es muy grande.

He pasado muy por encima por esta herramienta.  Simplemente quería poner el foco de atención en un software añejo, que pasa inadvertido para casi todo el mundo pero que creo que puede cubrir las necesidades de muchas empresas con un coste de implementación bastante bajo.

Descarga Oracle Discoverer desde aqui. Si tenéis alguna duda podéis escribirme y os ayudaré en todo lo posible.

 

0

Flujos de procesos en Oracle Warehouse Builder.

En el post anterior hablé sobre un error que me encontré trabajando con los flujos de procesos en Oracle Warehouse Builder (OWB en adelante), y prometí hablar un poco más en profundidad sobre ellos. En este post voy a contaros cómo hacer un flujo de proceso desde cero.

Para empezar contaremos qué es un flujo de proceso. OWB no permite hacer nuestras ETL para la transformación y carga de datos, pero de alguna manera tenemos que crear procesos que carguen ejecuten de manera secuencial nuestras “correspondencias”, tal y como OWB las llama. Aquí entran en juegos nuestros flujos de procesos.

Para empezar, creamos un nuevo flujo de proceso. Para eso entramos dentro de nuestro proyecto, en la carpeta “Flujos de Proceso”> “Módulos de Flujo de proceso” > Botón derecho del ratón > “Nuevo Módulo de Flujo de Proceso”:

 

No vamos a entrar muy en detalle de cómo crearlo. Nos aparecerá un asistente que nos preguntará en qué ubicación queremos crear este flujo de proceso, nos propondrá la ubicación actual. Luego nos preguntará el nombre del paquete, yo he elegido “PQ_1” y luego nos pedirá el nombre para el primer flujo que queremos crear:

A la derecha podemos ver cómo queda la estructura y a la izquierda, en el editor, aparece nuestro primer flujo. Ya estamos listos para empezar a trabajar.

Aquí ya podemos ver muchas cosas. Por un lado hemos añadido tres correspondencias, ya sabéis, simplemente arrastrarlas desde el menú de la derecha. Por otra parte vemos que hemos añadido dos elementos más : “END_WARNING” y “END_ERROR”, que hemos situado junto con “END SUCCESS”. Estos elementos aparecen a la derecha, en nuestra paleta de componentes, y traducidos son “Final con errores” y “Final con advertencias”. La operativa sería exactamente igual, simplemente arrastrarlos. Su finalidad es tener el flujo del proceso totalmente controlado, y así poder dirigir ese flujo dependiendo de cómo se ejecuten nuestras correspondencias.

Ahora que ya tenemos estos elementos, vamos a empezar a conectarlos:

Bueno, comenzamos de izquierda a derecha. Vemos que hemos añadido un elemento fork. Este es simplemente para dirigir el flujo a dos “Correspondencias” a la vez, si la cantidad de datos a mover es pequeño, se pueden ejecutar no dos, sino muchas más a la vez.

Después vemos que cada “Correspondencia” tiene tres flechas, una a cada uno de nuestros “OR..” o “AND..”. El procedimiento es fácil, ya sabéis, sólo arrastrar y la fecha aparece sola. Algo muy importante a tener en cuenta es que tenemos que indicarle a la “Correspondencia” en qué caso tiene que redirigir a un sitio u otro. Para ellos pulsamos botón derecho sobre cada una de ellas > “Editar Detalles”  > “Transacciones Salientes”

Ahora conectamos la última correspondencia. La he dejado sola porque es un correspondencia que mueve mucha información. Veamos cómo queda finalmente nuestro flujo:

Ya está finalizado. Ahora sólo habría que desplegarlo. Si habéis llegado hasta aquí es que ya sabéis crear “Correspondecias”, con lo que no os será ningún problema desplegar el flujo.

En el siguiente post os explicaré cómo realizar planificaciones para que esta correspondencia podáis ejecutarla de manera periódica.

 

0

Flujos de procesos en OWB. Error RPE-02062

Los flujos de procesos en Oracle Warehoues Builder (OWB en adelante) son una parte muy importante de esta herramienta.De nada sirve tener centenares de ETL que carguen y trasformen nuestro almacén de datos sino podemos crear flujos para realizar esta carga de manera ordenada.

Pero bueno, vayamos al grano, ya hablaremos más en profundidad sobre los flujos de procesos y cómo crear uno de ellos. El otro día me encontré con este error: RPE-02062 al intentar desplegar un flujo de proceso en Oracle Warehouse Builder. Aunque intenté parar el programador de manera manual desde el interfaz, no hubo manera:

En la documentación de Oracle se recomienda descargar la herramienta Oracle Workflow Monitor (OWM), pero pensé que tenía que haber una manera más sencilla de hacer esto. Veamos la solución que encontré:

  1. Nos conectamos a la DDBB de OBI con el usuario OWF_MGR.
  2. Lanzamos la siguiente consulta:

SELECT item_type, item_key, begin_date, end_date, activity_status
FROM wf_item_activity_statuses
WHERE activity_status<>’COMPLETE’
AND item_type = ‘PQ_1’ //Nombre del proceso que no podemos desplegar.

3. Cerramos las ejecuciones con la siguiente sentencia:

BEGIN
WF_ENGINE.ABORTPROCESS(‘PQ_1’, ‘WB_IK_20121027_041443_538685_FP_TOTAL:FP_DWH’);
END;

Sencillito, ¿verdad?

0

Powered by WordPress. Designed by Woo Themes