143 Views
December 16, 18
スライド概要
Notes/Dominoの@関数を取り上げながら、調べたこと、経験したことを雑談してゆきます。
第8回は @ThisName・@ThisValue・@Failure について。
-notes knows community- 2018/12/13 @関数Talk 第8回 公開版 ネオアクシス株式会社 阿部覚 (tw:) @abesat
今月は なにやら急転直下の事変が起きて おそらく私もみなさんも そわそわの最中ですが このトークはあんまし関係なしに すすめたいと思います😅
@ThisName @ThisValueの 雑談
IBMさんのヘルプ フィールドの、 名前や値を返す関数ですが それぞれの関数のヘルプには この↓注記が付されています
Notes/Domino R5 以前は存在せず、 現在のフィールド名を式で使いたいときは 引用符つきでフィールド名を書く必要が ありました "FieldName" → いまは @ThisName も使えます 現在のフィールド値を式で使いたいときは 引用符なしでフィールド名を書く必要が ありました FieldName → いまは @ThisValue も使えます
@ThisValueで例示すると かつてはこうする必要がありました いまはこんな式でもOKです
つまり、過去の方法で 代替できないこともないですが、 何がうれしいかといえば • フィールド名の 書き間違え、つづりミスを防ぎやすい • 複数のフィールドで、同じ式をつかえて 開発を省力化できる ということだと思います
でも、少し残念なことを ここでは2つ挙げようと思います
残念なことその1 例:コメント入力がない時は 非表示にしたい @If(@IsDocBeingEdited; @False; @ThisValue=""; @True; @False)
残念なことその1 非表示式では使えません フィールドのプロパティにあっても 段落の非表示式です
残念なことその2 古くからのDBのバグを修正するとき フィールド名間違い Sales_3 と @ThisValue のどちらに直す?
残念なことその2 古くからのDBのバグを修正するとき いっそ、 全部のフィールドの式を @This~に直したい衝動にかられます
もうひとつ、 @ThisName のほうは いまいち利用しづらい というのもありますが これはまた機会があれば
@Failureな 雑談
これまでも出したように @Failure といえば 編集可能なフィールドの 「入力の確認」で @Successと組み合わせて こんなふうに使用されます
ところで、前2回を通じて • @All、@True、@Yes、@Success は 数値の1である • @False、@No は 数値の0である というお話をさせていただきました
つまり…こんな感じ 要するに、 1 要するに、 0 @All @True @False @Yes @No @Success
@Trueと@False、 @Yesと@Noは、対で使われますが 1 0 @All @True @False @Yes @No @Success
では、 @Successと対で使われる@Failureも 値は0なの? 1 0 @Success @Failure
そこで、 ヘルプに「@Failure は入力確認式のみで使用します。」とあるのを無視して 計算結果のフィールド値として @Failureを指定してみます
文書を作成するとこうなりました @Failureで指定したメッセージが そのまま@Failureの戻り値に。 0が返るわけではないようです ここで、ある疑問がわき、
この入力確認式だと、 文書保存時にこんな警告が出るわけですが
入力確認式、こうしちゃうと、 文書保存時に警告… 出たっ!
いくつか試してみると どうやら入力確認式は、 戻り値が数値なら保存OK 戻り値が文字列だと保存NGで その文字列が警告メッセージになる @Success、@Failure どちらも使わずとも機能するようです
実はヘルプを見直すと こんなことが書かれていました IBMさんのヘルプ これだけ読んでもぴんときませんね… 今回はじめて 意味が分かった気がします
今回もありがとうございました!