1

I have an application instance, backed by a web service using OIM Webservices Connector.

This connector is used in a synchronous manner by OIM, so when I create a new account in OIM for this application instance, the webservice calls the partner link's method.

Until the method ends its execution, the OIM screen hangs (as expected).

What seems strange to me is that, no matter the partner link's method executes successfully or not (when it does not execute properly, it throws an exception), the OIM operation actually ignores the exception and completes the operation.

enter image description here

Even if I explicitly throw an exception in the BPEL, I can see the error in the webservice log in weblogic, but the OIM method completes anyway.

enter image description here enter image description here

What one would expect from a situation like this, I guess, is that OIM could just give an error message on the screen, because the operation failed. But no, OIM ignores the errors and go on.

Then I've tried to change the process definition in Design Console to force the process to stop on any error, setting the flag "required for completion" below

enter image description here

So I think I am missing something here

How can I make OIM abort some operation when the webservice connector throws an exception?

Leo
  • 6,480
  • 4
  • 37
  • 52

1 Answers1

2

Assuming you're throwing a ConnectorException, check in the 'Responses' tab that you have that exception mapped, and in the 'Task to Object Status Mapping' you're setting the desired target Object Status for the object status setted before.

Joao Ramalho
  • 186
  • 3
  • how exactly do i do that? – Leo Jun 30 '15 at 12:36
  • In the 'Responses' tab add a record like follows: CONNECTOR_EXCEPTION;;R. In the 'Task to Object Status Mapping' search for the 'R' status and assign a 'Provisioning' object status. – Joao Ramalho Jun 30 '15 at 13:22
  • thanks. for the sake of curiosity, where in the documentation I can find this info? – Leo Jun 30 '15 at 14:26
  • well, I think I've got what you've suggested. Basically, I can set the account status to something else on an error. this is not exactly what I am looking for. What I want is to get an error message in the UI instead of the "Sucessfully Completed the Operation". the problem seems to be that maybe, OIM just considers the operation a success if it can submit a request (and then the user must check if the request status was completed, etc) one problem is that is not clear for the "non-tech" user. The other is that if I rename a login, no matter if the process completed, OIM will rename it – Leo Jul 01 '15 at 04:20
  • What oim is telling you is that the request was successfully submitted, the result of that operation (if the resource is provisioned or not) may take several minutes to complete depending on the partner link quickness, or for example if that operation must be approved by someone, it may take a day or two until is completed, so seems a bit unreasonable to me to make the user wait that long in the oim catalog page. – Joao Ramalho Jul 01 '15 at 08:31
  • OIM web service connector is not asynchronous, that's for sure. The UI hangs until the partner link web service method completes, that's why I can't understand why OIM doesn't simply show the error on the screen. OTOH, I agree with your argument for a disconnected resource, which waits for a some user approval, but that's not the case. – Leo Jul 01 '15 at 10:14