货币换算 (Analysis Services)

适用于: 仅限多维

Analysis Services 使用由多维表达式(MDX)脚本引导的功能组合,为支持多种货币的多维数据集提供货币转换功能。

货币换算术语

Analysis Services 中使用以下术语来描述货币换算功能:

基准货币
汇率度量值组中用于输入汇率的基准货币。

本币
用于存储要转换度量值的事务的货币。

本地货币可以通过以下任一方式进行标识:

  • 在事实数据表中,货币标识符与交易一起存储,这在银行应用程序中很常见,交易本身标识所用的货币。

  • 与维度表中的属性关联的货币标识符通常会与事实数据表中的事务相关联,这是在财务应用程序中很常见的情况。在这种情况下,位置或其他标识符(如子公司)用于识别关联事务所使用的货币。

申报币种
交易从基准货币转换为的货币。

注释

对于多种货币汇率换算到一种货币,基准货币和报告货币是相同的。

货币维度
使用以下设置定义的数据库维度:

  • 维度 Type 的属性设置为货币。

  • 维度 Type 的某个属性被设置为 CurrencyName。

    重要

    此属性的值必须在应包含货币标识符的所有列中使用。

速率度量值组
在多维数据集中的度量组,使用以下设置定义:

  • 货币维度和费率度量值组之间存在常规维度关系。

  • 时间维度和速率度量值组之间存在常规维度关系。

  • (可选)属性 Type 设置为 ExchangeRate。 虽然商业智能向导使用与货币和时间维度的关系来标识可能的费率度量值组,但将 Type 属性设置为 ExchangeRate 可让客户端应用程序更轻松地识别费率度量值组。

  • 一个或多个度量值,表示汇率度量值组所包含的汇率。

报告货币维度
定义由商业智能向导在货币转换后设定的维度,其中包含该货币转换的报告货币。 报告货币维度基于一个命名查询,该查询在数据源视图中定义,与费率度量值组关联的货币维度基于该查询,该查询基于货币维度的维度主表。 维度通过以下设置定义:

  • 维度 Type 的属性设置为“货币”。

  • 该维度的Type键属性被设置为CurrencyName。

  • Type维度中一个属性的属性设置为 CurrencyDestination,绑定到该属性的列包含表示货币转换的报告货币的货币标识符。

定义货币换算

可以使用商业智能向导为多维数据集定义货币转换功能,也可以使用 MDX 脚本手动定义货币转换。

先决条件

在使用商业智能向导在多维数据集中定义货币换算之前,必须先定义至少一个货币维度、至少一个时间维度和至少一个费率度量值组。 从这些对象中,商业智能向导可以检索用于构造报告货币维度和 MDX 脚本所需的数据和元数据,以提供货币转换功能。

决策

在商业智能向导可以构造提供货币转换功能所需的报告货币维度和 MDX 脚本之前,需要做出以下决策:

  • 汇率方向

  • 已转换的成员

  • 转换类型

  • 本地货币

  • 报告货币

汇率方向

汇率度量值组包含表示本地货币与基准货币(通常称为公司货币)之间的汇率度量值。 汇率方向和转换类型的组合决定了对使用商业智能向导生成的 MDX 脚本要转换的度量值进行的操作。 根据商业智能向导中提供的汇率方向选项和转换方向,下表描述了根据汇率方向和转换类型执行的操作。

汇率方向 多对一 一对多 多对多
n 透视货币到 1 个示例货币 将度量值乘以本地货币的汇率度量值,以便将其转换为基准货币。 将欲转换的度量值除以用于报告货币的汇率度量值,以将该度量值转换为报告货币。 将度量值乘以本地货币的汇率,以将度量值转换为基准货币,然后将转换后的度量值除以报告货币的汇率,以将度量值转换为报告货币。
n 个样本货币到 1 个基准货币 将度量值除以本地货币的汇率度量值,以便将度量值转换为中心货币。 将度量值乘以报表货币的汇率度量值,以便将度量值转换为报告货币。 将度量值除以本地货币的汇率度量值,以便将其转换为基准货币,然后将转换后的度量值乘以报告货币的汇率度量值,以便将其转换为报告货币。

在商业智能向导的 “设置货币换算选项” 页上选择汇率方向。 有关设置转换方向的详细信息,请参阅“设置货币转换选项”(商业智能向导)。

转换的成员

可以使用商务智能向导来指定速率度量值组中哪些度量值用于转换值:

  • 其他度量值组中的度量值。

  • 数据库维度中帐户属性的属性层次结构的成员。

  • 帐户类型,供数据库维度中某个帐户属性的属性层级的成员使用。

商业智能向导在向导生成的 MDX 脚本中使用此信息来确定货币换算计算的范围。 有关指定成员进行货币转换的详细信息,请参阅“选择成员”(商业智能向导)。

转换类型

商业智能向导支持三种不同类型的货币换算:

  • 一对多

    事务以基础货币存储在事实表中,然后转换为一个或多个其他报告货币。

    例如,可以将基准货币设置为美元(USD),事实数据表以美元存储交易。 此转换类型将这些交易从基准货币转为指定的报告货币。 结果是,交易可以存储在指定的透视货币中,并用指定的透视货币或为货币换算定义的报告货币维度中指定的任何报告货币进行查看。

  • 多对一

    交易以本地货币存储在事实数据表中,然后转换为基准货币。 枢纽货币在报告货币维度中作为唯一指定的报告货币。

    例如,基准货币可以设置为美元(USD),而事实数据表以欧元(EUR)、澳元(AUD)和墨西哥比索(MXN)存储交易。 这种转换类型将交易从其指定的本地货币转换为基准货币。 结果是,交易可以存储在指定的本币中,并在基础货币中查看,该基础货币在为货币换算定义的报告货币维度中指定。

  • 多对多

    事务以本地货币存储在事实数据表中。 货币换算功能将此类交易转换为基准货币,然后转换为一个或多个其他报告货币。

    例如,透视货币可以设置为美元(USD),事实数据表以欧元(EUR)、澳元(AUD)和墨西哥比索(MXN)存储交易。 此转换类型将这些交易从指定的本地货币转换为透视货币,然后将转换后的交易再次从透视货币转换为指定的报告货币。 结果是,交易可以以指定的本地货币存储,并可以用指定的枢纽货币查看,或者用为货币换算定义的报告货币维度中指定的任一报告货币查看。

指定转换类型允许商业智能向导定义报表货币维度的命名查询和维度结构,以及为货币转换定义的 MDX 脚本的结构。

本地货币

如果您为货币转换选择了多对多或多对一转换类型,则需要指定如何识别本地货币,进而使用由商业智能向导生成的 MDX 脚本进行货币转换计算。 在事实数据表中,交易的本地货币可以通过以下两种方式之一标识:

  • 度量值组包含与货币维度的常规维度关系。 例如,在 Adventure Works DW Multidimensional 2012 示例分析服务数据库中,Internet Sales 度量值组与 Currency 维度具有常规的维度关系。 该度量值组的事实数据表包含一个外键列,该列引用该维度的维度表中的货币标识符。 在这种情况下,可以从度量值组引用的货币维度中选择属性,以标识该度量值组事实数据表中事务的本地货币。 这种情况最常发生在银行应用程序中,其中交易本身决定了交易中使用的货币。

  • 度量值组包含一个引用维度关系,通过另一个直接引用货币维度的维度与货币维度建立联系。 例如,在 Adventure Works DW 多维 2012 示例 Analysis Services 数据库中,“财务报告”度量值组通过“组织”维度与“货币”维度具有引用的维度关系。 该度量组的事实数据表包含一个外键列,该列引用组织维表中的成员。 组织维度的维度表又包含一个外键列,该列引用货币维度维度的维度表中的货币标识符。 这种情况最常发生在财务报告应用程序中,其中交易的位置或子公司确定交易的货币。 在这种情况下,您可以从业务实体的维度中选择引用货币维度的属性。

报告货币

如果您选择货币转换的多对多或一对多转换类型,则需要指定 MDX 脚本中由商业智能向导生成并执行货币转换计算的报告货币。 可以指定与费率度量值组相关的货币维度的所有成员,也可以从维度中选择单个成员。

商务智能向导基于从货币维度的维度表构建的命名查询,使用所选报告货币创建报告货币维度。

注释

如果选择一对多转换类型,也会创建一个报告货币维度。 维度中仅包含一个成员,该成员表示枢轴货币,因为枢轴货币也被用作一对多货币转换的报告货币。

为数据立方体中定义的每种货币换算定义单独的报告货币维度。 可以在创建后更改报告货币维度的名称,但如果这样做,还必须更新为该货币转换生成的 MDX 脚本,以确保在引用报告货币维度时脚本命令使用正确的名称。

定义多个货币转换

使用商业智能向导,可以根据需要为商业智能解决方案定义任意数量的货币转换。 您可以覆盖现有的货币换算,或者将新的货币换算追加到数据立方体的 MDX 脚本中。 在单个多维数据集中定义的多个货币换算在商业智能应用程序中提供了灵活性,这些应用程序具有复杂的报告要求,例如支持多个单独的国际报表转换要求的金融服务应用程序。

识别货币换算

商业智能向导通过在以下注释中为货币转换设置脚本命令来标识每个货币转换:

//<Currency conversion>

...

[MDX statements for the currency conversion]

...

//</Currency conversion>

如果更改或删除这些注释,商业智能向导无法检测货币转换,因此不应更改这些注释。

向导还会将元数据存储在这些注释之中,包括创建日期和时间、用户名以及转换类型。 不应更改这些注释,因为商业智能向导在显示现有货币转换时使用此元数据。

可以根据需要更改货币换算中包含的脚本命令。 但是,如果覆盖货币换算,则所做的更改将丢失。

另请参阅

Analysis Services 多维度全球化方案