ページビューの合計

2018年8月20日月曜日

#Notes 文書からファイルサーバーの特定ファイルを開く

This time I will get the value of the field in the NotesForm and set up to open the PDF file stored in the file server that matches that value.

みなさま、こんにちは!!
さて最近は別の作業でなかなかブログを書くことができず、申し訳ありません。
当ブログも2016年7月の開設から2年が経過しました。
振り返ると、今回の記事がちょうど100本目になります。
・・・まだまだですね(汗

今回は以前から実現したいと思いつつ、実際の切り替えが年度末である必要があり、のんびりしていたのですが、気付くと今年も半分過ぎようとしており、あわてて手がけた内容になります。

まず最終目的としては、Notesの文書内にあるフィールド(今回は「受注NO」というフィールド)の値を取得して、ファイルサーバーにある"受注NO".pdfを開きたいというものになります。
現在運用しているアプリケーションでは、リッチテキストフィールドに"受注NO".pdfを添付ファイルとして扱っています。
画面としては、下記のようなものになります。


ふたつ添付ファイルがありますが、今回は右側の「受領書」欄のみを対象とします。

もちろんこの状態でも問題ないのですが、Notesのアプリケーションサイズを抑えたいのもひとつなのですが、いちいち添付ファイルを貼り付ける手間を省きたいという点が一番の目的になります。

なお少し余談になりますが、スキャンした伝票の名前を"受注NO".pdfに変更する過程については、伝票のバーコードを複合機でスキャンする際に処理させており、自動で所定のフォルダ内に保存するという処理で完結しております。

まずは受領書欄にボタンを追加し、ファイル名を指定してpdfを開くことができるか、ためしてみます。


ボタンには直接ファイルパスを指定して以下の式を設定しました(テストデータとして、受注NO、"49396550"というものを指定しています)。
※半角¥マークはバックスラッシュに変換されますので、意図的に全角で記載しております。
※弊社ではファイルサーバーをクライアントのXドライブにマッピングしておりますので、このような式になりますが、直接サーバーを指定する場合は、"¥¥¥サーバー名¥¥ファイルパス"で指定してください。
※"¥"は""でエスケープする必要がありますので、ご注意ください。
・・・恥ずかしながら、今回も私はつまづいておりました(大汗



@Command([Execute];"X:¥¥globalscan¥¥test¥¥49396550.pdf")



それではNotesクライアントからPDFが起動できるか、確認してみましょう。


!!

しばらく確認して気付きました。
デザイナーをインストールしている端末を作り直したため、AdobeReaderがインストールされてませんでした(汗

ということで、インストールして無事指定したPDFが開くことを確認しております。

このままではすべての文書から同じPDFを読み込んでしまいますので、フォーム内の"受注NO"を取得して、それぞれ特定のPDFファイルを開くことができるように変更します。

それでは先ほど設定したボタンの式を、以下に書き換えます。


NO:=juno;
@Command([Execute];"X:¥¥globalscan¥¥test¥¥"+NO+".pdf)"


フォームの受注NOフィールドである"juno"を変数"NO"に取得して、呼び出すファイルパスに組み込んだだけのものになります。


それではテストとして、先ほどの文書をコピーして、受注NOを49396550からダミーである"12345678"に変更してみます。


あわせてファイルサーバー側にもダミーのPDFを準備して、ファイル名を"12345678.pdf"にしておきます。


それではボタンを押して、正しく指定したPDFファイルが開くか確認します。


少しわかりにくいかと思いますが、AdobeReaderが起動し、"12345678.pdf"が開いたことが確認できました。


@関数のみで解決する、実に簡単な改善ではありますが、実務担当者の負担は大きく下がることになるようです。

引き続き、ユーザー視点での思いつきや閃きがあれば、記事にさせて頂きます。

2018年7月30日月曜日

#Notes #Form を個人ごとに切り替えたい

This time I try to change the Form to be displayed for each user by using Subform and notes.ini.

みなさま、こんにちは!!
神戸は日曜早朝に逆走台風が真上を通過して行きました。
幸いにも治水対策がそれなりに施されているため、先日以上に大きな影響はありませんでしたが、被害を受けられた皆様の1日も早く日常生活に戻ることができますようお祈り申し上げます。

さて今回はWEBではよくある画面表示を個人ごとに切り替えるという機能をNotesのFormでできるか試してみましたので、報告致します。
あらかじめお断りなのですが、もっと簡単に組み込むことができるような気がするのですが、まずは私なりのやり方としてご承知ください。

そもそもWEBではCSSを利用することでテーマカラーの変更は簡単に行うことが可能です。
残念ながらNotes Formにはそのような機能が実装されておりません。
・・・もちろんXPagesなら適用できるのですが・・・

ということで、今回はサブフォームと環境設定文書の組み合わせで挑戦しようと思います。

それでは早速、サブフォームAを作成します。
今回は以下のような表を作成してみました。


続いてサブフォームBです。
わかりやすいように、表のセルの色を変更してあります。


続いてフォームを作成します。

フォームにサブフォームを埋め込むのですが、その際に「式の定義によりサブフォームを挿入」にチェックし、[OK]します。


※このオプションを選択すると、サブフォームそのものは選べなくなります。

以下のように、<サブフォームの計算結果>がフォームに貼り付きました。


それではサブフォームを表示させる式を記述します。
今回はnotes.iniにフォームの設定を行いますが、初期時にはnotes.iniにパラメーターがありませんので、その場合はサブフォームAを呼び出すように設定します。

以下の式を設定してみました。

SUBF:=@Environment("TEST_SUB");  
@If(SUBF="";"subA";SUBF)                

notes.iniに「TEST_SUB」という環境変数がない場合は、サブフォームAを。それ以外は環境変数の値で設定されたサブフォームを呼び出すというものです。


続いてビューに環境変数を切り替えるアクションボタンを作ります。
今回はアクションボタンとして「テーマカラー変更」とし、サブアクションとして「青」「赤」を選べるように設定します。


式ですが、"青"・・・サブフォームBを設定

@SetEnvironment("TEST_SUB"; "subB")  

"赤"・・・サブフォームAを設定

@SetEnvironment("TEST_SUB"; "subA")  


まずはnotes.iniに正しく書かれるか、試してみます。

初期時はもちろんnotes.iniには [TEST_SUB]は存在していません。

まずはその状態で新規作成を開いてみます。
最初に設定したように、notes.iniに[TEST_SUB]が存在しない場合は、サブフォームAを表示させておりますので、以下のようにサブフォームAが表示されました。


それではビューに戻り、「青」(サブフォームB)をクリックしてみます。
まずはnotes.iniを確認してみますと、最下行に以下設定が登録されておりました。


正しく"subB"が設定されたことが確認できました。

この状態でフォームを新規作成で開くと、以下の画面が表示されました。


正しくサブフォームBが呼び出されました。

念のためビューに戻り、「赤」(サブフォームA)に戻し、notes.iniを確認してみます。


notes.iniは正しく"subA"に変更されました。

フォームを開くと、当然サブフォームAが呼び出されます。


以上、甚だ簡単ではありますが、例えばこの機能を用いることで、多言語対応のアプリケーションに発展させることができます。

例)
 サブフォームA・・・英語
 サブフォームB・・・日本語
 サブフォームC・・・フランス語
  ・・・

初期ビューに[Language]というアクションボタンを配置し、サブアクションで各言語を並べることで、利用者のnotes.iniに言語設定が行われることになります。
次回以降、利用者は常に自分の言語でフォームが利用できるというものです。

これだけの機能が@関数だけで実現できるというNotesの素晴らしさ。
今後、Domino10や11でNotesフォームやビューがCSS対応されることに期待です!!

2018年7月17日火曜日

#XPages のソースについて

This time, I describe a little about XPages source.

みなさま、こんにちは!!
まずは先般の西日本豪雨で被災されました皆様に、心よりお見舞い申し上げます。
神戸もかなりの雨量で、未だ市内でも道路が封鎖されている場所が残っております。
氾濫すらしませんでしたが、自宅前の川が1週間を経過したにもかかわらず、普段の3倍ほどの水量が続いており、油断できない状況です。

さてそんな中ではありますが、以前より少し気になっていたXPagesのソースについて、自分の学習用に調べてみたいことがありましたので、せっかくならと記事にさせて頂きます。
ぜひ今さらと言わず、お付き合い頂けましたら幸いです。

さて過去にいくつか記事にしましたが、XPagesはGUIにてコントロールを配置し、プロパティを設定して組み上げていくことで、できるだけ簡単にプログラミングされたWEBページを生成することが目的であるNotesの設計要素であることは周知かと思います。


[設計]タブから[ソース]タブに切り替えてみますと、空白のページであっても、以下のようなソースが記述されたXMLであることがわかります。


まずはデータソースをバインドした場合の変化を見てみます。


今回は同じアプリケーション内の"planning"というDomino文書をバインドしてみました。
このように<xp:this.data>のタグ内にデータソースの定義が組み込まれることを宣言し、<xp:dominoDocument>タグでDomino文書である"planning"フォームを呼び出しています。
参考までにビューをバインドした場合、

<xp:dominoView var="view1" viewName="test"></xp:dominoView>

となります。

なおこのとき、アウトラインには以下のように表示されます。


先の文書をバインドした状態で、[編集ボックス]を追加してみましょう。
すると以下の1行追加されたことがわかります。

<xp:inputText id="inputText1"></xp:inputText>


続いて、"date"というフィールドをバインドしてみます。
以下のようにinputTextにvalueが追加されることがわかります。

次にボタンを追加してみますと、以下の一行が追加されました。

<xp:button value="ラベル" id="button1"></xp:button>


それではそのボタンに「文書の保存」を設定してみます。
以下のように"onclick"のイベントが追加され、"action"として<xp:saveDocument>が追加されました。


ここまでで[設計]画面は以下のようになっています。


それではボタン部分のソース(以下の部分)をコピーして、ソースの続きに貼り付けてみます。


すると、以下のようにボタンが追加されることが確認できます。


なおソースを確認すると、以下のように自動で"id"がユニークな番号に変化していることがわかります。


このようにコントロールを複製するような場合、もちろん[設計]画面で対象コントロールをコピーすることも可能ですが、ソース側でも同じことが可能であることがわかるかと思います。


次にカスタムコントロールを見てみます。
まずは初期作成時のソースです。


このようにカスタムコントロールのソースもXPagesのソースとまったく同一になります。

それでは編集ボックスとボタンを追加したソースもみてみましょう。

今回、値のバインドやボタンアクションの設定は省きましたが、XPagesと同一のソースであることがわかるはずです。

つまりXPageで作成したものをカスタムコントロール作り変えたり、その逆についてもいちいちコントロールの配置から行う必要はなく、ソースをコピーして貼り付けることで、同一内容でありながら、別の設計要素を作成することが可能になります。

最後にカスタムコントロールをXPagesに埋め込んでみますと、

<xc:xctest></xc:xctest>

この一行のみでカスタムコントロール"test"を呼び出すことができます。



以上、表面的なことばかりではありますが、ソースを知ることで、作業の簡素化ができる場合があるということはご理解いただけましたでしょうか。

XPages開発者はGUIを使用せず、ソースだけを直接編集して、ページを実現されている方もいらっしゃると聞きます。

個々のコントロールの記述や、値設定などを確認されても面白いかと思います。

2018年7月2日月曜日

#ノーツコンソーシアム ( #notescons )新任担当者向けワークショップ へ参加させて頂きました。

I studied to help you as a lecturer at the workshop for Notes new manager in Osaka.

みなさま、こんにちは!!
今回もまずは告知させてください。
明日、IBM Notes/Domino Day 2018 Summerが開催されます。
年内に発売予定のV10に関する情報を中心とした情報が得られる貴重なイベントです。

また翌7/4には、IBM Notes/Domino v10 意見交換ラウンドテーブル も予定されております。
こちらはコンソーシアム会員優先ではありますが、会員外の方でも参加可能ですので、こちらもご検討ください。

両日ともウェビナー or リモートの開催が予定されております。
私は今回東京まで行くことができませんので、両日自席から参加の予定です。
遠方の方、当日参加できない方も、ぜひリモート参加もご考慮ください!!

さて本日は先週東京で開催されましたノーツコンソーシアム新任担当者向けワークショップへ参加させて頂きましたので、簡単にレポート致します。

両日とも30名定員の募集でしたが、キャンセル待ちが出るほどの盛況ぶり。
また当日の参加率についてもほぼ全員と、まずはその人気ぶりに驚かされました。

1日目は午後から「管理者編」が実施されました。用語編+ワークショップの2本立てになります。
ワークショップでは隣り合った2台のPCをクロスケーブルで繋ぎ、それぞれにインストールされたサーバー同士での複製など、貴重な体験をすることができたようです。
終了後は、懇親会も行われ、お店を貸しきっていただくほどの参加者で盛り上がりました。

2日目は終日、開発者編の開催です。
管理者編同様、用語編+ワークショップ。加えてデザインTipsの講義もあり、実際に利用する立場の方に直接的なメリットが提供頂ける内容であったと感じました。

テキストの内容ですが、IBM様や他社様の教育プログラムほどの内容ではありませんが、両日受講することでノーツサーバーの簡単な管理、ユーザー追加や、初歩的なアプリケーションの作成までできるようになります。

流れとしては、まずはこのワークショップを受講されてから、有償の教育プログラムを受講されることで、理解度が格段に上がるのではと感じました。

ぜひノーツの管理やアプリ開発を行われる方は、次回以降のワークショップをお見逃しなく。

今回までは東京開催のみでしたが、コンソーシアムでは東京以外の開催も計画されているようですので、ぜひ遠方の方もお待ち頂ければと考えます。

なお参加者の方と少しお話ししてみたのですが、まずは初歩的なステップを理解したいという方が多いように感じました。
このことを受けて、私なりにやりたい事が出て参りましたので、少し準備してみたいと思います。

たいへん申し訳ありませんが、私のほうでは写真を撮っておりませんので、その場の雰囲気などはノーツコンソーシアムのフェイスブックページをご覧ください。


さて、そもそも私の参加目的は・・・

●弊社内ではDominoサーバーは二重化していないため、「管理者編」に興味があった。
●最新の用語集を聞きたかった
●開発手順は様々ですので、「開発者編」でどのように説明されるか聞きたかった。
●自らが講師として立てるようになる!!

です。

はじめの3点は、非常に満足できる内容で、改めて自分及び弊社でやっていることの確認が行えました。

講師としては・・・
正直なところテキストが立派に仕上がっているため、なんとかなるだろうと簡単に考えていたのですが、やはり人に教えることの難しさを実感することになってしまいました。

とはいえ、先にも少し触れました東京以外開催。特に大阪開催を実現しなければなりませんので、他の大阪研究会メンバーと強力して準備を開始致します。
開催決定次第、いろいろと案内が行われるかと思いますので、関西の皆様、もう少しお待ちください!!

皆様にお会いできる日を、心待ちに致しております。

2018年6月25日月曜日

#ノーツコンソーシアム ( #notescons) 第二回大阪研究会へ参加しました。

I will write about the "Notes Consortium Osaka Study Group" that I participated last week.
I have made a presentation on one subject about "What our management department expects from the system".

みなさま、こんにちは!!

今回は6月22日(金曜日)に開催されました、ノーツコンソーシアム 第二回大阪研究会へ参加させて頂きましたので、こちらに少し触れてみたいと思います。

大阪研究会のテーマは、昨年に続き

「Notesをどう使い続けていくのか」


Webと年4回の活動を中心とした大阪地区研究会という事で、従来からのdeveloper Worksのコミュニティーに加え、昨年はFacebookを。
また今年からはWatson Workspaceを利用しておりました。
要は年4回しかない研究会を充実させるべく、オンラインツールをフル活用するという事だったのですが、ここにきてそれぞれの役割が曖昧になりつつありました。
そこで冒頭、ファイリテータ様のご提案により、主は従来通りdeveloper Worksを利用する事とし、日々のコミュニケーションはWatson Workspaceを利用しようという事になりました。
もちろん単なる永続チャットとしてだけでなく、Watson Workspacesの機能、外部連携、アプリ開発(もちろんNotes連携)も経験しようという意図が含まれております。

さて本題なのですが、今回は2テーマの発表と1テーマのディスカッションを行いました。

1.Notesアプリ開発効率化、品質向上のための事例紹介
2.中小企業経営者がシステムに期待すること
3.クラウド化は是か非か?ディスカッション

1.については、H樣の過去の経験を踏まえての運用管理工数を下げることを目的とした開発をベースに、Notesが得意としているパーツ化そして再利用に主眼をおいた発表でした。
H様には毎回、長年にわたる経験からの発表を頂いており、ぜひNotesに関わる皆さまに聞いて頂きたい内容になります。

2.については私にお時間を頂き、弊社におけるシステム満足度調査の結果と、これを踏まえた経営者の意見そして今後の予定をお話しさせて頂きました。
そもそも中小企業特有の課題と思っていたことが、実は単なる規模に起因しているものではないと教えて頂くことができ、少し安心したのもつかの間、ハードルの高さを実感したというのが本音です。



3.ではNotesのクラウド化について全員参加のディスカッションを行いました。

前もって研究会リーダーよりdeveloper Worksにて宿題を頂いており、その回答を確認しなが意見交換を行いました。
今回は時間が少なく、主にメール中心の議論になりましたが、非常に興味深いものとなりました。
クラウドという性格上、「正解」は存在しないものの、各社にとってのメリット・デメリットについて、次回以降で深掘りできればということになりました。

次回は「2018年 日本を元気にする!Notes 2018 研究会」とのコラボレーションと近日公開されますNotes/Domino V10ベータ版の検証を行う予定です。

終了後はIBM様大阪事業所地下のフェスティバルシティにてさらなる議論で盛り上がりました。

今回は1社様、見学に来て頂くことが出来ました。
大阪研は全員参加型を目指しております。
せっかく貴重な時間を調整して参加しているのですから、質問・議論に積極的に加わり、メリットを得て帰っていただくことも目的になります。
参加のみなさんも気さくで優しい方ばかりですので、ぜひ会員企業様については、担当社員さまを参加させてみてください。何かしらメリットを持ち帰っていただけるはずです。
またまだ会員でない企業様についても、一度見学にいらしてください。
特にV10の情報がスタートする次回以降、得るものは多くなるはずです。

次回は9月21日(金曜日) 13時から大阪研究会。18時からはテクてくLotus技術者夜会の大阪PVへ突入致します。

皆様とお会いできることを楽しみにしております!!!

2018年6月12日火曜日

#Connections #Cloud のアプリ連携について

みなさま、こんにちは!!
昨日はThink Japan 2018 が開催、かなり盛り上がっていたようです。
今回参加は叶いませんでしたが、あらゆるコミュニケーションからさまざまな情報発信があるかと思いますので、そちらに期待しております。
I think I will write a little about Connections Cloud instead of Notes today.

さてまずは告知です。
今週末はテクてくLotus技術者夜会です。
大阪PVも開催されますので、ぜひご参加をご検討ください。
・・・といいつつ、私は参加できないのです(涙

また来週22日金曜は、第二回大阪研究会も予定されております。
こちらには私も参加・・・どころか、1時間頂いておりまして、少し喋らせて頂くことになっております。資料は後日公開予定ですが、まちがいなく現地で表示したスライドにはモザイクが入りますので、ぜひIBM様大阪事業所までお越しください!

さらにもうひとつ。
IBM Notes/Domino V10 のベータプログラムの発表もございました。
登録も受付開始されておりますので、ぜひご確認ください。

さて今回は少しNotesを離れ、IBM Connections Cloud について書かせて頂きます。
と言いますのも、弊社では1ライセンステスト用にS1契約させて頂いており、可能な限り社員に画面を見てもらう機会を作ろうとしている最中なのです。
当初は企業ソーシャルというものにピンとこなかったのですが、Connections Cloudも改善が進み、かなりイメージがつかみやすい画面に変化して参りました。

せっかくなので、Connections Cloudの画面を少しご紹介いたします。
以下がログインした画面になります。



自分に関連する記事が新しい順に表示されております。

ちなみにメールは既存Dominoサーバーを使用しておりますので、「メール」「カレンダー」「メール連絡先」を開くと以下のような画面になってしまいます。


ここが一番テストしたいところなんですけどね・・・。

ということで現在一番利用しているコミュニティ画面が以下になります。
現在は社内1ライセンスの契約ですので、社員はゲストとして登録して、画面を見せております。
またまだ実現していませんが、社外の方との情報交換には非常に便利な機能になります。


こちらも更新が新しいものから順に、コミュニティの一覧が並んでおります。

続いてコミュニティのひとつを開いた画面になります。


この画面が以前とかなり変更となっており、個人的に気に入っております。
現時点では、タグ、ファイル、Wiki、フォーラム、コミュニティの説明、ブックマーク、重要ブックマーク、メンバーが配置されており、自由にドラッグアンドドロップで移動できます。

もちろん上部のメニューで各個別機能の画面を開くことができます。

次にミーティングです。


もちろんこちらからConnectionsミーティングに参加(右側)できるだけでなく、配信(左側)することが可能です。
最近参加したミーティングは履歴が残るため、1クリックで参加することができます。

さて前置きが長くなりましたが、Connections Cloudへのアプリケーションの追加についてになります。
追加するには「管理者」でログインする必要があります。
上部の「管理者」メニューから「組織の管理」を開きます。



左メニューの「アプリケーション」を選択すると、「アプリ・カタログ」が表示されます。


既にたくさんの追加機能がリリースされております。
少し長くなりますが、現時点で気になるものをピックアップします。


  • Box
  • Cisco Jabber
  • Cisco Spark
  • Cisco WebEx
  • Cisco WebEx Mobile for iOS
  • Dropbox
  • GitHub
  • GitLab
  • Google Drive
  • IBM Watson Workspace
  • OneDrive for Business
  • Salesforce
  • SharePoint Online
  • WordPress
結構、思わぬ選択肢も出てきたのではないでしょうか。

せっかくですので、個人で使用しているGoogle Driveと接続してみましょう。
Google Drive の「取得」ボタンをクリックします。


以下のような確認画面が表示されますので、「構成」をクリックします。


続いて有効とする対象確認画面が表示されます。
弊社の環境では組織全体が選択され、変更することもできませんでしたので、そのまま「次へ」をクリックします。


続いて構成内容の確認が表示されます。
弊社では以下の項目すべてにチェックが入り、グレーアウトしておりましたので、そのまま「次へ」をクリックします。


確認画面が表示されますので、「完了」をクリックします。


続いてパートナー・サイトの構成を行う必要がありますので、「パートナー・サイト」をクリックします。
実はこの時点ではパートナー・サイト=接続先と考えておりました・・・。


すると以下のような確認画面が表示されますので、「アクセス権限を付与してサイトを離れる」をクリックします。


すると、以下のような成功画面が表示されました。


とここまで書きましたが、肝心のキーが必要なようです。
つまり先ほどのパートナー・サイトとは、キーを取得するための、AppFushionsに登録しなければなりません。
たいへん申し訳ございませんが、今回はここまでとさせて頂きます。
昨日キー申請したのですが、現時点で届いておらず・・・

ちなみに手順では紹介致しておりませんが、Watson Workspaceとはキーの必要がなく接続が完了し、以下のように使用可能になっております。


以上、少し長くなりましたが、Connections もICS製品のひとつということで、今回触れさせて頂きました。
弊社では来年、メールのクラウド化を予定しております。
できればこのタイミングでS1も検討したいと予定しております。

使い方としては、やはり社内でもモバイル利用の要望が強くなってきており、掲示板やQAをNotesからConnectionsに移動させることで、利便性や情報発信力、情報収集力の手助けになればと考えております。

また機会あれば、紹介させて頂きます。