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.

SAP FIM el “puente” para el intercambio de datos en SAP EPM

Como apuntábamos en un post anterior, SAP Enterprise Performance Management (SAP EPM) está compuesto por más de una decena de aplicaciones, entre las que destaca SAP Business Planning and Consolidation (SAP BPC). A través de estas aplicaciones puede requerirse un intercambio de datos, pero en muy casos los productos ofrecen la funcionalidad necesaria para trasladar los datos entre una aplicación y otra. Para estas necesidades, existe SAP Financial Information Management (SAP FIM).


Como apuntábamos en un post anterior, SAP Enterprise Performance Management (SAP EPM) está compuesto por más de una decena de aplicaciones, entre las que destaca SAP Business Planning and Consolidation (SAP BPC).  A través de estas aplicaciones puede requerirse un intercambio de datos, pero en muy casos los productos ofrecen la funcionalidad necesaria para trasladar los datos entre una aplicación y otra. Para estas necesidades, existe SAP Financial Information Management (SAP FIM).

SAP FIM el nexo entre las aplcaciones SAP EPM

SAP FIM es un componente de SAP EPM, una aplicación Web que se basa en SAP Data Services que actúa como puente o nexo entre los productos del portfolio SAP EPM. SAP Data Services es una herramienta ETL (Extracción, Transformación y Carga) que facilita las tareas de extracción de datos desde fuentes SAP y no-SAP a otros repositorios de datos.  A continuación se señala las posibilidades de tratamiento de datos que ofrece SAP FIM:

Posibilidades de tratamiento de datos que ofrece SAP FIM

Productos y versiones del portfolio SAP EPM

Cuando se habla de SAP Enterprise Performance Management (SAP EPM, el portfolio o cartera de producto dirigidos a contribuir a mejorar la eficiencia de los procesos financieros y estratégicos de los negocios) pareciera que sólo existiera SAP Business Planning and Consolidation (SAP BPC).


Cuando se habla de SAP Enterprise Performance Management (SAP EPM, el portfolio o cartera de producto dirigidos a contribuir a mejorar la eficiencia de los procesos financieros y estratégicos de los negocios) pareciera que sólo existiera SAP Business Planning and Consolidation (SAP BPC).

Portfolios o carteras de productos de SAP

SAP EPM está compuesto por más de una docena de productos, cada uno con un papel específico en la automatización de los procesos de negocios, muchos de ellos totalmente desconocidos para la mayoría, pero si a esta amplitud de propuestas, consideramos la variedad de versiones soportadas actualmente, la confusión está servida.  A continuación la relación de productos y versiones del portfolio SAP EPM:

  • SAP Planning and Consolidation, version for Microsoft (SAP BPC MS: 10.0 y 7.5)
  • SAP Planning and Consolidation, version for SAP Netweaver (SAP BPC NW: 10.0, 7.5 y 7.0)
  • SAP Strategy Management (SAP SM: 10.0 y 7.5)

  • SAP Profitability and Cost Management (SAP PCM: 10.0 y 7.5)
  • SAP Financial Consolidation (SAP FC: 10.0, 7.5 y 7.0)
  • SAP Disclosure Management (SAp DM: 10.0)
  • SAP Intercompany (SAP IC: 10.0 y 7.5)
  • SAP Financial Information Management (SAP FIM: 10.0, 7.5 y 7.0)
  • SAP EPM Add-in for Microsoft Office (10.0)
  • SAP Notes Management (10.0)
  • SAP Spend Performance Management (2.1)
  • SAP Sustainability Performance Management (3.0)
  • SAP Supply Chain Performance Management (1.0 y 2.0)

Se debe tener presente que un portfolio EPM (sea del fabricante que sea) se apoya en el Business Intelligence (BI), por lo que si estamos valorando un nuevo desarrollo se debe conocer el alcance y funcionalidades que nos ofrecen los productos de los porfolios SAP EPM y SAP BI (e inclusive lo que nos ofrece SAP GRC), no vaya ser que terminemos «inventado» un sistema de control de costes basado el la técnica ABC o «diseñemos» otro que defina modelos predictivos en SAP BPC, existiendo SAP PCM y SAP Predictive Anlaysis, respectivamente.

Principales productos, complementos y fuentes de datos del porfolio SAP EPM

SAP BPC nos ofrece muchas facilidades para automatizar variedad de procesos, pero si contamos con una herramienta especifica para cubrir una necesidad del negocio, ¿no resultaría más económico para el desarrollo y mantenimiento utilizar un producto que conlleva todo o gran parte del proceso que deseamos automatizar?

Referencia: SAP Note 1272310

Bienvenidos programadores en VBA, también en “SAP Analysis, edition for MS Office”

Aun es usual encontrar en el mundo SAP, usuarios o consultores, con su permiso, “tradicionales”, que no dejan de extrañarse que Visual Basic for Application (VBA, más conocido como “macros para Office”) pueda utilizarse en una implementación de un producto. Es innegable que el software más usado en las empresas es MS Excel, han sucumbido todos los intentos por sustituirlo, es por eso que ya son varios los productos que utilizan esta interfaz para facilitar las tareas de entrada de datos o presentación de información.


Aun es usual encontrar en el mundo SAP, usuarios o consultores, con su permiso, “tradicionales”, que no dejan de extrañarse que Visual Basic for Application (VBA, más conocido como “macros para Office”) pueda utilizarse en una implementación de un producto.  Es innegable que el software más usado en las empresas es MS Excel, han sucumbido todos los intentos por sustituirlo, es por eso que ya son varios los productos que utilizan esta interfaz para facilitar las tareas de entrada de datos o presentación de información.

SAP Analysis, edition for MS Office 1.3 (menu01)

En SAP tenemos el SAP EPM Add-in (Cliente de SAP BPC 10.0 y otros productos del portfolio SAP EPM) y SAP Analysis, edition for MS Office que se incorporan a la interfaz de los productos MS Office como complementos (Add-in).  Estos dos Add-ins no tan sólo se acoplan a las opciones de menú sino que también ofrecen la posibilidad, a través de un conjunto de rutinas (denominadas API), automatizar tareas o funcionalidades programando en VBA.

SAP Analysis, edition for MS Office 1.3 (ribbon01)

En el caso de SAP Analysis, edition for Miscrosoft Office a través de sus denominados métodos APIs y con VBA podemos hacer cosas tales como cambiar la interfaz, agregando o retirando opciones del menú o de la cinta (ribbon), recuperar valores específicos de las fuentes de datos, o iniciar una sesión.

Muestra VBA con métodos API de Analysis for Office. Las dimensiones que no estén en el eje de línea o columna se agregan a una cadena que se muestra en el cuadro de diálogo de mensaje estándar con el método API SAPAddMessage

Resulta un poco peyorativo referirnos a VBA como simplemente “macros” cuando se trata de un lenguaje de programación completo, con muchas posibilidades de personalizar y mejorar la experiencia del usuario.  Gestionando adecuadamente las expectativas y realizando un desarrollo ordenado, el uso de VBA en un proyecto de SAP BPC o SAP Analysis for MS Office no tiene que ser caótico.