Regarding adding a delay between Filter operations you could use a ping in a Set Field Run Process in a DO field to delay things.
Windows: PING 1.1.1.1 -n 1 -w 10000 >NUL That will wait for 10 seconds and then continue on. Adjust -w as needed. Jason On Thu, May 31, 2012 at 8:32 AM, Joe Martin D'Souza <jdso...@shyle.net>wrote: > ** > > 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 <sebyr...@yahoo.com> > *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 > _attend WWRUG12 www.wwrug.com ARSlist: "Where the Answers Are"_ > _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are"