iDempiere 経費マスタ(タイプ毎)の使い方|取引先管理 操作マニュアル・技術仕様
📖 取引先管理の全体像: 取引先管理の全体図 も合わせてご覧ください。
経費マスタ(タイプ毎)は、立替経費報告で使用する経費の分類(旅費、交通費、宿泊費など)を定義するマスタです。経費タイプを登録すると、対応する経費品目(ProductType=E の品目)が自動的に作成・同期され、経費報告の明細や顧客への再請求で使用できるようになります。
📌 ポイント: 経費タイプを保存すると品目マスタ(M_Product)が自動生成されます。名称や数量単位の変更は必ず経費タイプ側で行ってください。品目側を直接変更しても、経費タイプの保存時に上書き同期されます。
経費マスタ(タイプ毎)でできること
Section titled “経費マスタ(タイプ毎)でできること”- 経費の分類(旅費・交通費・宿泊費等)の定義
- 経費品目(ProductType=E)の自動生成・同期
- 「請求済み」フラグによる顧客再請求対象の指定
- 価格表ごとの経費単価の設定(価格タブ)
- 経費計上時に使用する勘定科目の設定(会計タブ)
- 品目カテゴリ・税カテゴリによる分類と税計算
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| 経費タイプ | S_ExpenseType | 約10項目 | 経費分類の基本情報(名称・単位・再請求可否等) |
| 経費品目 | M_Product | 約24項目 | 自動生成された経費品目の詳細 |
| 価格 | M_ProductPrice | 約8項目 | 価格表ごとの営業定価・実績価格・限度価格 |
| 会計 | M_Product_Acct | 約13項目 | 会計スキーマごとの費用・売上勘定等 |
💡 ヒント: 通常の登録作業は「経費タイプ」タブだけで完了します。経費品目タブは自動生成された品目の確認用で、価格・会計タブは再請求や原価管理を行う場合に設定します。
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 メニューから開く<br/>取引先管理 > サービス > 経費マスタ(タイプ毎)(標準)"] --> B["➕ 新規で基本情報を入力<br/>(検索キー・名称・数量単位・品目カテゴリ・税カテゴリ)"]
B --> C{顧客に再請求する?}
C -->|する| D["✅ 請求済みフラグをチェック"]
C -->|しない| E["⬜ 請求済みフラグはオフのまま"]
D --> F["💾 保存<br/>(経費品目が自動生成される)"]
E --> F
F --> G["💴 価格タブで<br/>再請求単価を設定(任意)"]
G --> H["📒 会計タブで<br/>費用勘定を確認"]
H --> I["🔗 立替経費及び作業時間報告の<br/>明細で品目として選択可能に"]
アクセス方法
Section titled “アクセス方法”メニューから「取引先管理 > サービス > 経費マスタ(タイプ毎)(標準)」を開きます。
- ツールバーの「新規」ボタンをクリック
- 基本情報を入力:
- 検索キー: 経費タイプコード(例:
TRAVEL)。省略すると名称が自動セットされます - 名称: 経費タイプ名(例:
旅費交通費) - 数量単位: 経費計上の単位(例: 回、km)
- 請求済み: 顧客へ再請求する経費の場合にチェック
- 品目カテゴリ: 自動生成される経費品目の分類(会計初期値の基準)
- 税カテゴリ: 適用する税カテゴリ
- 検索キー: 経費タイプコード(例:
- 「保存」をクリック(この時点で経費品目が自動生成されます)
項目リファレンス
Section titled “項目リファレンス”経費タイプタブ
Section titled “経費タイプタブ”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 検索キー | 必須 | 文字列(40) | 経費タイプの一意コード(未入力時は名称を自動採用) |
| 名称 | 必須 | 文字列(60) | 経費タイプ名 |
| 説明 | - | 文字列 | 補足説明 |
| 数量単位 | 必須 | 選択 | 経費計上の単位 |
| 請求済み | 必須 | チェック | 顧客への再請求対象とするか |
| 品目カテゴリ | 必須 | 選択 | 自動生成品目の分類カテゴリ |
| 税カテゴリ | 必須 | 選択 | 税計算のカテゴリ |
| 有効 | 必須 | チェック | 使用可否 |
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. 経費品目タブの品目はどこから来たのですか?
Section titled “Q. 経費品目タブの品目はどこから来たのですか?”経費タイプの新規保存時に、システムが自動で作成した品目(M_Product、ProductType=E)です。MExpenseType.beforeSave() が新規レコード保存時に品目を生成し、以降は保存のたびに afterSave() が名称等を品目へ同期します。手動で品目を作成する必要はありません。
Q. 品目マスタ側で経費品目の名前を変更してもよいですか?
Section titled “Q. 品目マスタ側で経費品目の名前を変更してもよいですか?”推奨されません。経費タイプを保存すると経費タイプ側の内容で品目が上書き同期されるため、変更は必ず経費タイプ側で行ってください。
Q. 「請求済み」フラグは何に使われますか?
Section titled “Q. 「請求済み」フラグは何に使われますか?”このフラグが有効な経費タイプで計上された経費明細は、顧客への再請求対象になります。再請求の流れは経費精算伝票で確認・処理します。
Q. 検索キーを入力せずに保存できますか?
Section titled “Q. 検索キーを入力せずに保存できますか?”できます。検索キーが未入力の場合、保存時に名称が検索キーとして自動セットされます(MExpenseType.beforeSave() の仕様)。
🛠 技術仕様(開発者向け)
経費タイプはマスタ型ウィンドウ(AD_Window_ID: 234)で、S_ExpenseType テーブルに格納されます。MExpenseType クラス(113行)が品目の自動生成・同期を担う小規模なモデルクラスです。Document 型ではありません。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class MExpenseType {
+getProduct() MProduct
#beforeSave(boolean) boolean
#afterSave(boolean, boolean) boolean
}
class X_S_ExpenseType {
<<generated>>
}
class PO {
<<abstract>>
}
MExpenseType --|> X_S_ExpenseType
X_S_ExpenseType --|> PO
MExpenseType --> MProduct : auto create / sync
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MExpenseType.java
関連DBテーブル
Section titled “関連DBテーブル”S_ExpenseType(経費タイプ)
Section titled “S_ExpenseType(経費タイプ)”テーブル属性: 削除可、アクセスレベル 3(Client+Org)
| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| S_ExpenseType_ID | ID | PK | 経費タイプID | 主キー |
| AD_Client_ID | TableDirect | Y | クライアント | default @#AD_Client_ID@ |
| AD_Org_ID | TableDirect | Y | 組織 | default @#AD_Org_ID@ |
| Value | String(40) | Y | 検索キー | 未入力時は Name を自動採用 |
| Name | String(60) | Y | 名称 | |
| Description | String(255) | N | 説明 | |
| C_UOM_ID | TableDirect | Y | 数量単位 | |
| IsInvoiced | YesNo | Y | 再請求対象 | |
| M_Product_Category_ID | TableDirect | Y | 品目カテゴリ | |
| C_TaxCategory_ID | TableDirect | Y | 税カテゴリ | |
| IsActive | YesNo | Y | 有効 | default Y |
このほか経費品目タブは M_Product、価格タブは M_ProductPrice、会計タブは M_Product_Acct を使用します(品目マスタの技術仕様参照)。
ビジネスロジック
Section titled “ビジネスロジック”beforeSave() / afterSave()
Section titled “beforeSave() / afterSave()”MExpenseType の保存処理(ソース根拠):
- beforeSave(新規時):
Value未設定ならNameをセットし、new MProduct(this)で経費品目を生成して先に保存 - afterSave(毎回):
getProduct()で紐づく品目を取得し、MProduct.setExpenseType(this)で名称・単位等に差分があれば品目を更新保存
この双方向同期により、経費タイプと経費品目は常に一致します。
拡張ポイント
Section titled “拡張ポイント”OSGi Model Validator(推奨)
Section titled “OSGi Model Validator(推奨)”public class ExpenseTypeValidator implements ModelValidator { @Override public int modelChange(PO po, int type) throws Exception { if (po instanceof MExpenseType && type == TYPE_BEFORE_NEW) { MExpenseType et = (MExpenseType) po; // 例: 経費タイプコードの命名規則チェック } return 0; }}このテーブルに標準 Callout はありません(gw_column.tsv 上 callout 定義なし)。
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”経費タイプと品目の自動同期は Model Validator でコア改変なしに拡張できます。経費分類の体系化や承認ルールの追加もお任せください。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。