7.13. 转换源或目标数据
在数据映射程序中,在定义映射后,您可以转换映射中的任何字段。转换数据字段定义了如何存储数据。例如,您可以指定 Capitalize 转换,以确保 data 值的第一个字母大写。
您可以将不同的转换应用到同一映射中的不同字段。在一对一映射中,将一个 source 字段映射到一个目标字段,无论是否将转换应用到 source 字段还是 target 字段,都无关紧要。
在一对多或多对一映射中,请考虑在指定转换时 target 字段值需要是什么。例如,假设一个多对一映射,它将数字、street、城市和状态的源字段合并到一个目标地址字段中。如果您希望目标地址字段中的字符串大写,请选择目标地址字段并应用大写转换。如果只需要大写状态,请选择 source state 字段,并应用大写转换。
您可以将源字段转换视为执行预处理,而目标字段转换则执行后处理。
注: 如果要向映射添加条件,您需要将任何转换放在条件表达式中,如 应用条件到映射 中所述。
流程
- 映射字段。这可以是一对一的映射、组合映射或分离映射。
-
在 Mapping Details 面板中,在 Sources 或 Targets 下,在您要转换的字段的框中,点
。这个选项显示可用转换的下拉列表。
- 选择您要执行数据映射程序的转换。
- 如果转换需要任何输入参数,请在适当的输入字段中指定它们。
-
要添加另一个转换,请再次点
。
7.13.1. 在映射到一个目标字段前,关于在多个源值上的转换 复制链接链接已复制到粘贴板!
有些转换可用于多个源字段,或应用到包含多个值的 source 字段中的值,如集合。数据映射器将转换的结果插入到 target 字段中。下表描述了这些多重性转换。
多重性转换 | 描述 |
---|---|
添加 | 添加数字源值,并将 sum 插入到 target 字段中。所选源字段中或所选集合中的值必须是数字。 |
average | 计算数字源值的平均值,并将结果插入到 target 字段中。所选源字段中或所选集合中的值必须是数字。 |
concatenate | 加入源值,并将结果插入到 target 字段中。您可以接受空格作为分隔符或指定其他字符。数据映射器在源值之间的 target 字段中插入此字符。此转换的一个常见用途是组合多个源字段值,例如,firstName、distributedName 和 LastName,在一个目标字段中,例如 CustomerName。 |
contains | 评估源值,以确定任何值是否包含您指定的参数值。如果任何源值包含指定的参数值,则 data mapper 会将 true 插入到 target 字段中。如果没有 source 值,则 data mapper 会将 false 插入到 target 字段中。 例如,假设您要跟踪与特定客户相关的活动。您可以选择每个集合成员包含客户信息的源集合字段。对于 Value 参数,您可以指定一个特定的电子邮件地址。当数据映射器在集合中找到指定的电子邮件地址时,它会在 target 字段中插入 true。 |
数量 | 在 target 字段中插入源值数。当 source 字段是集合时,这很有用。数据映射器在 target 字段中插入集合的大小。 例如,假设您选择一个是项目对象的 Order source 字段。应用 Count 转换会将按顺序排列的项数插入到目标字段中。 另外,如果您选择 4 个单独的源字段,则数据映射器会在 target 字段中插入 4。 |
划分 |
将第一个源值除以第二个源值,并在 target 字段中插入结果。如果还有两个源值,则执行将继续根据下一个数字来划分结果。例如,假设一个包含 |
格式 | 将模板中的占位符替换为您选择的 source 字段中的值。数据映射器在 target 字段中插入生成的字符串。例如,假设您选择了三个源字段:
时间 您可以选择 Format 转换并在 Template 参数中指定:
在 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 字段中插入结果。如果还有两个源值,则执行将继续乘以下一个数字的结果。例如,假设一个包含 |
减法 |
从第一个源值中减去第二个源值,并在 target 字段中插入结果。如果还有两个源值,则执行将继续从上一个结果中减去下一个数字。例如,假设一个包含 |
7.13.2. 可用转换的描述 复制链接链接已复制到粘贴板!
下表描述了可用的转换。日期和时间类型通常是指这些概念的任何形式。也就是说,数字包括 整数
,长
,双
。日期包括日期,如 日期
、时间
、区域
日期。
转换 | 输入类型 | 输出类型 | 参数(* = required) | 描述 |
---|---|---|---|---|
| number | number | None | 返回数字的绝对值。 |
| date | date |
| 将天数添加到日期.默认值为 0 天。 |
| date | date |
| 添加日期的秒数。默认值为 0 秒。 |
| 字符串 | 字符串 | 字符串 | 将字符串附加到字符串的末尾。默认为不附加任何内容。 |
| 字符串 | 字符串 | None | 通过删除空格将一个短语转换为 camelized 字符串,使第一个单词小写,并大写每个后续单词的第一个字母。 |
| 字符串 | 字符串 | None | 在字符串中大写第一个字符。 |
| number | number | None | 返回数字的整数。 |
| any | 布尔值 |
| 如果字段包含指定的值,则返回 true。 |
| 任何简单类型 | 数组中的任何简单类型 | index* |
对于集合,将 string 字段的值复制到目标集合的指定字段中,而无需分割。index 参数定义目标集合中字段的索引。默认值为 |
| number | number |
|
将代表区域的数字转换为另一个单元。对于 |
| number | number |
|
将代表距离另一个单元的数字转换。对于 |
| number | number |
|
将代表 mass 的数字转换为另一个单元。对于 |
| number | number |
|
将代表卷的数字转换为另一个单元。对于 |
| date | number | None | 返回与日期对应的每周(1 到 7)的日期。 |
| date | number | None | 返回与日期对应的年日(1 到 366)。 |
| 字符串 | 布尔值 |
|
如果字符串以指定字符串结尾,且两个字符串中的情况都相同,则返回 true。 |
| any | 布尔值 |
|
如果输入字段等于 |
| 字符串 | 字符串 | None | 在代表文件名的字符串中,返回文件扩展名,而无需点。 |
| number | number | None | 返回数字的整数。 |
| any | 字符串 |
|
在 |
|
string | number |
|
在输入字符串中返回字符的索引,该字符串是参数字符串的第一个字符。如果没有找到参数字符串,则返回 |
| any | 布尔值 | None | 如果字段为 null,则返回 true。 |
|
string | number |
|
在输入字符串中返回字符的索引,该字符串是参数字符串的最后一个字符。如果没有找到参数字符串,则返回 |
| any | number | None |
返回字段的长度,如果字段为 null,则为 |
| 字符串 | 字符串 | None | 将字符串转换为小写。 |
| 字符串 | 字符串 | None | 使用单个空格替换连续的空格字符,并修剪字符串中的前导和尾随空格。 |
| 字符串 | 字符串 |
|
在字符串的开头插入 |
| 字符串 | 字符串 |
|
在字符串末尾插入 |
| 字符串 | 字符串 |
|
前缀 |
| 字符串 | 字符串 |
|
在字符串中,将提供的匹配字符串的所有位置替换为提供的 |
| 字符串 | 字符串 |
|
在字符串中,将指定 |
| 任何简单类型 | 数组中的任何简单类型 |
| 将一个简单的类型映射到数组类型时,请使用从简单类型获取的值填充多个数组元素。 |
| number | number | None | 返回数字的舍入整数。 |
| 字符串 | 字符串 | None | 将出现的每个空格、冒号(:)、下划线(_)、加号(=)和等号(=)替换为连字符(-)。 |
| 字符串 | 字符串 | None | 将出现的每个空格、冒号(:)、连字符(-)、加号(=)和等号(=)替换为下划线(_)。 |
| compound 类型 | any | None | 根据 source compound 字段中的分隔符,将复合源字段分隔成多个目标字段。默认分隔符是一个空格。 |
| 字符串 | 布尔值 |
| 如果字符串以指定字符串(包括 case)开头,则返回 true。 |
| 字符串 | 字符串 |
|
从指定的 inclusive |
| 字符串 | 字符串 |
|
在指定的 |
| 字符串 | 字符串 |
|
在提供的 inclusive |
| 字符串 | 字符串 | None | 从字符串中修剪前导和尾随空格。 |
| 字符串 | 字符串 | None | 从字符串中修剪前导空格。 |
| 字符串 | 字符串 | None | 从字符串中修剪尾部空格。 |
| 字符串 | 字符串 | None | 将字符串转换为大写。 |