ページビューの合計

2017年6月26日月曜日

簡単! @関数だけで、一次承認ワークフロー ~その1

みなさま、こんにちは!
今週で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)


先のふたつの日付フィールドの差から、日数を計算しています。



●事由(入力必須)
 名前:Reason(編集可能)
 種類:テキスト
 入力の確認:@If(Reason="";@Failure("[事由]の指定は必須です。");@Success)



理由を記載する項目です。


私のイメージでは下記のようになりました。


次にフォームのウィンドウタイトルの設定を行います。


 @If(@IsNewDoc;"新規フロー 作成中";Title+"届【"+Dsp_Applier+"】")


ウィンドウタイトルに、新規作成の場合は、「新規フロー 作成中」と表示。既存文書の場合は、「○○届け【氏名(漢字名)】」と表示させています。


再度に著作関連(登録日・登録者・編集日・編集者)のサブフォームを作成し、埋め込みます。
※著作関連サブフォームについては、以前のユニバーサルテンプレートをご覧ください。

それでは一度、IBM Notesでプリビューしてみましょう。
以下のように表示されるかと思います。


次にフロー部分のフィールドを追加します。

フォームの先頭にフローの状況を表示するステータスフィールドを追加します。


 名前:Status
 種類:テキスト
 デフォルト値:"1.承認依頼中"


ワークフローということで、アクションボタンでステータスを切り替えるため、あえてダイアログにせず、テキストとしています。

続いてサブフォームのすぐ上に、承認者の署名欄を作成します。


 名前:Sign
 種類:テキスト
 


今回は以上にてフォームのフィールド配置までを行いました。
次回は必要なビューを作成して参ります。




0 件のコメント:

コメントを投稿