1. セットアップ
-
有償版のSDKに同梱されているEnterprise Edition機能の追加パッケージ
iplass-ee-sample-app-package.zip
を取得します。 -
既に作成したテナントで、Admin ConsoleのPackaging機能を利用して追加パッケージをインポートします。
2. Aggregation
Enterprise Editionの集計機能です。
サンプルアプリでは、 Simple
、 Crosstab
、Cube
の3つの集計タイプを利用しています。管理画面で集計グラフを表示します。
Aggregationの作成方法と各設定項目の詳細については、開発者ガイドの集計の管理の章を参照してください。
-
CrossTab集計タイプ
-
Simple集計タイプ
-
Cube集計タイプ
2.1. クロス集計
定型集計、Entityのデータをクロス集計、表示します。
Admin Consoleでの設定
-
集計タイプに
Crosstab
を選択します。 -
集計対象となるエンティティに
お問合せエンティティ
を選択します。 -
集計結果の表を表示します。
-
集計結果のグラフを表示します。
-
集計表に各列の合計値を表示します。
-
集計表に各行の合計値を表示します。
※ 各設定項目の説明は、開発者ガイドのクロス集計を確認してください。
オペレーター用メニュー、またはマネージャー用メニューを開きます。
-
アクションパラメーターに
defName=samples/ec01/inquiryAggregate
を設定します。
※ 作成されたAggregationをメニューに登録する方法については、開発者ガイドの表示方法の章を確認してください。
画面表示
マネージャーまたはオペレーターに属するユーザーで「ECその他」メニューを開き、「問合わせ状況」アイテムをクリックします。
2.2. 単純集計
定型集計、Entityのデータを集計、一覧表示します。
商品別売上集計(直近1カ月)の単純集計を例として説明していきます。
Admin Consoleでの設定
-
集計表設定
-
集計タイプに
Simple
を選択します。 -
対象となるエンティティに
注文明細エンティティ
を選択します。 -
フィルター項目を指定します。
-
集計表設定で、集計用EQL文を指定します。
-
※ 各設定項目の詳細については、開発者ガイドの単純集計の章を確認してください。
-
グラフ設定
-
グラフタイプに
棒グラフ
を選択します。 -
横軸列に
商品
を選択します。 -
軸1のグラフ対象アイテムに
売上金額(合計)
を選択します。 -
軸2のグラフタイプに
線グラフ
を選択します。 -
軸2のグラフ対象アイテムに
注文数(合計)
を選択します。
-
画面表示
マネージャーに属するユーザーは、管理画面で集計情報を確認することができます。
「集計画面を表示する」ボタンをクリックすると、集計結果の表とフィルター条件が表示されます。
2.3. キューブ集計
※ キューブ集計を利用するためには、あらかじめキューブ定義を作成しておく必要があります。Cubeを参照してください。
ここでは請求用Cubeを利用している売上傾向(棒グラフ)のキューブ集計を例として説明していきます。
Admin Consoleでの設定
-
集計タイプに
Cube
を選択します。 -
Cube定義名に作成済みの
請求用Cube
を選択します。 -
集計結果の表を表示します。
-
フィルター項目を指定します。
-
集計表示タイプに
棒グラフ
を選択します。
※ 各設定項目の詳細については、開発者ガイドのキューブ集計の章を確認してください。
画面表示
マネージャーに属するユーザーで「EC注文管理」メニューを開き、「売上集計」アイテムをクリックします。
集計グラフ「売上傾向(棒グラフ)」を参照することができます。
「集計画面を表示する」ボタンをクリックすると、集計設定画面が表示されます。
-
アイテムからドラッグ&ドロップで集計設定が可能です。
-
フィルター条件を画面上で設定可能です。
-
クリックすると、絞り込みを行うためのダイアログが表示されます。
-
クリックすると、保存リストダイアログが表示され、検索結果を保存リストに保存することができます。
-
各設定項目の詳細については、開発者ガイドのキューブ集計の章を確認してください。
3. Cube
3.1. Cubeの作成例
このサンプルアプリでは、請求用Cubeを作成しています。
以下では、請求用Cubeを例として説明していきます。
注文明細用Cube
-
キューブタイプに
Entity
を選択します。 -
Cube表示時に最新データを自動的にロードします。
-
ハッシュ値を利用してパーティショニングします。
-
パーティショニングアイテム名に
名前(注文明細番号)
を選択します。 -
パーティション総数を指定します。
-
集計対象エンティティに
請求エンティティ
を選択します。 -
集計に使用するデータをメモリにロードします。
※ 各設定項目の詳細については、開発者ガイドのCubeの管理の章を参照してください。
4. DashBoard
サンプルアプリでは、作成したAggregationを複数選択し、単一画面にダッシュボード形式で表示しています。
4.1. AdminConsoleでの設定
-
中心となる集計定義
-
カスタムのダッシュボードアイテム
-
このサンプルで作成している集計
※ 各設定項目の詳細については、開発者ガイド ダッシュボードの管理の章を参照してください。
4.2. 画面表示
マネージャーに属するユーザーで「EC注文管理」メニューを開き、「売上集計」アイテムをクリックすると、ダッシュボードを参照できます。
-
中心となる集計定義
-
カスタムのダッシュボードアイテム
5. Entity Listing
サンプルアプリでは、マネージャーに属するユーザーが注文明細のエンティティデータに対して以下の操作を行うことができます。
-
抽出条件を指定する
-
作成した条件や検索結果を保存・共有する
※ Entity Listingの作成方法については、開発者ガイドのEntityListingの章を参照してください。
5.1. Admin Consoleでの設定
-
注文明細カスタム検索用EntityListing
-
Default Settingでは、Custom Settingを設定していないエンティティに対してデフォルトで適用される設定を行います。「Save」ボタンをクリックして設定を保存します。
-
Custom Settingでは、エンティティ個別に設定を行うことができます。「OK」ボタンをクリックして変更を保存します。
※ 各設定項目の詳細は、開発者ガイドのEntityListingの管理の章を参照してください。
マネージャー用のメニュー定義を開きます。
-
アクションパラメーターに
defName=samples/ec01/OrderItemListing&entityName=samples.ec01.order.OrderItem
を指定します。
※ 作成されたEntityListingをメニューに登録する方法については、開発者ガイドの表示方法を参照してください。
5.2. 画面表示
マネージャーに属するユーザーで「EC注文管理」メニューを開き、「注文明細カスタム検索」アイテムを開くと、注文明細カスタム検索を操作できます。
-
「リスト保存」をクリックすると、検索結果を保存リストに保存することができます。
6. 保存リスト
サンプルアプリでは、いくつかの注文明細カスタム検索の検索結果を保存リストとして保存しています。
マネージャーに属するユーザーで「保存リスト」メニューを開くと、保存フォルダと保存リスト一覧を参照することができます。
-
保存フォルダ
-
保存リスト
また、管理画面のメニューのウィジェットエリアからも参照することができます。
例えば、「2018年10月:小平太郎の注文履歴」という保存リストをクリックすると、以下の保存情報が表示されます。
※ 検索結果の保存と表示方法については、開発者ガイドのEntityListingの章を参照してください。
7. Workflow
サンプルアプリでは、「お問合せ処理」と「注文処理」ワークフローが設定されています。
-
お問合せ処理ワークフロー
-
注文処理ワークフロー
実際にワークフローを実行する場合は、「オペレーター」グループと「マネージャー」グループそれぞれに属するユーザーの登録が必要です。 ユーザー登録方法については、ユーザーについてを参照してください。 |
7.1. お問合せ処理
ワークフローの作成
-
対象エンティティデータが格納されている変数名を指定します。
-
お問合せ対応処理
オペレーターに属するユーザーにタスクを割り当てるように設定しています。
-
対応完了ユーザータスク
当該お問合せエンティティのお問合せステータスを対応完了(「3」)に設定します。
-
お問合せ終了承認
マネージャーに属するユーザーにタスクを割り当てるように設定しています。
当該タスクに対して「承認」または「差し戻し」を選択することができます。実行結果によって、ワークフローの遷移先が変わります。 -
差し戻しユーザータスク
当該お問合せエンティティのお問合せステータスを処理中(「2」)に戻します。
-
対応終了ユーザータスク
当該お問合せエンティティのお問合せステータスを終了(「4」)に設定します。
※ ワークフローの設定詳細については、開発者ガイドのWorkflowの章を参照してください。
ワークフローの起動
お問合せエンティティに「afterInsert」イベントリスナーを登録しています。
import java.util.LinkedHashMap;
import java.util.Map;
import org.iplass.mtp.ManagerLocator;
import org.iplass.mtp.workflow.WorkflowManager;
def wm = ManagerLocator.manager(WorkflowManager.class);
Map<String, Object> parameters = new LinkedHashMap<String, Object>();
parameters.put("inquiry", entity); (1)
wm.startProcess("samples/ec01/inquiry_processing", parameters); (2)
1 | 登録されたお問合せエンティティデータを inquiry というキーで格納します。 |
2 | お問合せ処理ワークフローを起動します。 |
画面表示
-
事前設定
サンプルアプリでは、ワークフローの詳細表示の項目は事前に設定されています。
※ 各設定項目の詳細については、開発者ガイドの利用方法の章を参照してください。 -
サンプルアプリの画面でお問合せを登録します。
-
オペレーターに属するユーザーで管理画面にログインすると、ユーザータスク一覧に割り当てられたタスクを確認することができます。
鉛筆マークの「編集」ボタンをクリックすると、編集画面が開きます。コメントを入れて、「完了」ボタンを押します。
ワークフロー履歴一覧に対応処理完了の操作履歴が確認できます。 -
マネージャーに属するユーザーで管理画面にログインすると、ユーザータスク一覧に割り当てられたタスクを確認することができます。
鉛筆マークの「編集」ボタンをクリックすると、編集画面が開きます。コメントを入れて、「承認」または「差し戻し」処理が実行できます。今回は「承認」処理を実行します。
ワークフロー履歴一覧に対応終了承認の操作履歴が確認できます。
7.2. 注文処理ワークフロー
ワークフローの作成
-
settlementの変数名を指定します。
-
mailの変数名を指定します。
-
注文完了メールタスク
Scriptの方式でmailキーに格納されている文字列をTOメールアドレスに設定します。
※ 設定方法については、開発者ガイドのMailTaskの章を参照してください。
-
配送処理を定義します
割当ルールの種類をTOQUEUE
に設定します。
エンティティがsettlement
という変数に格納されているので、taskTargetEntityをsettlement
に指定します。
当該タスクに対して「配送完了」または「配送不可」を選択することができます。実行結果によって、ワークフローの遷移先が変わります。※ 割当ルールの設定項目の説明については、開発者ガイド 割当ルールの設定の章を参照してください。
-
ステータス更新
請求エンティティの請求状況更新用のコマンドクラスを呼び出します。import org.iplass.mtp.entity.UpdateOption; import org.iplass.mtp.entity.SelectValue; import org.iplass.mtp.util.DateUtil; def settlement = request.getAttribute("settlement"); def status = settlement.settlementStatus.value; def oid = settlement.oid.value; // 請求状況 settlement.setValue("settlementStatus", new SelectValue("2")); (1) // 納品予定日 settlement.setValue("deliverGoodsDate", DateUtil.getCurrentTimestamp()); (2) UpdateOption option = new UpdateOption(false); option.setUpdateProperties("settlementStatus", "deliverGoodsDate"); em.update(settlement, option);
1 請求エンティティの請求状況を納品済み(「2」)に設定します。 2 請求エンティティの納品予定日を今日の日付に設定します。 -
ステータス更新処理(キャンセル) 請求エンティティの請求状況をキャンセル(「3」)に設定します。
-
配送完了メールタスク
配送完了メールを送信します。
ワークフローの起動
請求エンティティに「afterInsert」イベントリスナーを登録しています。
import java.util.LinkedHashMap;
import java.util.Map;
import org.iplass.mtp.ManagerLocator;
import org.iplass.mtp.workflow.WorkflowManager;
def wm = ManagerLocator.manager(WorkflowManager.class);
Map<String, Object> parameters = new LinkedHashMap<String, Object>();
parameters.put("settlement", entity); (1)
parameters.put("mail", entity.order.mail); (2)
wm.startProcess("samples/ec01/order_processing", parameters); (3)
1 | 登録された請求エンティティデータを settlement というキーに格納します。 |
2 | 登録された請求エンティティに紐づく注文エンティティの顧客メールアドレスを mail というキーに格納します。 |
3 | 注文処理ワークフローを起動します。 |
画面表示
-
事前設定
-
このサンプルではワークフロー履歴が見えるように、まずお問合せ処理ワークフローでの画面表示の事前設定を実施してください。
-
ログ出力で送信メールを確認できるように
src/main/resouces/mtp-service-config.xml
以下の定義を追加してください。<service> <interface>org.iplass.mtp.impl.mail.MailService</interface> <!-- ■ for develop only (additional="true) ■ --> <!-- 送信メールをデバッグ出力する場合、以下を有効にしてください。 --> <property name="listener" class="org.iplass.mtp.mail.listeners.LoggingSendMailListener" additional="true"/> </service>
-
-
サンプルアプリの画面で商品を注文します。
-
注文完了メールタスクの実行確認
16:47:42.438 [http-nio-8080-exec-8] DEBUG 41 Anonymous samples/ec01/shipping/OrderCommand o.i.m.i.transaction.LocalTransaction - commit Transaction:org.iplass.mtp.impl.transaction.LocalTransaction@841561c 16:47:42.453 [http-nio-8080-exec-8] DEBUG 41 Anonymous samples/ec01/shipping/OrderCommand o.i.m.i.r.c.LocalTransactionConnectionWrapper - back to ResourceHolder:1503931896, URL=jdbc:mysql://[host]:[port]/[schema] 16:47:42.453 [http-nio-8080-exec-8] DEBUG 41 Anonymous samples/ec01/shipping/OrderCommand o.i.m.i.transaction.LocalTransaction - close Transaction:org.iplass.mtp.impl.transaction.LocalTransaction@841561c 16:47:42.548 [http-nio-8080-exec-8] DEBUG 41 Anonymous samples/ec01/shipping/OrderCommand o.i.m.m.l.LoggingSendMailListener - From:testFrom@test.jp ReplyTo:testFrom@test.jp To:(1)sakaki@test.co.jp; Cc:(0) Bcc:(0) Subject:testHou06 ご注文の確認 FileName: PlainMessage:榊太郎さん、ご注文いただきありがとうございます。 【ご注文内容】 注文番号:po-201806-00041 Eメールアドレス:sakaki@test.co.jp ご住所:東京都千代田区x-x-x xxx室 注文合計: ¥ testHou06 に商品をご注文いただいた場合、本メールは、当サイトがご注文を受領したことを確認するものにすぎません。 testHou06 が販売する商品については、商品が発送されたことをお知らせするメールを当サイトからお送りした時点で、当該商品のご購入についての契約が成立します。 testHou06 以外の売主が出品する商品については、商品が発送されたことをお知らせするメールを当サイトからお送りする時点で、当該商品のご購入についての契約が成立します。 このEメールアドレスは、配信専用です。このメッセージに返信しないようお願いいたします。 今後ともtestHou06 をよろしくお願いいたします。 HtmlMessage: (1) 16:47:42.548 [http-nio-8080-exec-8] DEBUG 41 Anonymous samples/ec01/shipping/OrderCommand o.i.mtp.impl.mail.MailServiceImpl - send mail flag of tenat configration is off, so don't send mail.
1 ログから送信されたメールの中身を確認することができます。 -
タスクの割当
オペレーターまたはマネージャーに属するユーザーで管理画面にログインすると、タスクの割当ルールが
ToQueue
に設定されているため、「タスクリスト」画面の「全てのタスク」タブに配送処理タスクが登録されていることが確認できます。「割当」ボタンをクリックすると、自分にこのタスクを割り当てます。
-
配送処理
MYタスクのタスクに表示されている鉛筆マークの「編集」ボタンをクリックすると、編集画面が開きます。
コメントを入力して、「配送完了」または「配送不可」処理が実行できます。今回は「配送完了」処理を実行します。
「配送完了」ボタンをクリックすると、ワークフロー履歴一覧に配送完了の操作履歴が確認できます。 -
配送完了メールタスクの実行確認
17:02:13.567 [http-nio-8080-exec-9] DEBUG 41 76158 CompositeCommand o.i.m.i.transaction.LocalTransaction - commit Transaction:org.iplass.mtp.impl.transaction.LocalTransaction@20414901 17:02:13.577 [http-nio-8080-exec-9] DEBUG 41 76158 CompositeCommand o.i.m.i.r.c.LocalTransactionConnectionWrapper - back to ResourceHolder:1402918786, URL=jdbc:mysql://[host]:[port]/[schema] 17:02:13.577 [http-nio-8080-exec-9] DEBUG 41 76158 CompositeCommand o.i.m.i.transaction.LocalTransaction - close Transaction:org.iplass.mtp.impl.transaction.LocalTransaction@20414901 17:02:13.680 [http-nio-8080-exec-9] DEBUG 41 76158 CompositeCommand o.i.m.m.l.LoggingSendMailListener - From:testFrom@test.jp ReplyTo:testFrom@test.jp To:(1)sakaki@test.co.jp; Cc:(0) Bcc:(0) Subject:testHou06 ご注文の発送 (po-201806-00041) FileName: PlainMessage:testHou06 をご利用いただき、ありがとうございます。 お客様からご注文いただいた商品を本日発送いたしました。 【ご注文内容】 注文番号:po-201806-00041 Eメールアドレス:sakaki@test.co.jp ご住所: 注文合計: ¥ testHou06 のまたのご利用をお待ちしております。 このEメールアドレスは配信専用です。このメッセージに返信しないようお願いいたします。 HtmlMessage: (1) 17:02:13.680 [http-nio-8080-exec-9] DEBUG 41 76158 CompositeCommand o.i.mtp.impl.mail.MailServiceImpl - send mail flag of tenat configration is off, so don't send mail.
1 ログから送信されたメールの中身を確認することができます。