ページビューの合計

2024年12月11日水曜日

#DominoLeap ( #Leap ) 表の中のデータを活用したい

This will be another Domino Leap topic.

I want to use array data retrieved via the REST API for workflow emails, but I couldn't easily set it up.

Miyo Ambassador gave me a solution, which I will share with you here.


みなさま、こんにちは。
またまた今回もDomino Leapの話題です。

Domino Leapは簡単に外部のAPIに接続し、値が取れることはしばらく前に以下の記事でご紹介致しました。

#Domino #Volt ( #dominovolt )で 外部 #REST #API ( #restapi )を使う

単純にデータを取ってくるだけだと問題ないのですが、たとえば先日掲載しました郵便番号から住所を取得するAPIでは、戻ってくるJSONが配列になっており、Domino Leapのローコード画面で扱う場合は、表データになっています。

今回の例では、戻ってくるJSONは、以下のように[]で囲まれた配列になっています。


Domino Leapのサービスで呼び出すと、以下のように表として認識されることになります。


このデータをDomino Leapに取り込む場合、単にページに配置したフィールドで受けようとすると、以下のようなアラートが表示されます。


取得するデータと同じ数のリスト(または表)で受ける必要があるというものです。

そのため、値を受け取るにはページに表を配置し、その表に値を受け取るフィールドを作成する必要があります。
そうすることで、以下のように取り込むデータとDomino Leapの関連付けを行うことが可能となります。



ここまでは問題ないのですが、この表で受け取ったデータをさらに利用しようとした場合、普通にページに配置したフィールドと同じような取り扱いができないのです。

例えば、ワークフローでメールを送信する場合の本文・・・


このボタンを押すことで、ページ内のフィールドを本文に呼び出すことができるのですが、表内のデータはこちらにリストされていません。


これではせっかく簡単に取得してきたデータを有効活用することができません。
どうにかして表内のデータをページ上に配置したフィールドにもっていく必要がありそうです。

表内のフィールドのonItemChangeイベントや、追加で配置したデータを受け取るためのフィールドのonItemFocusイベントなどで試したのですが、うまくいきません。

よくよく考えてみると、もともと表ですから、複数行のデータが存在することが可能ですよね。
ここがちゃんと指定できていないことが原因のようでした(汗


ということで、困った時の"神"頼み。
ではないのですが、Domino Leapといえば・・・の御代アンバサダーに相談させて頂きました。
問合せて5分。
以下回答を頂きました。


きっと御代アンバサダーも同じことを考えて、既に解決策をお持ちだったんでしょう。

ということで、こちらを利用させて頂きます。


ページに「都道府県」「市区町村」「町域」の3フィールドを用意して、表のonAddイベントに取得したそれぞれの値をセットするようにしてみます。

前半部分は御代アンバサダーから頂いたスクリプトをそのまま記述しています。
後半でそれぞれ表の列データをページのフィールドに割り当てています。

・都道府県(F_HPref)に表の1列目(colid.get(0))をセット
       BO.F_HPref.setValue(colid.get(0).getValue());

・市区町村(F_HCity)に表の2列目(colid.get(1))をセット
       BO.F_HCity.setValue(colid.get(1).getValue());

・町域(F_HTown)に表の3列目(colid.get(2))をセット
       BO.F_HTown.setValue(colid.get(2).getValue());

以上の設定で、「郵便番号」を入力することで、API経由で表に値が取得されます。
表に値が追加されたことで、ページの3フィールドに値がセットされるようになりました。

こうなれば、あとは普通のページ上のフィールドと同じ扱いができるようになります。
先のメール本文のリストにも表示されました。



あとは見た目です。
ページ内の表に「都道府県」「市区町村」「町域」があり、同じフィールドがそれぞれページ上にもあるのはよくないですよね。

ということで、以下のように表を非表示にすることでこの点は解決することができました。


これで今までずっと悩んでいたことが解決できました。

・・・もっと早く聞いてたらよかった・・・

いつもながら、御代アンバサダー、ありがとうございます!!


御代アンバサダーがいらっしゃる株式会社エフ様では、さまざまな情報提供が行われております。
今さら気付いのですが、もしかしたらサンプル配布されているアプリに本件実装されているかも・・・

弊社でも「Notes/Domino開発tipsサービス」は契約させて頂いており、毎週届く内容はナレッジとしてどんどん蓄積されておりますので、ぜひご検討ください。

年内の記事はこれで終わりかな?

みなさま、よいお年をお迎えください!!

2024年12月4日水曜日

#Domino #Leap フィールドに入力する文字を制御する

This will be another Domino Leap topic.

If you want to integrate with other systems, don't you want to control the format and number of digits of the data?

In this article, I will show you not only what you can set in the properties, but also how to set them using “regular expressions”.


みなさま、こんにちは。
今回もLeapネタになります。

というか、告知ネタがないのがさみしい・・・

気を取り直して本題。

異なるシステムへデータを送信する場合など、送信先のフィールドフォーマット(形式や文字数)に合わせたいことがあるかと思います。

ちなみに今回の弊社案件は、得意先マスタ申請ワークフローをNotesからLeapに移行した内容になります。
最終的には申請された値をIBMiへ連携することを想定して作成しております。

この中で発生した項目について、いくつかご紹介致します。


まずはコードです。
弊社では[得意先コード(数字4桁)]と[得意先支店コード(数字3桁)]という形式になっています。
こちらをLeapのフィールドに設定してみたいと思います。
配置したフィールドはこのような感じです。


まずはデフォルトのプロパティを見てみます。


文字数は[最大文字数(デフォルト:50)]を変更することで制御できそうです。
[形式]という項目があるので、こちらで形式を指定できそうです。
[形式]のインフォメーションを見てみると、


このような説明が表示されました。
ということで、今回は以下の設定を行ってみます。


得意先コードの例は以下になります。



それでは入力を確認してみます。
まずは適切に数字4桁-数字3桁で入力した結果です。

想定通り、入力することができました。
次に桁数を不一致させてみます。
以下の例では得意先コードを5桁(1桁多い)、得意先支店コードを2桁(1桁少ない)入力になります。


しっかりと制御してくれました。


ここでひとつ疑問。
最大文字数と形式が不一致していたらどうなるのでしょう?
以下は得意先コードの最大文字数を5に、得意先支店コードを2に変更した上で、正しく4桁-3桁で入力した結果になります。

得意先コードは最大文字数より少なく、形式に一致しているため問題なし。
得意先支店コードは最大文字数の制限にひっかかり、エラーとなりました。


それではそれぞれ最大文字数で入力したらどうなるのでしょう?


得意先コードは形式との不一致。得意先支店コードは最大文字数との不整合という結果になりました。

このことから、厳密な文字数管理が必要な場合、最大文字数と形式をしっかり合わせて登録することで不必要なエラーを回避したほうがよさそうです。


次に[得意先カナ名(16バイト)]に挑戦したいと思います。
弊社の設定では、あらゆる半角文字(英数カナ)が許可されているフィールドになります。(但し記号は不可)
先の形式のインフォメーションにはここは触れられていませんでした。

ということで[正規表現]にチャレンジしてみたいと思います。
※正規表現についてはここで細かくは触れませんので、お手数ですが各自ググってください。

それでは設定内容です。


形式に記述している文字列は、

^[a-zA-Z0-9ヲ-ン]+$

になります。
早速ですが、いくつかテストした結果は以下の通りです。


結構いい感じですよね。
もし記号が必要なのであれば、正規表現に追記することで解決は可能です。


続いて郵便番号です。
プロパティは以下を設定しました。


いくつかパターンを試しましたので、動画をご覧ください。


適切な処理が行えていることがご理解頂けるかと思います。
特にハイフンなしで7桁数字を入力した場合、ハイフンを追加した###-####形式に変換されている点にご注目ください。


さてせっかく郵便番号が取得できましたので、公開APIを利用して住所を呼び出してみましょう。
今回はzipcloudから提供されている無料サービスを利用します。

まず郵便番号フィールドのonItemChangeイベントをクリックします。


[サービスの呼び出し]にチェックして、[サービス構成の追加/編集]をクリックします。


[URLを入力]を選択して、URLにサービスから提供されている値を入力します。
今回は先のサービスで提供されているURL

https://zipcloud.ibsnet.co.jp/api/search?zipcode=7830060

と入力して、横の歯車マークをクリックします。

すると以下のような[サービスの詳細]画面が表示されます。
左側にパラメーター名・・・ここでは[zipcode]に郵便番号がセットされています。
右側には本URLで指定した「7830060」の結果が取得されていることがわかります。


[OK]⇒[次へ]で進めると、[入力割り当ての作成]画面が表示されますので、

①ソースとして[郵便番号]
②ターゲットとして[zipcode]を選択して、
③のボタンをクリックすると、
④の行が追加され、設定が完了します。


[次へ]をクリックすると、[出力割り当ての作成]画面が表示されます。
先と同じように関連付けを行うのですが、[address1]と[都道府県]を選択した時点で、以下エラーが表示されてしまいました。


API接続を進めていくとよくぶつかるエラーになります。
戻ってきたJSONデータの階層と受けるLeapの階層が同じ必要があるようです。
・・・ここはなんとか回避できるとウレシイのですが・・・
ということで、今回取得する[都道府県][市区町村][町域]の3フィールドをひとつの表の中に入れてみます。

すると、何事もなかったかのように関連付けを行うことができました。


[次へ]をクリックして、必要があれば[タイトル]や[ID]を書き換えて[OK]で完了です。
もう一度[OK]を押して、サービスの設定画面を閉じます。

ということで、テストです。
今回の動画でご確認ください。


いい感じですね。
こんなに簡単にAPI連携ができるなんて、ほんと助かります。



最後は電話番号やFAX番号です。
携帯電話も可としたいため、どうしようかと考えていたのですが、こんな時こそChat-GPT
ということで帰ってきた正規表現の値は

^(0[1-9]{1}[0-9]{0,4}-[0-9]{1,4}-[0-9]{4}|0[789]0-[0-9]{4}-[0-9]{4})$

でした。
数字とカッコばかりで、素人で読み取るには・・・(汗

ということでそのままセットして試してみます。


おおー、さすがにハイフンなしからの変換はできませんでしたが、いい感じに制御してくれています。


このほかに、名称などの全半角なんでもありのフィールドで最大バイト数の制限の設定された項目があるのですが、こちらは現時点で解決できておりません。

どなたか知見ございましたら、ぜひ教えてください!!

今回は思わぬ大作になってしまいました(汗

引き続き、弊社案件で気になる点がありましたら順次報告させて頂きますので、よろしくお願い致します!!



2024年12月2日月曜日

#Domino #Leap 任意のステージで #データグリッド を表示する

In this article, I will describe some notes on DominoLeap's Datagrid, which uses Stage for filtering.

It is a very simple matter, but if you don't know it, you may have some trouble.

みなさま、こんにちは。

ついに2024年もあと1か月となってしまいました。
毎年ながら、12月は気付くと年末が来るというドタバタな1か月になるのですが、今年は輪をかけて業務が積みあがっており、さらにあっという間に過ぎてしまうのではとみております。

そんな中ではございますが、少し気になる事項がありましたので、取るに足らないことかとも思いましたが、備忘録として記事とさせて頂きます。

弊社のワークフローは現在すべてDomino Leapに移行していっております。
今回も新規のワークフローの依頼があり、その中で躓いたことになります。


さてその内容ですが、アプリケーションページとして一覧を表示させるデータグリッドをよく利用します。
データグリッドは構成画面でフィルターを設定することができるため、さまざまな条件の一覧を提供することが可能になっています。


今回の案件では、ユーザーが選択したステージのデータのみを表示させるような設定を行ってみました。
設定そのものは難しくないのですが、1点注意点がありましたので、そちらをご紹介致します。


前準備として、ステージを選択するドロップダウンとデータグリッドを配置したページを準備します。
今回の例では、以下のようになります。


要はドロップダウンで選択したステージのデータだけをデータグリッドに表示させるというものです。

早速ですが、設定した内容です。


文字列が折り返されているのでわかりにくいですが、
「保存されたステージ」が「ステージ選択(ダイアログ)」と等しいデータを表示させる設定になります。



早速試してみますと・・・



データが表示されません。
今回は「否認」ステージを選択したので、一度外してみますと、


確かに「否認」ステージにデータはあります。
ダイアログに不必要なスペースが入っているのかなど、いろいろと調べて判明したのが、ステージは名称でなく、IDで指定する必要があったのです。

こちらが当初の設定でした。


ダイアログの「表示値」と「保存値」が同じ名称になっていたのです。
こちらの「保存値」をステージIDに変更します。


ちなみにステージIDは、ワークフロー画面でステージを選択すると表示されます。


結果、以下のように無事「否認」ステージのデータのみをフィルターして表示させることができました。


もちろん他のステージも同様です。

こうすることで、ステージごとにデータグリットを作成する必要なく、表示を切り替えることが可能になりました。



以上、ステージ以外の項目の場合、直接名称で設定が可能であったため、少し注意が必要である点のみご紹介させて頂き、今回は終了とさせて頂きます。

いつもお読みいただき、ありがとうございます。

2024年11月20日水曜日

#Domino #REST #API のインストール

Today, I have installed the Domino REST API and report on it.

I hope you will find it informative, such as the lack of Java on the Windows server, and the troubles I had because I relied on the instruction manual.


みなさま、こんにちは。
先日は弊社のクラスターサーバーのOSをWindows2019にアップデートして、Domino V14をインストールするまでを紹介致しました。
今回の目的はVoltMXGoで利用するための準備になりますので、今回はこのサーバーにDomino REST APIをインストールしていきたいと思います。


モジュールは先般と同様、My HCLSoftwareでダウンロードしてください。
現在のダウンロードファイルは「Domino_REST_API_V1.1_R14_Installer.tar.gz」というファイルになりますので、まずはこちらを解凍しておきます。
Windows標準では解凍できないかと思います。弊社では7-Zipというアプリを利用して解凍しました。

結果、以下のようなフォルダを入手できます。


次のこの「restapiInstall-r14.jar」ファイルをDominoのプログラムディレクトリにコピーします。
コピーできましたら、Windowsのコマンドプロンプトを管理者として実行します。


コマンドプロンプトのディレクトリをDominoのプログラムフォルダーに移動して、以下コマンドを実行します。
※各ディレクトリはご自身の環境に合わせて変更してください。

java -jar c:\domino\restapiinstall-r14.jar -d="C:\Domino\Data" -i="C:\Domino\notes.ini" -r= "C:\Domino\restapi" -p="C:\Domino\restapi" -a

本来はここでコマンドが進んで完了のはずなのですが、弊社サーバーでは以下画面が表示されてしまいました。

どうやらjavaがインストールされていないようです。


ということで、Windows版のjavaをダウンロードしてインストールします。

一度再起動して、再度先のコマンドを実行してみますと、


何かエラー出てます?
どうもやらWindowsで最新とインストールされたJavaはJava8であったのに対し、配布されたjarファイルはJava17でコンパイルされたことが原因のような情報に行きつきました。

そこでJava17にアップグレードを行ってみました。
オラクル社サイトより"Windows x64 Installer" をダウンロードして、得られたexeを実行します。(すべてデフォルト選択で進めました)
以上で"C:\Program Files\Java\jdk-17"にインストールされました。

続いて環境変数JAVA-HOMEを変更します。
変更方法はコントロールパネル>システム>システムの詳細設定画面を開きます。
以下の「環境変数」ボタンをクリックして設定を行います。


私の環境に"JAVA-HOME"がありませんでしたので、「新規」で先のディレクトリを追加します。



追加しましたら一度サーバーを再起動して、再度コマンドを実行します。
すると・・・
かなりたくさんのメッセージなどが表示されました。
どうやら失敗してそうです(汗


書かれていた内容を読み込んではみたのですが、どのディレクトリが間違っているのかわからず、HCL様サポートへ上記内容を送付してみました。
するとほどなく本スクリプトのポイントの確認について、回答がございました。
内容は

このコマンドについて、以下のポイントを確認してください。
・-d で指定したデータディレクトリのパスが正しいか
・-i で指定したNotes.iniのパスは正しいか(Domino 14では、Dataディレクトリにあります)
・-p で指定したDominoサーバーのパスが正しいか

との事でした。
見た瞬間にわかりました。
-pがDiminoディレクトリ配下のフォルダであるrestapiを向いていたのです。
先のスクリプトを正すと、

java -jar c:\domino\restapiinstall-r14.jar -d="C:\Domino\Data" -i="C:\Domino\notes.ini" -r= "C:\Domino\restapi" -p="C:\Domino" -a

が正解でした。

こちらを実行すると、無事インストールに成功しました。
・・・手順をまるまる読んで実施し、各パラメーターの中身まで確認していなかった私のミスでした(汗
ちなみに成功画面は以下になります。


以降、notes.iniの値追加と3つのnsfとそれぞれのntfが存在することを確認し、インストールは無事完了です。

続きましては以下サイトの手順に従って進めます。


まずはCheck connectivityです。
手順によると、FQDN名と"tango"に対してPingが通るように設定します。
弊社では通りませんでしたので、hostsファイルに記述を追加します。
※hostsファイルの場所>>C:\Windows\System32\drivers\etc\hosts

追記する内容は、以下4行です。

    127.0.0.1     domino.acme.com
    127.0.0.1     tango
    ::1           domino.acme.com
    ::1           tango

保存してpingを確認すると、いずれも応答があることを確認します。


次はConfiguring portsです。
詳しい内容は読んで頂くとして、先のFQDN名に対して、8880ポートで接続してみます。


無事コンソールが開きました。
下部にはインストールされているバージョンが表示されていることが確認できます。

以上でインストール作業は完了することができました。
あとは個別の接続設定を追加して、接続環境を準備していくことになります。

こちらはあらためて記事とさせて頂く予定ですので、今日のところは一旦以上とさせて頂きます。

少しJavaの準備で手惑いましたが、とりあえず現時点(2024/11)ではこの内容で環境は構築できるかと思いますので、ご参考になさってください。

なおDomino REST APIはDominoのライセンスに附属しておりますので、有効なライセンスをお持ちでしたらみなさまご利用可能です。
いろいろ面白そうですので、機会あればぜひお試しください。

2024年11月19日火曜日

#Domino #Leap 初期テンプレートの配布

 I am pleased to announce that I have started distributing the latest version of my previously created Domino Leap template, which incorporates the “creator” and “creation date” required at the beginning of the Domino Leap.

みなさま、こんにちは。
さて今回は3年ほど前に掲載しました

Notesアプリ開発者が、 #Volt で最初につまづくこと

の最新版の配布を開始致しましたので、そのご案内になります。

先日より「有効なCCBライセンスを所持しておれば、無料でDomino Leapのアプリを5個作成できる」ようになりました。

そのためテスト含めて、利用を始める方が増えられるのではと思い、改めてご紹介させて頂いた次第です。


内容は至って簡単なのですが、おそらく最初に躓くであろう「作成者」「作成日」を中心に、「所属」や「上司」、「メールアドレス」をログインユーザー情報からDomino Directoryを参照して自動で表示させています。

ぜひダウンロード頂き、サービスの設定をご覧ください。
サービスの設定の簡単なヒントにもなるかと思います。


なおダウンロードはMISC Marcketよりお願い致します。
今ですとこの位置にございます。


もちろん無料で、ログインせずにゲスト購入が可能になります。

簡単な使い方も同梱しておりますので、ぜひご活用ください。



2024年11月12日火曜日

#Domino #V14 へのアップデートについて

 Domino V14 requires Windows Server 2019 or later.

Since our Domino was using 2016, I tried updating from the OS, and it was a beatifully easy process.


みなさま、こんにちは。
本業にイベントにとドタバタしており、なかなか記事が書けておりませんでした。
せっかくですので、まずはイベント報告を行わせてください。

10月25日に香川県高松市の玉藻公園にございます披雲閣という施設で、数年ぶりの「ノーツ・しこく・フェスタ」を開催致しました。
IT系のセミナーではありえない会場・雰囲気で、熱く生成AIやDominoについてのセッションが行われました。

当日の内容はノーツコンソーシアムのブログ記事に掲載して頂きましたので、よかったらこちらをご覧ください。

本イベントでは、参加者のさらなる交流を目的に、翌日にはエクストラツアーも開催されました。
こちらの様子はHCLアンバサダー 林Kさんのブログにて報告頂きましたので、ぜひこちらもご覧ください。

非公開なのですが、イベントに関連した写真を集めさせて頂いたのですが、なんと500枚近くにものぼりました。
当日のことを思い出すいいきっかけとなれば幸いです。


さて続いては告知になります。
今年最後のノーツコンソーシアム 大阪研究会が来週11月22日(金)に開催されます。

残念ながら台風で開催できなかった京都開催で持ち越したネタを含め、今回も時間が足りないのではと思われるほどの内容で準備が進んでおりますので、ぜひ会場もしくはリモートにてご参加ください。

当日はテクてくLotus技術者夜会が開催されるため、研究会終了後は懇親会会場に移動して、パブリックビューイングも企画しております。
Dominoに濃厚にかかわる半日をぜひ大阪研でお楽しみください。


さて今回の本題ですが、まずは現在の弊社のDominoに関わる環境をご説明致します。

 ①メール・アプリケーションサーバー V12.0.2/Winodws2016
 ②クラスターサーバー V12.0.2/Winodws2016
 ③アーカイブサーバー V12.0.2/Winodws2016
 ④トラベラーサーバー V12.0/Winodws2016

ちょうど5年前にインフラ更新を実施したため、当時こなれていたWindows2016サーバーを採用して構築しました。
ちなみに1台Windows2019をテストしたため、CALは2019で取得しておりました。

さてこの環境でV14にアップデートを進めたかったのですが、ついにOS問題が発生してしまいました。
V14ではWindows2019以降が必要となるのです。

来期にインフラ更新が予定されており、そもそもそれまで待ってと考えていたのですが、来月より契約しました HCL #VoltMXGo では、Domino #REST APIが必要となります。

これらを総合的に考慮して、まずは

②クラスターサーバー V12.0.2/Winodws2016

を使ってテストしてみようということになりました。


それでは手順です。
まずDominoのモジュールですが、過去のFlexNetからMy HCLSoftwareに移行されています。
FlexNetにログインすれば、自動でリダイレクトされますので、以降はこちらにアクセスしましょう。
現在のDominoV14では以下がリストされていました。


今回は14.0とFP2、とIF1。
さらに日本語パックをダウンロードして準備しておきました。


実際に行った作業手順は以下となります。

1. Dominoの停止
2. Windows2019の上書きインストール
3. WindowsUpdateの実施
4. DominoV14.0の上書きインストール
5. 日本語パックのインストール
6. FP2のインストール
7. IF1のインストール

もちろん途中でDominoを起動して、①のサーバーとの通信確認などを行いながらでしたが、2時間もかからずに完了してしまいました。
何か今までと違いがないのかと注意してましたが、V14.0インストール時にWindowsのアカウントが聞かれた以外、今までと変化なく完了してしまいました。

現在は安定して稼働してくれていますので、これよりREST APIのインストールへと進む予定です。

ちなみに頂いた情報ですが、バージョンの異なるDominoサーバーでのクラスター構成は非推奨になるそうです。
今回問題なくアップデートできたので、週末にでも他のサーバーへ適用しようと思います。


さて今回はとっても中身の薄い記事となってしまい、申し訳ございません。
ただユーザー企業にとって、アプリケーションの最新化、特にWindowsの最新化は慎重にならざるを得ない作業となりますので、ひとつの事例としてご理解頂けましたら幸いです。