SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
@
@
-notes knows community- 2019/10/16
ネオアクシス株式会社 阿部覚
(tw:) @abesat
@関数Talk
第16回 公開版
@
@
前回に引き続き、
@DbColumn, @DbLookupを
お話ししたいと思います
まずは前回のおさらい…
👉 https://www.slideshare.net/abesat/201908-talk-15th
@
@
前回、使用したサンプルフォームを
引き続き説明に用います
前回に引き続き、
@DbColumn, @DbLookupを
お話ししたいと思います
@DbColumnや@DbLookupを使った式
式の結果を表示する
表示用の計算結果フィールド
@
@
@DbColumn, @DbLookupの
引数について駆け足で触れましたが
前回残していた@DbLookupの
keywords部分について軽く確認
でも、その前に予備知識として…
@DbColumn
( class : cache ;
server : database ;
view ;
columnNumber )
@DbLookup
( class : cache ;
server : database ;
view ;
key ;
columnNumber または fieldName ;
keywords )
@
@
@IsError
の雑談
@
@
そのまま「エラーだよ」関数と
覚えていただければよいのではないか
@If(@IsError(~); ~; ~)
@IsErrorに限らず、「@Is~」形式の@関数は、
●
戻り値は1か0。TrueかFalse、ないしはYesかNo
●
@Ifとセットで使用することが多いと思います
 @If(@Is~(~); ~; ~)
@
@
「エラー」って、具体的にはどういう状態?
@DBColumn、@DbLookupでも、
呼び方によっては「エラー」を返します
ここではあまり深く立ち入らないようにしますが
興味のある方はこちらをご参照
「(参考)@DBLookup および @DBColumn で出力される
エラーのリスト」
https://www.ibm.com/support/pages/(参考)dblookup-および-
dbcolumn-で出力されるエラーのリスト
※現時点でまだIBMさんのページですので、近い将来変わる可能性があります
@
@
「エラー」って、具体的にはどういう状態?
まずは「式が適切な戻り値を返せない状態」と考えましょう
たとえば、エラーが発生すると、
式がこんな戻り値になってユーザーさんが困惑します
生のエラー戻り値を表示せずに済ませたい場合に
前述の
@If(@IsError(~); ~; ~)
を使って対策します
@
@
@If(@IsError(~); ~; ~)
“もし、
  式がエラーの時には
    エラーの代わりにこの値を返して
      エラーがなければ普通の値を返して”
すなおに適用するとこうなります
一応動作しますが、あまりよくない例です
@
@
@If(@IsError(~); ~; ~)
“もし、
  式がエラーの時には
    エラーの代わりにこの値を返して
      エラーがなければ普通の値を返して”
@DbColumnが2回動くムダを防ぎます
@
@
と、前座的に
@IsErrorに触れたところで
少し趣向の違うことを
お話ししたいと思います
@
@
@DbColumn
@DbLookUp
で、私が引っかかってることを
とりあえず話してみる篇
@
@
ここで、私にとってのキーワードは
楔楔
柵柵
ないしは
です
くさび
しがらみ
@
@
@DBColumn,@DbLookupについて
私が一番気にしていること
とくにDBアプリ間で使用することで
「くさびを打ってしまう」こと
「しがらみを作ってしまう」と言い換えてもよい
B
A
@DbLookup(“”; B ...
@
@
ひとたび他所のDBアプリから@DBColumnされると
ビューの列順などをうっかりいじれなくなる
ひとたび他所のDBアプリから@DBLookupされると
ビューのソート順、列順などをうっかりいじれなくなる
あるいは、要らなくなったからといって
うっかりビューを消せなくなる
あるいは、要らなくなったからといって
うっかりアプリを消せなくなる
@
@
もしいじったり、消してしまうと…
こちらの
DBアプリ
こちらの
DBアプリ
ちわーっす
@DbLookupしたいんすけど
XXビューさん
いらっしゃいますかね?
他所の
DBアプリ
他所の
DBアプリ
え?、XXは
もう、居りませんけど
ERROR
ええーっつ!
(泣)
@
@
一番「他所のDBアプリから参照されそうな」存在
ドミノディレクトリには大量のビューがあります
@
@
一番「他所のDBアプリから参照されそうな」存在
ドミノディレクトリには大量のビューがあります
バージョンを重ねるうちに追加されてきた
これらのビューで将来、列が変動したり、
ビューが削除されることは、ほとんどないのでは
どのユーザーがどんなアプリから
参照しているか、わからないから
しかし、マスターである(参照されることが使命である)
アプリであれば、それでも良いのかも
@
@
@DbColumn, @DbLookup で
既存のビューを参照するときには
相手先のビューのことも考えて
設定してあげることが必要と思います
(特に、他DBアプリに対して行うとき)
逆に言うと、マスター側のDBアプリでは
あらかじめ計画し、汎用的に使える適切なビューを
用意しておけばよいと思います
@
@
こうした、
「しがらみをつくる」
「くさびをうつ」
性格を持つ関数
簡易言語である式言語では
@DbColumn, @DbLookup が唯一に近い
代表格かと思います
(スクリプト系には他にもありますが…)
使い込まれたNotes/Dominoが敬遠される
けっこう大きな要因の一つではないかと
この2つの関数や、
参照先のビューの設計・利用には
ある程度のプランが要るなと
感じる次第です
ご利用は計画的にご利用は計画的に♥ご利用は計画的にご利用は計画的に♥
@
@
さて、当初のお話に戻ります
前回残していた@DbLookupの
keywords部分について
@DbColumn
( class : cache ;
server : database ;
view ;
columnNumber )
@DbLookup
( class : cache ;
server : database ;
view ;
key ;
columnNumber または fieldName ;
keywords )
@
@
3種類ほどあるようですが
ポピュラーなのは[FAILSILENT]です
これを使うと
@
@
本来ならエラーになる式に
[FAILSILENT]がつくと、エラーは出なくなります
@
@
ゆえに「@IsErrorを使った式の代わりになる」と
思っていませんか(私もそう思っていました)
同じ?同じ?
@
@
しかし、よくよく確認すると、
[FAILSILENT]では、
すべてのエラーが消えるわけではありませんでした
ビューが存在しないためにエラー
DBアプリが存在しないためにエラー
@
@
エラーが隠れるのは あくまで
探索のキー値が見つからないとき
他のエラーは、状況により、むしろ表示すべきなのかも
だって、エラーを隠してしまうということは
前掲のような
「DBが無くなった」「ビューがなくなった」
という障害が発覚しないことを意味しますから
@IsErrorを使う式(すべてのエラーを帳消し)と、
うまく使い分けていただけたらと思います
@
@
ご清聴ありがとう
ございました!

Más contenido relacionado

Más de Satoru Abe

201910 テクてく☕カフェ| HCLだけに任せられるか! 我々の夢見る コラボ環境再創造Can we leave it to HCL only? Re...
201910 テクてく☕カフェ| HCLだけに任せられるか! 我々の夢見る コラボ環境再創造Can we leave it to HCL only? Re...201910 テクてく☕カフェ| HCLだけに任せられるか! 我々の夢見る コラボ環境再創造Can we leave it to HCL only? Re...
201910 テクてく☕カフェ| HCLだけに任せられるか! 我々の夢見る コラボ環境再創造Can we leave it to HCL only? Re...
Satoru Abe
 

Más de Satoru Abe (20)

202112 のの会@関数Talk 33rd FunctionTalkInNotesKnowsWorkshop33rd
202112 のの会@関数Talk 33rd FunctionTalkInNotesKnowsWorkshop33rd202112 のの会@関数Talk 33rd FunctionTalkInNotesKnowsWorkshop33rd
202112 のの会@関数Talk 33rd FunctionTalkInNotesKnowsWorkshop33rd
 
202111 のの会@関数Talk 32nd FunctionTalkInNotesKnowsWorkshop32nd
202111 のの会@関数Talk 32nd FunctionTalkInNotesKnowsWorkshop32nd202111 のの会@関数Talk 32nd FunctionTalkInNotesKnowsWorkshop32nd
202111 のの会@関数Talk 32nd FunctionTalkInNotesKnowsWorkshop32nd
 
202110 のの会@関数Talk 31st FunctionTalkInNotesKnowsWorkshop31st
202110 のの会@関数Talk 31st FunctionTalkInNotesKnowsWorkshop31st202110 のの会@関数Talk 31st FunctionTalkInNotesKnowsWorkshop31st
202110 のの会@関数Talk 31st FunctionTalkInNotesKnowsWorkshop31st
 
202107 のの会@関数Talk 30th FunctionTalkInNotesKnowsWorkshop30th
202107 のの会@関数Talk 30th FunctionTalkInNotesKnowsWorkshop30th202107 のの会@関数Talk 30th FunctionTalkInNotesKnowsWorkshop30th
202107 のの会@関数Talk 30th FunctionTalkInNotesKnowsWorkshop30th
 
202106 のの会@関数Talk 29th FunctionTalkInNotesKnowsWorkshop29th
202106 のの会@関数Talk 29th FunctionTalkInNotesKnowsWorkshop29th202106 のの会@関数Talk 29th FunctionTalkInNotesKnowsWorkshop29th
202106 のの会@関数Talk 29th FunctionTalkInNotesKnowsWorkshop29th
 
202101 LightningTalk in Tek-Tech Lotus
202101 LightningTalk in Tek-Tech Lotus202101 LightningTalk in Tek-Tech Lotus
202101 LightningTalk in Tek-Tech Lotus
 
202104 functiontalkinnotesknowsworkshop28th
202104 functiontalkinnotesknowsworkshop28th202104 functiontalkinnotesknowsworkshop28th
202104 functiontalkinnotesknowsworkshop28th
 
202101 のの会@関数Talk 27th functiontalkinnotesknowsworkshop27th
202101 のの会@関数Talk 27th functiontalkinnotesknowsworkshop27th202101 のの会@関数Talk 27th functiontalkinnotesknowsworkshop27th
202101 のの会@関数Talk 27th functiontalkinnotesknowsworkshop27th
 
202012 Volt開発をiPhoneで_tektech volt_develop_iphone
202012 Volt開発をiPhoneで_tektech volt_develop_iphone202012 Volt開発をiPhoneで_tektech volt_develop_iphone
202012 Volt開発をiPhoneで_tektech volt_develop_iphone
 
202011 のの会@関数Talk 26th functiontalkinnotesknowsworkshop26th
202011 のの会@関数Talk 26th functiontalkinnotesknowsworkshop26th202011 のの会@関数Talk 26th functiontalkinnotesknowsworkshop26th
202011 のの会@関数Talk 26th functiontalkinnotesknowsworkshop26th
 
202010 のの会@関数Talk 25th functiontalkinnotesknowsworkshop25th
202010 のの会@関数Talk 25th functiontalkinnotesknowsworkshop25th202010 のの会@関数Talk 25th functiontalkinnotesknowsworkshop25th
202010 のの会@関数Talk 25th functiontalkinnotesknowsworkshop25th
 
202009 のの会@関数Talk 24th @function-talk-in-notesknows-workshop
202009 のの会@関数Talk 24th @function-talk-in-notesknows-workshop202009 のの会@関数Talk 24th @function-talk-in-notesknows-workshop
202009 のの会@関数Talk 24th @function-talk-in-notesknows-workshop
 
202008 のの会@関数Talk 23rd @function-talk-in-notesknows-workshop
202008 のの会@関数Talk 23rd @function-talk-in-notesknows-workshop202008 のの会@関数Talk 23rd @function-talk-in-notesknows-workshop
202008 のの会@関数Talk 23rd @function-talk-in-notesknows-workshop
 
202007 のの会@関数Talk 22nd functiontalkinnotesknowsworkshop22nd
202007 のの会@関数Talk 22nd  functiontalkinnotesknowsworkshop22nd202007 のの会@関数Talk 22nd  functiontalkinnotesknowsworkshop22nd
202007 のの会@関数Talk 22nd functiontalkinnotesknowsworkshop22nd
 
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
 
202003 functiontalkinnotesknowsworkshop20th
202003 functiontalkinnotesknowsworkshop20th202003 functiontalkinnotesknowsworkshop20th
202003 functiontalkinnotesknowsworkshop20th
 
Tektek202002 NotesのローカルアプリをBoxに置くはなし - How to browse Notes databases in Box
Tektek202002 NotesのローカルアプリをBoxに置くはなし - How to browse Notes databases in Box Tektek202002 NotesのローカルアプリをBoxに置くはなし - How to browse Notes databases in Box
Tektek202002 NotesのローカルアプリをBoxに置くはなし - How to browse Notes databases in Box
 
201912 テクてくLT | Simple Bar Chart on Notes Client 公開版
201912 テクてくLT | Simple Bar Chart on Notes Client 公開版201912 テクてくLT | Simple Bar Chart on Notes Client 公開版
201912 テクてくLT | Simple Bar Chart on Notes Client 公開版
 
201910 テクてく☕カフェ| HCLだけに任せられるか! 我々の夢見る コラボ環境再創造Can we leave it to HCL only? Re...
201910 テクてく☕カフェ| HCLだけに任せられるか! 我々の夢見る コラボ環境再創造Can we leave it to HCL only? Re...201910 テクてく☕カフェ| HCLだけに任せられるか! 我々の夢見る コラボ環境再創造Can we leave it to HCL only? Re...
201910 テクてく☕カフェ| HCLだけに任せられるか! 我々の夢見る コラボ環境再創造Can we leave it to HCL only? Re...
 
201907 のの会@関数Talk 14th
201907  のの会@関数Talk 14th201907  のの会@関数Talk 14th
201907 のの会@関数Talk 14th
 

201910 のの会@関数Talk 16th