Base de conocimientos KB0169

Al editar informes SAP BEx en Excel, recibo un mensaje de error de think-cell que contiene '_ASSERT ::IsWindow(hWnd)'

Al editar informes de SAP BEx 7.X. (SAP NetWeaver Business Explorer Analyzer) en Excel, se recibe un mensaje de error de think-cell. El texto del mensaje hace referencia al error '_ASSERT ::IsWindow(hWnd)'.

Causa

El archivo BExAddin.dll del complemento BEx para Excel utiliza la API de Windows SetWindowLongA para enlazar/desenlazar ventanas en Excel. Un enlace es un mecanismo mediante el que una función puede interceptar eventos antes de que lleguen a una aplicación. La función puede actuar sobre los eventos y, en algunos casos, modificarlos o descartarlos. La técnica utilizada para enlazar por SAP BEx puede provocar errores cuando hay varios complementos presentes al mismo tiempo.

Un problema común ocurre cuando los complementos intentan desenlazarse a sí mismos después de que otro complemento haya sobrescrito el enlace de ventana que establecieron. Desafortunadamente, recordar simplemente el antiguo proceso de ventana antes de enlazar y establecerlo de nuevo al desenlazar no siempre es suficiente. Existe una descripción detallada de este problema en el siguiente artículo:
http://blogs.msdn.com/oldnewthing/archive/2003/11/11/55653.aspx

El problema se puede evitar cambiando a las funciones SetWindowSubclass/RemoveWindowSubclass/DefSubclassProc en lugar de a SetWindowLong/CallWindowProc para proporcionar resistencia frente a esta situación:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb762102
http://msdn.microsoft.com/en-us/library/windows/desktop/bb762094
http://msdn.microsoft.com/en-us/library/windows/desktop/bb776403

Solución

El soporte técnico de SAP (SAP Installed Base Maintenance & Support - BW) nos ha informado de que han cambiado el método de enlace/desenlace de Excel en el producto sucesor "SAP BusinessObjects Analysis, edition for Microsoft Office". BEx Analyzer solo está en mantenimiento y ya no se hacen cambios básicos en la arquitectura.

El soporte técnico de SAP sugiere migrar a "SAP BusinessObjects Analysis, edition for Microsoft Office" para evitar este problema.

Por otra parte, el soporte técnico de SAP sugiere como solución alternativa deshabilitar la funcionalidad de arrastrar y soltar en BEx Analyzer. Para obtener información sobre cómo hacer esto, póngase en contacto con el soporte técnico de SAP.

Si se pone en contacto con el soporte técnico de SAP, haga referencia a "SAP OSS note 1019869 / 2011".