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

Sav4Sav Rest connector

sk
Regular Contributor
Regular Contributor

Hello Team,

We have a requirement where , we need to launch a User Manager Campaign, so when the manger clicks on "Does not belongs to me " then an user update task should trigger.

This can be achievable from Sav4Sav Rest connector.

Did anyone worked on the similar requirement, if yes please share the json

thanks in advance

14 REPLIES 14

rushikeshvartak
All-Star
All-Star

You can follow below approach

  • You can't trigger User Update task from Analytics.
  • Workaround.
    • Based on query fetch records where user update task needs to be generated
    • Use Sav4Sav REST Connector 
      • Call 1 - Fetch Report Data
      • Call 2 - Create Update User Task

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

sk
Regular Contributor
Regular Contributor

Hi @rushikeshvartak , thanks for the workaround.

is there any sample json ? If yes could you please share, it would really help .

thanks in advance 

Refer https://forums.saviynt.com/t5/identity-governance/saviynt-for-saviynt-saviyntforsaviyntaccountimport...


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

sk
Regular Contributor
Regular Contributor

Hello @rushikeshvartak ,

Tried with the below json but getting the error in both postman and saviynt

Json

{
"connection": "userAuth",
"successResponses": {
"statusCode": [
200,
201,
202,
203,
204,
205
]
},
"url": "https://xxx.saviyntcloud.com/ECM/api/v5/fetchRuntimeControlsDataV2",
"httpMethod": "POST",
"httpContentType": "application/json",
"httpParams": "{\"analyticsid\": \"114\"}",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept":"application/json"
},
"colsToPropsMap": {
"username": "username~#~char",
"CUSTOMPROPERTY10": "Certified Status~#~char"
},
"userResponsePath": "results",
"pagination": {
"offset": {
"offsetParam": "offset",
"batchParam": "max",
"batchSize": 500,
"totalCountPath": "completeResponseMap.totalcount"
}
}
}

error:

Failed url-https://xxx.saviyntcloud.com/ECM/api/v5/fetchRuntimeControlsDataV2?offset=0&max=500 with Error Message-{"html":{"head":{"style":{"type":"text/css","content":"body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}"},"title":"HTTP Status 403 \u2013 Forbidden"},"lang":"en","body":{"h1":"HTTP Status 403 \u2013 Forbidden"}}}

Query used in analytics

SELECT c.campaign_name AS 'CAMPAIGN NAME', CASE WHEN cus.CERTIFIED=2 THEN 'WORKS FOR ME' WHEN cus.CERTIFIED=3 THEN 'DOES NOT WORK FOR ME' ELSE 'No Response' END AS 'Certified Status', CASE c.campaign_type WHEN '1' THEN 'ENTITLEMENTOWNER' WHEN '2' THEN 'USERMANAGER' WHEN '3' THEN 'SELF_CERTIFICATION' WHEN '5' THEN 'ROLEOWNER' WHEN '6' THEN 'SERVICEACCOUNT' WHEN '7' THEN 'ORGANIZATION' WHEN '8' THEN 'APPLICATION_OWNER' WHEN '9' THEN 'APPLICATIONOWNER_METADATA' END AS campaign_type,k.CERT_NAME AS 'Certification Name',u2.SYSTEMUSERNAME AS ' Certifier UserName', u2.FIRSTNAME AS 'Certifier FirstName', u2.LASTNAME AS ' Certifier LAStName',cu.username,cu.SYSTEMUSERNAME AS 'User Name',cu.FIRSTNAME AS 'User FirstName', cu.LASTNAME AS ' User LastName' FROM campaign c,certification k,certification_user_status cus,certification_user cu,users u,users u2 WHERE c.id=k.campaignkey AND cus.CERT_USERKEY=cu.cert_userkey AND cus.certkey=k.certkey AND u.USERKEY=cu.USERKEY AND k.CERTIFIER=u2.userkey and c.id='5'

 

please let me know what I am missing here


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

sk
Regular Contributor
Regular Contributor

Hello @rushikeshvartak ,

We have added the required Savrole to the service account and now we are getting the correct response from postman.

In Saviynt getting the error when we run user import job

Error - to Import Data correctly: No content to
map due to end-of-input at [Source: ; line: 1,
column: 0]

Please let me know if I am missing anything here

Share logs in text file


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

sk
Regular Contributor
Regular Contributor

Hello @rushikeshvartak , 

We are not getting much information in logs

SriRanga_0-1715583937111.png

024-05-13T12:34:48+05:30-ecm--null-4tp6v--2024-05-13T07:04:47.960940516Z stdout F 2024-05-13 07:04:47,960 [http-nio-8080-exec-123] DEBUG domain.JobcontrolController - qry = SELECT il.IMPORTLOGID as IMPORTLOGID,il.logDataAsXML as logDataAsXML,ecmimp.jobid as jobID,ecmimp.jobname as JOBNAME,ecmimp.jobStartDate as JOBSTARTDATE,ecmimp.coments as COMMENTS,ecmimp.jobEndDate as JOBENDDATE,il.filename as FILENAME,ecmimp.SAVRESPONSE as SAVRESPONSE,ecmimp.systemName as SYSTEMNAME,ecmimp.externalconnection as EXTERNALCONNECTION,ecmimp.updateUser as UPDATEUSER,ecmimp.triggername as TRIGGERNAME,ecmimp.jobgroup as JOBGROUP,ecmimp.triggerType as TRIGGERTYPE FROM EcmImportJob ecmimp left join ImportLog il on(ecmimp.jobid=il.jobid) where 1=1 AND (ecmimp.jobname = 'UserImportJob' OR ecmimp.jobname ='USERIMPORTJOB' ) AND ecmimp.triggername = 'Campaign_User_Import' AND ecmimp.jobgroup = 'DATA' ORDER BY ecmimp.jobid DESC limit 0,15
 
2024-05-13T12:34:48+05:30-ecm--null-4tp6v--2024-05-13T07:04:47.960943117Z stdout F 2024-05-13 07:04:47,960 [http-nio-8080-exec-123] DEBUG domain.JobcontrolController - extraQry = AND (ecmimp.jobname = 'UserImportJob' OR ecmimp.jobname ='USERIMPORTJOB' ) AND ecmimp.triggername = 'Campaign_User_Import' AND ecmimp.jobgroup = 'DATA'
 
2024-05-13T12:34:47+05:30-ecm--null-4tp6v--2024-05-13T07:04:47.692767655Z stdout F 2024-05-13 07:04:47,692 [http-nio-8080-exec-167] DEBUG domain.JobcontrolController - qry = SELECT il.IMPORTLOGID as IMPORTLOGID,il.logDataAsXML as logDataAsXML,ecmimp.jobid as jobID,ecmimp.jobname as JOBNAME,ecmimp.jobStartDate as JOBSTARTDATE,ecmimp.coments as COMMENTS,ecmimp.jobEndDate as JOBENDDATE,il.filename as FILENAME,ecmimp.SAVRESPONSE as SAVRESPONSE,ecmimp.systemName as SYSTEMNAME,ecmimp.externalconnection as EXTERNALCONNECTION,ecmimp.updateUser as UPDATEUSER,ecmimp.triggername as TRIGGERNAME,ecmimp.jobgroup as JOBGROUP,ecmimp.triggerType as TRIGGERTYPE FROM EcmImportJob ecmimp left join ImportLog il on(ecmimp.jobid=il.jobid) where 1=1 AND (ecmimp.jobname = 'UserImportJob' OR ecmimp.jobname ='USERIMPORTJOB' ) AND ecmimp.triggername = 'Campaign_User_Import' AND ecmimp.jobgroup = 'DATA' ORDER BY ecmimp.jobid DESC limit 0,15
 
2024-05-13T12:34:47+05:30-ecm--null-4tp6v--2024-05-13T07:04:47.692771858Z stdout F 2024-05-13 07:04:47,692 [http-nio-8080-exec-167] DEBUG domain.JobcontrolController - extraQry = AND (ecmimp.jobname = 'UserImportJob' OR ecmimp.jobname ='USERIMPORTJOB' ) AND ecmimp.triggername = 'Campaign_User_Import' AND ecmimp.jobgroup = 'DATA'
 
2024-05-13T12:34:02+05:30-ecm-worker--null-4q585--2024-05-13T07:04:01.663285062Z stdout F 2024-05-13 07:04:01,663 [quartzScheduler_Worker-3] DEBUG integration.ExternalConnectionCallService - Key=jobtriggername Value=Campaign_User_Import
 
2024-05-13T12:34:02+05:30-ecm-worker--null-4q585--2024-05-13T07:04:01.601362934Z stdout F 2024-05-13 07:04:01,601 [quartzScheduler_Worker-3] DEBUG services.JobManagementGuardRailService - Exit getParamFromJobData with result Campaign_User_Import
 
2024-05-13T12:34:02+05:30-ecm-worker--null-4q585--2024-05-13T07:04:01.604388236Z stdout F 2024-05-13 07:04:01,604 [quartzScheduler_Worker-3] DEBUG services.JobManagementGuardRailService - Only one instance is running.. Trigger Name : Campaign_User_Import
 
2024-05-13T12:33:50+05:30-ecm--null-4tp6v--2024-05-13T07:03:49.818925761Z stdout F 2024-05-13 07:03:49,818 [http-nio-8080-exec-88] DEBUG domain.FlatViewJobcontrolController - Inside fireJobAction params = [triggername:Campaign_User_Import, triggergroup:GRAILS_JOBS, jobname:UserImportJob, jobgroup:DATA, actn:6, job_name:, job_group:, controller:flatViewJobcontrol, action:fireJobAction]
 
SriRanga_1-1715584023633.png

 

sk
Regular Contributor
Regular Contributor

@rushikeshvartak any thoughts on this 

You have issue in JSON please share json in text file along with logs


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

sk
Regular Contributor
Regular Contributor

@rushikeshvartak please find the json and logs

 

  • can you share job and connection screenshot.
  • Seems you have not added config properly 

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

sk
Regular Contributor
Regular Contributor

Hello @rushikeshvartak ,

please find below

SriRanga_0-1715666716826.pngSriRanga_1-1715666741059.png

 

Add Reconciliation Field in Job config


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