問題タブ [dataweave]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1872 参照

csv - デフォルトの区切りミュール トランスフォーマーを削除する

Salesforce から CSV ファイルにデータを書き込もうとしています。

Data Weave トランスフォーマーを使用してデータを変換していますが、デフォルトでは区切り文字として「\」が使用され、CSV ですべての問題が発生しています。

CSVの問題

私のトランスコードは単純なものです

「\」をセパレーターとして無効にするオプションはありますか?

0 投票する
1 に答える
1375 参照

json - DataWeave 入力に複数のデータベース ペイロードを使用する方法

現在、Mule プロジェクトで動作するTransform Message( DataWeave ) コンポーネントがあります。有効な JSON を返します。

私が今必要としているのは、2 番目 (場合によってはそれ以上) のデータベース ペイロードからの追加情報を使用して、その変換を更新および追加することです。

dw スクリプトで多くの入力を指定できることは知っています ( DW サンプル チュートリアルを参照)。

[in0、in1、in2 は実際の入力名]

データベースから派生した複数のペイロードにこのメソッドを適用する方法がわかりません。

私の目的は、最初のペイロードによってベース JSON を構築することです。

これは正常に動作します。

しかし、次のペイロードによってキーワード配列が取り込まれ、次のようになります。

複数の入力から DataWeave で JSON 出力をマッピングするにはどうすればよいですか?


詳細:

  • ミュール EE バージョン: 3.7.2
  • Anypoint Studio バージョン: 5.3.0

0 投票する
2 に答える
2429 参照

mule - mule dataweave で ResultSet Iterator であるペイロードを参照する方法は?

Sql クエリは、ストリーミングされた出力をデータベース コンポーネントから結果セット イテレータ オブジェクトとして返します。これをdataweaveでxmlに変換したい。しかし、着信オブジェクトを参照する方法がわかりません。マップの場合、payload.student のような .operator を使用するだけでアクセスできます

payload.next() を使用しようとしましたが、エラーが発生します。また、次の %var input1 ペイロードを :iterator として試しましたが、それでも機能しません

0 投票する
2 に答える
2674 参照

mule - DataWeave を使用して CSV を配列に変換する

Mule Requester を使用して CSV ファイルをロードしています。ファイルが読み込まれると、ペイロードはバイト配列になり、これをフロー変数に格納しますmycsv。例外が発生し続けます。

ここに私のDataWeaveコードがあります:

前のフロー要素は であるchoiceため、そのメタデータを正しい名前で FlowVar に出力するように設定し、サンプルの CSV ファイルを参照したため、DataWeave は変数の型がList<Csv>.

CSV を読み取るにはどうすればよいですか? ありがとう!

0 投票する
1 に答える
826 参照

csv - 引用符のある行を無視するか、DataWeave が無効な CSV を読み取るようにします

Mule の DataWeave コンポーネントを使用して、有効でない、または少なくともRFC 4180に準拠していない CSV ファイルを読み取ろうとしています。問題は、引用符を含む値がいくつかあるが、フィールドがエスケープされていないことです。例えば、

DataWeave が使用する CSV パーサーのルールを少し緩和して、二重引用符で始まらない値をエスケープされていない値として扱う簡単な方法はありますか? または、(DataWeave またはその他の変換を使用して) 引用符を含むすべてのテキスト行を無視できますか? 行の 1% 未満であり、これらの行はたまたまこの統合に関連していませんが、CSV の生成を制御することはできません。

編集:例を次に示します。

CSV

データウィーブ

出力

0 投票する
0 に答える
774 参照

csv - PipedInputStream を DataWeave に返す Mule 呼び出し可能

以前の質問で説明した、DataWeave がRFC 4180に準拠していない CSV ファイルを読み取らないという問題の回避策を見つけようとしています。org.mule.api.lifecycle.Callable私が持っていた (ファイルまたは HTTP 応答からのものである可能性があります)を読み取り、処理できない行を削除する実装を実装する Java クラスを作成することにしInputStreamました (ここでの実装があまりにも多くを引き出していることはわかっています)。 )、読み取り可能な行を新しいストリームにパイプします。残念ながら、DataWeave から 0 バイトの出力が返され、例外が発生します。

編集:明確にするために、この質問は他の質問とは独立して存在する可能性がありますが、以前にこのようなことをする方法を知りました. たまたま、別の問題の回避策としてこの問題を解決しようとしています。

ここに私のCSVファイルがあります:

これが私のフローです:

Java ファイルは次のとおりです。

this answerによると、InputStreamaを返すことができるはずPipedInputStreamです。フロー参照または DataWeave のいずれかをコメント アウトすると、出力が得られます。それぞれ、無意味な JSON (RFC に従っていない場合に DataWeave CSV パーサーが奇妙な動作をするため) または行が削除された CSV が得られます。つまり、Java クラスまたは DataWeave コンポーネントは独立して機能しますが、一緒には機能しません。

Java クラスがフローから省略された場合の出力は次のとおりです。

DataWeave を省略した場合の出力は次のとおりです。

例外は次のとおりです。