Time

1.01-01切勿使用Select随时间使用

这违背了计划的可持续元素,而硬编码会在更新的时间尺度时引起问题
model. Modules with Time formatted items to be used as sums and lookup are the better option

例外:
1.01-01a通用时间段:It is OK to use SELECT with Generic Time periods such as Actual Period, Current Period, YTD, YTG, ALL Periods

与规则相关:
2.02-14 Avoid using SELECT

1.01-02默认使用模型日历

As the Model Calendar is dynamic, there are a lot of advantages in using it for the majority of modules. Choose suitable time settings (past and future years) that cover most of the requirements and use the model calendar to set these in the most part. For the exceptions outside of the “norm” use time ranges for efficiency of calculations and for keeping the model size under control. But remember, Time Ranges may need to be updated manually on a year end rollover.

Best Practices article:
时间范围应用

1.01-03使用当前时期

Utilising the Current Period within the Time Settings allows the use of CURRENTPERIODSTART(), CURRENTPERIODEND() and can be used to create lookup modules to hold the current period automatically.

例外:

  • 1.01-03A每日时间尺度:每周设置时间最低的粒度,因此,如果当前时期需要反映每日时间尺度,则无法使用当前时期设置
  • 1.01-03B非ADMIN更新:如果您需要非工作区管理员来更新设置,则可以使用格式的订单项目
1.01-05默认情况下排除时间尺度小计

默认情况下关闭“ Include”设置,仅在绝对必要的情况下包含这些设置。这些额外的设置(季度总数,年满年,要走的年度等)将包含在模型日历作为时间维度的所有模块中。因此,他们将对这些次序进行计算。考虑是否真的需要使用模型日历的所有模块的所有值。

注意,您可以指定不同时间范围的不同的“ Include”设置,尽管默认情况下将继承模型日历设置。

Related to Rules:

1-01-02默认使用模型日历
1-01-07时间范围

1.01-06 Time Range Naming

使用fyxx-Fyy格式保持命名短。这种格式允许管理员看到模块蓝图中时间范围的范围和名称,而无需回到时间范围本身。它适合蓝图的列。这有助于审计和分析

However, this does mean that the Time Range may need to be renamed if the range changes, so if your Time Range needs to be incremented each year, and it is clearly documented, an alternative would be to use a generic name ("History Years"). It requires less maintenance, but is not as clear

Best Practice article:
时间范围应用

1.01-07时间范围

使用时间范围来优化默认模型日历不合适的模块。考虑数据的维度,并相应地设置时间范围。

Best Practices article:
时间范围应用

1.01-08 Daily Timescales on large timescales

查看长时间尺度的每日粒度的需求,特别是如果每​​日时间表跨越五年或更长时间。如果可能的话,使用时间范围来限制每日日历,并且还使用以前而不是累积来优化计算效率。

与规则相关:

2.02-10使用以前的与累积

最佳实践文章:

Versions

1.02-01 Use "Current" in Version settings

在版本设置中利用当前(和实际)复选框,允许在计算中使用CurrentVers()和casterVersion()在“ select语句”中,以及iscurrentversion和Iscurrentversion和iSactualVersion()进行布尔检查。当前版本也像版本的最高级别。如果您的源模块具有版本(和当前滴答),则在无版本的目标模块中,当前版本的值将自动返回而无需其他功能或选择语句

Related Rule:
2.02-14 Avoid using SELECT

1.02-02在版本设置中不使用公式

虽然这是一个简单的构造,并且对于简单的模型来说可能还可以。即使您不想要差异,它也有效地为每个版本使用时,都会为型号增加大小。同样,在具有3个或更多尺寸的模块中,如果您有计算订单项和聚合,则由于不同的计算优先级,结果可能并不总是得到预期结果。最后,您无法修改版本设置中版本公式的摘要方法

1.02-03 Edit To / Edit From

将它们用作简单的管理员潜在客户控制,以读写版本。对于更多颗粒状控制,请使用动态单元格

1.02-04始终向前移动切换日期

使用切换意味着将历史时期有效地清除。这确实具有减少模型大小的好处,因为清除了历史悠久的单元格,但应仅向前移动切换。向后移动它将撤离各个时期,以删除以前持有的任何值

1.02-05 Try and avoid a high number of native Versions

Versions have in built functionality that is not available for normal lists. However, a large number of Versions (e.g. 10+), can have performance implications due to the block structure and the lack of multi-threading available. Review the need for high number of Versions, and if the native functionality is not critical or needed, consider using a normal list to represent Versions

最佳实践文章:

到版本或不发布版本

用户和角色

1.03-01仅在需要时给予对列表的访问

除非最终用户需要编辑列表的成员(例如添加,删除),否则无需设置访问。将角色添加到列表中会增加内存使用量,因此仅在必要时使用。用户可以在模块中编辑数据,而无需访问列表

Best Practice article:
列表中的预分配(以及对模型性能的影响

1.03-02性能和大小可以取决于用户列表

当用户列表大量使用时,添加的用户数量可能会产生重大影响,请注意此事,并在不需要的情况下从任何工作区用户中删除模型访问

1.03-03按角色设置了登陆仪表板

不同的角色应需要不同的入口点。如果可能

Contents

1.04-01保留最终用户角色的模块

用户应仅通过仪表板输入数据,因此请从内容面板中删除模块

1.04-02使用不同功能区域的开/关显示内容

To reduce maintenance, create separate Functional Areas for dashboards and modules (e.g. Reports and Report Modules). Consider if you want new content to appear automatically for the end users.

例如;在“目录”选项卡中,将所有仪表板功能区域的新内容“ ON”显示为所有模块功能区域。然后,当角色安全性更新时,新仪表板将自动添加到内容中,但模块不会。

将“新内容”转换为“关闭”,允许开发新内容,而不会对最终用户造成干扰。然后,您可以在所需的时间激活新内容

Lists

1.05-01命名约定

层次结构应带有一个字母,该字母表示层次结构的名称和指示级别的数字。例如P1产品类别,P2产品家族,P3产品。IS无需添加“ L”作为列表的前缀

与规则相关:
1.08-01不要使用表情符号

Best Practices article:

Good Practice Naming Conventions

1.05-02始终使用代码

Using codes is more efficient for loading and using lists so strive to always have a code for lists. This is especially important for numbered lists

例外:

1.05-02a静态非层次结构列表:对于简单的静态列表(例如是/否),可以没有代码,但是即使那样,y和n也可以用作代码

与规则相关:
1.05-04编号列表应始终具有代码

Best Practices article:
层次结构管理

1.05-03避免使用列表属性

列表属性与行项目相同,但有很多限制,因此请保持简单,并有一个计算位置,即模块。

例外:

  • 1.05-03A参考模块销售项目:在使用以下例外,请参考模块订单项,通过公式,以保持审核跟踪有效
  • 1.05-03b Numbered lists (and related actions): Assign actions, and associated filters require list properties
  • 1.05-03C导出:列表属性可以用作导出标签
  • 1.05-03d Conditional Dashboard navigation (old UX): List properties are needed to facilitate navigation to different dashboards based on the selection in the list
  • 1.05-03E依赖下拉跌落:创建驱动程序和依赖性列表需要列表属性

Best Practices article:
数据中心的目的和高峰性能

1.05-04 Numbered List should always have a code

如果您使用的是编号列表的创建或分配操作,请尝试并入“代码创建”操作,作为另一个过程的一部分

例外:

1.05-04a属性的组合:如果源中没有代码,则必须使用属性组合。尽可能避免并避免,因为这是较慢的导入,而没有代码就难以使用

与规则相关:
1.05-02始终使用代码

Best Practices article:

1.05-05如果可能的话,将显示名称属性格式为列表

Format the Display Name property for Numbered lists as List Formatted, not text. This is more efficient, saves a line item, minimizes text fields and simplifies mappings. However, it not recommended to create a separate list purely for this purpose; use an existing list if possible

1.05-06仅将最高级别用于最终父母

仅将最高列表使用总和的列表,因此不需要货币代码或true/fals(指标)或复合列表中的儿童

Best Practices article:
Top Level Item and Parent Hierarchy

1.05-07 Avoid Top Level for large flat lists

大列表上最高级别的计算无法分配,因此随着列表的增长,计算效率越来越低。考虑一下您是否真的需要总计。如果您需要总计,请查看添加中间父母的“总计”以使计算更有效,使用总和以汇总验证

Best Practice article:
Top Level Item and Parent Hierarchy

1.05-08使用复合列表而不是破烂

复合列表更加灵活,并且更有效地计算,因此请尽可能地“平衡”层次结构

例外:

  • 1.05 -08年,一个会计科目表,或财务报告hierarchies: Chart of Accounts, financial reporting hierarchies are valid uses of non-composite lists
1.05-09 Create Placeholders in general lists

添加位置持有人来组织一般列表,并在底部或一般列表中添加子集和订单项子集。这将确保在“适用于”中引用它们时可以轻松识别子集和行项目子集。可以使用表情符号作为占位符列表

与规则相关:
1.08-01不要使用表情符号

1.05-10永不删除列表,然后重新加载列表作为每日出现

清除和重新加载列表增加了模型内的结构变化,并将增加模型节省的可能性,从而增加了导入时间。它还消除了旨在提高效率的预先分配的内存块。使用唯一的键更新为值,而不是删除和重载。还考虑将真实字段添加到数据源,这将使您知道已导入哪些记录

最佳实践文章

数据中心的目的和高峰性能
列表中的预分配和对模型性能的影响

1.05-11 Do not embed Numeric values or Dates within the Code of a list

日期和值是“数据”,不应成为代码的一部分。在大多数情况下,将这些元素添加到代码中会大大增加列表的大小,从而增加模式的大小并降低性能

Best Practices article:

数据中心的目的和高峰性能

1.05-12使用公式来得出列表的属性

Based off the code of the list it should be possible to derive the attributes; Calculating the values is more efficient than storing text fields

Best Practices article:

数据中心的目的和高峰性能

1.05-13使用平面列表存储元数据(在系统模块中)

Avoid having hierarchies in Data Hub; these should only be applicable to the main planning models

Related Rule:
5.07-01 No Hierarchies

子集

1.06-01 Naming convention

将子集的前缀带有列表的名称(例如P3产品:活动产品)

与规则相关:
1.08-01不要使用表情符号

Best Practices article:
Good Practice Naming Conventions

1.06-02不要在大列表上使用子集

列表和子集占用模型中的空间,因此,如果您需要同一列表的多个子集,请考虑它们是否会更好地作为单独的列表。如果列表不重叠并且从数据中心喂食,这尤其有效。对于重叠的子集,或者如果需要“合并”该值回到主列表,则子集是模型效率的有效构造

1.06-03避免单项子集

If possible, try and avoid single item subsets, if there is a top level in the list, a single item subset will always have two members. Consider using a Boolean flag in a SYS module or a LOOKUP line item against the desired item (to avoid using SELECT)

Line Item Subsets

1.07-01命名公约

带有LIS的前缀:然后在“行”子集中使用的描述或模块。对于使用多个模块的行项目子集,请使用最能描述其目的的通用名称

与规则相关:
1.08-01不要使用表情符号

Best Practices article:
Good Practice Naming Conventions

1.07-02版本公式的订单项子集

使用行项目子集为每个版本创建不同的数字公式,以避免多个IF

Best Practice article:
订单项子集神秘
降低公式的长度
使用本机版本的差异分析变得容易

1.07-03关闭collect()行项目的摘要

默认情况下,您应该使用collect()函数在订单项上关闭摘要。通过摘要打开,系统正在汇总通常不需要的数据。

与规则相关:
2.01-10计算模块
2.03-01 Turn Summary options off by default

Emojis

1.08-01不要使用表情符号

Don't use Emoji or symbols in any naming of lists, modules, line items, or actions. They can cause issues with integration and different browsers

例外:

1.08-01a Placeholders: It is OK to use Emojis or symbols for placeholders in General Lists, Module Names, Functional Areas etc.

Chapter Navigation

Preface,,,,第1章,,,,第2章,,,,Chapter 3,,,,Chapter 4,,,,Chapter 5,,,,Chapter 6,,,,Chapter 7
知识库仪表板