This is not a Drools problem, however...
You are using a Domain Specific Language (DSL) to transform rules into Drools Rule Language (DRL). If you have written the DSL you should know how it works; if you haven't, then there should be a documentation telling you what the parameters of
xpathEquals "/IATA/messageaudit/@messageVersion" "FSU/13/RCS"
mean, and this would immediately solve your problem. If you had that documentation (why don't you have it?), it would say that the first parameter is an XPath expression and the second a value to match at the location the first expression identifies.
Now, when you use SW using XPath with XML, you should know the basics about XPath. If you don't - w3c has some good tutorials, see the one on XPath, here.
The XPath used denotes an attribute and therefore your rules will only work if messageVersion is an attribute of the element /IATA/messageaudit. In the second XML, all values are elements below that element.
-W
Hi
iam new to drools rules my problem is
iam receiving message in xml format so using drools have to route it my
drools rules work when the xml message is the format as below
<?xml version="1.0" encoding="UTF-8"?>
<IATA>
<messageaudit senderId="125" receiverId="FFCategory"
dateTimeOfMessage="19:00"
messageVersion="FSU/13/RCS" airwaybill="125-1234565" />
<fsurcs AwbNumber="125-1234565" origin="HYD" destination="KUL"
totalPieces="T40" totalWeight="K200"
statusCodeConsignmentRecieveDFromShipperOrAgent="RCS"
dayAndMonthOfReceipt="02June" actualTimeOfGivenStatusEvent="19:00"
airportCodeOfReceipt="HYD"
totalOrPartNumberOfPices="T40" weightOfTotalOrPartOfPieces="K200"
nameOfAgentOfShipper="Shipper" osi="RcsMessage"/>
</IATA>
but if the xml is the format as below
<?xml version="1.0" encoding="UTF-8"?>
<IATA>
<messageaudit>
<senderId>125</senderId>
<receiverId>FFCategory</receiverId>
<dateTimeOfMessage>19:00</dateTimeOfMessage>
<messageVersion>FSU/13/RCS</messageVersion>
<airwaybill>125-1234565</airwaybill>
</messageaudit>
<fsurcs>
<AwbNumber>125-1234565</AwbNumber>
<origin>HYD</origin>
<destination>KUL</destination>
<totalPieces>T40</totalPieces>
<totalWeight>K200</totalWeight>
<statusCodeConsignmentRecieveDFromShipperOrAgent>RCS</statusCodeConsignmentRecieveDFromShipperOrAgent>
<dayAndMonthOfReceipt>02June</dayAndMonthOfReceipt>
<actualTimeOfGivenStatusEvent>19:00</actualTimeOfGivenStatusEvent>
<airportCodeOfReceipt>HYD</airportCodeOfReceipt>
<totalOrPartNumberOfPices>T40</totalOrPartNumberOfPices>
<weightOfTotalOrPartOfPieces>K200</weightOfTotalOrPartOfPieces>
<nameOfAgentOfShipper>Shipper</nameOfAgentOfShipper>
<osi>RcsMessage</osi>
</fsurcs>
</IATA>
it is not routing the message means not recognizing the drools and my drools
file is as follows
package com.jboss.soa.esb.routing.cbr
#list any import classes here.
import org.jboss.soa.esb.message.Message;
import org.jboss.soa.esb.message.format.MessageType;
expander XPathLanguage.dsl
#declare any global variables here
global java.util.List destinations;
rule "Blue Routing Rule using XPATH"
when
xpathEquals "/IATA/messageaudit/@messageVersion" "FSU/13/RCS"
then
Log : "Blue Team";
Destination : "blue";
end
rule "Red Routing Rule using XPATH"
when
xpathEquals "/IATA/messageaudit/@messageVersion" "FSU/13/MAN"
then
Log : "Red Team";
Destination : "red";
end
rule "Green Routing Rule using XPATH"
when
xpathEquals "/IATA/messageaudit/@messageVersion" "FSU/13/DEP"
then
Log : "Green Team";
Destination : "green";
end
please help me hoe to rectify this its very urgent for me and please dnt
mind if i did any mistakes
thanku
--
View this message in context: http://drools.46999.n3.nabble.com/Drools-rules-tp2854688p2854688.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users