こんにちは、アンダーソンです。
今回はTableauCRMのお話です。
今回お客様の要望である日付項目に値があればTrueでそうでなければFalseみたいな条件でダッシュボードに表示させたいと要望がありました。
そこで、作業者の方にこんな感じで作って欲しいと上がってきたものを見たら
全部Trueになってる。。。みたいなことが起こりました。
タイトルの空の日付ってどういうことかというと、Salesforce側で空の日付だということなんですが、これを元に条件式を書いたところはまったのでそれをまとめていきたいと思います。
Contents
空日付の特殊な動作
レシピで空の日付が連動される時ってこんな感じになるんですよね。

1970-01-01って。。。
まあ、ここまではいいとして、上がってきた条件式を見てみると、
case year(CompletedDateTime) + month(CompletedDateTime) + dayofmonth(CompletedDateTime)
when 1972
then "false"
else "true"
end

プレビュー見てもいけそう!(ここはfalseだけですが実際にはtrueがあった)
ってことで問題ないだろうと思いきや、出力されたデータセットは全てtrueになるという謎現象がおきました。
何が起こった?
完全に推測なんですが、レシピ上での1970-01-01とみえているのはあくまでも見え方の問題で、
year(CompletedDateTime) + month(CompletedDateTime) + dayofmonth(CompletedDateTime)
だと判定はできるけど裏側に持ってるデータを読み込んでデータセット作成の際にはうまくいかなかったんですよね。
対策方法
作業者の方が色々考えてくれたもののなかなか解決策は見つからなかったんですが、
色々触っていたらあるものを発見。

これを押すと、

その日付のエポック秒が取れるんですよね。
1970-01-01は0になるので、作成した項目でここを判定して
あとはTruefalseの出力をするのみって感じです。
なかなか手強いTableauCRMの機能。
できることあり過ぎて追いきれてない感半端ないですが、また何かあればまとめようと思います。