みなさま、こんにちは!!
ゴールデンウィークも終ってしまいましたね。
弊社ではこの期間を利用し、本社事務所内の床の貼り替えと什器の入れ替えを行いました。
綺麗な事務所で、心機一転といきたいところですが、個人的にはすべて出勤でしたので、ちょっと疲れが・・・。
さて少しネタに困って参りましたので、ユニバーサルテンプレートの整備について、小出しにさせていただこうかと考えております。
そもそも弊社ではアクションボタンや、フォームのフィールド式を保存した「ライブラリ」というノーツデータベースがあり、設計要素をコピーして利用しておりました。
そんな中、昨年のノーツコンソーシアム 大阪研究会にてH様・・・先日公開しましたアプリケーション管理アプリをご紹介頂きました・・・よりまたしても、重要なヒントを頂いたものです。
H様がアプリケーションを新規作成する場合、必ずひとつのテンプレートから作成されるそうです。
そのテンプレートにはさまざまな設計要素が準備されており、コアな部分をそのまま流用するというものでした。
もちろんテンプレートの設計引継ぎは解除して作成することになります。
もっともテンプレートとして用意するか、設計要素をコピーするかの違いではありますが、先般の林様の「Cool で使いやすい Notes アプリデザイン講座」の要素も含めると、テンプレート化した方が使いやすいのではと感じた次第です。
ということで、ブログを書きつつも、実は実際にテンプレートを作りながらというところが現実の姿になります。
ですから、後々に修正や追加は当たり前のように生じることになるはずですので、ご了承ください。
それでは今回はフォームについてご紹介させて頂きます。
新規でアプリケーションを作成し、新規のフォームを作成します。(各名称は自由)
フォームのウィンドウタイトルに
@If(@IsNewDoc;"新規●● 作成中";タイトルフィールド名)
と入力します。
赤字部分を実際に構築するアプリケーションに合わせて変更することで、ウィンドウのタイトルを制御します。
新規作成時・・・「新規●●作成中」
既存文書時・・・「タイトルフィールド名」
とノーツクライアントのタブとウィンドウのタイトルに表示されます。
続いて一般ユーザーへの非表示の表を作成します。
こちらに設計内容等を記載しておくことで、後々の参考にすることができます。
ノーツコンソーシアムの研究会でも、なかなかアプリケーションのドキュメントが残せないという意見が多くありました。
フォーム上に残しておくことで、改めてドキュメントを作成する必要を回避するものになります。・・・こちらもH様より頂いた情報になります。
フォームの上部に表をひとつ作成し、色は表・文字ともにグレーにしています。
ロールで[DBMgr]に割り当たっている方のみ表示できるように設定しますので、プロパティの段落非表示タブにて、
[式により段落を非表示] にチェックし、式には
!(@UserRoles="[DBMgr]")
と記述します。
もちろんACLでロールに[DBMgr]を追加し、管理者には割り当てておく必要があります。
続いて実際に表示させる表を追加します。
デザイン要素は先に記載の通り、林様セッションの内容を加味したものとしております。
次にフィールドです。
主に使う要素として、
・デフォルト値
・入力の変換
・入力の確認
を設定してあります。
入力の変換の例として、
@Narrow("")
として入力された内容の半角化を行っています。もちろん他の@Wideで全角化も可能ですし、他の式でも使えます。
入力の確認としては、よく使用するブランクチェックとして以下の式を設定します。
@If(フィールド名="";@Failure("[フィールド]の指定は必須です。");@Success)
こちらも赤字部分の書き換えが必要です。
デフォルト値については、それ自体難しいものではありませんが、後日紹介予定のアクションとセットでnotes.iniへの値のやり取りを想定した設計を組み込んでおります。
YOMI=@Environment("ini_name");
@If(YOMI!="";YOMI;"")
この式そのものは、notes.ini 内の ini_name に値がなければブランクを、値があればその値をフィールドにセットするというものです。
続いてアクションバーのデザインを変更しておきます。
最後にフォームとは異なりますが、サブフォームにて登録日・登録者・編集日・編集者の情報をまとめております。
現在は以上となります。
プリビューでは以下のようになります。
実際に使用するには、赤字部分を修正し、内容に合わせた表組みにするなどが必要ですが、アプリケーション開始時にここまで組まれていると楽に進められるのに加え、設定ミスを防ぐことができます。
今後はビューやアクションなどについても同様に進めさせて頂きます。
ページビューの合計
2017年5月8日月曜日
2017年4月24日月曜日
VDI環境でのNotes構築について
みなさま、こんにちは!!
今回は、以前テクてく大阪でお話したような記憶もあるのですが、弊社内での仮想デスクトップ環境でのIBM Notesのインストールについて、ご紹介させて頂きます。
弊社が採用したのはVMware社 Horizon@6になります。
当初はE社の採用で動いていたのですが、ESXiの躯体をI社で採用が決定しており、I社がE社システムはサポート外との事でしたので、Horizon@6になったという経緯があります。
仮想デスクトップ環境の構築方法もいくつかありますが、弊社ではひとつのパターン(プールと呼ばれる、Cドライブ部分)を固定し、必要台数の仮想クライアントを展開するリンククローンと呼ばれる方式を採用しました。
個人のスペースは「移動プロファイル」という方式を使用し、サーバー内に各自のフォルダがあり、マイドキュメントやデスクトップ等、いわゆるC:\ユーザー\●●●の●●●部分をログオンスクリプトで割り当てています。
またディスクスペースについても、サーバー内に個別フォルダを準備し、Uドライブを割り当てて使用しています。
メリットとしては、プールの元となるテンプレートのメンテナンス(例えばWindows Updateなど)を実施したものを、全端末に適用できる点、及びCドライブ部分は共有されるため、ストレージサイズが少なくて済むという点があります。
デメリットとしては、メンテナンスを適用する度にCドライブがベースとなるプールのイメージになってしまうため、例えばウィンドウズやIEの設定関連でCドライブ内に保管されるものは、毎回リセットされてしまいます。
もちろんユーザーがインストールしたものも、Cドライブ(レジストリ含む)がリセットされるため、使えなくなります。
もっともこの点も端末管理という観点からはプラス要素であり、恥ずかしながら1台ランサムウェアに感染したのですが、即時ネットワークから隔離し、その端末だけを更新することで個人の端末設定は復旧。サーバーのファイル群もバックアップからのリストアでほとんど被害なく解消できました。
VMware様のプールに関しては、こちらが分かり易いかと思います。
さて本題のノーツのインストール手順です。
まずアプリケーションはテンプレート側のCドライブ内にインストールします。
この状態で仮想クライアントをデプロイします。
そこで問題になるのが、notes.iniの場所となります。
デフォルトではCドライブ配下に配置されるため、更新時にプールと同じnotes.iniにすべて戻されてしまいます。
これではIDファイルとの相関も外れ、使い物になりません。
そこでnotes.iniを先のUドライブ内にNotes(弊社の環境ではU:\Program Files\IBM\Notes)フォルダを作成し、その中のDataフォルダ内に初期のnotes.iniを保存します。
これにより、更新時もnotes.iniには一切変更は加えられません。
次にアプリケーションのショートカットのプロパティを変更します。
デスクトップにできたIBM Notesのショートカットを右クリックし、プロパティを開きます。
リンク先
“C:\Program Files\IBM\Notes\notes.exe” “=U:\Program Files\IBM\Notes\notes.ini”
作業フォルダー
“U:\Program Files\IBM\Notes\framework\”
に書き換えます。
これにより、notes.iniはUドライブ配下のものを利用してくれるようになります。
以降は一般的なノーツクライアントの立ち上げで完了します。
なお弊社の失敗事例として、VDI環境下ではノーツの「共有ログイン」機能は使用できません。
IBM様サイトには、
「共有ログインを有効にすると ID も変更されるため、共有ログイン機能を有効にしたコンピュータ上でしか使用できません。
という記述があります。
つまり仮想デスクトップ環境を更新すると、与えられるCドライブはまったく別のものと判断されるため、IDファイルが従来と異なる端末からアクセスされたと判断してしまいます。
以上、たいへん長くなりましたが、弊社仮想デスクトップ環境におけるIBM Notesのインストール手順について説明させて頂きました。
今回は、以前テクてく大阪でお話したような記憶もあるのですが、弊社内での仮想デスクトップ環境でのIBM Notesのインストールについて、ご紹介させて頂きます。
弊社が採用したのはVMware社 Horizon@6になります。
当初はE社の採用で動いていたのですが、ESXiの躯体をI社で採用が決定しており、I社がE社システムはサポート外との事でしたので、Horizon@6になったという経緯があります。
仮想デスクトップ環境の構築方法もいくつかありますが、弊社ではひとつのパターン(プールと呼ばれる、Cドライブ部分)を固定し、必要台数の仮想クライアントを展開するリンククローンと呼ばれる方式を採用しました。
個人のスペースは「移動プロファイル」という方式を使用し、サーバー内に各自のフォルダがあり、マイドキュメントやデスクトップ等、いわゆるC:\ユーザー\●●●の●●●部分をログオンスクリプトで割り当てています。
またディスクスペースについても、サーバー内に個別フォルダを準備し、Uドライブを割り当てて使用しています。
メリットとしては、プールの元となるテンプレートのメンテナンス(例えばWindows Updateなど)を実施したものを、全端末に適用できる点、及びCドライブ部分は共有されるため、ストレージサイズが少なくて済むという点があります。
デメリットとしては、メンテナンスを適用する度にCドライブがベースとなるプールのイメージになってしまうため、例えばウィンドウズやIEの設定関連でCドライブ内に保管されるものは、毎回リセットされてしまいます。
もちろんユーザーがインストールしたものも、Cドライブ(レジストリ含む)がリセットされるため、使えなくなります。
もっともこの点も端末管理という観点からはプラス要素であり、恥ずかしながら1台ランサムウェアに感染したのですが、即時ネットワークから隔離し、その端末だけを更新することで個人の端末設定は復旧。サーバーのファイル群もバックアップからのリストアでほとんど被害なく解消できました。
VMware様のプールに関しては、こちらが分かり易いかと思います。
さて本題のノーツのインストール手順です。
まずアプリケーションはテンプレート側のCドライブ内にインストールします。
この状態で仮想クライアントをデプロイします。
そこで問題になるのが、notes.iniの場所となります。
デフォルトではCドライブ配下に配置されるため、更新時にプールと同じnotes.iniにすべて戻されてしまいます。
これではIDファイルとの相関も外れ、使い物になりません。
そこでnotes.iniを先のUドライブ内にNotes(弊社の環境ではU:\Program Files\IBM\Notes)フォルダを作成し、その中のDataフォルダ内に初期のnotes.iniを保存します。
これにより、更新時もnotes.iniには一切変更は加えられません。
次にアプリケーションのショートカットのプロパティを変更します。
デスクトップにできたIBM Notesのショートカットを右クリックし、プロパティを開きます。
リンク先
“C:\Program Files\IBM\Notes\notes.exe” “=U:\Program Files\IBM\Notes\notes.ini”
作業フォルダー
“U:\Program Files\IBM\Notes\framework\”
に書き換えます。
これにより、notes.iniはUドライブ配下のものを利用してくれるようになります。
以降は一般的なノーツクライアントの立ち上げで完了します。
なお弊社の失敗事例として、VDI環境下ではノーツの「共有ログイン」機能は使用できません。
IBM様サイトには、
「共有ログインを有効にすると ID も変更されるため、共有ログイン機能を有効にしたコンピュータ上でしか使用できません。
このような仕様になっているのは、コンピュータごとの
Windowsセキュリティインフラストラクチャに依存した機能であるためです。」
という記述があります。
つまり仮想デスクトップ環境を更新すると、与えられるCドライブはまったく別のものと判断されるため、IDファイルが従来と異なる端末からアクセスされたと判断してしまいます。
以上、たいへん長くなりましたが、弊社仮想デスクトップ環境におけるIBM Notesのインストール手順について説明させて頂きました。
2017年4月17日月曜日
検証・・・文書のロックについて
皆様、こんにちは!
神戸は先ほどから雨が降り始めました。おそらくサクラも散ってしまうことでしょう。
個人的には土曜日に造幣局の通り抜けに行けましたので、結構満足してます!
それはそうと、先週からノーツコンソーシアムのさまざまな研究会がスタートしています。
私が参加しているのは、【ザ・ノーツ研究会】と【大阪研究会】です。
研究会の詳細は省略させて頂きますが、会員外の方でも見学できるかと思いますので、ご興味ある研究会ございましたら、事務局までお問い合わせください。
さて本日は以前から個人的に疑問であった「文書のロック」について、少し検証してみましたので報告させて頂きます。
「文書のロック」は、データベースのプロパティで設定可能な項目で、複数人で使用するようなデータベースで、ひとりが使用していると排他処理されるという機能になります。
ノーツクライアントですと、他の方が編集モードで開いていると以下のようなダイアログが表示され、編集モードに移ることができません。
私の疑問であったのは、ブラウザとノーツクライアントでどのような挙動をするのかという点になります。
それでは実際のテストです。
先日「既存アプリの最短Xpages化」でご紹介しました日報アプリに少し手を加え、ビューから文書を開いた際に
ターゲット文書:文書の編集
とし、フォームに「保存」ボタンを配置したものを使用致します。
テストの前に、それぞれロックされていない状態での編集に問題ないことは確認しました。
結論は開くことができました。
見事、【競合文書】になりました。
こちらはブラウザで保存しようとすると、下記のようなエラーが表示されました。
もちろんノーツクライアント側のロックを解除すると、問題なく保存することができました。
こちらも開くことはできました。
テスト2同様、【競合文書】ができました。
こちらは先と違い、【競合文書】ができました。
だらだらと書きましたが、まとめると
●いずれも同時に編集モードで開くことは可能である。
●ノーツクライアントが先にロックした場合
・ノーツクライアントが先に保存 ⇒ 競合文書ができる
・ブラウザが先に保存 ⇒ 予期しないエラーが出る
●ブラウザが先にロックした場合
・ノーツクライアントが先に保存 ⇒ 競合文書ができる
・ブラウザが先に保存 ⇒ 競合文書ができる
となります。
結論だけ見ると、想像した通りの結果ではないかと感じました。
個人的には編集モードに入る手前で止まってくれると嬉しかったのですが、そう甘くはないようです。
但し、条件がはっきりしましたので、ノーツクライアントとブラウザ両方でアクセスするようなアプリケーションを稼動させる場合のヒントにはなったかと思います。
なお文書ロックに関しては、日本IBM様サイトにて【Lotus Notes/Domino 文書ロックの仕組みFAQ】として詳しく紹介されておりますので、参考になさってください。
どういう理由か検証していませんが、ロックが解除されないという事例がありました。
その際の対処方などもこちらに記載されております。
またXpagesでの設定事例については、IBMチャンピオンである御代様のブログでも、【XPagesで文書のロックをやってみよう!】にて紹介がございますので、こちらもご覧ください。
最後までお付き合い、ありがとうございました。
神戸は先ほどから雨が降り始めました。おそらくサクラも散ってしまうことでしょう。
個人的には土曜日に造幣局の通り抜けに行けましたので、結構満足してます!
それはそうと、先週からノーツコンソーシアムのさまざまな研究会がスタートしています。
私が参加しているのは、【ザ・ノーツ研究会】と【大阪研究会】です。
研究会の詳細は省略させて頂きますが、会員外の方でも見学できるかと思いますので、ご興味ある研究会ございましたら、事務局までお問い合わせください。
さて本日は以前から個人的に疑問であった「文書のロック」について、少し検証してみましたので報告させて頂きます。
「文書のロック」は、データベースのプロパティで設定可能な項目で、複数人で使用するようなデータベースで、ひとりが使用していると排他処理されるという機能になります。
ノーツクライアントですと、他の方が編集モードで開いていると以下のようなダイアログが表示され、編集モードに移ることができません。
私の疑問であったのは、ブラウザとノーツクライアントでどのような挙動をするのかという点になります。
それでは実際のテストです。
先日「既存アプリの最短Xpages化」でご紹介しました日報アプリに少し手を加え、ビューから文書を開いた際に
ターゲット文書:文書の編集
とし、フォームに「保存」ボタンを配置したものを使用致します。
テストの前に、それぞれロックされていない状態での編集に問題ないことは確認しました。
テスト1:ノーツクライアントで「編集モード」で開いた文書をブラウザの編集モードで開くことができるか。
結論は開くことができました。
テスト2:テスト1でノーツクライアントで編集保存後、ブラウザで編集保存するとどうなるか。
見事、【競合文書】になりました。
テスト3:逆にブラウザで編集保存後、ノーツクライアントで編集保存するとどうなるか。
こちらはブラウザで保存しようとすると、下記のようなエラーが表示されました。
もちろんノーツクライアント側のロックを解除すると、問題なく保存することができました。
テスト4:ブラウザで編集モードで開いた文書をノーツクライアントで開くことができるか。
こちらも開くことはできました。
テスト5:テスト4でノーツクライアントで編集保存後、ブラウザで編集保存するとどうなるか。
テスト2同様、【競合文書】ができました。
テスト6:逆にブラウザで編集保存後、ノーツクライアントで編集保存するとどうなるか。
こちらは先と違い、【競合文書】ができました。
だらだらと書きましたが、まとめると
●いずれも同時に編集モードで開くことは可能である。
●ノーツクライアントが先にロックした場合
・ノーツクライアントが先に保存 ⇒ 競合文書ができる
・ブラウザが先に保存 ⇒ 予期しないエラーが出る
●ブラウザが先にロックした場合
・ノーツクライアントが先に保存 ⇒ 競合文書ができる
・ブラウザが先に保存 ⇒ 競合文書ができる
となります。
結論だけ見ると、想像した通りの結果ではないかと感じました。
個人的には編集モードに入る手前で止まってくれると嬉しかったのですが、そう甘くはないようです。
但し、条件がはっきりしましたので、ノーツクライアントとブラウザ両方でアクセスするようなアプリケーションを稼動させる場合のヒントにはなったかと思います。
なお文書ロックに関しては、日本IBM様サイトにて【Lotus Notes/Domino 文書ロックの仕組みFAQ】として詳しく紹介されておりますので、参考になさってください。
どういう理由か検証していませんが、ロックが解除されないという事例がありました。
その際の対処方などもこちらに記載されております。
またXpagesでの設定事例については、IBMチャンピオンである御代様のブログでも、【XPagesで文書のロックをやってみよう!】にて紹介がございますので、こちらもご覧ください。
最後までお付き合い、ありがとうございました。
2017年4月10日月曜日
ツールのご紹介【New Work Friend】
こんにちは!!
神戸のサクラは昨日・一昨日で満開になりました。
個人的に花見には行けてませんが・・・、通勤途中で少しだけ和まして頂いてます。
そろそろ雨が降り始めるのか、強めの風が吹いてます。
さすがに来週末は持たないですね(泣
さて本日は弊社で古くから使用しておりますNew Workfriend というツールについて、ご紹介させて頂きます。
詳細は上記販社様のサイトを見ていただければある程度理解できるかと思いますが、さまざまなデータベースからMicrosoft Excel や IBM Notesとデータの送受信が可能なツールになります。
弊社ではノーツサーバーにインストールし、IBM iSeriesから主にマスタデータを日々同期するような使い方を行っております。
もっともNotesに精通されている方でしたら、わざわざこのようなツールを使用する必要もないのですが、そもそも所有していた古いライセンスがありましたので、有効利用しているというものです。
それでは具体的な画面をご紹介します。
New Workfriendをインストールすると、アクションメニュー内に新たなコマンドが追加されます。
こちらでデータのアップロードやダウンロード、定義設計、スケジュールの設定等が行えます。
今回はスケジュールについては無視して、iSeriesからのデータダウンロードを作成してみますので、「定義設計」を行います。
下記のような画面が表示されますので、「照会」メニューから「新しく照会定義を作成」を選択し、「次」をクリックします。
続いてNotes データベース設定画面が表示されますので、データベースの場所や名前、ファイル名と、登録形式(置換や追加etc)を選択し、「次」をクリックします。
アクセスのクエリのような画面が表示されますので、ダウンロードするテーブルや項目、置換する場合はキーの設定を行います。
「実行」をクリックするとタイミングを聞かれますので、「即時実行」を選択し、「実行」します。
データがダウンロードされると、設定画面に戻りますので、定義を保存しておきます。
アプリケーションを開いた初期画面です。
アプリケーションについてを閉じると、無題のビューで一覧が表示されます。
このままですと、デフォルトフォームが設定されておりませんので、文書を開くことはできず、アラートが表示されます。
あとはこちらのアプリケーションのフォームやビュー等を整備すれば、iSeriesと連携したデータが取得できます。
こちらのマスタ等を他のアプリケーションからLookupして、弊社では活用しております。
なおこのツールでiSeries側に追加・更新することも可能です。
Notes側で追加や修正した内容をiSeriesにアップロードするということです。
これにより、NotesをフロントとしたiSeriesの利用も可能になります。
今回はNotesについてのみ記載しましたが、Excelでも基本的な操作は同じです。
1ライセンスあれば、結構有効に利用できるツールですので、ご興味ありましたら販社様にご相談ください。
もちろん弊社環境をデモすることも可能ですので、タイミングが合えばご相談ください。
神戸のサクラは昨日・一昨日で満開になりました。
個人的に花見には行けてませんが・・・、通勤途中で少しだけ和まして頂いてます。
そろそろ雨が降り始めるのか、強めの風が吹いてます。
さすがに来週末は持たないですね(泣
さて本日は弊社で古くから使用しておりますNew Workfriend というツールについて、ご紹介させて頂きます。
詳細は上記販社様のサイトを見ていただければある程度理解できるかと思いますが、さまざまなデータベースからMicrosoft Excel や IBM Notesとデータの送受信が可能なツールになります。
弊社ではノーツサーバーにインストールし、IBM iSeriesから主にマスタデータを日々同期するような使い方を行っております。
もっともNotesに精通されている方でしたら、わざわざこのようなツールを使用する必要もないのですが、そもそも所有していた古いライセンスがありましたので、有効利用しているというものです。
それでは具体的な画面をご紹介します。
New Workfriendをインストールすると、アクションメニュー内に新たなコマンドが追加されます。
こちらでデータのアップロードやダウンロード、定義設計、スケジュールの設定等が行えます。
今回はスケジュールについては無視して、iSeriesからのデータダウンロードを作成してみますので、「定義設計」を行います。
下記のような画面が表示されますので、「照会」メニューから「新しく照会定義を作成」を選択し、「次」をクリックします。
続いてNotes データベース設定画面が表示されますので、データベースの場所や名前、ファイル名と、登録形式(置換や追加etc)を選択し、「次」をクリックします。
アクセスのクエリのような画面が表示されますので、ダウンロードするテーブルや項目、置換する場合はキーの設定を行います。
「実行」をクリックするとタイミングを聞かれますので、「即時実行」を選択し、「実行」します。
データがダウンロードされると、設定画面に戻りますので、定義を保存しておきます。
アプリケーションを開いた初期画面です。
アプリケーションについてを閉じると、無題のビューで一覧が表示されます。
このままですと、デフォルトフォームが設定されておりませんので、文書を開くことはできず、アラートが表示されます。
あとはこちらのアプリケーションのフォームやビュー等を整備すれば、iSeriesと連携したデータが取得できます。
こちらのマスタ等を他のアプリケーションからLookupして、弊社では活用しております。
なおこのツールでiSeries側に追加・更新することも可能です。
Notes側で追加や修正した内容をiSeriesにアップロードするということです。
これにより、NotesをフロントとしたiSeriesの利用も可能になります。
今回はNotesについてのみ記載しましたが、Excelでも基本的な操作は同じです。
1ライセンスあれば、結構有効に利用できるツールですので、ご興味ありましたら販社様にご相談ください。
もちろん弊社環境をデモすることも可能ですので、タイミングが合えばご相談ください。
2017年4月3日月曜日
アプリケーション管理アプリのご紹介
みなさま、こんにちは!!
始まりましたね、新年度。
関東はソメイヨシノ満開とか聞きますが、関西は少し遅れそうです。
その分、長く楽しめるといいのですが。
さて以前、ノーツコンソーシアムのユーザー情報交換会にて、【ノーツお困りごと相談】という企画がございました。
その際に弊社から提示した内容のひとつに、「データベースの削除ルールについて」というものを出させて頂きました。要は長期間使用されていないアプリケーションを洗い出し、整理することを目的としています。
その際に頂いた回答として、「catalog.nsfで使用頻度をチェックする」というものを頂いたのですが、どうしてもcatalog.nsfにはすべてのアプリケーションが含まれており、少し不自由を感じておりました。
そんな中、ノーツコンソーシアム大阪研究会にて、H様よりcatalog.nsfを参照するアプリケーションを作成し、情報を整理しているというヒントを頂きました。
そのヒントを元に、弊社では稼動しているアプリケーションの一覧を収集し、管理を開始しました。
本日はそちらを紹介させて頂きます。
まずcatalog.nsfでどのような項目が管理されているのか見てみましょう。
catalog.nsfの文書を開いてみると、下記のような項目が保管されていることがわかります。
実際に、この中から必要と思われる項目をピックアップしておきます。
続いてcatalog.nsfをデザイナーで開きます。
フォームで【Main】を開くと、各項目のフィールド名が取得できますので、先にピックアップした項目のフィールドを控えておきます。
それでは別のアプリケーションから参照するためのビューをcatalog.nsfに追加します。
【新規ビュー】をクリックし、以下プロパティを設定して【OK】してください。
ビュー名: 参照用(特に指定ではありません)
別名: ref (こちらは後で参照しますので、指定させてください)
続いてビューの列の設定です。
1列目には参照するためのキーが必要ですので、重複のないPathname(アプリケーションのファイル名)を使うことにします。必ずソートの設定を行っておいてください。
以降の列は特に先にピックアップしたフィールドをどんどん加えてください。
参考までに弊社では、
Title・・・アプリケーションのタイトル
DbSize・・・アプリケーションのサイズ
DbCreationDate・・・アプリケーションの作成日
DbModifiedDate・・・アプリケーションの最終更新日
DbNumDocuments・・・文書数
DbNumDesignDocuments・・・設計文書の数
DbTemplateName・・・設計テンプレート名
DbInheritTemplateName・・・テンプレートから設計を引き継ぐ
DbDesignModified・・・設計の最終更新日時
@If(DbFullTextIndexed="0";"未";"作成")・・・アプリケーションの全文索引
DbBytesIndexed・・・全文索引のバイト数
DbLastFTIndexed・・・全文索引の最終更新
@Name([CN];ManagerList)・・・管理者
@Name([CN];DesignerList)・・・設計者
@Name([CN];EditorList)・・・編集者
@Name([CN];AuthorList)・・・作成者
@Name([CN];ReaderList)・・・読者
@Name([CN];DepositorList)・・・投稿者
@Name([CN];NoAccessList)・・・なし
@Text(DbActSummDisp)+(" - 過去24時間の使用数":" - 過去24時間の読み込み数":" - 過去24時間の書き込み数":
" - 先週の使用数":" - 先週の読み込み数":" - 先週の書き込み数":
" - 先月の使用数":" - 先月の読み込み数":" - 先月の書き込み数":
" - 報告間隔の日数":" - 報告間隔の使用数":" - 報告間隔の読み込み数":
" - 報告間隔の書き込み数")・・・アプリケーションの使用状況の概要
を加えています。
列数がわかりやすいように、ビュー列のタイトルを列数にしています。
それでは実際のアプリケーションを作成します。
アプリケーションの新規作成を行います。名前等はお任せ致します。
続いてフォームを作成します。
こちらも名称はお任せ致します。
フォームのプロパティで、【フィールドを自動更新】にチェックします。
続いてフィールドを配置しますが、先頭に
Pathname・・・アプリケーションのファイル名
を配置してください。
こちらにファイルパスを手入力することになります。
以降はピックアップしたフィールドを配置します。
各フィールドの参照式ですが、
@If(Pathname="";"";@DbLookup("NOTES":"nocache";"サーバー名":"catalog.nsf";"ref";Pathname;2))
となります。
サーバー名はcatalog.nsfのあるサーバー名に書き換えてください。
最後の数字は先にcatalog.nsfに作成したrefビューの列番号になります。
つまり弊社でピックアップした先の項目を順番に列に加えているとすると、
Title・・・2
DbSize・・・3
DbCreationDate・・・4
となります。
なお弊社では以下項目を手入力できるように加えています。
使用用途(テキスト/編集可能)
利用者(名前/編集可能)・・・[宛先]ダイアログから選択
アプリケーションリンク(リッチテキスト)
弊社ではDesktop情報を配信せず、各自で必要に応じて修正させております。
そのため、部署ごとに利用するべきアプリケーションがわかりやすいように【利用者】として部署グループ(一部個人)を選択してあります。
またどのような用途で使用するかを【使用用途】に記載しておくことで、新入社員にも分かりやすいよう工夫してあります。
またいちいち【ファイル】-【アプリケーション】-【開く】からワークスペースへ追加することも手間ですので、【アプリケーションリンク】を配置し、ワンクリックで追加できるようにしてあります。
あとは必要と思われるビューを作成(弊社では、ファイル名順・最終更新日順・部署別の3種類のビューを作成しています。
ビューのアクションの【新規作成】と【更新】は設計者以外には非表示(ロールにて制御)としてあります。
!(@UserRoles="[ロール名]")
また【更新】ですが、一度登録された文書の計算式が自動で最新状態にならないため、ビュー上でクリックすることで全文書が更新されるよう下記の式を設定してあります。
@Command([ToolsRefreshAllDocs])
以上で大まかな設計は完了ですので、文書としてアプリケーションの情報を追加して、適宜確認を行うというものです。
catalog.nsfとの大きな違いは、管理すべきアプリケーションのみを表示できるという点です。
なおご希望されるかたがいらっしゃるか不明ですが、弊社で使用しているものに少し手を加えたものをダウンロードできるようにしておりますので、ご興味ございましたらご使用ください。
設計も公開しておりますが、素人が作ったものと割り切ってご覧ください。
以上、何かのヒントになれば幸いです。
始まりましたね、新年度。
関東はソメイヨシノ満開とか聞きますが、関西は少し遅れそうです。
その分、長く楽しめるといいのですが。
さて以前、ノーツコンソーシアムのユーザー情報交換会にて、【ノーツお困りごと相談】という企画がございました。
その際に弊社から提示した内容のひとつに、「データベースの削除ルールについて」というものを出させて頂きました。要は長期間使用されていないアプリケーションを洗い出し、整理することを目的としています。
その際に頂いた回答として、「catalog.nsfで使用頻度をチェックする」というものを頂いたのですが、どうしてもcatalog.nsfにはすべてのアプリケーションが含まれており、少し不自由を感じておりました。
そんな中、ノーツコンソーシアム大阪研究会にて、H様よりcatalog.nsfを参照するアプリケーションを作成し、情報を整理しているというヒントを頂きました。
そのヒントを元に、弊社では稼動しているアプリケーションの一覧を収集し、管理を開始しました。
本日はそちらを紹介させて頂きます。
まずcatalog.nsfでどのような項目が管理されているのか見てみましょう。
catalog.nsfの文書を開いてみると、下記のような項目が保管されていることがわかります。
実際に、この中から必要と思われる項目をピックアップしておきます。
続いてcatalog.nsfをデザイナーで開きます。
フォームで【Main】を開くと、各項目のフィールド名が取得できますので、先にピックアップした項目のフィールドを控えておきます。
それでは別のアプリケーションから参照するためのビューをcatalog.nsfに追加します。
【新規ビュー】をクリックし、以下プロパティを設定して【OK】してください。
ビュー名: 参照用(特に指定ではありません)
別名: ref (こちらは後で参照しますので、指定させてください)
続いてビューの列の設定です。
1列目には参照するためのキーが必要ですので、重複のないPathname(アプリケーションのファイル名)を使うことにします。必ずソートの設定を行っておいてください。
以降の列は特に先にピックアップしたフィールドをどんどん加えてください。
参考までに弊社では、
Title・・・アプリケーションのタイトル
DbSize・・・アプリケーションのサイズ
DbCreationDate・・・アプリケーションの作成日
DbModifiedDate・・・アプリケーションの最終更新日
DbNumDocuments・・・文書数
DbNumDesignDocuments・・・設計文書の数
DbTemplateName・・・設計テンプレート名
DbInheritTemplateName・・・テンプレートから設計を引き継ぐ
DbDesignModified・・・設計の最終更新日時
@If(DbFullTextIndexed="0";"未";"作成")・・・アプリケーションの全文索引
DbBytesIndexed・・・全文索引のバイト数
DbLastFTIndexed・・・全文索引の最終更新
@Name([CN];ManagerList)・・・管理者
@Name([CN];DesignerList)・・・設計者
@Name([CN];EditorList)・・・編集者
@Name([CN];AuthorList)・・・作成者
@Name([CN];ReaderList)・・・読者
@Name([CN];DepositorList)・・・投稿者
@Name([CN];NoAccessList)・・・なし
@Text(DbActSummDisp)+(" - 過去24時間の使用数":" - 過去24時間の読み込み数":" - 過去24時間の書き込み数":
" - 先週の使用数":" - 先週の読み込み数":" - 先週の書き込み数":
" - 先月の使用数":" - 先月の読み込み数":" - 先月の書き込み数":
" - 報告間隔の日数":" - 報告間隔の使用数":" - 報告間隔の読み込み数":
" - 報告間隔の書き込み数")・・・アプリケーションの使用状況の概要
を加えています。
列数がわかりやすいように、ビュー列のタイトルを列数にしています。
それでは実際のアプリケーションを作成します。
アプリケーションの新規作成を行います。名前等はお任せ致します。
続いてフォームを作成します。
こちらも名称はお任せ致します。
フォームのプロパティで、【フィールドを自動更新】にチェックします。
続いてフィールドを配置しますが、先頭に
Pathname・・・アプリケーションのファイル名
を配置してください。
こちらにファイルパスを手入力することになります。
以降はピックアップしたフィールドを配置します。
各フィールドの参照式ですが、
@If(Pathname="";"";@DbLookup("NOTES":"nocache";"サーバー名":"catalog.nsf";"ref";Pathname;2))
となります。
サーバー名はcatalog.nsfのあるサーバー名に書き換えてください。
最後の数字は先にcatalog.nsfに作成したrefビューの列番号になります。
つまり弊社でピックアップした先の項目を順番に列に加えているとすると、
Title・・・2
DbSize・・・3
DbCreationDate・・・4
となります。
なお弊社では以下項目を手入力できるように加えています。
使用用途(テキスト/編集可能)
利用者(名前/編集可能)・・・[宛先]ダイアログから選択
アプリケーションリンク(リッチテキスト)
弊社ではDesktop情報を配信せず、各自で必要に応じて修正させております。
そのため、部署ごとに利用するべきアプリケーションがわかりやすいように【利用者】として部署グループ(一部個人)を選択してあります。
またどのような用途で使用するかを【使用用途】に記載しておくことで、新入社員にも分かりやすいよう工夫してあります。
またいちいち【ファイル】-【アプリケーション】-【開く】からワークスペースへ追加することも手間ですので、【アプリケーションリンク】を配置し、ワンクリックで追加できるようにしてあります。
あとは必要と思われるビューを作成(弊社では、ファイル名順・最終更新日順・部署別の3種類のビューを作成しています。
ビューのアクションの【新規作成】と【更新】は設計者以外には非表示(ロールにて制御)としてあります。
!(@UserRoles="[ロール名]")
また【更新】ですが、一度登録された文書の計算式が自動で最新状態にならないため、ビュー上でクリックすることで全文書が更新されるよう下記の式を設定してあります。
@Command([ToolsRefreshAllDocs])
以上で大まかな設計は完了ですので、文書としてアプリケーションの情報を追加して、適宜確認を行うというものです。
catalog.nsfとの大きな違いは、管理すべきアプリケーションのみを表示できるという点です。
なおご希望されるかたがいらっしゃるか不明ですが、弊社で使用しているものに少し手を加えたものをダウンロードできるようにしておりますので、ご興味ございましたらご使用ください。
設計も公開しておりますが、素人が作ったものと割り切ってご覧ください。
以上、何かのヒントになれば幸いです。
2017年3月27日月曜日
既存アプリの最短Xpages化
みなさま、こんにちは!!
いよいよ年度末ですね。金曜は棚卸や決算関係のお仕事が待ち受けています(汗
まあ、もうひとふんばりというところでしょうか。
さて今回は「アプリをWEB化したい」とか、「Xpagesを使ってみたいが・・・」という方が結構いらっしゃると伺っておりますので、まずは既存アプリをできるだけ簡単にWEB化するという点にターゲットを絞って、掲載致します。
どうしても既存のNotesで動いているそのままをXpagesを使って再現するとなるとハードルが上がってしまいます。特にアクションをどう実現するかなど・・・。
弊社ではまずはブラウザで見ることができるようにするというポイントでWEB化を進めております。(今後予定されるポータル導入時に、表示できるようにしたいため)
さて元となるアプリですが、先日公開させて頂きました簡易日報を使用致します。
こちらに日付順のビューと実際のフォームのふたつについて、Xpagesを使用しWEB化致します。
もちろん皆様の環境でご使用のアプリに追加頂いても構いませんが、各内容については読み替えて設定してください。
※既に本番環境で稼動開始しておりますので、画面上では「日報(report.ntf)」というアプリを使用致します。
※なお、xpagesを作成する際の[アプリケーション構成] - [Xspプロパティ]については、
【第3回】タイムレコーダーアプリ作成~XPages作成の準備とトップページの作成~
をご参照ください。
それではまずはビューのページを作成します。
[新規XPage]のボタンをクリックし、ページを作成します。
名前: m_byDate
データソースをページに追加にチェック
データソース:Domino ビュー
ビュー:1.一覧\1.日付順 - byDate
とし、[OK]をクリックします。
すると、右側にデータタブが追加された状態で、新規ページが開きます。
続いて[コントロールの選択]ダイアログボックス(使用可能)の状態で、データソース内の全てを選択し、新規ページにドラッグ&ドロップします。
データバインドコントロールの選択が表示されますので、「Gj」「激」「Li」のチェックを外し、[OK]をクリックします。
すると、下記のようにビューが埋め込まれます。
それでは一度、ブラウザでプリビューしてみましょう。
※テストで1レコードだけ登録しております。
下記のように表示されました。
次にフォームのページを作成します。
[新規Xpage]をクリックし、下記のように設定します。
名前: m_mainForm
データソースをページに追加にチェック
データソース:Domino 文書
フォーム:メインフォーム - main
フォーム検証の実行: 文書ロード時
開いたページに[コアコントロール]からボタンをひとつドラッグ&ドロップします。
プロパティでは
ラベル: 戻る
とし、イベントで onclick 時のアクションを追加します。
カテゴリ: 基本
アクション: ページを開く
開くページの名前: m_byDate
続いてフォームに表示するコントロールをデータタブから追加します。
ビューと同じように一旦全てのコントロールを選択し、ページ上にドラッグ&ドロップします。
Good comment以下のコントロールのチェックを外し、[OK]します。
下記のように、コントロールが配置されました。
それではこちらもプリビューしてみましょう。
無事、表示されました。
それではもう一度 m_byDate を開きます。
ビューの列「日付」をクリックし、選択してください。
プロパティの[表示]タブにある[列の値をリンクとして表示する]にチェックします。
続いてイベントで[アクションの追加]をクリックします。
設定は、
カテゴリ: 基本
アクション: ページを開く
開くページの名前: m_mainForm
ターゲット文書: 文書を開く
以上で一旦Xpageを保存して閉じます。
次にブラウザからデータベース起動時にm_byDateが開くように設定します。
[アプリケーション構成]の[アプリケーションのプロパティ]を開き、[起動]タブに移動します。
Web ブラウザの起動で
起動: 指定した XPage を開く
XPage: m_byDate
とし、[アプリケーションのプロパティ]を保存して閉じます。
それではせっかくですので、ブラウザにアドレスを入れて開いてみましょう。
弊社の環境では、サーバーのDataフォルダ内の[DB]フォルダ内に[report_2017.nsf]というファイルを使用してありますので、下記URLでアクセスします。
http://サーバー名/DB/report_2017.nsf
※ACLの設定により、ユーザー名とパスワードが要求されますので、ノーツクライアントにログイン可能なユーザー名とパスワードでアクセスしてください。
注)インターネットパスワードが設定されている必要があります。
アクセスすると、下記のように表示されます。
リンクとなっている[日付]をクリックすると、対象文書がm_mainFormで開きます。
[戻る]ボタンで m_byDate が開くことをご確認ください。
実運用をするには、デザイン・見た目をもっと変更する必要がありますが、今回の目的はいかに簡単に既存アプリをWEB化するかを目的としておりますので、以上とさせて頂きます。
ここまでの内容でしたら、少しNotesを触ったことがある方でしたら、何のストレスもなくWEB化できるはずです。
ぜひ、いきなり最終形を目指すのではなく、まずはWEB画面で表示できるまでからスタートしてみてください。
いよいよ年度末ですね。金曜は棚卸や決算関係のお仕事が待ち受けています(汗
まあ、もうひとふんばりというところでしょうか。
さて今回は「アプリをWEB化したい」とか、「Xpagesを使ってみたいが・・・」という方が結構いらっしゃると伺っておりますので、まずは既存アプリをできるだけ簡単にWEB化するという点にターゲットを絞って、掲載致します。
どうしても既存のNotesで動いているそのままをXpagesを使って再現するとなるとハードルが上がってしまいます。特にアクションをどう実現するかなど・・・。
弊社ではまずはブラウザで見ることができるようにするというポイントでWEB化を進めております。(今後予定されるポータル導入時に、表示できるようにしたいため)
さて元となるアプリですが、先日公開させて頂きました簡易日報を使用致します。
こちらに日付順のビューと実際のフォームのふたつについて、Xpagesを使用しWEB化致します。
もちろん皆様の環境でご使用のアプリに追加頂いても構いませんが、各内容については読み替えて設定してください。
※既に本番環境で稼動開始しておりますので、画面上では「日報(report.ntf)」というアプリを使用致します。
※なお、xpagesを作成する際の[アプリケーション構成] - [Xspプロパティ]については、
【第3回】タイムレコーダーアプリ作成~XPages作成の準備とトップページの作成~
をご参照ください。
それではまずはビューのページを作成します。
[新規XPage]のボタンをクリックし、ページを作成します。
名前: m_byDate
データソースをページに追加にチェック
データソース:Domino ビュー
ビュー:1.一覧\1.日付順 - byDate
すると、右側にデータタブが追加された状態で、新規ページが開きます。
続いて[コントロールの選択]ダイアログボックス(使用可能)の状態で、データソース内の全てを選択し、新規ページにドラッグ&ドロップします。
データバインドコントロールの選択が表示されますので、「Gj」「激」「Li」のチェックを外し、[OK]をクリックします。
すると、下記のようにビューが埋め込まれます。
それでは一度、ブラウザでプリビューしてみましょう。
※テストで1レコードだけ登録しております。
下記のように表示されました。
次にフォームのページを作成します。
[新規Xpage]をクリックし、下記のように設定します。
名前: m_mainForm
データソースをページに追加にチェック
データソース:Domino 文書
フォーム:メインフォーム - main
フォーム検証の実行: 文書ロード時
開いたページに[コアコントロール]からボタンをひとつドラッグ&ドロップします。
プロパティでは
ラベル: 戻る
とし、イベントで onclick 時のアクションを追加します。
カテゴリ: 基本
アクション: ページを開く
開くページの名前: m_byDate
続いてフォームに表示するコントロールをデータタブから追加します。
ビューと同じように一旦全てのコントロールを選択し、ページ上にドラッグ&ドロップします。
Good comment以下のコントロールのチェックを外し、[OK]します。
下記のように、コントロールが配置されました。
それではこちらもプリビューしてみましょう。
無事、表示されました。
それではもう一度 m_byDate を開きます。
ビューの列「日付」をクリックし、選択してください。
プロパティの[表示]タブにある[列の値をリンクとして表示する]にチェックします。
続いてイベントで[アクションの追加]をクリックします。
設定は、
カテゴリ: 基本
アクション: ページを開く
開くページの名前: m_mainForm
ターゲット文書: 文書を開く
以上で一旦Xpageを保存して閉じます。
次にブラウザからデータベース起動時にm_byDateが開くように設定します。
[アプリケーション構成]の[アプリケーションのプロパティ]を開き、[起動]タブに移動します。
Web ブラウザの起動で
起動: 指定した XPage を開く
XPage: m_byDate
とし、[アプリケーションのプロパティ]を保存して閉じます。
それではせっかくですので、ブラウザにアドレスを入れて開いてみましょう。
弊社の環境では、サーバーのDataフォルダ内の[DB]フォルダ内に[report_2017.nsf]というファイルを使用してありますので、下記URLでアクセスします。
http://サーバー名/DB/report_2017.nsf
※ACLの設定により、ユーザー名とパスワードが要求されますので、ノーツクライアントにログイン可能なユーザー名とパスワードでアクセスしてください。
注)インターネットパスワードが設定されている必要があります。
アクセスすると、下記のように表示されます。
リンクとなっている[日付]をクリックすると、対象文書がm_mainFormで開きます。
[戻る]ボタンで m_byDate が開くことをご確認ください。
実運用をするには、デザイン・見た目をもっと変更する必要がありますが、今回の目的はいかに簡単に既存アプリをWEB化するかを目的としておりますので、以上とさせて頂きます。
ここまでの内容でしたら、少しNotesを触ったことがある方でしたら、何のストレスもなくWEB化できるはずです。
ぜひ、いきなり最終形を目指すのではなく、まずはWEB画面で表示できるまでからスタートしてみてください。
2017年3月21日火曜日
簡易日報(設計非公開)版の配布
みなさま、こんにちは!!
先日も書きましたが、年度末にいろいろと予算がつき、まさに右往左往の状態です。
昨日は本社内のアクセスポイントの総入れ替えを実施しました。
せっかくですので、お客様用のSSIDも準備致しましたので、弊社に来られる際はお問い合わせください。
ちなみに明日は販売管理システムの手直しとBIツールの定義納品・確認が待ってます。
木曜は支店のアクセスポイント切り替え。
終了後はノーツコンソーシアム 大阪研究会の「悪巧みの会」と称された前準備の打ち合わせで京都に向かいます。
ということで・・・
ネタ切れです(大汗
いくつか社内で実施したいテーマはあるのですが、手を付けることすらできず、もちろん当記事にもなりません。
ということで・・・
前々回に林様のテクてく講義を適用したデータベースをご紹介しましたが、本日は設計非公開になりますが、ダウンロードを準備致しましたのでご案内させて頂きます。
こちらよりダウンロードしてください。
もちろんこのままでは得意先のダイアログ設定ができませんので、まったく使い物にはなりません。
ご希望の方へは、設計公開版のテンプレートもお譲りさせて頂くことは可能です。
再配布以外、ご自由に使って頂いて結構です。
また揚げ足を取っていただいて、「こうすれば」などご指導頂けましたら、それ以上にありがたいことはございません。
あくまで初歩レベルのデーベース(あえてアプリケーションとは言いません)とご判断ください。
なお社内で設計が組み替えられないような企業様については、可能な範囲でお手伝いさせて頂きます。
お代は必要ありませんが、内容に限界があることと、日程に猶予を頂けることのみご了解ください。
もちろん専門の方に、修正を依頼頂いても構いません。
以上、自分のレベルの低さを露呈するような内容となってしまいますが、素人の作品程度ということでご容赦ください。
先日も書きましたが、年度末にいろいろと予算がつき、まさに右往左往の状態です。
昨日は本社内のアクセスポイントの総入れ替えを実施しました。
せっかくですので、お客様用のSSIDも準備致しましたので、弊社に来られる際はお問い合わせください。
ちなみに明日は販売管理システムの手直しとBIツールの定義納品・確認が待ってます。
木曜は支店のアクセスポイント切り替え。
終了後はノーツコンソーシアム 大阪研究会の「悪巧みの会」と称された前準備の打ち合わせで京都に向かいます。
ということで・・・
ネタ切れです(大汗
いくつか社内で実施したいテーマはあるのですが、手を付けることすらできず、もちろん当記事にもなりません。
ということで・・・
前々回に林様のテクてく講義を適用したデータベースをご紹介しましたが、本日は設計非公開になりますが、ダウンロードを準備致しましたのでご案内させて頂きます。
こちらよりダウンロードしてください。
もちろんこのままでは得意先のダイアログ設定ができませんので、まったく使い物にはなりません。
ご希望の方へは、設計公開版のテンプレートもお譲りさせて頂くことは可能です。
再配布以外、ご自由に使って頂いて結構です。
また揚げ足を取っていただいて、「こうすれば」などご指導頂けましたら、それ以上にありがたいことはございません。
あくまで初歩レベルのデーベース(あえてアプリケーションとは言いません)とご判断ください。
なお社内で設計が組み替えられないような企業様については、可能な範囲でお手伝いさせて頂きます。
お代は必要ありませんが、内容に限界があることと、日程に猶予を頂けることのみご了解ください。
もちろん専門の方に、修正を依頼頂いても構いません。
以上、自分のレベルの低さを露呈するような内容となってしまいますが、素人の作品程度ということでご容赦ください。
登録:
投稿 (Atom)