Define Sequence of API Calls on webservice connector

Which IIQ version are you inquiring about?

8.4p2

Hello Everyone, We are integrating an application via a wrapper API. We are using OOTB webservices connector and a quicklink form for the access request submission process. Each role selected on the quicklink form is created as a separate request. The wrapper API is configured in such a way that the first request of the user should be passed as a create operation and all the subsequent operations should be passed as Modify operation. To achieve this, we have introduced a sequence number in plan and based on the sequence number, we have introduced delay between these requests and also we are checking if the user account got created by calling an API in the before provisioning rule and passing the operation as create or modify accordingly.

This is working fine if the approvers approve all the requests at once for a single user. But, when I have submitted requests for multiple users and I approve all of them at once, only few API calls are getting executed on target. The challenge we have with the wrapper API is that it is passing 200 as response all the time even if the groups are not added on the user. They are passing a status code and message in the response object and we are seeing some code error on their end which is not helpful for us to debug. But, If we approve each request and wait for it to complete, and then act up on the next approval items - all the transactions are getting executed without any issues and the groups are being provisioned properly on the target.

Observations from our end:
When the groups are being added properly: the request end point we see in the before operation rule is:
Request End point in add ent after rule is:EndPoint [_afterRule=Test Add Ent After Rule, beforeRule=HHS_Rule_AddEnt_BeforeOperation, _contextUrl=testurl, _fullUrl=testurl, _httpMethodType=POST, _operationType=Add Entitlement, _rootPath=user, _uniqueNameForEndPoint=Add Groups, paginationSteps=null, pagingInitialOffset=0, pagingSize=50, _resMappingObj={id=id}, _header={authorizationToken=token, Accept=application/json, Content-Type=application/json}, _body={jsonBody={
“environment”: “Dev”,
“action”: “Add Group”,
“user_name”: “MCH_MBommakanti”,
“site_name”: “MCH-Dev”,
“group”: “TBLGRP_MCH_EPI_TXAIM_OSUD”
}, bodyFormat=raw}, _responseCode=[2**], _sequenceNumberForEndpoint=9, xpathNamespaces={}, possibleHttpErrors={}]

And sometimes we are seeing the body as:
Request Endpoint add entitlemenmt before operation is:EndPoint [_afterRule=Test Add Ent After Rule, _beforeRule=HHS_Rule_AddEnt_BeforeOperation, _contextUrl=testurl, _fullUrl=testurl, _httpMethodType=POST, _operationType=Add Entitlement, _rootPath=user, _uniqueNameForEndPoint=Add Groups, paginationSteps=null, pagingInitialOffset=0, pagingSize=50, _resMappingObj={id=id}, _header={authorizationToken=test, Accept=application/json, Content-Type=application/json}, _body={jsonBody={“environment”:“Dev”,“action”:“Add Group”,“user_name”:“MCH_TMCHUserOne”,“site_name”:“MCH-Dev”}, bodyFormat=raw}, _responseCode=[2**], _sequenceNumberForEndpoint=9, xpathNamespaces={}, possibleHttpErrors={}]

The security group is missing in body sometimes

Ask: Is there any way for us to restrict IIQ to process only one request at a time for the specified application? We have tried adding maxThreads=1 and allowConcurrentProvisioning=false in app xml but did not work.
Ideally, the queue of the requests should be maintained by the app team, but we are not getting much help from them here.

Any advice or suggestions are greatly appreciated.

Thanks,
Maneesh.B

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