8.2.2. 共通¶
8.2.2.2. エラーページをカスタマイズすると IFRAME リダイレクタの IFRAME 内にエラーページが表示されます。¶
http404.jsp などをカスタマイズすると、 IFRAME リダイレクタ内でエラーが発生した場合にグローバルナビなどが表示され続けます。上記の場合、下記の回避策があります。カスタマイズしたエラーページのDOM要素#im_error_url にエラーページ自体のURLを設定することで回避することが可能です。
8.2.2.3. アカウントコンテキストの入力用日付フォーマットを変更すると、日付に関する処理が正しく行えない場合があります。¶
何らかの処理の途中で、アカウントコンテキストの入力用日付フォーマットの変更を行ってはいけません。変更した場合、日付に関する処理が正しく行われない可能性があります。
8.2.2.4. ユーザコンテキストの departmentByCompany と postByCompany がコンバートに失敗し undefined が発生します。¶
下記の場合、departmentByCompany と postByCompany がコンバートに失敗します。
- companyCdに「-」を使用した場合のUserContextの戻り値
- 会社コードの先頭に「-」をつかって数値になった場合
8.2.2.5. DEBUG レベルでログ出力すると、アカウントのパスワードが書き込まれる場合があります。¶
DEBUG レベルでログ出力すると、アカウント情報の追加・更新・削除などの変更を行った際に、パスワードを含むアカウント情報がログに出力されることがあります。DEBUG レベルでのログ出力はあくまで開発向けであり、開発時以外の環境ではログレベルをINFO 以上としてください。
8.2.2.6. 検索画面で大文字・小文字を区別して検索を行う画面があります。¶
各画面のキーワード検索機能において、アルファベットの大文字・小文字を区別して検索を行うものがあります。以下の画面が該当します。
- 認可設定画面
例えば “IFRAME” という名称でデータが登録されている場合、 “iframe” で検索してもヒットしません。
8.2.2.7. Windows 環境で、小文字のURLに大文字でアクセスした場合、不正な動作をする場合があります。¶
Windows環境では、 Web Application Server の設定によってURLを大文字小文字を区別せずアクセス可能とする場合があります。intra-mart Accel Platform のURLのパスは、基本的に小文字で定義されているため、大文字でURL入力した場合、正常に動作しない場合があります。
8.2.2.8. APIを利用しないで直接データを更新、削除することは強く推奨しません。¶
- APIを利用しないで直接テーブルのデータ更新、削除を行った場合、以後の画面、APIの動作に関して保証しません。
8.2.2.9. URL リライティングによるセッション管理方式は利用する事ができません。¶
intra-mart Accel Platform はURLリライティングによるセッション管理方式には対応しておりません。必ずCookieによるセッション管理方式を利用してください。
8.2.2.10. アカウントとプロファイルは同期している必要があります。¶
アカウントのみ、プロファイルのみのデータを作成した場合、メンテナンスができなかったり、正常に動作しない機能があります。必ず同期するようにしてください。
8.2.2.11. データベースログ用の設定を行うと、起動時にエラーレベルのログが出力されます。¶
データベースログ用の設定を行うと、起動時にエラーレベルのログが出力されますが動作上は問題ありません。なお、データベースログは非推奨となりました。ご利用の データベース に適したログツール等の利用を強く推奨します。<!-- - Parameter for intra-mart only --> <intra-mart> <database> <log sqlparam="false" isEnabledMode="CALLER_CLASS_NAME" /> </database> . . .コラム
起動時の出力されるログ
[12-10-01 00:00:00.000] {main} !!!! Please check your LOGBACK configuration file !!!!
8.2.2.12. URLに「%28」(エンコードされた「(」)を利用する事ができません。¶
- URLに「%28」(エンコードされた「(」)を使用した場合、エラーログが出力されます。
8.2.2.13. スクリプト開発モデルにおける制約があります。¶
- 以下のAPIを利用し、オブジェクトの永続化を行った場合、その内容をJava APIを利用し直接取得することはできません。
- Client#set
- Permanent#set
- Cache#set
- Module#external#set
8.2.2.14. Archiver4Storage でzipファイルを出力した場合、OSにより区切り文字が異なるため正常に解凍できない場合があります。¶
Windows 環境かつ、Version7.2 以前の環境において Archiver4Storage API を利用し出力した zip ファイルはLinux/Unix 環境上でファイルの解凍を行った場合、正常に解凍が行えません。
8.2.2.15. ベースURL を明示的に設定している場合、設定したベースURL 以外でアクセスするとログインに失敗します。¶
ベースURL は、テナント単位、または、システム単位で 設定することが可能です。(ベースURL を テナント単位で設定する機能は、intra-mart Accel Platform 2014 Spring(Granada) から利用可能です。)ベースURL を設定した場合、画面上のリンクや画面遷移では、ベースURL を基準に遷移します。設定したベースURL 以外でアクセスした場合、画面は正常に表示されるが、その後画面遷移した際、ベースURL を基準としたURLでアクセスされます。最初にアクセスしたURL と ベースURL のドメインが異なる場合、Cookie の基準ドメインが異なるため、セッションが維持できません。そのため予期せぬエラーが発生する場合があります。エラーの具体例は以下の通りです。ローカル環境では、ログイン画面には以下のURLでアクセス可能です。
- http://localhost:8080/imart/login
- http://127.0.0.1:8080/imart/login
- http://<IPアドレス>:8080/imart/login
- その他
ベースURL と アクセスしたURLが異なる場合、ログイン画面は正常に表示されますが、ログインを実行するとSecureTokenのチェックが実行されますが、セッション情報が参照できないため、権限エラー(HTTP403)が発生します。もし、権限エラーでログイン出来ない事象が発生した場合、ベースURLを確認してください。
8.2.2.16. スクリプト開発モデルにおいて、夏時間を表す日時を扱う場合に日付オブジェクト(Date)の文字列表現への変換が正確に行われません。¶
JavaScript の Date インスタンスが以下の条件を全て満たす場合、Dateインスタンスから日付の文字列表現への変換が正確に行われません。(1時間ずれた日時に変換されます)
1970 年以前の日付である。
Web Application Server が稼動しているJavaVMのデフォルトタイムゾーンにおける夏時間の期間内である。※ この現象は、スクリプト開発モデルエンジン(Rhino)の仕様によるものです。例えば、システムタイムゾーンの日時データを、ユーザのタイムゾーン、および、指定した表示形式(例:「yyyy/MM/dd HH:mm:ss」形式)を使って日時文字列に整形するとします。Web Application Server のタイムゾーンがJST(日本標準時)になっている場合に以下のコードを実行するとvar date = new Date(1948, 7, 1, 0, 0, 0); var dateString = DateTimeFormatter.format('yyyy/MM/dd HH:mm:ss', date); Debug.browse(date.toString(), dateString);実行結果は、以下です。
- date.toString() → Sun Aug 01 1948 00:00:00 GMT+0900 (JST)
- dateString → 1948/08/01 01:00:00
まず、タイムゾーンを意識したアプリケーションを実装する場合は、DateTime API を利用して日時を扱ってください。上記の現象は DateTime API を利用して日付を扱うことで文字列表現への変換を正確に行うことができます。var systemTimeZone = SystemTimeZone.getDefaultTimeZone().data; var dateTimeSystemTZ = new DateTime(1948, 7, 1, 0, 0, 0, systemTimeZone); var dateTimeUserTZ = dateTimeSystemTZ.withTimeZone(Contexts.getAccountContext().timeZone).data; var dateString = DateTimeFormatter.format('yyyy/MM/dd HH:mm:ss', dateTimeUserTZ); Debug.browse(dateString);実行結果は、以下です。
- dateString → 1948/08/01 00:00:00
なお、「スクリプト開発モデル プログラミングガイド」および「SAStruts+S2JDBC プログラミングガイド」に、「国際化プログラミングのサンプル」が提供されております。あわせて参照してください。次に、タイムゾーンを意識した運用を行わない場合は、以下の設定を行うことで上記の現象を回避できます。
タイムゾーンマスタに Etc/GMT形式 の タイムゾーンID を追加します。WEB-INF/conf/time-zone-config/im-time-zone-config.xml を開き、time-zone-idタグを追加します。タイムゾーンマスタについては設定ファイルリファレンスを参照してください。<time-zone-config> <time-zone-id>Etc/GMT-9</time-zone-id> </time-zone-config> Web Application Server が稼動しているJava-VM のシステムプロパティ「user.timezone」に、Etc/GMT形式 の タイムゾーンID を指定します。Resin の場合、<%RESIN_HOME%/conf/resin.properties>を開き、「jvm_args」プロパティに「-Duser.timezone」を設定します。# Arg passed directly to the JVM jvm_args : -Xmx1024m -XX:MaxPermSize=256m -Duser.timezone=Etc/GMT-9 テナントのタイムゾーンを Etc/GMT形式 の タイムゾーンID に変更します。システムデータベースの im_tenant_info テーブルの time_zone_id の値を Etc/GMT-9 に変更します。または、テナント管理機能のテナントタイムゾーン変更画面で値を変更します。(GMT+09:00を選択します) すべてのユーザのタイムゾーンを Etc/GMT形式 の タイムゾーンID または 未設定 に変更します。ユーザのタイムゾーンは、データベースの値を直接変更することでも設定可能です。具体的には、テナントデータベースの b_m_account_b テーブルの time_zone_id の値を null または Etc/GMT-9 に変更してください。
8.2.2.17. テーブル名のプレフィックスは intra-mart Accel Platform の予約語です。¶
- 次のテーブル名はプレフィックスとして利用できません。
- b_bpw_*
- b_m_*
- b_vc_*
- bk_imm_*
- bk_imw_*
- bk_m_*
- im*
8.2.2.18. WARファイルによる複数テナント を構築する場合、接続先のデータベースはインスタンス単位で分ける事を推奨します。¶
- WARファイルによる複数テナント を構築する場合、接続先のデータベースはインスタンス単位で分ける事を推奨します。
8.2.2.19. 各種データベース・JDBCドライバの仕様および、制限に準拠します。¶
各種データベース・JDBCドライバの仕様および、制限に準拠します。例として発行するSQLとしてSQLServer の場合、プレースフォルダ指定(PreparedStatementの利用)は 2100 までです。Oracle では IN句に指定できるのは 1000 までです。
8.2.2.20. intra-mart Accel Platform が動作するURLは、必ず1階層のパスが必要です。¶
intra-mart Accel Platform が動作するURLは必ず、 http://host/imart 等、パスが1階層存在するように設定する必要があります。これは、intra-mart Accel Platform が動作するサーバ上の設定だけでなく、クライアント(ブラウザ)側から見えるパスも、1階層のパスが設定されている必要があります。例:/imart は動作しますが、 /foo/imart、および、 / のようなパスで動作させた場合の動作保証は行いません。
8.2.2.21. 非公開のスタイルまたは、APIは予告なく削除されます。¶
非公開のスタイルまたは、APIは利用しないでください。APIリスト等に公開されていないスタイルまたは、APIは利用しないでください。将来、予告なく削除される場合があります。利用している場合、削除時の動作不具合については一切の責任を負いません。
8.2.2.22. テナントのリソースにアクセスするためには、処理対象のテナントが特定されている必要があります。¶
処理対象のテナントが特定されていない状態では、テナントデータベースやパブリックストレージにアクセスすることはできません。intra-mart Accel Platform では、以下のような場合にテナントが解決されていない状態です。・サーバ起動時共通ライブラリの初期化時などが該当します。・アカウントコンテキスト生成時SSOユーザコードプロバイダの実行時などが該当します。
8.2.2.23. jQuery で dom 操作を行うとスクリプトが2度実行される事があります。¶
jQuery の動作として、挿入する対象の要素にスクリプトタグが存在していると2度評価されます。以下の関数が対象です。
- text
- append
- prepend
- before
- after
- wrapAll
- wrapInner
- replaceWith
- wrap
- html
下記の例では挿入される要素(#element)内にready関数があり、その中でアラートを表示しているためアラートが2回呼ばれます。<code class="html"> <script> (function($) { $(document).ready(function($) { // 読み込み時にイベントを登録している $('#imui-container').append($('#element')); }); })(jQuery) </script> <div id="element"> 挿入される要素 <script> (function($) { $(document).ready(function($) { // 読み込み時にイベントを登録している alert('load_start'); // alert が2回呼ばれます。 }); })(jQuery) </script> </div> </code>これは jQuery 1.7.2 の仕様です。この仕様は jQuery 1.9 以降で変更されているため、「設定ファイルリファレンス」-「ライブラリ群の指定」で jQuery 2.1.4 を選択した場合はこの制限事項の対象外です。
8.2.2.24. 製品で提供されているプログラムソースはカスタマイズを行った時点で、その関連する機能・モジュールについてはサポート対象外です。¶
製品で提供されているプログラムソースは自由にカスタマイズして利用することができます。ただし、製品で提供されているプログラムソースはカスタマイズを行った時点で、その関連する機能・モジュールについてはサポート対象外のため注意してください。なおカスタマイズを含む、アプリケーション開発を行う際は、ユーザモジュールとして作成しIM-Jugglingに組み込んでください。詳細は、「 intra-mart e Builder for Accel Platform アプリケーション開発ガイド 」-「 e Builder での開発の流れ 」を参照してください。
8.2.2.25. ジョブネットの停止中に intra-mart Accel Platform を停止すると、ジョブネットを再開できません。¶
ジョブネットの停止中に、そのジョブネットを実行していたアプリケーションサーバ上で動作している intra-mart Accel Platform が停止した場合、停止中のジョブネットを再開することができません。ジョブネットの停止は実行中のスレッドを sleep しているため、 intra-mart Accel Platform が停止すると実行中のスレッドも停止してしまいます。このため、ジョブネットを再開しようとしても実行スレッドが既に存在しないため再開できません。
8.2.2.26. iframe に任意のURLを埋め込み可能な機能において、不適切なURLを設定することで該当機能が利用できなくなる可能性があります。¶
iframe に任意のURLを埋め込み可能な機能において、不適切なURLを設定することで該当機能が利用できなくなる可能性があります。例・ログイン用のURL(/login)やログアウト用のURL(/logout)を設定すると、その画面を開く度にセッションの初期化処理が実行されてログアウトされます。・アプリケーションのURLを設定した場合、アプリケーションの処理内容によっては該当機能が正しく利用できない可能性があります。iframe に埋め込まれると問題があるURLの読み込みを抑制したい場合には、Webサーバなどで該当画面のURLからレスポンスヘッダに X-FRAME-OPTIONS : DENY を返すように設定してください。
8.2.2.27. iframe 内に任意のWebページのURLを表示する機能において、入力したページが表示出来ない場合があります。¶
詳細は次のFAQを参照してください。
8.2.2.28. SQLServer の接続プロパティ sendStringParametersAsUnicode に false を設定することはできません。¶
SQLServer の接続プロパティ sendStringParametersAsUnicode に false を設定した場合、環境によって文字化けが発生する可能性があります。sendStringParametersAsUnicode に false は設定しないでください。
8.2.2.29. Highcharts は「製品版」のみ利用可能です。¶
IM-Juggling の「利用種別」で「製品版」選択した場合のみ、Highcharts を利用することができます。
8.2.2.30. JDBCドライバを利用してSAP HANAに接続する場合の制限があります。¶
JDBCドライバを利用してSAP HANAに接続する場合の制限があります。
シェアードデータベースのみ対応します。
Web Application Server は Resin 利用時のみサポート対象です。
intra-mart Accel Platform が提供するシェアードデータベースへのアクセスが可能な画面のみサポート対象です。APIを利用してSAP HANAへ接続を行うことはサポート対象外です。
8.2.2.31. Slim Dropdownテーマを利用した場合、ボタン要素に対するダブルクリックが動作しない場合があります。¶
Slim Dropdownテーマではボタンクリック時に波紋エフェクトが追加されています。波紋エフェクト発生時には、ボタン要素に対して波紋を表現するdiv要素が自動的に配置されます。その為、ボタンに対してダブルクリックを行う操作が動かなくなる場合があります。
8.2.2.32. Slim Dropdownテーマを利用した場合、アイコンの一部の外観が既存テーマと異なります。¶
Slim Dropdownテーマを利用した場合、アイコンの一部の外観が既存テーマと異なります。
- グラデーションや、影が取り払われます。
- アイコンの一部がアイコンクラス名にある色名やサイズと異なる色で表示されます。
- グローバルナビの検索アイコンは.im-ui-icon-common-16-search-whiteを指定していますが、濃灰色のアイコンで表示されます。(IM-ContentsSearchがインストールされている場合です)
- ポートレットのコンテキストメニューを表示するアイコンは.im-ui-icon-portal-16-menu-whiteを指定していますが、濃灰色のアイコンで表示されます。
- サイトツアーを呼び出すアイコンは、.im-ui-icon-compornent-help-whiteを指定していますが、濃灰色のアイコンで表示されます。