创建映射脚本

对于 Like 映射,您可以创建映射脚本以指定条件映射。使用此类型的映射,您可以指定将源成员映射到脚本表达式,而不是映射到硬编码的目标成员。目标值在脚本值中指定。您可以通过在 SQL 脚本的“目标值”字段中输入 #SQL 来激活映射脚本。(使用脚本的行具有目标值 #SQL)。然后,下一行具有 <!SCRIPT> 分隔符和实际脚本,后跟 <!SCRIPT>。通过将映射脚本和维处理顺序一起使用,可以使映射基于维映射的结果。也就是已处理的维映射。请参阅“使用映射脚本”。

要创建映射脚本:

  1. 工作流选项卡中,选择数据加载映射
  2. 可选:选择所需位置。
  3. 选择 Like 选项卡。

    映射脚本不适用于“显式”和“多维”映射类型。

  4. 选择源值
  5. 目标值中,选择下列值之一:
    • 对于基于 Jython 的映射脚本,输入 #SCRIPT

    • 为基于 SQL 的映射脚本输入 #SQL

      对于基于 SQL 的映射, Oracle Hyperion Financial Data Quality Management, Enterprise Edition 将特殊值 #SQL 指定为“目标值”。由于这一原因,此字段不能用于指定值 "IGNORE"。要标记一行,请使用 VALID_FLAG = "Y"(如果有效,则为行)、VALID_FLAG = "N"(如果无效,则为行)或 VALID_FLAG = "I"(根据用户定义的条件忽略行)。

      例如,如果要映射 null 条目以便忽略它们,请指定维的数据表列,然后指定 VALID_FLAG = "I"。在以下示例中,UD3 标识产品维的数据表列。

      该图显示了脚本编辑器

  6. 规则名称中,输入映射的数据规则名称。
  7. 单击保存

    将启用“脚本编辑器”图标 (图中显示了“脚本编辑器”图标)。

  8. 单击“脚本编辑器”图标。
  9. 编辑脚本中,输入映射脚本,然后单击确定

    例如,以下基于 Jython 的映射脚本会检查帐户的前两个字符是否等于 11 且实体是否等于 01。如果有匹配项,则目标设置为 Cash2,目标金额设置为 0。此外,该脚本还会更新 TDATASEG 表中的 attribute1 列。(请参阅“TDATASEG 表参考”)。此脚本使用 fdmResultMap 对象(请参阅“将 Jython 对象与映射脚本结合使用”)。


    图中显示了“编辑脚本”屏幕

    在本示例中,使用 SQL 脚本,在 SQL CASE 语句中实施逻辑。在内部 UPDATE 语句的 SET 命令中使用 CASE 语句。下面的映射语句转换为列出的 UPDATE 语句


    图像显示包含基于 SQL 的映射脚本的“编辑脚本”屏幕。
    UPDATE TDATASEG  
    SET ACCOUNTX =
    CASE
                  WHEN ACCOUNT LIKE ‘L%’ AND ICP = ‘000’ THEN ‘A4140‘
                  WHEN ACCOUNT IN (‘110’,’120’,’130’) THEN ‘A100’’
                  ELSE ‘A’ || ACCOUNT
    END
    ,DESC1 = COALESCE(DESC1, ACCOUNT || ‘.’ || ICP)
    WHERE ACCOUNT …..