【iDempiere標準業務機能】伝票ステータスと伝票ステータス更新

 オープンソースのERP iDempiere(アイデンピエレ)は、トランザクションデータを「伝票(Document)」という概念を用いて、各種業務を管理するシステムです。伝票は「伝票ステータス(Document Status)」により、ステータス管理されます。業務担当者は、伝票ステータスの違いを読み取ることにより、業務状況を把握し管理する事ができます。

 伝票ステータスは、「伝票ステータス更新(Document Action)」処理を実行する事により変更する事ができます。

伝票ステータスと伝票ステータス更新処理の基本

 「伝票ステータス(Document Status)」は文字通りその伝票の状態を表します。例えば、入力途中の伝票の伝票ステータスは「草案(Drafted)」です。入力が完了して承認を受けた伝票の伝票ステータスは「完成(Completed)」になります。

 伝票ステータスが"完成"もしくは"クローズ"の伝票は、次の業務を行う事ができます。例えば、「受注伝票(Sales Order)」を"完成"させる事により、「出荷納品伝票(Material Shipment)」を作成する事ができ、出荷業務が行えます。

【補足説明】受注伝票と発注伝票のクローズについて

 受注伝票と発注伝票以外の伝票では伝票ステータスを「クローズ」にする事により、伝票ステータスを確定させ、変更する事ができないようになりますが、受注伝票と発注伝票については、クローズ処理の意味合いが他の伝票と少し異なります。

 例えば、受注伝票を完成してから、出荷(納品)が完了する前に、受注伝票をクローズにすると、未出荷分は「機会損失数量(Lost Sales Qty)」として認識されます。

 また、発注伝票と受注伝票以外の伝票はクローズにしても、次の業務処理が行えるようになっていますが、発注伝票と受注伝票については、クローズにすると次の業務処理に移る事ができません。具体的には受注伝票の場合はクローズすると出荷納品処理が行えません。

伝票ステータス(Document Status)一覧

定数 名称 説明
DR 草案(Drafted) 起票中を意味する伝票ステータスです。"草案"の伝票は削除する事ができます。
IN 無効(Invalid) 伝票が何らかの理由により無効になっている事を意味するステータスです。無効になっている原因を特定し修正するか、伝票をボイドする必要があります。
IP 確認中(In Progress) 通常、伝票ステータスは"草案"から"確認中"になり、入力情報のチェックなどが行われます。また、"確認中"のステータスはいわゆる承認ワークフローにおける承認待ちの状態にも使用されます。
AP 承認済み(Approved)  承認ワークフローで承認されると"承認済み"の伝票ステータスになります。
NA 否認(Not Approved)  承認ワークフローで否認されると"否認"の伝票ステータスになります。
CO 完成(Completed)  伝票が完成し、次の業務に移る事ができる事を意味する伝票ステータスです。
VO ボイド(Voided)  伝票が破棄もしくは取り消しされた事を表す伝票ステータスです。
RE リバース(Reversed)  伝票が取り消しされた事を表す伝票ステータスです。
CL クローズ(Closed)

 伝票ステータスが”クローズ”になっている場合は、伝票が完成され、破棄したり取り消ししたりする事はできません。※受注伝票/発注伝票では少し意味が異なります。

WC 確認待ち(Waiting Confirmation)  
WP 支払待ち(Waiting Payment)  

伝票ステータス更新(Document Action)処理一覧

 「伝票ステータス更新(Document Action)」の処理は、伝票毎に選択した伝票ステータス更新に応じたビジネスロジックを実装する事ができます。そのため実際の処理は伝票毎に異なるのですが、ここではiDempiereで通常、よく行われている伝票ステータス更新の処理という事で一般論的に簡単にまとめています。

定数 名称 説明
CO 完成にする(Complete) 伝票ステータスを”完成”にする一連の処理が実行されます。通常ドキュメントプロセスワークフローを実行する場合は、”完成にする”伝票ステータス更新を実行します。
WC 完成待機(Wait Complete)  
AP 承認する(Approve)  
RJ 否認する(Rejected)  
VO ボイドする(Void) 伝票の破棄もしくは取り消し(いわゆる赤伝の起票)が行われます。  
CL クローズする(Close) 伝票ステータスを”クローズ”にします。
RC

同じ日付でリバースする

(Reverse-Correct)

通常、もととなる伝票と同じ日付で赤伝の起票が行われます。
RA

現在の日付でリバースする

(Reverse-Accrual)

通常、現在の日付で、赤伝の起票が行われます。
RE 再アクティブする(Re-Activate) 受注伝票と発注伝票で使用する事ができる伝票ステータス更新で、一度完成にした伝票ステータスを変更して、再度編集可能なステータスにします。
PR 確認中にする(Prepare) 伝票の入力情報をチェックして、伝票ステータスを”確認中”にします。
IN 無効にする(Invalidate)  
XL アンロックする(Unlock) 何らかの原因で、ロックされたまま編集ができなくなっている伝票のロック状態を解除して、編集できるようにします。

伝票ステータス更新と伝票ステータスの基本遷移

 伝票ステータスは、最終的には"完成"か"クローズ"、"リバース"、"ボイド"のいずれかになります。"完成"のステータスは伝票が承認され有効となっている事を意味します。いちど"完成"された伝票は、「ボイドする」もしくは「リバースする」の伝票ステータス更新で取り消すことができます。しかし伝票ステータスが"クローズ"になっている場合は、取り消すことができません。伝票ステータスが"クローズ"になっている伝票を取り消ししたい場合は、いわゆる赤伝と呼ばれるようなマイナスの伝票を別途作成し調整する事になります。

伝票ステータスの基本遷移
伝票ステータスの基本遷移

【技術情報】伝票ステータス更新の選択の制御

 「伝票ステータス更新(Document Action)」処理は、伝票と伝票ステータス、「職責(Role)」の設定により選択できる伝票ステータス更新処理が制御されています。

 まず、DocumentEngineクラスのgetValidActionsメソッドで、伝票とその伝票ステータス毎に選択できる伝票ステータス更新処理がセットされます。そのあとで「職責(Role)」の伝票ステータス更新処理の権限設定がMRoleクラスのcheckActionAccessメソッドで加味されて、選択できる伝票ステータス更新処理が制御されています。

 そして、アドオンで作成する伝票(Document)についてはDocOptionsクラスをinterfaceする事で、制御する事もできます。

参考サイト

関連するコンテンツ