APAR status
Closed as Permanent restriction.
Error description
Scenario: 1. Launch CATIA V5R20SP5 64bit version on Windows 7 64bit platform. 2. Select menu "Tools -> Macros -> Macro 3. Run attached "ConnectTest.catvba". 4. "CATIA V5" dialog box is displayed. 5. Click OK, "Normal End" message is displayed. This is normal behavior. 6. Select menu "Tools -> Macros -> Macro. 7. Run attached "ConnectTest.catvba" again. 8. "CATIA V5" dialog box is displayed. 9. Do not click OK.Wait for approx 30 minutes. (This is important) 10. Click OK. PROBLEM: Error message is displayed. "Run-time error ?-2147417856 (800 10 100)' : Automation error System call failed. Expected result: If click "OK" button 30 minutes later, "Normal End" message should be displayed.
Local fix
empty
Problem summary
Scenario: 1. Launch CATIA V5R20SP5 64bit version on Windows 7 64bit platform. 2. Select menu "Tools -> Macros -> Macro 3. Run attached "ConnectTest.catvba". 4. "CATIA V5" dialog box is displayed. 5. Click OK, "Normal End" message is displayed. This is normal behavior. 6. Select menu "Tools -> Macros -> Macro. 7. Run attached "ConnectTest.catvba" again. 8. "CATIA V5" dialog box is displayed. 9. Do not click OK.Wait for approx 30 minutes. (This is important) 10. Click OK. PROBLEM: Error message is displayed. "Run-time error ???-2147417856 (800 10 100)' : Automation error System call failed. Expected result: If click "OK" button 30 minutes later, "Normal End" message should be displayed.
Problem conclusion
THIS PROBLEM IS PERMANENT RESTRICTION IN CATIA V5R20 LEVEL Additional Closure Information: Incident Diagnosis: a vba macro fails to run after a long expectation. Reason: First of all, it must be known that Microsoft doesn???t give access to a 64 bit version of VBA. Then VBA shouldn???t be available in a 64 bit application. I don???t know other 64 bits application than CATIA that provides VBA integration. Attached file ???VBA integration within V5 on Windows 64bit.pptx??? explains our 64 bits architecture. As it is explains in the document, the communications between VBA (and the form it creates in the scenario) and CATIA are done thanks to COM. COM uses windows message to do that job. Because CATIA is frozen during a macro execution (*), the incoming windows message are not treated but queued, the windows message queue becomes full at some time (a long time in fact) and the communication is no more possible (the call to DELMIA.caption fails in the scenario). This problem is very well explained in this Microsoft site : http://blogs.msdn.com/b/carlos/archive/2008/11/25/troubleshoot ing-a-dcom-issue-case-study.aspx I???ve searched several ways to fix this issue but none is acceptable : - Implementing the IMessageFilter interface to remove CATIA incoming messages, particularly WM_TIMER messages that are the more frequent. It is dangerous as these messages are expected by some application components that will not react in case of removing. I cannot easily determine which components would be impacted but anyway in the future other component may uses this mechanism. - Implementing the IMessageFilter interface to treat CATIA incoming messages, particularly WM_TIMER messages. It can be dangerous as treating these messages will make the application be reactive. It is indeed safer during a macro execution to have the application blocked (i.e. windows messages are not treated) to avoid function reentrance. This is a similar issue than the DoEvents VBA function that is not forbidden but not recommended (http://support.microsoft.com/kb/118468/en-us ; http://office.microsoft.com/en-us/access-help/doevents-functio n-HA001228827.aspx ; http://stackoverflow.com/questions/3863641/doevents-doesnt-do- the-events-why). Moreover this fix is not needed as it is similar to the different proposed bypasses (RefreshDisplay, ???) that make the application be reactive during a replay macro. - Ask CATIA components to decrease the number of WM_TIMER that are sent. It???s not easy as these messages are used for internal communication then they are really needed. Moreover some messages are coming from the operating system (cf. E. step in previous Microsoft link ) then we cannot manage them. (*) To have this problem - the macro form must be modal because if not modal the macro execution will finish then CATIA will be reactive again. - the macro must be executed from ???tools/macro/macros/execute??? because if it is executed from the VBA editor CATIA is not frozen - with RefreshDisplay=false (default with VBA) because if RefreshDisplay is set to True the messagequeue is treated time to time even when CATIA is frozen By-Pass: set RefreshDisplay=true at the beginning of the macro
Temporary fix
Comments
APAR Information
APAR number
HE07113
Reported component name
CAA V5 NT>XP
Reported component ID
569151100
Reported release
520
Status
CLOSED PRS
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2011-05-19
Closed date
2011-11-04
Last modified date
2011-11-04
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Applicable component levels
[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSVJ2K","label":"CATIA"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"520","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]
Document Information
Modified date:
21 August 2024