ページビューの合計

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文を記述し、対象となるデータの絞り込みが可能となります。

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