1

我正在尝试使用 SAP BW 连接器中的 MDX Query 将数据从 SAP BW 系统提取到 Azure Data Lake。但我在 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"
}

从错误中,我可以理解Measures中有一些值实际上不是数值。在 SAP 系统中更改或更正值不在我的范围内。SAP BW 连接的数据工厂 V2 中是否有任何选项,以便我可以为输入和/或输出定义度量的数据类型。或者在 MDX 查询中有任何微​​调,以便我可以毫无错误地获取数据?

这是我的 MDX 查询:

SELECT 
{[Measures].[SomeMeasure]}  ON COLUMNS,
NON EMPTY
{ [0COMP_CODE].[LEVEL01].MEMBERS *
[0COSTELMNT].[LEVEL01].MEMBERS }
ON ROWS
FROM SomeQube
  WHERE {[0FISCPER].[K42015008]}
4

2 回答 2

0

如果您可以跳过不正确的行,则可以将 enableSkipIncompatibleRow 设置为 true。请参考这个做c。

于 2018-07-19T11:25:18.540 回答
0

您的过滤器不正确。SAP 0FISCPER 维度采用 YYYYMMM 格式。您需要输入 WHERE {[0FISCPER].[2015008]}。我几乎可以肯定你输入的“K4”是你的会计年度变体,你不应该放在那里。像这样的 K4 对象称为复合信息对象(如果您将其设想为分层父/子结构,则属于您的会计年度/期间)。但在这种特定情况下,您不需要指定会计年度变式。只需删除 K4。

我强烈建议不要跳过“不正确的行”。我对您的指导是,无论何时发生异常,您都应该始终失败并调查数据质量问题。永远不要将企业数据完整性置于风险之中。SAP 数据必须 100% 准确,而不是 99.9999%。

于 2019-01-23T05:23:25.133 回答