Saviynt unveils its cutting-edge Intelligence Suite products to revolutionize Identity Security!
Click HERE to see how Saviynt Intelligence is transforming the industry.
Saviynt Copilot Icon

Accounts not importing

do12
New Contributor III
New Contributor III

I am trying to integrate a rest application with Saviynt. The connection is successful but no accounts are importing. Authorization is bearer token. It is showing correct response in Postman but I can't get the same data into Saviynt. In Postman I have to use Post request with JSON in body. Here is output:

do12_0-1722349923498.png

Here is my ImportAccountEntJSON, the logs are not returning any useful information or errors please can you help me get this to import the accounts correctly.

{
"accountParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"statusAndThresholdConfig": {
 
"deleteLinks": true,
"accountThresholdValue": 30,
"correlateInactiveAccounts": false,
"inactivateAccountsNotInFile": true,
"deleteAccEntForActiveAccounts": true
},
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://**************ud.com/*******Api/api/DataProvider/GetAdoDataSetForAdapter?api-version=5.2.0",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"httpParams": "{\"BaseWebServerUrl\": \"https://***************.com/******Web\",\"ApplicationName\": \"Dev\",\"WorkspaceName\": \"Default\",\"AdapterName\": \"REST_CALL\",\"ResultDataTableName\": \"RestAPIResults\",\"CustomSubstVarsAsCommaSeparatedPairs\": \"Method = Report, ReportName = UserList\"}",
"httpContentType": "application/json",
"httpMethod": "POST"
},
"listField": "userList",
"keyField": "accountID",
"colsToPropsMap": {
"accountID": "email~#~char",
"name": "name~#~char"
}
}
}
},
"entitlementParams": {},
"acctEntParams": {}
}

 

 

9 REPLIES 9

Raghu
All-Star
All-Star

@do12  try below

{
  "accountParams": {
    "connection": "acctAuth",
    "processingType": "SequentialAndIterative",
    "statusAndThresholdConfig": {
      "deleteLinks": true,
      "accountThresholdValue": 30,
      "correlateInactiveAccounts": false,
      "inactivateAccountsNotInFile": true,
      "deleteAccEntForActiveAccounts": true
    },
    "call": {
      "call1": {
        "callOrder": 0,
        "stageNumber": 0,
        "http": {
          "url": "https://**************ud.com/*******Api/api/DataProvider/GetAdoDataSetForAdapter?api-version=5.2.0",
          "httpHeaders": {
            "Authorization": "${access_token}",
            "Accept": "application/json"
          },
          "httpParams": "{\"BaseWebServerUrl\": \"https://***************.com/******Web\",\"ApplicationName\": \"Dev\",\"WorkspaceName\": \"Default\",\"AdapterName\": \"REST_CALL\",\"ResultDataTableName\": \"RestAPIResults\",\"CustomSubstVarsAsCommaSeparatedPairs\": \"Method = Report, ReportName = UserList\"}",
          "httpContentType": "application/json",
          "httpMethod": "POST"
        },
        "listField": "userList",
        "keyField": "accountID",
        "colsToPropsMap": {
          "accountID": "email~#~char",
          "name": "name~#~char"
        },
        "successResponses": {
          "statusCode": [200, 201]
        },
        "unsuccessResponses": {
          "statusCode": [400, 401, 404, 500]
        }
      }
    }
  },
  "entitlementParams": {},
  "acctEntParams": {}
}


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

do12
New Contributor III
New Contributor III

Hi
No change still no accounts being imported. Log viewer shows this:

2024-07-30T18:14:57+01:00-ecm-worker-services.ImportUtilityService-quartzScheduler_Worker-7-9sj49-DEBUG-Start takeAccountsNotInImportAction: params - [jobID:38262, importType:full, statusAndThresholdJSONMap:[deleteLinks:true, accountThresholdValue:30, correlateInactiveAccounts:false, inactivateAccountsNotInFile:true, deleteAccEntForActiveAccounts:true], isApiSuccess:true, endpoint:OneStream, jobHistoryMap:[Job-Type:full, Import-Type:accounts, Accounts-Activated:0, Accounts-Inactivated:0], statusColumn:null, activeStatus:null, inactiveStatus:null, deleteLinks:true, correlateInactiveAccounts:false, inactivateAccountsNotInFile:true, setReferenceAccountNull:null, lockedStatusColumn:null, lockedStatusMapping:null, inactiveAccountSet:[], actionableAccountsList:[]]

Could you kindly provide a detailed snapshot of the information extracted from the logs, encompassing errors and other pertinent functionality details encountered during the execution of this process? Your assistance in furnishing this information would greatly aid in the analysis and resolution of any issues .



‼️‼️⚠️Do not upload any attachments that contain sensitive information, such as IP Addresses, URLs, Company/Employee Names, Email Addresses, etc.⚠️‼️‼️


Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.

do12
New Contributor III
New Contributor III

Attaching logs for the application data import job that runs successfully but doesn't bring in any accounts.

do12
New Contributor III
New Contributor III

Here is the Connection JSON:~

{ "showLogs":true,

"authentications": {
"acctAuth": {
"authType": "OAuth",
"url": "https://{{************.com}}/*****Api/api/Authentication/LogonAndReturnCookie?api-version={{5.2.0}}",
"httpMethod": "POST",
"httpParams": {
"username": "<*************>",
"password": "<*************>"
},
"httpHeaders": {
"contentType": "application/json"
},
"httpContentType": "application/json",
"expiryError": "ExpiredAuthenticationToken",
"authError": [
"InvalidAuthenticationToken",
"AuthenticationFailed",
"FAILURE",
"INVALID_SESSION_ID"
],
"timeOutError": "Read timed out",
"errorPath": "errors.type",
"maxRefreshTryCount": 5,
"tokenResponsePath": "sessionId",
"tokenType": "Bearer",
"accessToken": "{{*************************}}"
}
}
}

 

Share postman screenshot for authentication

Please share postman screenshot and curl command [Refer https://codingnconcepts.com/postman/how-to-generate-curl-command-from-postman/ ]



⚠️‼️‼️Do not upload any attachments that contain sensitive information, such as IP Addresses, URLs, Company/Employee Names, Email Addresses, etc.‼️‼️⚠️


Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.

do12
New Contributor III
New Contributor III

Thanks for responding here is the curl command and I've attached a screenshot of Postman authentication.  It only uses a token that I could hard code into the import JSON and not require a connection JSON. But I was trying to construct a suitable connection JSON as it was required by Saviynt. I do not need to make a separate API call to authenticate to get the data.  The same URL endpoint will achieve the right outcomes by changing the Body for 

"CustomSubstVarsAsCommaSeparatedPairs".



curl --location 'https://****.****.com/****Api/api/DataProvider/GetAdoDataSetForAdapter?api-version=5.2.0' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ****' \
--data ' {
"BaseWebServerUrl": "https://****.****.com/****Web",
"ApplicationName": "Dev",
"WorkspaceName": "Default",
"AdapterName": "REST_CALL",
"ResultDataTableName": "RestAPIResults",
"CustomSubstVarsAsCommaSeparatedPairs": "Method = Report, ReportName = Userlist"

}
'

{
    "authentications": {
        "acctAuth": {
            "authType": "oauth2",
            "url": "ANY URL of APP",
            "httpMethod": "POST",
            "httpParams": "",
            "httpHeaders": {
                "Content-Type": "application/x-www-form-urlencoded"
            },
            "httpContentType": "application/x-www-form-urlencoded",
            "authError": [
                "InvalidAuthenticationToken",
                "AuthenticationFailed",
                "Must authenticate to access this API."
            ],
            "retryFailureStatusCode": [
                401,
                403
            ],
            "errorPath": "error.message",
            "maxRefreshTryCount": 5,
            "tokenResponsePath": "access_token",
            "tokenType": "Bearer",
            "authHeaderName": "Authorization",
            "accessToken": "Bearer token hardcoded add here"
			"token" :"token hardcoded add here"
           
           
        }
    }
}

"Authorization": "Bearer ${connection.token}", Use this in account import


Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.

do12
New Contributor III
New Contributor III

Thank you that is working now. Much appreciated!