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

SOAP response body is showing as CSV values when decoded

jralexander137
New Contributor III
New Contributor III

Hi we're integrating with UKG/Ultipro via a RaaS Soap connection and trying to import users via the raas. Here is the import config we're using: 

 

 

{
   "CONNECTION1":"Logon",
   "REQUESTXML1":"<s:Envelope xmlns:s=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:a=\"http://www.w3.org/2005/08/addressing\"><s:Header><a:Action s:mustUnderstand=\"1\">http://www.ultipro.com/dataservices/bidata/2/IBIDataService/LogOn</a:Action><a:ReplyTo><a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address></a:ReplyTo><a:To s:mustUnderstand=\"1\">https://blah.ultipro.com/services/BIDataService</a:To></s:Header><s:Body><LogOn xmlns=\"http://www.ultipro.com/dataservices/bidata/2\"><logOnRequest xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><UserName>username</UserName><Password>password</Password><ClientAccessKey>CAK</ClientAccessKey><UserAccessKey>UAK</UserAccessKey></logOnRequest></LogOn></s:Body></s:Envelope>",
   "REQUESTPARAMS1":{
      "Content-Type":"application/soap+xml;charset=utf-8"
   },
   "RESPONSEDATAPATH1":"Body.LogOnResponse.LogOnResult",
   "RESPONSEMAPPING1":{
      "SERVICEID":"ServiceId",
      "CLIENTACCESSKEY":"ClientAccessKey",
      "TOKEN":"Token",
      "INSTANCEKEY":"InstanceKey"
   },
   "CONNECTION2":"Logon",
   "REQUESTXML2":"<s:Envelope xmlns:s=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:a=\"http://www.w3.org/2005/08/addressing\"><s:Header><a:Action s:mustUnderstand=\"1\">http://www.ultipro.com/dataservices/bidata/2/IBIDataService/ExecuteReport</a:Action><a:ReplyTo><a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address></a:ReplyTo><a:To s:mustUnderstand=\"1\">https://blah.ultipro.com/services/BIDataService</a:To></s:Header><s:Body><ExecuteReport xmlns=\"http://www.ultipro.com/dataservices/bidata/2\"><request xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><ReportPath>/content/folder[@name='zzzCompany Folders']/folder[@name='blah']/folder[@name='UltiPro']/folder[@name='Customs']/folder[@name='Test']/report[@name='Blah EE Report Saviynt Test']</ReportPath><ReportParameters/></request><context xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><ServiceId>\\${SERVICEID}</ServiceId><ClientAccessKey>\\${CLIENTACCESSKEY}</ClientAccessKey><Token>\\${TOKEN}</Token><Status>Ok</Status><StatusMessage i:nil=\"true\"/><InstanceKey>\\${INSTANCEKEY}</InstanceKey></context></ExecuteReport></s:Body></s:Envelope>",
   "REQUESTPARAMS2":{
      "Content-Type":"application/soap+xml;charset=utf-8"
   },
   "RESPONSEDATAPATH2":"Body.ExecuteReportResponse.ExecuteReportResult",
   "RESPONSEMAPPING2":{
      "REPORTKEY":"ReportKey"
   },
   "CONNECTION3":"Report",
   "REQUESTXML3":"<s:Envelope xmlns:s=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:a=\"http://www.w3.org/2005/08/addressing\"><s:Header><a:Action s:mustUnderstand=\"1\">http://www.ultipro.com/dataservices/bistream/2/IBIStreamService/RetrieveReport</a:Action><h:ReportKey xmlns:h=\"http://www.ultipro.com/dataservices/bistream/2\" xmlns=\"http://www.ultipro.com/dataservices/bistream/2\">\\${REPORTKEY}</h:ReportKey><a:MessageID>urn:uuid:8332571f-3a89-4442-ac80-27195b397b4d</a:MessageID><a:ReplyTo><a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address></a:ReplyTo><a:To s:mustUnderstand=\"1\">https://blah.ultipro.com/services/BIStreamingService</a:To></s:Header><s:Body xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"><RetrieveReportRequest xmlns=\"http://www.ultipro.com/dataservices/bistream/2\"/></s:Body></s:Envelope>",
   "REQUESTPARAMS3":{
      "Content-Type":"application/soap+xml;charset=utf-8"
   },
   "RESPONSEDATAPATH3":"Body.StreamReportResponse.ReportStream.DECODEBASE64.data.row",
   "USERMAPPING3":"COMPANYNAME:value(0),LOCATION:value(1),DEPARTMENTNAME:value(2),CUSTOMPROPERTY2:value(3), CUSTOMPROPERTY3:value(4),USERNAME:value(5),FIRSTNAME:value(6),LASTNAME:value(7),PREFEREDFIRSTNAME:value(8),CUSTOMPROPERTY1:value(9),TITLE:value(10),CUSTOMPROPERTY5:value(11), CUSTOMPROPERTY13:value(12),ENDDATE:value(13),OWNER:value(14),STARTDATE:value(15),CUSTOMPROPERTY6:value(16)",
   "TEMPMAPPING3":[
      "EMPLOYEETYPE='EMPLOYEE' WHERE EMPLOYEETYPE IS NULL",
      "STATUSKEY='1' Where customproperty1 in ('Active', 'Leave of Absence')",
      "STATUSKEY='0' Where customproperty1 in ('Terminated')"
   ],
   "CONNECTION4":"Logon",
   "REQUESTXML4":"<s:Envelope xmlns:s=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:a=\"http://www.w3.org/2005/08/addressing\"><s:Header><a:Action s:mustUnderstand=\"1\">http://www.ultipro.com/dataservices/bidata/2/IBIDataService/LogOff</a:Action><a:MessageID>urn:uuid:03699dac-b578-4a63-af21-138bd325d706</a:MessageID><a:ReplyTo><a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address></a:ReplyTo><a:To s:mustUnderstand=\"1\">https://blah.ultipro.com/services/BIDataService</a:To></s:Header><s:Body><LogOff xmlns=\"http://www.ultipro.com/dataservices/bidata/2\"><context xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><ServiceId>{{rassServiceId}}</ServiceId><ClientAccessKey>{{CLIENTACCESSKEY}}</ClientAccessKey><Token>{{raasToken}}</Token><Status>Ok</Status><StatusMessage i:nil=\"true\"/><InstanceKey>{{raasInstanceKey}}</InstanceKey></context></LogOff></s:Body></s:Envelope>",
   "REQUESTPARAMS4":{
      "Content-Type":"application/soap+xml;charset=utf-8"
   },
   "RESPONSEDATAPATH4":"Body.LogOffResponse.LogOffResult",
   "RESPONSEMAPPING4":{
      "STATUS":"Status"
   }
}

 

 

When we retrieve the repost and sav decodes it we get the following error: 

Response Code: 200, Response Message: OK
Response length: 646
called api...
timeout validated for api...
got response for api...
callXMLEndpoint - responseStatusCode ::200
REQUESTTYPE= null
RESPONSEDATAPATH= Body.StreamReportResponse.ReportStream.DECODEBASE64.data.row
RESPONSETOTALRESULTS= null
RESPONSEPAGERESULTS= null
Evaluated RESPONSEDATAPATH: Body.StreamReportResponse.ReportStream.DECODEBASE64.data.row
Error - Failed to Connect to or Import Data :
org.xml.sax.SAXParseException; Premature end of file.
at com.saviynt.provisoning.SoapProvisioningService$_evaluateExpression_closure27.doCall(SoapProvisioningService.groovy:2346)
at com.saviynt.provisoning.SoapProvisioningService.evaluateExpression(SoapProvisioningService.groovy:2243)
at com.saviynt.provisoning.SoapProvisioningService.processSingleRequest(SoapProvisioningService.groovy:1336)
at com.saviynt.provisoning.SoapProvisioningService.importXMLData(SoapProvisioningService.groovy:977)
at com.saviynt.provisoning.SoapProvisioningService.doImport(SoapProvisioningService.groovy:134)
at com.saviynt.provisoning.SoapProvisioningService.doUserImport(SoapProvisioningService.groo

 

When we pull the report in postman it looks like this: 

See attached doc

And when we decode the report data it looks like this: 

 

 

Company Name,Employee Status,"Employee Name (Last Suffix, First MI)",Org Level 1,Org Level 2,Job,Termination Date
Acme,Terminated,"Martinez, Bobby",Food Beverage,Harvest Dining Hall,Cook 1,2023-09-28 00:00:00
Acme,Active,"Canchola Rodriguez, Lodes",Food Beverage,EDR,EDR Attendant,

 

 

The main response body looks to be in XML format but once the returned report data is decode it looks to be in csv format rather than XML which is why I'm thinking we're getting the above error. If that is correct, then how do we get it to parse the CSV decoded info? 

 

We have been refering to the UKG Vendor docs and the sav doc https://docs.saviyntcloud.com/bundle/Ultipro-v24x/page/Content/Configuring-a-Connection.htm#creating... 

7 REPLIES 7

pruthvi_t
Saviynt Employee
Saviynt Employee

Hi @jralexander137 ,

Greetings.

Did you verify if your import json doesn't have any unwanted spaces or characters.

Also kindly verify if the service account which is being used in connection has all the permissions to import the data.

Thanks


Regards,
Pruthvi

The json config for import looks fine as far as I can tell. We did verify the service account access with the vendor support and looks good there. We have an open ticket with saviynt as well. 

pruthvi_t
Saviynt Employee
Saviynt Employee

Did you validate the json with the sample json from documentation?? 

In the request xml parts of the json 

From documentation:

"REQUESTXML1": "<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:ns=\"http://www.ultipro.com/dataservices/bidata/2\">
<soap:Header xmlns:wsa=\"http://www.w3.org/2005/08/addressing\"><wsa:Action>http://www.ultipro.com/dataservices/bidata/2/IBIDataService/LogOn</wsa:Action></soap:Header>
<soap:Body> <ns:LogOn> <ns:logOnRequest> <ns:UserName>\${USERNAME}</ns:UserName> <ns:Password>\${PASSWORD}</ns:Password> <ns:ClientAccessKey>ZWRCR</ns:ClientAccessKey>
<ns:UserAccessKey>C9CATL0000K0</ns:UserAccessKey> </ns:logOnRequest>

however, in the sample you've mentioned as

"REQUESTXML1":"<s:Envelope xmlns:s=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:a=\"http://www.w3.org/2005/08/addressing\"><s:Header><a:Action s:mustUnderstand=\"1\">http://www.ultipro.com/dataservices/bidata/2/IBIDataService/LogOn

Please make changes to your json as per the documentation and try it.

Thanks,


Regards,
Pruthvi

We have the soap calls working in postman. The saviynt doc seems to be incorrect/incomplete in that there was a line missing from every call in the sample configs that had to be added. We referred to the UKG Vendor documentation here https://developer.ukg.com/hcm/docs/report-as-a-service I can see the first 2 api calls in the chain complete with a 200 response and token being passed but then the connector is unable to parse the decoded data once received. We did have too many attribute mappings in the UserMapping3 section but I pared that down to just whats in the report but issue still exists.

I made the config match the sav doc 1 to 1 and issue persists. Here is the updated config: 

{
  "CONNECTION1":"Logon",
  "REQUESTXML1":"<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:ns=\"http://www.ultipro.com/dataservices/bidata/2\"> <soap:Header xmlns:wsa=\"http://www.w3.org/2005/08/addressing\"><wsa:Action>http://www.ultipro.com/dataservices/bidata/2/IBIDataService/LogOn</wsa:Action></soap:Header> <soap:Body> <ns:LogOn> <ns:logOnRequest> <ns:UserName>${USERNAME}</ns:UserName> <ns:Password>${PASSWORD}</ns:Password> <ns:ClientAccessKey>CAK</ns:ClientAccessKey> <ns:UserAccessKey>UAK</ns:UserAccessKey> </ns:logOnRequest> </ns:LogOn> </soap:Body> </soap:Envelope>",
  "REQUESTPARAMS1":{
     "Content-Type":"application/soap+xml;charset=utf-8"
  },
  "RESPONSEDATAPATH1":"Body.LogOnResponse.LogOnResult",
  "RESPONSEMAPPING1":{
     "SERVICEID":"ServiceId",
     "CLIENTACCESSKEY":"ClientAccessKey",
     "TOKEN":"Token",
     "INSTANCEKEY":"InstanceKey"
  },
  "CONNECTION2":"Logon",
  "REQUESTXML2":"<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:ns=\"http://www.ultipro.com/dataservices/bidata/2\"> <soap:Header xmlns:wsa=\"http://www.w3.org/2005/08/addressing\"><wsa:Action>http://www.ultipro.com/dataservices/bidata/2/IBIDataService/ExecuteReport</wsa:Action></soap:Header> <soap:Body> <ns:ExecuteReport> <ns:request> <ns:ReportPath>/content/folder[@name='zzzCompany Folders']/folder[@name='Cache Creek Casino Resort']/folder[@name='UltiPro']/folder[@name='Customs']/folder[@name='Test']/report[@name='CCCR EE Report Saviynt Test']</ns:ReportPath> <ns:ReportParameters> <ns:ReportParameter> <ns:Name>Saviynt Report</ns:Name> </ns:ReportParameter> </ns:ReportParameters> </ns:request> <ns:context> <ns:ServiceId>${SERVICEID}\n</ns:ServiceId> <ns:ClientAccessKey>${CLIENTACCESSKEY}</ns:ClientAccessKey> <ns:Token>${TOKEN}</ns:Token> <ns:InstanceKey>${INSTANCEKEY}</ns:InstanceKey> </ns:context> </ns:ExecuteReport> </soap:Body> </soap:Envelope>",
  "REQUESTPARAMS2":{
     "Content-Type":"application/soap+xml;charset=utf-8"
  },
  "RESPONSEDATAPATH2":"Body.ExecuteReportResponse.ExecuteReportResult",
  "RESPONSEMAPPING2":{
     "REPORTKEY":"ReportKey"
  },
  "CONNECTION3":"Report",
  "REQUESTXML3":"<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:ns=\"http://www.ultipro.com/dataservices/bistream/2\"> <soap:Header xmlns:wsa=\"http://www.w3.org/2005/08/addressing\"> <ns:ReportKey>${REPORTKEY}</ns:ReportKey> <wsa:Action>http://www.ultipro.com/dataservices/bistream/2/IBIStreamService/RetrieveReport</wsa:Action></soap:Header> <soap:Body> <ns:RetrieveReportRequest></ns:RetrieveReportRequest> </soap:Body> </soap:Envelope>",
  "REQUESTPARAMS3":{
     "Content-Type":"application/soap+xml;charset=utf-8"
  },
  "RESPONSEDATAPATH3":"Body.StreamReportResponse.ReportStream.DECODEBASE64.data.row",
  "USERMAPPING3":"COMPANYNAME:value(0),CUSTOMPROPERTY1:value(1),EMPLOYEEID:value(2),FIRSTNAME:value(3),LASTNAME:value(4),PREFEREDFIRSTNAME:value(5),EMAIL:value(6),SECONDARYEMAIL:value(7),TITLE:value(8),DEPARTMENTNAME:value(9),LOCATION:value(10),CUSTOMPROPERTY5:value(11),MANAGER:value(12),CUSTOMPROPERTY3:value(13)",
  "TEMPMAPPING3":[
     "STATUSKEY='1' Where customproperty1 in ('Active', 'Leave of Absence', 'A')",
     "STATUSKEY='0' Where customproperty1 in ('Terminated', 'T')"
  ],
  "CONNECTION4":"Logon",
  "REQUESTXML4":"<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:ns=\"http://www.ultipro.com/dataservices/bidata/2\"> <soap:Header xmlns:wsa=\"http://www.w3.org/2005/08/addressing\"><wsa:Action>http://www.ultipro.com/dataservices/bidata/2/IBIDataService/LogOff</wsa:Action></soap:Header> <soap:Body> <ns:LogOff> <ns:context> <ns:ServiceId>${SERVICEID}</ns:ServiceId> <ns:ClientAccessKey>${CLIENTACCESSKEY}</ns:ClientAccessKey> <ns:InstanceKey>${INSTANCEKEY}</ns:InstanceKey> </ns:context> </ns:LogOff> </soap:Body> </soap:Envelope>",
  "REQUESTPARAMS4":{
     "Content-Type":"application/soap+xml;charset=utf-8"
  },
  "RESPONSEDATAPATH4":"Body.LogOffResponse.LogOffResult",
  "RESPONSEMAPPING4":{
     "STATUS":"Status"
  }
}

And I have uploaded the fresh logs here as well. Looks like its proceeding through the calls but still failing at the same point with same error.

 

Does this portion of the config look correct? 

 

 "RESPONSEDATAPATH3":"Body.StreamReportResponse.ReportStream.DECODEBASE64.data.row",
  "USERMAPPING3":"COMPANYNAME:value(0),CUSTOMPROPERTY1:value(1),EMPLOYEEID:value(2),FIRSTNAME:value(3),LASTNAME:value(4),PREFEREDFIRSTNAME:value(5),EMAIL:value(6),SECONDARYEMAIL:value(7),TITLE:value(8),DEPARTMENTNAME:value(9),LOCATION:value(10),CUSTOMPROPERTY5:value(11),MANAGER:value(12),CUSTOMPROPERTY3:value(13)",
  "TEMPMAPPING3":[
     "STATUSKEY='1' Where customproperty1 in ('Active', 'Leave of Absence', 'A')",
     "STATUSKEY='0' Where customproperty1 in ('Terminated', 'T')"
  ],

 

Based on the response as shown here not decoded (I truncated part of the response to fit here): 

 

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
    <s:Header>
        <a:Action s:mustUnderstand="1">http://www.ultipro.com/dataservices/bistream/2/IBIStreamService/RetrieveReportResponse</a:Action>
        <h:Status xmlns:h="http://www.ultipro.com/dataservices/bistream/2">Completed</h:Status>
        <h:StatusMessage i:nil="true" xmlns:h="http://www.ultipro.com/dataservices/bistream/2" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"/>
        <a:RelatesTo>urn:uuid:8332571f-3a89-4442-ac80-27195b397b4d</a:RelatesTo>
    </s:Header>
    <s:Body>
        <StreamReportResponse xmlns="http://www.ultipro.com/dataservices/bistream/2">
            <ReportStream>Q29tcGFueSBDb2RlLEVtcGxveWVlIFN0YXR1cyBDb2RlLEVtcGxveWVlIE51bWJlcixGaXJzdCBOYW1lLExhc3QgTmFtZSxQcmVmZXJyZWQgRmlyc3QgTmFtZSxFbWFpbCBBZGRyZXNzLEFsdGVybmF0ZSBFbWFpbCBBZGRyZXNzLEpvYixPcmcgTGV2ZWwgMSxPcmcgTGV2ZWwgMixTdXBlcnZpc29yIE5hbWUgKEZpcnN0IE1JIExhc3QgU3VmZml4KSxTdXBlcnZpc29yIEVtcGxveWVlIE51bWJlcixUZXJtaW5hdGlvbiBEYXRlDQpDQ0NSLFQsMDIxMDM4LERpbmEsQWJhbG8sLCwsUmVzZXJ2YXRpb25pc3QsSG90ZWwgT3BlcmF0aW9ucyxQQlgsQWJlZ2FpbCBTaGVlbmEgTGF6YW5za3ksMDE1NzkzLDIwMjItMTItMTIgMDA6MDA6MDANCkNDQ1IsQSwwMTc4MzcsTWFyayxBYmFsb3MsLG1hcmt5LmFiYWxvc0BnbWFpbC5jb2htYS50aXdhcmlAZ21haWwuY29tLCxCZXZlcmFnZSBTZXJ2ZXIsRm9vZCBCZXZlcmFnZSxDYXNpbm8gRmxvb3IgU2VydmljZSxLaWVudGFuaCBQaGFtLDAxOTI5MCwNCkNDQ1IsQSwwMjEwMjAsQW5qYW5hLEFjaGFyeWEsLGFuamFuYWFjaGFyeWEyMDc4QGdtYWlsLmNvbSxhbmphbmFhY2hhcnlhMjA3OEBnbWFpbC5jb20sQmxhY2tqYWNrIERlYWxlcixHYW1pbmcgT3BlcmF0aW9ucyxUYWJsZSBHYW1lcyxQaGEgUmVhY2gsMDA3NzM1LA0KQ0NDUixBLDAyMTI3NixLZXZpbixBY2thcnQsS2V2aW4sa2Fja2FydEBjYWNoZWNyZWVrLmNvbSxrYWNrYXJ0MkBnbWFpbC5jb20sU291cyBDaGVmLEZvb2QgQmV2ZXJhZ2UsU3BvcnRzIFBhZ2UsTWFyaW8gTmF2YXJybywwMTc4NTEsDQpDQ0NSLEEsMDE4MDQ5LFZlcm9uaWNhLEFjb3N0YSwsdmVyb25pY2FtYWNvc3RhQGhvdG1haWwuY29tLCxDbGVhbmluZyBTcGVjaWFsaXN0LEhvdGVsIE9wZXJhdGlvbnMsRW52aXJvbm1lbnRhbCBTZXJ2aWNlLEpvcmdlIFRhcGlhLDAxMjI3MiwNCkNDQ1IsQSwwMTg4MjQsQ29yeSxBY29zdGEsLGNhY29zdGFAY2FjaGVjcmVlay5jb20saW5rZWRtYW1hNTMwQHNiY2dsb2JhbC5uZXQsUHJvbW8gU3BlYyBFdmVudCBDb29yZCxNYXJrZXRpbmcsU3BlY2lhbCBFdmVudHMsVGhvbWFzIFJpZXNnbywwMTk4MTMsDQpDQ0NSLEEsMDE4OTUwLE1heXJhLEFjb3N0YSBEZSBNYXJ0aW5leiwsbWF5cmFtYXJ0aW5lejcxMUB5YWhvby5jb20sbWF5cmFtYXJ0aW5lejcxMUB5YWhvby5jb20sQ29vayAyLEZvb2QgQmV2ZXJhZ2UsQ2FueW9uIENhZmUsQWxlamFuZHJhIE1vcmVuby1SYW1vcywwMDkzMzksDQpDQ0NSLFQsMDA4ODQzLExpbmRhLEFkYW1zLCxsYWRhbXNAY2FjaGVjcmVlay5jb20sbGFkYW1zMDg4QGdtYWlsLmNvbSxDYWNoZSBDbHViIFN1cGVydmlzb3IsQ2FzaW5vIE1hcmtldGluZyxDYWNoZSBDbHViLFNoZXJyaSBTd2lmdCBHYXJvZmFsbywwMTUyMjgsMjAyMi0xMi0xNCAwMDowMDowMA0KQ0NDUixULDAyMDgzNyxSZWJlY2NhLEFkYW1zb24sLHJlYmVhZGFtc29uOUBnbWFpbC5jb20sLFNlcnZlcixGb29kIEJldmVyYWdlLEMyIFN0ZWFraG91c2UsQW5kcmV3IEtpbmdzYnVyeSBKci4sMDIwNTc5LDIwMjMtMDUtMTQgMDA6MDA6MDANCkNDQ1IsQSwwMTc0NjEsTGlsYSxBZGhpa2FyaSxMaWxhLGxhZGhpa2FyaUBjYWNoZWNyZWVrLmNvbSxhZGhpa2FyaV9saWxhNjZAeWFob28uY29tLEd1ZXN0IFNlcnZpY2UgQWdlbnQsSG90ZWwgT3BlcmF0aW9ucyxGcm9udCBEZXNrLE5vZSBDZXJ2YW50ZXMsMDE1NjM5LA0KQ0NDUixBLDAxNzg4NCxKYW5hcmRhbixBZGhpa2FyaSwsbGlqaG9uMl9hZGhpa2FyaTJAaG90bWFpbC5jb20sbGlqaG9uMl9hZGhpa2FyaTJAaG90bWFpbC5jb20sVGFibGUgR2FtZXMgU3VwZXJ2aXNvcixHYW1pbmcgT3BlcmF0aW9ucyxUYWJsZSBHYW1lcyxNaWd1ZWwgQmFycmV0by1GcmFuY28sMDEwNzcxLA0KQ0NDUixBLDAxODAxMixSYWphIFJhbSxBZGhpa2FyaSwsQURISUtBUklSUjcyQEdNQUlMLkNPTSwsQmxhY2tqYWNrIERlYWxlcixHYW1pbmcgT3BlcmF0aW9ucyxUYWJsZSBHYW1lcyxQaGEgUmVhY2gsMDA3NzM1LA0KQ0NDUixBLDAxODU2MyxCaW5kdSxBZGhpa2FyaSwsYWRoaWthcmliaW5kdUB5bWFpbC5jb20sLENvb2sgMSxGb29kIEJldmVyYWdlLERlbGksQW50b25pbyBMYXJhLDAwNTYzMSwNCkNDQ1IsQSwwMTkyMjUsUmFzbWluYSxBZGhpa2FyaSwscmFzbWluYWFkaGlrYXJpMjAxNUBnbWFpbC5jb20scmFzbWluYWFkaGlrYXJpMjAxNUBnbWFpbC5jb20sQmxhY2tqYWNrIERlYWxlcixHYW1pbmcgT3BlcmF0aW9ucyxUYWJsZSBHYW1lcyxSb2JlcnQgU21pdGgsMDE2NzI2LA0KQ0NDUixBLDAyMDA5NSxQdXNocGEsQWRoaWthcmksLHBpbmtpc2lsd2Fsa3RtQGdtYWlsLmNvbSwsQmxhY2tqYWNrIERlYWxlcixHYW1pbmcgT3BlcmF0aW9ucyxUYWJsZSBHYW1lcyxNaWd1ZWwgQmFycmV0by1GcmFuY28sMDEwNzcxLA0KQ0NDUixBLDAyMDc0NCxTdXJlc2gsQWRoaWthcmksLHN1cmVzaGFkaGlrYXJpOTY0QGdtYWlsLmNvbSwsQmxhY2tqYWNrIERlYWxlcixHYW1pbmcgT3BlcmF0aW9ucyxUYWJsZSBHYW1lcyxNaWd1ZWwgQmFycmV0by1GcmFuY28sMDEwNzcxLA0KQ0NDUixULDAyMDcwMCxTYW1hbnRoYSxBZGhpa2FyaSwsc2FtYW50aGFhZGhpa2FyaThAZ21haWwuY29tLCxCbGFja2phY2sgRGVhbGVyLEdhbWluZyBPcGVyYXRpb25zLFRhYmxlIEdhbWVzLFJvYmVydCBTbWl0aCwwMTY3MjYsMjAyMi0xMi0xMiAwMDowMDowMA0KQ0NDUixULDAyMDcwOSxLaXNob3IsQWRoaWthcmksLHJlYmlydGgua2lzaG9yQGdtYWlsLmNvbSwsQmxhY2tqYWNrIERlYWxlcixHYW1pbmcgT3BlcmF0aW9ucyxUYWJsZSBHYW1lcyxSb2JlcnQgU21pdGgsMDE2NzI2LDIwMjMtMDctMjIgMDA6MDA6MDANCkNDQ1IsQSwwMTQ5MjksQmltYWwsQWRoaWthcnksQmltYWwsYmltYWxfZGhvakBob3RtYWlsLmNvbSwsQ2FzaW5vIENhc2hpZXIgNCxHZW5lcmFsIEFkbWluaXN0cmF0aW9uLENhZ2UsVGFueWEgTC4gTXVub3osMDAzMDg0LA0KQ0NDUixBLDAxOTg4NCxKdWxpZSxBZHN1YXJhLCx3aWNrZWRqZXdlbHpAZ21haWwuY29tLCxTZXJ2ZXIsRm9vZCBCZXZlcmFnZSxDYW55b24gQ2FmZSxNYXJpYSBKdXN6Y3plLDAwNjE5OCwNCkNDQ1IsQSwwMDgzNDYsTWFyaWEsQWd1aWxhciBEZSBNYXJxdWV6LCxtYXJpYWxpZGlhbWFycXVlejcyQGdtYWlsLmNvbSxtYXJpYWxpZGlhbWFycXVlejcyQGdtYWlsLmNvbSxDb29rIDIsRm9vZCBCZXZlcmFnZSxDMiBTdGVha2hvdXNlLEpvc2UgQXJpYXMgSGVybmFuZGV6LDAxNzM5OCwNCkNDQ1IsQSwwMjA3MDUsTHVpcyxBZ3VpbGFyIE1vbnRpam8sLGxhZ3VpbGFybW9udGlqb0BjYWNoZWNyZWVrLmNvbSxsdWlzY2hvMTk4MkBob3RtYWlsLmNvbSxSZXN0YXVyYW50IENoZWYsRm9vZCBCZXZlcmFnZSxTcG9ydHMgUGFnZSxNYXJpbyBOYXZhcnJvLDAxNzg1MSwNCkNDQ1IsQSwwMDk2OTIsRnJhbmNpc2NvLEFndWlsZXJhLCxmcmFua3k3MDNAeWFob28uY29tLCxTZWN1cml0eSBPZmZpY2VyLEdlbmVyYWwgQWRtaW5pc3RyYXRpb24sU2VjdXJpdHksUm9iZXJ0IENvZGFycmUsMDA2ODY2LA0KQ0NDUixULDAyMDkyNCxBbGljaWEsQWd1aWxlcmEsLGFhZ3VpbGVyYUBjYWNoZWNyZWVrLmNvbSxhbWFyaWVhZ3VpbGVyYUBnbWFpbC5jb20sRGlzcGF0Y2ggT2ZmaWNlcixHZW5lcmFsIEFkbWluaXN0cmF0aW9uLFNlY3VyaXR5LFJvYmVydCBDb2RhcnJlLDAwNjg2NiwyMDIzLTA1LTA2IDAwOjAwOjAwDQpDQ0NSLEEsMDE1MDU0LEV1ZmVtaW8sQWd1aWxlcmEgQ2hhaXJleixFdWZlbWlvLGFndWlsZXJhZXVmZW1pbzRAZ21haWwuY29tLCxMZWFkIENvb2ssRm9vZCBCZXZlcmFnZSxDMiBTdGVha2hvdXNlLEpvc2UgQXJpYXMgSGVybmFuZGV6LDAxNzM5OCwNCkNDQ1IsQSwwMTIxMDcsQ2hyaXN0eSxBZ3VpcnJlLCxjYWd1aXJyZUBjYWNoZWNyZWVrLmNvbSxjaHJpc3R5LmFndWlycmVAYW9sLmNvbSxTcGEgVGVjaCBMZWFkIE1hc3NhZ2UsSG90ZWwgT3BlcmF0aW9ucyxTcGEsSmVubmEgSGVsbGluZ2VyLDAxMjgyOCwNCkNDQ1IsQSwwMTgyNTgsWWVzc2ljYSxBZ3VpcnJlLCx5YWd1aXJyZUBjYWNoZWNyZWVrLmNvbSx5LmRlbGdhZG83MjRAaWNsb3VkLmNvbSxSZXZlbnVlIEF1ZGl0b3IgMixHZW5lcmFsIEFkbWluaXN0cmF0aW9uLEZpbmFuY2UsTWlyZXlhIEdhcnphLDAwNTg0MywNCkNDQ1IsVCwwMTg3OTQsQWxiZXJ0byxBZ3VpcnJlIENvbnRyZXJhcywsLGFndWlycmVhbGJlcnRvODAwQGdtYWlsLmNvbSxTZWN1cml0eSBPZmZpY2VyLEdlbmVyYWwgQWRtaW5pc3RyYXRpb24sU2VjdXJpdHksUm9iZXJ0IENvZGFycmUsMDA2ODY2LDIwMjItMDYtMDggMDA6MDA6MDANCkNDQ1IsQSwwMTk2NjQsUGFyYW1qaXQsQWhlZXIsLGRpbmt5YWhlZXIyMDA0QGdtYWlsLmNvbSwsR3Vlc3QgUm9vbSBBdHRlbmRhbnQsSG90ZWwgT3BlcmF0aW9ucyxIb3VzZWtlZXBpbmcsU2hlcmV6YWRhIFRhcGlhLDAxMjI4OSwNCkNDQ1IsVCwwMTk5NTEsQ3JhaWcsQWhsc3Ryb20sLENyYWlnLmFobHN0cm9tOTNAZ21haWwuY29tLCxCYXIgQmFjayxGb29kIEJldmVyYWdlLENhbnlvbiBDYWZlLEtpZW50YW5oIFBoYW0sMDE5MjkwLDIwMjMtMDgtMDYgMDA6MDA6MDANCkNDQ1IsQSwwMTQxNTAsUmlheixBaG1hZCxSaWF6LGFobWFkYXNhZDE3OUBnbWFpbC5jb20sLERlZXAgQ2xlYW5lcixGb29kIEJldmVyYWdlLFN0ZXdhcmRpbmcsTWFyaW8gTmF2YXJybywwMTc4NTEsDQpDQ0NSLEEsMDE1NjM3LFJhemEsQWhtYWQsLHJhaG1hZEBjYWNoZWNyZWVrLmNvbSxyYXphX2FobWFkQGljbG91ZC5jb20sU2VjdXJpdHkgU2hpZnQgTWFuYWdlcixHZW5lcmFsIEFkbWluaXN0cmF0aW9uLFNlY3VyaXR5LFJvYmVydCBDb2RhcnJlLDAwNjg2NiwNCkNDQ1IsQSwwMjA3NzIsQXNhZCxBaG1hZCwsYWFobWFkQENBQ0hFQ1JFRUsuQ09NLGFobWFkYXNhZDE3OUBnbWFpbC5jb20sQmVuZWZpdHMgUmVwcmVzZW50YXRpdmUgMixHZW5lcmFsIEFkbWluaXN0cmF0aW9uLEh1bWFuIFJlc291cmNlcyxNYXJ0YSBXYWRhLDAxODYyNiwNCkNDQ1IsVCwwMTg0NzQsTWFxc29vZCxBaG1hZCwsbWFxc29vZGFobWFkMDEwOEB5YWhvby5jb20sLFN0ZXdhcmQsRm9vZCBCZXZlcmFnZSxTdGV3YXJkaW5nLE1hcmlvIE5hdmFycm8sMDE3ODUxLDIwMjMtMDgtMjcgMDA6MDA6MDANCkNDQ1IsQSwwMTIyMjEsTXVtdGF6LEFobWVkLE11bXRheixtdW10YXpzb2JpYTEyM0BnbWFpbC5jb20sLEJ1cyBQZXJzb24gTm9uIFRpcHBlZCxGb29kIEJldmVyYWdlLFN3ZWV0cyBFdGMsQW5uYWJlbGwgU2lsYXZvbmcsMDE4NzExLA0KQ0NDUixBLDAxODQ5NixOYXNlZXIsQWhtZWQsLGFobWVkbmFzZWVyNDA4QHlhaG9vLmNvbSwsQ2xlYW5pbmcgU3BlY2lhbGlzdCxIb3RlbCBPcGVyYXRpb25zLEVudmlyb25tZW50YWwgU2VydmljZSxKb3JnZSBUYXBpYSwwMTIyNzIsDQpDQ0NSLEEsMDEwOTk0LE11c3NhcmF0LEFraHRhciwsbXVzc2FyYXRfYWtodGFyQHlhaG9vLmNvbSwsQ29vayAxLEZvb2QgQmV2ZXJhZ2UsQ2hhbmcgU2hvdSxDaHVuIFpob25nLDAxMjU0OSwNCkNDQ1IsQSwwMTM4OTIsWnViaWRhLEFraHRhcixadWJpZGEsQUtCQVJCQUlOU0BHTUFJTC5DT00sLFN0ZXdhcmQsRm9vZCBCZXZlcmFnZSxTdGV3YXJkaW5nLE1hcmlvIE5hdmFycm8sMDE3ODUxLA0KQ0NDUixBLDAxODg4OCxVbWUsQWtodGFyLCxrYWxzb29tMjAwN0B5YWhvby5jb20sa2Fsc29vbTIwMDdAeWFob28uY29tLEJ1cyBQZXJzb24gTm9uIFRpcHBlZCxGb29kIEJldmVyYWdlLEhhcnZlc3QgRGluaW5nIEhhbGwsTWFyaWUgQ29udHJlcmFzLDAxODg4MCwNCkNDQ1IsQSwwMTQzNjcsTGF1cmluZGEsQWtpbiwsbGFraW5AY2FjaGVjcmVlay5jb20sbG5fYWtpbkB5YWhvby5jb20sQ2FzaW5vIFNlcnZpY2VzIFJlcCxDYXNpbm8gTWFya2V0aW5nLFBsYXllciBEZXZlbG9wbWVudCxKb2huIEouIEtpcmsgSnIuLDAyMTUyOSwNCkNDQ1IsQSwwMTk4MDUsTXVoYW1tYWQsQWtyYW0sLGFrcmFtbXVoYW1tYWQxNDA1QGdtYWlsLmNvbSwsQ2xlYW5pbmcgU3BlY2lhbGlzdCxIb3RlbCBPcGVyYXRpb25zLEVudmlyb25tZW50YWwgU2VydmljZSxKb3JnZSBUYXBpYSwwMTIyNzIsDQpDQ0NSLEEsMDE5ODM0LEF6cmEsQWtyYW0sLGF6cmFha3JhbTcxQGdtYWlsLmNvbSwsQ2xlYW5pbmcgU3BlY2lhbGlzdCxIb3RlbCBPcGVyYXRpb25zLEVudmlyb25tZW50YWwgU2VydmljZSxKb3JnZSBUYXBpYSwwMTIyNzIsDQpDQ0NSLFQsMDIwNzU3LFByaW5jZSBBcnRodXIsQWxhZ2FvLCwscHJpbmNlYXJ0aHVyYWxhZ2FvQHlhaG9vLmNvbSxDYXNpbm8gQ2FzaGllcixHZW5lcmFsIEFkbWluaXN0cmF0aW9uLENhZ2UsVGFueWEgTC4gTXVub3osMDAzMDg0LDIwMjItMDYK</ReportStream>
        </StreamReportResponse>
    </s:Body>
</s:Envelope>

 

  And a decode sample(truncated):

 

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
    <s:Header>
        <a:Action s:mustUnderstand="1">http://www.ultipro.com/dataservices/bistream/2/IBIStreamService/RetrieveReportResponse</a:Action>
        <h:Status xmlns:h="http://www.ultipro.com/dataservices/bistream/2">Completed</h:Status>
        <h:StatusMessage i:nil="true" xmlns:h="http://www.ultipro.com/dataservices/bistream/2" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"/>
        <a:RelatesTo>urn:uuid:8332571f-3a89-4442-ac80-27195b397b4d</a:RelatesTo>
    </s:Header>
    <s:Body>
        <StreamReportResponse xmlns="http://www.ultipro.com/dataservices/bistream/2">
            <ReportStream>Company Code,Employee Status Code,Employee Number,First Name,Last Name,Preferred First Name,Email Address,Alternate Email Address,Job,Org Level 1,Org Level 2,Supervisor Name (First MI Last Suffix),Supervisor Employee Number,Termination Date
CCCR,T,021038,Dina,xxxxx,,,,Reservationist,Hotel Operations,PBX,Abegail xxxx,015234793,2022-12-12 00:00:00
CCCR,A,017837,Mark,xxxxx,,marky.xxxxx@xxxxx.com,,Server,Food Beverage,xxxxxxxxxx,
CCCR,A,020253,Madiyar,xxxxx,,dota.xxxx@xxxxx.com,dota.xxxxx@xxxxx.com,Table Games Shift Manager,Gaming Operations,Table Games,xxxxxxxxx,007723435,
</ReportStream>
        </StreamReportResponse>
    </s:Body>
</s:Envelope>

 

[This message has been edited by moderator to mask email address]

pruthvi_t
Saviynt Employee
Saviynt Employee

@jralexander137 ,

The response path of the json looks fine, but did you see if there are any extra characters like comma or page break after each line in any of the decoded values?? Such things could cause the parsing error but validating once could clear it.

If you see below in the part of the decoded response, one line doesn't have a comma in the end where as the other lines has the comma (in broad text).

<ReportStream>Company Code,Employee Status Code,Employee Number,First Name,Last Name,Preferred First Name,Email Address,Alternate Email Address,Job,Org Level 1,Org Level 2,Supervisor Name (First MI Last Suffix),Supervisor Employee Number,Termination Date
CCCR,T,021038,Dina,Smoot,,,,Reservationist,Hotel Operations,PBX,Abegail Sheerna Larzansky,015234793,2022-12-12 00:00:00
CCCR,A,017837,Mark,Smoot,,marky.smoot@xxxxxxx.com,,Server,Food Beverage,Chang Shou,Jiarbrin Larthum,018623422,
CCCR,A,020253,Madiyar,Smoot,,dota.smoot@xxxxxxx.com,dota.smoot@xxxxxx.com,Table Games Shift Manager,Gaming Operations,Table Games,Phar Reach,007723435,
</ReportStream>

Thanks,


Regards,
Pruthvi