diff --git a/pom.xml b/pom.xml index b60c825b..c8690b5a 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ io.cdap.plugin servicenow-plugins - 1.2.0-SNAPSHOT + 1.2.4-SNAPSHOT ServiceNow Plugins jar Plugins for ServiceNow diff --git a/src/main/java/io/cdap/plugin/servicenow/apiclient/ServiceNowTableAPIClientImpl.java b/src/main/java/io/cdap/plugin/servicenow/apiclient/ServiceNowTableAPIClientImpl.java index 2971be6f..461db149 100644 --- a/src/main/java/io/cdap/plugin/servicenow/apiclient/ServiceNowTableAPIClientImpl.java +++ b/src/main/java/io/cdap/plugin/servicenow/apiclient/ServiceNowTableAPIClientImpl.java @@ -127,22 +127,30 @@ public List> fetchTableRecords( int offset, int limit) throws ServiceNowAPIException { - ServiceNowTableAPIRequestBuilder requestBuilder = new ServiceNowTableAPIRequestBuilder( - this.conf.getRestApiEndpoint(), tableName, false) - .setExcludeReferenceLink(true) - .setDisplayValue(valueType) - .setLimit(limit); + List> combinedResults = new ArrayList<>(); + String accessToken = getAccessToken(); + int pageSize = limit / 5; + LOG.info("pageSize:::: " + pageSize); + LOG.info("offset:::: " + offset); + for (int i = 0; i < 5; i++) { + int currentOffset = offset + (i * pageSize); + ServiceNowTableAPIRequestBuilder requestBuilder = new ServiceNowTableAPIRequestBuilder( + this.conf.getRestApiEndpoint(), tableName, false) + .setExcludeReferenceLink(true) + .setDisplayValue(valueType) + .setLimit(pageSize) + .setOffset(currentOffset); + LOG.info("currentOffset:::: " + currentOffset); + + applyDateRangeToRequest(requestBuilder, startDate, endDate); - if (offset > 0) { - requestBuilder.setOffset(offset); + requestBuilder.setAuthHeader(accessToken); + RestAPIResponse apiResponse = executeGetWithRetries(requestBuilder.build()); + List> batch = parseResponseToResultListOfMap(apiResponse.getResponseBody()); + combinedResults.addAll(batch); } - - applyDateRangeToRequest(requestBuilder, startDate, endDate); - - String accessToken = getAccessToken(); - requestBuilder.setAuthHeader(accessToken); - RestAPIResponse apiResponse = executeGetWithRetries(requestBuilder.build()); - return parseResponseToResultListOfMap(apiResponse.getResponseBody()); + LOG.info("combinedResults size:::: " + combinedResults.size()); + return combinedResults; } private void applyDateRangeToRequest(ServiceNowTableAPIRequestBuilder requestBuilder, String startDate,