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"

Reply via email to