ページビューの合計

2022年9月1日木曜日

ノーツクライアント上での #OnTime グループカレンダーの挙動について

This time I have tested the OnTime group calendar.

I was annoyed by the iNotes login screen that was not supposed to appear...or rather, my own misconfiguration that caused confusion for the support staff.


みなさま、こんにちは。
さてまずは告知から・・・

●ノーツコンソーシアム 第三回大阪研究会

アジェンダ(予定)
・HCLタイム
・NOTES er が Basic Notes にムチ打って、無理させた件
・大阪研サーバーのメールセキュリティ対策
・ほんとにあった怖いNotesアプリの設計
・欲求の4タイプでわかるあなたと他人
・HCL Nomadアプリ開発(仮)

大阪研のカラーが満喫できる半日になるはず。
現地に関わらず、リモート参加も大歓迎です。
コンソーシアム会員にかかわらず、ゲスト参加も大歓迎です。ぜひタイトルリンクよりお申込みください。

2022年8月29日月曜日

#WebexTeams への通知について

I will show you an example of how I have realized sending messages from a Notes document to WebexTeams.
Messages could be sent, but there were hurdles to using it as a workflow.
I have posted this on Cisco's Ideas site and would appreciate your vote!


さて最近は簡単なコミュニケーションはメールでなくショートメッセージに変化してきておりますが、みなさまはどのアプリをお使いですか?

もちろんSametimeと言いたいのですが、弊社では現在WebexTeamsを利用しております。
O365を利用しておらず、WebmeetingにもWebexを利用していることに起因しているのですが、せっかくならNotes/Dominoからも通知を送ることができれば(ワークフローとか)と考えた次第です。

今回のイメージとしては、Notesアプリのフォームに入力した内容をWebexTeamsのスペースに投稿するというものになります。

ということで、まずはWebex側の設定を行います。

Webexアプリですと、以下アイコンをクリックして、開いたWEB画面で「Incoming Webhooks」を検索


もしくは以下URLで直接該当ページを開きます。

https://apphub.webex.com/applications/incoming-webhooks-cisco-systems-38054-23307


こちらで[Connenct]をクリックするとサインインが求められ、進めると設定画面に進みます。

設定項目は至って簡単で、以下にWebhook name(自由に決められる名前)とメッセージの送信対象となるスペースを選択し、[Add]をクリックします。


すると以下のようにWebhook URLが発行されますので、こちらを控えておきます。


続いてノーツ側の設定です。
まずは簡単なフォームを作成します。




本文(message)に送信したい文面を。
WebhookURLにWebexで設定したURLを貼り付けるだけのものです。
さらに送信ボタンに以下Lotusscriptを記述します。

Sub Click(Source As Button)

    Dim session As New NotesSession

    Dim ws As New NotesUIWorkspace

    Dim http As NotesHTTPRequest

    Dim uidoc As NotesUIDocument

    Dim TeamsURL As String, body As String, message As String, title As String

    Dim ret As Variant

    Set uidoc = ws.CurrentDocument

'入力メッセージを取得

    message = uidoc.FieldGetText("message")

'Teams webhookURLをセット

    TeamsURL = uidoc.FieldGetText("webhookurl")

'PostのBodyをセット

    Body = |{"markdown":"|+message+|"}|

'HTTP Request 生成

    Set http = session.CreateHTTPRequest()

'ヘッダーのセット

    Call http.SetHeaderField("Content-Type","application/json")

'Postリクエストの送信

    Call http.Post(TeamsURL, Body)

End Sub

※赤字部分"markdown"ですが、単なる文字列でしたら"text"で十分なのですが、今後の拡張性を考慮して、意図的に"markdown"を利用しています。

それでは一度試してみましょう。

本文(message)に「message」と入力し、Webhook URLに先に取得したアドレスを貼り付けて「送信」をクリックします。

っとここでアラートが表示されました。


但し、WebexTeamsにメッセージは送信できていることは確認できました。


アラートについてはHCL様サポートに問い合わせたところ、最終的には以下のような案内を頂きました。


どうやらSlackとは少し仕様が異なるようでした。

ご提案頂いて通り、POSTの前に

    http.Preferstrings=True  

を1行追加することで、エラーの表示はなくなりました。
今回のサポートについては、自社製品の枠を超え、SlackやWebexTeamsの仕様書を熟読頂いた上で解決に導いて頂くことができました。
今まで他社製品含め、問い合わせを依頼してきましたが、ここまで深く追求頂けたのは初めてです。
本当にありがとうございました!!


さてここまででWebexTeamsにフラットな文面を送ることが可能であることは確認できました。

ノーツとの連携ですので、やはりワークフローの送信などで利用したいと思うのは普通ではないでしょうか。
ということで、試しにノーツのリンクをメッセージに埋め込んでみました。

まずノーツ文書のURLの取得ですが、先のフォームに[Link]という計算結果フィールドを追加して、以下の式を設定します。
この式で現在開いている文書のURLが生成されます。

"Notes://" + @Name([CN];@Subset(@DbName;1))+"/"+@ReplaceSubstring(@ReplicaID; ":";"")+"/0/"+@Text(@DocumentUniqueID)


続いて「送信」ボタンのLotusscriptです。
まずは

    Dim TeamsURL As String, body As String, message As String, title As String

の部分に[Link]の宣言を追加します。

    Dim TeamsURL As String, body As String, message As String, title As String, Link As String

続いて
    message = uidoc.FieldGetText("message")
に1行追加して、
   message = uidoc.FieldGetText("message")
 Link = uidoc.FieldGetText("Link")  
[Link]の値をセットします。

さらに
    Body = |{"markdown":"|+message+|"}| 
の部分を
    Body = |{"markdown":"|+"[リンク]("+Link+")"+|"}| 

に書き換えて再度送信してみます。すると、


URLリンクの貼られたメッセージが届きました・・・が!!
「リンク」の文字にマウスカーソルを当てても、変化がなく、クリックすることができませんでした。(正しくはリンクとして判断されていないようです)

念のためhttpsの文字列で試してみます。


今度はマウスカーソルを当てるとこのようにURLが表示され、リンクも正しく動いてくれました。

Cisco社に問い合わせたところ、やはり・・・http://およびhttps://のみがリンクとして利用できるとの事でした。

ただそれだけでなく、アイデア投稿サイトの紹介が書かれておりましたので、以下登録致しました。

ぜひ皆様もこちらにVOTE頂けましたらと思い、今回の記事を終わらせて頂きます。

いつしかノーツリンクが利用できるようになり、WebexTeamsでワークフローが廻せればと願うばかりです。

https://ciscocollabcustomer.ideas.aha.io/ideas/WXCUST-I-8545





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のデータベースメンテナンスを紹介頂けましたので、共有させて頂きます。