intra-mart Accel Platform IM-共通マスタ 仕様書 第7版 2019-04-01

4.2. マネージャ

IM-共通マスタのデータを変更または取得するとき、マネージャと呼ばれるAPI群を使用します。
IM-共通マスタのどのデータを扱うかによって使用するマネージャが変わります。
【表:マネージャ一覧】にその一覧を示します。
APIの詳細は「APIリスト(Javadoc)」を参照してください。
取り扱う情報 スクリプト開発モデル API J2EE開発モデル API
ユーザ IMMUserManager jp.co.intra_mart.foundation.master.user.UserManager
会社グループ IMMCompanyGroupManager jp.co.intra_mart.foundation.master.company_group.CompanyGroupManager
会社組織 IMMCompanyManager jp.co.intra_mart.foundation.master.company.CompanyManager
パブリックグループ IMMPublicGroupManager jp.co.intra_mart.foundation.master.public_group.PublicGroupManager
プライベートグループ IMMPrivateGroupManager jp.co.intra_mart.foundation.master.private_group.PrivateGroupManager
品目 IMMItemManager jp.co.intra_mart.foundation.master.item.ItemManager
品目カテゴリ IMMItemCategoryManager jp.co.intra_mart.foundation.master.item_category.ItemCategoryManager
取引先 IMMCustomerManager jp.co.intra_mart.foundation.master.customer.CustomerManager
法人 IMMCorporationManager jp.co.intra_mart.foundation.master.corporation.CorporationManager
法人グループ IMMCorporationGroupManager jp.co.intra_mart.foundation.master.corporation_group.CorporationGroupManager
通貨 IMMCurrencyManager jp.co.intra_mart.foundation.master.currency.CurrencyManager

【表:マネージャ一覧】

また、各マネージャが使用するエンティティおよびエンティティを構成するテーブルを【表:マネージャが使用するエンティティとテーブルの一覧】に示します。
マネージャ エンティティ テーブル
UserManager ユーザ imm_user
ユーザ分類 imm_user_ctg
ユーザ分類項目 imm_user_ctg_itm
ユーザ分類所属 imm_user_ctg_ath
CompanyGroupManager 会社グループ imm_company_grp
会社グループセット imm_company_grp_set
会社グループ内包 imm_company_grp_inc_ath
会社グループ所属 imm_company_grp_ath
CompanyManager 会社 imm_company
組織 imm_department
会社組織セット imm_department_set
会社組織内包 imm_department_inc_ath
役職 imm_company_post
組織所属役職 imm_department_post_ath
組織所属 imm_department_ath
組織分類 imm_department_ctg
組織分類項目 imm_department_ctg_itm
組織分類所属 imm_department_ctg_ath
PublicGroupManager パブリックグループセット imm_public_grp_set
パブリックグループ imm_public_grp
パブリックグループ内包 imm_public_grp_inc_ath
パブリックグループ所属 imm_public_grp_ath
役割 imm_public_grp_role
パブリックグループ所属役割 imm_public_grp_role_ath
パブリックグループ分類 imm_public_grp_ctg
パブリックグループ分類項目 imm_public_grp_ctg_itm
パブリックグループ分類所属 imm_public_grp_ctg_ath
PrivateGroupManager プライベートグループ imm_private_grp
プライベートグループ所属 imm_private_grp_ath
ItemManager 品目 imm_item
ItemCategoryManager 品目カテゴリ imm_item_category
品目カテゴリセット imm_item_category_set
品目カテゴリ内包 imm_item_category_inc_ath
品目カテゴリ所属 imm_item_category_ath
CustomerManager 取引先 imm_customer
CorporationManager 法人 imm_corporation
法人所属 imm_corporation_ath
CorporationGroupManager 法人グループセット imm_corporation_grp_set
法人グループ imm_corporation_grp
法人グループ内包 mm_corporation_grp_inc_ath
法人グループ所属 imm_corporation_grp_ath
CurrencyManager 通貨 imm_currency
通貨精度 imm_currency_precision
通貨換算コード imm_currency_conversion
通貨レート imm_currency_rate
AppCommonManager 期間開始管理 imm_start_date
期間終了管理

【表:マネージャが使用するエンティティとテーブルの一覧】

4.2.1. マネージャの取得

IM-共通マスタではさまざまなマネージャを用意していますが、マネージャの取得方法は同様です。
以下にJ2EE開発モデルおよびスクリプト開発モデルにおけるマネージャの取得方法について説明します。

4.2.1.1. J2EE開発モデルの場合

マネージャはコンストラクタを使用してインスタンスを生成することが出来ます。
この際、検索などの際にデフォルトとして使用するロケールや基準日などを引数に指定してインスタンスを生成することが出来ます。
【リスト:CompanyManagerの取得例(JavaEE開発モデル)】に会社に関連するマネージャ(CompanyManager)を取得する例を示します。
/* マネージャの取得 */
CompanyManager manager = new CompanyManager();

【リスト:CompanyManagerの取得例(JavaEE開発モデル)】

4.2.1.2. スクリプト開発モデルの場合

スクリプト開発モデルではマネージャは定義済みのオブジェクトとして定義されています。
マネージャを取得する場合、それぞれのオブジェクトのコンストラクタを呼び出すことでインスタンスを取得できます。
これらのコンストラクタは、検索などの際にデフォルトとして使用するロケールや基準日などを引数に指定してインスタンスを生成することが出来ます。
【リスト:CompanyManagerの取得例(スクリプト開発モデル)】に会社に関連するマネージャ(CompanyManager)を取得する例を示します。
    // ・・・
/* マネージャの取得 */
var manager = new IMMCompanyManager();
    // ・・・

【リスト:CompanyManagerの取得例(スクリプト開発モデル)】

4.2.2. マネージャの使用

マネージャの各メソッドを呼び出すことでIM-共通マスタ対してデータの登録や削除などが行えます。
これらのメソッドはトランザクションが有効となっている状態で呼び出す必要があります。
以下にJava EE開発モデルおよびスクリプト開発モデルにおけるマネージャの使用方法について説明します。

4.2.2.1. J2EE開発モデルの場合

Java EE開発モデルのマネージャのメソッド(get~ を除きます)はユーザトランザクション内で実行されることが前提となっています。
【リスト:CompanyManagerの使用例(Java EE開発モデル)】に会社に関連するマネージャ(CompanyManager)を使用して会社情報を新規に登録するときの例を示します。
/* マネージャの取得 */
CompanyManager manager = new CompanyManager();

/* 会社組織情報の作成 */
Department department = new Department();
department.setDepartmentCd("dept_1");
department.setDepartmentSetCd("dept_set_1");
department.setCompanyCd("comp_1");

// ・・・中略・・・

/* マネージャを使用して登録 */
manager.setDepartment(department);

【リスト:CompanyManagerの使用例(Java EE開発モデル)】

4.2.2.2. スクリプト開発モデルの場合

スクリプト開発モデルのマネージャのメソッド(get~ を除きます)はユーザトランザクション内で実行されることが前提となっています。
【リスト:CompanyManagerの使用例(スクリプト開発モデル)】に会社に関連するマネージャ(CompanyManager)を使用して会社情報を新規に登録するときの例を示します。
    // ・・・
/* トランザクションの開始
if (Transaction.beginTransaction().isSuceess()) {
        // ・・・
    /* マネージャの取得 */
    var manager = new IMMCompanyManager();
    var department = new Object();
    department.termCd = null;
        // ・・・
    /* 組織情報の生成 */
        // ・・・
    manager.setDepartment(department); // マネージャを使用して登録

    /* トランザクションの終了 */
    if (!Transaction.commit().isSuccess()) {
        /* コミットに失敗したときの処理 */
    }
}
    // ・・・

【リスト:CompanyManagerの使用例(スクリプト開発モデル)】

4.2.3. マネージャによる検索

いくつかのマネージャにはデータを取得するためのメソッド(詳細については「APIリスト(Javadoc)」を参照して下さい)が提供されています。
このメソッドは大きく分けて以下の2つに分類されます。
  • 一覧を取得するメソッド

    検索条件に一致するデータを配列として取得します。
    取得されたデータには、基準日を含む期間のログインユーザのデフォルト言語(または指定された言語)に一致する情報が設定されます。
  • 詳細を取得するメソッド

    検索条件に一致するデータを1件だけ取得します。
    期間化されているエンティティの場合、取得されたデータには、基準日を含む期間のすべての国際化情報が設定されます。
次項ではJavaEE開発モデルとスクリプト開発モデルそれぞれで、会社組織に関連するマネージャ(CompanyManager)を使用して組織情報を検索・取得する場合の例を示します。

4.2.3.1. J2EE開発モデルの場合

4.2.3.1.1. 詳細情報を取得する場合

Java EE開発モデルのマネージャの詳細取得メソッドを使用すると、結果はDTO(Data Transfer Object)として返却されます。
【リスト:CompanyManagerによる詳細検索の例(Java EE開発モデル)】に会社に関連するマネージャ(CompanyManager)を使用して組織の詳細情報を取得するときの例を示します。
/* マネージャの取得 */
CompanyManager manager = new CompanyManager();

/* キーの作成 */
DepartmentBizKey bizkey = new DepartmentBizKey();
bizkey.setCompanyCd("comp_1");
bizkey.setDepartmentCd("dept_1");
bizkey.setDepartmentSetCd("dept_set_1");

/* マネージャを使用して詳細情報を取得 */
Department department = manager.getDepartment(bizkey, new Date());
    // ・・・

【リスト:CompanyManagerによる詳細検索の例(Java EE開発モデル)】

4.2.3.1.2. 一覧情報を取得する場合

Java EE開発モデルのマネージャの一覧取得メソッドを使用すると、結果はDTOの配列として返却されます。
【リスト:CompanyManagerによる一覧検索の例(Java EE開発モデル)】に会社に関連するマネージャ(CompanyManager)を使用して組織に所属するユーザの一覧を取得するときの例を示します。
/* マネージャの取得 */
CompanyManager manager = new CompanyManager();

/* 検索条件の作成 */
AppCmnSearchCondition condition = new AppCmnSearchCondition();
condition.setLogicalOperetor(LogicalOperator.OR);
condition.setSortDirection(SortDirection.ASC);
condition.addCondition("department_cd", "dept_1", Operator.EQ);

/* マネージャを使用して検索 */
DepartmentListNode[] node = manager.listDepartment(condition, new Date(), Locale.JAPAN);
    // ・・・

【リスト:CompanyManagerによる一覧検索の例(Java EE開発モデル)】

4.2.3.2. スクリプト開発モデルの場合

4.2.3.2.1. 詳細情報を取得する場合

スクリプト開発モデルのマネージャの詳細取得メソッドを使用すると、結果は処理結果オブジェクトに格納されて返却されます。
【リスト:CompanyManagerによる詳細検索の例(スクリプト開発モデル)】に会社に関連するマネージャ(CompanyManager)を使用して組織の詳細情報を取得するときの例を示します。
    // ・・・
/* マネージャの取得 */
var companyManager = new IMMCompanyManager();

/* ビジネスキーオブジェクトの作成 */
var key = new Object();
key.departmentCd = "dept_1";
key.departmentSetCd =  "dept_set_1";
key.companyCd = "comp_1";

var res = companyManager.getDepartment(key, new Date(), false);
    // ・・・

【リスト:CompanyManagerによる詳細検索の例(スクリプト開発モデル)】

4.2.3.2.2. 一覧情報を取得する場合

スクリプト開発モデルのマネージャの一覧取得メソッドを使用すると、結果は処理結果オブジェクトに配列として格納されて返却されます。
【リスト:CompanyManagerによる一覧検索の例(スクリプト開発モデル)】に会社に関連するマネージャ(CompanyManager)を使用して組織に所属するユーザの一覧を取得するときの例を示します。
    // ・・・
/* 検索条件の作成 */
var condition =  new AppCmnSearchCondition();
condition.setLogicalOperetor(AppCmnSearchCondition.OR);
condition.addLike("name","サンプル会社",AppCmnSearchCondition.PARTIAL);
condition.addOrder("sort_key");

var result;

/* マネージャの取得 */
var manager = new IMMCompanyManager();

/* 会社組織の検索処理 */
result = manager.listDepartment(condition, new Date(), "ja", 0, 20,true);

if (!result.error) {
    /* 正しく結果が取得できた */
    for ( i = 0; i < result.data.length; i++) {
        result.data[i].code = result.data[i].departmentCd;
        // ・・・
    }
}else{
    /* エラー処理 */
    // ・・・
}
    // ・・・

【リスト:CompanyManagerによる一覧検索の例(スクリプト開発モデル)】