SlideShare a Scribd company logo
1 of 19
【A5】ノーツコソーシアムXPages研究会 
中間成果発表(その1) 
-初めてのXPagesではまった落とし穴とその解決方法- 
2014/11/18 
アクロス株式会社 
矢森隆嗣 
1
• このパートではXPages研究会の中で、 
【Step1】まずは、失敗例、困ったこと事例を集めて・・・ 
2 
で議論した中で特に関心が高かったもの、初心者が陥りやすいものを取りまとめて 
みました。
本パートのスピーカー 
矢森隆嗣 
3 
アクロス株式会社
本パートの目次 
1.XPagesってこんなもの 
2.初めてのXPages(困惑編) 
4
1.XPagesってこんなもの 
XPagesDayをご参加の皆様! 
こんなことは知ってらぁ!という声が聞こえてくる 
のを承知で、おさらいします。 
5
1.XPagesってこんなもの 
6 
・Notes Domino8.5から提供されている、Domino上で動作する 
Webアプリケーションを開発するための技術 
・Webアプリケーションを構築のためさまざまなコントロールが提供され、 
従来のフォーム・ビューなどによるノーツクライアントアプリケーションの構築に 
近い感覚で開発が可能 
・JavaScript、Cssのほか、JavaScriptを使用してノーツオブジェクトを操作を可 
能とするServerSideJavaScript(SSJS)や@関数が使用できるので、 
Lotus Scriptや式言語の知識がある方になじみやすい 
・今までに蓄積されたノーツDBのデータをWeb上で利用するための1stチョイス
2.初めてのXPages(困惑編) 
最近でこそXPagesの開発も実績を積ませていただいておりますが、 
初めてXPagesの開発に手を染めたころは・・・ 
これ、どうすればいいの??? (@_@;) 
うまくいかない~!!(>_<) 
の連続で試行錯誤や調査などずいぶん遠回りをしました。 
7
2.初めてのXPages(困惑編) 
8 
アクロス株式会社での経験をノーツコンソーシアムXPages研究会で 
発表しましたところ・・・ 
「やっぱりみんなハマるんだねぇ・・・」 
とうなずきが多かったものをピックアップ、XPages研究会メンバーの 
ナレッジを追加してご紹介します。 
XPagesを始める、始めたばかりの方へのちょっとしたHowToとして、 
皆様の一助になれば幸いです。
2.初めてのXPages(困惑編) 
メニュー 
1. 当然必要ですよね、JavaScript。 
クライアントサイド(CSJS)とサーバーサイド(SSJS)ってどう違うの?使い分けは? 
2. なんかエラーでた。デバッグってどうやろう。 
3. 既存のフォームに仕込まれた@式が使いたいんだけど。 
4. 競合ってどう処理するの? 
5. URLでファイルダウンロードリンクを貼りたい。 
でもファイル形式によってダウンロードしたり、開いたり。ダウンロードしたいんだけど・・・ 
6. ロードバランサーなどで代表アドレスがあると・・・ 
9
2.初めてのXPages(困惑編) 
1.当然必要ですよね、JavaScript。 
サーバーサイド(SSJS)とクライアントサイド(CSJS)ってどう違うの?使い分けは? 
■SSJS: 
サーバーにて処理される。 
LS的にノーツオブジェクトが使えるので、文書とか他のDBとか参照するなどはこっち。 
エラーチェックで使うときはユーザインターフェイスに注意。アラートぐらいはできるが、YES/NOなど返り 
値が取れない。 
■CSJS: 
クライアントで処理される。レスポンスよく、サーバー負荷が低い。 
でもSSJSでないとできないこともあり。 
SSJSと混在してエラーチェックで使用するとCSJS→SSJSの順で処理される関係上、 
画面上の並び順とエラーチェックの順序が異なりユーザの混乱を招く可能性も・・・ 
10
2.初めてのXPages(困惑編) 
2. なんかエラーでた。デバッグってどうやろう。 
11 
■CSJS: 
・IEなりFirefox、Chromeなりの開発者ツールとか使えばデバッガーもある。
2.初めてのXPages(困惑編) 
2. なんかエラーでた。デバッグってどうやろう。(つづき) 
■SSJS: 
・ひとまずXspプロパティの「XPage実行時のエラーページを表示」をOnに。 
詳細なエラーメッセージが表示されます。これは最低限! 
12
2.初めてのXPages(困惑編) 
2. なんかエラーでた。デバッグってどうやろう。(つづき) 
■SSJS: 
13 
・処理中の変数の確認などはview.postscript(“alert(…)”)で表示することにより可能。 
サーバーコンソールが使えるならば、サーバーのnotes.iniに 
“Debug_Console=1”を追加して_dumpでコンソールに出力して確認する方法も・・・ 
(サーバの負荷に注意!)
2.初めてのXPages(困惑編) 
2. なんかエラーでた。デバッグってどうやろう。(つづき) 
■SSJS:(つづき) 
・Domino9から搭載されたSSJSデバッガーを使用することも出来ます。 
SSJSデバッガーは変数のほか、セッション変数などの参照も出来ます。 
サーバNotes.iniに設定する必要があります。 
注意事項: 
(1)同一サーバー上で一人しかデバッガーは使用できない。 
(2)サーバへの負荷が高い、かつデバッグしている際は他の 
ユーザが利用できない。 
>運用サーバーで開発している場合、 
または1サーバーを共有で開発している場合は 
Designerのプレビューでも利用できる(はず)。 
14
2.初めてのXPages(困惑編) 
3. 既存のフォームに仕込まれた@関数が使いたいんだけど。 
→データソースの「フォーム検証の実行」を設定すれば、 
オープン時/保存時/両方のタイミングで@関数が計算されます! 
15
2.初めてのXPages(困惑編) 
4. 競合ってどう処理するの? 
16 
→ 「すべてのプロパティ」– 「データ」のconCurrencyMode のオプション設定に 
より対応可能。 
try - catch でトラップして、exceptionにて「もう一度修正してください」などの 
メッセージで回避のほか、「先勝ち」、「後勝ち」、 
および「競合文書を作成する」を設定可能。
2.初めてのXPages(困惑編) 
5. URLでファイルダウンロードリンクを貼りたい。 
でもファイル形式によってダウンロードしたり、開いたり。 
ダウンロードしたいんだけど・・・ 
→ XPages以前では以下の形式のURLでアクセスができました。 
でも動作がファイルによって違う! 
http://ホスト名/DBファイルパス/0/ドキュメントID/$FILE/ファイル名 
XPagesなら以下のURLならファイルがダウンロードになります。 
17 
http://ホスト名/DBファイルパス/xsp/.ibmmodres/domino/OpenAttachment 
/DBファイルパス/DocumentID/ファイルが添付されているフィールド名 
/ファイル名
2.初めてのXPages(困惑編) 
6. ロードバランサーなどで代表アドレスがあると・・・ 
facesContextで今表示されているURLが取れない。 
→CSJSで取得して、連携するとかちょっと工夫がいる。 
18 
context.redirectToPageにて相対パス指定でページ移動するとき、 
そのイベントのサーバーオプションが「部分更新」だと代表アドレスでなくて 
サーバー名に・・・「全体更新」にすると代表アドレスになる。
3.続いて・・・ 
19

More Related Content

Viewers also liked

X pages day発表_20141118
X pages day発表_20141118X pages day発表_20141118
X pages day発表_20141118Takashi Yamori
 
DHCP on windows server 2012
DHCP on windows server 2012DHCP on windows server 2012
DHCP on windows server 2012turkialbakry
 
каталог Aeg 12 13
каталог Aeg 12 13каталог Aeg 12 13
каталог Aeg 12 13azovinstrument
 
Environmentally sensitive areas
Environmentally sensitive areasEnvironmentally sensitive areas
Environmentally sensitive areasgscplanning
 
Advertisement Company
Advertisement CompanyAdvertisement Company
Advertisement Companyurmish34
 
Fragmented Audiences in a Diverse Media Landscape
Fragmented Audiences in a Diverse Media Landscape Fragmented Audiences in a Diverse Media Landscape
Fragmented Audiences in a Diverse Media Landscape laneford
 
Mumstravel blog - presentation
Mumstravel blog - presentationMumstravel blog - presentation
Mumstravel blog - presentationnaida_mc
 
د. محمد كمال
د. محمد كمال د. محمد كمال
د. محمد كمال promediakw
 

Viewers also liked (14)

X pages day発表_20141118
X pages day発表_20141118X pages day発表_20141118
X pages day発表_20141118
 
Delivery kpi
Delivery kpiDelivery kpi
Delivery kpi
 
DHCP on windows server 2012
DHCP on windows server 2012DHCP on windows server 2012
DHCP on windows server 2012
 
каталог Aeg 12 13
каталог Aeg 12 13каталог Aeg 12 13
каталог Aeg 12 13
 
Environmentally sensitive areas
Environmentally sensitive areasEnvironmentally sensitive areas
Environmentally sensitive areas
 
Lr3n
Lr3nLr3n
Lr3n
 
Advertisement Company
Advertisement CompanyAdvertisement Company
Advertisement Company
 
Agnosticism
AgnosticismAgnosticism
Agnosticism
 
Presentación procesos
Presentación procesosPresentación procesos
Presentación procesos
 
Fragmented Audiences in a Diverse Media Landscape
Fragmented Audiences in a Diverse Media Landscape Fragmented Audiences in a Diverse Media Landscape
Fragmented Audiences in a Diverse Media Landscape
 
Cash For Gold Company Canada
Cash For Gold Company Canada Cash For Gold Company Canada
Cash For Gold Company Canada
 
Mumstravel blog - presentation
Mumstravel blog - presentationMumstravel blog - presentation
Mumstravel blog - presentation
 
د. محمد كمال
د. محمد كمال د. محمد كمال
د. محمد كمال
 
Planting Manual
Planting ManualPlanting Manual
Planting Manual
 

Similar to X pages day発表_part1

20151118パートナーソリューションセミナー2015プレゼンテーション public
20151118パートナーソリューションセミナー2015プレゼンテーション   public20151118パートナーソリューションセミナー2015プレゼンテーション   public
20151118パートナーソリューションセミナー2015プレゼンテーション publicKazunori Tatsuki
 
Agile Communities In Japan(J)
Agile Communities In Japan(J)Agile Communities In Japan(J)
Agile Communities In Japan(J)Yasui Tsutomu
 
eXtremeProgramming入門
eXtremeProgramming入門eXtremeProgramming入門
eXtremeProgramming入門You&I
 
Q a9 for ics(lotus) developers
Q a9 for ics(lotus) developersQ a9 for ics(lotus) developers
Q a9 for ics(lotus) developers賢次 海老原
 
opensource and accessibility (Dec2000) Part 1
opensource and accessibility (Dec2000) Part 1opensource and accessibility (Dec2000) Part 1
opensource and accessibility (Dec2000) Part 1Takuya Nishimoto
 
Dmmに入社してみた
Dmmに入社してみたDmmに入社してみた
Dmmに入社してみたDMM.com
 
アジャイルマニフェストから始めるアジャイル
アジャイルマニフェストから始めるアジャイルアジャイルマニフェストから始めるアジャイル
アジャイルマニフェストから始めるアジャイルYou&I
 
Xp入門 ~これで分かる!究極のxp入門~
Xp入門 ~これで分かる!究極のxp入門~Xp入門 ~これで分かる!究極のxp入門~
Xp入門 ~これで分かる!究極のxp入門~takepu
 
Scrumワークショップ
ScrumワークショップScrumワークショップ
ScrumワークショップYou&I
 
アジャイルマニフェストから見るインセプションデッキ
アジャイルマニフェストから見るインセプションデッキアジャイルマニフェストから見るインセプションデッキ
アジャイルマニフェストから見るインセプションデッキYou&I
 
ユーザーストーリーワークショップ
ユーザーストーリーワークショップユーザーストーリーワークショップ
ユーザーストーリーワークショップYou&I
 
納涼!みんなで持ち寄る『ゾッ!とする話』
納涼!みんなで持ち寄る『ゾッ!とする話』納涼!みんなで持ち寄る『ゾッ!とする話』
納涼!みんなで持ち寄る『ゾッ!とする話』You&I
 
マインドマップを使った 仕様分析&テスト設計
マインドマップを使った 仕様分析&テスト設計マインドマップを使った 仕様分析&テスト設計
マインドマップを使った 仕様分析&テスト設計Akira Ikeda
 
GCSアジャイル開発を使ったゲームの作り方
 GCSアジャイル開発を使ったゲームの作り方 GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方Hiroyuki Tanaka
 
ユーザーストーリーワークショップ
ユーザーストーリーワークショップユーザーストーリーワークショップ
ユーザーストーリーワークショップYou&I
 
プレゼンテーション用資料作成のプレゼンテーション資料
プレゼンテーション用資料作成のプレゼンテーション資料プレゼンテーション用資料作成のプレゼンテーション資料
プレゼンテーション用資料作成のプレゼンテーション資料hiroshioda
 
NotesコンソーシアムのXPagesに関する活動のご紹介
NotesコンソーシアムのXPagesに関する活動のご紹介NotesコンソーシアムのXPagesに関する活動のご紹介
NotesコンソーシアムのXPagesに関する活動のご紹介Go Kawakami
 
はじめてのテスト技法
はじめてのテスト技法はじめてのテスト技法
はじめてのテスト技法Tatsuya Saito
 

Similar to X pages day発表_part1 (18)

20151118パートナーソリューションセミナー2015プレゼンテーション public
20151118パートナーソリューションセミナー2015プレゼンテーション   public20151118パートナーソリューションセミナー2015プレゼンテーション   public
20151118パートナーソリューションセミナー2015プレゼンテーション public
 
Agile Communities In Japan(J)
Agile Communities In Japan(J)Agile Communities In Japan(J)
Agile Communities In Japan(J)
 
eXtremeProgramming入門
eXtremeProgramming入門eXtremeProgramming入門
eXtremeProgramming入門
 
Q a9 for ics(lotus) developers
Q a9 for ics(lotus) developersQ a9 for ics(lotus) developers
Q a9 for ics(lotus) developers
 
opensource and accessibility (Dec2000) Part 1
opensource and accessibility (Dec2000) Part 1opensource and accessibility (Dec2000) Part 1
opensource and accessibility (Dec2000) Part 1
 
Dmmに入社してみた
Dmmに入社してみたDmmに入社してみた
Dmmに入社してみた
 
アジャイルマニフェストから始めるアジャイル
アジャイルマニフェストから始めるアジャイルアジャイルマニフェストから始めるアジャイル
アジャイルマニフェストから始めるアジャイル
 
Xp入門 ~これで分かる!究極のxp入門~
Xp入門 ~これで分かる!究極のxp入門~Xp入門 ~これで分かる!究極のxp入門~
Xp入門 ~これで分かる!究極のxp入門~
 
Scrumワークショップ
ScrumワークショップScrumワークショップ
Scrumワークショップ
 
アジャイルマニフェストから見るインセプションデッキ
アジャイルマニフェストから見るインセプションデッキアジャイルマニフェストから見るインセプションデッキ
アジャイルマニフェストから見るインセプションデッキ
 
ユーザーストーリーワークショップ
ユーザーストーリーワークショップユーザーストーリーワークショップ
ユーザーストーリーワークショップ
 
納涼!みんなで持ち寄る『ゾッ!とする話』
納涼!みんなで持ち寄る『ゾッ!とする話』納涼!みんなで持ち寄る『ゾッ!とする話』
納涼!みんなで持ち寄る『ゾッ!とする話』
 
マインドマップを使った 仕様分析&テスト設計
マインドマップを使った 仕様分析&テスト設計マインドマップを使った 仕様分析&テスト設計
マインドマップを使った 仕様分析&テスト設計
 
GCSアジャイル開発を使ったゲームの作り方
 GCSアジャイル開発を使ったゲームの作り方 GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方
 
ユーザーストーリーワークショップ
ユーザーストーリーワークショップユーザーストーリーワークショップ
ユーザーストーリーワークショップ
 
プレゼンテーション用資料作成のプレゼンテーション資料
プレゼンテーション用資料作成のプレゼンテーション資料プレゼンテーション用資料作成のプレゼンテーション資料
プレゼンテーション用資料作成のプレゼンテーション資料
 
NotesコンソーシアムのXPagesに関する活動のご紹介
NotesコンソーシアムのXPagesに関する活動のご紹介NotesコンソーシアムのXPagesに関する活動のご紹介
NotesコンソーシアムのXPagesに関する活動のご紹介
 
はじめてのテスト技法
はじめてのテスト技法はじめてのテスト技法
はじめてのテスト技法
 

Recently uploaded

Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipService-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipYasuyoshi Minehisa
 
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)KayaSuetake1
 
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料シンフォニティ 株式会社
 
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdfストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdfmasakisaito12
 
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチUP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチユニパー株式会社
 
20240427 zaim academy counseling lesson .pdf
20240427 zaim academy counseling lesson .pdf20240427 zaim academy counseling lesson .pdf
20240427 zaim academy counseling lesson .pdfssuser80a51f
 

Recently uploaded (6)

Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipService-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadership
 
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
 
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
 
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdfストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
 
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチUP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
 
20240427 zaim academy counseling lesson .pdf
20240427 zaim academy counseling lesson .pdf20240427 zaim academy counseling lesson .pdf
20240427 zaim academy counseling lesson .pdf
 

X pages day発表_part1