function applyAdapterAndCreateBinding(oModel, mParameters, aAnalyticalInfo, sBindingPath, aSorters, aFilters) {
		mParameters = mParameters || {};
		aAnalyticalInfo = aAnalyticalInfo
			|| [oCostCenterGrouped, oCostElementGrouped, oCurrencyGrouped, oActualCostsTotal];

		ODataModelAdapter.apply(oModel);
		const oBinding = new AnalyticalBinding(oModel, sBindingPath || sPath, null, aSorters || [],
			aFilters || [], /*mParameters*/ {
				analyticalInfo : aAnalyticalInfo,
				autoExpandMode : mParameters.autoExpandMode,
				custom: mParameters.custom || undefined,
				numberOfExpandedLevels: mParameters.numberOfExpandedLevels || 0,
				noPaging: mParameters.noPaging || false,
				provideGrandTotals : "provideGrandTotals" in mParameters
					? mParameters.provideGrandTotals
					: undefined,
				select: mParameters.select,
				useBatchRequests: "useBatchRequests" in mParameters
					? mParameters.useBatchRequests
					: true
			}
		);
		AnalyticalTreeBindingAdapter.apply(oBinding);

		return oBinding;
	}
Applies the ODataModelAdapter to the given OData model and creates a new AnalyticalBinding
with the given parameters, analytical info, binding path, sorters and filters.

@param {sap.ui.model.Model} oModel
  The OData model
@param {object} [mParameters={}]
  The Analytical binding parameters
@param {object[]} [aAnalyticalInfo]
  The array of the analytical columns to be used; by default CostCenter (grouped), CostElement (grouped),
  Currency (grouped) and ActualCosts (with total)
@param {string} [sBindingPath="/ActualPlannedCosts(P_ControllingArea='US01',P_CostCenter='100-1000',P_CostCenterTo='999-9999')/Results"]
  The binding path
@param {sap.ui.model.Sorter[]} [aSorters=[]]
  The array of sorters
@param {sap.ui.model.Filter[]} [aFilters=[]]
  The array of filters
@returns {sap.ui.model.analytics.AnalyticalBinding}
  The analytical binding