Skripting mit axcomhelper

enaio® 11.0 »

Neben dem präferierten Weg über Registry-Einstellungen gibt es für Umstellungen einen technischen Weg über einen Wrapper. Das 64-Bit Serversetup installiert und registriert unter \<SERVER_INSTALL>\win32\ unsere Standard-COM-Module in einer 32-Bit Version. Die dort ebenfalls installierte Komponente axcomhelper.exe ist ein Wrapper um beliebige COM-Module und sollte in Ihren Skripten eingebunden werden, um ein 32-Bit COM-Modul zu instanziieren und im folgenden Code zu verwenden. Die folgende Beschreibung gilt für Ihre Skripte, wenn Sie COM-Objekte per CreateObject erstellen.

In einem Serverskript wird Ihnen über den 'RunningContext' eine Instanz dieses Wrappers hineingereicht, wodurch ermittelt wird, ob der Server in einer 32-Bit oder in einer 64-Bit Version vorliegt.

Durch Überschreiben der Windowsfunktion zum Instanziieren eines COM-Objekts durch eine eigene Skriptfunktion an zentraler Stelle, können Sie nun erreichen, dass Ihr bisheriger Skriptcode, sowohl unter einem 32-Bit, als auch unter einem 64-Bit Server, lauffähig ist.

Eine Beispiel-Implementierung einer solchen Funktion in einem workflow-seitigen Serverskript sehen Sie im Folgenden:

Function CreateObject(ClassName)
    Set CreateObject = Nothing
    If runningcontext.comhlp32 Is Nothing Then
        runningcontext.logger.Error "Der COM-Helper 'axcomhlp32.exe' steht nicht zur Verfügung"
        Exit Function
    End If
    runningcontext.comhlp32.Is64Bit = runningcontext.Is64BitServer
    Set CreateObject = runningcontext.comhlp32.CreateObject(ClassName)
End Function

Bitte beachten Sie, dass der 'RunningContext' in DMS-seitigen Skripten als 'rc' angesprochen wird.