function retrieveRawValue(data, dataIndex, dim) {
    if (!data) {
        return;
    }

    // Consider data may be not persistent.
    var dataItem = data.getRawDataItem(dataIndex);

    if (dataItem == null) {
        return;
    }

    var sourceFormat = data.getProvider().getSource().sourceFormat;
    var dimName;
    var dimIndex;

    var dimInfo = data.getDimensionInfo(dim);
    if (dimInfo) {
        dimName = dimInfo.name;
        dimIndex = dimInfo.index;
    }

    return rawValueGetters[sourceFormat](dataItem, dataIndex, dimIndex, dimName);
}
Format label
@param {number} dataIndex
@param {string} [status='normal'] 'normal' or 'emphasis'
@param {string} [dataType]
@param {number} [dimIndex] Only used in some chart that
       use formatter in different dimensions, like radar.
@param {string} [labelProp='label']
@return {string} If not formatter, return null/undefined