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による一覧検索の例(スクリプト開発モデル)】