function parseV4ServiceUri(sServiceUri) {
		/**
		 * a SAP Gateway OData V4 service URI looks as follows:
		 * /sap/opu/odata4/<service group namespace>/<service group id>/<repository id>/<service namespace>/<service id>/<service version>/
		 * Examples:
		 * /sap/opu/odata4/IWBEP/V4_SAMPLE/default/IWBEP/V4_GW_SAMPLE_BASIC/0001/
		 * /sap/opu/odata4/sap/aivs_mdbu_read_app/sadl_srvd/sap/aivs_mdbu_read/0001/
		 * /sap/opu/odata4/sap/aps_integration_test/sadl/sap/i_cfd_tsm_so_core/0001/
		 * The service group is only used for administration purpose. The combination of <repository id>, <service namespace> and <service id> identifies a service uniquely.
		 * Therefore the part /<repository id>/<service namespace>/<service id> will be handled as serviceName
		 */

		// refer to ABAP gateway lib implementation (/IWCOR/CL_OD_HDLR_ROOT=>GET_SERVICE_NAME)
		// 1st Capture group => service group, repository, service
		// 2nd Capture group => service version segment
		// 3nd Capture group => resource path
		var oRegexService = /^\/?sap\/opu\/odata4((?:\/[^/]+){5})(\/[^/]+){1}(\/.*)?/i;
		var aServiceSegments = sServiceUri.match(oRegexService);
		if (!aServiceSegments || aServiceSegments.length !== 4) {
			throw new Error("sap.ui.fl.fieldExt.UriParser.parseV4ServiceUri: Malformed service URI");
		}

		// extract service name
		var aNameSegments = aServiceSegments[1].split("/");
		aNameSegments.splice(0, 3); // remove leading "/", group namespace and group name

		// extract service version
		var oRegexServiceVersion = /(\d{1,4})/i;
		var aVersionSegments = aServiceSegments[2].match(oRegexServiceVersion);

		return {
			serviceName: aNameSegments.join("/"),
			serviceVersion: aVersionSegments[1],
			serviceType: mServiceType.v4
		};
	}
/**
	 * Extracts ServiceName and ServiceVersion out of Service URI
	 *
	 * @private
	 * @param {string} sServiceUri - URI to an OData v4 service document
	 * @returns {object} An object with serviceName and serviceVersion
	 */
Extracts ServiceName and ServiceVersion out of Service URI
@private
@param {string} sServiceUri - URI to an OData v4 service document
@returns {object} An object with serviceName and serviceVersion
Extracts ServiceName and ServiceVersion out of Service URI @private @param { string } sServiceUri - URI to an OData v4 service document @returns { object } An object with serviceName and serviceVersion
function parseV4ServiceUri(sServiceUri) {
		var oRegexService = /^\/?sap\/opu\/odata4((?:\/[^/]+){5})(\/[^/]+){1}(\/.*)?/i;
		var aServiceSegments = sServiceUri.match(oRegexService);
		if (!aServiceSegments || aServiceSegments.length !== 4) {
			throw new Error("sap.ui.fl.fieldExt.UriParser.parseV4ServiceUri: Malformed service URI");
		}
		var aNameSegments = aServiceSegments[1].split("/");
		aNameSegments.splice(0, 3); 
		var oRegexServiceVersion = /(\d{1,4})/i;
		var aVersionSegments = aServiceSegments[2].match(oRegexServiceVersion);
		return {
			serviceName: aNameSegments.join("/"),
			serviceVersion: aVersionSegments[1],
			serviceType: mServiceType.v4
		};
	}
function parseV4ServiceUri ( sServiceUri ) { var oRegexService = / ^\/?sap\/opu\/odata4((?:\/[^/]+){5})(\/[^/]+){1}(\/.*)? / i ; var aServiceSegments = sServiceUri . match ( oRegexService ) ; if ( ! aServiceSegments || aServiceSegments . length !== 4 ) { throw new Error ( "sap.ui.fl.fieldExt.UriParser.parseV4ServiceUri: Malformed service URI" ) ; } var aNameSegments = aServiceSegments [ 1 ] . split ( "/" ) ; aNameSegments . splice ( 0 , 3 ) ; var oRegexServiceVersion = / (\d{1,4}) / i ; var aVersionSegments = aServiceSegments [ 2 ] . match ( oRegexServiceVersion ) ; return { serviceName : aNameSegments . join ( "/" ) , serviceVersion : aVersionSegments [ 1 ] , serviceType : mServiceType . v4 } ; }
Extracts ServiceName and ServiceVersion out of Service URI
 @private
 @param {string} sServiceUri - URI to an OData v4 service document
 @returns {object} An object with serviceName and serviceVersion
Extracts ServiceName and ServiceVersion out of Service URI @private @param { string } sServiceUri - URI to an OData v4 service document @returns { object } An object with serviceName and serviceVersion
/**
		 * a SAP Gateway OData V4 service URI looks as follows:
		 * /sap/opu/odata4/<service group namespace>/<service group id>/<repository id>/<service namespace>/<service id>/<service version>/
		 * Examples:
		 * /sap/opu/odata4/IWBEP/V4_SAMPLE/default/IWBEP/V4_GW_SAMPLE_BASIC/0001/
		 * /sap/opu/odata4/sap/aivs_mdbu_read_app/sadl_srvd/sap/aivs_mdbu_read/0001/
		 * /sap/opu/odata4/sap/aps_integration_test/sadl/sap/i_cfd_tsm_so_core/0001/
		 * The service group is only used for administration purpose. The combination of <repository id>, <service namespace> and <service id> identifies a service uniquely.
		 * Therefore the part /<repository id>/<service namespace>/<service id> will be handled as serviceName
		 */ // refer to ABAP gateway lib implementation (/IWCOR/CL_OD_HDLR_ROOT=>GET_SERVICE_NAME) // 1st Capture group => service group, repository, service // 2nd Capture group => service version segment // 3nd Capture group => resource path // extract service name // remove leading "/", group namespace and group name // extract service version