function writeCustomData(oControl, sKey, sValue, mPropertyBag) {
		const mCustomData = mPropertyBag.modifier.getCustomDataInfo(oControl, sKey);
		if (!mCustomData.customData) {
			return mPropertyBag.modifier.createAndAddCustomData(oControl, sKey, sValue, mPropertyBag.appComponent);
		}
		return Promise.resolve(mPropertyBag.modifier.setProperty(mCustomData.customData, "value", sValue));
	}
Provides functionality to handle flex related CustomData
A CustomData object will be added to the control with the key depending on the success of the applyChange method.
Possible keys are:
	- 'sap.ui.fl.appliedChanges.<sChangeId>'
	- 'sap.ui.fl.failedChanges.js.<sChangeId>'
	- 'sap.ui.fl.failedChanges.xml.<sChangeId>'
	- 'sap.ui.fl.notApplicableChanges.<sChangeId>'
The value for applied changes is the serialized revert data, for every other it's just 'true'
notApplicable describes a state where the change could not be applied, but it's still fine
and doesn't harm the other changes (e.g. duplicate addFields change)
The CustomData is also persisted in the view cache if it's active

@alias sap.ui.fl.FlexCustomData
@since 1.61.0
@private
@author SAP SE
@version ${version}