ページビューの合計

2022年9月8日木曜日

#年月日 で日付表示したい

In this article, I will describe the date display format specific to Japan.

English translation is not necessary.


みなさま、こんにちは。

あまり意識したことがなかったのですが、Notesの日付の表示形式について、今更気づいたことがありましたので、書き留めておきます。

・・・そんなこと知ってるよ・・・って言われる方もいらっしゃるとは思いますが、20年利用してきて初見でしたので・・・


さてNotesフィールドの日付の形式で準備されているものは、デフォルトでは以下となっています。


まあ、見慣れたダイアログですね。
選択できる形式としては、


となります。
上記で設定した場合の表示結果は、上から

2022 / 09 / 08 (木)
2022 / 09 / 08
09 / 08 (木)
2022 / 09 
09 / 08
2022

となります。

今回、はじめて表示形式を上の例ですと、"2022年09月08日"にしてほしいという案件が発生しました。

ちなみにExcelだと一部だけですが、以下となります。


どうすれば表示できるのでしょう?
先のダイアログを少しつつくと簡単に対応することができました。

まず上部の[ユーザープリファレンス]を[カスタム]に変更します。
・・・このユーザープリファレンスという言葉が少しわかりにくいと感じました・・・



するとダイアログの項目が以下のように、非表示であった項目が表示されました。


ここの[セパレータ]を利用することで実現可能となります。
実際に年月日表示とするには、


こうすることで、フィールドの結果は以下のようになります。


簡単ですね。
たとえば子供用にひらがなにもできるのでは・・・と試したところ、


怒られてしまいました。
1文字に限定されているようですね。
こんな表示はOKでした(笑


すいません、お茶を濁したようなネタになってしまいましたが、たまたま出くわした内容としてレポート致します。

既出でしたら申し訳ございません。


2022年9月5日月曜日

#OnTime 公開グループの設定および リソースの変更と #Domino #Directory の動きについて

 We are pleased to announce that the OnTime Group Calendar has been successfully adopted!

We will set up the public groups as soon as possible.

In the midst of all this, I had an unexpected problem, so here is my report.


みなさま、こんにちは。
さて先週テスト中と報告しましたOnTimeグループカレンダーですが、無事採用が決まりました!!

そこで社内正式リリースに向け、まずは公開グループの設定を進める必要があります。

弊社の場合、社員数も会議室もそれほど多くないことから、当初はStatic Groupで準備をしていました。
設定としては以下のように感じです。


Domino Directoryに登録されたグループをそのままOnTime のグループとして設定するイメージです。

これで十分かと考えていたのですが、サポートの方からはぜひDynamic Groupを利用して、管理工数を下げて欲しいとの提案を頂きました。

具体的には、DJXの部署で動的グループを作るというものです。

手順としては、以下マニュアルに加え、口頭で説明頂きながら設定を実施しました。

https://www2.ontimesuite.jp/djxdepartments/


追加後、メニューから[Admin - Groups Dynamic only]を実施すると、リストにグループが表示されます。


この状態でOnTime Clientを開くと(既に開いていた場合は、[Shift + F9]で更新)、以下のようにグループが反映され、利用可能になっています。


便利ですねー。
何が便利かというと、使い慣れたノーツ式で定義できる点にあります。

さてこちらで進めようかと考えていたのですが、どうも弊社内のDomino Directoryの階層や兼任部署の影響から、少し見にくいグループになってしまいました。
当初は思い切って全社員の所属階層を見直そうかと考えたのですが、その際に教えて頂いたのが、アドレス帳以外のノーツDBから動的をグループを作成するという手順です。

既にマニュアルも整備させておりました。

https://www2.ontimesuite.jp/usingotherdatabase/

たまたま弊社では今年度から「社員カード」というアプリの利用を開始しておりました。

社員カードアプリについて、ここでは詳しく触れませんが、ご興味ございましたら、ご連絡ください。
フォームの内容としては以下のようなものになります。
※この下にも個人の情報や人事情報を記載しており、読者権限で制御しています。


こちらを使えば、綺麗にグループ化されるのでは・・・ということで、こちらの改修について教えて頂きました。

具体的に修正すべき点としては、OnTimeがユニークキーとして判断する[Canonical Name]を追加するというものでした。

特に難しいものではありませんでしたので、ささっと修正して、OnTimeの設定です。
マニュアル通りなのですが、以下のような設定となりました。
※ビューは専用で参照するビューを追加しました。

[Admin - Groups Dynamic only]を実施すると、Listに一覧が表示され、

OnTime Clientにも綺麗に反映されました。


次に会議室とリソースです。
弊社ではひとつのサイトのみで運用しており、リソースの名前で拠点を示すような使い方をしていました。
もちろんそちらでも運用は可能ですが、今回導入した目的のひとつがリアルタイムの会議室の状況確認でした。

こちらもStaticで作ってしまうのもいいのですが、やはり先々のメンテナンスを考え、Dynamicを利用することとしました。

こちらもマニュアルが整っております。

https://www2.ontimesuite.jp/resourcesdb/


[Admin - Groups Dynamic only]を実行すると、Listが更新され、OnTime Clientに表示されました。

しかしながらサイトが一つですと、その中にすべての拠点の会議室やリソースまで混じって表示されてしまいます。

これではあまりに使いにくい・・・ということで、サイトを拠点別に分割し、さらに会議室とリソース(備品)を分けることとしました。

サイトを追加し、リソースの名前を変更します。
Dominoサーバーで adminpプロセスを実行することで、名前の変更が反映されます。

先のOnTime側の設定は変更不要のため、[Admin - Groups Dynamic only]を実施したところ、もともとあったサイト含め、すべて消えてしまいました!!

どういう事!!?

本現象は金曜の午後に発生したため、一度夜間のメンテナンスを待ってみようと翌朝まで待ったのですが、変化ありませんでした。

致し方なくサポートへメールしたところ、土曜日にも関わらず、早々にお返事が頂けました。

こちらはDomino側の問題との事で、参考資料として以下を紹介して頂きました。

https://www.docswell.com/s/okamomoba/KPX37Z-2022-05-12-151743

なんとなくわかったような・・・

ということで、まずはOnTimeのUsersにリストされているか確認しました。
すると・・・なんとすべて [Soft Deleted]になっています。
こちらは先日にも一度確認しており、対象のリソースがなくなった場合、一時的に削除されるようです。

次に疑ったのが、Domino ディレクトリでした。
メール受信データベースには正しくリストされています。

それではOnTime Usersグループは・・・

そう、ここに問題がありました。

システム管理要求でリソースの名前変更を実施したのですが、このグループ文書が更新されていませんでした。
つまり古いサイトの情報が残っていたのです。

古いリソースを削除し、新しいリソースを追加して、改めて[Admin - Groups Dynamic only]を実施したところ・・・。

表示が戻って参りました。
Soft Deletedからも消えています。

Dynamic Listも、OnTime Clientも思う結果が得られました。


以上で公開グループが思うように完成しました。

今回のトラブルは今後も意識する必要がありますが、基本的にはグループの更新は自動化され、メンテナンスフリーが実現できました。

ということで、今回の改善要求をIdeaサイトに投稿しましたので、ご賛同頂けます方は投票をお願いします!!

https://domino-ideas.hcltechsw.com/ideas/DOMINO-I-2200

つたない英文ですが、要はシステム管理要求の処理に、グループ文書も更新対象にしてほしいというだけのものです。


今後は、写真などメンテナンスして、さらに使いやすい環境にしていきたいと思います。

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が対応しているのでしたら、使わないのはもったいない機能かと思います。

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