VMware Horizon Community
Venomed
Contributor
Contributor

COM Factory issue in Sage 50 Accounts 2012 ThinApp

Hi everybody,

I have created a Sage 50 Accounts 2012 ThinApp and it is working almost just fine. All the primary functions seem to be operational and it is running in a production environment. Now I've been asked to enable its "Third Party Activation" part which seemed easy enough but I seem to be stuck with a COM activation issue.

I'm testing the factory by running a virtualised powershell with command "New-Object -ComObject SDOEngine.18". The build machine runs the command and returns me the COM factory. However, running the same command on same ThinApp on a clean test machine fails with following error:

New-Object : Retrieving the COM class factory for component with CLSID {3CCA7768-E5C4-420E-B75D-754E0477A028} failed due to the following error: 800401f8.
At line:1 char:11
+ New-Object <<<<  -ComObject SDOEngine.18
    + CategoryInfo          : ResourceUnavailable: (:) [New-Object], COMExcept
   ion
    + FullyQualifiedErrorId : NoCOMClassIdentified,Microsoft.PowerShell.Comman
   ds.NewObjectCommand

To me that feels like there is something that thinapp is not picking up from build machine and hence the activation failure but as far as I can tell, all the registry keys / files are in the right places in the virtual environment (and operational as the application runs fine on its own).

I am using the following virtualisation settings in package.ini

VirtualizeExternalOutOfProcessCOM=0

ChildProcessEnvironmentExceptions=WINWORD.EXE;EXCEL.EXE;POWERPNT.EXE;OUTLOOK.EXE;MOC.EXE

if there is any other information you need, please feel free to ask. I'm a software developer, so technical stuff is not a problem.

Many thanks in advance!

Tags (2)
0 Kudos
5 Replies
shrivastavaa
Enthusiast
Enthusiast

Enable regedit as a entry point, build the package.

Launch virtual regedit, and check if {3CCA7768-E5C4-420E-B75D-754E0477A028} exist at HKCR\CLSID.  update here.

0 Kudos
Venomed
Contributor
Contributor

Thanks for input. Yes it exists along with all the other ClsIds / ProgId.

(I can see them on clean machine that doesn't have anything installed)

0 Kudos
shrivastavaa
Enthusiast
Enthusiast

So these are available natively? I I mean not inside the package but in the system registry? If so, you may want to check what file it is pointing to and if that file exist inside the virtual package, etc. Log monitor logs should put some light on it. You tried looking into them?

0 Kudos
Venomed
Contributor
Contributor

Sorry for the confusion. No I meant they're visible inside the virtual package on a clean machine through registry edit. Sage itself can see these keys as well. However I need to get a third part application integrated into sage and even though I have enabled third party integration in sage, nothing manages to create these COM objects.

The same thing works fine in normal environment. LogViewer, I guess I need to dive into that indeed. I've never used it but I'll google it up. Thanks.

0 Kudos
Venomed
Contributor
Contributor

Finally figured out the problem behind this. ThinApp was capturing 8.3 Directory Path for sage for some reason and that path was changing between capturing machine and deployment environment.

Manually going into HKEY_LOCAL_MACHINE.txt and changing C:\Progra~3 to C:\Program Files (x86)\Sage.. fixed the problem.

Hope this saves somebody else the massive time that I spent figuring this tiny problem out.

0 Kudos