我正在尝试使用SAP BW连接器中的MDX查询将数据从SAP BW系统提取到Azure数据湖。但是我在Azure中收到以下异常消息:
{
"errorCode": "2200",
"message": "Failure happened on 'Source' side. ErrorCode=UserErrorInvalidDataValue,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Column '[Measures].[SomeMeasure]' contains an invalid value '4.000-2'. Cannot convert '4.000-2' to type 'Decimal'.,Source=Microsoft.DataTransfer.Common,''Type=System.InvalidCastException,Message=Specified cast is not valid.,Source=Microsoft.DataTransfer.Common,'",
"failureType": "UserError",
"target": "Copy1"
}
从错误中,我可以了解到Measurements中有些值实际上不是数字值。在SAP系统中更改或校正值不在我的范围内。 用于SAP BW的Data Factory V2中是否有任何选项,以便我可以为输入和/或输出定义度量的数据类型。还是在MDX查询中进行了微调,以便我可以正确地获取数据?
这是我的MDX查询:
SELECT
{[Measures].[SomeMeasure]} ON COLUMNS,
NON EMPTY
{ [0COMP_CODE].[LEVEL01].MEMBERS *
[0COSTELMNT].[LEVEL01].MEMBERS }
ON ROWS
FROM SomeQube
WHERE {[0FISCPER].[K42015008]}
答案 0 :(得分:0)
如果您可以跳过不正确的行,则可以将enableSkipIncompatibleRow设置为true。请参考this do c。
答案 1 :(得分:0)
您的过滤器不正确。 SAP 0FISCPER维度为YYYYMMM格式。您需要输入WHERE {[0FISCPER]。[2015008]}。我几乎可以肯定,您输入的“ K4”是您会计年度的变式,您不应该在此输入。像K4这样的对象称为复合信息对象(如果您将其设想为层次化父级/子级结构,则会计年度/期间属于该对象)。但是在这种特定情况下,您无需指定会计年度变式。只需移除K4。
我强烈建议您不要跳过“不正确的行”。我对您的指导是,无论何时发生异常,您都应始终使工作失败,并调查数据质量问题。永远不要将企业数据完整性置于危险之中。 SAP数据必须是100%准确,而不是99.9999%。