Anonymous_User Absent Member.
Absent Member.
432 views

How to check if a user is involved in another workflows?


Hi! There,

I am in the middle to refine a workflow to archive a user. However,
before the step of archiving user, the workflow needs to check if the
user is in the pending status and ready to be approved in another
workflow.
For example, we have another workflow to transfer a user from one agency
(agency A)to another agency(Agency B). After the agency A started the
workflow to transfer the user to agency B, and agency B has NOT picked
up the work to approve the transfer. At the same time, Agency A may make
mistake to archive the user, which will cause problem.
What I am going to do is add a step to check if the user is involved
into another workflows which are in the pending status. In our case, I
need to check if the user is in the transfer process. Can anyone tell me
how to do it?
I was told to use webservice call getAllProvisioningRequests at Novell
Provisioning Webservice. However, I tried use java and soapui to call
the webserice, and did NOT get any info from the webservice soap
response.

Thanks a lot

Joshua


--
joshuaniu
------------------------------------------------------------------------
joshuaniu's Profile: https://forums.netiq.com/member.php?userid=2960
View this thread: https://forums.netiq.com/showthread.php?t=45069

Labels (1)
0 Likes
15 Replies
Knowledge Partner
Knowledge Partner

Re: How to check if a user is involved in another workflows?

On 10/31/2012 10:14 AM, joshuaniu wrote:
>
> Hi! There,
>
> I am in the middle to refine a workflow to archive a user. However,
> before the step of archiving user, the workflow needs to check if the
> user is in the pending status and ready to be approved in another
> workflow.
> For example, we have another workflow to transfer a user from one agency
> (agency A)to another agency(Agency B). After the agency A started the
> workflow to transfer the user to agency B, and agency B has NOT picked
> up the work to approve the transfer. At the same time, Agency A may make
> mistake to archive the user, which will cause problem.
> What I am going to do is add a step to check if the user is involved
> into another workflows which are in the pending status. In our case, I
> need to check if the user is in the transfer process. Can anyone tell me
> how to do it?
> I was told to use webservice call getAllProvisioningRequests at Novell
> Provisioning Webservice. However, I tried use java and soapui to call
> the webserice, and did NOT get any info from the webservice soap
> response.


Post your query (sans real IP's and passwords) you sent via SoapUI and
maybe Steve or someone more familair with the WSDL can tell you if you
have any mistakes.

Also, you can watch in Server.log the request come in, if you turn on
the right logging. Which I forget offhand, which is the best for SOAP
tracing, but there is one...


0 Likes
Anonymous_User Absent Member.
Absent Member.

Re: How to check if a user is involved in another workflows?


Geoffc,

Thanks a lot for your reply. Here is the soap request generated by
soapui:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ser="http://www.novell.com/provisioning/service">
<soapenv:Header/>
<soapenv:Body>
<ser:getAllProvisioningRequestsRequest>
<!--Optional:-->
<ser:arg0>?</ser:arg0>
</ser:getAllProvisioningRequestsRequest>
</soapenv:Body>
</soapenv:Envelope>
No matter if I put value in the argo tag or not, the response is the
same. And the Soap response is as follows:
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<ns1:getAllProvisioningRequestsResponse
xmlns="http://www.novell.com/provisioning/service"
xmlns:ns1="http://www.novell.com/provisioning/service">
<result>
<provisioningrequest>
<category>accounts</category>
<description>Create Employee Account</description>

<digitalSignatureType>not-required</digitalSignatureType>
<id>cn=New Employee
Form,cn=RequestDefs,cn=AppConfig,cn=UserApplication,cn=DriverSet,o=state</id>
<items>
<dataitem>
<name>uid</name>
<value/>
</dataitem>
<dataitem>
<name>phone</name>
<value/>
</dataitem>
<dataitem>
<name>Password</name>
<value/>
</dataitem>
<dataitem>
<name>employeetype</name>
<value/>
</dataitem>
<dataitem>
<name>ncmemberofentity</name>
<value/>
</dataitem>
<dataitem>
<name>BusinessPhoneExt</name>
<value/>
</dataitem>
<dataitem>
<name>Address2</name>
<value/>
</dataitem>
<dataitem>
<name>initials</name>
<value/>
</dataitem>
<dataitem>
<name>Address1</name>
<value/>
</dataitem>
<dataitem>
<name>FullName</name>
<value/>
</dataitem>
<dataitem>
<name>ncmemberofsection</name>
<value/>
</dataitem>
<dataitem>
<name>reenter_email</name>
<value/>
</dataitem>
<dataitem>
<name>PasswordPolicyDisplay</name>
<value/>
</dataitem>
<dataitem>
<name>fname</name>
<value/>
</dataitem>
<dataitem>
<name>expire</name>
<value/>
</dataitem>
<dataitem>
<name>lname</name>
<value/>
</dataitem>
<dataitem>
<name>status</name>
<value>
<string>ACTIVE</string>
</value>
</dataitem>
<dataitem>
<name>ncuidgentype</name>
<value/>
</dataitem>
<dataitem>
<name>usertype</name>
<value>
<string>A</string>
</value>
</dataitem>
<dataitem>
<name>Country</name>
<value>
<string>US</string>
</value>
</dataitem>
<dataitem>
<name>ZipCode</name>
<value/>
</dataitem>
<dataitem>
<name>suffix</name>
<value/>
</dataitem>
<dataitem>
<name>City</name>
<value/>
</dataitem>
<dataitem>
<name>guid</name>
<value/>
</dataitem>
<dataitem>
<name>PasswordValidation</name>
<value/>
</dataitem>
<dataitem>
<name>ncmemberofdiv</name>
<value/>
</dataitem>
<dataitem>
<name>State</name>
<value/>
</dataitem>
<dataitem>
<name>email</name>
<value/>
</dataitem>
<dataitem>
<name>PasswordExpiration</name>
<value/>
</dataitem>
<dataitem>
<name>prefix</name>
<value/>
</dataitem>
<dataitem>
<name>tempcn</name>
<value/>
</dataitem>
<dataitem>
<name>searchDns</name>
<value>
<string/>
</value>
</dataitem>
<dataitem>
<name>userDN</name>
<value/>
</dataitem>
</items>
<legalDisclaimer xsi:nil="1"/>
<name>Create Employee Account</name>
<operation>0</operation>
</provisioningrequest>
</result>
</ns1:getAllProvisioningRequestsResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

As you can see from the soap response, there is no any info regarding
the pending workflows or user involved in the workflow.


--
joshuaniu
------------------------------------------------------------------------
joshuaniu's Profile: https://forums.netiq.com/member.php?userid=2960
View this thread: https://forums.netiq.com/showthread.php?t=45069

0 Likes
Anonymous_User Absent Member.
Absent Member.

Re: How to check if a user is involved in another workflows?

Congratulations, you've successfully submitted your first SOAP requests!

In your case, you've retrieved provisioning requests - to be more exact:
your "New Employee Form" as it was defined in IDM Designer.

The available SOAP calls and the required parameters can be found in the
"User Application: Administration Guide". In your case the optional
parameter would be a recipient DN.

You'd probably need some call with a custom query to check the state of
a specific workflow with some specific recipient/initiator. You need to
figure out what query serves you best.

Then execute one of the "getProcessesBy..." calls to check the state of
the other workflow process and parse the response.

But start with browsing the SOAP APIs and the samples in the Admin Guide.


Wolfgang

On 31.10.2012 19:04, joshuaniu wrote:
>
> Geoffc,
>
> Thanks a lot for your reply. Here is the soap request generated by
> soapui:
> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:ser="http://www.novell.com/provisioning/service">
> <soapenv:Header/>
> <soapenv:Body>
> <ser:getAllProvisioningRequestsRequest>
> <!--Optional:-->
> <ser:arg0>?</ser:arg0>
> </ser:getAllProvisioningRequestsRequest>
> </soapenv:Body>
> </soapenv:Envelope>
> No matter if I put value in the argo tag or not, the response is the
> same. And the Soap response is as follows:
> <SOAP-ENV:Envelope
> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <SOAP-ENV:Body>
> <ns1:getAllProvisioningRequestsResponse
> xmlns="http://www.novell.com/provisioning/service"
> xmlns:ns1="http://www.novell.com/provisioning/service">
> <result>
> <provisioningrequest>
> <category>accounts</category>
> <description>Create Employee Account</description>
>
> <digitalSignatureType>not-required</digitalSignatureType>
> <id>cn=New Employee
> Form,cn=RequestDefs,cn=AppConfig,cn=UserApplication,cn=DriverSet,o=state</id>
> <items>
> <dataitem>
> <name>uid</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>phone</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>Password</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>employeetype</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>ncmemberofentity</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>BusinessPhoneExt</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>Address2</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>initials</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>Address1</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>FullName</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>ncmemberofsection</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>reenter_email</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>PasswordPolicyDisplay</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>fname</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>expire</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>lname</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>status</name>
> <value>
> <string>ACTIVE</string>
> </value>
> </dataitem>
> <dataitem>
> <name>ncuidgentype</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>usertype</name>
> <value>
> <string>A</string>
> </value>
> </dataitem>
> <dataitem>
> <name>Country</name>
> <value>
> <string>US</string>
> </value>
> </dataitem>
> <dataitem>
> <name>ZipCode</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>suffix</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>City</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>guid</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>PasswordValidation</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>ncmemberofdiv</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>State</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>email</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>PasswordExpiration</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>prefix</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>tempcn</name>
> <value/>
> </dataitem>
> <dataitem>
> <name>searchDns</name>
> <value>
> <string/>
> </value>
> </dataitem>
> <dataitem>
> <name>userDN</name>
> <value/>
> </dataitem>
> </items>
> <legalDisclaimer xsi:nil="1"/>
> <name>Create Employee Account</name>
> <operation>0</operation>
> </provisioningrequest>
> </result>
> </ns1:getAllProvisioningRequestsResponse>
> </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
>
> As you can see from the soap response, there is no any info regarding
> the pending workflows or user involved in the workflow.
>
>

0 Likes
Anonymous_User Absent Member.
Absent Member.

Re: How to check if a user is involved in another workflows?


Dear Wolfgang,

Thanks a lot for your reply.
Regarding the getAllProvisioningRequests Web Service method, I tried to
put the recipient in the soap request, but the returning Soap Response
is the same as that of no recipient.
And I check the workflow database, there is a few more pending
workflows, but the returning soap response only has "New Employee Form"
element. Do you have idea about it?
I will check with other web service methods. Since I am not familiar to
the web service call, and the Admin Guide does not have the details
about each api, could you give me some advice on how to handle the
workflow? Are there any other ways than the web service calls?


--
joshuaniu
------------------------------------------------------------------------
joshuaniu's Profile: https://forums.netiq.com/member.php?userid=2960
View this thread: https://forums.netiq.com/showthread.php?t=45069

0 Likes
Knowledge Partner
Knowledge Partner

Re: How to check if a user is involved in another workflows?

On 11/1/2012 11:14 AM, joshuaniu wrote:
>
> Dear Wolfgang,
>
> Thanks a lot for your reply.
> Regarding the getAllProvisioningRequests Web Service method, I tried to
> put the recipient in the soap request, but the returning Soap Response


Show an example of how you put the recipient in... Wonder if it is a
formatting issue there? LDAP DN of course.

> is the same as that of no recipient.
> And I check the workflow database, there is a few more pending
> workflows, but the returning soap response only has "New Employee Form"
> element. Do you have idea about it?
> I will check with other web service methods. Since I am not familiar to
> the web service call, and the Admin Guide does not have the details
> about each api, could you give me some advice on how to handle the
> workflow? Are there any other ways than the web service calls?
>
>


0 Likes
Anonymous_User Absent Member.
Absent Member.

Re: How to check if a user is involved in another workflows?


Here it is:

<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ser="http://www.novell.com/provisioning/service">
<soapenv:Header/>
<soapenv:Body>
<ser:getAllProvisioningRequestsRequest>
<!--Optional:-->
<ser:arg0>cn=Chit ITSuser -
ae23fdef-321b-12a2-a54e-1f2d75441b40,ou=State,ou=Internal,ou=People,o=NC</ser:arg0>
</ser:getAllProvisioningRequestsRequest>
</soapenv:Body>
</soapenv:Envelope>


--
joshuaniu
------------------------------------------------------------------------
joshuaniu's Profile: https://forums.netiq.com/member.php?userid=2960
View this thread: https://forums.netiq.com/showthread.php?t=45069

0 Likes
Anonymous_User Absent Member.
Absent Member.

Re: How to check if a user is involved in another workflows?

Joshua,

this APIs has the purpose to list the requests (aka Provisioning
Requests) that the specified recipient CAN START.

It should match what the specified user sees when starting a new
provisioning request in UserApp.

To check the requests that a recipient HAS STARTED (aka Processes) - and
this is what you seem to be interested in - use the getProcesses... APIs
For testing simplicity, start with the getAllProcesses() call then go ahead.

Wolfgang

On 01.11.2012 16:14, joshuaniu wrote:
>
> Dear Wolfgang,
>
> Thanks a lot for your reply.
> Regarding the getAllProvisioningRequests Web Service method, I tried to
> put the recipient in the soap request, but the returning Soap Response
> is the same as that of no recipient.
> And I check the workflow database, there is a few more pending
> workflows, but the returning soap response only has "New Employee Form"
> element. Do you have idea about it?
> I will check with other web service methods. Since I am not familiar to
> the web service call, and the Admin Guide does not have the details
> about each api, could you give me some advice on how to handle the
> workflow? Are there any other ways than the web service calls?
>
>

0 Likes
Anonymous_User Absent Member.
Absent Member.

Re: How to check if a user is involved in another workflows?


Dear Wolfgang,

I run the getAllProcess() on SoapUI, but get nothing in the response
soap message. Do I do anything wrong?

Here is the soap request:

<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ser="http://www.novell.com/provisioning/service">
<soapenv:Header/>
<soapenv:Body>
<ser:getAllProcessesRequest/>
</soapenv:Body>
</soapenv:Envelope>

And Here is the soap response:

<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<ns1:getAllProcessesResponse
xmlns="http://www.novell.com/provisioning/service"
xmlns:ns1="http://www.novell.com/provisioning/service">
<ProcessArray/>
</ns1:getAllProcessesResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


--
joshuaniu
------------------------------------------------------------------------
joshuaniu's Profile: https://forums.netiq.com/member.php?userid=2960
View this thread: https://forums.netiq.com/showthread.php?t=45069

0 Likes
Anonymous_User Absent Member.
Absent Member.

Re: How to check if a user is involved in another workflows?

On 11/01/2012 12:34 PM, joshuaniu wrote:
>
> Dear Wolfgang,
>
> I run the getAllProcess() on SoapUI, but get nothing in the response
> soap message. Do I do anything wrong?
>
> Here is the soap request:
>
> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:ser="http://www.novell.com/provisioning/service">
> <soapenv:Header/>
> <soapenv:Body>
> <ser:getAllProcessesRequest/>
> </soapenv:Body>
> </soapenv:Envelope>
>
> And Here is the soap response:
>
> <SOAP-ENV:Envelope
> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <SOAP-ENV:Body>
> <ns1:getAllProcessesResponse
> xmlns="http://www.novell.com/provisioning/service"
> xmlns:ns1="http://www.novell.com/provisioning/service">
> <ProcessArray/>
> </ns1:getAllProcessesResponse>
> </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
>
>

Greetings,

You must be a Provisioning Administrator to use the soap endpoints.
Unless you have removed the security constraint as outlined in the
documentation.

1) getAllProcesses => Will return all running and completed

2) You may want to use a combination of the following 2:

getProcessesByInitiator => Gets the Workflows where the specified ID is
the Initiator

getProcessesByRecipient => Gets the Workflows where the specified ID is
the Recipient

3) Another useful endpoint is:

getProcessesByQuery




--
Sincerely,
Steven Williams
Lead Software Engineer
NetIQ
0 Likes
Anonymous_User Absent Member.
Absent Member.

Re: How to check if a user is involved in another workflows?


Steven,

Thanks a lot for your help. I will give a try on all the options.


--
joshuaniu
------------------------------------------------------------------------
joshuaniu's Profile: https://forums.netiq.com/member.php?userid=2960
View this thread: https://forums.netiq.com/showthread.php?t=45069

0 Likes
Anonymous_User Absent Member.
Absent Member.

Re: How to check if a user is involved in another workflows?


Steven,

After I changed to use Provisioning Administrator account, I got all the
soap response I need. However, the transfer user info is not in the any
of the soap response. And advice to find if a user is involved in the
transfer process at running status?


--
joshuaniu
------------------------------------------------------------------------
joshuaniu's Profile: https://forums.netiq.com/member.php?userid=2960
View this thread: https://forums.netiq.com/showthread.php?t=45069

0 Likes
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.