Knowledge base KB0169

Quando si modificano report SAP BEx in Excel, si riceve il seguente messaggio di errore think-cell '_ASSERT ::IsWindow(hWnd)'

Quando si modificano repor SAP BEx 7.X (SAP NetWeaver BUSINESS EXPLORER ANALYZER) in Excel, si riceve un messaggio di errore think-cell. Il testo del messaggio fa riferimento all'errore, '_ASSERT ::IsWindow(hWnd)'.

Causa

Il componente aggiuntivo BEx Excel BExAddin.dll utilizza un API Windows chiamato SetWindowLongA per agganciare/sganciare finestre in Excel. Un gancio è un meccanismo mediante il quale una funzione può intercettare eventi prima che raggiungano un'applicazione. La funzione può agire sugli eventi e, in alcuni casi, modificarli o eliminarli. La tecnica utilizzata da SAP BEx per agganciare può causare errori quando sono presenti contemporaneamente vari componenti aggiuntivi.

Un problema comune si presenta quando i componenti aggiuntivi tentano di sganciarsi dopo che un altro componente aggiuntivo ha sovrascritto il gancio della finestra da loro impostato. Sfortunatamente non è sempre sufficiente semplicemente ricordare la vecchia routine finestra prima dell'aggancio e reimpostarla quando avviene lo sgancio. Il seguente articolo riporta una descrizione dettagliata di questo problema:
http://blogs.msdn.com/oldnewthing/archive/2003/11/11/55653.aspx

È possibile evitare il problema utilizzando le funzioni SetWindowSubclass/RemoveWindowSubclass/DefSubclassProc invece di SetWindowLong/CallWindowProc che consentono di risolvere al meglio questa situazione:
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

Soluzione

L'assistenza di SAP (SAP Installed Base Maintenance & Support - BW) ci ha informati del fatto che è stato modificato il metodo di aggancio/sgancio di Excel nel prodotto successivo 'SAP BusinessObjects Analysis, versione per Microsoft Office'. BEx Analyzer è solo in manutenzione e le modifiche di base all'architettura non possono più essere eseguite.

L'assistenza di SAP suggerisce di passare a "SAP BusinessObjects Analysis, versione per Microsoft Office" per evitare questo problema.

Inoltre, l'assistenza di SAP suggerisce come soluzione alternativa di disabilitare la funzionalità di trascinamento della selezione in BEx Analyzer. Per dettagli su come farlo, contattare l'assistenza di SAP.

Se si contatta l'assistenza di SAP per richieste su questa questione, fare riferimento a "SAP OSS nota 1019869 / 2011".