I'm working on some code that creates ACE contexts programatically, directly in the MDB. This has been done for a long time and works fine. The issue is, the calculations only begin if we go into the ACE Manager manually and change the Status from On or Off to Out of Service, then Resume. There is nothing wrong with the calculations, they have functioned for years.
I've carefully read all the similar posts about this and the warnings that this is not officially supported. I observed that the ACE libraries have been changed as of version 2.1.50, and these are the ones I'm trying to use, but the methods are different than what has been posted in the past.
The main problem I'm having is specifying the path for the ACE methods. I can't seem to retrieve a module, and until I can do this, I will not be able to use the method that should change the Status correctly.
In the MDB, I have a path like this:
%OSI\ACEClassLibraries\BCMS_Rack\Rack_ONEToEightCircuit\Bay IDC1 - 1st Floor_BY1F01C01-AH010
Using PI SDK, I can access the module just fine (or create them or delete them, etc.) when logged into the PI server. The Name property of the module is: \\by2\BCMS_BY1\Bay IDC1 - 1st Floor\Racks\BY1F01C01-AH010
In ACE Manager, the same context object has a path like this:
by2.default\BCMS_Rack\Rack_ONEToEightCircuit\\\by2\BCMS_BY1\Bay IDC1 - 1st Floor\Racks\BY1F01C01-AH010
I have tried every conceivable combination in the method PIACEMDBFunctions.GetPIACEModule(aceModulePath). If I can't access the module this way, then I'm not going to be able to reference the context using the PIACEMDBFunctions.ChangePIACEEMCStatus(modulePath, newStatus) method, which is my primary goal to see if I can programatically get the calculations to start.
Any help in determining what the path for the ACE methods needs to look like would be greatly appreciated!