Knowledge base KB0169

Lorsque je modifie des rapports SAP BEx dans Excel, je reçois un message d'erreur de think-cell contenant '_ASSERT ::IsWindow(hWnd)'

Lors de la modification de rapports SAP BEx 7.X (SAP NetWeaver BUSINESS EXPLORER ANALYZER) dans Excel, je reçois un message d'erreur de think-cell. Le texte du message fait référence à l'erreur '_ASSERT ::IsWindow(hWnd)'.

Cause

Le complément BEx Excel, BExAddin.dll, utilise l'API Windows SetWindowLongA pour accrocher/décrocher les fenêtres dans Excel. Un hook est un mécanisme permettant à une fonction d'intercepter des événements avant qu'ils n'atteignent une application. La fonction peut agir sur les événements et, dans certains cas, les modifier ou les ignorer. La technique que SAP Bex utilise pour le hooking peut générer des erreurs en présence de plusieurs compléments.

Un problème se produit couramment lorsque des compléments tentent de se débrancher eux-mêmes après qu'un autre complément a écrasé le hook de fenêtre qu'ils ont défini. Malheureusement, le simple rappel de l'ancienne procédure de fenêtre avant le hooking et la redéfinition lors de la suppression du débranchement n'est pas toujours suffisant. Voici une description détaillée de ce problème dans l'article suivant :
http://blogs.msdn.com/oldnewthing/archive/2003/11/11/55653.aspx

Le problème peut être évité en basculant vers les fonctions SetWindowSubclass/RemoveWindowSubclass/DefSubclassProc au lieu des fonctions SetWindowLong/CallWindowProc, afin de remédier à cette situation :
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

Solution

Le support SAP (SAP Installed Base Maintenance & Support - BW) nous a informés que la méthode de hooking/unhooking d'Excel a été modifiée dans le produit successeur 'SAP BusinessObjects Analysis, edition for Microsoft Office'. BEx Analyzer est utilisable en maintenance uniquement, ce qui empêche d'effectue des changements architecturaux de base.

L'assistance SAP vous suggère de migrer vers « SAP BusinessObjects Analysis, édition pour Microsoft Office » pour éviter ce problème.

En outre, le support SAP vous suggère de désactiver la fonction de glisser-déposer de BEx Analyzer en tant que solution provisoire. Pour plus de détails sur cette procédure, veuillez contacter le support SAP.

Si vous contactez le support SAP au sujet de ce problème, faites référence à "SAP OSS note 1019869 / 2011".