Among the 19 different available functions on the SPML (WSDL), are: SPMLResumeRequest – resumes a suspended user SPMLSuspendRequest – suspends an active user SPMLActiveRequest – queries the ‘active’ attribute of the user in the OIM database, returns true for active, false for suspended.
I have tried SPMLActiveRequest at a later order, and it still holds the old value.. meaning if the an active user is being suspended, it still returns true indicating the suspension has not yet happened. This is because the whole filter operation happens in that same fraction of time, sometimes in the same 1/100th of a second it being a very ‘thin’ form with a total of about 70 ‘cheap’ filter operations to go through – no expensive time consuming queries. Even the WSDL set fields filters execute in almost that same fraction.. This is why I was thinking of adding a delay between the SPMLResumeRequest or SPMLSuspendRequest and SPMLActiveRequest. Funny thing that you pointed out about them (OIM) querying their person record. They have conveniently assumed that their psoID could be used as that foreign key, to query for a user. They haven’t considered that this web service they have designed will be used more often by a non OIM related product which will not know how to fetch that psoID.. So we have tasked our OIM team a few weeks ago with providing us with another custom web service where we use the username as an input for the query and get the psoID as output, which we will use for these SPML requests.. Our ultimate goal is to add a psoID key to the CTM form, so this would not need to be queried once present on the AR System.. I do not know the design of their data structures, so I’m not criticizing their choice of a primary key, but it would be nice if the username was that key instead of psoID, assuming it must be a unique key as well in their database.. Joe From: Sabyson Fernandes Sent: Thursday, May 31, 2012 10:04 AM Newsgroups: public.remedy.arsystem.general To: arslist@ARSLIST.ORG Subject: Re: PAUSE or SLEEP a filters in between actions... ** Sounds more of an a synchronous interface and it appears you have to do some degree of response/error handling with this to account for any strange return values if the remote application is down etc. I would suggest taking the return value and updating the form in Remedy and have filters at a later order fire to check the value and process the record accordingly. Now if you get a return value of Pending, you can call another filter that can consume a WS to query OIM using the person id or other foreign key field (assuming they publish web service that allows you to query the record) and hopefully that will bring the actual value. If you still have pending, you could then handle these records via an escalation that causes this filter to fire again. If you get any other values or no value returned you could flag the record for investigation. Hope this helps. Saby -------------------------------------------------------------------------------- From: Joe Martin D'Souza <jdso...@shyle.net> To: arslist@ARSLIST.ORG Sent: Wednesday, May 30, 2012 5:18 PM Subject: Re: PAUSE or SLEEP a filters in between actions... I did find similar threads too on some oracle forums.. And it would basically work - only the user has to be granted dbms_lock which by default the ARADMIN user is not.. So far most of my team are in favor of the WSDL I have created and checking possibilities of the OIM team consuming it upon completion of the request we send to them.. We are not sure if they can do that, but its an angle worth pursuing.. Personally I'm half and half for it as it does not feel like its real time. If their processing time for this operation had a high degree of variance, I would find it more acceptable than I do right now. But most of the others here like this idea so it may possibly be the one that may get accepted unless something better comes up.. Joe -----Original Message----- From: Longwing, LJ CTR MDA/IC Sent: Wednesday, May 30, 2012 4:53 PM Newsgroups: public.remedy.arsystem.general To: arslist@ARSLIST.ORG Subject: Re: PAUSE or SLEEP a filters in between actions... My brief search came up with execute dbms_lock.sleep(60); for a 60 second sleep...although I have no way to test it :) -----Original Message----- From: Action Request System discussion list(ARSList) [mailto:arslist@ARSLIST.ORG] On Behalf Of Joe Martin D'Souza Sent: Wednesday, May 30, 2012 2:39 PM To: arslist@ARSLIST.ORG Subject: Re: PAUSE or SLEEP a filters in between actions... We are on Oracle.. I was in fact searching for an Oracle equivalent.. Great minds :-) -----Original Message----- From: Longwing, LJ CTR MDA/IC Sent: Wednesday, May 30, 2012 4:31 PM Newsgroups: public.remedy.arsystem.general To: arslist@ARSLIST.ORG Subject: Re: PAUSE or SLEEP a filters in between actions... Joe, If using SQL Server you could issue a Direct SQL of waitfor delay "00:00:01" this would call the DB and would return after SS seconds or HH:MM:SS if you wanted more than SS seconds....but I agree with everyone else...setting hard 'pauses' in place is not ideal, but sometimes necessary. -----Original Message----- From: Action Request System discussion list(ARSList) [mailto:arslist@ARSLIST.ORG] On Behalf Of Joe Martin D'Souza Sent: Wednesday, May 30, 2012 2:06 PM To: arslist@ARSLIST.ORG Subject: PAUSE or SLEEP a filters in between actions... ** 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"