CookBook

ViewCreatorでカレントの組織コードや会社コードを取得する動的パラメータの作り方

投稿日:

このCookBookでは、カレントの組織コードや会社コードを取得するViewCreatorの動的パラメータの作成方法についてご紹介します。

動的パラメータについての詳細は下記のドキュメントを参照してください。
ViewCreator 管理者操作ガイド - 動的パラメータ

完成イメージ

ViewCreatorのクエリ編集画面やデータ参照編集画面で、下記のデータを取得する動的パラメータが利用できるようになります。

  1. カレントの会社コード
  2. カレントの組織セットコード
  3. カレントの組織コード

「サイトマップ > ViewCreator > クエリ一覧」を選択し、ツールバーから「新規作成」をクリックしてください。
ここでは、例としてimm_departmentテーブルを利用したクエリを作成します。

imm_departmentテーブルとカラムを追加して、「抽出条件」タブを選択してください。
im_cookbook_118986_001

抽出条件の条件値として、以下の3つが選択できます。

  1. <%CURRENT_COMPANY_CD%> (カレントの会社コード)
  2. <%CURRENT_DEPT_SET_CD%> (カレントの組織セットコード)
  3. <%CURRENT_DEPT_CD%> (カレントの組織コード)

im_cookbook_118986_002

「プレビュー」をクリックすると、カレントの組織のデータで絞り込まれた一覧が表示されることを確認できます。
im_cookbook_118986_003

カレントの組織を「サンプル部門01」に変更してみます。
im_cookbook_118986_004

もう一度「プレビュー」をクリックすると、抽出条件の条件値として利用されている値が「サンプル部門01」の情報に切り替わったことが確認できます。
im_cookbook_118986_005

完成サンプル

以下の完成サンプルをダウンロードしてご活用ください。

e builder プロジェクト : im_cookbook_118986.zip
imm ファイル : im_cookbook_118986-8.0.0.imm

注意
im_cookbook_118986-8.0.0.immには、viewcreator-config.xmlは含まれません。
レシピの手順を参考にして、追加設定してください。

レシピ

  1. jp.co.intra_mart.foundation.viewcreator.SystemParameterインタフェースを実装したクラスを作成する。
  2. WEB-INF/conf/viewcreator-config.xml に上記のクラスを登録する。
  3. アプリケーションサーバを再起動する。
1. jp.co.intra_mart.foundation.viewcreator.SystemParameterインタフェースを実装したクラスを作成する。

会社コードや組織コードを文字列で返却するgetメソッドを実装します。

abstract class AbstractSystemParameterCurrentDepartment implements SystemParameter {

private static final Logger LOGGER = Logger.getLogger(SystemParameterCurrentDepartmentCd.class);

protected Department getCurrentDepartment() {
// ユーザコンテキストからカレント組織を取得
final Department currentDepartment = Contexts.get(UserContext.class).getCurrentDepartment();
if (currentDepartment == null) {
// カレント組織が未設定の場合
LOGGER.warn("current organizational information is not valid.");
}
return currentDepartment;
}
}

/**
* カレントの会社コードを取得する動的パラメータです。
*
* @author INTRAMART
*
*/
public class SystemParameterCurrentCompanyCd extends AbstractSystemParameterCurrentDepartment {

@Override
public String get(final String syskey) {
// カレント組織を取得
final Department currentDepartment = getCurrentDepartment();
// 会社コードを返却
return currentDepartment == null ? "" : currentDepartment.getCompanyCd();
}
}

/**
* カレントの組織セットコードを取得する動的パラメータです。
*
* @author INTRAMART
*
*/
public class SystemParameterCurrentDepartmentSetCd extends AbstractSystemParameterCurrentDepartment {

@Override
public String get(final String syskey) {
// カレント組織を取得
final Department currentDepartment = getCurrentDepartment();
// 組織セットコードを返却
return currentDepartment == null ? "" : currentDepartment.getDepartmentSetCd();
}
}

/**
* カレントの組織コードを取得する動的パラメータです。
*
* @author INTRAMART
*
*/
public class SystemParameterCurrentDepartmentCd extends AbstractSystemParameterCurrentDepartment {

@Override
public String get(final String syskey) {
// カレント組織を取得
final Department currentDepartment = getCurrentDepartment();
// 組織コードを返却
return currentDepartment == null ? "" : currentDepartment.getDepartmentCd();
}
}

 

2. WEB-INF/conf/viewcreator-config.xml に上記のクラスを登録する。

param-nameタグはパラメータ名として利用されます。
class-nameタグには作成したクラスを指定してください。

<param>
<param-name>CURRENT_COMPANY_CD</param-name>
<class-name>jp.co.intra_mart.cookbook_118986.SystemParameterCurrentCompanyCd</class-name>
</param>
<param>
<param-name>CURRENT_DEPT_SET_CD</param-name>
<class-name>jp.co.intra_mart.cookbook_118986.SystemParameterCurrentDepartmentSetCd</class-name>
</param>
<param>
<param-name>CURRENT_DEPT_CD</param-name>
<class-name>jp.co.intra_mart.cookbook_118986.SystemParameterCurrentDepartmentCd</class-name>
</param>

3. アプリケーションサーバを再起動する。

サーバ再起動後、追加した動的パラメータの利用が可能になります。

-CookBook
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

imuiListTableでセルに配置したアイコンから別画面に遷移する方法

このCookBookでは、imuiListTableでセルに配置したアイコンから別画面に遷移する方法について紹介しています。 imuiListTableについての詳細はAPIドキュメントを参照してくだ …

IM-FormaDesignerの複数行アイテムの入力可能な行数を制限する方法

このCookBookでは、IM-FormaDesignerの複数行アイテムの入力可能な行数を制限する方法について紹介しています。 完成サンプル スクリプト適用前 指定した行数以上に改行できます。 スク …

no image

IM-FormaDesignerで作成したフォーム内で、外部連携を利用して最も簡単に値を渡す方法(単一アイテム編)

このCookBookでは、IM-FormaDesignerで作成したフォーム画面の中で、アイテムからアイテムへ値を渡す方法について紹介します。 今回は例として、文字列と数値の値を同時にアイテムからアイ …

no image

ワークフローの一覧を使い分けるには(改訂版)

このCookbookでは、以前に公開した「IM-Workflowの一覧を業務別に使い分けるには」に関して、お問い合わせいただいた内容を追加してワークフローの一覧の検索条件を付与する方法をご紹介いたしま …

no image

テナント環境セットアップ時にテーブルが作成されるよう設定する

e Builderを利用して作成したアプリケーションにおいて、テナント環境セットアップ時に自動でテーブルが作成されるように設定する手順を紹介します。 今回は例として、CookBook:フォームに入力し …

RSSRSSRSSRSS