我有一个名为BlockCustomer的查找表。我还有一个FTP适配器,可以从多个客户那里获取文件。我需要能够从文件源确定客户并在表上进行查找。如果BlockCustomer.Customer1 = 0,那么它会将它发送给它的目标,否则它什么都不做。
如果我可以使用javascript,我会做这样的事情:
WHEN Lookup(BlockCustomer,HL7.Source.split("/incoming/")[1].split("/")[0]),1) = 0
但显然我不能。我找到了$ZSTRIP
,但我不确定它是否或如何运作。这是可能的还是我将不得不创建一个自定义类?
答案 0 :(得分:2)
在Cache中,如果需要通过分隔符获取字符串的某些部分,我们使用函数$piece。对于规则,您可以使用名为Piece的相同函数,使用相同的参数。所以你的条件应该是这样的:
CREATE OR REPLACE TRIGGER tri_order
BEFORE INSERT
ON orders
FOR EACH ROW
BEGIN
SELECT ID
INTO :NEW.o_id
FROM customer;
END;
顺便说一句,如果你认为你需要一些特定的功能,你可以通过开发来实现。只需扩展类Lookup(BlockCustomer,Piece(HL7.Source,"/incoming/",2),1)=0
并添加方法即可。并且功能将以相同的名称出现。作为示例,您可以在Ens.Rule.FunctionSet
类中看到,它包含几乎所有可用的函数。