2012-11-08 90 views
1

我需要做具有以下条件的过滤器,WSO2 ESB代理服务日期的比较:了如何使用过滤器和XPath

<filter xpath= current-dateTime > (lastUpdateDate + 30 days) ... 

什么是在代理服务执行此操作的最佳方式?可以在lastUpdateDate中添加30天吗?

谢谢。

回答

1

您可以使用脚本介体和xpath在过滤器介体中执行此任务。当您将系统日期设置为以下属性时,

<property name="date" expression="get-property('SYSTEM_DATE', 'yyyy.MM.dd')" scope="default"/> 

那么日期的值将采用“2012.11.23”格式。同样,当以该格式定义'lastUpdateDate'时,以下配置将创建您想要的过滤器;

<script language="js"> 
    var date = new Date(); 
    date.setDate(date.getDate()-30); 
    var formattedTime = date.getFullYear() + '.' + ("0" + (date.getMonth()+1)).slice(-2) + '.' + ("0" + date.getDate()).slice(-2); 
    mc.setProperty("modifiedDate",formattedTime); 
</script>   
<filter xpath="number(translate(get-property('modifiedDate'),'.','')) > number(translate(get-property('lastUpdateDate'),'.',''))">  
    <then>.....