# Integrating Webservice Application with Sailpoint IIQ 8.4 using Webservice Connector

**URL:** <https://developer.sailpoint.com/discuss/t/integrating-webservice-application-with-sailpoint-iiq-8-4-using-webservice-connector/88782>\
**Category:** IIQ Discussion and Questions\
**Tags:** webservice-connector, identityiq\
**Created:** [November 6, 2024, 12:43pm UTC](https://developer.sailpoint.com/discuss/t/integrating-webservice-application-with-sailpoint-iiq-8-4-using-webservice-connector/88782 "2024-11-06T12:43:16Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![udayMurali](https://avatars.discourse-cdn.com/v4/letter/u/7c8e57/32.png) [@udayMurali](https://developer.sailpoint.com/discuss/u/udayMurali)\
**Post date:** [November 6, 2024, 12:43pm UTC](https://developer.sailpoint.com/discuss/t/integrating-webservice-application-with-sailpoint-iiq-8-4-using-webservice-connector/88782/1 "2024-11-06T12:43:16Z")

</div>

## Which IIQ version are you inquiring about?

8.4

## Share all details about your problem, including any error messages you may have received.

I am able to Provision and Revoke Entitlements. However I could see that the request Executing Status goes in to Verifying state (Which is expected Behavior). However this move to complete state once the “Perform Identity Request Maintainance” Task is triggered. The question is how can I make my request complete as soon as provisioning Task is completed.

---

<div class="post-metadata">

**Author:** ![KRM7](https://sea1.discourse-cdn.com/sailpoint/discuss/user_avatar/developer.sailpoint.com/krm7/32/2685_2.png) [@KRM7](https://developer.sailpoint.com/discuss/u/KRM7)\
**Post date:** [November 6, 2024, 1:40pm UTC](https://developer.sailpoint.com/discuss/t/integrating-webservice-application-with-sailpoint-iiq-8-4-using-webservice-connector/88782/2 "2024-11-06T13:40:47Z")

</div>

Hi

Welcome to SailPoint Developer Community.

try adding HTTP operation Get Object for Create account, it will aggregate account immediately after creating. See if that helps you.

– Krish

---

<div class="post-metadata">

**Author:** ![Arun-Kumar](https://sea1.discourse-cdn.com/sailpoint/discuss/user_avatar/developer.sailpoint.com/arun-kumar/32/15128_2.png) [@Arun-Kumar](https://developer.sailpoint.com/discuss/u/Arun-Kumar)\
**Post date:** [November 6, 2024, 2:47pm UTC](https://developer.sailpoint.com/discuss/t/integrating-webservice-application-with-sailpoint-iiq-8-4-using-webservice-connector/88782/3 "2024-11-06T14:47:21Z")

</div>

Hi @udayMurali,

To move the status of an Identity Request from “Verifying” to “Completed,” two actions need to be happen.

- **Account Aggregation** : If you configure the “Get Object” HTTP operation, this will facilitate single account aggregation. This updates the link record in IdentityIQ with the latest State.

- **Run Perform Identity Request Maintenance** : The “Perform Identity Request Maintenance” task, which runs automatically (typically around 1 AM).However, to bypass the automatic schedule and ensure the request transitions to “Completed” as soon as the provisioning task is finished, you can create an **After Provisioning Rule** that scans the Identity Request and programmatically updates its status to “Completed” as soon as the provisioning process is complete.

You can add the below logic in after provisioning which will scan the identity request.

```auto
Attributes args = new Attributes();
IdentityRequestProvisioningScanner scanner = new IdentityRequestProvisioningScanner(context,args);
scanner.scan(identityRequestID);

```

---

<div class="post-metadata">

**Author:** ![udayMurali](https://avatars.discourse-cdn.com/v4/letter/u/7c8e57/32.png) [@udayMurali](https://developer.sailpoint.com/discuss/u/udayMurali)\
**Post date:** [November 7, 2024, 6:17am UTC](https://developer.sailpoint.com/discuss/t/integrating-webservice-application-with-sailpoint-iiq-8-4-using-webservice-connector/88782/4 "2024-11-07T06:17:50Z")

</div>

@ Arun Kumar

Thanks for the suggestion, Just wanted to know how can I extract / get identityRequestID in AfterProvisioning Rule? I see Plan, but how can I extract that?

---

<div class="post-metadata">

**Author:** ![Arun-Kumar](https://sea1.discourse-cdn.com/sailpoint/discuss/user_avatar/developer.sailpoint.com/arun-kumar/32/15128_2.png) [@Arun-Kumar](https://developer.sailpoint.com/discuss/u/Arun-Kumar)\
**Post date:** [November 7, 2024, 7:26am UTC](https://developer.sailpoint.com/discuss/t/integrating-webservice-application-with-sailpoint-iiq-8-4-using-webservice-connector/88782/5 "2024-11-07T07:26:50Z")

</div>

Hi @udayMurali,

From the plan, you can get the identityRequestId. Please refer the code.

```auto
 if (plan != null) {
    ProvisioningResult provisioningResult = plan.getResult();
      for (AccountRequest accountRequest : plan.getAccountRequests("Application Name")) {
          if(accountRequest != null &amp;&amp; accountRequest.getResult().getStatus().equalsIgnoreCase("Committed")){
            String identityRequest = plan.get("identityRequestId").toString();           
          }         
    }
  }

```

---

<div class="post-metadata">

**Author:** ![udayMurali](https://avatars.discourse-cdn.com/v4/letter/u/7c8e57/32.png) [@udayMurali](https://developer.sailpoint.com/discuss/u/udayMurali)\
**Post date:** [November 7, 2024, 8:25am UTC](https://developer.sailpoint.com/discuss/t/integrating-webservice-application-with-sailpoint-iiq-8-4-using-webservice-connector/88782/6 "2024-11-07T08:25:30Z")

</div>

Hi Arun Kumar,

Mean while I was able to get the identityRequestId, however I still see that that Request Execution status is still in Verifying state, I am trying to check it and debug.

-Regards,  
Uday

---

<div class="post-metadata">

**Author:** ![Arun-Kumar](https://sea1.discourse-cdn.com/sailpoint/discuss/user_avatar/developer.sailpoint.com/arun-kumar/32/15128_2.png) [@Arun-Kumar](https://developer.sailpoint.com/discuss/u/Arun-Kumar)\
**Post date:** [November 7, 2024, 8:41am UTC](https://developer.sailpoint.com/discuss/t/integrating-webservice-application-with-sailpoint-iiq-8-4-using-webservice-connector/88782/7 "2024-11-07T08:41:26Z")

</div>

Hi @udayMurali,

After provisioning rule should include the `IdentityRequestProvisioningScanner`, which will handle the identity request maintenance for the specified identity request.

```auto
if (plan != null) {
    Attributes args = new Attributes();
    IdentityRequestProvisioningScanner scanner = new IdentityRequestProvisioningScanner(context,args);
    ProvisioningResult provisioningResult = plan.getResult();
      for (AccountRequest accountRequest : plan.getAccountRequests("Application Name")) {
          if(accountRequest != null &amp;&amp; accountRequest.getResult().getStatus().equalsIgnoreCase("Committed")){
            String identityRequest = plan.get("identityRequestId").toString();    
            IdentityRequest ir = context.getObject(IdentityRequest.class,identityRequest);
          
         scanner.scan(ir);			
          }         
    }
  }

```

---

<div class="post-metadata">

**Author:** ![udayMurali](https://avatars.discourse-cdn.com/v4/letter/u/7c8e57/32.png) [@udayMurali](https://developer.sailpoint.com/discuss/u/udayMurali)\
**Post date:** [November 7, 2024, 10:46am UTC](https://developer.sailpoint.com/discuss/t/integrating-webservice-application-with-sailpoint-iiq-8-4-using-webservice-connector/88782/8 "2024-11-07T10:46:07Z")

</div>

I ran the below code in After Provisioning Rule, but Request is still in Pending, Execution Status is Verifying, Provisioning Status is Commited

```auto
import sailpoint.api.IdentityRequestProvisioningScanner;
import sailpoint.object.IdentityRequest;
import sailpoint.object.Attributes;
import sailpoint.object.QueryOptions;
import sailpoint.object.Filter;
Attributes args = new Attributes();
String strIdentityRequest = plan.get("identityRequestId").toString();
IdentityRequestProvisioningScanner scanner = new IdentityRequestProvisioningScanner(context, args);
QueryOptions ops = new QueryOptions();
ops.add(Filter.eq("name", strIdentityRequest));
int requestTotal = context.countObjects(IdentityRequest.class, ops);
List ids = new ArrayList();
IdentityRequest ir = null;
if (requestTotal == 1) {
    ir = context.getObjectByName(IdentityRequest.class, strIdentityRequest);
    if (null != ir) {
        System.out.println("IdentityRequest = " + ir.toXml());
        scanner.scan(ir);
    }
}

```

Log captured below,

> strIdentityRequest —\> 0000013954  
> requestTotal —\>1  
> Scanner Executed on —\>sailpoint.object.IdentityRequest@36091845[id=0a801e9793051b9681930575ff1f00fd,name=0000013954]

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/sailpoint/original/2X/f/f2136700ed5e3703e0b85e02f6be799dacca7735.png) [@system](https://developer.sailpoint.com/discuss/u/system)\
**Post date:** [January 6, 2025, 10:46am UTC](https://developer.sailpoint.com/discuss/t/integrating-webservice-application-with-sailpoint-iiq-8-4-using-webservice-connector/88782/9 "2025-01-06T10:46:10Z")

</div>

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
