Sometimes we need to retrieve properties and manipulate them according to custom requirement. For this i can suggest you two approaches.
01. Retrieve roles list and fetch them using script mediator.
02. Retrieve roles list and fetch them using xpath support provided.
01. Retrieve roles list and fetch them using script mediator.
//Store Roles into message context
<property name="ComingRoles" expression="get-property('transport','ROLES')"/>
//Or you can you following if property is already set to default message context
<property name="ComingRoles" expression="get-property(''ROLES')"/>
//process them inside script mediator
<script language="js">
var rolelist = mc.getProperty('ComingRoles');
//Process rolelist and set roles or required data to message context as follows. Here we set same role set
mc.setProperty('processedRoles',rolelist);
</script>
<log>
<property name="Processed Roles List" expression="get-property('processedRoles')"/>
</log>
02. Retrieve roles list and fetch them using xpath support provided.
//Retrive incoming role list
<property name="ComingRoles" expression="get-property('transport','ROLES')"/>
//Or you can you following if property is already set to default message context
<property name="ComingRoles" expression="get-property(''ROLES')"/>
//Fetch roles one by one using xpath operations
<property name="Role1"
expression="fn:substring-before(get-property('ComingRoles'),',')"/>
<property name="RemainingRoles"
expression="fn:substring-after(get-property('transport','ROLES'),',')"/>
//Fetch roles one by one using xpath operations
<property name="Role2"
expression="fn:substring-before(get-property('RemainingRoles'),',')"/>
<property name="RemainingRoles"
expression="fn:substring-after(get-property('RemainingRoles'),',')"/>
//Fetch roles one by one using xpath operations
<property name="Role3" expression="(get-property('RemainingRoles'))"/>
//Then log all properties using log mediator
<log>
<property name="testing" expression="get-property('Role1')"/>
</log>
<log>
<property name="testing" expression="get-property('Role2')"/>
</log>
<log>
<property name="testing" expression="get-property('Role3')"/>
</log>
//Check whether roles list having String "sanjeewa". If so we will set isRolesListHavingSanjeewa as true else its false.
<log>
<property name="isRolesListHavingSanjeewa"
expression="fn:contains(get-property('transport','ROLES'),'sanjeewa')"/>
</log>
You will find xpath expressions and sample here(http://www.w3schools.com/xpath/xpath_functions.asp)
No comments:
Post a Comment