财务报表 - 业务规则

栏目:云星瀚知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

财务报表 - 业务规则

1 简介 

1.1 功能介绍

业务规则 本篇内容将从系统操作的角度对业务规则的功能进行完整的说明 

1.2 系统路径

【财务报表】→【财务报表体系】→【业务规则】 

 

2 主要操作 

2.1 业务规则列表界面

当左边的规则分类选择明细时,功能按钮是完整的,如下:


 

当左边的规则分类选择的不是明细时,功能按钮如下:


 

新增” 只有选中末级规则分类时,才允许新增规则,点击新增按钮后,会进入规则编辑界面。

 

删除“ 只有选中规则时,才允许删除,分配多个过程的同一个规则,在一个过程里删除,其他分配的过程里也会被删除。

 

提交” 将调试版的可编辑的规则覆盖更新到运行版;提交后,运行状态会更新为已提交。

 

生效/失效”选定规则后,设置失效或生效,仅生效且已提交的规则才会被系统调用。

 

分配”可将规则分配给报表模板,并设置执行条件。

 

调整顺序” 选择可分配规则的过程后,点击,可调整该过程下所有规则的执行顺序。

 

导出完整规则” 会将所有生效的运行版规则导出成一个.kdrle文件,文件名称基本格式为RuleScript_体系编码_时间戳

 

导入完整规则” 允许导入.kdrle文件,且默认导入的是完整的规则,因此会覆盖更新系统内的所有规则

 

2.2 业务规则编辑界面

公共库规则编辑界面,如下:

 

 

默认引入 仅公共库规则脚本才会有的选项,若勾选,则系统会自动加载该规则脚本,否则需要在其他脚本使用import函数来加载引用


常规规则编辑界面,如下:


 

只有在IRpt/Radj/EIRpt/ERAdj才可以新增规则


分配过程  指定规则脚本在哪些过程上执行,必需,可多选;公共库规则无此选项


调试”执行调试版规则脚本,调试规则也会修改系统数据,一般建议在完成逻辑调试后再加入数据计算语句调试。

 

提交”将调试版的规则覆盖更新运行版,作为系统真正执行的规则。

 

执行情况”可以查看历史调试记录及报表调用分配规则的执行日志。

 

 

3 规则脚本编写


Context,即上下文,在规则中使用缩写ctx,可以获取规则执行时的情景(Scenario)、财年(Year)、期间(Period)、组织(Entity)、币别(Currency)和过程(Process)这些维度成员

 

3.1 维度相关函数

base() 

获取指定维度成员下的所有末级成员

示例:entList = E["0000G"].base()   //获取0000G的末级组织成员   

           

children() 

获取指定维度成员的直接下级成员

示例:entList = E["0000G"].children()   //获取0000G的直接下级组织成员

 

descendant() 

获取指定维度成员的所有下级成员

示例:entList = E["0000G"].children()   //获取0000G的所有下级组织成员

 

hierarchy() 

获取指定维度成员的所有下级成员对象(含自己)

示例:entList = E["0000G"].hierarchy()   //获取0000G的所有下级组织成员(含自己)

 

in() 

指定维度的枚举成员范围,作为参数用于scope()函数

示例:let sc = scope( A.in("R1006","R1007") )  //指定科目范围为"R1006","R1007"

 

isBase() 

判断指定维度成员是否是末级成员,或者,是否是指定维度成员的末级成员

示例:let isBaseEnt = ctx.E.isBase()  //判断某一组织成员是否是末级成员

          isBaseEnt = E.isBase("0000","0000G")  //判断编码为0000的组织成员是否是0000G的末级成员

 

isChild() 

判断指定维度成员是否是指定维度成员的直接下级成员

示例:isChildEnt = E.isChild("0000","0000G")  //判断编码hild为0000的组织成员是否是0000G的直接下级成员

 

isDescendant() 

判断指定维度成员是否是指定维度成员的下级成员

示例:isDescendantEnt = E.isDescendant("0000","0000G")  //判断编码hild为0000的组织成员是否是0000G的下级成员

 

isHierarchy() 

判断指定维度成员是否是指定维度成员的下级成员(含自己)

示例:isHierarchyEnt = E.isHierarchy("0000","0000G")  //判断编码hild为0000的组织成员是否是0000G的下级(含自己)成员

 

lastPeriod() 

获取指定期间的上一期间

示例:let p = ctx.P.lastPeriod()  //获取当前期间的上一期间

 

lastYear() 

获取指定财年的上一年

示例:let f = ctx.FY.lastYear()  //获取当前财年的上一财年

 

parent() 

获取指定维度成员的父级成员对象

示例:let ctxParentEnt = ctx.E.parent()  //获取当前组织的直接父级组织

 

validBase() 

仅组织维度可用,获取指定组织成员的所有有效末级成员对象,有效的定义为参与合并

示例:let vBaseEnts = E["0000G"].validBase()  //获取0000G合并节点下的所有有效末级组织成员

 

validChildren() 

仅组织维度可用,获取指定组织成员的所有有效直接下级成员对象,有效的定义为参与合并

示例:let vChildEnts = E["0000G"].validChildren()  //获取0000G合并节点下的所有有效下级组织成员

 

3.2 数据操作函数

ABS() 

在计算时取绝对值,在run或runs函数中使用

示例:runs("  v('') = ABS(   v('') )  ") 

 

esp() 

获取指定投资单位与被投资单位,在指定的情景、财年、期间的各种持股比例

示例:let own = esp(2,2,"0000","0001")  //获取组织0000对组织0001的直接持股比例

 

getCellSet() 

获取指定维度成员范围的所有数据集及对应的维度成员组合,维度成员组合中仅包含未唯一指定的维度

示例:let sc = scope(); 

          let cs = getCellSet(sc);

 

run() 

并行执行计算语句

示例:run(  scope(),

                    "v('') = v('')"  );

 

runs() 

串行执行计算语句

示例:runs(  scope(),

                    "v('') = v('')"  );

 

v() 

从一个确定的维度成员组合上获取一个数据;或者作为run、runs函数里的计算表达式

示例:let dData = v("A@,……" ,0);

 

3.3 功能性函数

 

debug() 

输出指定的字符串,仅调试生效

 

fix()…endFix() 

如果在一段连续的规则脚本范围内,有相同的维度范围,那么可以在这一段规则的前后分别加上fix(scope())和endFix(),并在scope()中指定好相同的维度范围,那么这一段规则可以缺省scope()中定义了范围的维度

 

getCache() 

将指定的内容放入缓存,在后续使用的时候直接访问而不需要再次从库中获取,常用来缓存维度成员对象

 

getRuntimeScope() 

获取规则执行时的维度范围

 

log() 

指定输出字符串,在调试及智能合并时均会输出,其中智能合并会打印在智能合并的日志中

 

scope() 

维度成员范围指定函数

 


财务报表 - 业务规则

1 简介 1.1 功能介绍业务规则 本篇内容将从系统操作的角度对业务规则的功能进行完整的说明 1.2 系统路径【财务报表】→【财务报表体系】...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息