导出 (0) 打印
全部展开

BizTalk 服务中的表达式 - 用法和示例

更新时间: 2014年6月

列出 Microsoft Azure BizTalk 服务中的表达式映射操作。

 

映射操作 说明 参数 输出

算术表达式

使用输入和常数对数学表达式求值。算术表达式由以下运算符组成:











  • 绝对值

  • Maximum

  • Minimum

  • 四舍五入

  • 平方根

可以包含 0 到 100 个可选输入参数:

 

输入

数字值。

算术表达式

使用输入和常数定义的数学表达式。

note备注
表达式的最大长度为 1024 个字符。

表示计算结果的数字值。

请参见算术表达式示例:BizTalk 服务

逻辑表达式

对某个条件求值,并输出计算后的布尔值。逻辑表达式由以下运算符组成:

  • 关系运算符:

    >

    <

    >=

    <=

    ==

    !=

  • 逻辑非 (!)

  • 条件 AND (&&)

    条件 OR (||)

可以包含 0 到 100 个可选输入参数:

 

输入

可以是数字值、字符串值或布尔值。

逻辑表达式

使用求值为布尔值的输入和常数定义的表达式。

note备注
表达式的最大长度为 1024 个字符。

如果逻辑表达式返回 true,则返回 True。否则返回 False。

请参见逻辑表达式示例:BizTalk 服务

If-Then-Else 表达式

对导致生成两种可能输出之一的语句求值。

可以包含 0 到 100 个可选输入参数:

 

输入

可以是数字值、字符串值或布尔值。

Condition

使用输入和常数定义的表达式。

Then 值

如果语句或表达式为 true,则使用此值。

Else 值

如果语句或表达式为 false,则使用此值。

note备注
表达式的最大长度为 1024 个字符。

结果基于条件表达式的 true 或 false 求值。

如果为 true,则使用 Then 值。如果为 false,则使用 Else 值

请参见If-Then-Else 表达式示例:BizTalk 服务

条件赋值

从两个输入参数之一返回值。如果第一个输入值为 True,则使用第二个输入值在输出文档中创建节点。如果第一个输入值为 False,则不在输出文档中创建对应的节点。

必须有且仅有两个输入参数:

 

Condition

导致生成布尔值的表达式。可以是下列其中一项:

  • 从树节点链接

  • 从映射操作链接

赋值

当条件为 true 时赋给目标节点的值。

note备注
只能将此映射操作连接到目标树节点。

如果“条件”值为“true”,则使用“赋值”输入值创建节点。

请参见条件赋值示例:BizTalk 服务

下表列出了可配合任何映射操作使用的其他函数:

 

函数 表达式 说明

Exists

Exists(Source_Node_Name)

需要表示源文档中的元素名称的单个输入。如果该元素存在,则返回 True。否则返回 False。

IsDate

IsDate(Input1)

需要单个类型字符串输入。DateTime.TryParse() 方法用于将输入解析成 DateTime 对象。如果该输入解析成功,则返回 True。否则返回 False。

IsEmpty

IsEmpty(Input1)

需要单个类型字符串输入。如果该字符串为 null 或为空,则返回 True。否则返回 False。如果输入不是字符串对象,则返回 True。

IsNil

IsNil(Source_Node_Name)

需要表示源文档中的元素名称的单个参数。如果该元素存在并且 xsi:nil 设置为 True,则返回 True。否则返回 False。

IsNumber

IsNumber(Input1)

需要单个类型字符串输入。Double.TryParse() 方法用于将输入解析成 double 值。如果该输入解析成功,则返回 True。否则返回 False。

note备注
支持使用逗号“,”作为千位分隔符,并支持使用句点“.”作为小数点。

Important重要提示
所有映射操作和函数都可以在除 Exists 和 IsNil 以外的其他映射操作和函数中使用。Exists 和 IsNil 指向源文档中的单个节点。

BizTalk 服务可让你配置错误的处理方式,以及空节点或 null 节点的处理方式。可以配置以下表达式映射操作的错误处理行为:

  • 逻辑表达式

  • 算术表达式

  • If-Then-Else 表达式

步骤:

  1. 在 Visual Studio 中打开 BizTalk 服务项目BizTalk 服务项目项目。

  2. 双击某个转换 (.trfm) 以打开转换设计器。

  3. 在转换工具栏中,单击“设置”

“错误处理”选项卡

“错误处理”选项卡中,以下表达式映射操作具有两个“行为”选项:

  • 逻辑表达式

    • 使映射失败:将会中止整个转换。由于转换是在管道中执行的,因此,将在该管道中发生错误,然后将该错误发回到发送消息的客户端。

    • 输出默认值 false:如果映射操作失败,则返回 False 作为输出。

  • 算术表达式

    • 使映射失败:将会中止整个转换。由于转换是在管道中执行的,因此,将在该管道中发生错误,然后将该错误发送到发送消息的客户端。

    • 输出默认值 NaN:如果映射操作失败,则返回 NaN(不是数字)作为输出。

    • 输出默认值 0:如果映射操作失败,则返回零 (0) 作为输出。

  • If-Then-Else 表达式

    • 使映射失败:将会中止整个转换。由于转换是在管道中执行的,因此,将在该管道中发生错误,然后将该错误发回到发送消息的客户端。

    • 基于输出类型输出 Null/零/False:如果映射操作失败,则基于输出类型返回 Null/零/False 作为输出。

“Null/空数据处理”选项卡

“Null/空数据处理”选项卡中有三个选项:

  • 在累计操作中考虑空节点:默认情况下未选中此选项。未选中时,将不在迭代中包含空节点。选中时,将在迭代中包含所有节点,包括空节点。

    示例:某个文档包含 10 个 <record> 节点,其中三个 <record> 节点是空的。如果未选中“在迭代中考虑空节点”,映射操作将返回值 7。如果选中“在迭代中考虑空节点”,映射操作将返回值 10。

  • 在迭代中考虑空节点:默认情况下未选中此选项。未选中时,将不在迭代中包含空节点。选中时,将在迭代中包含所有节点,包括空节点。

    示例:某个文档包含 10 个 <record> 节点,其中三个 <record> 节点是空的。如果未选中“在迭代中考虑空节点”,映射操作将迭代非空节点七次。因此,将在目标中生成七个 <record> 节点。如果选中“在迭代中考虑空节点”,映射操作将迭代所有节点(包括空节点)10 次。因此,将在目标中生成 10 个 <record> 节点。

  • 目标节点生成:如果配置为考虑空节点,可以选择在输出中生成空节点,或者不在输出中生成空节点。具体而言:

    • 不生成空节点:默认选项。

    • 生成空节点

    示例:某个文档包含 10 个 <record> 节点,其中三个 <record> 节点是空的。如果未选中“在累计操作中考虑空节点”“在迭代中考虑空节点”,映射操作将迭代非空节点七次。因此,将在目标中生成七个 <record> 节点。如果选中“在迭代中考虑空节点”,映射操作将迭代所有节点(包括空节点)10 次。因此,将在目标中生成 10 个 <record> 节点。

另请参阅

显示:
© 2015 Microsoft