SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
@
@
-notes knows community- 2021/12/09
阿部 覚 (tw:) @abesat
@関数Talk
第33回 公開版
@
@
@PickListについては2回お話して
一通り引数の紹介を(いちおう)したのですが
まだ確認したいことがあるなと思い、
@
@
@PickList
でもうちょっと放談
@
@
@PickList でビューを表示
@PickListの一番メジャーな使い方、と私が思っている
ビューから文書を選択する[Custom]パターンについて
@
@
@PickList でビューを表示
選択した文書の、指定した列の値をとってきてくれる
取ってくるのは
取ってくるのは
1
1列目 だよ
列目 だよ
@
@
@PickList で複数項目をゲットするには
しかし、どうせ取ってきてくれるなら
複数の項目をいっぺんに取ってきてくれないものかな?
@
@
@PickList で複数項目をゲットするには
@PickList 単体では、そういう融通はきかないようです
例えばこんな指定をしてもだめ
式はエラーにはならないけど、
1つ目の列番号分しか取り出してくれませんでした
取ってくるのは
取ってくるのは
1
1列目と
列目と2
2列目だよ
列目だよ
(
(希望
希望)
)
@
@
複数項目を取得するためのアプローチ
したがって、@PickListを使って複数の項目を取り出すには
多少の工夫を加える必要が生じます
工夫のしかたには、
おもに2つのアプローチがあると思います
いずれのアプローチも、
@PickListに使用するビューで
「非表示の列」を持つのが無難なやり方です
ここでの「非表示の列」とは
「列」プロパティの「詳細」タブで
「列を非表示」にチェックしたものを意味します
@
@
複数項目を取得するためのアプローチ その1
アプローチその1
1つの列に複数項目を寄せ集める
対象のビューに非表示の列を設定します
その列に、取得したい複数の項目の値を連結で持たせます
@
@
アプローチその1 1つの列に複数項目を寄せ集める
どのように連結するかは例えば…👇
@
@
アプローチその1 1つの列に複数項目を寄せ集める
@PickListでは、この非表示列を取得します
ここでは取得した値を
@Wordという関数で分割して
セットしています
(この関数のTalkはまたの機会に)
@
@
アプローチその1 1つの列に複数項目を寄せ集める
この方法には次のような制約・欠点があると思います
1.対象項目の属性を
一時的に統一しなくてはならない
数値や日時のフィールド項目も、
一時的にテキストにそろえないと
式がエラーになってしまいます
@
@
アプローチその1 1つの列に複数項目を寄せ集める
この方法には次のような制約・欠点があると思います
2.複数値の項目が含まれるなら単一値になるように
連結するなどの工夫が必要
ここでは@Implodeという関数を使って
連結しています
(この関数についてのTalkもまたの機会に )
😅
@
@
アプローチその1 1つの列に複数項目を寄せ集める
この方法には次のような制約・欠点があると思います
3.項目を連結する際の連結文字に注意が必要
たとえば"-"でつなぐとすれば、
対象フィールド内に"-"が含まれていない必要があります
でもユーザーが自由入力してよいフィールド項目なら、
どんな文字が入っている可能性も
排除できないとも思います(いちばんの悩みどころ)
@
@
複数項目を取得するためのアプローチ その2
アプローチその2
@PickListは、文書の特定だけに使う
やはり対象のビューに非表示の列を設定します
@
@
アプローチその2 @PickListは、文書の特定だけに使う
@PickListでは、この非表示列を取得します
すなわち、取得されるのは文書IDになるのですが
複数項目の取り出しは
この文書IDを使って別の式で行います
そこで一つ、確認ごとを挟みます
@
@
@GetDocField
で放談
@
@
@GetDocField( 文書ID ; フィールド名 )
こんな構文で
指定した文書からフィールド値を取り出す関数です
@GetDocField
@
@
@PickList で、選択した文書の文書IDを取り出した後、
@GetDocField では、文書IDを使って
複数のフィールド項目値を取り出すことができるわけです
@PickListと@GetDocField
@
@
アプローチその2 @PickListは、文書の特定だけに使う
さて、"XSnippets" というサイトに
@PickList を使った類似のサンプルがあります
https://www.xpages.jp/XSnippetsJ.nsf/
@
@
アプローチその2 @PickListは、文書の特定だけに使う
@
@
このサンプルでは、@Picklistで取得した文書IDを元に、
文書ID順のビュー(view02)から@DbLookupで
値を取得しています
アプローチその2 @PickListは、文書の特定だけに使う
value_a := @GetDocField( unid ; "Field_A" );
value_b := @GetDocField( unid ; "Field_B" );
value_c := @GetDocField( unid ; "Field_C" );
@GetDocField を使えば、こんな感じの式だけで良く
文書ID順のビューなんて要らないよ…?
@
@
実は、@GetDocField は、一度実行するだけで文書全体を読み込む
現時点ではあまりパフォーマンスがよろしくない関数
なのだそうです
<関連情報>
Performance Design Tips : @GetDocField 関数 | Lotus Notes/Domino (R) をこよなく愛して。。。。
https://ameblo.jp/iwama/entry-10002063621.html
GetDocField の処方箋
https://speakerdeck.com/harunakano/getdocfield-falsechu-fang-jian
@GetDocField の現状…
value_a := @GetDocField( unid ; "Field_A" );
value_b := @GetDocField( unid ; "Field_B" );
value_c := @GetDocField( unid ; "Field_C" );
1
1回で取れる
回で取れる
フィールド項目値は
フィールド項目値は
ひとつ分だけ
ひとつ分だけ
なのに…
なのに…
モッタイナイ
モッタイナイ
この例では
この例では
文書全体を
文書全体を
3
3回読み込む
回読み込む
😮
😮
こちらは実は、今回の「のの会」後の中野さん調査
@
@
今回触れた方法をまとめるとこんな感じになります
@PickList を使用して複数項目を取得するには
方法 留意点
1つの列に複数項目を寄せ集める 項目の属性を統一しなくてはならない
複数値の項目は連結するなどの工夫が必要
項目を連結する際の連結文字に注意
@PickListは、文書の
特定だけに使う
文書IDをもとに
@GetDocFieldを
項目数分実施
現状では@GetDocFieldのパフォーマンスに課題、
都度文書全体を読み込んでしまう
文書IDをもとに
@DbLookupを
項目数分実施
文書ID順の専用ビューも準備が必要
@
@
スライド中で触れたXSnippets(日本語版)は
Notes/Domino 関係のサンプルコードを集めたサイトです
(現時点で式言語のサンプルはわずかですが)
https://www.xpages.jp/XSnippetsJ.nsf/
公開にあたって当初発表時に無かったページ等を追加させていただきました
補足
@
@
今回もお付き合い
ありがとうございました 😀

Más contenido relacionado

Más de Satoru Abe

202011 のの会@関数Talk 26th functiontalkinnotesknowsworkshop26th
202011 のの会@関数Talk 26th functiontalkinnotesknowsworkshop26th202011 のの会@関数Talk 26th functiontalkinnotesknowsworkshop26th
202011 のの会@関数Talk 26th functiontalkinnotesknowsworkshop26thSatoru Abe
 
202010 のの会@関数Talk 25th functiontalkinnotesknowsworkshop25th
202010 のの会@関数Talk 25th functiontalkinnotesknowsworkshop25th202010 のの会@関数Talk 25th functiontalkinnotesknowsworkshop25th
202010 のの会@関数Talk 25th functiontalkinnotesknowsworkshop25thSatoru Abe
 
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-workshopSatoru Abe
 
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-workshopSatoru Abe
 
202007 のの会@関数Talk 22nd functiontalkinnotesknowsworkshop22nd
202007 のの会@関数Talk 22nd  functiontalkinnotesknowsworkshop22nd202007 のの会@関数Talk 22nd  functiontalkinnotesknowsworkshop22nd
202007 のの会@関数Talk 22nd functiontalkinnotesknowsworkshop22ndSatoru Abe
 
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-workshopSatoru Abe
 
202003 functiontalkinnotesknowsworkshop20th
202003 functiontalkinnotesknowsworkshop20th202003 functiontalkinnotesknowsworkshop20th
202003 functiontalkinnotesknowsworkshop20thSatoru Abe
 
202002 のの会@関数Talk 19th @function-talk-in-notesknows-workshop
202002 のの会@関数Talk 19th @function-talk-in-notesknows-workshop202002 のの会@関数Talk 19th @function-talk-in-notesknows-workshop
202002 のの会@関数Talk 19th @function-talk-in-notesknows-workshopSatoru Abe
 
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 Satoru Abe
 
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 公開版Satoru Abe
 
201912 のの会@関数Talk 18th
201912 のの会@関数Talk 18th201912 のの会@関数Talk 18th
201912 のの会@関数Talk 18thSatoru Abe
 
201911 のの会@関数Talk 17th @function-talk-in-notesknows-workshop
201911 のの会@関数Talk 17th @function-talk-in-notesknows-workshop201911 のの会@関数Talk 17th @function-talk-in-notesknows-workshop
201911 のの会@関数Talk 17th @function-talk-in-notesknows-workshopSatoru 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
 
201910 のの会@関数Talk 16th
201910 のの会@関数Talk 16th201910 のの会@関数Talk 16th
201910 のの会@関数Talk 16thSatoru Abe
 
201908 のの会@関数Talk 15th
201908  のの会@関数Talk 15th201908  のの会@関数Talk 15th
201908 のの会@関数Talk 15thSatoru Abe
 
201907 のの会@関数Talk 14th
201907  のの会@関数Talk 14th201907  のの会@関数Talk 14th
201907 のの会@関数Talk 14thSatoru Abe
 
201906 のの会@関数Talk 13th
201906  のの会@関数Talk 13th201906  のの会@関数Talk 13th
201906 のの会@関数Talk 13thSatoru Abe
 
201905 のの会@関数Talk 12th
201905  のの会@関数Talk 12th201905  のの会@関数Talk 12th
201905 のの会@関数Talk 12thSatoru Abe
 
201904 のの会@関数Talk 11th
201904  のの会@関数Talk 11th201904  のの会@関数Talk 11th
201904 のの会@関数Talk 11thSatoru Abe
 
201903 のの会@関数Talk 10th
201903 のの会@関数Talk 10th201903 のの会@関数Talk 10th
201903 のの会@関数Talk 10thSatoru Abe
 

Más de Satoru Abe (20)

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
 
202002 のの会@関数Talk 19th @function-talk-in-notesknows-workshop
202002 のの会@関数Talk 19th @function-talk-in-notesknows-workshop202002 のの会@関数Talk 19th @function-talk-in-notesknows-workshop
202002 のの会@関数Talk 19th @function-talk-in-notesknows-workshop
 
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 公開版
 
201912 のの会@関数Talk 18th
201912 のの会@関数Talk 18th201912 のの会@関数Talk 18th
201912 のの会@関数Talk 18th
 
201911 のの会@関数Talk 17th @function-talk-in-notesknows-workshop
201911 のの会@関数Talk 17th @function-talk-in-notesknows-workshop201911 のの会@関数Talk 17th @function-talk-in-notesknows-workshop
201911 のの会@関数Talk 17th @function-talk-in-notesknows-workshop
 
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...
 
201910 のの会@関数Talk 16th
201910 のの会@関数Talk 16th201910 のの会@関数Talk 16th
201910 のの会@関数Talk 16th
 
201908 のの会@関数Talk 15th
201908  のの会@関数Talk 15th201908  のの会@関数Talk 15th
201908 のの会@関数Talk 15th
 
201907 のの会@関数Talk 14th
201907  のの会@関数Talk 14th201907  のの会@関数Talk 14th
201907 のの会@関数Talk 14th
 
201906 のの会@関数Talk 13th
201906  のの会@関数Talk 13th201906  のの会@関数Talk 13th
201906 のの会@関数Talk 13th
 
201905 のの会@関数Talk 12th
201905  のの会@関数Talk 12th201905  のの会@関数Talk 12th
201905 のの会@関数Talk 12th
 
201904 のの会@関数Talk 11th
201904  のの会@関数Talk 11th201904  のの会@関数Talk 11th
201904 のの会@関数Talk 11th
 
201903 のの会@関数Talk 10th
201903 のの会@関数Talk 10th201903 のの会@関数Talk 10th
201903 のの会@関数Talk 10th
 

202112 のの会@関数Talk 33rd FunctionTalkInNotesKnowsWorkshop33rd