mdx_execution

FinancialCube.mdx_execution(script, parameters=None, precision=None, timeout=None, round_type=RoundType.floor)

执行MDX计算语句

参数
  • script (str) – MDX计算语句

  • parameters (Optional[Dict[str, str]]) – MDX执行所需的标量参数信息键值对

  • precision (Optional[int]) – 计算精度,默认为财务模型小数精度

  • timeout (Optional[int]) – 超时时间(ms),默认为180秒(与OPTION.api.timeout保持一致), 如为None,则为接口的默认值60秒, 目前该接口不支持设置为无限等待执行结果

  • round_type (Union[RoundType, str]) – 小数保留类型,默认为去尾法

示例

cube = FinancialCube('example')

# 用2022年每个月份所有产品的销售量
# 乘以各产品设定在Begbalance期间成员上的单价
# 得到各个产品的销售额
script = '''
    Scope(strToMember($scenario),
            [Version].[V1],
            [Year].[2022],
            MemberSet(strToMember('Period',$period)),
            Base([Product].[TotalProduct]),
            Base([Entity].[TotalEntity])
    );
    [Account].[Total_Sales] = [Account].[Volume]*[Account].[Price]->[Period].[Begbalance];
    End Scope;
'''

# 执行MDX语句,并指定参数scenario为'[Scenario].[actual]',period为'Q1'
# 小数保留类型为四舍五入
cube.mdx_execution(
    script=script,
    parameters={'scenario': '[Scenario].[actual]','period': 'Q1'},
    round_type='round'
)
返回

执行结果

重要

script不可包含use section部分,use的Cube固定为当前Financial Cube