みなさま、こんにちは!
当ブログも開設から2年を経過しましたが、ようやく10000Hitを超えることができました。
ひとえに皆様のお陰であります。
さて先週のテクてくLotsus技術者夜会、いかがでしたか?
大阪PVは少し音声の状態が悪く、苦労してしまいました。
次回はバックアップ含め、もう少し準備を考えてみたいと思います。
それでは話しを戻します。
前々回までで、今回の目的とする開発が完了しました。
本日は初期画面やメニューを加えます。
もちろんメニューについては既存アプリケーションとの親和性などもあるため、使いやすいものをご採用頂くべきではありますが、今回も
に即した内容で対応させて頂きます。
まずはメニューとなるナビゲータです。
いきなり完成しちゃいましたが、特に難しいことは行っていません。
各ビューを開くシンプルアクションを設定しただけのナビゲーションになります。
続いてフレームセットです。
こちらもいきなり完成型です。
左のメニュー部に先ほどのナビゲーターを。
右フレームに今回はカレンダーをセットしてみました。
もちん申請日順や、ワークフローを優先するのであれば「ステータス別」を初期画面に入れるべきかもしれませんが、今回はユーザーがその日の状況を確認するという視点を優先してみました。
最後に起動時の設定です。
すいません、こちらもいきなり完成型ですが、単純にIBM Notesクライアントの起動について、【メイン】フレームセットを開くとしただけです。
最後はアイコンを変更してください。
今回は省略させて頂きます。
以上で設計は完了ですが、現在は個人のLocalに作成されていますので、メールに添付される文書リンクが利用できません。
実際に使用する際は、Dominoサーバー上へコピーしてください。
コピーの手順は、アプリケーション(Domino Designer上でも、Notes Client上でも可)を右クリックし、複製から新規レプリカを選択します。
以下のようなダイアログが表示されますので、貴社サーバー内に複製を作成してください。
なお今回は複製しましたが、単純なコピーでもサーバー内では動きます。
但し、引き続きLocalアプリケーションに機能追加などを行い、サーバー側で反映するような作業を考慮し、複製を使用しました。
もちろんコピーしたアプリケーションの設計を直接編集しても問題ありません。
あとはお手数ですが、貴社サーバー内でのテストを実施してみてください。
以上、今回の一連の記事では、ノーツ初級開発者が最初に学ぶ【@関数】のみを使用した、ごく単純なワークフローを作成してみました。
もちろんこれだけでもなんとか使用できるのですが、必須項目の取扱いや、フォームのダブルクリックによる編集モード移行制御など、もっと手を加えたいと感じる部分も多く残るのも事実です。
まずはご自信の手で設計して頂き、どのように動くのかまでのヒントになれば幸いです。
なお今回はサンプルアプリのダウンロードは準備致しておりません。
もしご希望ございましたら、連絡いただければ対応致します。
もっと「こうしたい」、「ああしたい」については、IBMチャンピオンの皆様のブログ等をヒントに、手を加えてみてください。
最後までありがとうございました。
ページビューの合計
2017年7月24日月曜日
2017年7月18日火曜日
レポート~ユーザー情報交換会 in 秋田
みなさま、こんにちは!!
梅雨明けが待ち遠しい今日このごろ。先般の九州北部豪雨災害に見舞われました皆様につきましては、一刻も早い復旧が望まれます。また個人的に何もできないことに歯がゆさすら感じております。
どんどん暑くなって参ります。くれぐれも無理なさらずに、水分・塩分補給にはご留意ください。
さて今回は一旦ワークフローを休ませていただき、7月14日(金)に開催されました、ノーツコンソーシアム ユーザー情報交換会の雰囲気をお伝えできればと考えております。
9時半 秋田空港集合・・・当日朝で間に合うのに驚きました


梅雨明けが待ち遠しい今日このごろ。先般の九州北部豪雨災害に見舞われました皆様につきましては、一刻も早い復旧が望まれます。また個人的に何もできないことに歯がゆさすら感じております。
どんどん暑くなって参ります。くれぐれも無理なさらずに、水分・塩分補給にはご留意ください。
さて今回は一旦ワークフローを休ませていただき、7月14日(金)に開催されました、ノーツコンソーシアム ユーザー情報交換会の雰囲気をお伝えできればと考えております。
9時半 秋田空港集合・・・当日朝で間に合うのに驚きました
![]() |
今回主催頂いておりますTDK様のバスで出発です。 |
![]() |
最初の目的地であるTDK秋田様本荘工場(西サイト・東サイト)へ http://www.tdk.co.jp/about_tdk/tdk_network/honjo_east.htm http://www.tdk.co.jp/about_tdk/tdk_network/honjo_west.htm 薄層チップコンデンサをはじめとする電子部品の工場であり、ほぼ全体がクリーンルームかと思われます。 もちろん工場内に立ち入ることはできず、両サイトをバスで周回頂きました。 |
そのまま今回の"裏"目的である「岩カキ」を目指し、道の駅 象潟へ。 トイレ休憩もそこそこに、岩カキ目指して歩きました。 15分という短いタイムスケジュールでしたが、もちろん堪能です! |
続いて"真"の目的地である、TDK様 歴史みらい館へ到着です。 早速館内の見学ですが、展示内容等は申し訳ありませんが、サイトをご覧ください。 |
昼食をはさみ、午後からは本題である「ユーザー情報交換会」
テーマは、
●ノーツのグローバル対応について
●ユーザーお困りごと相談
グローバル対応については、もともとよくできた製品のため、大きな問題点はありませんでした。
しいて挙げるとすると、文字コードの問題と、ユーザー側の「英語力」の問題など。
またフォームの作り方などに関するTipsも、その場で参加いただきましたパートナー様から紹介があり、たいへん参考になりました。
ユーザーお困りごと相談では、各社から持ち出された内容を発表。
内容によっては、ザ・ノーツ研究会にて検討し、結論を頂ける予定です。
「ノーツの今後について」や、「情報発信等」については白熱した議論が交わされましたので、今後に期待です。
次回は10月に東京にて開催です。
会員の皆様、特に参加されたことのない企業様、ぜひ参加をご検討ください!!
最後に歴史みらい館周辺の写真を数枚。
とりわけ夕日は最高でした!!
(TDK様に言わせると、これでも92点だったそうです)
とりわけ夕日は最高でした!!
(TDK様に言わせると、これでも92点だったそうです)
2017年7月10日月曜日
簡単! @関数だけで、一次承認ワークフロー ~その3
みなさま、こんにちは!
今週は明日の某社フォーラムや、金曜のノーツコンソーシアム ユーザー情報交換会と、私にとっては盛りだくさんな1週間です。
なんとなく上付いた気持ちに喝を入れつつ、本業に集中しております。
さて今回はいよいよワークフローに関わるアクションを作成して参ります。
まずは申請を送付するボタンです。
クリックすることで文書を保存し、承認者に文書リンク付のメールメッセージを送信します。
ステータスが「1.承認依頼中」の編集モード時に表示されるようにしています。
クリック時に承認者の氏名を「署名(Sign)」フィールドに登録し、ステータスを「2.承認済」に変更した上で文書を保存し、申請者へ承認されたというメールを送信します。
ステータスが「1.承認依頼中」且つ、新規文書でない場合に表示されます。
クリック時に却下者の氏名を「署名(Sign)」フィールドに登録し、ステータスを「3.却下」に変更した上で文書を保存し、申請者へ却下されたというメールを送信します。
こちらも承認同様、ステータスが「1.承認依頼中」且つ、新規文書でない場合に表示されます。
上記3つのアクションをフォームに加えます。
もちろん一般的な「編集」「戻る」「印刷」なども追加しておきます。
ビューには「終了」と「新規作成」ボタンを加えておきます。
以上でフローに関係するボタンの設計と表示が完了しました。
あとはフレームセットや、ナビゲータを加えれば、Notesクライアントとしての機能はほぼ完成となります。
申し訳ありません、確認時間が十分に取れないまま、公開してしまいました。
もし不備等ございましたら、修正させて頂きますので、ご了承ください。
今週は明日の某社フォーラムや、金曜のノーツコンソーシアム ユーザー情報交換会と、私にとっては盛りだくさんな1週間です。
なんとなく上付いた気持ちに喝を入れつつ、本業に集中しております。
さて今回はいよいよワークフローに関わるアクションを作成して参ります。
まずは申請を送付するボタンです。
●申請 式: @Command([FileSave]); @MailSend(Sendto;"";"";createdby+"からの申請通知";"";createdby+"からのフロー申請が届きました。"+@NewLine+"こちらをご確認ください ⇒ ";[IncludeDoclink] ); @Command([FileCloseWindow]) プリビュー(読み込み)・読み込みモード時に非表示 式によりアクションを非表示にする: Status!="1.承認依頼中"|@IsDocBeingEdited=0 |
クリックすることで文書を保存し、承認者に文書リンク付のメールメッセージを送信します。
ステータスが「1.承認依頼中」の編集モード時に表示されるようにしています。
●承認 式: @If(@IsDocBeingEdited; @True;@Command( [EditDocument] ; 1 )); @SetDocField(@DocumentUniqueID;"Sign";@Name([CN];@UserName)); @SetDocField(@DocumentUniqueID;"Status";"2.承認済"); @Command([FileSave]); @MailSend(createdby;"";"";Sendto+"からの申請承認通知";"";Sendto+"からの申請承認通知が届きました。"+@NewLine+"こちらをご確認ください ⇒ ";[IncludeDoclink] ); @Command([FileCloseWindow]) 式によりアクションを非表示にする: Status!="1.承認依頼中"|@IsNewDoc=1 |
クリック時に承認者の氏名を「署名(Sign)」フィールドに登録し、ステータスを「2.承認済」に変更した上で文書を保存し、申請者へ承認されたというメールを送信します。
ステータスが「1.承認依頼中」且つ、新規文書でない場合に表示されます。
●却下 @If(@IsDocBeingEdited; @True;@Command( [EditDocument] ; 1 )); @SetDocField(@DocumentUniqueID;"Sign";@Name([CN];@UserName)); @SetDocField(@DocumentUniqueID;"Status";"3.却下"); @Command([FileSave]); @MailSend(createdby;"";"";Sendto+"からの申請却下通知";"";Sendto+"により、申請が却下されました。"+@NewLine+"こちらをご確認ください ⇒ ";[IncludeDoclink] ); @Command([FileCloseWindow]) 式によりアクションを非表示にする: Status!="1.承認依頼中"|@IsNewDoc=1 |
クリック時に却下者の氏名を「署名(Sign)」フィールドに登録し、ステータスを「3.却下」に変更した上で文書を保存し、申請者へ却下されたというメールを送信します。
こちらも承認同様、ステータスが「1.承認依頼中」且つ、新規文書でない場合に表示されます。
上記3つのアクションをフォームに加えます。
もちろん一般的な「編集」「戻る」「印刷」なども追加しておきます。
ビューには「終了」と「新規作成」ボタンを加えておきます。
以上でフローに関係するボタンの設計と表示が完了しました。
あとはフレームセットや、ナビゲータを加えれば、Notesクライアントとしての機能はほぼ完成となります。
申し訳ありません、確認時間が十分に取れないまま、公開してしまいました。
もし不備等ございましたら、修正させて頂きますので、ご了承ください。
2017年7月4日火曜日
簡単! @関数だけで、一次承認ワークフロー ~その2.1
みなさま、こんにちは!
台風が近づいてきてますね(汗
神戸は夕方の退社時間あたりが再接近のようです。
皆様、くれぐれもお気をつけください。
さて連日の掲載になりますが、昨日カレンダービューについての不具合を記載致しましたが、早速当日夜にIBM Champions for ICS 小野様よりサンプルDBが届きました!!
カレンダービューの列式を工夫することにより、解決されておりましたので、ご紹介させて頂きます。
結論としては、昨日作成したアプリでは、ビューの1列目に開始日を設定し、2列目の期間を複数日分の値を設定し、表現しようとしていました。
頂いたサンプルでは全く視点を変更したものでした。
1列目の日付に開始日と終了日を与え、@Explodeを使用し、複数値をリスト化するというものです。
確かに私個人でも、フォームの日付フィールドを複数値にするという案を考えたことがあったのですが、使用ユーザーの入力が煩雑になるため、採用していませんでした。
今回は列の計算式で複数化されているため、ユーザーの操作は全く変更することなく解決できました。
それでは頂きました情報について、案内させて頂きます。
まずカレンダービューを開きます。
1列目、「開始日」の値を下記式に変更します。
要はStartとEndをハイフンで繋いで複数化し、@Explodeを使ってリスト化するというものです。
列のプロパティでは、
2列目については、
とし、常に"600"となるようにしました。
以上で、ビュー上では日付ごとに分解されたリストとして表示されることになります。
実際にビューを見てみましょう。
この例では、7月4日~7日に有給休暇届けを。
10日~12日に遅刻届けを作成したものになります。
もちろんそれぞれ1文書で申請した内容であり、無事カレンダービューにて3日以上のエントリーが表示されるようになりました。
小野様、とても迅速なご提案ありがとうございます!!
この不具合はかなり以前から気になっていたのですが、小野様のおかげで心からスッキリさせて頂きました。
既に社内アプリケーションの全ての改修も完了致しました!
台風が近づいてきてますね(汗
神戸は夕方の退社時間あたりが再接近のようです。
皆様、くれぐれもお気をつけください。
さて連日の掲載になりますが、昨日カレンダービューについての不具合を記載致しましたが、早速当日夜にIBM Champions for ICS 小野様よりサンプルDBが届きました!!
カレンダービューの列式を工夫することにより、解決されておりましたので、ご紹介させて頂きます。
結論としては、昨日作成したアプリでは、ビューの1列目に開始日を設定し、2列目の期間を複数日分の値を設定し、表現しようとしていました。
頂いたサンプルでは全く視点を変更したものでした。
1列目の日付に開始日と終了日を与え、@Explodeを使用し、複数値をリスト化するというものです。
確かに私個人でも、フォームの日付フィールドを複数値にするという案を考えたことがあったのですが、使用ユーザーの入力が煩雑になるため、採用していませんでした。
今回は列の計算式で複数化されているため、ユーザーの操作は全く変更することなく解決できました。
それでは頂きました情報について、案内させて頂きます。
まずカレンダービューを開きます。
1列目、「開始日」の値を下記式に変更します。
開始日:式 StartTime := "08:00:00"; EndDate := @If(End=""; Start; End); @TextToTime(@Explode(@TextToTime(@Text(Start) + "-" + @Text(EndDate))) + " " + @Text(StartTime)) |
要はStartとEndをハイフンで繋いで複数化し、@Explodeを使ってリスト化するというものです。
列のプロパティでは、
列情報タブ 複数値の分離記号:カンマ ソートタブ 複数値を別のエントリで表示にチェック |
2列目については、
期間:式 StartTime := @TextToTime("08:00:00"); EndTime := @TextToTime("18:00:00"); (EndTime - StartTime) / 60 |
とし、常に"600"となるようにしました。
以上で、ビュー上では日付ごとに分解されたリストとして表示されることになります。
実際にビューを見てみましょう。
この例では、7月4日~7日に有給休暇届けを。
10日~12日に遅刻届けを作成したものになります。
もちろんそれぞれ1文書で申請した内容であり、無事カレンダービューにて3日以上のエントリーが表示されるようになりました。
小野様、とても迅速なご提案ありがとうございます!!
この不具合はかなり以前から気になっていたのですが、小野様のおかげで心からスッキリさせて頂きました。
既に社内アプリケーションの全ての改修も完了致しました!
2017年7月3日月曜日
簡単! @関数だけで、一次承認ワークフロー ~その2
みなさま、こんにちは!
今週から7月。暑くなりますが、イベントも目白押しで、夏バテしている暇もありません。
特に来週末にはノーツコンソーシアム ユーザー情報交換会が秋田の『TDK歴史みらい館』にて開催されます。年数回ですが、ユーザー会員の皆様とお会いできることが楽しみで仕方ありません。
それでは本日の内容について始めさせて頂きます。
先日に引き続き、今回は主にワークフローのビューを作成して参ります。
なおせっかく日付と期間のフィールドがありますので、カレンダービューも作成してみましょう。
カレンダービューの作り方はヘルプに記載されていますが、要点として
1列目:日時(日付と時刻の両方を表示)/昇順/非表示
2列目:期間(分単位で期間を設定、必要なければ、デフォルト値で"0"でも可)/非表示
3列目:カレンダーに表示する内容
となります。
なお本ビューについてひとつ不具合がございます。
期間が2日以内ですと、正しくカレンダーに両日表示されるのですが、3日を超えますと初日にしか表示されません。
上記ですと、6/19の申請は6/19~21の3日間の申請になりますが、カレンダーには初日のみしか表示されません。
反して6/26の申請は、6/26~27の2日間の申請であり、正しくカレンダーに表示されています。
但し、設計側で見ると正しい数値が設定されております。
こちらがカレンダーの設計画面です。
2列目に分の値が正しく入っていることが分かります。
もしご存知の方いらっしゃいましたら、フォロー頂けますと幸いです。
簡単ですが、以上でビューの準備が完了致しました。
次回はいよいよフローに関わるアクションを作りたいと思います。
今週から7月。暑くなりますが、イベントも目白押しで、夏バテしている暇もありません。
特に来週末にはノーツコンソーシアム ユーザー情報交換会が秋田の『TDK歴史みらい館』にて開催されます。年数回ですが、ユーザー会員の皆様とお会いできることが楽しみで仕方ありません。
それでは本日の内容について始めさせて頂きます。
先日に引き続き、今回は主にワークフローのビューを作成して参ります。
●申請日順|byDate 申請日:created ソート:降順 申請者:Dsp_Applier 内容:Title 開始日:Start 終了日:End 期間:@Text(Term)+"日" 承認者:Sendto ステータス:Status |
●ステータス別|byStatus ステータス:Status 展開できる行に三角アイコンを表示する 昇順・カテゴリ別 申請日:created ソート:降順 申請者:Dsp_Applier 内容:Title 開始日:Start 終了日:End 期間:@Text(Term)+"日" 承認者:Sendto |
●申請者別|byApplier 申請者:Dsp_Applier 展開できる行に三角アイコンを表示する 昇順・カテゴリ別 申請日:created ソート:降順 内容:Title 開始日:Start 終了日:End 期間:@Text(Term)+"日" 承認者:Sendto ステータス:Status |
なおせっかく日付と期間のフィールドがありますので、カレンダービューも作成してみましょう。
●カレンダー|Calender(スタイル:カレンダー) 開始日:Start ソート:昇順 日付の表示 及び 時刻の表示 の両方にチェック 列を非表示 期間:(End-Start)/60 (分単位に変換) 列を非表示 申請者:Dsp_Applier+"【"+Title+"】" |
カレンダービューの作り方はヘルプに記載されていますが、要点として
1列目:日時(日付と時刻の両方を表示)/昇順/非表示
2列目:期間(分単位で期間を設定、必要なければ、デフォルト値で"0"でも可)/非表示
3列目:カレンダーに表示する内容
となります。
なお本ビューについてひとつ不具合がございます。
期間が2日以内ですと、正しくカレンダーに両日表示されるのですが、3日を超えますと初日にしか表示されません。
上記ですと、6/19の申請は6/19~21の3日間の申請になりますが、カレンダーには初日のみしか表示されません。
反して6/26の申請は、6/26~27の2日間の申請であり、正しくカレンダーに表示されています。
但し、設計側で見ると正しい数値が設定されております。
こちらがカレンダーの設計画面です。
2列目に分の値が正しく入っていることが分かります。
もしご存知の方いらっしゃいましたら、フォロー頂けますと幸いです。
簡単ですが、以上でビューの準備が完了致しました。
次回はいよいよフローに関わるアクションを作りたいと思います。
2017年6月26日月曜日
簡単! @関数だけで、一次承認ワークフロー ~その1
みなさま、こんにちは!
今週で6月も終わりですね。当初は雨が少なく水不足が心配されましたが、ようやく梅雨らしくなって参りました。
個人的にはあまり雨で好きではありませんが、特に農家の方々など、必要なときに必要な降水量は必要かと思いますので、「例年並み」が好ましいのでしょうか。
さて全く話題は異なりますが、海水浴シーズン目前ということでひとつだけ宣伝を!!

詳しくはサイトをご覧ください。
ちょうど今週日曜に、舞鶴にあります海上保安学校にて【五森祭】が開催されます。
去年に引き続き、今年も参加させて頂きます。
また可能な写真等はフェイスブックに掲載させて頂きます。
それでは本題です。
今回から数回に分けて、@関数だけで簡単な一次承認のワークフローを作ってみたいと思います。内容としては、よくある勤務に関わる届出として作成致します。
今回も作りながら記事にしておりますので、後ほど修正が入るかもしれませんが、何とぞご容赦ください。
早速ですが、新規のアプリケーションを作成します。(以前までに作成したユニバーサルテンプレートを利用していただいても構いませんが、本文面についてはこちらは使わずに説明を行います。)
私の設定は下記のようにしました。
続いて新規フォームを作成します。
私の設定は以下としました。
続いて以下フィールドを作成します。
本来、本人が申請者であることが多いのですが、代理で申請する場合も考慮し、初期値としてデフォルトユーザーを設定していますが、アドレス帳から選択できるようにも対応しております。
こちらのフィールドに、DJXを参照し、申請者を漢字化しました。
上司(承認者)を選択するダイアログです。
対象期間の開始日を選択します。
同じく終了日を選択します。同日の場合でも必須としています。
先のふたつの日付フィールドの差から、日数を計算しています。
理由を記載する項目です。
私のイメージでは下記のようになりました。
次にフォームのウィンドウタイトルの設定を行います。
ウィンドウタイトルに、新規作成の場合は、「新規フロー 作成中」と表示。既存文書の場合は、「○○届け【氏名(漢字名)】」と表示させています。
再度に著作関連(登録日・登録者・編集日・編集者)のサブフォームを作成し、埋め込みます。
※著作関連サブフォームについては、以前のユニバーサルテンプレートをご覧ください。
それでは一度、IBM Notesでプリビューしてみましょう。
以下のように表示されるかと思います。
次にフロー部分のフィールドを追加します。
フォームの先頭にフローの状況を表示するステータスフィールドを追加します。
ワークフローということで、アクションボタンでステータスを切り替えるため、あえてダイアログにせず、テキストとしています。
続いてサブフォームのすぐ上に、承認者の署名欄を作成します。
今回は以上にてフォームのフィールド配置までを行いました。
次回は必要なビューを作成して参ります。
今週で6月も終わりですね。当初は雨が少なく水不足が心配されましたが、ようやく梅雨らしくなって参りました。
個人的にはあまり雨で好きではありませんが、特に農家の方々など、必要なときに必要な降水量は必要かと思いますので、「例年並み」が好ましいのでしょうか。
さて全く話題は異なりますが、海水浴シーズン目前ということでひとつだけ宣伝を!!
海の「もしも」は118番

詳しくはサイトをご覧ください。
ちょうど今週日曜に、舞鶴にあります海上保安学校にて【五森祭】が開催されます。
去年に引き続き、今年も参加させて頂きます。
また可能な写真等はフェイスブックに掲載させて頂きます。
それでは本題です。
今回から数回に分けて、@関数だけで簡単な一次承認のワークフローを作ってみたいと思います。内容としては、よくある勤務に関わる届出として作成致します。
今回も作りながら記事にしておりますので、後ほど修正が入るかもしれませんが、何とぞご容赦ください。
早速ですが、新規のアプリケーションを作成します。(以前までに作成したユニバーサルテンプレートを利用していただいても構いませんが、本文面についてはこちらは使わずに説明を行います。)
サーバー:Local タイトル:自由 ファイル名:自由 |
私の設定は下記のようにしました。
続いて新規フォームを作成します。
名前:自由 別名:自由(但し、半角英数を推奨) |
私の設定は以下としました。
続いて以下フィールドを作成します。
●届出内容(入力必須) 名前:Title(編集可能) 種類:ダイアログリスト 選択肢を入力 遅刻 早退 有給休暇(その他、必要に応じて追加ください。) 入力の確認:@If(Title="";@Failure("[届出内容]の指定は必須です。");@Success) |
●申請者(入力必須) 名前:Applier(編集可能) 種類:ダイアログリスト アドレス帳から選択 デフォルト値:@Name([CN];@UserName) 入力の確認:@If(Applier="";@Failure("[申請者]の指定は必須です。");@Success) 段落を非表示:プリビュー(読み込み)・読み込みモード・印刷・埋め込み・クリップボードへのコピー |
本来、本人が申請者であることが多いのですが、代理で申請する場合も考慮し、初期値としてデフォルトユーザーを設定していますが、アドレス帳から選択できるようにも対応しております。
●申請者(表示用)(入力必須) 名前:Dsp_Applier(計算結果) 種類:テキスト 式:@Name([CN];@DbLookup("";"サーバー名":"names.nsf";"($Users)";Applier;"AltFullName")) 段落を非表示:プリビュー(編集モード)・編集モード |
こちらのフィールドに、DJXを参照し、申請者を漢字化しました。
●承認者(入力必須) 名前:Sendto(編集可能) 種類:ダイアログリスト アドレス帳から選択 入力の確認:@If(Sendto="";@Failure("[承認者]の指定は必須です。");@Success) |
上司(承認者)を選択するダイアログです。
●期間(開始日)(入力必須) 名前:Start(編集可能) 種類:日付/時刻 スタイル:日付/時刻制御 サイズ:幅 10 固定(文字) 入力の確認:@If(Start="";@Failure("[開始日]の指定は必須です。");@Success) |
対象期間の開始日を選択します。
●期間(終了日)(入力必須) 名前:End(編集可能) 種類:日付/時刻 スタイル:日付/時刻制御 サイズ:幅 10 固定(文字) 入力の確認:@If(End="";@Failure("[終了日]の指定は必須です。");@Success) |
同じく終了日を選択します。同日の場合でも必須としています。
●期間 名前:Term(計算結果) 種類:数値 式:@If(Start="";"";End="";"";(End - Start)/86400+1) |
先のふたつの日付フィールドの差から、日数を計算しています。
|
理由を記載する項目です。
私のイメージでは下記のようになりました。
次にフォームのウィンドウタイトルの設定を行います。
@If(@IsNewDoc;"新規フロー 作成中";Title+"届【"+Dsp_Applier+"】") |
ウィンドウタイトルに、新規作成の場合は、「新規フロー 作成中」と表示。既存文書の場合は、「○○届け【氏名(漢字名)】」と表示させています。
再度に著作関連(登録日・登録者・編集日・編集者)のサブフォームを作成し、埋め込みます。
※著作関連サブフォームについては、以前のユニバーサルテンプレートをご覧ください。
それでは一度、IBM Notesでプリビューしてみましょう。
以下のように表示されるかと思います。
次にフロー部分のフィールドを追加します。
フォームの先頭にフローの状況を表示するステータスフィールドを追加します。
名前:Status 種類:テキスト デフォルト値:"1.承認依頼中" |
ワークフローということで、アクションボタンでステータスを切り替えるため、あえてダイアログにせず、テキストとしています。
続いてサブフォームのすぐ上に、承認者の署名欄を作成します。
名前:Sign 種類:テキスト |
今回は以上にてフォームのフィールド配置までを行いました。
次回は必要なビューを作成して参ります。
2017年6月19日月曜日
ExcelのデータをNotes文書にするVBAのサンプルファイル
みなさま、こんにちは!
アリンコに要注意な島からの情報発信です(汗
先週のテクてく、いかがでしたか?
大阪でのPVに参加したかったのですが、本業の会議と重なり、どうしても参加できませんでした。せめてリモートで画面だけとパソコンを持ち込んだのですが、それもできず。
資料のみ入手して、我慢しております。
大阪のPVは継続頂けるようですので、今回ご参加できなかった皆様も、ぜひ来月はご一緒しましょう!!
さて先月、標題記事を記載させて頂きましたが、本日は配布できそうな状態のExcelファイル(.xlsm)が完成しましたので、そちらの紹介とサンプルダウンロードへのリンクを掲載させて頂きます。
早速ですが、サンプルのダウンロードはこちらよりお願いします。
中身ですが、シートは全くのブランクになります。
標準モジュールとして以下のふたつを含んでおります。
●ExcelのSheet1の1行目の値をNotesの指定データベースの指定フォームにインポートした新規文書を保存する。最後にSheet1の1行目を削除する。
Private Sub import_notesdb()
Dim Session As Object
Dim db As Object
Dim doc As Object
Set Session = CreateObject("Notes.Notessession")
Set db = Session.GetDatabase("サーバー名", "データベース名")
Set doc = db.createdocument(db)
doc.form = "フォーム別名"
doc.フィールド名1 = Range("A1").Value
doc.フィールド名2 = Range("B1").Value
doc.フィールド名3 = Range("C1").Value
doc.フィールド名4 = Range("D1").Value
doc.フィールド名5 = Range("E1").Value
doc.フィールド名6 = Range("F1").Value
doc.フィールド名7 = Range("G1").Value
doc.フィールド名8 = Range("H1").Value
doc.フィールド名9 = Range("I1").Value
doc.フィールド名10 = Range("J1").Value
doc.フィールド名11 = Range("K1").Value
doc.フィールド名12 = Range("L1").Value
doc.フィールド名13 = Range("M1").Value
doc.フィールド名14 = Range("N1").Value
doc.フィールド名15 = Range("O1").Value
doc.フィールド名16 = Range("P1").Value
doc.フィールド名17 = Range("Q1").Value
doc.フィールド名18 = Range("R1").Value
doc.フィールド名19 = Range("S1").Value
doc.フィールド名20 = Range("T1").Value
doc.フィールド名21 = Range("U1").Value
Call doc.Save(True, True)
Sheets("Sheet1").Select
Rows("1:1").Select
Selection.Delete Shift:=xlUp
End Sub
アリンコに要注意な島からの情報発信です(汗
先週のテクてく、いかがでしたか?
大阪でのPVに参加したかったのですが、本業の会議と重なり、どうしても参加できませんでした。せめてリモートで画面だけとパソコンを持ち込んだのですが、それもできず。
資料のみ入手して、我慢しております。
大阪のPVは継続頂けるようですので、今回ご参加できなかった皆様も、ぜひ来月はご一緒しましょう!!
さて先月、標題記事を記載させて頂きましたが、本日は配布できそうな状態のExcelファイル(.xlsm)が完成しましたので、そちらの紹介とサンプルダウンロードへのリンクを掲載させて頂きます。
早速ですが、サンプルのダウンロードはこちらよりお願いします。
中身ですが、シートは全くのブランクになります。
標準モジュールとして以下のふたつを含んでおります。
●ExcelのSheet1の1行目の値をNotesの指定データベースの指定フォームにインポートした新規文書を保存する。最後にSheet1の1行目を削除する。
Private Sub import_notesdb()
Dim Session As Object
Dim db As Object
Dim doc As Object
Set Session = CreateObject("Notes.Notessession")
Set db = Session.GetDatabase("サーバー名", "データベース名")
Set doc = db.createdocument(db)
doc.form = "フォーム別名"
doc.フィールド名1 = Range("A1").Value
doc.フィールド名2 = Range("B1").Value
doc.フィールド名3 = Range("C1").Value
doc.フィールド名4 = Range("D1").Value
doc.フィールド名5 = Range("E1").Value
doc.フィールド名6 = Range("F1").Value
doc.フィールド名7 = Range("G1").Value
doc.フィールド名8 = Range("H1").Value
doc.フィールド名9 = Range("I1").Value
doc.フィールド名10 = Range("J1").Value
doc.フィールド名11 = Range("K1").Value
doc.フィールド名12 = Range("L1").Value
doc.フィールド名13 = Range("M1").Value
doc.フィールド名14 = Range("N1").Value
doc.フィールド名15 = Range("O1").Value
doc.フィールド名16 = Range("P1").Value
doc.フィールド名17 = Range("Q1").Value
doc.フィールド名18 = Range("R1").Value
doc.フィールド名19 = Range("S1").Value
doc.フィールド名20 = Range("T1").Value
doc.フィールド名21 = Range("U1").Value
Call doc.Save(True, True)
Sheets("Sheet1").Select
Rows("1:1").Select
Selection.Delete Shift:=xlUp
End Sub
赤字部分は貴社環境に合わせて変更してください。
項目は多めに記載していますが、必要に応じて増減させてください。
前回の記事ではPublic Subとしていましたが、実際のインポートは次に作成する繰り返しの処理で行いますので、Private Subに変更しています。
●Sheet1のセルA1が"空白"になるまで、処理を繰り返す。
Sub インポート()
Do Until Sheets("Sheet1").Range("A1") = ""
Call import_notesdb
Loop
End Sub
もし1列目にタイトル行がある場合は、列番号に関わる部分を"2"などに修正してください。
サンプルの紹介は以上になります。
先日も書きましたが、弊社では基幹システムのデータをExcelやCSVに抽出し、Notesに取り込む作業がいくつかありますが、現在はすべてVBAに切り替えました。
今後は、ユーザーが申請するワークフローで、フィールド数の多いものなどについて、エクセルでの入力フォームを配布し、ユーザー各自がVBAを利用してNotes文書に登録できるような運用にも利用予定です。
ぜひお試しください!!
登録:
投稿 (Atom)