当您引用或创建消息内容时,很有可能软件包含重复字段。 如果您知道重复字段有多少个实例,且要访问这样的字段的特定实例,可以将数组下标用作为字段引用的一部分。
例如,您可能希望在地址的第一行伤进行过滤,以加快订单的发货速度。 元素 Billling.Address 的三个实例总是显示在同一消息中。 要测试第一行,请编写如下表达式:
IF Body.Invoice.Customer.Billing.Address[1] = 'Patent Office' THEN DO; -- more ESQL -- END IF;
数组下标 [1] 表明它是您感兴趣的重复字段的第一个实例(数组下标从 1 开始)。这样的数组下标可在字段引用的任何点上使用,因此,例如,可下面测试上的过滤器中使用:
IF Body.Invoice."Item"[1].Quantity > 2 THEN DO; -- more ESQL -- END IF;
使用特殊的 [<] 数组下标,您可以引用重复字段的最后一个实例,并引用与最后一个(例如,倒数第二个)相关的实例,如下:
还可以使用数组下标 [>] 来表示第一个元素,以及以类似方式与第一个元素相关的元素。
下例使用这些下标引用发票消息:
IF Body.Invoice.Customer.Billing.Address[<] = 'Hampshire' THEN DO; -- more ESQL -- END IF; IF Body.Invoice.Customer.Billing.Address[<2 ] = 'Southampton' THEN DO; -- more ESQL -- END IF;
还可以使用重复未知次数的元素的特殊下标。