2025/01/14

作ってみよう:#27)スマート名刺管理 - Nomad 用フレームセットの作成

前回までで Nomad 用の部品が完成したので、これらを組み合わせてアプリとして仕上げます。


メインフレームセットの作成

まず、Nomad 用アプリのメイン画面となるフレームセットを作成します。上下 2 分割とし、上にヘッダーとしてタイトルを表示します。


◇ フレームセットの設定

名前 mfsMain
タイトル @DbTitle


◇ フレームの設定

フレーム 名前 内容 補足
mfrmTitle pTitle ページ
mfrmForm m02.会社名別 フォーム

作成した各フレームのスクロールは ”オフ” にしておきます。


フォーム用のフレームセット作成

Nomad でフォームを開くと上下だけでなく、左右にもスクロールすることがあります。少々使いづらいので、フレームセットを使ってスクロールを止める設定を行います。

1 フレームだけのフレームセットを新規で作成します。


◇ フレームセットの設定

名前 mfsNameCard
タイトル @DbTitle


◇ フレームの設定

フレーム 名前 内容 補足

mfrmForm (設定不要) スクロールは ”オフ” 


Nomad 用フォームの修正

フォームを開くと、先ほど作成したフレームセット内に表示されるように設定します。

m01.名刺管理 フォームのプロパティ、[起動]タブの自動フレームを以下のように設定して保存してください。


UI 切り替えフレームセットの作成

今回 Nomad 用のフレームセット mfsMain を追加しました。ノーツクライアント用のフレームセットも存在します。ということは、アプリを開いたクライアントに応じて、開くフレームセットを切り替える必要があります。

この連載で前回のアプリ「お小遣い帳」を作成したときには、初期表示するページが開くタイミングで LotusScript を使って切り替える方法を紹介しました(#11)お小遣い帳 - Nomad とノーツクライアントの併用)。この記事に対して Miyo HCL Ambassador から『フレームセットの計算式でもできる』とステキな助言をいただきました。そこで、今回はこの方法にチャレンジします(Miyo-san の意図通りの方法かは確認はできていませんが...)。


新規で 1 フレームだけのフレームセットを作成し、フレームの内容を式で指定します。


◇ フレームセットの設定

名前 fsUISwitcher
タイトル @DbTitle


◇ フレームの設定

名前 frmSwitcher
内容 - 種類 名前付き設計要素
フレームセット
値(計算式) @If(@Contains(@Platform([Specific]); "iOS":"Android"); "mfsMain"; "fsMain")


起動画面の設定

最後にデータベースのプロパティを開き、起動画面を fsUISwitcher フレームセットに変更します。

これで、作業は完了です。


動作検証

Nomad から開いて、動作検証をします。以下の動画は、このシリーズの最初に添付したものですが、こんな感じで動作していたら成功です。

添付ファイルだけでなく、名刺の写真を撮影して画像で貼り付けたり、カメラロールから添付したり、さまざまな方法で試してみましょう。


トラブルの対処

最後に、今回のアプリの Nomad 実行時に起こりそうなトラブルについてまとめます。


◇ エージェントが実行されない

[名刺読込]ボタンを押してもエージェントが実行されないことがあります。これは、エージェントのプロパティのセキュリティレベルの設定で解決します。下図の通り 2 または 3 に設定しましょう。


◇ RunOnServer 実行時のエラー

[名刺読込]ボタンでは別のエラーが出ることがあります。

このエラーはエージェントの署名者(設計要素の最終更新者)がサーバでエージェントの実行権限がない場合に発生します。

対応には、サーバ文書のセキュリティ設定が必要です。サーバ管理者に連絡して権限を変更してもらうか、権限があるユーザ ID でエージェントを署名しましょう。


おわりに

『スマート名刺管理』いかがでしたか?

Nomad モバイルとノーツクライアントとのハイブリッドアプリを WebAPI 連係(GPT4o API)、DXL などノーツアプリ開発のさまざまな機能を組み合わせて実現しました。守備範囲が広く、自由度が高く、懐が深いところが Notes/Domino の魅力ですよね。

紹介したアプリは名刺管理としては基本機能しかありません。自社の要件に応じて、カスタマイズして、活用いただけたらと思います。

なお、今回の記事では、作成者フィールドを作成していません。よって、一般利用者の ACL は編集者以上となります。他のユーザの名刺情報の取り扱いについて制限したい場合には、作成者フィールドや読者フィールドを活用ください。

前回 作ってみよう


0 件のコメント:

コメントを投稿