2015-09-16 2 views
1

В документации DataWeaver 10.8. Changing the Format of a Datehttps://developer.mulesoft.com/docs/dataweave#_date_time_operationsDateWeaver дата преобразования поля не работает - Mule

Below is the transform 

%dw 1.0 
%output application/json 
%type mydate = :string { format: "YYYY/MM/dd" } 
--- 
{ 
formatedDate1: |2003-10-01T23:57:59| as :mydate, 
formatedDate2: |2015-07-06T08:53:15| as :mydate 
} 

В dataweaver просмотре он смотрит отлично, как и ожидалось ответ (Изменен формат даты). Я принимаю ответ в компоненте файла, но он не конвертирует дату в указанном формате (также хранит журнал сразу после dataWeaver, а не ожидаемый ответ).

Ответ становится ниже

{ 
"formatedDate1": "2003-10-01T23:57:59", 
"formatedDate2": "2015-07-06T08:53:15" 
} 

У меня есть другой запрос, здесь мы жестко прописывать дату внутри ткача. Если предположить, что мы берем поле даты из параметра Input, нам нужно обернуть поле внутри ||. Пример, как показано ниже, будет ли он работать

%dw 1.0 
    %output application/json 
    %type mydate = :string { format: "YYYY/MM/dd" } 
    --- 
    { 
    formatedDate1: |payload.dateField1| as :mydate, 
    formatedDate2: payload.dateField1 as :mydate 
    } 

Выше, кажется, не работает для меня. Пожалуйста, дайте мне знать правильное использование. Спасибо заранее

ответ

2

Попробуйте это:

%dw 1.0 
%output application/json 
%type mydate = :date { format: "yyyy/M/d" } 
--- 
{ 
    formatedDate1: |2003-10-01T23:57:59| as :mydate, 
    formatedDate2: |2015-07-06T08:53:15| as :mydate 
} 

Выход:

{ 
    "formatedDate1": "2003-10-01", 
    "formatedDate2": "2015-07-06" 
} 

Разница в том, тип данных от :string к :date::

%type mydate = **:date** { format: "yyyy/M/d" } 

Похоже, что результат не изменится до /. Вероятно, это ошибка.

+0

Спасибо! Правильно должно быть ошибка!. У вас есть идеи по моему другому запросу. Как передать поле даты из inputField без ручной кодировки внутри преобразования. Надеюсь, вы правильно поняли мой вопрос. – star

+0

Да, я понял. Это также является ограничением, так как я не могу найти какой-либо парсер в Dataweave для перевода текста formatDate1 в: date. Возможно, вы можете попытаться размонтировать JSON в pojo (json to Object, с классом return, содержащим два поля даты). Затем добавьте это как вход в dataweave, то есть добавив в свои метаданные. –

+0

Было бы здорово, если бы DataWeaver напрямую мог предоставить функциональность. – star

0
%dw 1.0 
%output application/json 
%type mydate = :string { format: "YYYY/M/d" } 
--- 
{ 
formatedDate1: |2003-10-01T23:57:59| as :mydate, 
formatedDate2: |2015-07-06T08:53:15| as :mydate 
} 

Попробуйте это

+0

Попробовали. Только можно увидеть правильный ответ в Preview. Но в файле выдается то же самое, что напечатано в dataweaver - это ответ. Мне нужно изменить любой параметр конфигурации для DataWeaver (но таких настроек нет). – star

Смежные вопросы