拷贝计算将财务模型中某个维度范围(如某年某版本)的数据,批量复制到另一个维度范围(如另一年另一版本)。拷贝时可以指定源范围和目标范围的维度映射关系,支持跨期间、跨版本、跨场景复制数据。
以上年实际数作为预算基础:将上一年度实际数场景的数据复制到本年度预算场景,作为编制的初始参考值,减少手工录入工作量。
版本间数据迁移:将预测版本的数据复制到正式版本,或将初稿预算复制到调整版本,作为下一轮编制的起点。
跨期间数据填充:将某一期间的基准数据批量填充到其他期间,例如将一月预算数据复制到其余月份作为初始值。
拷贝计算通常通过以下方式触发,而非在财务模型界面直接操作:
Python 脚本:在脚本中指定源范围和目标范围,以及维度映射关系,通过脚本逻辑灵活控制拷贝条件。
下面我们举例将财务模型target_fincube的数据进行拷贝,将2024年,2024_Target场景,NoVersion版本,所有组织,科目,期间的数据,拷贝到2025年,2025_Test场景。
def main(p1, p2):
from deepfos.element.finmodel import FinancialCube
# element_name为cube元素名,path为cube的系统路径
cube = FinancialCube(element_name="target_fincube", path="/05_target_fincube")
# formula参数是拷贝的公式,等号左边是拷贝的目标维度,等号右边是拷贝的源头维度,源头如果有多个维度的成员与目标不一致,可以通过->链接所有不同的维度。
# 例如下例中,将2024年,2024_Target场景的数据,拷贝到2025年,2025_Test场景。拷贝源头与目标数据的的年和场景均不同。
# fix_members参数是拷贝目标范围的其他维度组合,即formula与fix_members共同组成了拷贝的完整目标范围。
# 如果fix_members中某些维度需要拷贝全部数据,也可以省略不写,例如下例中,Organization,Period,Account三个维度要拷贝的范围都是全部成员,因此可以省去,只写Year{2025}->Version{NoVersion}
# 财务模型数据拷贝方法还有两个参数,data_audit_switch表示是否记录数据审计,默认为True,cmt_switch表示是否拷贝备注,默认为False
cube.copy_calculate(formula="Scenario{2025_Test}=Scenario{2024_Target}->Year{2024}",
fix_members="Year{2025}->Version{NoVersion}->Organization{Descendant(#root,0)}->Period{Descendant(#root,0)}->Account{Descendant(#root,0)}",
data_audit_switch=False, cmt_switch=True)
# Organization,Period,Account三个维度要拷贝的范围都是全部成员,因此可以省去,只写Year{2025}->Version{NoVersion}
# 下面这条拷贝与上面写完整维度的拷贝结果等价。
cube.copy_calculate(formula="Scenario{2025_Test}=Scenario{2024_Target}->Year{2024}",
fix_members="Year{2025}->Version{NoVersion}",
data_audit_switch=False, cmt_switch=True)
清数按维度表达式指定范围,将该范围内的数据批量清除(写入空值),用于在重新填报前清理旧数据,或清除不再需要的历史数据。
版本重置:某个预算版本需要推倒重来时,先清除该版本所有数据,再从零开始填报或重新拷贝基础数据。
部分数据清理:清除某个组织、某个科目范围内的数据,不影响其他维度范围。
测试数据清理:在正式使用前,清除调试阶段录入的测试数据。
与拷贝计算相同,清数通常通过 Python 脚本触发,在脚本中指定要清除的维度范围。拷贝计算和清数均为同步执行,操作完成后才返回结果。
下面我们举例将财务模型target_fincube的部分数据进行清除,清数范围为2024年,2024_Test04场景,NoVersion版本,所有组织,科目,期间的数据。
def main(p1, p2):
from deepfos.element.finmodel import FinancialCube
# element_name为cube元素名,path为cube的系统路径
cube = FinancialCube(element_name="target_fincube", path="/05_target_fincube")
# expression参数是清数的范围,需要指定每个维度的成员或表达式。
# data_audit表示是否记录数据审计,默认为True
cube.delete(
expression="Scenario{2024_Test04}->Year{2024}->Version{NoVersion}->View{Periodic}->Organization{Descendant(#root,0)}->Period{Descendant(#root,0)}->Account{Descendant(#root,0)}",
data_audit=True)
除了 Python 脚本之外,清数还可以通过数据流触发。 如下图示例,在数据流中拖入财务模型节点,动作选择“删除数据”,并配置清数的维度范围即可。


回到顶部
咨询热线
