code: function (oElement, mAction) {
  			var oDefaultAggregation = oElement.getMetadata().getAggregation();
  			var sAggregationName = oDefaultAggregation ? oDefaultAggregation.name : mAction.action.aggregation;
  			var oModel = oElement.getModel();
  
  			return Promise.resolve()
  				.then(function () {
  					return _getODataPropertiesOfModel(oElement, sAggregationName);
  				})
  				.then(function(mData) {
  					var aODataProperties = mData.property;
  					var aRelevantElements = _getRelevantElements(oElement, mAction.relevantContainer, sAggregationName);
  					var aBindings = [];
  
  					aRelevantElements.forEach(function(oElement){
  						aBindings = aBindings.concat(BindingsExtractor.getBindings(oElement, oModel));
  					});
  
  					var fnFilter = mAction.action.filter ? mAction.action.filter : function() {return true;};
  
  					aODataProperties = aODataProperties.filter(function(oDataProperty) {
  						var bHasBindingPath = false;
  						if (aBindings){
  							bHasBindingPath = aBindings.some(function(vBinding) {
  								return (
  									jQuery.isPlainObject(vBinding)
  									? vBinding.parts[0].path
  									: !!vBinding.getPath && vBinding.getPath()
  								) === oDataProperty.bindingPath;
  							});
  						}
  						return !bHasBindingPath && fnFilter(mAction.relevantContainer, oDataProperty);
  					});
  
  					aODataProperties = _checkForComplexDuplicates(aODataProperties);
  
  					return aODataProperties;
  				})
  				.then(function(aUnboundODataProperties) {
  					return aUnboundODataProperties.map(_oDataPropertyToAdditionalElementInfo);
  				});
  		}
docs: Retrieves available OData properties from the metadata
  
  @param {sap.ui.core.Control} oElement - Source element of which Model we're looking for additional properties
  @param {Object} mAction - Action descriptor
  
  @return {Promise} - returns a Promise which resolves with a list of available to display OData properties