简介¶
定义数据转换包时,可以使用在运行时解析的参数化元素。
具体来说:
- 属性,由系统根据数据转换包定义步骤中输入的规范自动解析。
- 为报表或数据录入目的定义的参数,必须由运行数据处理的用户在运行时定义。
- 在数据转换包中定义的参数,由管理员在数据转换包定义步骤中定义,并在运行时自动解析。
属性¶
在接受 SQL 公式的数据转换包字段中(例如用于定义数据集字段的筛选器和公式),可以引用与 CCH Tagetik 列表(例如场景)相关的属性。
例如,属性可用于根据运行数据转换包所针对的实体的币种筛选字段,或使用运行场景之前的上一场景的描述定义字段。
属性必须使用报表中用于单元格字段的语法来定义,并适用于所有维度属性。
语法必须位于大括号之间:${}。
示例
要仅针对 CURRENCY 字段与实体币种匹配的记录筛选数据集的数据读取(该实体是在运行数据转换包时在流程驾驶舱中选择的),必须:
- 定义一个从另一个数据集插入操作。
- 在筛选器字段中指定CURRENCY = ${$Entity.currency.code}子句。
示例
要在使用公式进行丰富操作中使用运行场景之前的上一场景代码定义 PREVIOUS_SCENARIO 字段,必须在SQL 公式字段中指定${$Scenario.prev.code}语法。
属性还可用于在数据源映射、特殊方法和字典中定义查询类型的数据库对象。
报表参数¶
在支持 SQL 公式的数据转换包字段中,可以引用报表参数(参见)。
注意:可以引用所有类型的参数(维度、字典、文本、数字、日期或标志)。
如果数据转换包使用报表参数,运行时系统将要求您选择定义为参数选项的值之一。也可以定义默认值。
可以使用高级选择脚本在数据转换包中定义参数之间的依赖关系。只允许显式依赖关系。
在参数定义窗口(Excel 加载项端)中定义的依赖参数也可以在数据转换包内使用。因此,运行带依赖参数的数据转换包时,快速搜索组合框将只显示与所选维度一致的值。
示例
可以将一个或多个数据转换包操作设为可选。为此,必须定义一个标志(Flag)类型的报表参数。然后,在数据转换包中,在活动的运行条件字段中,使用以下语法定义一个包含所有可选操作的活动:${@Parameter_code}。
运行时,用户选择一个标志来决定是否定义该参数。
报表参数返回引号中报告的代码,但语法DATASETPARTITION()除外,它引用分区的名称。这通常用于查询的FROM子句中,以引用分区的物理名称。
注意:如果在查询的FROM子句中使用语法DATASETPARTITION(),且查询正文包含参数,而运行时参数未正确定义,系统将显示不正确的查询语法警告。在这种情况下,建议对参数的正确使用进行检查。
重要:无法在默认 AW 参数公式和分析工作区字典中使用报表参数。如果参数用于字典查询,则运行时不会显示。如果参数用于支持它的对象中,则可以在字典上定义。
在数据转换包中定义的参数¶
在数据转换包中定义的参数可以标识一个值或一个 SQL 公式,该值或公式将在运行时解析,并可用于任何接受 SQL 公式的数据转换包字段。
例如,可以定义它们以在不同流程上使用同一数据转换包,使数据处理逻辑基于当前流程。或者可以定义它们以确定要应用于数据处理的筛选器,或定义某个数据集字段。
| 元素 | 描述 |
|---|---|
| 工作区参数 | 在工作区级别定义并使用语法: @NOME_PARAMETRO@引用的参数。其值或 SQL 公式在创建时定义。运行数据转换包时,参数将替换为其所取的值,或者根据参数化设置,在启动时请求其值。 |
| 系统参数 | 参见系统参数。 |
| 特殊方法参数 | 在特殊方法中定义并在 SQL 公式中使用语法&NOME_PARAMETRO&引用的参数。用于替换参数的值或 SQL 公式在操作的特殊方法设置中定义(参见特殊方法)。 |

重要:在 SQL 公式中,报表参数和数据转换包参数可以同时使用。在定义 AW 参数的默认公式或要分配给参数的值时,不能使用任何报表参数。

重要:当参数引用不属于启动上下文的维度时,该参数不会自动解析。
例如,如果用户启动带有 #ENTITIES# 类型参数的数据转换包或 QDL,且流程启动阶段是按分析维度进行的,则该参数将不会被解析,并保持原样。
注意:在流程驾驶舱上按步骤维度执行的情况下,适用与加载到分析工作区任务相同的限制。
系统参数¶
预定义参数,在运行数据转换包时根据执行上下文自动解析。可以使用语法#NOME_PARAMETRO#引用它们。存在以下系统参数:
- #USER#:运行数据处理的用户
- #AW_CODE#:数据处理中运行的数据转换包的工作区代码
- #PROCESS#:运行数据处理的流程代码
- #ENTITIES#:请求运行数据转换包的实体列表(以逗号分隔)
- #ANALYTICAL_DIMENSIONS#:请求执行数据转换包的分析维度列表,以逗号分隔;
- #CUSTOM_DIMENSIONS#:请求执行数据转换包的自定义维度列表,以逗号分隔;
- #PERIODS#:请求运行数据转换包的期间列表
- #SCENARIOS#:请求运行数据转换包的场景列表
- #SCENARIOPERIODS#:请求执行的场景/期间(对于单次提交流程,它包含按参考日期递增排序的场景/期间列表)
-
REFERENCE_DATE#:执行的场景/期间的参考日期,或在单次提交流程情况下的业务周期的参考日期¶
- #TARGET_PARTITION#:正在运行活动的目标数据集分区
- #ITERATION_VALUE#:活动循环内的迭代值
- #ITERATION_VALUE_OPERATIONS#:操作循环内的迭代值
- #AIV#:返回活动循环内迭代值的 n 元组。 它可以引用字段(#AIV.FIELD#):返回活动循环内相应迭代的 FIELD 字段的值。 它可以引用别名(#AIV.ALIAS#)
- #OIV#:返回操作循环内迭代值的 n 元组。 它可以引用字段(#OIV.FIELD#):返回操作循环内相应迭代的 FIELD 字段的值。 可以引用别名(#OIV.ALIAS#)
- #PROCESS_STEP#:正在运行的数据转换包所属步骤的代码。
注意:系统参数返回的代码不加引号。要使代码加引号,必须在调用该参数的 SQL 公式中指定该条件。