Salesforce 認定 MuleSoft デベロッパー 無料問題 7 / 10 ・ 分野8: データを変換する
Transform Message で、JSON の配列を CSV に変換して書き出す。区切り文字を縦棒(|)にし、見出し行は書かないようにしたい。スクリプトのヘッダーの output ディレクティブとして正しいものはどれか。
- output application/csv; separator="|"; header=false
- output application/csv {separator: "|", header: false}
- output application/csv separator="|", header=false
- output csv(separator="|", header=false)
正解と解説を見る
正解: C
正解の理由
書き手のプロパティは、DataWeave の式の output ディレクティブに、プロパティと値を付け足して指定する。公式の例は output application/csv separator=";", header=false で、1つ目が CSV の区切り文字、2つ目が見出しを書かない指定である。区切りを縦棒にするなら separator="|" とし、header=false と並べてカンマで区切る。
違う選択肢
「output application/csv; separator="|"; header=false」… セミコロンでつなぐのは、リスナーなどの outputMimeType に読み手のプロパティを付けるときの書き方である。DataWeave の output ディレクティブでは、MIME タイプの後ろに空白を置いてプロパティを書き、複数はカンマで区切る。
「output application/csv {separator: "|", header: false}」… 書き手のプロパティは、output ディレクティブにプロパティ名と値を = でつないで付け足す。DataWeave のオブジェクトの形で渡す書き方ではない。
「output csv(separator="|", header=false)」… 形式の ID(csv)で書くこと自体はできるが、プロパティは括弧で囲む引数ではない。形式の後ろに separator="|" のように付け足す。
似た設定との違い
リスナーや Read 操作の outputMimeType に付けるプロパティは、入力を読む読み手に形式を伝えるためのものである。書き出す形を決めるのは output ディレクティブの側で、JSON の書き手なら skipNullOn="everywhere" のように形式ごとのプロパティを付ける。