【JPIERE-0436】JPiereオリジナル添付ファイル管理

 iDempiereの標準の添付ファイル機能は、添付ファイル自体の検索が行い難く、ポップアップウィンドウも少々使いずらいです。また、添付ファイルの削除を制御できなかったりもします。そのようなiDempiere標準の添付ファイル機能を改善した、JPiereオリジナルの添付ファイル管理機能を作成しました。

JPiereオリジナル添付ファイル管理概要

 iDempiereの標準の添付ファイル機能と、JPiereオリジナル添付ファイル管理機能との主な違いを紹介します。

添付ファイルのレコード管理

 iDempiereの標準の添付ファイル機能は、添付しているファイルの情報をXMLで管理していますが、JPiereオリジナルの添付ファイル管理機能ではレコードで管理しています。そして、そのレコードには、ファイルを添付したレコードの情報が引き継がれます。そのため、添付ファイル自体の検索が容易に行えます。

添付ファイルを検索して探す事ができます!!

 

添付ファイルの削除の可/不可の制御

 iDempiereの標準の添付ファイル機能は、添付しているファイルの削除を制御するような事はできませんが、JPiereオリジナルの添付ファイル管理機能では、ファイルの削除を制御する事ができます。

完成にした伝票の添付ファイルを削除できないようにする事ができます!!

準備

 JPiereオリジナル添付ファイル管理機能では、DB内にはファイルを保存せずに、ハードディスク上にディレクトリ(フォルダ)を作成してファイルを管理します。そのためストレージプロバイダーの設定が必要になります。

ストレージプロバイダー

◆メソッド

File Systemを選択して下さい。

◆フォルダ

ここに設定したフォルダ(ディレクトリ)の直下にファイルを配置して行きます。

 

クライアントウィンドウのクライアント情報タブにストレージプロバイダーを設定する

 クライアントウィンドウのクライアント情報タブの、添付ファイル用ストレージプロバイダータブに、登録したストレージプロバイダーを設定します。

添付ファイルポップアップウィンドウ

 JPiereオリジナルの添付ファイルアイコンをクリックした時に表示される、ポップアップウィンドウの機能について説明します。

ツールバーアイコン

添付ファイルのポップアップウィンドウ

【補足説明】ページング設定

システムコンフィグ設定で、添付ファイルを一覧表示する際にページングするレコード件数を制御する事ができます。

JPIERE_ATTACHMENT_FILE_RECORD_PAGING_SIZE

 

クリップアイコン

クリップをクリックするとポップアップウィンドウが表示され、ファイルを添付する事ができます。

一括ダウンロードアイコン

一括ダウンロードアイコンをクリックすると、添付ファイルを一括でダウンロードする事ができます。

OKボタンを押すと、組織毎に添付ファイルをまとめて1つのZIPファイルとしてダウンロードする事ができます。キャンセルすると、添付ファイルの個別のダウンロード用のリストが表示されます。

◆添付ファイルの一覧表示アイコン

をクリックするとそのファイルだけをダウンロードする事ができます。

をクリックすると添付ファイルを管理しているレコードにズームする事ができます。

をクリックするとファイルをレビューする事ができます。※ファイルによってはレビューできない場合もあります。

をクリックすると添付ファイルを削除します。添付ファイル台帳の削除可能フラグがOFFの場合は、削除する事はできません。

添付ファイル台帳

 JPiereオリジナルの添付ファイルの機能では、添付ファイルの情報をレコードとして管理します。そのレコードには、ファイルを添付したレコードの情報がコピーされます。この事により、添付ファイルを色々な情報をもと検索する事ができます。

◆組織

 添付ファイル台帳のレコードへのアクセス制御に使用します。添付ファイルのポップアップウィンドウで、添付ファイルをアップロードした時に選択されている組織が自動入力されます。

◆テーブル

 ファイルを添付しているレコードのテーブルが自動入力されます。

◆レコード

 ファイルを添付しているレコードのID。クリックするとそのレコードにズームする事ができます。

◆販売(ON)/購買(OFF)

 ファイルを添付しているレコードに販売(ON)/購買(OFF)フラグ(IsSOTrxカラム)がある場合に、その値がコピーされます。

◆添付ファイルの名前

 添付ファイルのファイル名。

◆添付ファイルのパス

 ファイルが保存されているディスクへのパスが自動入力されます。ここに入力されるパスは、ストレージプロバイダーに設定されているパスは除かれた相対パスになります。 ここに設定されるパスは下記のような構成になります。

  1. クライアントID
  2. 組織ID
  3. テーブル名
  4. レコードID

◆添付ファイルの説明

 添付ファイルのポップアップウィンドウで、添付ファイルをアップロードした時に入力されている”添付ファイルの説明”が、自動入力されます。タグ的に、検索したいワードを入力する事を意図しています。

◆メディアコンテンツタイプ

 添付ファイルの種類が自動入力されます。

◆メディアフォーマット

 添付ファイルの拡張子が自動入力されます。

◆添付ファイルのダウンロード

 添付ファイルをダウンロードする事ができます。

◆添付ファイルビューワー

 添付ファイルをプレビューする事ができます。ただしプレビューできるのは、下記のメディアコンテンツタイプになります。

  • image/jpeg
  • image/png
  • image/gif
  • text/plain
  • application/pdf
  • text/html

◆アクティブ

 レコードの論理削除フラグです。添付したファイルは削除されませんが、添付ファイルポップアップウィンドウには表示されなくなります。

◆削除可能

 レコードの物理削除フラグです。このフラグがONの場合、削除アイコンでレコードを削除する事ができ、レコードを削除するとディスクにあるファイルも削除されます。このフラグがOFFの場合は、レコードもファイルも削除できません。

 

- リファレンスのフィールドグループ

 リファレンスのフィールドグループに配置されているフィールド(≒カラム)と同じフィールドが、ファイルを添付したテーブルにある場合に、その情報がコピーされます。タグ的に添付ファイルを検索するのに使用する事を意図しています。  ただしコピーした情報は、ファイルを添付した時点の情報です。ファイルを添付した後で、ファイルを添付したレコードの情報が変更になっても、添付ファイル台帳には反映はされません。

 JP_AttachmentFileRecordテーブルにカラムを追加すれば、そのカラムがファイルを添付したレコードにあれば、その情報もコピーされます。

 

- 伝票のフィールドグループ

 主に伝票に関連する情報を、伝票のフィールドグループに配置されています。

◆伝票日付

伝票日付フィールドには下記のカラムの情報がコピーされます。

  • 注文日付(DateOrdered)
  • 移動日付(MovementDate)
  • 請求日付(DateInvoiced)
  • 取引日付(DateTrx)
  • 記帳日付(StatementDate)

 

添付ファイルの削除の制御

 “添付ファイル台帳(JP_AttachmentFileRecord)”には、削除可能フラグがあり、ONの状態であれば、添付ファイル台帳のレコードを削除する事で、ハードディスク上のファイルも削除されます。OFFにする事で添付ファイル台帳のレコードは削除する事ができなくなり、ハードディスク上のファイルも削除できません。

 JPiereの添付ファイル管理では、システムコンフィグ設定で、伝票ステータス更新処理を行った時と、ファイルが添付されているデータのデータが変更になった時に、添付ファイル台帳の削除可能フラグを自動的にOFFにする事ができます。

 このシステムコンフィグ設定は、システム全体で下記の1つずつの設定をする事ができます。クライアントや組織レベルでの設定はできません。

【補足説明】システムコンフィグ設定を変更したらサーバーを再起動して下さい

ここで紹介しているシステムコンフィグ設定は、システム全体で同一の設定となり、サーバー起動時に有効となります。そのため、ここで紹介しているシステムコンフィグ設定を変更した際には、サーバーを再起動して下さい。

JP_ATTACHMENT_DOCVALIDATE_UNDELETABLE

伝票ステータス更新処理時に、削除可能フラグをOFFにしたい場合、そのタイミングを設定します。主なタイミングは下記になります。0にしておけば処理は行われません。

  • 1 … 確認中にする処理の前。
  • 2 … ボイドする処理の前。
  • 3 … クローズにする処理の前。
  • 4 … 再アクティブにする処理の前。
  • 7 … 完成にする処理の前。
  • 8 … 確認中にする処理の後。
  • 9 … 完成にする処理の後。
  • 10 … ボイドする処理の後。
  • 11 … クローズにする処理の後。

JP_ATTACHMENT_MODELCHANGE_UNDELETABLE_COLUMN

 ここに設定したカラムがあるテーブルが更新される場合に、そのカラムの値がJP_ATTACHMENT_MODELCHANGE_UNDELETABLE_VALUEに設定した値に更新された時に、添付ファイル台帳の削除可能フラグをOFFにします。”NULL”を設定しておけば処理は行われません。

JP_ATTACHMENT_MODELCHANGE_UNDELETABLE_VALUE

  JP_ATTACHMENT_MODELCHANGE_UNDELETABLE_COLUMNに設定したカラムの値が、 JP_ATTACHMENT_MODELCHANGE_UNDELETABLE_VALUEに設定したカラムの値と同じ値に更新された時に、添付ファイル台帳の削除可能フラグをOFFにします。 ”NULL”を設定しておけば処理は行われません。

次の3種類の設定が可能です。

◆Boolean型のカラム(リファレンス:Yes/No)

例えば、ProcessedカラムがONになった時に、添付ファイル台帳の削除可能フラグをOFFにしたい場合、下記のように設定します。

  • JP_ATTACHMENT_MODELCHANGE_UNDELETABLE_COLUMN … Processed
  • JP_ATTACHMENT_MODELCHANGE_UNDELETABLE_VALUE … Y

◆String型のカラム(リファレンス:List等)

例えば、伝票スタース(DocStatusカラム)が完成(CO)になった時に、添付ファイル台帳の削除可能フラグをOFFにしたい場合、下記のように設定します。

  • JP_ATTACHMENT_MODELCHANGE_UNDELETABLE_COLUMN … DocStatus
  • JP_ATTACHMENT_MODELCHANGE_UNDELETABLE_VALUE … CO

◆ID系のカラム(リファレンス:Search/Table/Table Direct等)

設定例

  • JP_ATTACHMENT_MODELCHANGE_UNDELETABLE_COLUMN … C_DocType_ID
  • JP_ATTACHMENT_MODELCHANGE_UNDELETABLE_VALUE … 1000123

その他のシステムコンフィグ設定

ZK_MAX_UPLOAD_SIZE

 ファイルサイズの上限をキロバイトで指定してください。0もしくはマイナスの数値を設定すると、無制限になります。このシステムコンフィグ設定は、iDempiereの他のアップロードのファイルサイズの上限としても使用しています。

JP_ATTACHMENT_BLACK_FILE_LIST

 添付を許可したくないファイルの拡張子をカンマ区切りで指定してください。大文字/小文字は意識する必要はありません。

例: exe,bat,xls,txt

全ての拡張子の登録を許可する場合は”NONE”を設定して下さい。

JP_ATTACHMENT_WHITE_FILE_LIST

 添付を許可するファイルの拡張子をカンマ区切りで指定してください。大文字/小文字は意識する必要はありません。

例: exe,bat,xls,txt

全ての拡張子の登録を許可する場合は”NONE”を設定して下さい。

カスタマイズ情報

カスタマイズ履歴

2020年5月6日 ヌルポ対応

JPiereオリジナル添付ファイル機能の設定がされていない場合に、ヌルポになる不具合が発見したので、修正しました。

2019年5月20日:JPBPからJPMSへ変更

JPiereオリジナル添付ファイルの機能を、JPBPからJPMSへ移行しました。

(理由)JPBPとJPMSが依存関係になってしまっていたため。