7.13. 转换源或目标数据


在数据映射程序中,在定义映射后,您可以转换映射中的任何字段。转换数据字段定义了如何存储数据。例如,您可以指定 Capitalize 转换,以确保 data 值的第一个字母大写。

您可以将不同的转换应用到同一映射中的不同字段。在一对一映射中,将一个 source 字段映射到一个目标字段,无论是否将转换应用到 source 字段还是 target 字段,都无关紧要。

在一对多或多对一映射中,请考虑在指定转换时 target 字段值需要是什么。例如,假设一个多对一映射,它将数字、street、城市和状态的源字段合并到一个目标地址字段中。如果您希望目标地址字段中的字符串大写,请选择目标地址字段并应用大写转换。如果只需要大写状态,请选择 source state 字段,并应用大写转换。

您可以将源字段转换视为执行预处理,而目标字段转换则执行后处理。

注: 如果要向映射添加条件,您需要将任何转换放在条件表达式中,如 应用条件到映射 中所述。

流程

  1. 映射字段。这可以是一对一的映射、组合映射或分离映射。
  2. Mapping Details 面板中,在 SourcesTargets 下,在您要转换的字段的框中,点 the Transformation icon 。这个选项显示可用转换的下拉列表。
  3. 选择您要执行数据映射程序的转换。
  4. 如果转换需要任何输入参数,请在适当的输入字段中指定它们。
  5. 要添加另一个转换,请再次点 the Transformation icon

有些转换可用于多个源字段,或应用到包含多个值的 source 字段中的值,如集合。数据映射器将转换的结果插入到 target 字段中。下表描述了这些多重性转换。

Expand
多重性转换描述

添加

添加数字源值,并将 sum 插入到 target 字段中。所选源字段中或所选集合中的值必须是数字。

average

计算数字源值的平均值,并将结果插入到 target 字段中。所选源字段中或所选集合中的值必须是数字。

concatenate

加入源值,并将结果插入到 target 字段中。您可以接受空格作为分隔符或指定其他字符。数据映射器在源值之间的 target 字段中插入此字符。此转换的一个常见用途是组合多个源字段值,例如,firstName、distributedNameLastName,在一个目标字段中,例如 CustomerName

contains

评估源值,以确定任何值是否包含您指定的参数值。如果任何源值包含指定的参数值,则 data mapper 会将 true 插入到 target 字段中。如果没有 source 值,则 data mapper 会将 false 插入到 target 字段中。

例如,假设您要跟踪与特定客户相关的活动。您可以选择每个集合成员包含客户信息的源集合字段。对于 Value 参数,您可以指定一个特定的电子邮件地址。当数据映射器在集合中找到指定的电子邮件地址时,它会在 target 字段中插入 true

数量

在 target 字段中插入源值数。当 source 字段是集合时,这很有用。数据映射器在 target 字段中插入集合的大小。

例如,假设您选择一个是项目对象的 Order source 字段。应用 Count 转换会将按顺序排列的项数插入到目标字段中。

另外,如果您选择 4 个单独的源字段,则数据映射器会在 target 字段中插入 4

划分

将第一个源值除以第二个源值,并在 target 字段中插入结果。如果还有两个源值,则执行将继续根据下一个数字来划分结果。例如,假设一个包含 {1000, 100, 10}numbers[] 集合。执行将 1000 分为 100 以获得 10,然后将 10 分成 10 以获得 1。映射器在 target 字段中插入 1

格式

将模板中的占位符替换为您选择的 source 字段中的值。数据映射器在 target 字段中插入生成的字符串。例如,假设您选择了三个源字段:

时间
名称
文本

您可以选择 Format 转换并在 Template 参数中指定:

在 $time, $name tweeted: $text

在 target 字段中,结果类似如下:

上午 8:00 时,Aslan tweeted: ROAR!

这与 Java 和 C 等编程语言提供的机制类似。

项目期间

对于您选择的 source 字段,数据映射器会在您在 target 字段中指定并插入该值的索引中找到值。source 字段必须是包含带有分隔符的多个值的集合或字段。

例如,假设所选 source 字段是客户电子邮件地址的集合。在选择了 Item At transformation 后,在 Index parameter 字段中,您可以指定 0。数据映射器在 target 字段中插入第一个电子邮件地址,该地址为 index 0。

最大值

评估源值,并在 target 字段中插入最高值。源值必须是数字。

最小值

评估源值,并在 target 字段中插入最低值。源值必须是数字。

multiply

将第一个源值乘以第二个源值,并在 target 字段中插入结果。如果还有两个源值,则执行将继续乘以下一个数字的结果。例如,假设一个包含 {10, 100, 1000}numbers[] 集合。执行乘以 10100 以获得 1000,然后将 1000 乘以 1000 以获得 1000000。映射器在 target 字段中插入 1000000

减法

从第一个源值中减去第二个源值,并在 target 字段中插入结果。如果还有两个源值,则执行将继续从上一个结果中减去下一个数字。例如,假设一个包含 {100, 90, 9}numbers[] 集合。执行从 100 减去 90 以获得 10,然后将 910 减去以获得 1。映射器在 target 字段中插入 1

7.13.2. 可用转换的描述

下表描述了可用的转换。日期和时间类型通常是指这些概念的任何形式。也就是说,数字包括 整数。日期包括日期,如 日期时间区域 日期。

Expand
转换输入类型输出类型参数(* = required)描述

AbsoluteValue

number

number

None

返回数字的绝对值。

AddDays

date

date

days

将天数添加到日期.默认值为 0 天。

AddSeconds

date

date

SECONDS

添加日期的秒数。默认值为 0 秒。

附加

字符串

字符串

字符串

将字符串附加到字符串的末尾。默认为不附加任何内容。

Camelize

字符串

字符串

None

通过删除空格将一个短语转换为 camelized 字符串,使第一个单词小写,并大写每个后续单词的第一个字母。

大写

字符串

字符串

None

在字符串中大写第一个字符。

ceiling

number

number

None

返回数字的整数。

contains

any

布尔值

value

如果字段包含指定的值,则返回 true。

CopyTo

任何简单类型

数组中的任何简单类型

index*

对于集合,将 string 字段的值复制到目标集合的指定字段中,而无需分割。index 参数定义目标集合中字段的索引。默认值为 0 ( 目标集合中的第一个字段)。

ConvertAreaUnit

number

number

fromUnit*

toUnit *

将代表区域的数字转换为另一个单元。对于 fromUnittoUnit 参数,请从 From UnitTo unit 菜单中选择适当的单元。选择是:S qu are Foot、Square MeterSquare Mile

ConvertDistanceUnit

number

number

fromUnit *

toUnit *

将代表距离另一个单元的数字转换。对于 fromUnittoUnit 参数,请从 From UnitTo unit 菜单中选择适当的单元。选择包括:Foot、Inch、Merter、Mi Mi 或 Yard

ConvertMassUnit

number

number

fromUnit *

toUnit *

将代表 mass 的数字转换为另一个单元。对于 fromUnittoUnit 参数,请从 From UnitTo unit 菜单中选择适当的单元。选择是: KilogramPound

ConvertVolumeUnit

number

number

fromUnit *

toUnit *

将代表卷的数字转换为另一个单元。对于 fromUnittoUnit 参数,请从 From UnitTo unit 菜单中选择适当的单元。选择包括: Cubic FootCubic MeterGallon US FluidLiter

DayOfWeek

date

number

None

返回与日期对应的每周(1 到 7)的日期。

DayOfYear

date

number

None

返回与日期对应的年日(1 到 366)。

endwith

字符串

布尔值

字符串

如果字符串以指定字符串结尾,且两个字符串中的情况都相同,则返回 true。

等于

any

布尔值

value

如果输入字段等于 指定的值,且在字段和值中,则返回 true。

FileExtension

字符串

字符串

None

在代表文件名的字符串中,返回文件扩展名,而无需点。

floor

number

number

None

返回数字的整数。

格式

any

字符串

模板 (Template)

模板 中,将每个占位符(如 %s)替换为输入字段的值并返回包含结果的字符串。这与 Java 和 C 等编程语言提供的机制类似。

IndexOf

string
中的第一个字符是 index 0。

number

字符串
搜索此字符串的输入字符串。

在输入字符串中返回字符的索引,该字符串是参数字符串的第一个字符。如果没有找到参数字符串,则返回 -1

IsNull

any

布尔值

None

如果字段为 null,则返回 true。

LastIndexOf

string
中的第一个字符是 index 0。

number

字符串
搜索此字符串的输入字符串。

在输入字符串中返回字符的索引,该字符串是参数字符串的最后一个字符。如果没有找到参数字符串,则返回 -1

length

any

number

None

返回字段的长度,如果字段为 null,则为 -1

小写

字符串

字符串

None

将字符串转换为小写。

规范化

字符串

字符串

None

使用单个空格替换连续的空格字符,并修剪字符串中的前导和尾随空格。

PadStringLeft

字符串

字符串

padCharacter *

padCount *

在字符串的开头插入 padCharacter 中提供的字符。执行此操作在 padCount 中指定的次数。

PadStringRight

字符串

字符串

padCharacter *

padCount *

在字符串末尾插入 padCharacter 中提供的字符。执行此操作在 padCount 中指定的次数。

prepend

字符串

字符串

字符串

前缀 字符串 到字符串的开头。默认值是添加任何前缀。

ReplaceAll

字符串

字符串

match *

newString

在字符串中,将提供的匹配字符串的所有位置替换为提供的 newString。默认的 newString 是一个空字符串。

ReplaceFirst

字符串

字符串

match *

newString *

在字符串中,将指定 匹配 字符串的第一个出现替换为指定的 newString。默认的 newString 是一个空字符串。

重复

任何简单类型

数组中的任何简单类型

count * (当 source 字段 不在 数组中时必需)

将一个简单的类型映射到数组类型时,请使用从简单类型获取的值填充多个数组元素。

round

number

number

None

返回数字的舍入整数。

SeparateByDash

字符串

字符串

None

将出现的每个空格、冒号(:)、下划线(_)、加号(=)和等号(=)替换为连字符(-)。

SeparateByUnderscore

字符串

字符串

None

将出现的每个空格、冒号(:)、连字符(-)、加号(=)和等号(=)替换为下划线(_)。

split

compound 类型

any

None

根据 source compound 字段中的分隔符,将复合源字段分隔成多个目标字段。默认分隔符是一个空格。

startswith

字符串

布尔值

字符串

如果字符串以指定字符串(包括 case)开头,则返回 true。

子字符串

字符串

字符串

startIndex *

endIndex

从指定的 inclusive startIndex 中检索字符串片段到指定的 exclusive endIndex。两个索引都从零开始。startIndex is inclusive.endIndex 为 exclusive。endIndex 的默认值是字符串的长度。

SubstringAfter

字符串

字符串

startIndex *

endIndex

match *

在指定的 匹配 字符串后检索字符串的片段,从指定的 inclusive startIndex 到指定的 exclusive endIndex。两个索引都从零开始。endIndex 的默认值是提供的 匹配 字符串后面的字符串长度。

SubstringBefore

字符串

字符串

startIndex *

endIndex

match *

在提供的 inclusive startIndex 中的 startIndex 之前,在提供的 匹配 字符串前检索字符串片段到提供的 exclusive endIndex。两个索引都从零开始。endIndex 的默认值是提供 匹配 字符串前字符串的长度。

Trim

字符串

字符串

None

从字符串中修剪前导和尾随空格。

TrimLeft

字符串

字符串

None

从字符串中修剪前导空格。

TrimRight

字符串

字符串

None

从字符串中修剪尾部空格。

大写

字符串

字符串

None

将字符串转换为大写。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat