abOut.nsf

新旧かまわず、またお役立ち度にあまりこだわらずに、 拡張子がnsfであるNoSQLなデータベースファイルと、それを扱うコラボレーション製品に絡んでのあれこれを。

2024年4月に行われた「のの会(notes knows community) 第62回」でのスライドです。@関数Talk としては第55回。



知られていないようには思いますが、@Explode には、日付のリストを返すという機能もありましたので探ってみました。
いまいちピンと来ていないのが、どんな時にこの機能は役立つか?
実例などあればこっそり教えていただきたいところです。




2024年3月に行われた「のの会(notes knows community) 第61回」でのスライドです。@関数Talk としては第54回。



スライド冒頭のひとことは、内容についての伏線でもなんでもなく、Explodeというネーミングに関する単なるギモンです。分離する関数の名前が「バクハツ」? 
Implodeのほうも英語の意味をよく見ると、「
内破する、崩壊する」やはり穏やかじゃないですね。
関数の方は、平和に?法則に従って分離・結合しますが、2つの関数が一見対照的に見えて、そうでない部分もあることはスライドにて触れたとおりです。

2024年2月に行われた「のの会(notes knows community) 第60回」でのスライドです。@関数Talk としては第53回。



自分で忘れていましたが、前回に続いて @Text をトークしたのでした。
リッチテキストへの変換をねたに、第25回の時にちらと補足した @Abstract と比較させていただきました。
@Textでは、変換結果の先頭に改行が入る点、いまだに「なぜ?」と思っていますが、何か合理的な理由があるのかな。。もし気になる場合は@Abstractの方を使うか、2文字目からとるようにするかでしょうかね。。。

2024年1月「テクてくLotus技術者夜会」で行わせていただいた年初トークから。



式言語の代入「:=」って重ねれちゃうんだよという小ネタ。
触れているように、よくよく見るとヘルプにも載ってはいるのです。

なお、念のため。
スライドの式ではb、c、d、eのフィールドにセットしていて、一見、aが抜けてるように見えますが、aのフィールド上に記載された式なので、aにも結果の値がセットされるわけです。

2024年1月に行われた「のの会(notes knows community) 第59回」でのスライドです。@関数Talk としては第52回。



@Textの余談
何を文字に変換するか?
スライド中で触れたように、@Textについては、ずっと以前に
日時値からの変換を扱ったけど、いつか続きやんなきゃと思っておりました。この回で、数値からの変換をメインにトークさせていただきました。
なおほかに、第40回
@Textの少々イレギュラーな機能に触れております。
もう少し探れることがあるかな?機会があればまた。。

2023年11月に行われた「のの会(notes knows community) 第57回」でのスライドです。@関数Talk としては第51回。



特殊文字を返す関数って(前回Talkした関数の)ほかに何があったっけ、
と、確認したのですが、最後の関数だけ、特殊文字は返さない関数との判断になりました。

P.17のところを補足しますと、
おそらく正しい訳文は「文書またはカテゴリのレベルを表す文字列を返します。」じゃないかな、と思います。

2023年10月に行われた「のの会(notes knows community) 第56回」でのスライドです。@関数Talk としては第50回。


@DocSiblings の余談

エントリ数であって文書数とは必ずしも一致しないというお話をしました。
サンプルでの「好きな食べ物」カテゴリレベルのエントリ数は21、
ひとつの文書で複数の食べ物にチェックが入っている場合も、それぞれを1と数えています。
実際の文書数は11、カテゴライズしないビューでみるとこんな感じです。



2023年9月に行われた「のの会(notes knows community) 第55回」でのスライドです。@関数Talk としては第49回。



スライド中で、「わかりますよね」と書いてる部分、
2年後のいま見返して、作った自分が「わかんないよ!」となり、再理解するのに少々時間を要しました。

くり返しを承知でサンプルにのビューについて少しまとめますと、
・@DocChildren、@DocDescendants、@DocSiblings の順での
3列セット が4回並んでいる
・うち、1つ目, 4つ目(外側)のセットでは列の合計を使い、2つ目,3つ目(内側)のセットでは使わず
カテゴリ行ではカテゴリ列の右側(3つ目、4つ目)ではそもそも値が表示されない

といったかんじです。

2023年8月に行われた「のの会(notes knows community) 第54回」でのスライドです。@関数Talk としては第48回。



@For と、@While, @Dowhileのちがいって何?というと、
「変数に初期値を代入する」ための引数の場所と、
「変数をインクリメントする」ための引数の場所が、
初めから用意されている点かと思います。
先に条件を確認する点、@Whileの方が @Forに近いといえるかな…

それら引数は、この回まで検証した範囲では、状況により使う使わないの融通がある程度利きそうです。
ぐるぐるやりたくなったら(というか、開発の都合上必要になったら)、
どれを使うのがシンプルかなーを考えながら選択してくださいませ。

2023年7月に行われた「のの会(notes knows community) 第53回」でのスライドです。@関数Talk としては第47回。



@For / @While / @DoWhile の余談

前の回で触れた @For をきっかけに、くり返し系の 各関数を追いかけました。

当初の式言語には、これらのくり返し系の関数がありませんでした。
なぜ無いのという声の高まりを受けて、ようやくこれらの関数が加わったのはNotes Domino 6 から
出てきた 各関数の使い方 をみて、さほど使いもしないくせに、

とくに、@For で増分を自分で設定する点など
式言語にしては手が込んだ使い方を要求するなあと、違和感を覚えたものでした。

このシリーズの検証で、どうやら骨組みが見え、自分の中では違和感が改善されています。

それはそれとして…
@While は、@DoWhile と対になる関係だから、
関数名も @WhileDo にしておいた方が分かりやすかったんでは…?

2023年6月に行われた「のの会(notes knows community) 第52回」でのスライドです。@関数Talk としては第46回。




@Elements / @Count の余談
あとから生じた、ちょっとした疑問について。

@Elements のヘルプによれば
フィールド値が Null 文字列である場合は、@Elements(list) は数値 0 を返します。

対して @Count については、
評価する値がリストではない場合や Null 文字列の場合に 0 ではなく 1 を返す
 (英語ヘルプでは:  ~ returns 1 if the field value is a null string or not a list value )

気になったのが、評価する値がリストではない場合」の @Elements の動き
文脈からすると、0 を返すことになりそうなのですが、
でも、そもそも「リストではない場合」とは?

リストではないかもしれない、以下のような式を試してみました。

@Elements("a") (引数内が文字)
@Elements(1)
引数内が数値)
@Elements([2020/01/01]) 引数内が日付)

結果は、いずれも戻り値 1 でした。
が、これらは「リストではない」のではなく、要素が1つのリストなのかな。

だとすると、@Elementsで 0が返るような
Null以外の「リストではない」値
って、何がありうるの?

という疑問が残っている次第です。うーむ。

2023年5月に行われた「のの会(notes knows community) 第51回」でのスライドです。@関数Talk としては第45回。



@DocFields のおさらい

ヘルプには、ビュー上では機能しない旨が書かれていますが、
まるで機能しないわけではなく、
機能するけど、いま現在の状態と厳密正確には一致しない箇所があるよ、
という理解でよいかと思います。

一致しない対象は、どうやら$で始まる一部システムフィールドだけのようですので、
そこだけ踏まえて適宜利用いただければ。。



2023年4月に行われた「のの会(notes knows community) 第50回」でのスライドです。@関数Talk としては第44回。


@IsExpandableの余談

スライドを作った時点では気づけなかったのですが、現在公開されている@関数のヘルプには次の記述があります。

「この関数は現在廃止されていて、既存のアプリケーションとの互換性のためにのみ提供されています。代わりに、ビューの列プロパティ [展開できる行に三角アイコンを表示する] を有効にします。」

8.5以前の古いバージョンのヘルプにはこの記述はないです。
廃止されているけど提供、というのを、どう解すればいいのか悩ましいですが、今後の拡張や改善はないということでしょうね。

発表したように、戻り値が文字といいつつ実態が特殊です。
そうした例外的な動きをする関数はサポートしないということかな?と思いましたが、同様に特殊な @IsCategory のヘルプには、この廃止云々の記載は見当たらないです。

本当に廃止であるならば、スライドの P.7 で触れているシンプルファンクションの機能もなくしてよいのでは、と思いましたが、どうでしょう。。

2023年3月に行われた「のの会(notes knows community) 第49回」でのスライドです。@関数Talk としては第43回。



「@IsDocBeing」 で始まる5つの関数が成立するタイミングを比較しました。

いずれも、「@Is」で始まる関数の多くがそうであるように、それが成立するときは1を、しないときは0を返します。

@IsDocBeingSaved だけは画面が編集で開いてる間は成立しつづけるけど、
ほかの4関数は瞬間的にしか成立しない、といっていいかと。

また、@IsDocBeingSaved は、第5回でもTalkしたことがありました。
この時は具体的な使われ方について少し例をだしたのですが、
ほかの4つの、具体的な使用シーンについては、また機会があれば。。



2023年2月に行われた「のの会(notes knows community) 第48回」でのスライドです。@関数Talk としては第42回。


P.12の「M33-3-3」がぴんとこなかった方のために補足すると、「明治33年3月3日」です。
明治33年は西暦年としては1900年になります。
@TextToTime、@ToTimeは、元号表記を理解し「M」を「明治」と解釈し、西暦年で返してくれる次第です。
「M」を選んだのは私の嗜好によるので、業務で実際に使用するのは「H」や「R」でしょうけど。

元号の解釈は当然ながら日本語環境だけの機能と思われます。
(また、OSの地域設定とも関連しているのかもしれません)
日本語版のNotesクライアント上でも、
設定メニューの地域プロフィールを英語(USA)に変更したところ、
「M」を理解せず2033年にされてしまいました。

いずれ、日本語を前提としない環境下では期待通りに機能しないと思います。
(その代わり、それぞれの国・地域でのローカルな表記を吸収してくれるのかもしれませんが)


私称「レプリカID形式」については、前々回から続いているお話なのでこちらもご参照ください

@関数Talk 第40回(@NewLine と @Char、@ReplicaID)
@関数Talk 第41回(@Created、@Yesterday、@Today、@Tomorrowに、@Date)

2022年12月に、日本の HCL Ambassadors が主催のイベント "DominoHub 2022" に参加させていただきました。
セッションでは、この時点での「@関数Talk 」の"まとめ"を行いました。



2024年7月の現在から見て一昨年末時点でのまとめを公開してもどうか思います
が、ご参考程度で。
この時点での41回分のまとめでした。以降、2024年7月段階で57回になっておりますがまだ公開途上であります。。

なお、まとめといえば、「のの会」トップページにて、
公開済のトークを@関数名順に並べたインデックスを公開くださっていますので、よろしければこちらもご参照ください。

2022年11月に行われた「のの会(notes knows community) 第45回」でのスライドです。@関数Talk としては第41回。




見返してみると、先頭2桁は時間帯です、と書いているところ(P.18)が、少々不親切かなと思いました。

この場では「レプリカID形式」と私称しているコード値部分の先頭2桁は、時間を含む場合
その作られた場(地域)によって値が異なるわけです。

こちら、とあるビューに、見出し通りの式を設定したもの。
20240726TimeZone

1番目は日本で作られた文書
2番目はハワイで作られた文書
3番目はエジプトで作られた文書

と、こんな感じで、先頭2桁がそれぞれの地域の時間帯を表します。
(上の画像は疑似的なもので実際には、Windowsのタイムゾーン設定を変更しながら私が文書を作ったのですが)


Notes/Dominoの開発・改修を行う中で、わからないことはヘルプで調べよう、となったとき、
ネット上で日本語で見るなら、というお話になります。

結論から書きますと、2024年春の現時点で日本語で見られる最新に近いものは
ここ👇にあるもの、といえるかと思います。

HCL Domino Designer Basic 版 ユーザーガイドおよびリファレンス
https://www.hcljapan.co.jp/software/help/DominoDesigner/index1.html

こちらは、もともとはNotes/Domino 9 のヘルプをHCLさんが公開したものでした。

前回の作文でも書いたようにNotes/Dominoの現行バージョンは14なのですが、
9.0より後のバージョンのヘルプはまだ日本語がみあたらない状態です。

上記サイトが昨年公開された時点では純粋に9のヘルプだったのですが、
HCLの担当者さんが、最近になって一工夫加えてくださっているようです。

FPを含めた、以降のリリースについての追加更新機能の記事が、間に追加されており、
それらは「※」付きの見出しになっている、というのがいま時点での状態のようです。

たとえば、私は「@関数 Talk」をやってる関係で、この関数は?
と調べたいことがあります。

リンク先の左側のナビゲータをずーっとスクロールすると、
@関数のリファレンスにたどり着くことができ、
アルファベット順に並んでいる各関数の見出しの適切な位置に
「※」始まりで後続リリースでの差分の関数が追加されてるといった感じです。


また、ずーっとスクロールは面倒だよ、という場合は検索窓を使うと
Googleベースの検索が機能するようになりました。

完全な最新版というわけではありませんが、こうした日本のご担当者さんの工夫には敬意を表したいと思います。


(冒頭の新機能情報の「※」など、現時点では英語記事にリンクするものもあるようです)


なお、HCLさん自身のブログなどでの発表がまだないことから
もしかするとこのあたりの掲載の方式形態は今後変わるかもしれませんね。


こちらは2022年10月に行われた、テクてくLotus技術者夜会
"V12.0.2 (ベータ)から Nomad, Volt まで「Notes/Domino なんでも」大発表会"での私のトークです。



テクてくLotus側で以前から公開されているリプレイ動画もあります。
> https://register.gotowebinar.com/register/7139635200306268685
なぜか申込形式になっていますが必要事項を入れて「登録する」ボタンを押せば"大発表会"当日の動画を見れます。

2024年3月のいま、Notesの最新バージョンは14になっており(験担ぎで13を飛ばしたけど)、12のクライアントについて喋ったスライドをいまさら公開しなおす意味は薄いかもしれませんが。タイミングが遅れてもなるだけ時系列をまもりたい性格でして。。

ここではクライアントに実装されてたのに取り上げられたことがなさそうな「Windows検索」に着目しました。もし、みなさんのNotesメニューにこれが含まれていたら、意外につかえそうなのでお試しください。

2022年10月に行われた「のの会(notes knows community) 第44回」でのスライドです。@関数Talk としては第40回。




@ReplicaIDの余談(いや、 @Textの余談)

Dominoのシステムデータベースのひとつに、データベースカタログ(Catalog.nsf)があります。
ドメイン内のデータベース情報を格納するデータベース、ですね。
フォームにも、ビューにも、「レプリカID」という見出しの項目があります。
設計を見ると、どちらも入っている式はこうなっています。

@Text(ReplicaID,"*")

文書に保存された
ReplicaID フィールドを文書のプロパティでチェックすると、
データタイプが日時となっていて、たとえば

2011/05/16 13:38:45 ZE9

データベースの作成日時が入っておりました。
レプリカIDとは、つまるところ日時らしいぞ、と、私が気づいたきっかけが、
たまたまこんなふうに
Catalog.nsfの設計をチェックしたことでした。

もっとも、
レプリカIDが日時であることについては、既存のブログや技術記事で
以前から言及されておりますので、ご興味がある方は検索してご確認いただければ。

↑このページのトップヘ