The account creation request body is not being detected while creating accounts

Which IIQ version are you inquiring about?

IdentityIQ 8.4

We have a Webservices connector configured with OAuth2 authentication, and the authentication is successful.

However, while creating the account, the POST request is not detecting the request body. Even in the Before Operational Rule, the body appears to be empty.
in request body we not getting as empty
DEBUG https-jsse-nio-443-exec-6 - Request Body :: {jsonBody=null, bodyFormat=raw}

Has anyone faced this issue before? If yes, what is the workaround for this?
Please find the screenshot below

I would need a bit more information to help you.

Could you maybe post the request body that you have configured? Make sure to hide any sensitive details.

And some logs from the before operation rule where you can try printing the request body, i.e., requestEndPoint.getBody()

Thanks @Zeel for your response, please find the requested details below,
Request body :-

{
“Messages”: null,
“Data”: {
“AdditionalOrgGroupAccess”: [
“”
],
“Administrator”: $plan.Administrator$
“Identifier”: 0,
“OrganizationUnitPath”: “$plan.OrganizationUnitPath$”,
“LastName”: “$plan.LastName$”,
“FirstName”: “$plan.FirstName$”,
“FullName”: “$plan.FullName$”,
“TypeOfUser”: “$plan.TypeOfUser$”,
“Roles”: [
“”
],
“TechnicalRoles”: [
“”
],
“PhoneNumber”: “”,
“IsUserPhoneConsentAcknowledged”: false,
“ExternalUPN”: “$plan.EmailID$”,
“EmailID”: “$plan.EmailID$”,
“HierarchyLevel”: 1,
“IsAuthorizedSignatory”: $plan.IsAuthorizedSignatory$,
“SupervisorUser”: “$plan.SupervisorUser$”,
“IsSignatoryAgent”: false,
“AccessExpiryDate”: null,
“Status”: “Provisioned”,
“IsGroup”: false,
“ICMExternalId”: “”,
“SecurityGroups”: [
“System Admin”
],
“UserGroups”: [
“”
],
“CreatedDate”: null,
“ModifiedDate”: null,
“CreatedBy”: null,
“ModifiedBy”: null,
“EsignSignatoryAuthentication”: “”,
“ExtendedEntity”: {
“ICMParentContractType”: “”,
“ICMApprovallimit”:“$plan.ICMApprovallimit$”,
“ICMSupervisoruser1”: “”,
“ICMGIAdminOptionsToHide”: ,
“ICMCostCenter”: “$plan.ICMCostCenter$”,
“ICMExtendedUserEntity_ICMUser”: “”,
“ICMDepartment”: “$plan.ICMDepartment$”,
“ICMApprovallimit2”: null,
“ICMGIUserPosition”: “$plan.ICMGIUserPosition$”,
“ICMAgreementCode”: “”,
“ICMExternalId”: “”,
“Name”: “”
},
“SysId”: “”,
“OrgPath”: null
},
“HasMoreData”: true,
“PagingData”: null
}

In Before Operation rule, I am just trying to read the the request body, with below code but its coming as empty.

 if(null != requestEndPoint){
	 Map requestBody = requestEndPoint.getBody();
	 logger.debug("Request Body :: "+requestBody);
 }

Let me know if you also face the same issue, and what is the solution for it ?

I found couple problems with the JSON.

  1. Missing comma at the end.
  1. Missing value here, either add empty string ( “” ), or pass null or remove this key.

I have fixed this issues in this JSON, verify this once and you can try it out.
Create User Request.json (1.9 KB)

I am also facing same kind of issue.
Request body attribute
1.jobTitle
2.company
3.phone
4.postalCode
5.stateOrProvince
If requested user identity does not has any one of the value while passing in request body of “create user” API whole request body body is missing. Otherwise,if identity has all values assign for above attribute we are able to get correct body and user is creating successfully.
This is strange behavior as these attributes are not required to create user but still causing issue. Below is my create request body.
{
“newUsers”: [
{
“email”: “$plan.Email$”,
“firstName”: “$plan.FirstName$”,
“lastName”: “$plan.LastName$”,
“jobTitle”: “$plan.JobTitle$”,
“company”: “$plan.Company$”,
“workAddress”: {
“phone”: “$plan.Phone$”,
“postalCode”: “$plan.PostalCode$”,
“stateOrProvince”: “$plan.StateOrProvince$”
},
“permissionProfileId”: “$plan.PermissionProfile$”,
“groupList”: [
{
“groupId”:“$plan.Groups$”
}
]
}
]
} and this is my CreatePolicy_Provosionig _Rule

String value=“”;
String fieldName = field.getName();

String phone = identity.getAttribute(“businessPhoneNumber”) != null ? identity.getAttribute(“businessPhoneNumber”) : “”;
String postalCode = identity.getAttribute(“postalCode”) != null ? identity.getAttribute(“postalCode”) : “”;
String stateOrProvince = identity.getAttribute(“provinceOrState”) != null ? identity.getAttribute(“provinceOrState”) : “”;
String company = identity.getAttribute(“companyCode”) != null ? identity.getAttribute(“companyCode”) : “”;
String jobTitle = identity.getAttribute(“jobTitle”) != null ? identity.getAttribute(“jobTitle”) : “”;
String email = identity.getEmail() ;
String firstName = identity.getFirstname();
String lastName = identity.getLastname();

switch (fieldName) {

case "FirstName":

value = firstName; 
log.error("value FirstName"+value);
break;

case "LastName": 
value=lastName;  
log.debug("value LastName"+value);
break; 

case "Email":  
value=email; 
log.debug("value Email"+value);
break; 


case "PostalCode": 
value=postalCode; 
log.debug("value postalCode"+value);
break;

case "Phone": 
value=phone; 
log.debug("value phone"+value);
break;

case "StateOrProvince": 
value=stateOrProvince; 
log.debug("value stateOrProvince"+value);
break;

case "Company": 
value=company; 
log.debug("value company"+value);
break;

case "JobTitle": 
value=jobTitle; 
log.debug("value jobTitle"+value);
break;
default: 
break;

}
log.debug(“value”+value);
return value;