~その5みなさま、こんにちは!先週の木・金はノーツコンソーシアム主催のXPagesワークショップ@大阪へ参加させて頂いて参りました。昨年に続き、2回目の参加になりますが、同じカリキュラムなのに記憶のないことが多い(汗ただし、前回よりも少し作業に余裕があるのか、ワークショップの内容を理解しながら進めることができ、少しステップアップした気分です。簡単なレポートはコンソのブログに掲載して頂けましたので、よかったらご覧ください。先日まで作っておりましたワークフローですが、今回からは興味ある方が多い?XPagesを使って、ブラウザで表示できるようにしてみたいと思います。XPagesを動かしますので、今回からは直接サーバー上のアプリケーションをDesignerで開いて作業致します。【アプリケーション構成】内の【Xspプロパティ】については、過去記事をご参照ください。申請日順のビューを使い、カスタムコントロールを作成します。名前:byDate続いてデータとして、申請日順ビューをバインドします。バインドされた全ての項目を選択し、設計画面にドラッグ&ドロップします。このまま保存して閉じます。続いて新規XPageを作成します。名前:m_byDate続いて先ほど作成したカスタムコントロール【byDate】を設計にドラッグ&ドロップします。以上で一度、ブラウザでプリビューしてみましょう。デザイン的には・・・ですが、まずは全くプログラムせずにブラウザで表示できることがご理解頂けるかと思います。続いてフローフォームをバインドしたカスタムコントロールを作成します。名前:formFlowデフォルトアクション:文書を開くフォーム検証の実行:両方データ項目から、[Title][Applier][Dsp_Applier][Sendto][Start][End][Term][Reason][Sign]をドラッグ&ドロップします。※今回は画面表示を目的としますので、コントロールは全て【編集ボックス】としました。こちらもこのまま保存します。続いて先の日付順と同様に新規Xpageにてフローページを作成します。名前:m_Flowこちらもブラウザでプリビューしてみましょう。それでは日付順ページでデータをクリックした際に、フローページを開く設定を行います。カスタムコントロール【byDate】を開いてください。Dsp_Applierを選択し、【表示】にて「列の値をリンクとして表示する」をチェックします。続いて【イベント】タブを選択し、アクションの追加をクリックします。カテゴリ:基本アクション:ページを開く開くページの名前:m_Flowターゲット文書:文書を開く以上でカスタムコントロールを保存して閉じ、XPage【m_byDate】をもう一度ブラウザでプリビューします。下記のようにDsp_applierがリンク表示に変わっています。それではリンクをクリックしてみましょう。無事、対象のフローページが開くはずです。体裁は悪いですか、今回はXPagesを使用したWEB化について、全くプログラムすることなく表示できることをご理解頂くための記事としてご理解頂けましたら幸いです。~その4みなさま、こんにちは!当ブログも開設から2年を経過しましたが、ようやく10000Hitを超えることができました。皆様のお陰であります。先週のテクてくLotsus技術者夜会、いかがでしたか?大阪PVは少し音声の状態が悪く、苦労してしまいました。次回はバックアップ含め、もう少し準備を考えてみたいと思います。それでは話しを戻します。前々回までで、今回の目的とする開発が完了しました。本日は初期画面やメニューを加えます。アプリデザイン講座に即した内容で対応させて頂きます。メニューとなるナビゲータです。完成しちゃいましたが、特に難しいことは行っていません。各ビューを開くシンプルアクションを設定しただけのナビゲーションになります。続いてフレームセットです。こちらもいきなり完成型です。左のメニュー部に先ほどのナビゲーターを。右フレームに今回はカレンダーをセットしてみました。もちん申請日順や、ワークフローを優先するのであれば「ステータス別」を初期画面に入れるべきかもしれませんが、今回はユーザーがその日の状況を確認するという視点を優先してみました。最後に起動時の設定です。Notesクライアントの起動について、【メイン】フレームセットを開くとしただけです。最後はアイコンを変更してください。今回は省略させて頂きます。以上で設計は完了ですが、現在は個人のLocalに作成されていますので、メールに添付される文書リンクが利用できません。実際に使用する際は、Dominoサーバー上へコピーしてください。Client上でも可)を右クリックし、複製から新規レプリカを選択します。以下のようなダイアログが表示されますので、貴社サーバー内に複製を作成してください。今回は複製しましたが、単純なコピーでもサーバー内では動きます。引き続きLocalアプリケーションに機能追加などを行い、サーバー側で反映するような作業を考慮し、複製を使用しました。コピーしたアプリケーションの設計を直接編集しても問題ありません。あとはお手数ですが、貴社サーバー内でのテストを実施してみてください。以上、今回の一連の記事では、ノーツ初級開発者が最初に学ぶ【@関数】のみを使用した、ごく単純なワークフローを作成してみました。これだけでもなんとか使用できるのですが、必須項目の取扱いや、フォームのダブルクリックによる編集モード移行制御など、もっと手を加えたいと感じる部分も多く残るのも事実です。ご自信の手で設計して頂き、どのように動くのかまでのヒントになれば幸いです。今回はサンプルアプリのダウンロードは準備致しておりません。ご希望ございましたら、連絡いただければ対応致します。「こうしたい」、「ああしたい」については、IBMチャンピオンの皆様のブログ等をヒントに、手を加えてみてください。最後までありがとうございました。秋田みなさま、こんにちは!!梅雨明けが待ち遠しい今日このごろ。先般の九州北部豪雨災害に見舞われました皆様につきましては、一刻も早い復旧が望まれます。個人的に何もできないことに歯がゆさすら感じております。無理なさらずに、水分・塩分補給にはご留意ください。ユーザー情報交換会の雰囲気をお伝えできればと考えております。間に合うのに驚きました今回主催頂いておりますTDK様のバスで出発です。最初の目的地であるTDK秋田様本荘工場(西サイト・東サイト)へhttp://www.tdk.co.jp/about_tdk/tdk_network/honjo_east.htmhttp://www.tdk.co.jp/about_tdk/tdk_network/honjo_west.htm薄層チップコンデンサをはじめとする電子部品の工場であり、ほぼ全体がクリーンルームかと思われます。工場内に立ち入ることはできず、両サイトをバスで周回頂きました。トイレ休憩もそこそこに、岩カキ目指して歩きました。歴史みらい館へ到着です。館内の見学ですが、展示内容等は申し訳ありませんが、サイトをご覧ください。盛り上がったのは、歴代のカセットテープ類が壁面いっぱいに展示されたスペース。昔よく利用させて頂きました。●ノーツのグローバル対応について●ユーザーお困りごと相談グローバル対応については、もともとよくできた製品のため、大きな問題点はありませんでした。挙げるとすると、文字コードの問題と、ユーザー側の「英語力」の問題など。フォームの作り方などに関するTipsも、その場で参加いただきましたパートナー様から紹介があり、たいへん参考になりました。ユーザーお困りごと相談では、各社から持ち出された内容を発表。内容によっては、ザ・ノーツ研究会にて検討し、結論を頂ける予定です。「ノーツの今後について」や、「情報発信等」については白熱した議論が交わされましたので、今後に期待です。次回は10月に東京にて開催です。会員の皆様、特に参加されたことのない企業様、ぜひ参加をご検討ください!!最後に歴史みらい館周辺の写真を数枚。ユーザー情報交換会と、私にとっては盛りだくさんな1週間です。なんとなく上付いた気持ちに喝を入れつつ、本業に集中しております。今回はいよいよワークフローに関わるアクションを作成して参ります。申請を送付するボタンです。式:@Command([FileSave]);@MailSend(Sendto;"";"";createdby+"からの申請通知";"";createdby+"からのフロー申請が届きました。式によりアクションを非表示にする:Status!="1.承認依頼中"|@IsDocBeingEdited=0クリックすることで文書を保存し、承認者に文書リンク付のメールメッセージを送信します。ステータスが「1.承認依頼中」の編集モード時に表示されるようにしています。));@SetDocField(@DocumentUniqueID;"Sign";@Name([CN];@UserName));@SetDocField(@DocumentUniqueID;"Status";"2.承認済");@Command([FileSave]);@MailSend(createdby;"";"";Sendto+"からの申請承認通知";"";Sendto+"からの申請承認通知が届きました。);@Command([FileCloseWindow])式によりアクションを非表示にする:Status!="1.承認依頼中"|@IsNewDoc=1クリック時に承認者の氏名を「署名(Sign)」フィールドに登録し、ステータスを「2.承認済」に変更した上で文書を保存し、申請者へ承認されたというメールを送信します。ステータスが「1.承認依頼中」且つ、新規文書でない場合に表示されます。));@SetDocField(@DocumentUniqueID;"Sign";@Name([CN];@UserName));@SetDocField(@DocumentUniqueID;"Status";"3.却下");@Command([FileSave]);@MailSend(createdby;"";"";Sendto+"からの申請却下通知";"";Sendto+"により、申請が却下されました。);@Command([FileCloseWindow])式によりアクションを非表示にする:Status!="1.承認依頼中"|@IsNewDoc=1クリック時に却下者の氏名を「署名(Sign)」フィールドに登録し、ステータスを「3.却下」に変更した上で文書を保存し、申請者へ却下されたというメールを送信します。こちらも承認同様、ステータスが「1.承認依頼中」且つ、新規文書でない場合に表示されます。上記3つのアクションをフォームに加えます。一般的な「編集」「戻る」「印刷」なども追加しておきます。ビューには「終了」と「新規作成」ボタンを加えておきます。以上でフローに関係するボタンの設計と表示が完了しました。あとはフレームセットや、ナビゲータを加えれば、Notesクライアントとしての機能はほぼ完成となります。申し訳ありません、確認時間が十分に取れないまま、公開してしまいました。不備等ございましたら、修正させて頂きますので、ご了承ください。神戸は夕方の退社時間あたりが再接近のようです。皆様、くれぐれもお気をつけください。小野様よりサンプルDBが届きました!!カレンダービューの列式を工夫することにより、解決されておりましたので、ご紹介させて頂きます。結論としては、昨日作成したアプリでは、ビューの1列目に開始日を設定し、2列目の期間を複数日分の値を設定し、表現しようとしていました。頂いたサンプルでは全く視点を変更したものでした。1列目の日付に開始日と終了日を与え、@Explodeを使用し、複数値をリスト化するというものです。確かに私個人でも、フォームの日付フィールドを複数値にするという案を考えたことがあったのですが、使用ユーザーの入力が煩雑になるため、採用していませんでした。今回は列の計算式で複数化されているため、ユーザーの操作は全く変更することなく解決できました。それでは頂きました情報について、案内させて頂きます。カレンダービューを開きます。1列目、「開始日」の値を下記式に変更します。@Text(StartTime))要はStartとEndをハイフンで繋いで複数化し、@Explodeを使ってリスト化するというものです。60とし、常に"600"となるようにしました。以上で、ビュー上では日付ごとに分解されたリストとして表示されることになります。実際にビューを見てみましょう。この例では、7月4日~7日に有給休暇届けを。10日~12日に遅刻届けを作成したものになります。それぞれ1文書で申請した内容であり、無事カレンダービューにて3日以上のエントリーが表示されるようになりました。小野様、とても迅速なご提案ありがとうございます!!この不具合はかなり以前から気になっていたのですが、小野様のおかげで心からスッキリさせて頂きました。~その2みなさま、こんにちは!今週から7月。暑くなりますが、イベントも目白押しで、夏バテしている暇もありません。ユーザー情報交換会が秋田の『TDK歴史みらい館』にて開催されます。年数回ですが、ユーザー会員の皆様とお会いできることが楽しみで仕方ありません。それでは本日の内容について始めさせて頂きます。先日に引き続き、今回は主にワークフローのビューを作成して参ります。内容:Title開始日:Start終了日:End期間:@Text(Term)+"日"承認者:Sendtoステータス:Statusなおせっかく日付と期間のフィールドがありますので、カレンダービューも作成してみましょう。申請者:Dsp_Applier+"【"+Title+"】"カレンダービューの作り方はヘルプに記載されていますが、要点として1列目:日時(日付と時刻の両方を表示)/昇順/非表示2列目:期間(分単位で期間を設定、必要なければ、デフォルト値で"0"でも可)/非表示3列目:カレンダーに表示する内容となります。本ビューについてひとつ不具合がございます。期間が2日以内ですと、正しくカレンダーに両日表示されるのですが、3日を超えますと初日にしか表示されません。上記ですと、6/19の申請は6/19~21の3日間の申請になりますが、カレンダーには初日のみしか表示されません。反して6/26の申請は、6/26~27の2日間の申請であり、正しくカレンダーに表示されています。設計側で見ると正しい数値が設定されております。こちらがカレンダーの設計画面です。2列目に分の値が正しく入っていることが分かります。ご存知の方いらっしゃいましたら、フォロー頂けますと幸いです。簡単ですが、以上でビューの準備が完了致しました。次回はいよいよフローに関わるアクションを作りたいと思います。Hagihara当ブログの記事は、私個人の経験談を中心とした見解・判断に基づく内容となります。記載内容や、ダウンロードコンテンツ等については、恐れ入りますが利用者様の自己責任でお願い致します。注)外部サイトへのリンク切れについては、先方の都合によるものとなりますので、ご了承ください。