日型のカスタムフィールドの日付を年月日で表示する際、フィールドが空のときの表示を設定したい | Community
Skip to main content
誠久_得野
New Participant
August 16, 2018
Solved

日型のカスタムフィールドの日付を年月日で表示する際、フィールドが空のときの表示を設定したい

  • August 16, 2018
  • 2 replies
  • 230 views

こんにちは、日本シグマックスの得野です。

表題の件で質問です。

スクリプトの知識が無いため、どなたか教えていただけると幸いです。

システムトークンの日付を日本語で​を参考に、

日型のカスタムフィールドの日付を年月日で表示するところまではできたのですが、

このフィールドが空のときは、メール上では「${formattedDate} 」と表示されてしまいます。

これを「未記入」という表示に変更したいのですが、どのようにスクリプトを変更すれば良いでしょうか?

ちなみにメールスクリプトは下記のように記載しています。

#set($formattedDate = $date.format("yyyy年MM月dd日", ${convert.parseDate(${lead.FirstChoiceDate_SX}, 'yyyy-MM-dd')}))

${formattedDate}

どのような環境で使用するか補足すると、

お客様の問合せ用LPで、訪問希望日を選択してもらうフォームに日型のカスタムフィールドを設定しています。

メールはフォーム入力完了をお知らせするもので、お客様が自分の入力した内容を確認するためのものです。

必須項目ではないため、空欄のままフォーム入力してしまう方も出てきますので、

その場合は訪問希望日の欄に「未記入」という値を返したいのです。

①日付が空欄の場合、その項目自体を無くす

②一旦文字列のフィールドで受けて、その後日型のフィールドにコピーする

等の対応があるかな、と思ったのですが、別途メールやキャンペーンを作成するのが大変そうでしたので、

スクリプトで対応できないか質問させていただきました。

どうぞよろしくお願いいたします。

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Sunity西田_正洋

得野様

Sunityの西田と申します。

下記でできました!(一応テストはお願いします。)

#set($formattedDate = $date.format("yyyy年MM月dd日", ${convert.parseDate(${lead.ecLastBuyDate}, 'yyyy-MM-dd')}))

#if(${formattedDate})

${formattedDate}

#else

でふぉると値

#end

Velocityの構文、このサイトがわかりやすいです。

Velocity | TECHSCORE(テックスコア)

西田

2 replies

Sunity西田_正洋Accepted solution
New Participant
September 20, 2018

得野様

Sunityの西田と申します。

下記でできました!(一応テストはお願いします。)

#set($formattedDate = $date.format("yyyy年MM月dd日", ${convert.parseDate(${lead.ecLastBuyDate}, 'yyyy-MM-dd')}))

#if(${formattedDate})

${formattedDate}

#else

でふぉると値

#end

Velocityの構文、このサイトがわかりやすいです。

Velocity | TECHSCORE(テックスコア)

西田

誠久_得野
New Participant
September 27, 2018

西田様

気づくのが遅くなり申し訳ありません。

また教えていただきありがとうございます!

早速試してみたいと思います!!

サイトの紹介もありがとうございます。

参考にさせていただきます!

Taishi_Yamada
Community Manager
August 22, 2018

@誠久 得野 さん、こんにちは、

試してないので、完全推測ですみませんが、

#if( !$変数名 )

  #set ( $変数名 = いれたい値 )

#end

くらいで、「値がカラ (ようはNULL)だったら、”いれたい値"を変数名に入れる」と処理できたかと。

これを最後に挟んであげれば、NULLのときは、”○○”と表示する、といった処理できると思われます。

ifのカッコの中の変数名の前についてる「!」は誤植ではなくて、NOTとしての意味です。

参考に、↓Email Scriptの文法について、VTLのReferenceは、このあたりから。。。(これだけ読んで分かるかどうかは別ですが)

Apache Velocity Engine VTL Reference

ご参考までに。

-Yamada

誠久_得野
New Participant
August 23, 2018

山田さん

レスポンス遅くなり申し訳ありません。

アドバイスありがとうございます!

現在夏休み中でマルケト触れないのですが

休み明けに早速試してみます!

Taishi_Yamada
Community Manager
August 24, 2018

>>現在夏休み中でマルケト触れないのですが

触れちゃダメですw.夏休みしっかり堪能してください。大事です

-Yamada