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. 一覧設定¶
<?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. レポート機能¶
レポート機能は、次の手順で動作確認を行います。
認可リソース作成・設定ReportBuilder定義で設定した認可リソース「service://kaiden/generic/report/role_list」を設定し、検証用のユーザに設定します。また、認可リソース「service://kaiden/generic/report」を検証用のユーザに設定します。 レポート機能表示「http://<HOST>:<PORT>/<CONTEXT_PATH>/kaiden/v2/generic/report?reportId=role_list」にアクセスし、レポート画面を表示します。 動作確認一覧の表示や検索が正しく行われることを確認します。コラム
メニューに設定する場合は、次の様に設定します。
メニューアイテムID任意の値を設定してください。 メニューアイテム名任意の値を設定してください。 URLkaiden/v2/generic/report 呼出し方法POST 引数値には、レポートIDを設定します。
キー 値 reportId role_list コラム
レポートのエクスポートジョブの実行方法は、『intra-mart Accel Kaiden! レポート操作ガイド』-「レポート関連ジョブ」-「レポートエクスポート」を参照してください。