fluid-api/src/main/java/com/fluidbpm/program/api/util/elasticsearch/ABaseESUtil.java
public final List<Form> getFormsByIds(
			String indexParam,
			List<Long> formIdsParam,
			boolean includeFieldDataParam,
			int offsetParam,
			int limitParam
	) {
		if(formIdsParam == null || formIdsParam.isEmpty()) {
			return null;
		}

		if(indexParam == null || indexParam.trim().isEmpty()) {
			throw new FluidElasticSearchException(
					"Index is mandatory for lookup.");
		}

		//Query using the descendantId directly...
		StringBuffer byIdQuery = new StringBuffer();

		for(Long formId : formIdsParam) {
			byIdQuery.append(ABaseFluidJSONObject.JSONMapping.ID);
			byIdQuery.append(":\"");
			byIdQuery.append(formId);
			byIdQuery.append("\" ");
		}

		String queryByIdsToString = byIdQuery.toString();
		queryByIdsToString = queryByIdsToString.substring(0, queryByIdsToString.length() - 1);

		List<Form> returnVal = null;
		if(includeFieldDataParam) {
			returnVal = this.searchAndConvertHitsToFormWithAllFields(
					QueryBuilders.queryStringQuery(queryByIdsToString),
					indexParam,
					offsetParam,
					limitParam,
					new Long[]{});
		} else {
			returnVal = this.searchAndConvertHitsToFormWithNoFields(
					QueryBuilders.queryStringQuery(queryByIdsToString),
					indexParam,
					offsetParam,
					limitParam,
					new Long[]{});
		}

		if(returnVal == null || returnVal.isEmpty()) {
			return null;
		}

		return returnVal;
	}
public final List<Form> getFormsByIds(
			String indexParam,
			List<Long> formIdsParam,
			boolean includeFieldDataParam,
			int offsetParam,
			int limitParam
	) {
		if(formIdsParam == null || formIdsParam.isEmpty()) {
			return null;
		}

		if(indexParam == null || indexParam.trim().isEmpty()) {
			throw new FluidElasticSearchException(
					"Index is mandatory for lookup.");
		}

		//Query using the descendantId directly...
		StringBuffer byIdQuery = new StringBuffer();

		for(Long formId : formIdsParam) {
			byIdQuery.append(ABaseFluidJSONObject.JSONMapping.ID);
			byIdQuery.append(":\"");
			byIdQuery.append(formId);
			byIdQuery.append("\" ");
		}

		String queryByIdsToString = byIdQuery.toString();
		queryByIdsToString = queryByIdsToString.substring(0, queryByIdsToString.length() - 1);

		List<Form> returnVal = null;
		if(includeFieldDataParam) {
			returnVal = this.searchAndConvertHitsToFormWithAllFields(
					QueryBuilders.queryStringQuery(queryByIdsToString),
					indexParam,
					offsetParam,
					limitParam,
					new Long[]{});
		} else {
			returnVal = this.searchAndConvertHitsToFormWithNoFields(
					QueryBuilders.queryStringQuery(queryByIdsToString),
					indexParam,
					offsetParam,
					limitParam,
					new Long[]{});
		}

		if(returnVal == null || returnVal.isEmpty()) {
			return null;
		}

		return returnVal;
	}
Retrieves the {@code Form}'s via the provided {@code formIdsParam}.

@param indexParam The ElasticSearch index to be used for lookup.
@param formIdsParam {@code List} of Identifiers for the Forms to return.
@param includeFieldDataParam Whether to populate the return {@code Form} table fields.
@param offsetParam The offset for the results to return.
@param limitParam The max number of results to return.

@return {@code List<Form>} List of Forms.