intra-mart Accel Kaiden! ReportBuilder 設定ガイド 第10版 2024-04-01

4.3. 設定の流れ

本項では、ReportBuilderの設定の流れを説明します。

4.3.1. 要件

以下の要件があるとします。
  • ユーザがどのロールを保持しているかを確認するレポートを確認したい。
これに対応したレポートを、作成していきます。

4.3.1.1. テーブル

参照するテーブルは以下の通りです。
論理名 物理名
アカウント付与ロール情報 b_m_account_role_b
ロール表示名情報 b_m_role_i
ユーザ imm_user

4.3.2. 検索用SQL作成

はじめに、ReportBuilderで使用する検索用のSQLを作成します。

4.3.2.1. 検索用SQLファイル作成

本説明では、レポートIDを「role_list」とします。
ファイル名は必ず「%レポートID%.sql(role_list.sql)」とします。

配置先
%ModuleProject%/src/main/resources/META-INF/sql/jp/co/slcs/kaiden/v2/generic/report/role_list.sql

4.3.2.2. 一覧表示部分SQL

一覧に表示する項目を取得します。
次の例では、「アカウント付与ロール情報」に「ロール表示名情報」、「ユーザ」を結合しています。

内容
select
   account.user_cd
  , account.role_id
  , account.valid_start_date
  , account.valid_end_date
  , u.user_name
  , role.display_name
  from 
  b_m_account_role_b account
left join imm_user u
  on  u.user_cd = account.user_cd
  and u.locale_id = /*searchCriteriaLocale*/'ja'
  and u.start_date <= /*searchCriteriaDate*/'2000/01/01'
  and u.end_date > /*searchCriteriaDate*/'2000/01/01'
left join b_m_role_i role
  on  account.role_id = role.role_id
  and role.locale_id = /*searchCriteriaLocale*/'ja'

4.3.2.3. 検索部分SQL

検索条件を設定します。

内容
/* 略 */

where
  account.valid_start_date <= /*searchCriteriaDate*/'2000/01/01'
  and account.valid_end_date > /*searchCriteriaDate*/'2000/01/01'
  /*IF userCode != null*/
  and account.user_cd = /*userCode*/'user_cd'
  /*END*/
  /*IF roleId != null*/
  and account.role_id like /*roleId*/'%' ESCAPE '$'
  /*END*/
  /*IF displayName != null*/
  and role.display_name like /*displayName*/'%' ESCAPE '$'
  /*END*/

4.3.2.4. ソート部分SQL

ソート順を設定します。

内容
/* 略 */

/*IF orderBy != null*/
order by /*$orderBy*/ 
/*END*/

4.3.2.5. 検索用SQL

前項までの設定を行った検索用SQLは次の様になります。

内容
select
   account.user_cd
  , account.role_id
  , account.valid_start_date
  , account.valid_end_date
  , u.user_name
  , role.display_name
  from 
  b_m_account_role_b account
left join imm_user u
  on  u.user_cd = account.user_cd
  and u.locale_id = /*searchCriteriaLocale*/'ja'
  and u.start_date <= /*searchCriteriaDate*/'2000/01/01'
  and u.end_date > /*searchCriteriaDate*/'2000/01/01'
left join b_m_role_i role
  on  account.role_id = role.role_id
  and role.locale_id = /*searchCriteriaLocale*/'ja'
where
  account.valid_start_date <= /*searchCriteriaDate*/'2000/01/01'
  and account.valid_end_date > /*searchCriteriaDate*/'2000/01/01'
  /*IF userCode != null*/
  and account.user_cd = /*userCode*/'user_cd'
  /*END*/
  /*IF roleId != null*/
  and account.role_id like /*roleId*/'%' ESCAPE '$'
  /*END*/
  /*IF displayName != null*/
  and role.display_name like /*displayName*/'%' ESCAPE '$'
  /*END*/
/*IF orderBy != null*/
order by /*$orderBy*/ 
/*END*/

4.3.3. ReportBuilder定義作成

続いて、ReportBuilder定義を作成します。

4.3.3.1. ReportBuilder定義ファイル作成

定義用のファイルを作成します。
ファイル名は必ず「%レポートID%.xml(role_list.xml)」とします。

配置先
%ModuleProject%/src/main/storage/system/kaiden/generic/report/role_list.xml

内容
<?xml version="1.0" encoding="UTF-8"?>
<reportBuilderSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/reportBuilderSettings">
</reportBuilderSettings>

4.3.3.2. 基本設定

レポートIDを基に基本設定を行います。

内容
<?xml version="1.0" encoding="UTF-8"?>
<reportBuilderSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/reportBuilderSettings">

  <!-- 基本設定 -->
  <reportId>role_list</reportId>
  <surfaceKey>reportName</surfaceKey>
  <resources>service://kaiden/generic/report/role_list</resources>
</reportBuilderSettings>
  • レポートID(reportBuilderSettings/ reportId)
    「role_list」を設定します。
  • サーフィスキー(reportBuilderSettings/ surfaceKey):必須
    「report_name」を設定します。
    実際のサーフィスは、後述のサーフィス設定で行います。
  • 認可リソース(reportBuilderSettings/ resources):任意
    「service://kaiden/generic/report/role_list」を設定します。
    合わせて、認可設定を行います。

4.3.3.3. 遷移先設定

本説明では、遷移先設定は行いません。
ReportBuilderの遷移先を設定する場合は必要に応じて設定してください。

4.3.3.4. 拡張設定

本説明では、拡張設定は行いません。
ReportBuilderの標準機能を拡張(カスタマイズ)する場合は必要に応じて設定してください。

4.3.3.5. 検索設定

検索用SQL作成で作成したSQLファイルを基に検索設定を行います。
検索設定で設定した項目が、SQLファイルの検索条件として渡されます。
内容
<?xml version="1.0" encoding="UTF-8"?>
<reportBuilderSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/reportBuilderSettings">
  
  <!-- 基本設定 -->
  <!-- 略 -->
  
  <!-- 検索設定 -->
  <search>
    <group surfaceKey="searchCriteriaDate">
      <elem name="searchCriteriaDate" surfaceKey="searchCriteriaDate" type="TEXT_DATE" convert="TIMESTAMP">
        <validates>
          <validate args="{'type':'date'}"/>
        </validates>
      </elem>
    </group>
    <group surfaceKey="roleId">
      <elem name="roleId" surfaceKey="roleId" type="TEXT" condition="PART_KEYWORD"/>
    </group>
    <group surfaceKey="displayName">
      <elem name="displayName" surfaceKey="displayName" type="TEXT" condition="PART_KEYWORD"/>
    </group>
    <group surfaceKey="user">
      <elem name="userCode" surfaceKey="user" type="MASTER">
        <args>
          <arg key="masterId"      value="user"/>
          <arg key="extensionId"   value="late_list"/>
          <arg key="searchType"    value="select"/>
          <arg key="name"          value="userCode"/>
          <arg key="viewName"      value="userName"/>
          <arg key="criteria"      value="{'searchCriteriaDate':'searchCriteriaDate','searchType':'select','userCd':'userCode','includeBlank':'true'}"/>
          <arg key="resultChain"   value="{'userCode':'userCd','userName':'userName'}"/>
          <arg key="resultValue"   value="userName"/>
          <arg key="primaryTarget" value="userCode"/>
          <arg key="refreshTarget" value="searchCriteriaDate"/>
          <arg key="style"         value="width:200px;"/>
        </args>
        <validates>
          <validate args="{'type':'masterBuilderExists', 'args':{'masterId':'user', 'extensionId':'late_list', 'searchCriteriaDate':'searchCriteriaDate', 'userCd':'userCode', 'includeDisabled':'true'}}"/>
        </validates>
      </elem>
    </group>
  </search>
  
</reportBuilderSettings>

4.3.3.6. 一覧設定

検索用SQL作成で作成したSQLファイルを基に一覧設定を行います。

内容
<?xml version="1.0" encoding="UTF-8"?>
<reportBuilderSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/reportBuilderSettings">
  
  <!-- 基本設定 -->
  <!-- 略 -->
  
  <!-- 検索設定 -->
  <!-- 略 -->
  
  <!-- 一覧設定 -->
  <list>
    <item name="userCd"                       surfaceKey="userCd"                 sort="asc" />
    <item name="userName"                     surfaceKey="userName"               selected="true" />
    <item name="roleId"                       surfaceKey="roleId"                 sort="asc" />
    <item name="displayName"                  surfaceKey="displayName"            selected="true" />
    <item name="validStartDate"               surfaceKey="validStartDate"         selected="true" />
    <item name="validEndDate"                 surfaceKey="validEndDate"           selected="true" />
  </list>
</reportBuilderSettings>

4.3.3.7. エクスポート設定

本説明では、エクスポート設定は行いません。
ReportBuilderのエクスポート時、初期値を指定したい場合は必要に応じて設定してください。

4.3.3.8. エクスポートジョブ設定

本説明では、エクスポートジョブ設定は行いません。
ReportBuilderのエクスポートジョブ実行時、ジョブパラメータを指定したい場合は必要に応じて設定してください。

4.3.3.9. サーフィス設定

検索設定、一覧設定で使用する各項目のサーフィスを設定します。
次の例では、デフォルトのサーフィスのみ設定を行っていますが、
複数ロケール用の設定を行う場合は、「サーフィス設定」を参考に設定を行ってください。

内容
<?xml version="1.0" encoding="UTF-8"?>
<reportBuilderSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/reportBuilderSettings">
  
  <!-- 基本設定 -->
  <!-- 略 -->
  
  <!-- 検索設定 -->
  <!-- 略 -->
  
  <!-- 一覧設定 -->
  <!-- 略 -->
  
  <!-- サーフィス設定 -->
  <surfaces>
    <surface surfaceKey="reportName"                   surface="Role List"/>
    <surface surfaceKey="userName"                     surface="User Name"/>
    <surface surfaceKey="userCd"                       surface="User Code"/>
    <surface surfaceKey="user"                         surface="User">/>
    <surface surfaceKey="displayName"                  surface="Role Name"/>
    <surface surfaceKey="roleId"                       surface="Role ID"/>
    <surface surfaceKey="searchCriteriaDate"           surface="Search Reference Date"/>
    <surface surfaceKey="validStartDate"               surface="Start date"/>
    <surface surfaceKey="validEndDate"                 surface="End date"/>
  </surfaces>
</reportBuilderSettings>

4.3.3.10. ReportBuilder定義

前項までの設定を行ったReportBuilder定義は次の様になります。

内容
<?xml version="1.0" encoding="UTF-8"?>
<reportBuilderSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/reportBuilderSettings">

  <!-- 基本設定 -->
  <reportId>role_list</reportId>
  <surfaceKey>reportName</surfaceKey>
  <resources>service://kaiden/generic/report/role_list</resources>
  
  <!-- 検索設定 -->
  <search>
    <group surfaceKey="searchCriteriaDate">
      <elem name="searchCriteriaDate" surfaceKey="searchCriteriaDate" type="TEXT_DATE" convert="TIMESTAMP">
        <validates>
          <validate args="{'type':'date'}"/>
        </validates>
      </elem>
    </group>
    <group surfaceKey="roleId">
      <elem name="roleId" surfaceKey="roleId" type="TEXT" condition="PART_KEYWORD"/>
    </group>
    <group surfaceKey="displayName">
      <elem name="displayName" surfaceKey="displayName" type="TEXT" condition="PART_KEYWORD"/>
    </group>
    <group surfaceKey="user">
      <elem name="userCode" surfaceKey="user" type="MASTER">
        <args>
          <arg key="masterId"      value="user"/>
          <arg key="extensionId"   value="late_list"/>
          <arg key="searchType"    value="select"/>
          <arg key="name"          value="userCode"/>
          <arg key="viewName"      value="userName"/>
          <arg key="criteria"      value="{'searchCriteriaDate':'searchCriteriaDate','searchType':'select','userCd':'userCode','includeBlank':'true'}"/>
          <arg key="resultChain"   value="{'userCode':'userCd','userName':'userName'}"/>
          <arg key="resultValue"   value="userName"/>
          <arg key="primaryTarget" value="userCode"/>
          <arg key="refreshTarget" value="searchCriteriaDate"/>
          <arg key="style"         value="width:200px;"/>
        </args>
        <validates>
          <validate args="{'type':'masterBuilderExists', 'args':{'masterId':'user', 'extensionId':'late_list', 'searchCriteriaDate':'searchCriteriaDate', 'userCd':'userCode', 'includeDisabled':'true'}}"/>
        </validates>
      </elem>
    </group>
  </search>

  <!-- 一覧設定 -->
  <list>
    <item name="userCd"                       surfaceKey="userCd"                 sort="asc" />
    <item name="userName"                     surfaceKey="userName"               selected="true" />
    <item name="roleId"                       surfaceKey="roleId"                 sort="asc" />
    <item name="displayName"                  surfaceKey="displayName"            selected="true" />
    <item name="validStartDate"               surfaceKey="validStartDate"         selected="true" />
    <item name="validEndDate"                 surfaceKey="validEndDate"           selected="true" />
  </list>
  
  <!-- サーフィス設定 -->
  <surfaces>
    <surface surfaceKey="reportName"                   surface="Role List"/>
    <surface surfaceKey="userName"                     surface="User Name"/>
    <surface surfaceKey="userCd"                       surface="User Code"/>
    <surface surfaceKey="user"                         surface="User">/>
    <surface surfaceKey="displayName"                  surface="Role Name"/>
    <surface surfaceKey="roleId"                       surface="Role ID"/>
    <surface surfaceKey="searchCriteriaDate"           surface="Search Reference Date"/>
    <surface surfaceKey="validStartDate"               surface="Start date"/>
    <surface surfaceKey="validEndDate"                 surface="End date"/>
  </surfaces>
</reportBuilderSettings>

4.3.4. 動作確認

これまでに設定した内容を動作確認します。

配置先
src
└─main
    │
    ├─resources
    │  └─META-INF
    │     └─sql
    │         └─jp
    │             └─co
    │                 └─slcs
    │                     └─kaiden
    │                         └─v2
    │                             └─generic
    │                                 └─report
    │                                     └─role_list.sql
    │
    │
    └─storage
        └─system
            └─kaiden
                └─generic
                    └─report
                        └─role_list.xml

4.3.4.1. レポート機能

レポート機能は、次の手順で動作確認を行います。
  1. 認可リソース作成・設定
    ReportBuilder定義で設定した認可リソース「service://kaiden/generic/report/role_list」を設定し、検証用のユーザに設定します。
    また、認可リソース「service://kaiden/generic/report」を検証用のユーザに設定します。
    ../../../_images/report_001.png
    ../../../_images/report_002.png
  2. レポート機能表示
    「http://<HOST>:<PORT>/<CONTEXT_PATH>/kaiden/v2/generic/report?reportId=role_list」にアクセスし、レポート画面を表示します。
    ../../../_images/report_003.png
  3. 動作確認
    一覧の表示や検索が正しく行われることを確認します。
    ../../../_images/report_004.png

コラム

メニューに設定する場合は、次の様に設定します。
../../../_images/report_005.png
  • メニューアイテムID
    任意の値を設定してください。
  • メニューアイテム名
    任意の値を設定してください。
  • URL
    kaiden/v2/generic/report
  • 呼出し方法
    POST
  • 引数
    値には、レポートIDを設定します。
    キー
    reportId role_list

コラム

レポートのエクスポートジョブの実行方法は、『intra-mart Accel Kaiden! レポート操作ガイド』-「レポート関連ジョブ」-「レポートエクスポート」を参照してください。