Uploaded image for project: 'OpenICF'
  1. OpenICF
  2. OPENICF-1022

SF Connector: Non-paged query can not return >2k results from Salesforce

    Details

      Description

      Querying Salesforce via the new ICF based Salesforce Connector results in a failure if the resultset contains >2k results.

      For example, executing the following REST request:

      http://localhost:8080/openidm/system/00Dq00000001QDD/User?_queryId=query-all-ids

      against a Salesforce Org with 10k Users will fail with the following:

      Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "nextRecordsUrl" (class org.forgerock.openicf.connectors.salesforce.resource.SalesforceResourceQueryResult), not marked as ignorable (4 known properties: "done", "totalSize", "records", "totalResults"])
      at [Source: (StringReader); line: 1, column: 50] (through reference chain: org.forgerock.openicf.connectors.salesforce.resource.SalesforceResourceQueryResult["nextRecordsUrl"])
      at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:61)
      at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:823)
      at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:1153)
      at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1589)
      at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1567)
      at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:294)
      at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)
      at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4013)
      at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3004)
      at org.forgerock.openicf.connectors.salesforce.client.SalesforceClient.query(SalesforceClient.java:199)
      ... 18 more
      

      When executing a SOQL Query against a Salesforce Org the connector must properly handle responses which include the nextRecordsUrl attribute in order to retrieve the remaining results.

       

        Attachments

          Activity

            People

            • Assignee:
              cgdrake Chris Drake
              Reporter:
              cgdrake Chris Drake
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: