4.0
Enterprise Edition機能の追加パッケージ

1. セットアップ

  1. 有償版のSDKに同梱されているEnterprise Edition機能の追加パッケージ iplass-ee-sample-app-package.zip を取得します。

  2. 既に作成したテナントで、Admin ConsoleのPackaging機能を利用して追加パッケージをインポートします。

2. Aggregation

Enterprise Editionの集計機能です。
サンプルアプリでは、 SimpleCrosstabCube の3つの集計タイプを利用しています。管理画面で集計グラフを表示します。
Aggregationの作成方法と各設定項目の詳細については、開発者ガイドの集計の管理の章を参照してください。

sample ec aggregation filetree
  1. CrossTab集計タイプ

  2. Simple集計タイプ

  3. Cube集計タイプ

2.1. クロス集計

定型集計、Entityのデータをクロス集計、表示します。

Admin Consoleでの設定

sample ec aggregation crosstab settings
  1. 集計タイプに Crosstab を選択します。

  2. 集計対象となるエンティティに お問合せエンティティ を選択します。

  3. 集計結果の表を表示します。

  4. 集計結果のグラフを表示します。

  5. 集計表に各列の合計値を表示します。

  6. 集計表に各行の合計値を表示します。

※ 各設定項目の説明は、開発者ガイドのクロス集計を確認してください。

メニューへの登録

オペレーター用メニュー、またはマネージャー用メニューを開きます。

sample ec aggregation crosstab topmenu settings
  1. アクションパラメーターに defName=samples/ec01/inquiryAggregate を設定します。

※ 作成されたAggregationをメニューに登録する方法については、開発者ガイドの表示方法の章を確認してください。

画面表示

マネージャーまたはオペレーターに属するユーザーで「ECその他」メニューを開き、「問合わせ状況」アイテムをクリックします。

sample ec aggregation crosstab

2.2. 単純集計

定型集計、Entityのデータを集計、一覧表示します。
商品別売上集計(直近1カ月)の単純集計を例として説明していきます。

Admin Consoleでの設定

  • 集計表設定

    sample ec aggregation simple settings
    1. 集計タイプに Simple を選択します。

    2. 対象となるエンティティに 注文明細エンティティ を選択します。

    3. フィルター項目を指定します。

    4. 集計表設定で、集計用EQL文を指定します。

※ 各設定項目の詳細については、開発者ガイドの単純集計の章を確認してください。

  • グラフ設定

    sample ec aggregation simple settings graph 1
    sample ec aggregation simple settings graph 2
    1. グラフタイプに 棒グラフ を選択します。

    2. 横軸列に 商品 を選択します。

    3. 軸1のグラフ対象アイテムに 売上金額(合計) を選択します。

    4. 軸2のグラフタイプに 線グラフ を選択します。

    5. 軸2のグラフ対象アイテムに 注文数(合計) を選択します。

画面表示

マネージャーに属するユーザーは、管理画面で集計情報を確認することができます。
「集計画面を表示する」ボタンをクリックすると、集計結果の表とフィルター条件が表示されます。

sample ec aggregation simple

2.3. キューブ集計

※ キューブ集計を利用するためには、あらかじめキューブ定義を作成しておく必要があります。Cubeを参照してください。
ここでは請求用Cubeを利用している売上傾向(棒グラフ)のキューブ集計を例として説明していきます。

Admin Consoleでの設定

sample ec aggregation cube settings
  1. 集計タイプに Cube を選択します。

  2. Cube定義名に作成済みの 請求用Cube を選択します。

  3. 集計結果の表を表示します。

  4. フィルター項目を指定します。

  5. 集計表示タイプに 棒グラフ を選択します。

※ 各設定項目の詳細については、開発者ガイドのキューブ集計の章を確認してください。

画面表示

マネージャーに属するユーザーで「EC注文管理」メニューを開き、「売上集計」アイテムをクリックします。
集計グラフ「売上傾向(棒グラフ)」を参照することができます。

sample ec aggregation cube

「集計画面を表示する」ボタンをクリックすると、集計設定画面が表示されます。

sample ec aggregation cube result 1
sample ec aggregation cube result 2
  1. アイテムからドラッグ&ドロップで集計設定が可能です。

  2. フィルター条件を画面上で設定可能です。

  3. クリックすると、絞り込みを行うためのダイアログが表示されます。

  4. クリックすると、保存リストダイアログが表示され、検索結果を保存リストに保存することができます。

  5. 各設定項目の詳細については、開発者ガイドのキューブ集計の章を確認してください。

3. Cube

3.1. Cubeの作成例

このサンプルアプリでは、請求用Cubeを作成しています。
以下では、請求用Cubeを例として説明していきます。

sample ec cube filetree

注文明細用Cube

sample ec cube settings
  1. キューブタイプに Entity を選択します。

  2. Cube表示時に最新データを自動的にロードします。

  3. ハッシュ値を利用してパーティショニングします。

  4. パーティショニングアイテム名に 名前(注文明細番号) を選択します。

  5. パーティション総数を指定します。

  6. 集計対象エンティティに 請求エンティティ を選択します。

  7. 集計に使用するデータをメモリにロードします。

※ 各設定項目の詳細については、開発者ガイドのCubeの管理の章を参照してください。

4. DashBoard

サンプルアプリでは、作成したAggregationを複数選択し、単一画面にダッシュボード形式で表示しています。

4.1. AdminConsoleでの設定

sample ec dashboard filetree
sample ec dashboard settings
  1. 中心となる集計定義

  2. カスタムのダッシュボードアイテム

  3. このサンプルで作成している集計

※ 各設定項目の詳細については、開発者ガイド ダッシュボードの管理の章を参照してください。

4.2. 画面表示

マネージャーに属するユーザーで「EC注文管理」メニューを開き、「売上集計」アイテムをクリックすると、ダッシュボードを参照できます。

sample ec dashboard filter
  1. 中心となる集計定義

  2. カスタムのダッシュボードアイテム

sample ec dashboard orderItemAggregatedByDay
各集計グラフ
sample ec dashboard orderItemAggregate
sample ec dashboard settlementCubeSalesTrendByBarGraph
sample ec dashboard settlementCubeSalesTrend

5. Entity Listing

サンプルアプリでは、マネージャーに属するユーザーが注文明細のエンティティデータに対して以下の操作を行うことができます。

  1. 抽出条件を指定する

  2. 作成した条件や検索結果を保存・共有する

※ Entity Listingの作成方法については、開発者ガイドのEntityListingの章を参照してください。

5.1. Admin Consoleでの設定

sample ec entitylisting filetree
  1. 注文明細カスタム検索用EntityListing

sample ec entitylisting settings
  1. Default Settingでは、Custom Settingを設定していないエンティティに対してデフォルトで適用される設定を行います。「Save」ボタンをクリックして設定を保存します。

  2. Custom Settingでは、エンティティ個別に設定を行うことができます。「OK」ボタンをクリックして変更を保存します。

※ 各設定項目の詳細は、開発者ガイドのEntityListingの管理の章を参照してください。

メニューへの登録

マネージャー用のメニュー定義を開きます。

sample ec entitylisting topmenu settings
  1. アクションパラメーターに defName=samples/ec01/OrderItemListing&entityName=samples.ec01.order.OrderItem を指定します。

※ 作成されたEntityListingをメニューに登録する方法については、開発者ガイドの表示方法を参照してください。

5.2. 画面表示

マネージャーに属するユーザーで「EC注文管理」メニューを開き、「注文明細カスタム検索」アイテムを開くと、注文明細カスタム検索を操作できます。

sample ec entitylisting
  1. 「リスト保存」をクリックすると、検索結果を保存リストに保存することができます。

6. 保存リスト

サンプルアプリでは、いくつかの注文明細カスタム検索の検索結果を保存リストとして保存しています。
マネージャーに属するユーザーで「保存リスト」メニューを開くと、保存フォルダと保存リスト一覧を参照することができます。

sample ec savedlist folder list
  1. 保存フォルダ

  2. 保存リスト

また、管理画面のメニューのウィジェットエリアからも参照することができます。

sample ec savedlist widget

例えば、「2018年10月:小平太郎の注文履歴」という保存リストをクリックすると、以下の保存情報が表示されます。

sample ec savedlist sample 1
sample ec savedlist sample 2

※ 検索結果の保存と表示方法については、開発者ガイドのEntityListingの章を参照してください。

7. Workflow

サンプルアプリでは、「お問合せ処理」と「注文処理」ワークフローが設定されています。

sample ec workflow filetree
  1. お問合せ処理ワークフロー

  2. 注文処理ワークフロー

実際にワークフローを実行する場合は、「オペレーター」グループと「マネージャー」グループそれぞれに属するユーザーの登録が必要です。
ユーザー登録方法については、ユーザーについてを参照してください。

7.1. お問合せ処理

ワークフローの作成

sample ec workflow inquiry processing
  1. 対象エンティティデータが格納されている変数名を指定します。

    sample ec workflow inquiry processing variable
  2. お問合せ対応処理

    オペレーターに属するユーザーにタスクを割り当てるように設定しています。

    sample ec workflow inquiry processing inquiry deal
  3. 対応完了ユーザータスク

    当該お問合せエンティティのお問合せステータスを対応完了(「3」)に設定します。

    sample ec workflow inquiry processing updateEntityTask2
  4. お問合せ終了承認
    マネージャーに属するユーザーにタスクを割り当てるように設定しています。
    当該タスクに対して「承認」または「差し戻し」を選択することができます。実行結果によって、ワークフローの遷移先が変わります。

    sample ec workflow inquiry processing inquiry approve
  5. 差し戻しユーザータスク

    当該お問合せエンティティのお問合せステータスを処理中(「2」)に戻します。

  6. 対応終了ユーザータスク

    当該お問合せエンティティのお問合せステータスを終了(「4」)に設定します。

※ ワークフローの設定詳細については、開発者ガイドのWorkflowの章を参照してください。

ワークフローの起動

お問合せエンティティに「afterInsert」イベントリスナーを登録しています。

sample ec workflow inquiry processing entity eventlistener
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 お問合せ処理ワークフローを起動します。

画面表示

  • 事前設定

    サンプルアプリでは、ワークフローの詳細表示の項目は事前に設定されています。
    ※ 各設定項目の詳細については、開発者ガイドの利用方法の章を参照してください。

    sample ec workflow inquiry processing presettings
  • サンプルアプリの画面でお問合せを登録します。

    sample ec workflow inquiry processing inquiry register
  • オペレーターに属するユーザーで管理画面にログインすると、ユーザータスク一覧に割り当てられたタスクを確認することができます。
    鉛筆マークの「編集」ボタンをクリックすると、編集画面が開きます。

    sample ec workflow inquiry processing usertasklist operator

    コメントを入れて、「完了」ボタンを押します。
    ワークフロー履歴一覧に対応処理完了の操作履歴が確認できます。

    sample ec workflow inquiry processing usertasklist operator inquiry deal
  • マネージャーに属するユーザーで管理画面にログインすると、ユーザータスク一覧に割り当てられたタスクを確認することができます。
    鉛筆マークの「編集」ボタンをクリックすると、編集画面が開きます。

    sample ec workflow inquiry processing usertasklist manager

    コメントを入れて、「承認」または「差し戻し」処理が実行できます。今回は「承認」処理を実行します。
    ワークフロー履歴一覧に対応終了承認の操作履歴が確認できます。

    sample ec workflow inquiry processing usertasklist manager inquiry approve

7.2. 注文処理ワークフロー

ワークフローの作成

sample ec workflow order processing
  1. settlementの変数名を指定します。

  2. mailの変数名を指定します。

    sample ec workflow order processing variable
  3. 注文完了メールタスク

    Scriptの方式でmailキーに格納されている文字列をTOメールアドレスに設定します。

    ※ 設定方法については、開発者ガイドのMailTaskの章を参照してください。

    sample ec workflow order processing mailtask1
  4. 配送処理を定義します
    割当ルールの種類を TOQUEUE に設定します。
    エンティティが settlement という変数に格納されているので、taskTargetEntityを settlement に指定します。
    当該タスクに対して「配送完了」または「配送不可」を選択することができます。実行結果によって、ワークフローの遷移先が変わります。

    ※ 割当ルールの設定項目の説明については、開発者ガイド 割当ルールの設定の章を参照してください。

    sample ec workflow order processing userTask1
  5. ステータス更新
    請求エンティティの請求状況更新用のコマンドクラスを呼び出します。

    sample ec workflow order processing commandTask2
    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 請求エンティティの納品予定日を今日の日付に設定します。
  6. ステータス更新処理(キャンセル) 請求エンティティの請求状況をキャンセル(「3」)に設定します。

  7. 配送完了メールタスク
    配送完了メールを送信します。

ワークフローの起動

請求エンティティに「afterInsert」イベントリスナーを登録しています。

sample ec workflow order processing entity eventlistener
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>
  • サンプルアプリの画面で商品を注文します。

    sample ec workflow order processing order register
  • 注文完了メールタスクの実行確認

    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 に設定されているため、「タスクリスト」画面の「全てのタスク」タブに配送処理タスクが登録されていることが確認できます。

    「割当」ボタンをクリックすると、自分にこのタスクを割り当てます。

    sample ec workflow order processing userTasklist

  • 配送処理

    MYタスクのタスクに表示されている鉛筆マークの「編集」ボタンをクリックすると、編集画面が開きます。
    コメントを入力して、「配送完了」または「配送不可」処理が実行できます。今回は「配送完了」処理を実行します。
    「配送完了」ボタンをクリックすると、ワークフロー履歴一覧に配送完了の操作履歴が確認できます。

    sample ec workflow order processing userTasklist delivery ok

  • 配送完了メールタスクの実行確認

    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 ログから送信されたメールの中身を確認することができます。