当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。

テクてく Lotus 技術者 Slack に参加しよう!

2016年1月31日日曜日

旅の準備は入念に…

日本の皆さま、こんにちは。

今年もこの書き出しで始まりました。
ということは・・・もうお分かりですね。そうです。ついに4年連続5回目となるアメリカ合衆国フロリダ州オーランドへの訪問です。

2016年度のIBM Champions for Social Businessに選出されましたでも発表させていただいたように、今年度もなんとかIBM Championに任命されましたので、

IBM Connect 2016にやってきた次第です。

今年も昨年同様、有志での渡航となったわけですが、メンバーは
同じIBM Championのケートリック株式会社の田付さん、
OnTimeでおなじみ、有限会社アクセルの岡本さん、
LIVENESS PORTALでおなじみ、株式会社ライブネスの赤松さん、
そして、C社のUさん(諸事情により、匿名にしてます)
に私を含めた5名です。

今年は、昨年の過ちを犯すまい!ということで、止まるホテルから乗る飛行機まで、あらかじめ事細かく決めていたはずだったのですが・・・

なぜか、私だけ、ほかのメンバーと便名が異なるではありませんか!?
えぇっ・・・いや、だって、出発時刻もトランジットも到着時刻も全部一緒だよ?なんでさ?

そうです。コードシェア便ということで、複数の航空会社が乗り入れして、一社が運航するというやつですね。
予約した航空会社により、便名が異なるという・・・エンドユーザのことを全く考えていない、いやなシステムです(同じ航空会社で予約すればいいじゃん!とかいうツッコミは無視します(笑))。

そのため、同じ目的地のはずなのに、私だけ「ブラジル」に行くんじゃない?という訳のわからない発言まで飛び出す始末です・・・
ブラジルに行ってしまえ(笑)

なぜ、ブラジル?オリンピックは半年以上先です。それまでいろとでもいうのでしょうか?
怖いですね(笑)
この不安は、当日にチェックインするまで解消されませんでした。
※航空会社のコードシェア便ですという情報はあったのですが、それぞれの会社の便名がわかるようになっていませんでした。探し方が悪かったのかなぁ?


さて、無事にチェックインをして、ほかのメンバーと正式に合流できて、トランジット先のテキサス州ヒューストンにある「ジョージ・ブッシュ・インターコンチネンタル空港」までは、何事もなく到着しました(実際にはいろいろあったらしいですが、私は関与していなかったのでよく知らないです(^^;)


昨年、トランジットは1.5時間しかなかったけど、普通に間に合ったから大丈夫だろうというのと、予約時に航空会社の方に確認したところ、「間に合いますよ」と言われたとのことで、なんと1時間しか間を開けていないとのことではないですか!
いやぁ、いくら何でも無謀でしょ!と思っていましたが・・・

案の定です。
入国審査から田付さんが出てきません・・・
もう、残り30分を切ってるというのに・・・
どうやら、前に並んでいたほかの乗客の手続きが遅かったとのこと・・・
むぅ、仕方ないか。

と、出てきたので、急いで荷物を受け取って、預けて(トランジットの場合、荷物はいったん受け取って、税関審査を受けます)、さぁ出発ゲートに行こう!となったのですが・・・
ここで!
AさんとUさんが、「あれ?トランジット先のチケットがない・・・」
なにぃ!!!

なんで、成田でもらってないの!
と言っても、どうにもなりません。
トランジットのところにあったチェックインカウンターで急きょ?発行してもらいましたが、搭乗時刻まであと、10分ありません・・・
搭乗ゲートはシャトルを乗った先です。
さぁ、果たして間に合うのか!?



結果・・・なんとか間に合いました。
手荷物検査を受けるところで、搭乗時刻になってしまい、そのあとシャトルに乗ったのですが、そこから搭乗ゲートまでみんなで走りました。
40過ぎのおっさんが(30台も二人いたな)、必死こいて走りました。
その甲斐あって、なんとか出発時刻の15分前には飛行機に乗ることができました(10分前を過ぎると乗せてもらえないことがあるそうです。そういう意味では、ギリギリセーフでした)


飛行機に乗ってしまえば、あとは黙っていても、オーランドに着きます。
ヒューストンからは2時間ちょっとでオーランドに着きました。
成田を出発したのが1/30 10:50で、オーランドに到着したのが、1/30 12:00ごろです。
日付変更線を超えているので、おかしなことになっていますが、東京の日時でいえば、到着は1/31 2:00です。つまり、 15時間くらいです。そりゃ疲れますね。

さぁ、あとは今回のIBM Connect 2016の会場であるHilton Orlandまで行けば、今日は終わり!と夕飯は何食べようか?何時ごろに行こうか?などと楽しい会話をしながら、荷物を待っていました。


しかし、若干1名の荷物が出てきません。
荷物を持つメンバー1
荷物を持つメンバー2

オーランドに到着した際に、上記の写真をアップしましたが、どなたも気が付かなかったようですが、一人だけおかしい人がいます。


そうですね。田付さんの荷物がありません・・・
どうやら、ロストした模様です。
さすがに、まずいだろう!ということで、サービスセンターに行って確認してもらったところ、何らかの事情により、田付さんの荷物だけ、到着が遅れてる!?(そんなことあるの?)
あと、1時間くらいしないと、こちら(オーランド)に届かない。どうする?待つか?
と聞かれたようで、
さすがに、そんなには待てないと、ホテルに送ってもらうことにしました。

そして、Hilton Orlandについてチェックインをした後、軽く?食事をして、色々やらかして(詳しくはfacebookの投稿をご覧ください・・・)、IBM Connect 2016のレジストレーションを済ませようということで、会場に意気揚々と向かいました。

向かった先にあったのは、レジストレーション会場・・・とは言えないようなタブレットとプリンタが並んでいるだけの場所でした。

どうやら、タブレットでチェックインを行うようです。
e-mailアドレスでチェックインできるというので、e-mailアドレスを入力したら、質問されました(笑)
どうやら、Connect 2016の参加申し込みをした時のパスワード紛失時用の質問とその回答のようです。

えーっ、それをこういう時に使ったらダメなんじゃないの!?と思いつつ、しっかりとみなさん回答できたようで(私を含めて)、チェックインできました。
無人だったおかげで、普段ならバッグをもらえるのですが、今年はそれもなし!でした。
出てきたのは、こんなカード。
IBM Connect 2016の入館証?

便利だけど、寂しい・・・

ということで、無事にチェックインを済ませたので、美味しい夕飯をみんなで食べに行ってきました。
本日は受付のみですので、これくらいの話しかありません。


さらに明日はBPのためのセッションがあるので、それに参加しますが、おそらく非公開(月曜日まで待て!ですね)だと思います。
ですので、詳細をお伝えできるのは月曜日以降になると思いますので、それまでもう少しお待ちください。

今年はどんなサプライズがあるのか全く分かりません。
そういった情報があれば、こちらで紹介したいと思います。
あまり過剰な期待はせずにお待ちください。

それでは、今年もConnect滞在ブログの始まりです・・・
今日はこの辺で。


2016年1月28日木曜日

データベースリンク情報の確認

皆さん、こんにちは。もうすぐ1月も終わりです。
そして、今月末からIBM Connect 2016です。

今年はどんな情報が待ち受けているのか楽しみですね。



また、本日(2016年1月28日)、OnTimeさまのHPにOnTime Open APIについての記事を寄稿させていただいたところ、本ブログサイトの番外編ということで、掲載されました。\(^o^)/
記事はこちら→OnTime Open APIを活用しよう!
Notes/Dominoユーザーであれば、カレンダー/スケジュールの機能強化は是非ともかなえたいものですからね。今後も不定期ではありますが、OnTime関連のことは書いていきますので、本編ともどもよろしくお願いします。



さて、今日はそんなIBM Connect 2016やOnTime とは関係ない話題です(笑)。

知っているようで知らない(なんてことはない?)データベースリンクについてです。

データベースリンクとは

データベースリンクとは、Notes DBの実体を指し示すテキストファイルです。
実際のファイルパスを記述したテキストファイルを「****.nsf」というファイル名で表すという手法をとります。
この時、実際のNotes DBのファイル名とデータベースリンクのファイル名は異なっていても問題ありません。
Notes/Dominoでは、データベースリンクのファイル名で認識されます。

詳細は、管理者ヘルプにあるディレクトリリンクとデータベースリンクの作成、更新、削除を参照してください。


NotesDatabaseクラスのIsLinkプロパティ

Notes DBがデータベースリンクであるかどうかはLotus ScriptのNotesDatabaseクラスのIsLinkプロパティを使うことで確認できます。
下記のサンプルは、選択したNotes DBがデータベースリンクであるかどうかを判定するものです。

Sub Click(Source As Button)
    Dim uiws    As New NotesUIWorkspace
    Dim ret     As     Variant
    Dim session As New NotesSession
    Dim db      As     NotesDatabase
    
    ret = uiws.Prompt( 13, "", "" )
    If Isempty( ret ) Then
        Msgbox "キャンセルがクリックされました。処理を中止します。", 0 + 16, MSGTITLE
        Exit Sub
    End If
    
    Set db = session.GetDatabase( ret(0), ret(1), False )
    If db Is Nothing Then
        Msgbox "選択したNotes DBにアクセスできません。", 0 + 16, MSGTITLE
        Exit Sub
    Else
        If db.IsLink Then
            Msgbox ret(2) & "はリンクファイルです。", 0 + 64, MSGTITLE
        Else
            Msgbox db.FilePath & "はnsfの実体です。", 0 + 64, MSGTITLE
        End If
    End If
End Sub


※Notes DBがローカルにある場合、オープンしてしまうと実体の方にアクセスされてしまい、IsLinkプロパティの値が正しく取得できません。


ヘルプのサンプルを利用すると、ローカルPC内のNotes DBのうち、データベースリンクになっているものをまとめて表示してくれます。
Dim dbdir As New NotesDbDirectory("")
の""の部分をDominoサーバ名にすれば、そのDominoサーバ内の全Notes DBを検索してくれるので、棚卸に利用できるでしょう。
ただし、ディレクトリリンクには対応していないので、それは別の方法で探してください。 *1




*1 Domino Administratorクライアントを利用すれば、ディレクトリ名/データベースアイコンがショートカットアイコンのような形になるので分かり易いでしょう。下図に示します。
Domino Administratorクライアントの画面


古いバージョンから利用されているお客様の場合、サーバのディスクが不足してしまい、拡張するときに、このような機能を多用している事かと思います。
それが、バージョンアップする際に、ディスク容量が潤沢になったのはいいけど、nsfファイルの実体がどこにあるかわからなくなってしまう。ということが考えられます。

そのようなときは、今回ご紹介したサンプルを使って検索するのも一つの手法ですね。
ぜひ、Notes DBの棚卸の手法の一つとして採用されてみてはいかがでしょうか。



では、今日はこの辺で。




 【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
単純なDBのカスタマイズから他アプリケーションとの連携までご要望にお応えします!
Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

2016年1月6日水曜日

XPagesで色を選択してみよう

明けましておめでとうございます。
私は昨日(2016年1月5日)が仕事始めでした。まだ今週一週間はお休みだ!なんて人もいるかもしれませんといういうのと、いつも年初めは軽い話題から入っているので、今年もそうしましょう。


ノーツには「カラーフィールド」というものがあります。
カラーパレットで色を選択すると、RGBの16進数をかたどったテキストで保存されます。
カラーフィールド

RGBでの16進数なので、6桁で十分なのですが、なぜか8桁で格納されます。
この時、先頭2桁は無視しましょう(たぶん、00で決まっているはずです)。
なお、ビューをデザインする際、列のプロパティで「色で値を表示」というのにチェックすると、選択した色でその列が表示できるようになります。面白いですよね。

ビューでプロパティを確認


ここで・・・Notesクライアントで出来たんだから、XPagesでも実現できたら良いよね!(何に使うかはさておき・・・)
ということで調べてみました。

まず、XPagesのコントロールには「カラーフィールド」のようなものは存在しません。
残念・・・
しかし、ここで諦めてはいけません。

調べてみたところ、HTML5でInput タグにtype="color"を追加するとカラーパレットが表示されて色の選択ができるようになります。



このままHTML5のタグをXPagesのソースに記述しても良いのですが、それだと芸がないので、
編集ボックスコントロールで再現してみましょう。
すべてのプロパティを見ていくと、typeという項目があります。そこにcolorと入力すればそれでOKです。
簡単ですね。ソースコードで見ると以下のような感じです。


せっかくなので、Notes DBのフォームにバインドさせてみました。
これでどのような値が保存されるのかの確認ができます。
実行した画面はこちら。
XPagesでinput type="color"を実現

さて、この状態で[save]をクリックしてNotes文書として保存してみました。
さぁ、どんな値になっているでしょうか?
XPagesでのカラーフィールドの値

結果は、#付きの16進数6桁ということでRGBを表しています。
テストではすべて数字になっていますが、青色の場合、「#0000ff」と英文字は小文字になっていました。Notes DBのカラーフィールドの場合、英文字は大文字になっていましたので、細かいところですがここも違っています。


いかがでしょう?
こうやって色を選択できれば、アプリケーション上で好きな色合いにすることなんかもできるのではないでしょうか?(見やすさは別として・・・)

ちょっと一息入れたいな。という時にこのような面白?機能を使ってみるのも一興ではないでしょうか。
ぜひ使ってみてください。

・・・しかし!IE11ではこのタグ、動きませんでした。ダメじゃん!


XPagesを使うなら、FirefoxやChromeでないとダメなんでしょう・・・(あくまでも私見です)。

ということこで、今年もXPagesの情報を中心にお届けしていこうと思いますので、よろしくお願いいたします。
では、今日はこの辺で・・・



 【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
単純なDBのカスタマイズから他アプリケーションとの連携までご要望にお応えします!
Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ