将消息发送到Mirth

时间:2017-10-05 05:36:15

标签: javascript mirth

我正在使用Mirth频道,我正在尝试使用XSD文件验证XML。为了执行该操作,我编写了以下用于我的目的的JavaScript。我正在使用JAXP API库来执行此操作。

我的下一步是:任何验证错误都应该路由到目的地1.然而,有效消息应该转到目的地2.

如果有人可以指导我如何调整此Javascript或编写过滤器逻辑来执行此操作,我将非常感激。

提前致谢!!!

var schemaFile = new Packages.java.io.File("C:\\hl7v3\\Test.xsd");
var schemaFactory = Packages.javax.xml.validation.SchemaFactory.newIns tance("http://www.w3.org/2001/XMLSchema");
var schema = schemaFactory.newSchema(schemaFile);
var reader = new Packages.java.io.StringReader(connectorMessage.get RawData());


var xmlFile = new Packages.javax.xml.transform.stream.StreamSource(r eader);

var validator = schema.newValidator();

try {
// validates the message
validator.validate(xmlFile);
// valid message
logger.info('valid');
} catch (err) {
// invalid message
logger.error('An Error Occurred:'+err.toString());
return false;
}

1 个答案:

答案 0 :(得分:0)

对于上面的验证示例,我们可以使用如下的Mirth destinationSet过滤功能,

我们应该有两个目标连接器,一个用于有效的消息传输,另一个用于错误的消息

try {
// validates the message
validator.validate(xmlFile);
// valid message
logger.info('valid');
destinationSet.removeAllExcept(<sucess-destination-id>);
} catch (err) {
// invalid message
logger.error('An Error Occurred:'+err.toString());
destinationSet.removeAllExcept(<error-destination-id>);
return false;
}

//Replace destination ID based on your destination IDs