ページビューの合計

ラベル エージェント の投稿を表示しています。 すべての投稿を表示
ラベル エージェント の投稿を表示しています。 すべての投稿を表示

2023年6月22日木曜日

#期日管理 アプリについて

 I would like to introduce another finished application for a project that occurred within our company.

It will be a kind of centralized management of task due dates.


みなさま、こんにちは。
今回も弊社内で発生した案件からリリースしたアプリを紹介致します。

【要件】
・社内で管理する必要のある取引先の許可証を一元管理する
・期日が近づいたら、担当者(グループ)にメールで通知する

弊社の例では、医薬品や毒劇物などを販売するには、それぞれ期日の決まった許可を更新する必要があります。
販売先がさらに販売(再販)する場合、その許可を弊社が管理することが法的に定められています。

従来は取引先から提出頂いた許可証のPDFをファイルサーバーに保存。
必要に応じて、「個人のタスク」や「スケジュール」で通知設定を実施していました。
ファイル名に期日を指定し、随時こちらが近づいてくると更新された最新版の提供を依頼するという形でした。

また対象の法律により管理者が複数おり、それぞれ別で管理していたり、営業担当変更や退職で内容が引き継がれなかったりした場合など、万が一の確認もれを防ぐ意味でも、一元化を実施することとなりました。



上記を踏まえ、アプリを作るのですが、基本は簡単なフォームとビュー、メニューやフレームセットだけで終わります。

【フォーム設計画面】

【起動時のフレームセット】


ここでキーになるのが、自動で通知を送信する機能になります。
ちなみに「期日順」ビューは以下のようになっています。

期日昇順で表示されており、切れたものは"タイガースカラー(笑)"になっていることがわかるかと思います。
・・・余談ですが、弊社は重要で目立たせる必要のあるビューの行はこの"タイガースカラー"で統一しています。

通知はエージェントを使用して、スケジュール実行をさせています。
本エージェントは、ノーツコンソーシアム 大阪研究会 の浜さん

にお願いして作って頂いたものになります。


Option Public
Option Declare

Sub Initialize
Dim ns As New NotesSession
Dim ndb As NotesDatabase
Dim nv As NotesView
Dim nd As NotesDocument
Set ndb = ns.Currentdatabase
Set nv = ndb.GetView("LTerm")
nv.Autoupdate = False
Set nd = nv.GetFirstDocument()
While Not (nd Is Nothing)
If CStr(nd.EndDate(0)) <> "" Then
If nd.EndDate(0) - Today <= 7 Then
'期日まで7日以下のものがメール送信対象
Call SendMail(ndb, nd)
End If
End If
Set nd = nv.getnextdocument(nd)
Wend
End Sub


Function SendMail(vndb As NotesDatabase, vnd As NotesDocument)

Dim ndMail As NotesDocument
Dim nrti As NotesRichTextItem
Set ndMail = vndb.CreateDocument
ndMail.Form = "Memo"
ndMail.SendTo = vnd.GetItemValue("Contact")(0)
ndMail.CopyTo = vnd.GetItemValue("Manager")(0)
ndMail.Subject = "許可証等更新日接近のお知らせ"
Set nrti = ndMail.CreateRichTextItem("Body")
Call nrti.AppendText("許可証等の更新時期が近づきました、")
Call nrti.AddNewline(1)
Call nrti.AppendText("期日までに更新してください。")
Call nrti.AddNewline(2)
Call nrti.AppendDocLink(vnd, vndb.Title) '文書リンクつけるなら 
Call ndMail.Send(False)
End Function


スケジュールは以下のように毎週月曜の9:00としてあります。

以上で完成です。
これにより各自のタスクやスケジュールに依存するのではなく、会社としてのルールに従った管理作業が行えることとなりました。

弊社の場合は許可証がトリガーでしたが、期日管理を個人まかせにできないことっていくつかあるのではないでしょうか。

ぜひそのような内容が必要でしたら、本アプリをダウンロードしてご使用ください。
以下よりダウンロード可能です。