Quantcast
Channel: www.compiere-distribution-lab.net Blog Feed
Viewing all articles
Browse latest Browse all 1074

【JPIERE-0607(v10)】キャンセルワークフロー(ボイド/リバースのワークフロー)

$
0
0

iDempiereの標準機能には、いわゆる承認のワークフロー(以下、WF)の機能が用意されています。iDempiere標準機能のWFは伝票を完成にする際には使用できますが、伝票を取り消す際には使用できませんでした。このカスタマイズでは伝票を取り消す際のワークフローを「キャンセルワークフロー(WF)」と呼んで、伝票のボイドとリバースする際にも承認ができるようにしています。

目次

  • キャンセルWFの概要
  • キャンセルWFに必要な設定
  • カスタマイズ内容
  • 関連するカスタマイズ

開発中

キャンセルWFの概要

キャンセルWFは、iDempiereの標準のWFを伝票のボイドやリバースの際にも利用できるようにした機能です。

【JPIERE-0513】検索ウィンドウでのワークフロー(WF)承認でも、通常の伝票の承認と同じようにボイドやリバースも承認できます。

キャンセルWFの最終承認が行われると、ボイドかリバースが実行されます。

キャンセルWFには申請ボタンと、状況が確認できるすてーたすがあります。

「キャンセルWF申請」ボタンを押すと、ボイドかリバースを選択するポップアップア画面が表示され、OKボタンを押すとキャンセルWF申請の処理が行われます。

キャンセルWFには下記のステータスがあり、進行状況が確認できます。

  • 承認 ➡ 最初の1人目の承認者が承認するとなります。承認中を意味するステータスです。
  • 否認➡キャンセルWFが否認されるとなるステータス。キャンセルWFは終了となり、再申請することができます。
  • 確認中➡キャンセルWFを申請するとなるステータスです。まだ誰も承認していないことを意味します。
  • 空欄 ➡ キャンセルWFは申請されていない状態です。

キャンセルWFに必要な設定

キャンセルWFを動かすための設定を説明します。

【ポイント】サンプル設定

"OSS ERP Solutions"のテナントの受注伝票(全項目)売上請求伝票(全項目)ウィンドウには、キャンセルWFのサンプルを設定しています。その設定も参考にして下さい。

 

伝票のテーブルにカラムの追加

キャンセルWFを動かすためには、伝票のテーブルに2つのカラムを追加して、WFの設定を行う必要があります。

◆JP_CancelWFAction: キャンセルWF申請(ボタン)

◆JP_CancelWFStatus: キャンセルWFステータス

 

キャンセルWFの設定

キャンセル用のWFの設定を行います。「キャンセルWFベースノード」を基に、ノードを追加して独自のWFを構築することができます。基本はiDempiereの標準WFの設定と同様です。

◆キャンセルWFベースノード

キャンセルWFには、基本となる下記の3つのノードがあります。

  • 開始ノード … WFで最初に呼び出されるノード
  • キャンセルノード … 伝票のボイド/リバースを行うノード
  • WFクローズノード … WFのクローズ処理を行うノード

キャンセルWFベースノードに、承認ノード等を追加して独自のワークフローを構築できます。

【注意】「標準ワークフロー」フラグはOFFにする

ワークフロー設定において、移行タブにある標準ワークフローフラグはOFFにして下さい。キャンセルWFではONにしてしまうと意図しないノード遷移になってしまう場合があります。

 

キャンセルWFを起動するプロセスの設定

設定したキャンセルWFを起動するプロセスを設定します。キャンセルWFを起動させるプロセスは伝票のテーブル毎に用意する必要があります。「キャンセルワークフロー」フィールドに、先に設定したワークフローを選択入力して下さい。

クラス名には「jpiere.base.plugin.org.adempiere.process.CancelWFStart」と入力して下さい。

◆受注伝票/発注伝票のキャンセルWFの起動プロセス

プロセスのパラメーターには「DocAction」を必須入力として追加して下さい。

キャンセルWF起動時にここで選択した伝票ステータス更新処理が、キャンセルWFの最終承認後に実行されます。

 

キャンセルWF申請(ボタン)にプロセスを設定

追加した「JP_CancelWFAction: キャンセルWF申請(ボタン)」カラムに、ワークフローを起動させるプロセスを追加します。

カスタマイズ内容

追加カラム

◆AD_Processテーブル

  • JP_CancelWorkflow_ID ➡ キャンセルWFを登録するカラム

◆C_Orderテーブル

サンプル設定として下記2つのカラムを追加

  • JP_CancelWFAction
  • JP_CancelWFStatus

◆C_Invoiceテーブル

サンプル設定として下記2つのカラムを追加

  • JP_CancelWFAction
  • JP_CancelWFStatus

追加プロセス

◆jpiere.base.plugin.org.adempiere.process.CancelWFStart

キャンセルWFをキックするプロセスです。

◆jpiere.base.plugin.org.adempiere.process.CancelWFProcess

キャンセルWF対象の伝票をリバースもしくはボイドするプロセスです。キャンセルWF申請(ボタン)を押したとき選択した伝票ステータス更新の処理が行われます。

◆jpiere.base.plugin.org.adempiere.process.CancelWFClose

リバースもしくはボイドした後で、ワークフロープロセスをクローズする処理です。

◆jpiere.base.plugin.org.adempiere.process.WFProcessManageExtendForCancelWF

WFProcessManageをキャンセルWF用に拡張しているプロセスです。ワークフロープロセスを中止する時に、キャンセルWFステータスとキャンセルWF申請ボタンを空欄にする処理が追加されています。

修正プロセス

◆jpiere.base.plugin.org.adempiere.process.WFActivityApproval

キャンセルWFの承認と否認ができるように修正しました。

◆jpiere.base.plugin.org.adempiere.process.WFProcessAbort

キャンセルWFの承認申請を取り消しする際に、キャンセルWFステータスとキャンセルWF申請ボタンを空欄にする処理を追加しました。

追加リストバリデーションのリファレンス

◆JP_CancelWFActionList

  • VO … ボイドする
  • RA … 現在の日付でリバースする
  • RC … 同じ日付でリバースする

◆JP_CancelWFActionList_Void

  • VO … ボイドする

◆JP_CancelWFStatusList

  • AP … 承認 ➡ 最初の1人目の承認者が承認するとなるステータス。
  • NA …否認➡キャンセルWFが否認されるとなるステータス。
  • IP … 確認中➡キャンセルWFを申請するとなるステータス。
  • 空欄 … キャンセルWFは申請されていない状態のステータス。

追加ダイナミックバリデーション

◆JP_CancelWFActionValidate

iDempiereは基本的に伝票ステータスが草案や確認中の時にボイドして、完成の時にリバースします。選択している伝票の伝票ステータスに応じて、ボイドするかリバースするを選択できるダイナミックバリデーションです。

関連するカスタマイズ


Viewing all articles
Browse latest Browse all 1074

Trending Articles