VBA for SAP EPM Add-in: Declaración de variables indispensable (#VBAforEPMAddin)

En VBA, como en muchos otros lenguajes de programación, tenemos la “libertad” de hacer muchas cosas pero algunas de ellas resultan poco recomendables. Uno de los casos más frecuentes, relacionados a este tema, es el uso de variables.


En VBA, como en muchos otros lenguajes de programación, tenemos la “libertad” de hacer muchas cosas pero algunas de ellas resultan poco recomendables. Uno de los casos más frecuentes, relacionados a este tema, es el uso de variables.

En VBA tenemos la opción por defecto de utilizar variables sin declararlas.  Los programas declarando todas las variables que se utilizarán, señalando el tipo de datos adecuado es muy probable que obtenga el mismo resultado si codificamos sin declarar las variables a emplear. Entre uno y otro estilo redundará en el tiempo de procesamiento. 

Por ejemplo, con la siguiente rutina, dependiendo de las características del ordenador, su ejecución con las variables correctamente tipificadas tardó 15 segundos y retirando la declaración de variables (comentando estas líneas) esta rutina tardo 55 segundos (pruebas realizadas en una máquina virtual con 1 CPU (2.4GHz) y 2 GB de memoria).

Rutina para comprobar la eficiencia que se logra en VBA al declarar adecuadamente todas las variables que se utilizarán(aquí código)

Una buena práctica es utilizar Option Explicit a nivel de módulo para no olvidar la declaración de variables en ninguna parte de cada proyecto.  Por defecto, cualquier variable no declarada, será de tipo Variant, la cual ocupa más espacio en memoria e internamente para VBA requiere mayor tratamiento.

Eficiencia de formularios EPM Add-in = Últimas versiones de componentes SAP BPC + VBA (#VBAforEPMAddin)

Nuestro nuevo interés por VBA (Visual Basic for Applications o Macros para MS Office) es porque tiene un uso necesario y casi inevitable al diseñar formularios e informes en SAP EPM Add-in, el complemento para MS Excel, MS Word y MS PowerPoint que actúa como interfaz cliente para la gran mayoría de productos del portfolio SAP EPM (Enterprise Performance Management), entre los que destaca SAP BPC (Business Planning and Consolidation).


Nuestro nuevo interés por VBA (Visual  Basic for Applications o Macros para MS Office) es porque tiene un uso necesario y casi inevitable al diseñar formularios e informes en SAP EPM Add-in, el complemento para MS Excel, MS Word y MS PowerPoint que actúa como interfaz cliente para la gran mayoría de productos del portfolio SAP EPM (Enterprise Performance Management), entre los que destaca SAP BPC (Business Planning and Consolidation).

Nos parece, que después de Java, Visual Basic y VBA son los lenguajes de programación que más información obtendremos en Internet. Quizás por este motivo encontremos que con bastante facilidad muchas personas incursionan en la automatización de rutinas en este lenguaje. No se necesita ni una interfaz en particular o documentación especializada, todo está relativamente accesible.

Pero dependiendo de la complejidad de lo que se esté implementando, el resultado puede ser no muy satisfactorio para el usuario, especialmente porque los tiempos de procesamiento son relativamente elevados.

Con SAP EPM Add-in la eficiencia de nuestros desarrollos para SAP BPC dependerá en parte por el tiempo de acceso a los datos, el cual está en manos de este componente y del servidor de SAP BPC. Pero por otra parte, si utilizamos VBA, la calidad de la codificación también influirá en la velocidad que finalmente percibirá el usuario al utilizar los formularios que diseñemos.

Para la mejora de la velocidad en el acceso de datos, SAP va presentando mejoras como la que comentábamos en una entrada anterior, por lo que resulta siempre recomendable utilizar las últimas actualizaciones del servidor y cliente de SAP BPC.  Para el caso de mejorar la eficiencia de VBA hay una serie de buenas prácticas que habríamos aplicado en el desarrollo de cualquier otra aplicación Visual Basic que son totalmente recomendables también con SAP EPM Add-in, algunas de ellas iremos revisando en próximas entradas.

Mejoras en el rendimiento de los informes SAP BPC NW/EPM Add-in

Si nuestro modelo SAP BPC (SAP Business Planning and Consolidation) cuenta con un volumen de datos maestros importante, además de complejas jerarquías, es probable que nuestros informes, diseñados con el componente cliente SAP EPM Add-in 10.0, tengan un pobre rendimiento, especialmente en la utilización de filtros.


Si nuestro modelo SAP BPC (SAP Business Planning and Consolidation) cuenta con un volumen de datos maestros importante, además de complejas jerarquías, es probable que nuestros informes, diseñados con el componente cliente SAP EPM  Add-in 10.0, tengan un pobre rendimiento, especialmente en la utilización de filtros.

La actualización SP11 de SAP BPC 10.0 NW introduce un nuevo tratamiento de las sentencias MDX, lenguaje con el que finalmente se accede a los datos solicitados a través de los informes diseñados  con EPM Add-in.  La activación de esta funcionalidad requiere el seguimiento de varios pasos indicados en las notas 1858256 y 1858257.  Así mismo, es necesario contar la actualización SP14 Patch 2 o superior del componente cliente SAP EPM Add-in 10.0.

La maduración de SAP BPC 10.0 también es gracias a los usuarios y consultores

La maduración de un producto SAP es gracias a los usuarios, no sólo lo afirmamos por todo lo que hemos visto en SAP BusinesObjects BI, sino también por SAP Business Planning and Consolidaton (SAP BPC). El 23 de abril de 2012, SAP BPC 10.0 NW pasó al estado General Availability, para entonces contábamos como producto final el Servidor de BPC con el nivel de actualización SP6 y para el cliente, denominado EPM Add-in, con un nivel de actualización SP08.


La maduración de un producto SAP es gracias a los usuarios, no sólo lo afirmamos por todo lo que hemos visto en SAP BusinesObjects BI, sino también por SAP Business Planning and Consolidaton (SAP BPC).  El 23 de abril de 2012, SAP BPC 10.0 NW pasó al estado General Availability, para entonces contábamos como producto final el Servidor de BPC con el nivel de actualización SP6 y para el cliente, denominado EPM Add-in, con un nivel de actualización SP08.

SAP BPC 10 NW - Service Packs del servidor BPC liberados desde que finalizara el ramp-up del producto

Ha pasado un poco más de un año y ya contamos con cuatro actualizaciones a nivel de servidor, las cuales representan 825 correcciones o mejoras en el producto. A nivel de cliente, considerando sólo a nivel de Service Pack (SP), contamos 191 correcciones o mejoras, pero si incluimos los parches publicados a nivel de cada SP, estimamos que sería alrededor de 300 correcciones o mejoras.

EPM Add-in 10.0 - Service Packs del cliente EPM Add-in liberados desde que finalizara el ramp-up de SAP BPC 10.0 NW

Es decir, desde la liberación de SAP BPC 10.0 NW (15 meses de vida oficial, aproximadamente), el producto ha tenido más 1.000 correcciones o mejoras.  La identificación de estos errores ha sido posible  gracias a los usuarios y consultores que utilizamos este producto.

Si es obsoleto para Microsoft, es obsoleto para SAP

Este el mensaje que se desprende de la Nota SAP 1880994 la cual señala que debido al anuncio de Microsoft de dar por finalizado el soporte a Windows XP y MS Office 2003 a partir del 4 de abril de 2014, SAP también dejaría de dar soporte a los productos SAP que se instalen sobre este sistema operativo y aplicación.


Este el mensaje que se desprende de la Nota SAP 1880994 la cual señala que debido al anuncio de Microsoft de dar por finalizado el soporte a Windows XP y MS Office 2003 a partir del 4 de abril de 2014, SAP también dejaría de dar soporte a los productos SAP que se instalen sobre este sistema operativo y aplicación.

Compatibilidad con otros productos del EPM Add-in (cliente de SAP BPC)

Entre los productos SAP que se pueden configurar sobre MS Office 2003 está el cliente de SAP BPC (SAP Business Planning and Consolidation), denominado SAP EPM Add-in 10.0, a pesar que el PAM (Platform Information, Support Pack Dates and Maintenance Dates) correspondiente aun o se ha actualizado con esta información, se debe tener presente para futuras instalaciones o actualizaciones que se deberán realizar.

Referencia: Nota SAP 1880994