2015-09-16 2 views
1

Dans la documentation de DataWeaver 10.8. Changing the Format of a Datehttps://developer.mulesoft.com/docs/dataweave#_date_time_operationsLa conversion du champ de date DateWeaver ne fonctionne pas - 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 
} 

Dans l'aperçu dataweaver il cherche bien que la réponse attendue (Changé le format de date). Je prends la réponse dans le composant de fichier, mais il ne convertit pas la date dans le format mentionné (également gardé logger juste après le dataWeaver, pas une réponse attendue).

Réponse obtenir comme ci-dessous

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

Je autre question, nous sommes ici hardcoding la date à l'intérieur du tisserand. Si supposons que nous prenons le champ de date du paramètre d'entrée, devons-nous envelopper le champ à l'intérieur de ||. Exemple comme ci-dessous, cela fonctionnera

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

Ce qui précède ne semble pas fonctionner pour moi. S'il vous plaît laissez-moi savoir l'utilisation correcte. Merci à l'avance

Répondre

2

Essayez ceci:

%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 
} 

Sortie:

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

La différence est le type de données :string-:date::

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

Il semble que le résultat ne passe pas à /. C'est probablement un bug.

+0

Merci! Correct devrait être un bug !! Avez-vous une idée sur mon autre requête? Comment passer le champ de date de inputField sans le coder à la main dans la transformation. J'espère que vous avez ma question correctement. – star

+0

Oui, je l'ai eu. C'est aussi une limitation puisque je ne trouve pas d'analyseur dans Dataweave pour convertir le format formatDate1 en: date. Peut-être que vous pouvez essayer est unmarshall le JSON à un pojo (json à Object, avec la classe de retour contenant les deux champs de date.) Puis ajoutez cela comme une entrée dans dataweave, c'est-à-dire ajouter à ses métadonnées. –

+0

Ce serait génial si DataWeaver pouvait directement fournir la fonctionnalité. – 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 
} 

Essayez cette

+0

Avoir essayé. Seulement peut voir la bonne réponse dans Aperçu. Mais dans la sortie de fichier même ce qui est imprimé dans le dataweaver est la réponse. Dois-je modifier les paramètres de configuration de DataWeaver (mais ces paramètres ne sont pas disponibles). – star