复杂路由规则的问题

Trouble with complex routing rule

我有一个名为 BlockCustomer 的查找 table。我还有一个 FTP 适配器,可以从多个客户那里获取文件。我需要能够从文件的来源确定客户并在 table 上进行查找。如果 BlockCustomer.Customer1 = 0 那么它会将它发送到它的目标,否则它什么都不做。

如果我可以使用 javascript 我会这样做:

WHEN Lookup(BlockCustomer,HL7.Source.split("/incoming/")[1].split("/")[0]),1) = 0

但显然我不能。我找到了 $ZSTRIP,但我不确定它是否或如何工作。这是可能的还是我必须创建自定义 class?

在缓存中,如果需要通过分隔符获取字符串的某些部分,我们使用函数$piece。对于规则,您可以使用具有相同参数的名为 Piece 的相同函数。所以你的条件应该是这样的:

Lookup(BlockCustomer,Piece(HL7.Source,"/incoming/",2),1)=0

顺便说一句,如果你认为你需要一些特定的功能,你可以通过开发来实现。只需扩展 class Ens.Rule.FunctionSet 并添加一个方法。并且函数将以相同的名称出现。作为示例,您可以在 Ens.Util.FunctionSet class 中看到,其中包含几乎所有可用的功能。