>100 Views
May 11, 18
スライド概要
Notes/Dominoの@関数を取り上げながら、調べたこと、経験したことを雑談してゆこうと思います。
第2回は @IsNewDoc・@WindowTitle・@Now について
-notes knows community- 2018/05/09 ネオアクシス株式会社 阿部覚 (tw:) @abesat
前回=初回の「おためし篇」では、 どんな関数を扱うかは@Randomです、 と申しました。 とはいえ、何か取り上げ方の物差しがないと、 節操がなさそうな ネタ切れもおきそうな予感がしていますが、 現時点では、今回も@Randomです。(汗)
の雑談
IBMさんのヘルプ つまりは 「新規作成中の文書かどうか」を 表す関数ですね
ヘルプでの用例は いずれもウィンドウタイトル式ですが
私がとくに @IsNewDocの使用をおすすめしたいのは たとえば 「作成時の計算結果」フィールドです。
IBMさんのヘルプ 「作成時の計算結果」? そもそも作成時しか動かないのに @IsNewDocで 「作成時かどうか」を みる意味があるの?
問題は、そのフィールドが 既存アプリケーションに あとから改修で追加されたもので ある場合です。
(例)今までなかったけど、今度から 文書作成者の現所属部署も表示することにしよう! 後から追加した作成時の計算結果 作成者の所属を自動で出すような式が この部分にあるとお考え下さい 古い文書には、もともと入ってない所属は 新たに計算・表示しないようにします。
IBMさんのヘルプ ヘルプには、便宜上こう書かれていますが 作成時の計算結果は、正確には 「フィールドが初めて生成された場合に計算を実行」 するものと考え、既存アプリに追加する場合には 注意してください。 編集可能フィールドを後から追加する場合も 「デフォルトの式」や「入力の確認」で @IsNewDocによるチェックが意味を持ちます。
の雑談
IBMさんのヘルプ 要するに、これを返す関数ですね!
私が云いたいこと: @DbTitleは、 使えるところでは積極的に使いましょう 私がよく使う箇所 ・ウィンドウタイトルの式 ・ナビゲーション
と、いうのは、 古くからNotes/Dominoを使用している 環境では こういう残念なアプリを時々見かけるからです。 オモテの名前と 中の名前が違うよ!
原因は: ナビゲーション上のページでは ”××チーム掲示板”を値で指定していた 後から利用者がDBプロパティ上で タイトルだけ変更
こんな状況を予防するためにも 設計内で「アプリの名前」を指定する箇所では 直接アプリ名を書くよりも なるだけ@DbTitleをご活用ください。
@Nowは、現在の日時を返す関数ですが Notes/Domino 6から パラメータが追加になっています。
IBMさんのヘルプ
パラメータを使うと、 サーバーの時間を返すことができます。 パラメータを使わなければ、 セットされるのはローカルコンピュータ、 つまりは手元のパソコンの時間です。 (できれば逆にしてほしかった…)
よく考えると日付を返す3つの関数には このパラメータはありません。 昨日を返す 今日を返す 明日を返す @Yesterday @Today @Tomorrow それぞれのヘルプにはこんなことが書かれています。 IBMさんのヘルプ
したがって、もし 昨日・今日・明日の値を どうしてもサーバーから取得したい場合は (PCの時間を不正に変更して文書の時間をごまかす いたずらを断固防止したい場合は) @Nowを代わりに使った式を組み立てる必要が ありそうです。 その式についてはまたの機会に…
ということで、今回も ありがとうございました!