Announcing the Saviynt Knowledge Exchange unifying the Saviynt forums, documentation, training,
and more in a single search tool across platforms. Read the announcement here.

Sav4SavREST connection account import is failing due to URL

trivi
New Contributor III
New Contributor III

Configured the OOTB Sav4SavREST connection.However when the Accounts IMPORT job is triggered, it says failed URL i checked every where it seems to correct.

Error WebService call failed After retrying 5 times with responseStatusCode null

Failed url-https://domain-dev.saviyntcloud.com/ECM/api/v5/user?q=accountExpired:0&fields=username,email,displayname&sort=username&order=desc&offset=0&max=500 with Error Message-null

[This post has been edited by a Moderator to remove sensitive information.]

6 REPLIES 6

Saathvik
All-Star
All-Star

@trivi : Can you share your connection JSON and ImportAccountEntJSON by masking any sensitive data


Regards,
Saathvik
If this reply answered your question, please Accept As Solution and give Kudos to help others facing similar issue.

trivi
New Contributor III
New Contributor III

connection JSON is generated OOTB when we provide the URL and username password

below is the import JSON

{
"accountParams": {
"connection": "userAuth",
"processingType": "SequentialAndIterative",
"statusAndThresholdConfig": {
"statusColumn": "customproperty11",
"activeStatus": [
1
],
"deleteLinks": true,
"accountThresholdValue": 10,
"correlateInactiveAccounts": false,
"inactivateAccountsNotInFile": true,
"deleteAccEntForActiveAccounts": true
},
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://xxxxxxxx-dev.saviyntcloud.com/ECM/api/v5/user?q=accountExpired:0&fields=username,email,displ...",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "results",
"keyField": "accountID",
"colsToPropsMap": {
"accountID": "username~#~char",
"name": "username~#~char",
"displayName": "displayname~#~char",
"customproperty2": "email~#~char",
"customproperty11": "statuskey~#~char",
"status": "active~#~char"
},
"pagination": {
"offset": {
"offsetParam": "offset",
"batchParam": "max",
"batchSize": 500,
"totalCountPath": 999999999
}
}
}
}
},
"entitlementParams": {
"connection": "userAuth",
"processingType": "SequentialAndIterative",
"entTypes": {
"Roles": {
"entTypeOrder": 0,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://xxxxxxxx-dev.saviyntcloud.com/ECM/api/v5/getRoles",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "POST",
"httpParams": "{\"requestedObject\":\"users\"}"
},
"listField": "Roledetails",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "roleKey~#~char",
"entitlement_value": "role_name~#~char",
"customproperty1": "roleKey~#~char",
"customproperty2": "role_name~#~char",
"acctEntMappingInfoColumnFromEnt": "STORE#ACC#ENT#MAPPINGINFO~#~char"
}
}
},
"acctEntMappings": {
"listField": "owner",
"idPath": "ownername",
"keyField": "accountID",
"importAsAccount": false
}
},
"Organization": {
"entTypeOrder": 1,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://xxxxxxxx-dev.saviyntcloud.com/ECM/api/v5/getOrganization",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GETWITHBODY",
"httpParams": "{\"max\": \"1000\",\"offset\": \"0\",\"orgQuery\": \"c.organizationname like '%%'\"}"
},
"listField": "organizations",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "organizationname~#~char",
"entitlement_value": "displayname~#~char",
"acctEntMappingInfoColumnFromEnt": "STORE#ACC#ENT#MAPPINGINFO~#~char"
}
}
},
"acctEntMappings": {
"listField": "organizationowners",
"idPath": "username",
"keyField": "accountID",
"importAsAccount": false
}
},
"UserGroups": {
"entTypeOrder": 2,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://xxxxxx-dev.saviyntcloud.com/ECM/api/v5/fetchUserGroup",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "POST",
"httpParams": ""
},
"listField": "usergroups",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "usergroupkey~#~char",
"entitlement_value": "user_groupname~#~char",
"acctEntMappingInfoColumnFromEnt": "STORE#ACC#ENT#MAPPINGINFO~#~char"
}
}
},
"acctEntMappings": {
"listField": "owners",
"idPath": "username",
"keyField": "accountID",
"importAsAccount": false
}
},
"SAVRoles": {
"entTypeOrder": 0,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://xxxxx-dev.saviyntcloud.com/ECMv6/api/userms/savroles",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpContentType": "application/json",
"httpMethod": "GET",
"successResponses": {
"statusCode": [
200,
201
]
}
},
"listField": "savroles",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "ROLENAME~#~char",
"entitlement_value": "ROLENAME~#~char",
"customproperty1": "CUSTOMPROPERTY1~#~char"
}
}
}
}
}
},
"acctEntParams": {
"entTypes": {
"Roles": {
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"processingType": "entToAcctMapping"
}
}
},
"Organization": {
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"processingType": "entToAcctMapping"
}
}
},
"UserGroups": {
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"processingType": "entToAcctMapping"
}
}
},
"SAVRoles": {
"call": {
"call1": {
"connection": "userAuth",
"acctKeyField": "accountID",
"callOrder": 0,
"stageNumber": 1,
"processingType": "httpEntToAcct",
"http": {
"httpHeaders": {
"Authorization": "${access_token}"
},
"url": "/ECMv6/api/userms/savroles/${id}/users?limit=1000&offset=0",
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "users",
"entKeyField": "entitlementID",
"acctIdPath": "username"
}
}
}
}
}
}

Raghu
Valued Contributor III
Valued Contributor III

@trivi  can you user and pwd correct or not?


Thanks,
Raghu
If this reply answered your question, Please Accept As Solution and hit Kudos.

trivi
New Contributor III
New Contributor III

Yes using the admin credentials admin/password

Is it resolved ?


Regards,
Rushikesh Vartak
If you find the response useful, kindly consider selecting Accept As Solution and clicking on the kudos button.

@trivi : Can you please update the connectionJSON as below by replacing URLs and credentials. And see if you are getting connection successful. If so then try import and see if you are able to do successfully

{
    "authentications": {
        "userAuth": {
            "authType": "oauth2",
            "url": "https://<domain>/ECMv6/api/auth/login",
            "httpMethod": "POST",
            "httpParams": "{\"username\": \"<xxxx>\",\"password\":\"<xxxx>\"}",
            "httpHeaders": {
                "Accept": "application/json"
            },
            "httpContentType": "application/json",
            "expiryError": "invalid_grant",
            "authError": [
                "invalid_grant"
            ],
            "timeOutError": "Read timed out",
            "errorPath": "error",
            "maxRefreshTryCount": 5,
            "tokenResponsePath": "accessToken",
            "tokenType": "Bearer",
            "retryFailureStatusCode": [
                401
            ],
            "accessToken": "Bearer xxxxxxxxx",
            "testConnectionParams": {
                "http": {
                    "url": "https://<domain>/ECM/api/v5/getUser",
                    "httpHeaders": {
                        "Authorization": "${access_token}",
                        "Accept": "application/json"
                    },
                    "httpContentType": "application/json",
                    "httpMethod": "POST",
                    "httpParams": "{\"filtercriteria\": {\"username\":\"admin\"},\"responsefields\":[\"username\",\"statuskey\",\"firstname\"]}"
                },
                "successResponses": {
                    "statusCode": [
                        200
                    ]
                },
                "errors": [
                    "InvalidAuthenticationToken",
                    "invalid_request",
                    "Invalid assertion signature",
                    "Token not found",
                    "TokenInvalid",
                    "FAILURE",
                    "INVALID_SESSION_ID",
                    "USER_AUTHENTICATION_FAILED",
                    "PARTNER_AUTHENTICATION_FAILED",
                    "AuthenticationFailed"
                ],
                "errorPath": "errors.message"
            }
        }
    }
}

 


Regards,
Saathvik
If this reply answered your question, please Accept As Solution and give Kudos to help others facing similar issue.