intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  

Similar documents
intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

intra-mart Accel Platform — IM-共通マスタ スマートフォン拡張プログラミングガイド   初版  

intra-mart Accel Platform — IM-BloomMaker プログラミングガイド   初版  

intra-mart Accel Platform

intra-mart Accel Platform — 外部ソフトウェア接続モジュール 仕様書   第3版  

intra-mart Accel Collaboration — アンケート 管理者操作ガイド   第2版  

intra-mart Accel Platform

intra-mart Accel Platform — アクセスコンテキスト 拡張プログラミングガイド   第2版  

intra-mart Accel Collaboration — ファイルライブラリ ユーザ操作ガイド   第3版  

intra-mart Accel Collaboration — インフォメーション ユーザ操作ガイド   第11版  

intra-mart Accel Platform — 招待機能プログラミングガイド   初版  

intra-mart Accel Collaboration — ファイルライブラリ ユーザ操作ガイド   第5版  

intra-mart Accel Platform — Slack連携モジュール 利用ガイド   初版  

intra-mart Accel Collaboration — ファイルライブラリ 管理者操作ガイド   第6版  

Brekeke PBX - Version 2.1 ARSプラグイン開発ガイド

intra-mart Accel Platform — PCとスマートフォンの機能差異   初版  

intra-mart Accel Platform — PCとスマートフォンの機能差異   初版  

intra-mart Accel Platform — IM-FileExchange 管理者操作ガイド   第3版  

intra-mart Accel Platform — PCとスマートフォンの機能差異   第5版  

intra-mart Accel Platform — 外部ソフトウェア接続モジュール 仕様書   第2版  

intra-mart WebPlatform/AppFramework

intra-mart im-JavaEE Framework

intra-mart Accel Collaboration — Collaboration共通 ユーザ操作ガイド   第7版  

Java演習(4) -- 変数と型 --

intra-mart Accel Platform — Office 365 連携プログラミングガイド   初版  

SpringSecurity

intra-mart im-JavaEE Framework

intra-mart マスカット連携ガイド

新・明解Java入門

intra-mart im-J2EE Framework

目的 泡立ち法を例に Comparableインターフェイスの実装 抽象クラスの利用 型パラメタの利用 比較 入替 の回数を計測

— OpenRulesモジュール 2017 Summer リリースノート   初版  

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String

intra-mart Accel Platform

intra-mart WebPlatform/AppFramework

— OpenRulesモジュール 2017 Summer リリースノート   第2版  

— intra-mart Accel Platform セットアップガイド (WebSphere編)   第7版  

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

JavaプログラミングⅠ

IM-SecureBlocker

IM-FormaDesigner for Accel Platform — IM-FormaDesigner 仕様書   第3版  

intra-mart Accel Documents

OpenRulesモジュール

intra-mart Accel Platform — OData for SAP HANA セットアップガイド   初版  

intra-mart WebPlatform/AppFramework

intra-mart Accel Platform — OAuth認証モジュール 仕様書   初版  

PowerPoint Presentation

(Microsoft PowerPoint - \223\306\217KJAVA\221\346\202R\224\ ppt)

やさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

JavaプログラミングⅠ

JAVA とテンプレート

intra-mart Accel Platform — IM-LogicDesigner拡張プログラミングガイド   初版  

intra-mart Accel Platform

OpenRulesモジュール

intra-mart WebPlatform/AppFramework

intra-mart Accel Platform — ViewCreator ユーザ操作ガイド   第6版  

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

IM-BIS for Accel Platform — Office365 for IM-BIS 連携ガイド   第2版  

文字列操作と正規表現

そして 取得した OutputStream インスタンスを使い 文字コードは UTF-8 として PrintWriter インスタンスを生成して あとは PrintWriter.append() で書き込みたい文字 列を渡して close() で保存する というだけです ファイルの読込み方法 それで

AppsWF ワークフロー設定ガイド Ver.1.1 株式会社オプロ

— intra-mart Accel Platform IM-LogicDesigner拡張プログラミングガイド   初版   None


intra-mart Accel Platform — TableMaintenance ユーザ操作ガイド   第7版   None

intra-mart Accel Platform — TableMaintenance ユーザ操作ガイド   第8版  

TestDesign for Web

intra-mart Accel Platform

問題1 以下に示すプログラムは、次の処理をするプログラムである

intra-mart WebPlatform/AppFramework

アルゴリズムとデータ構造1

前ページからの続き // テキストボックス02 id 属性で取得 // id 属性で取得する場合は一意に決まるので 何番目かの指定は不要 var textbox02elem = document.getelementbyid("text_box02_id"); if ("001" == statee

intra-mart ワークフローデザイナ

intra-mart Accel Platform — Kibana ポートレットセットアップガイド   初版  

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

intra-mart Accel Platform — Office 365 連携プログラミングガイド   第2版   None

Android Layout SDK プログラミング マニュアル

GEC-Java

ALG ppt

K227 Java 2

ALG ppt

Javaセキュアコーディングセミナー東京 第3回 入出力(File, Stream)と例外時の動作 演習解説

intra-mart Accel Platform — intra-mart Sphinxドキュメント ビルド手順書   第2版  

untitled

問題1 以下に示すプログラムは、次の処理をするプログラムである

プログラミング基礎I(再)

オブジェクト指向プログラミング・同演習 5月21日演習課題

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

IM-PDFCoordinator for Accel Platform — プログラミングガイド   第5版  

グラフの探索 JAVA での実装

intra-mart 販売管理パッケージ

Quick Sort 計算機アルゴリズム特論 :2017 年度 只木進一

JUnit 概要 2015/4/16 版今泉俊幸 2015 bbreak Systems 1

HCI プログラミング 8 回目ボタン チェックボックス ラジオボタン 今日の講義で学ぶ内容 ボタンとアクションイベント ボタンのカスタマイズ チェックボックスとラジオボタン ボタンとアクションイベント 1 ボタンを配置してみましょう ボタンは ラベルと同じようにフォントやその色 画像の貼り付けなど

ValueHolder... 9 Customer.java Oracle TopLink 10g(10.1.3) È Volume3 2

FW ファイルアップロード ダウンロード機能利用ガイド Version 年 9 月 21 日富士通株式会社 i All Right Reserved, Copyright FUJITSU LIMITED

WebOTXマニュアル

Transcription:

Copyright 2013 NTT DATA INTRAMART CORPORATION 1 Top

目次 intra-mart Accel Platform イベントナビゲータ開発ガイド初版 2013-07-01 改訂情報概要イベントフローの作成 更新 削除をハンドリングするイベントフローを非表示にする回答を非表示にするリンクを非表示にするタイトル コメントを動的に変更するリンク情報を動的に変更するナビゲート結果のリンクにステータスを表示する 2

改訂情報 intra-mart Accel Platform イベントナビゲータ開発ガイド初版 2013-07-01 変更年月日 変更内容 2013-07-01 初版 3

概要 intra-mart Accel Platform イベントナビゲータ開発ガイド初版 2013-07-01 イベントナビゲータでは カスタマイズによって動作の振る舞いなどを変更できる拡張ポイントが用意されています 主な拡張ポイントは以下の通りです イベントフローの作成 更新 削除をハンドリングするリスナー回答項目の非表示ナビゲート結果のリンクの非表示イベントフロー 質問 回答 ナビゲート結果およびリンクのタイトル コメントの動的な変更リンク情報の動的な変更ナビゲート結果リンクへのステータス表示 4

イベントフローの作成 更新 削除をハンドリングする イベントフローの作成 更新 削除通知を受けるリスナーを定義することができます 1. リスナークラスを作成します jp.co.intra_mart.foundation.navigator.eventflowlistener を実装したクラスを作成します package sample; import jp.co.intra_mart.foundation.navigator.eventflow; import jp.co.intra_mart.foundation.navigator.eventflowlistener; import jp.co.intra_mart.foundation.navigator.eventnavigatorexception; public class SampleEventFlowListener implements EventFlowListener { @Override public void insert(eventflow model) throws EventNavigatorException { // イベントフローが作成された時に実行する処理を記述します @Override public void update(eventflow model) throws EventNavigatorException { // イベントフローが更新された時に実行する処理を記述します @Override public void delete(string eventflowid) throws EventNavigatorException { // イベントフローが削除された時に実行する処理を記述します 2. WEB-INF/plugin フォルダに任意のディレクトリを作成します 3. 作成したディレクトリに plugin.xml を作成します 4. 作成した plugin.xml を以下のように定義します 5

<?xml version="1.0" encoding="utf-8"?> <plugin> <extension point="jp.co.intra_mart.foundation.navigator.listener"> <listeners name="sample Listener" id="sample.listener" version="8.0" rank="100"> <event-flow-listener class="sample.sampleeventflowlistener"/> </listeners> </extension> </plugin> コラム リスナーは複数設定することが可能です 6

イベントフローを非表示にする イベントフローの表示 非表示を制御することができます 1. バリデータクラスを作成します jp.co.intra_mart.foundation.navigator.eventflowvalidator を実装したクラスを作成しま す package sample; import jp.co.intra_mart.foundation.navigator.eventflowinfo; import jp.co.intra_mart.foundation.navigator.eventflowvalidator; import jp.co.intra_mart.foundation.navigator.eventnavigatorexception; public class SampleEventFlowValidator implements EventFlowValidator { { @Override public boolean validate(eventflowinfo eventflowinfo) throws EventNavigatorException // 表示する場合は true 表示しない場合は false を返却します return true; 2. WEB-INF/plugin フォルダに任意のディレクトリを作成します 3. 作成したディレクトリに plugin.xml を作成します 4. 作成した plugin.xml を以下のように定義します <?xml version="1.0" encoding="utf-8"?> <plugin> <extension point="jp.co.intra_mart.foundation.navigator.validator"> <validators name="sample EventFlow Validator" id="sample.event.flow.validator" version="8.0" rank="100"> <event-flow-validator class="sample.sampleeventflowvalidator"/> </validators> </extension> </plugin> 7

コラムバリデータは複数設定することが可能です 複数設定した場合 設定されたバリデータのいずれかがfalseを返した場合に非表示扱いとなります 8

回答を非表示にする 回答の表示 非表示を制御することができます 1. バリデータクラスを作成します jp.co.intra_mart.foundation.navigator.selectitemvalidator を実装したクラスを作成しま す package sample; import jp.co.intra_mart.foundation.navigator.eventnavigatorexception; import jp.co.intra_mart.foundation.navigator.selectiteminfo; import jp.co.intra_mart.foundation.navigator.selectitemvalidator; public class SampleSelectItemValidator implements SelectItemValidator { @Override public boolean validate(selectiteminfo selectiteminfo) throws EventNavigatorException { // 表示する場合は true 表示しない場合は false を返却します return true; 2. WEB-INF/plugin フォルダに任意のディレクトリを作成します 3. 作成したディレクトリに plugin.xml を作成します 4. 作成した plugin.xml を以下のように定義します <?xml version="1.0" encoding="utf-8"?> <plugin> <extension point="jp.co.intra_mart.foundation.navigator.validator"> <validators name="sample SelectItem Validator" id="sample.select.item.validator" version="8.0" rank="100"> <select-item-validator class="sample.sampleselectitemvalidator"/> </validators> </extension> </plugin> 9

コラムバリデータは複数設定することが可能です 複数設定した場合 設定されたバリデータのいずれかがfalseを返した場合に非表示扱いとなります 10

リンクを非表示にする ナビゲート結果のリンクの表示 非表示を制御することができます 1. バリデータクラスを作成します jp.co.intra_mart.foundation.navigator.linkpagevalidator を実装したクラスを作成します package sample; import jp.co.intra_mart.foundation.navigator.eventnavigatorexception; import jp.co.intra_mart.foundation.navigator.linkpageinfo; import jp.co.intra_mart.foundation.navigator.linkpagevalidator; public class SampleLinkPageValidator implements LinkPageValidator { @Override public boolean validate(linkpageinfo linkpageinfo) throws EventNavigatorException { // 表示する場合は true 表示しない場合は false を返却します return true; 2. WEB-INF/plugin フォルダに任意のディレクトリを作成します 3. 作成したディレクトリに plugin.xml を作成します 4. 作成した plugin.xml を以下のように定義します <?xml version="1.0" encoding="utf-8"?> <plugin> <extension point="jp.co.intra_mart.foundation.navigator.validator"> <validators name="sample LinkPage Validator" id="sample.link.page.validator" version="8.0" rank="100"> <link-page-validator class="sample.samplelinkpagevalidator"/> </validators> </extension> </plugin> 11

コラムバリデータは複数設定することが可能です 複数設定した場合 設定されたバリデータのいずれかがfalseを返した場合に非表示扱いとなります 12

タイトル コメントを動的に変更する タイトル コメントを動的に変更することができます 以下の例は サンプルとして提供されている内容を記載しています イベントフロー 質問 回答 ナビゲート結果およびリンクのタイトルおよびコメントに ${usercd という文字列が存在した場合 ログインしているユーザコードに変換します 1. コンバータクラスを作成します jp.co.intra_mart.foundation.navigator.titleinfoconverter を実装したクラスを作成します 引数で渡された TitleInfo の内容を変更して 返却します 13

package jp.co.intra_mart.system.navigator; import jp.co.intra_mart.foundation.context.contexts; import jp.co.intra_mart.foundation.context.model.accountcontext; import jp.co.intra_mart.foundation.navigator.eventnavigatorexception; import jp.co.intra_mart.foundation.navigator.titleinfo; import jp.co.intra_mart.foundation.navigator.titleinfoconverter; /** * ユーザコードに置換するサンプルタイトルコンバータです <br> * <br> * ${usercd をログイン中のユーザコードに置き換えます * @author INTRAMART * @version 8.0.0 * @since 8.0.0 */ public class SampleTitleInfoConverter implements TitleInfoConverter{ private static final String TARGET = "\\$\\{usercd\\"; /** * タイトル情報を変換します <br> * <br> * ${usercd をログイン中のユーザコードに置き換えます * @param titleinfo タイトル情報 * @return 変換後のタイトル情報 * @exception EventNavigatorException エラーが発生した場合にスローされます */ @Override public TitleInfo convert(final TitleInfo titleinfo) throws EventNavigatorException{ final AccountContext ctx = Contexts.get(AccountContext.class); titleinfo.settitle(titleinfo.gettitle().replaceall(target, ctx.getusercd())); titleinfo.setcomment(titleinfo.getcomment().replaceall(target, ctx.getusercd())); return titleinfo; 2. WEB-INF/plugin フォルダに任意のディレクトリを作成します 3. 作成したディレクトリに plugin.xml を作成します 4. 作成した plugin.xml を以下のように定義します 14

<?xml version="1.0" encoding="utf-8"?> <plugin> <extension point="jp.co.intra_mart.foundation.navigator.converter"> <converters name="sample Title Converter" id="jp.co.intra_mart.foundation.navigator.converter.sample.title" version="8.0" rank="100"> <event-flow-converter class="jp.co.intra_mart.system.navigator.sampletitleinfoconverter"/> <event-item-converter class="jp.co.intra_mart.system.navigator.sampletitleinfoconverter"/> <select-item-converter class="jp.co.intra_mart.system.navigator.sampletitleinfoconverter"/> <event-result-converter class="jp.co.intra_mart.system.navigator.sampletitleinfoconverter"/> <result-page-converter class="jp.co.intra_mart.system.navigator.sampletitleinfoconverter"/> </converters> </extension> </plugin> コラム それぞれのタグの意味は以下の通りです タグ event-flow-converter event-item-converter select-item-converter event-result-converter result-page-converter 説明 イベントフローのタイトルとコメント 質問のタイトルとコメント 回答のタイトルとコメント ナビゲート結果のタイトルとコメント ナビゲート結果のリンクのタイトルとコ メント コラム コンバータは複数設定することが可能です PluginManager による設定順序ルールに基づき すべてのコンバータを処理します 15

リンク情報を動的に変更する リンクの情報 (URL やパラメータ ) を動的に変更することができます 1. バリデータクラスを作成します jp.co.intra_mart.foundation.navigator.linkpageconverter を実装したクラスを作成しま す 引数で渡された LinkPageInfo の内容を変更して 返却します ただし 変更できるのは URL とパラメータのみです タイトルとコメントは変更しても反映されません package sample; import jp.co.intra_mart.foundation.context.contexts; import jp.co.intra_mart.foundation.context.model.accountcontext; import jp.co.intra_mart.foundation.navigator.eventnavigatorexception; import jp.co.intra_mart.foundation.navigator.linkpageconverter; import jp.co.intra_mart.foundation.navigator.linkpageinfo; public class SampleLinkPageConverter implements LinkPageConverter { private static final String TARGET = "\\$\\{usercd\\"; @Override public LinkPageInfo convert(linkpageinfo model) throws EventNavigatorException { // パラメータの値に ${usercd が存在した場合に ログインしているユーザのユーザコード に変更します final AccountContext ctx = Contexts.get(AccountContext.class); String[] keys = model.getkeys(); for(string key : keys) { String value = model.getparamvalue(key); if(value!= null) { model.setparamvalue(key, value.replaceall(target, ctx.getusercd())); return model; 2. WEB-INF/plugin フォルダに任意のディレクトリを作成します 16

3. 作成したディレクトリに plugin.xml を作成します 4. 作成した plugin.xml を以下のように定義します <?xml version="1.0" encoding="utf-8"?> <extension point="jp.co.intra_mart.foundation.navigator.converter"> <converters name="sample LinkPage Converter" id="test_002" version="8.0" rank="200"> <link-page-converter class="sample.samplelinkpageconverter"/> </converters> </extension> コラム コンバータは複数設定することが可能です PluginManager による設定順序ルールに基づき すべてのコンバータを処理します 17

ナビゲート結果のリンクにステータスを表示する ナビゲート結果のリンクにステータスを表示することができます このプロバイダが 1つ以上設定されている場合 ナビゲート結果 画面のリンク一覧のカラムに 状 態 が表示されます 以下の例は イベントナビゲータ IM-Workflow アドオンにサンプルとして提供されている内容を記載しています IM-Workflow 連携されたリンクに対して ログインしているユーザが申請中である場合に 申請済のステータスを返却しています 1. プロバイダクラスを作成します jp.co.intra_mart.foundation.navigator.linkpagestatusprovider を実装したクラスを作成し ます ステータスの判定を行わない場合は null を返却します ステータスに設定する値は 多言語を意識してコーディングする必要があります package jp.co.intra_mart.foundation.navigator.workflow; import jp.co.intra_mart.foundation.navigator.eventnavigatorexception; import jp.co.intra_mart.foundation.navigator.linkpageinfo; import jp.co.intra_mart.foundation.navigator.linkpagestatus; import jp.co.intra_mart.foundation.navigator.linkpagestatusprovider; import jp.co.intra_mart.foundation.workflow.application.general.processedactvmatterlist; import jp.co.intra_mart.foundation.workflow.application.general.condition.listsearchcondition; import jp.co.intra_mart.foundation.workflow.application.general.condition.operatortype; import jp.co.intra_mart.foundation.workflow.application.model.column.actvmatterpullbacktype; import jp.co.intra_mart.foundation.workflow.application.model.condition.processedauthcondition; import jp.co.intra_mart.foundation.workflow.exception.workflowexception; import jp.co.intra_mart.system.navigator.workflow.message.navicaption; /** * ワークフロー申請状態チェック ( サンプル ) * @author INTRAMART * @version 8.0.0 * @since 8.0.0 */ public class SampleWorkflowLinkPageStatusProvider implements LinkPageStatusProvider { 18

/** * ワークフロー申請が申請済みかどうか判定します * @param usercd ユーザコード * @param linkpageinfo リンクページ情報 * @return 申請状態 * @throws EventNavigatorException エラーが発生した場合にスローされます */ public LinkPageStatus getstatus(final String usercd, final LinkPageInfo linkpageinfo) throws EventNavigatorException { if (WorkflowLinkPageConst.WORKFLOW_URL.equals(linkPageInfo.getUrl())) { // 申請されているか判定 try { // フロー ID を取得 final String flowid = linkpageinfo.getparamvalue(workflowlinkpageconst.param_name_flow_id); // 検索条件 final ProcessedAuthCondition condition = new ProcessedAuthCondition(); condition.setapplyflg("1"); final ListSearchCondition<ActvMatterPullBackType> condition2 = new ListSearchCondition<ActvMatterPullBackType>(); condition2.addcondition(actvmatterpullbacktype.flow_id, flowid, OperatorType.EQ); // 判定 final ProcessedActvMatterList processedactvmatterlist = new ProcessedActvMatterList(userCd); // 1 件以上あれば if (processedactvmatterlist.getprocessedlistcount(condition, condition2) > 0) { return new LinkPageStatus(NaviCaption.CAP_Z_NAVIGATOR_WORKFLOW_LINK_PAGE_STATUS_APPLIED. "green"); else { return new LinkPageStatus(NaviCaption.CAP_Z_NAVIGATOR_WORKFLOW_LINK_PAGE_STATUS_UNAPPLY "red"); catch (final WorkflowException e) { throw new EventNavigatorException(e); return null; 19

2. WEB-INF/plugin フォルダに任意のディレクトリを作成します 3. 作成したディレクトリに plugin.xml を作成します 4. 作成した plugin.xml を以下のように定義します <?xml version="1.0" encoding="utf-8"?> <plugin> <extension point="jp.co.intra_mart.foundation.navigator.provider"> <providers name="sample Provider" id="jp.co.intra_mart.foundation.navigator.provider.sample" version="8.0" rank="100"> <link-page-status-provider class="jp.co.intra_mart.foundation.navigator.workflow.sampleworkflowlinkpagestatusprov </providers> </extension> </plugin> コラムプロバイダは複数設定することが可能です PluginManagerによる設定順序ルールに基づき 上位のプロバイダから処理を行い最初にステータスが取得できたプロバイダの値を利用します 20