ページビューの合計

2022年7月19日火曜日

#郵便番号 から #住所 を取得しよう( #鬼わか の #REST #API を適用したサンプル)

 I am pleased to present a sample REST API application that I gave to one of you.

If you would like to learn the rudiments of LotusScript, please register for the LotusScript course on September 14 and 15.

みなさま、こんにちは。
早速ですが、まずは告知から・・・

●9月9日(金) ノーツコンソーシアム 第三回 大阪研究会(会場開催・オンライン)

今回は大阪を飛び出して、京都で開催します。
普段は関西におられないゲストが来られるかも!!
さらに・・・こんなビュー、作ってみたくないですか?


当日のセッションで教えて頂けるかも!!
きっと見逃せない研究会になるはずです。ご期待ください。

終了後は、夏の京都といえば・・・そう川床ですね。

もちろんリモート配信も行いますので、ぜひみなさまのご参加をお待ちしております。

※コロナの状況により、懇親会、オンサイト開催を見送る場合がございますので、あらかじめご了承ください。

2022年5月6日金曜日

#NomadMobile のアクションについて

Nomad Mobile's floating action buttons are only available on the view.
This is Mottainai!!
We would like to see the floating action buttons made available outside of views.
Please help us by voting in the Idea Portal!


今年のゴールデンウィーク、最大10連休の方もいらっしゃるとか・・・。
私はカレンダー通りですので、5月2日と6日は通常業務になります。
有給取ってもよかったのですが、やりたいことがいくつかありまして、通常通り働いております!!

さて今回はNomad Mobileについて少し書かせて頂きます。
正しくは皆様にもお願いしたい事項がございまして・・・
内容は読み飛ばして頂いても構いませんので、後半内容について、ご協力をお願い致します。

標題にも書きましたが、アクションについての話題になります。

従来のノーツアプリをそのままNomad Mobileで開きますと、以下のようにノーツクライアントと同じ位置にアクションボタンが表示されます。


もちろんこれはこれで、ノーツクライアントに慣れている者にとっては違和感なく利用できるのですが、もともと狭い画面が常に占有されてしまっています。

そこであらかじめ準備されているのが・・・既に先の画面に写ってしまっていますが・・・
モバイルアクションボタンになります。


これですね。

設定は至って簡単で、アクションのプロパティで以下の「モバイルアクションボタンにアクションを含める」にチェックするだけです。
※この例では共有アクションに設定してあります。


先のモバイルアクションボタンをタップすると、


このように設定したアクションが表示されるというものです。
便利ですねー。
この画面では「アクションバーにアクションを含む」のチェックを外していますので、上部のアクションバーも表示されず、少しですが画面が広く使えるようになりました。

この便利な機能なのですが・・・
残念なことに現在はビューアクションにしか適用されないのです。

フォームを開いた画面では、


このようにモバイルアクションボタンが存在していません。

当初バグかと思い、サポートに問い合わせたのですが、以下回答がございました。

「お問い合わせの件ですが、こちらは製品の仕様です。
フローティングアクションボタンは、ビュー上でのみ動作します。」

うーん、ちょっともったいないですね。

さらにサポートの方から続きがありました。

「今回お問い合わせ頂いた機能追加のリクエストを以下の通り提出いたしました。」

https://domino-ideas.hcltechsw.com/ideas/DMA-I-280


なんと、「HCL #dominoforever Product Ideas Portal」にリクエスト追加頂いた上での回答となっておりました。

Ideas Portal は英文での記載が必要ですので、私としてはvoteするだけということでした。

ということで皆様へのお願いです。

先のURLからフォームへの機能追加というアイデアにぜひ投票をお願いします!!

利用者目線で、この有無でNomad Mobileの利便性は大きく変化すると感じています。
ぜひ実現して頂きたい機能かと思い、今回の記事とさせて頂きました!!


ぜひ、ご協力お願い致します!


2022年5月2日月曜日

#証明書 #自動更新

 I am pleased to report that automatic updates of Let'sEncrypt are now working with Domino V12.0.1 and Amazon Route53.

In conclusion, I felt that this feature should definitely be used if your environment allows it!

みなさま、こんにちは。

さて先日、第一回大阪研究会を開催させて頂きました。
簡単にブログ記事にて公開致しておりますので、ぜひご一読ください。

こちらにも書いていますが、今年の大阪研は研究会活動以外にも活躍の場を広げて参ります。
ぜひご期待ください。!


さて今回は弊社で運用してますDominoサーバー2台(アプリケーション+メール、Traveler)の証明書をLet's Encrypt + AWS Route53への切り替えで、自動更新に成功しましたので、報告させて頂きます。

あらかじめお断りですが、本作業は私が実施したのではなく、株式会社エフ
そう、エフといえば御代アンバサダー・・・にお願いして、実装して頂きましたので、設定手順等については説明致しませんので、ご了承ください。


まずは背景です。

弊社では従来、両サーバーは自己証明書を利用していました。
つまりブラウザからアクセスする場合、毎回以下のような画面が表示され、無理やり開く必要があったのです。


邪魔くさいですよね~

社内で配布するマニュアルもこの画面を経由してログオンするマニュアルになってました(汗

ただ証明機関を利用した証明書となると、結構費用が発生してしまいます。・・・・Let's Encryptを除いては!!

そういえば、以前に中野アンバサダーの以下記事を読んで興味を持っていたことを思い出しました。

Let's Encrypt で取得したマルチドメインでワイルドカードなTLS 証明書をエクスポートしてみた

V12.0.1ではCertMgrが強化されているのでしたら、ぜひ使ってみたい。

弊社の環境はイントラ内の閉じた空間にDominoが、DMZにTravelerが存在しています。
CertMgrではHTTP-01チャレンジとDNS-01チャレンジが利用できるのですが、HTTP-01チャレンジは対象サーバーがLet's Encryptと80番ポートでの通信が必要なため、弊社ではDominoサーバーがNG。

ということでDNS-01チャレンジを選択することとなりました。

DNS-01チャレンジの場合、対応できるDNSサービスを利用する必要があるのですが、たまたま・・・ほんとうにたまたま、弊社では近々にAWS Route53へ移行の準備を進めていたのです。

先の中野アンバサダーのブログでも、Route53を使って成功したと書かれており、トライしてみることとしたのです。

エフ様に依頼して数日。
この間、エフ様でも弊社と同じ環境を準備頂け、そちらでテストの上、概要と手順書を作成して頂けました。

それらを利用し、2月28日 13時から実環境の作業に入りました。


弊社の環境でひとつ引っかかったのが組織でした。
弊社ではDominoとTravelerを別の組織にしてしまっていたのです。

こうなると、Dominoサーバーで取得したワイルドカード証明書をTravelerで利用できないことが判明しました。

従って、両方のサーバーに更新するプログラムと設定を追加することとなりました。

まずはDomino。

ちょっとしたトラブルはありましたが、スムーズに完了することができました。

続いてTraveler。
こちらは先のDominoの内容をコピーしつつだったので、問題ないかと思いきや、エラー!!

しばらくふたりで頭を抱え、いろいろと調べてみました。

御代様が細かなログを見ていて気付きました。

サーバーとRoute53のやり取りで、一時的にDNSに「_acme-challenge.ドメイン」というTXTレコードを追加し、それをキーに認証が進むことで証明書が発行されるのですが、Travelerサーバーに関して、既にこのキーがなぜか存在していたのです!

なぜこんなキーがあるのかは不明なのですが、恐らく使っていないだろうと判断して、既存キーをリネームして再度実行したところ、無事証明書を取得することができました。

Verseを開くと、もちろん証明書エラーの画面は表示されず、鍵がかかった表示となりました。


鍵マークをクリックすると、「この接続は保護されています」となり、


さらに▶をクリックすると、「証明書は有効です」となっています。


最後に証明書です。
以下が自己証明書になります。


消してしまってますが、文字通り「発行元」と「発行者」が同一であり、アイコンも×が押されています。

以下が今回取得したものです。


発行先は先と同じなのですが、発行元が「R3」となっています。
もちろんアイコンには×はありません。

ちなみにLet's Encryptの証明書は有効期間は3カ月なのですが、両サーバーの設定を証明書期限の30日前で設定しています。


っとここまでで公開してもよかったのですが、せっかくなので自動更新を確認してから本記事を公開させて頂くこととしました。

少し社内の確認作業があり、Travelerサーバーは一度手作業で更新してしまったので、アプリケーションサーバーのみの結果になります。

まず早速ですが、証明書を確認します。


期限が2022/04/30からのものに変わっていました。

つぎにCertManagerの内容を確認します。


最終更新が 2022/04/30(土) 13:39:27 になっており、証明書の更新日、有効期限も適切に処理が完了されていました。

さらにトレースログです。

前回 2022/02/28 から 2022/04/30 までとんでますね。

一部内容ですか、以下となります。


DNSのTXTレコードを書き換えていることがわかりますね。

ちなみに前回の証明書はアーカイブされています。

いかがですか?
これで証明書の更新が完全に自動化されたことがご理解頂けたかと思います。

便利ですよねー。

Domino V12.0.1を利用されていて、DNSが対応しているのでしたら、使わないのはもったいない機能かと思います。

もしご興味ございましたら、ぜひ信頼と実績の株式会社エフへお問い合わせください!!




2022年4月19日火曜日

#HEI #Replication の対象レコードを絞りこむ

 This time I will describe how to narrow down the target data in HEI's Replicaton.

In DirectTransfer I specified it in a SQL statement, but in Replication it seems to be set in a different place.


みなさま、こんにちは。
いい気候になってきましたね。コロナも多少下火?になりつつありますので、ぜひ感染対策を十分に行った上で、楽しいGWを過ごしたいものですね。

さて、まずは告知からです。

2022年ノーツコンソーシアムの各研究会が今月から本格的にスタートします。
直近では、

  • 4月22日 大阪研究会
  • 4月26日 ザ・ノーツ研究会
  • 4月27日 事例研究会

その後も続々と予定がリリースされるかと思います。

研究会にエントリーされていない方は、まだまだ間に合いますので、こちらから登録ください。
研究会の見学も随時可能ですので、エントリーするかお悩みでしたら、一度のぞいてみてください。その場合は事務局へメールでご相談ください。


中でも大阪研究会についてさらに一言・・・

昨年リリースできなかった大阪研アプリ。
単に1年延期したのではなく、中身(設計要素)を掘り下げた発表資料を作ろうと意気込んでいます。
もちろん完成品は皆様にダウンロードできるように致しますが、せっかくなので自社向けにカスタマイズしたいと思われる方もおおいはず。
その為には大阪研アプリの奥底をいっしょにのぞいてみませんか?

今回は会場として北新地で少し広めの貸会議室を準備しています。
もちろんリモートも大歓迎ですので、今週金曜、よろしくお願いします。

2022年3月16日水曜日

[ビュー]ダイアログから選択するリストについて

 I had the opportunity to discuss the list when using the "Use View Dialog for Choices" option, so I am leaving it as an article.

みなさま、こんにちは。
関西ではここ数日、とても暖かい・・・というか、暑いくらいの日が続いております。
桜の開花もあと10日くらいでしょうか。
造幣局の桜の通りぬけも今年は抽選で実施されるそうなので、申し込んでみようかと考えています。

さて今回は標題に書きましたが、ダイアログリストフィールドの選択肢として、{[ビュー]ダイアログから選択}した場合のリスト・・・以下の内容


について、弊社でちょっとしたトラブルがありましたので、わかった範囲でお伝えさせて頂きます。


ちょっとしたトラブルとは・・・

新規でデータベースを作成していく中で、対象のデータベースがこのリストに表示されないという現象でした。

今回は新規で4つのマスターデータベースを作成し、別のデータベースからそれぞのビューのリストから値を持ってくるというものなのですが、どういうわけか4つ中2つがリストされ、2つが存在しませんでした。

それぞれのプロパティを比較してみましたが、違いがわかりませんでした。

どうすれば解決できるのかがわからなかったのですが、とあるアンバサダーからノーツクライアントのワークスペースに追加されてますか?との質問を頂きました。

確認したところ、ワークスペースには存在しています。

ただ先の表示されているものとされていないものは、違うワークスペースに存在していました。

そこで表示されているほうのワークスペースに表示されていないデータベースを移動してみたところ・・・

なんとリストに表示されました。

逆にすべてを表示さないワークスペースに移動させたところ、全部消えてしまいました。

真っ先に疑ったのがキャッシュ(Cache.NDK)ですが、まずはこのままでサポートに以下問い合わせを行いました。

「このリストはどこのデータが利用されていますか? また順番はどうなっていますか?」

見る限り文字コードらしき並びはしているのですが、どうもそれだけではなさそうで、2バイト文字がそこかしこに現れてます。

緊急度は「低」で依頼したのですが、半日もかからず回答がありました。

まずこのリストの元ですが、先のアンバサダーの言われる通り、desktop8.ndkから作られていました。

但し「データベースが約260個以上ある場合、データベース名が表示されません。」との事です。
そう、これが原因でした。
はじめは「なぜ?」と疑問だったのですが、何かしら1フィールドのサイズ制限が原因になっているのではと推測しています。

ということで、ワークスペース上の大量に表示されたアイコンの不必要なものをすべて消し、表示されないという問題は解決しました。

なおサポートからの追加情報として、desktop8.ndkのデータベースメンテナンスを紹介頂けましたので、共有させて頂きます。

2022年3月11日金曜日

#HEI (HCL Enterprise Integrator)の設定

I could not find a detailed configuration procedure written in Japanese for HEI (HCL Enterprise Integrator).

I finally started using it at our company, so I have created the configuration procedures for Connection and Activity, so please refer to them.

みなさま、こんにちは!

さてまずは告知からです。

ノーツコンソーシアム

先日のオープンセミナーでは、私の所属する大阪研究会のほか、さまざまな発表がございました。

本年度の研究会申し込みがスタートしておりますので、ぜひお申込みください。

また早速ですが、第一回大阪研究会も日程・テーマが決まりましたので、皆様のご参加をお待ちしております!

ノーツコンソーシアム非会員の方につきましても、ぜひ一度見学(現地orリモート)ください。
普段では得られない情報・経験が豊富に詰まっておりますので、まずは一歩踏み出してみてください!!


さて本題です。

弊社ではNotes/DominoのライセンスはCCB サブスクリプションという月額契約で利用しています。
その後、Voltが発売となりこのライセンスに機能追加したのですが、このVoltのライセンスにはなんとHCL Enterprise Integrator (以降 HEI)のライセンスが付属しているのです。

HEIと言えば・・・
ノーツポンプと呼ばれた時代に検討したのですが、結構な費用が必要で、過去に導入を却下された経験がある製品です。


それがなんと勝手についてくる!!

なんてすばらしい!!


まさに使わない手はないということで、なんとか自社で利用開始に繋げられればと今回トライしてみましたので、その経験をお伝えしたいと思います。

インストールについては、少し分厚いですが、130ページの日本語マニュアルがございますので、必要あればベンダー様に提供頂いてください。

ちなみにインストールされている内容を確認する場合は、以下コマンドを実行します。

  tell lei status

すると、以下のような情報が表示されます。


余談ですが・・・ほんとに余談ですが・・・

情報はすべて"HEI"で取得できているのですが、コマンドは"LEI"という・・・
となると興味ありますよね。


・・・すいません、今回もこれがためにサポートの方の手を煩わせてしまいました(笑


さて本題のデータソースとNotesアプリの接続設定ですが、これがなかなか情報がないんです。
インストールしたモジュールに「Lotus Connector 接続ガイド」と「HEI Activities and User Guide」があるのですが、前者は日本語化されているのですが、後者は英語のままでした。
またそれぞれ内容も画面の項目説明程度までで、実際にどのように設定するのかが理解できませんでした。

かなり探したのですが、設定を図解するような情報が見つけられず苦労しました。

ようやく知っている方にヒントを頂き、なんとか進めることができましたので、今回は以下シナリオにて連携するアプリをDominoサーバー上に作ってみたいと思います。

IBMiのマスターテーブルにODBC接続し、Notesアプリケーションにダウンロードしてくる

手順としてはおおきく5つあります。

  1. IBMiとのODBC接続を作成する(※)
  2. 受ける側のNotesアプリを作成する(既存アプリでも可能)
  3. IBMiとのConnection文書を作成する
  4. NotesアプリとのConnection文書を作成する
  5. Activityで3と4をつなげる文書を作成する
※IBMiと接続するためのODBCドライバが必要です。
ご使用のエミュレーターに付属しているかと思いますので、そちらをご使用ください。
弊社では IBM i Access Client Solutions(ACS)に付属のドライバを利用しました。

それでは早速進めて参ります。

1. IBMiとOCBCの接続を作成する

Dominoサーバーのコントロールパネル⇒管理ツールから[ODBCデータソース]を開きます。
弊社では64ビットを使用しました。


システムDSNタブに移動し、[追加]をクリックします。


データソースの新規作成画面が表示されますので、利用するODBCドライバを選択します。
弊社では iSeries Access ODBC Driver を利用しました。


[完了]をクリックするとODBCセットアップ画面に進みますので、データソース名(自由な名称)とシステム(IBMiのIPアドレス)を入力します。


次にサーバータブに移動し、デフォルト SQL スキーマまたはライブラリーに利用したいIBMiのライブラリを登録します。


最後にパッケージタブに移動し、パッケージ・ライブラリーにも利用したいIBMiのライブラリを登録して[OK]します。


※必要に応じて、設定変更が必要な場合があるかもしれません

至って簡単ですね。それでは次に進みます。


2. 受ける側のNotesアプリを作成する(既存アプリでも可能)

IBMiからデータを受け取るNotesアプリを作成します。
単なるNotesアプリですがひとつ注意が必要です。

それは・・・データの型を合わせる必要があります。

たまたま私の設定ミスで発生したのですが、IBMiの数値項目をNotesが日付/時刻で受け取ろうとして発生したエラー画面です。


今回は他のアプリケーションから参照するだけのアプリを想定していますので、デザインは考えずに、フィールドを追加しただけのフォームと、確認用にビューをひとつつくりました。



以上で次に進みます。

3. IBMiとのConnection文書を作成する

いよいよHEI Administratorを使って、設定していきます。
まずはIBMiとのODBC接続です。

[1. Add Connection ▼] をクリックして、一覧から[ODBC]を選択します。


設定する場所は、Connectivityセクションの

 ・Name(任意の名前)
 ・Data Source(▼を押すと、ODBCデータソースが表示されます)
 ・User Name(IBMiのユーザー)
 ・Password(IBMiのバスワード)

以上を設定すると、次のTable Selectionセクションで
 ・Owner(▼を押すと、ODBCで設定したライブラリが選択できます)
 ・Name(▼を押すと、Ownerに含まれるテーブル一覧が表示され、選択できます)

テーブルを選択すると、Column(s)に自動でIBMiの項目が表示されます。


以上でIBMiとのODBC接続定義が完了となりますので、保存して閉じます。

4. NotesアプリとのConnection文書を作成する

次にデータを受け取る側のNotesアプリへの接続文書を作ります。
[1. Add Connection ▼] をクリックして、一覧から[Notes]を選択します。


こちらで設定する場所は、Connectivityセクションの

 ・Name(任意の名前)
 ・Domino Server(アプリケーションの存在するサーバー)
 ・Notes Database(▼を押すと、存在するデータベースの一覧が表示されます)

続いてすぐしたのタブで Selection Optionsを選択し、

 ・Select Documents by Form(▼を押すと、選択したデータベースに存在するフォームの一覧が表示されます)

以上で完了です。こちらも保存して閉じます。

5. Activityで3と4をつなげる文書を作成する

ようやく最後の手順です。
先に作成したふたつのConnection文書をActivityで繋げます。

[2. Add Activity ▼] をクリックして、一覧から[Direct Transfer]を選択します。


こちらで設定する場所は、Identificationセクションの

 ・Name(任意の名前)

次に[Sourceセクションの▼]をクリックして、にIBMiの接続を呼び出します。

さらに[Targetセクションの▼]をクリックして、にNotesの接続を呼び出します。

これら2か所では存在するすべてのConnection文書が表示されますので、間違わないよう注意しましょう。

続いてMappingセクションですが、ここまでの作業でフィールド名として、IBMiと同一のフィールドをNotesに設定したため、ここでは[Automatic]にチェックし、[by Name]が選択されていることを確認します。


次にSelect Statementが必要になります。IBMiのすべてを対象とする場合、

 Select * FROM [テーブル名]

と記載します。
もちろんここでSQLのSelect文を記述し、対象となるデータの絞り込みが可能となります。

設定は以上ですので、保存して閉じます。

2022年1月31日月曜日

#検索 付きPicklist

Would you like to search the @picklist list?

This is a full-text search, not just forward matching.

Our users have asked for this, and I am sorry that I am unable to make it happen at this time.

Please vote for the Ideas Portal below!

https://domino-ideas.hcltechsw.com/ideas/DDXP-I-152


みなさま、こんにちは。
なかなかコロナウィルス、終息しませんね(汗
早く治療薬が容易に入手できるようになり、withコロナ期に入ってくれることを期待したいと思います。


さて、本題です。

ノーツで文書を作成するのに、よく利用する@DbColumnや@DbLookup、さらに@Picklist。

ほんとに便利ですよね。
入力者の手間を省くだけでなく、選択肢の統一化(たとえば全角と半角の違い)などにたいへん効果のある重要な機能(@関数)かと思います。

いずれもダイアログボックス(モーダルウィンドウ)を開き、その中に対象の一覧を表示し選択させるというものですが、つい先日、ユーザーからこのような一言を貰いました。


「選択肢が増えてきたから、探すのがたいへんやわ。検索できないの?」


そういえば考えたことありませんでした。

弊社ではよく@DbLookupを利用し、各種のマスタデータベースから値を呼び出しています。
その際には探しやすいように、例えば顧客マスタの場合、1列目によみがなの先頭1文字の50音のあたま「あ・か・さ・た・・・」を。2列名に先頭1文字を設定して、▲マークで折りたたんで表示するようにしています。
そのため探すにはそれほど手間がかかっていないと勝手に考えていたのですが、量が増えるに従い、探しにくくなったようで、このようなひとことに繋がった模様です。

ということでまずは画面を見てみます。

こちらが@DbColumnの画面。複数選択可、リストにない値も可としたものです。


つづいて@DbLookupです。
こちらは単一選択のみで、且つリストにない値は許していないものになります。


最後に@Picklistです。
あまりいい例ではありませんが、お許しください(汗


いずれも検索できるような入力エリアはありません。

イメージとしては、メールの宛先選択ダイアログみたいになれば・・・


ということで、早速それぞれのヘルプ文書を見てみます・・・・しかし「検索」を有効にするような記述は見つかりませんでした。

そう、これらの準備された関数では解決できないのですorz

ただ実は全くできないのではなく、ダイアログ(モーダル)ウィンドウを開いた状態で、検索文字を入力してEnterを押すことで「クイック検索」という機能が利用可能です。

例えば以下のような得意先選択の@Picklistで、


「日本」と入力してEnterを押してみます。すると、以下のような「クイック検索」の小ウィンドウが表示されます。


ここで「検索」をクリックすると、このように「日本」で始まる最初の値が選択されて表示されるのです。


これでも利用可能ではあるのですが、残念なことに「前方一致」しか検索できません。
確かにメールの宛先選択も、


前方一致しか検索できません。

いかがでしょう。
これはなんとか対応したいですよね。

ということでとあるHCL Ambassadorに問い合わせたところ、既にIdeas Portalには投票されているということを教えていただきました。

https://domino-ideas.hcltechsw.com/ideas/DDXP-I-152


ということで、ぜひ皆様、こちらに投票してください!!
多くの投票があつまれば、きっと実現に向けて検討頂けるでしょう。

みなさま、ご協力よろしくお願いします!!