- 从队列中读取 XML 消息,根据 XML 中的数据判断是否保存至队列
- XML 消息格式 <record><id>100001</id><address>杭州市</address><amount1>560.00</amount1><amount2>300.00</amount2></record>
- 只保存 address 是杭州的数据
新建一个 Application,新建一个 Message flow,拖入 MQ Input、MQ Output 填写必要信息(见第二幕),在 Routing(路由)中拖入 Filter 组件,并将 MQ Input 的 out 连接 Filter 的 int,将 Filter 的 true 连接 MQ Output 的 in,同时将 false 连接另一个 MQ Output 如下图:

数据输入节点的配置 Properties 中 Input Message parsing 的 Message domain 选择 XMLNSC 否则 Body获取不到 XML 数据,默认是 BLOB,双击 Filter 节点,会弹出 esql 编写界面
CREATE FILTER MODULE mq2filter2mq_Filter
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
IF Body.record.address = '杭州市' THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
END;
END MODULE;
保存,拖入聚点中,回到 MQ 页面,在 QMM_IN 放入上述测试的 XML 报文,修改报文中的 address,尝试修改为杭州市和非杭州市,最终结果报文的 address 是杭州市的将会进入 QMM_OUT 队列,否则进入 QMM_ERR 队列
弊端:只能二选一,应用场景有限,下一章将介绍更好用的路由方式
评论区