Databases Reference
In-Depth Information
Click on the
search
icon for the
Fault QName
(circled in the previous screenshot),
and this will launch the
Fault Chooser
dialog box. From here, you can browse to the
fault that we want to catch, which, in our case, is the
invalidCreditCard
fault defined
in the WSDL file of the
CreditCard
Partner
Links
.
There is also the option to specify a fault variable to hold details of the fault
returned. This should be of the type
Message
and match the message type defined
for the fault, that is,
invalidCreditCardFault
for the case where the fault is
invalidCreditCard
(as defined in the WSDL file for this service).
Once we have caught the fault, we need to specify the activities to perform in
order to handle the fault. In our case, we need to undo any activity completed
in previous scopes using the
compensate
activity before we return the fault
invalidUserDetails
to the caller of this process.
However, the current scope is not the correct context for triggering the required
compensation (we will see why in a moment), so our fault handler needs to capture
the reason for the fault and throw a new fault that can be handled at the appropriate
place within our process.