That’s what I was asking them. They said that they ‘do stuff’ with our input internally before the record is marked true or false for active after which the status changes to a success or a failure if the operation to change the active value fails.. So what we are getting is actually a synchronous result of a ‘pending’ status.
One of the things we discussed with them is that if this is how their design is, if it is possible for them to consume a web service I have already created on the integration form, where they can query for their requestID and psoID (a combination that is unique on the integration form) and update the status field there using our custom WSDL that I created, when their operation is complete.. I have an update operation defined on the WSDL.. psoID is a unique person identifier on OIM and requestID is the ID of unique requests sent to OIM using their SPML services.. So this combo is always unique for every SPML request.. That way we can at least inform the user that the operation has been successfully accepted, will need some processing time and that they will get notified as soon as its complete.. which is possible through a filter notification as soon as an update is received from the WSDL I have created.. I’m personally not thrilled by this solution that much although I partly contributed to the idea. Its not truly real time when it could have been that considering that the lifespan of that intermediate status averages way below a tenth of a second.. From: Randeep Atwal Sent: Wednesday, May 30, 2012 4:45 PM Newsgroups: public.remedy.arsystem.general To: [email protected] Subject: Re: PAUSE or SLEEP a filters in between actions... ** ** If the call is actually synchronous, I'd tell the OIM side folks to expose the 'new status' Make it their problem; if they claim to provide a synchronous service, they should be able to show you the 'new status' straight away in the output response of the first call. If it is really an asynchronous service, you could get wild variations in response in prod environment, so I'd check that with them. (Especially if their downstream dependencies are undergoing maintenance) If it is asynchronous, you have to consider the non happy path scenario (ie more than a millisecond), and I'd still urge escalations in that case. Better to check that with them before coding based on what you see in a dev happy day scenario is my parting comment :-) Sent from my BlackBerry device on the Rogers Wireless Network -------------------------------------------------------------------------------- From: Joe Martin D'Souza <[email protected]> Sender: "Action Request System discussion list(ARSList)" <[email protected]> Date: Wed, 30 May 2012 16:35:55 -0400 To: <[email protected]> ReplyTo: [email protected] Subject: Re: PAUSE or SLEEP a filters in between actions... Randeep, Agreed about the blocking the thread concern, but that isn’t really a concern on this particular case.. It is noticed that the transitional status of pending is only a brief milli second.. However both synchronous as well as asynchronous WSDL calls returns that same transitional status. This status considering that operation is almost real time, is no value to me. I would rather know right off the bat if it failed or succeeded. The risk to blocking the thread because of the insignificant time involved is a risk I think I am prepared to take.. I did think of the escalation bit too (that’s basically the design of many BMC apps where such integrations are concerned like BMC CLM product)... But in our case we are doing a very synchronous task of enabling or disabling a user.. Once the request is sent, I’d rather know the results immediately.. Like switching on or off a light.. After clicking that switch I really do not want to be told by a light switch that my operation is accepted and that light may be turned off or on after 5 minutes.. Please come back and check the status of that light again.. I do appreciate your inputs though.. very valid points.. Joe From: Randeep Atwal Sent: Wednesday, May 30, 2012 4:23 PM Newsgroups: public.remedy.arsystem.general To: [email protected] Subject: Re: PAUSE or SLEEP a filters in between actions... ** ** I would recommend not waiting since the thread is blocked and this isn't good for thread scalability. I'd suggest: When you call the service, set your transaction status to sent, and populate a 'confim/retry datetime' for now plus x seconds) An escalation in a dedicated pool every minute, or what you consider a suitable period, to look for records where the transaction status is 'sent', and 'confim/retry datetime' > $TIMESTAMP' and should set a retry display field to trip a filter to call their second service to confirm completion, and mark the transaction as 'complete' (and set a archive/delete date for when you want this transaction archived or deleted) If their end is not complete, trigger a resend. Keep a count of retries and stop retrying when x number of retries is met. Also, set the 'confim/retry datetime' that expands with each retry, so you are not flooding them with retries after the target system comes up from e.g. Maintenance. This ideally has all transactions in a seperate ar form. Sent from my BlackBerry device on the Rogers Wireless Network -------------------------------------------------------------------------------- From: "Shellman, David" <[email protected]> Sender: "Action Request System discussion list(ARSList)" <[email protected]> Date: Wed, 30 May 2012 16:10:46 -0400 To: <[email protected]> ReplyTo: [email protected] Subject: Re: PAUSE or SLEEP a filters in between actions... Joe, I've used a simple counter in a filter guide to cause a pause in a filter operation. Basically the old programming loop counter to slow down a process. The filter guide loops until the counter reaches a set value. Dave On May 30, 2012, at 4:05 PM, "Joe Martin D'Souza" <[email protected]> wrote: ** We are updating an identity management system (OIM) using its SPML based WSDL. During the operations to suspend or resume a user the output status of this operation seems to always be ‘pending’ – which in reality is really an intermediate status before ‘success’ or ‘failure’. The lifespan of this intermediate status is just a brief fraction of a second before the update either succeeds or fails.. From the service consumption point of view, this intermediate status of ‘pending’ is not quite meaningful other than the the fact that the WSDL call was successful. Given a choice I would have rather had the option to wait for those few micro seconds, at what point the status of either ‘success’.. They have a operation in the same web service to query the status. Following the update WSDL with a query WSDL is what I thought would be my answer to getting the new status (although I do not like the option of have another WSDL call when there could have been one)... This query however returns the status of the the user pre update. Filters as we know have no ‘SLEEP’ type action, else I could have used that to pause the filter operations in between the update and query operation. Ideally it would have been perfect if there was an ability to introduce a pause between the two WSDL calls. Is there any ‘creative’ way of inserting a pause in a filter operation that maybe I do not know of? Joe _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are"

