iDempiere 敬称の使い方|取引先管理 操作マニュアル・技術仕様
📖 取引先管理の全体像: 取引先管理の全体図 も合わせてご覧ください。
敬称は、帳票やメールの宛名に印字する「◯◯様」「Dear Mr. ◯◯」といった呼びかけの書式を定義するマスタです。登録した敬称は取引先マスタおよび取引先担当者(ユーザー)に割り当てられ、印刷時に置換されます。
📌 ポイント: 敬称の文言には
{0}プレースホルダを使います。実行時に{0}が相手の名前に置き換わるため、日本語運用では敬称欄に{0} 様と登録するのが基本形です。
敬称でできること
Section titled “敬称でできること”- 帳票・メールの宛名書式の定義(
{0}による名前の差し込み) - 名前の一部だけを使う指定(
名字のみフラグ) - デフォルト敬称の指定(新規取引先で自動セット)
- 言語ごとの敬称文言の翻訳登録
- 取引先マスタ・取引先担当者への割当
敬称はシンプルな2タブ構成です。
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| 敬称 | C_Greeting | 7項目 | 敬称の本体(名称・文言・フラグ) |
| 翻訳 | C_Greeting_Trl | 8項目 | 言語ごとの敬称文言 |
💡 ヒント: 単一言語での運用であれば「敬称」タブだけで設定が完了します。翻訳タブは多言語クライアント(複数の
AD_Languageを有効化している環境)でのみ使用してください。
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 メニューから開く<br/>取引先管理 > 取引先管理セットアップ > 敬称"] --> B["➕ 新規で名称を入力<br/>(例: 様)"]
B --> C["✍️ 敬称の文言を入力<br/>(例: {0} 様)"]
C --> D{名前の扱い}
D -->|フルネームを使う| E["名字のみ のチェックを外す"]
D -->|名の部分だけを使う| F["名字のみ にチェック"]
E --> G{既定にするか}
F --> G
G -->|する| H["⭐ デフォルト にチェック"]
G -->|しない| I["💾 保存"]
H --> I
I --> J{多言語運用か}
J -->|はい| K["🌐 翻訳タブで<br/>言語別の文言を登録"]
J -->|いいえ| L["🔗 取引先マスタ・担当者に<br/>敬称を割り当て"]
K --> L
アクセス方法(メニューパス)
Section titled “アクセス方法(メニューパス)”メニューから「取引先管理 > 取引先管理セットアップ > 敬称」を開きます。
新規登録(必須項目ベースの手順)
Section titled “新規登録(必須項目ベースの手順)”- ツールバーの「新規」ボタンをクリック
- 必須項目を入力:
- 名称: 一覧で表示される識別名(60文字以内、例:
様、御中) - 有効: 既定でチェック済み
- 名称: 一覧で表示される識別名(60文字以内、例:
- 敬称(任意)に印字する文言を入力:
- 例:
{0} 様— 実行時に{0}が相手の名前に置換されます - 空欄のままでも保存できますが、その場合は印字用の文言が存在しません
- 例:
- 必要に応じてフラグを設定:
- 名字のみ: 名前の一部だけを差し込む場合にチェック
- デフォルト: 既定の敬称として使う場合にチェック
- 「保存」をクリック
⚠️ 注意: 「名字のみ」(
IsFirstNameOnly)は AD の原文が Print only the first name in greetings で、ファーストネーム(名)のみを印字するという意味です。日本語ラベルの語感と原義がずれているため、日本語の姓名運用で使う際は挙動を実データで確認してから採用してください。
- 「翻訳」タブに移動
- 対象の言語を選択
- その言語での名称と敬称の文言を入力
- 翻訳するにチェックを入れて保存
項目リファレンス
Section titled “項目リファレンス”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| クライアント | 必須 | 選択 | テナント |
| 組織 | 必須 | 選択 | 組織 |
| 名称 | 必須 | 文字列(60) | 敬称の識別名 |
| 有効 | 必須 | チェック | レコードが有効か(既定 Y) |
| 敬称 | - | 文字列(60) | 印字する文言。{0} が名前に置換される |
| 名字のみ | 必須 | チェック | 名(ファーストネーム)のみを印字するか |
| デフォルト | 必須 | チェック | 既定の敬称として使用するか |
| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 敬称 | 必須 | 選択 | 親の敬称レコード |
| 言語 | 必須 | 選択 | 対象言語 |
| 名称 | 必須 | 文字列 | 当該言語での名称 |
| 敬称 | - | 文字列 | 当該言語での印字文言 |
| 翻訳する | 必須 | チェック | 翻訳済みとして扱うか |
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. 敬称はどこで使われますか?
Section titled “Q. 敬称はどこで使われますか?”取引先マスタおよび取引先担当者(ユーザー)に C_Greeting_ID として割り当てられ、帳票やメールの宛名生成で参照されます。取引先グループの「所属取引先」タブでも敬称欄が表示されます。
Q. {0} 以外のプレースホルダは使えますか?
Section titled “Q. {0} 以外のプレースホルダは使えますか?”AD の説明は "Dear {0}" のように {0} のみを挙げており、実行時に {0} が名前に置換されるとされています。複数のプレースホルダを使った複雑な差し込みが必要な場合は、メールテンプレート側の @変数@ 記法を利用してください。
Q. 「デフォルト」を複数のレコードにチェックするとどうなりますか?
Section titled “Q. 「デフォルト」を複数のレコードにチェックするとどうなりますか?”C_Greeting には beforeSave() を持つ M クラスが存在せず(生成クラス X_C_Greeting のみ)、コア側に一意制約チェックのロジックはありません。重複を許してしまうため、既定にしたい敬称は1件だけにする運用ルールが必要です。
Q. 敬称を削除できますか?
Section titled “Q. 敬称を削除できますか?”C_Greeting は削除可(IsDeleteable=Y)ですが、取引先や担当者から参照されている場合は外部キー制約でエラーになります。使わなくなった敬称は削除せず「有効」のチェックを外して無効化してください。
🛠 技術仕様(開発者向け)
敬称は C_Greeting テーブル(アクセスレベル 3 = クライアント/組織、削除可)に格納されます。専用の M クラス(MGreeting)は存在せず、AD から自動生成された X_C_Greeting(237行)のみが提供されます。したがって beforeSave() / afterSave() によるカスタム検証はコアに実装されていません。翻訳テーブル C_Greeting_Trl も同様に生成クラスのみです。Document 型ではありません。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class X_C_Greeting {
<<generated>>
+getGreeting() String
+isFirstNameOnly() boolean
+isDefault() boolean
+getKeyNamePair() KeyNamePair
}
class I_C_Greeting {
<<interface>>
}
class I_Persistent {
<<interface>>
}
class PO {
<<abstract>>
}
X_C_Greeting --|> PO
X_C_Greeting ..|> I_C_Greeting
X_C_Greeting ..|> I_Persistent
X_C_Greeting --> X_C_Greeting_Trl : translations
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/X_C_Greeting.java(インターフェース: I_C_Greeting.java)
関連DBテーブル
Section titled “関連DBテーブル”C_Greeting(敬称)
Section titled “C_Greeting(敬称)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_Greeting_ID | ID | PK | 敬称ID | 主キー |
| C_Greeting_UU | UUID(36) | N | UUID | |
| AD_Client_ID | Table Direct | Y | クライアント | 既定 @#AD_Client_ID@ |
| AD_Org_ID | Table Direct | Y | 組織 | 既定 @#AD_Org_ID@ |
| Name | String(60) | Y | 名称 | 識別子 |
| Greeting | String(60) | N | 敬称の文言 | {0} を名前に置換 |
| IsFirstNameOnly | Yes-No | Y | 名字のみ | 原義は「名のみ印字」 |
| IsDefault | Yes-No | Y | デフォルト | 一意制約なし |
| IsActive | Yes-No | Y | 有効 | 既定 Y |
C_Greeting_Trl(敬称翻訳)
Section titled “C_Greeting_Trl(敬称翻訳)”| カラム名 | 型 | 必須 | 説明 |
|---|---|---|---|
| C_Greeting_ID | Table Direct | PK | 敬称FK |
| AD_Language | Table | PK | 言語コード |
| Name | String | Y | 当該言語の名称 |
| Greeting | String | N | 当該言語の文言 |
| IsTranslated | Yes-No | Y | 翻訳済みフラグ |
erDiagram
C_Greeting ||--o{ C_Greeting_Trl : "translations"
C_Greeting ||--o{ C_BPartner : "greeting for partner"
C_Greeting ||--o{ AD_User : "greeting for contact"
ビジネスロジック
Section titled “ビジネスロジック”C_Greeting には M クラスが存在しないため、コア側にビジネスロジックはありません。X_C_Greeting が提供するのは POJO 相当のアクセサ(getGreeting() / isFirstNameOnly() / isDefault() など)と getKeyNamePair() のみで、保存時の検証・派生値の計算は行われません。
このため次の点はアプリケーション側の責務になります。
IsDefaultの一意性担保(重複チェックなし)Greeting文言中の{0}の有無チェック{0}の置換処理そのもの(呼び出し側の印刷・メール生成処理が担当)
拡張ポイント(カスタマイズ箇所)
Section titled “拡張ポイント(カスタマイズ箇所)”Callout
Section titled “Callout”C_Greeting / C_Greeting_Trl のカラムには Callout の登録がありません(AD_Column.Callout はすべて未設定)。入力補助が必要なら独自 Callout を追加します。
OSGi Model Validator(推奨)
Section titled “OSGi Model Validator(推奨)”M クラスが無い分、検証は Model Validator で追加するのが定石です。
public class CustomGreetingValidator implements ModelValidator { @Override public int modelChange(PO po, int type) throws Exception { if ("C_Greeting".equals(po.get_TableName()) && (type == TYPE_BEFORE_NEW || type == TYPE_BEFORE_CHANGE)) { String greeting = (String) po.get_Value("Greeting"); // 例: 文言に {0} が含まれているかを強制 if (greeting != null && !greeting.contains("{0}")) { throw new AdempiereException("敬称の文言には {0} を含めてください"); } // 例: デフォルトの一意性チェックもここで実装できます } return null; }}C_Greeting は M クラスが無いため、po instanceof MGreeting ではなく po.get_TableName() で判定します。
独自 M クラスの登録
Section titled “独自 M クラスの登録”より本格的に振る舞いを持たせる場合は、X_C_Greeting を継承したクラスを作成し、OSGi の IModelFactory サービスとして登録することで、コアの MTable.getPO() から自作クラスを返せます。
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”敬称は M クラスを持たない軽量マスタのため、日本語の姓名表記や敬称の使い分けルールを反映するには Model Validator や独自 Model Factory による拡張が有効です。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。