ID: Q174222
The information in this article applies to:
When a custom scriptor component written in VBScript is executed, the following error may occur based on whether or not error handling code is in place in the component.
Commerce.OrderPipeline error '80020009'
::OrderExecute() failed for component[0x..] hr: 0x8000ffff PROGID:
Commerce.Scriptor.1 Cannot Execute Script SetScriptSite Catastrophic
failure
<file name>, <line number>
The first time a scripting error is encountered, the pipeline returns the
error and a description of the scripting error. For example, if you attempt
to divide an integer by zero in your component, you receive the following
error message the first time pipeline is run:
Commerce.OrderPipeline error '80020009'
::OrderExecute() failed for component[0x..] hr: 0x80004005 PROGID:
Commerce.Scriptor.1 Cannot Execute Script Execute invocation failed
Unspecified error Division by zero
<file name>, <line number>
After the scriptor component encounters the divide by zero error,
subsequent executions of the order processing pipeline fail with the
"catastrophic failure" error message.
The problem occurs because no error handling code is written in the custom component.
To work around this problem, always specify "On Error Resume Next" in the component's VBScript code.
The following information about "On Error Resume Next" is included in the online VBScript reference in Visual Studio:
Syntax
On Error Resume Next
Remarks
If you don't use an On Error Resume Next statement, any run-time error
that occurs is fatal; that is, an error message is displayed and
execution stops.
On Error Resume Next causes execution to continue with the statement
immediately following the statement that caused the run-time error, or
with the statement immediately following the most recent call out of the
procedure containing the On Error Resume Next statement. This allows
execution to continue despite a run-time error. You can then build the
error-handling routine inline within the procedure. An On Error Resume
Next statement becomes inactive when another procedure is called, so you
should execute an On Error Resume Next statement in each called routine
if you want inline error handling within that routine.
Additional query words: merchant prodcommerce
Keywords : kbprg CommMisc
Version : Windows:2.0
Platform : WINDOWS
Issue type : kbprb
Last Reviewed: November 4, 1997