【问题标题】:Mule/dataweave - Unable to get record/item which have date greater than or equal to another dateMule/dataweave - 无法获取日期大于或等于另一个日期的记录/项目
【发布时间】:2019-01-25 02:07:58
【问题描述】:

我正在尝试通过在日期范围上应用过滤器来过滤我的有效负载。不幸的是,我认为它不起作用,因为数据返回无效。你们能帮我检查一下这个错误的原因吗?仅供参考,我已经将日期数据分别强制为 localdatetime。

变量

sessionVars.DateFrom = 2017-05-01T00:00:00

sessionVars.DateTo = 2017-09-01T23:59:59

当前输入

 <GetListOfCategoriesDetailResponse xmlns="" xmlns:s="">
    <GetListOfCategoriesDetailResult xmlns:a="" xmlns:i="">
        <a:CategoryDetail>
            <a:CategoryCode>ABC456</a:CategoryCode>
            <a:Arrive>2017-12-14T15:00:00</a:Arrive>
            <a:Depart>2018-01-10T15:00:00</a:Depart>
        </a:CategoryDetail>
        <a:CategoryDetail>
            <a:CategoryCode>ABC123</a:CategoryCode>
             <a:Arrive>2017-08-14T15:00:00</a:Arrive>
            <a:Depart>2017-08-20T15:00:00</a:Depart>
        </a:CategoryDetail>
        <a:CategoryDetail>
            <a:CategoryCode>BCD344</a:CategoryCode>
             <a:Arrive>2017-05-14T15:00:00</a:Arrive>
            <a:Depart>2017-06-01T15:00:00</a:Depart>
        </a:CategoryDetail>
    </GetListOfCategoriesDetailResult>
</GetListOfCategoriesDetailResponse>

预期输出

<ns0:FoodProducts>
     <ns0:FoodProduct>
         <ns0:FruitTypes>
             <ns0:FruitType FruitTypeCode="ABC123">
          </ns0:FruitType>
             <ns0:FruitType FruitTypeCode="BCD344" >
             </ns0:FruitType>
     </ns0:FoodProduct>
 </ns0:FoodProducts>

到目前为止我的数据编织代码

%output application/xml
 %namespace ns0 
 %namespace ns01 
 %namespace ns1 
 ---
 {
     ns0#FoodProductRS: {
         ns0#FoodProducts: {
             ns0#FoodProduct: {
                 ns0#FruitTypes: {         
  (payload.ns01#GetListOfCategoriesDetailResponse.ns01#GetListOfCategoriesDetailResult.*ns1#CategoryDetail filter (sessionVars.DateTo as :localdatetime {format:"yyyy-MM-dd'T'HH:mm:ss"}) >= ($.Arrive as :localdatetime {format:"yyyy-MM-dd'T'HH:mm:ss"})
                and (sessionVars.DateFrom as :localdatetime {format:"yyyy-MM-dd'T'HH:mm:ss"}) <= ($.Depart as :localdatetime {format:"yyyy-MM-dd'T'HH:mm:ss"})
     map ((categoryDetail , indexOfCategoryDetail) -> {
                         ns0#FruitType @(FruitTypeCode: categoryDetail.ns1#CategoryCode)
                     }))
                 }
             }
         }
     }
 } 

【问题讨论】:

    标签: xml datetime mule transform dataweave


    【解决方案1】:

    我再次确认这种代码比较确实有效,并且我能够根据本地日期时间比较获得记录范围。

    【讨论】:

      猜你喜欢
      • 2014-10-12
      • 2019-06-05
      • 2017-09-09
      • 2014-01-31
      • 1970-01-01
      • 2023-03-29
      • 2021-07-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多