Notes/Dominoの開発をされている方は、フィールドの種類に「式」なるものがあることは、何となくご認識されてるかもしれません。
イメージ 1

でも、何に使うものだろう。
ヘルプを見るとこんなことが書かれています。
    「購読リストを集計するのに使用されます。これは [購読] データベース (headlines.nsf) と連携して動作します。」
購読?そういわれても、あまり馴染みがないなぁ。

この作文では、そこを説明させていただきたい。。というわけではありません。


そもそも「式」と名乗るからには純粋に「式」として使うことって出来ないだろうか?

話を進める前に。
いったんこちらの吉田さんの記事を紹介しておきたいと思います。
昨年これが出た時は、「がーん 隠し持ってたつもりのネタを吉田さんに先行された~」、だったのですが、
式言語の @Eval関数を使って式を共通化する、というお話が載っています。

あるテキストフィールドに式を書き、複数の個所から@Eval関数で参照すれば式を共通化できるというもの。

ただ、@Evalが参照するテキストフィールドでは
式の引用符や中括弧をエスケープしなくてはならない点が制限である旨を書かれています。


ここで、参照先のフィールドを「式」にしたら?

フィールドの種類「式」と「式を表示」を選択します。
イメージ 2
そうすると、
フィールド内には純粋に対象の式だけを書けば良く、全体を引用符で囲まなくて済み。だからエスケープも考慮しなくて済みます。

@Eval関数を介してこのフィールドの式は、きちんと期待どおりに動きます。

式フィールドを使えば@Eval関数を使って式を指定するハードルがぐんと下がると思います。
    私自身は、@Evalは必須チェック(入力の確認/Input Validation)でよく利用します。
    Notes/Dominoはフィールドの見出し名をフィールドの属性として持たないので、
    見出し名を変数にして@Evalの式でフィールドに渡し、
    フィールドの側では保存時に限り「○○(見出し名)は必須です」といったメッセージをだす形です。
ただ、式フィールドの使用には、わずかにひっかかることがあります。
文書にフィールド値が保存されてしまう点です。

テキストフィールドなら「表示用の計算結果」を指定すれば文書に値が残りません。が、「式」フィールドには「表示用の計算結果」がありませんから、文書にフィールド値が保存されます。
1文書あたりのサイズとして大したことはないのですが、同じ値を全文書が持つのは、いまいち美しくない。

そんなわけで、私は今後のリリースで「式」フィールドに「表示用の計算結果」がサポートされることを待っているのですが、IBMさん、
そもそもこんな使われ方想定してなかったでしょうけど、検討してくれないかなぁ。

続きを読む