如何在mule3中验证Given日期不是Future日期



我的要求是验证给定日期不应该是未来日期。

例如today date is 01/01/2020

输入日期:

30/01/2020

输出:

Date should not be Future date.

您也可以使用相等运算符将它们作为日期进行比较。。如果你的约会对象有时间,一定要把事情转换成一个共同的时区来处理这些边缘情况。

对于骡子3:

%dw 1.0
%input payload application/json
%output application/json
%function isFutureDate(dt) (dt as :date) > (now as :date)
%var dt = "30/01/2020" as :date { format: "dd/MM/yyyy" }
---
isFuture: isFutureDate(dt)

对于骡子4:

%dw 2.0
output application/json
fun isFutureDate(dateToTest: Date | DateTime) =
(dateToTest as Date) > (now() as Date)
var date = |2021-06-10|
---
isFutureDate(date)

1.通过#[server.dateTime]获取当前日期。

2.设置"转换"消息。

"datevalidation": (payload.DateOfBirth as :date {format:"yyyy-MM-dd"}) < (flowVars.currentdate as :date {format:"yyyy-MM-dd"}

3.添加验证组件isTure

<validation:is-true config-ref="Validation_Configuration" expression="#[payload.datevalidation]" doc:name="Validation" message="date should not be Future."/>

完整代码。

<mule xmlns:validation="http://www.mulesoft.org/schema/mule/validation" xmlns:dw="http://www.mulesoft.org/schema/mule/ee/dw" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/dw http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd
http://www.mulesoft.org/schema/mule/validation http://www.mulesoft.org/schema/mule/validation/current/mule-validation.xsd">
<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/>
<validation:config name="Validation_Configuration" doc:name="Validation Configuration"/>
<flow name="helloFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/hello" allowedMethods="GET" doc:name="HTTP"/>
<set-variable variableName="currentdate" value="#[server.dateTime]" doc:name="current date Variable"/>
<dw:transform-message doc:name="Transform Message">
<dw:set-payload><![CDATA[%dw 1.0
%output application/java
---
{
"datevalidation": (payload.DateOfBirth as :date {format:"yyyy-MM-dd"}) < (flowVars.currentdate as :date {format:"yyyy-MM-dd"})
}]]></dw:set-payload>
</dw:transform-message>
<validation:is-true config-ref="Validation_Configuration" expression="#[payload.datevalidation]" doc:name="Validation" message="date should not be Future."/>
<logger level="INFO" doc:name="Logger"/>
</flow>
</mule>

希望它的帮助。

替代建议

%dw 2.0
output application/json
var inpDate = "08/06/2021" as Date {"format": "dd/MM/yyyy"}
var today= now() as Date {"format": "dd/MM/yyyy"} 
---
if (daysBetween(inpDate,today) > 0) "PastDate" else "FutureDate"

最新更新