9.2.2. 共通¶
9.2.2.2. エラーページをカスタマイズすると IFRAME リダイレクタの IFRAME 内にエラーページが表示されます。¶
http404.jsp などをカスタマイズすると、 IFRAME リダイレクタ内でエラーが発生した場合にグローバルナビなどが表示され続けます。上記の場合、下記の回避策があります。カスタマイズしたエラーページのDOM要素#im_error_url にエラーページ自体のURLを設定することで回避することが可能です。
9.2.2.3. アカウントコンテキストの入力用日付フォーマットを変更すると、日付に関する処理が正しく行えない場合があります。¶
何らかの処理の途中で、アカウントコンテキストの入力用日付フォーマットの変更を行ってはいけません。変更した場合、日付に関する処理が正しく行われない可能性があります。
9.2.2.4. DEBUG レベルでログ出力すると、アカウントのパスワードが書き込まれる場合があります。¶
DEBUG レベルでログ出力すると、アカウント情報の追加・更新・削除などの変更を行った際に、パスワードを含むアカウント情報がログに出力されることがあります。DEBUG レベルでのログ出力はあくまで開発向けであり、開発時以外の環境ではログレベルをINFO 以上としてください。
9.2.2.5. 検索画面で大文字・小文字を区別して検索を行う画面があります。¶
各画面のキーワード検索機能において、アルファベットの大文字・小文字を区別して検索を行うものがあります。以下の画面が該当します。
- 認可設定画面
例えば “IFRAME” という名称でデータが登録されている場合、 “iframe” で検索してもヒットしません。
9.2.2.6. Windows 環境で、小文字のURLに大文字でアクセスした場合、不正な動作をする場合があります。¶
Windows環境では、 Web Application Server の設定によってURLを大文字小文字を区別せずアクセス可能とする場合があります。intra-mart Accel Platform のURLのパスは、基本的に小文字で定義されているため、大文字でURL入力した場合、正常に動作しない場合があります。
9.2.2.7. APIを利用しないで直接データを更新、削除することは強く推奨しません。¶
- APIを利用しないで直接テーブルのデータ更新、削除を行った場合、以後の画面、APIの動作に関して保証しません。
9.2.2.8. URL リライティングによるセッション管理方式は利用する事ができません。¶
intra-mart Accel Platform はURLリライティングによるセッション管理方式には対応しておりません。必ずCookieによるセッション管理方式を利用してください。
9.2.2.9. アカウントとプロファイルは同期している必要があります。¶
アカウントのみ、プロファイルのみのデータを作成した場合、メンテナンスができなかったり、正常に動作しない機能があります。必ず同期するようにしてください。
9.2.2.10. データベースログ用の設定を行うと、起動時にエラーレベルのログが出力されます。¶
データベースログ用の設定を行うと、起動時にエラーレベルのログが出力されますが動作上は問題ありません。なお、データベースログは非推奨となりました。ご利用の データベース に適したログツール等の利用を強く推奨します。<!-- - 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 !!!!
9.2.2.11. スクリプト開発モデルにおける制約があります。¶
- 以下のAPIを利用し、オブジェクトの永続化を行った場合、その内容をJava APIを利用し直接取得することはできません。
- Client#set
- Permanent#set
- Cache#set
- Module#external#set
9.2.2.12. Archiver4Storage でzipファイルを出力した場合、OSにより区切り文字が異なるため正常に解凍できない場合があります。¶
Windows 環境かつ、Version7.2 以前の環境において Archiver4Storage API を利用し出力した zip ファイルはLinux/Unix 環境上でファイルの解凍を行った場合、正常に解凍が行えません。
9.2.2.13. ベース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を確認してください。
9.2.2.14. スクリプト開発モデルにおいて、夏時間を表す日時を扱う場合に日付オブジェクト(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 に変更してください。
9.2.2.15. テーブル名のプレフィックスは intra-mart Accel Platform の予約語です。¶
- 次のテーブル名はプレフィックスとして利用できません。
- b_bpw_*
- b_m_*
- b_vc_*
- bk_imm_*
- bk_imw_*
- bk_m_*
- im*
9.2.2.16. WARファイルによる複数テナント を構築する場合、接続先のデータベースはインスタンス単位で分ける事を推奨します。¶
- WARファイルによる複数テナント を構築する場合、接続先のデータベースはインスタンス単位で分ける事を推奨します。
9.2.2.17. 各種データベース・JDBCドライバの仕様および、制限に準拠します。¶
各種データベース・JDBCドライバの仕様および、制限に準拠します。例として発行するSQLとしてSQLServer の場合、プレースフォルダ指定(PreparedStatementの利用)は 2100 までです。Oracle では IN句に指定できるのは 1000 までです。
9.2.2.18. intra-mart Accel Platform が動作するURLは、必ず1階層のパスが必要です。¶
intra-mart Accel Platform が動作するURLは必ず、 http://host/imart 等、パスが1階層存在するように設定する必要があります。これは、intra-mart Accel Platform が動作するサーバ上の設定だけでなく、クライアント(ブラウザ)側から見えるパスも、1階層のパスが設定されている必要があります。例:/imart は動作しますが、 /foo/imart、および、 / のようなパスで動作させた場合の動作保証は行いません。
9.2.2.19. 非公開のスタイルまたは、APIは予告なく削除されます。¶
非公開のスタイルまたは、APIは利用しないでください。APIリスト等に公開されていないスタイルまたは、APIは利用しないでください。将来、予告なく削除される場合があります。利用している場合、削除時の動作不具合については一切の責任を負いません。
9.2.2.20. テナントのリソースにアクセスするためには、処理対象のテナントが特定されている必要があります。¶
処理対象のテナントが特定されていない状態では、テナントデータベースやパブリックストレージにアクセスすることはできません。intra-mart Accel Platform では、以下のような場合にテナントが解決されていない状態です。・サーバ起動時共通ライブラリの初期化時などが該当します。・アカウントコンテキスト生成時SSOユーザコードプロバイダの実行時などが該当します。
9.2.2.21. 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 を選択した場合はこの制限事項の対象外です。
9.2.2.22. 製品で提供されているプログラムソースはカスタマイズを行った時点で、その関連する機能・モジュールについてはサポート対象外です。¶
製品で提供されているプログラムソースは自由にカスタマイズして利用できます。ただし、製品で提供されているプログラムソースはカスタマイズを行った時点で、その関連する機能・モジュールについてはサポート対象外のため注意してください。なおカスタマイズを含む、アプリケーション開発を行う際は、ユーザモジュールとして作成しIM-Jugglingに組み込んでください。詳細は、「 intra-mart e Builder for Accel Platform アプリケーション開発ガイド 」-「 e Builder での開発の流れ 」を参照してください。
9.2.2.23. ジョブネットの停止中に intra-mart Accel Platform を停止すると、ジョブネットを再開できません。¶
ジョブネットの停止中に、そのジョブネットを実行していたアプリケーションサーバ上で動作している intra-mart Accel Platform が停止した場合、停止中のジョブネットを再開できません。ジョブネットの停止は実行中のスレッドを sleep しているため、 intra-mart Accel Platform が停止すると実行中のスレッドも停止してしまいます。このため、ジョブネットを再開しようとしても実行スレッドが既に存在しないため再開できません。
9.2.2.24. iframe に任意のURLを埋め込み可能な機能において、不適切なURLを設定することで該当機能が利用できなくなる可能性があります。¶
iframe に任意のURLを埋め込み可能な機能において、不適切なURLを設定することで該当機能が利用できなくなる可能性があります。例・ログイン用のURL(/login)やログアウト用のURL(/logout)を設定すると、その画面を開く度にセッションの初期化処理が実行されてログアウトされます。・アプリケーションのURLを設定した場合、アプリケーションの処理内容によっては該当機能が正しく利用できない可能性があります。iframe に埋め込まれると問題があるURLの読み込みを抑制したい場合には、Webサーバなどで該当画面のURLからレスポンスヘッダに X-FRAME-OPTIONS : DENY を返すように設定してください。
9.2.2.25. iframe 内に任意のWebページのURLを表示する機能において、入力したページが表示出来ない場合があります。¶
詳細は次の FAQ を参照してください。
9.2.2.26. SQLServer の接続プロパティ sendStringParametersAsUnicode に false を設定することはできません。¶
SQLServer の接続プロパティ sendStringParametersAsUnicode に false を設定した場合、環境によって文字化けが発生する可能性があります。sendStringParametersAsUnicode に false は設定しないでください。
9.2.2.27. Highcharts は「製品版」のみ利用可能です。¶
IM-Juggling の「利用種別」で「製品版」選択した場合のみ、Highcharts を利用できます。
9.2.2.28. JDBCドライバを利用してSAP HANAに接続する場合の制限があります。¶
JDBCドライバを利用してSAP HANAに接続する場合の制限があります。
- シェアードデータベースのみ対応します。
- Web Application Server は Resin 利用時のみサポート対象です。
- ViewCreator / TableMaintenance の画面からの利用のみサポート対象です。
9.2.2.29. アイコンの一部の外観がテーマごとに異なります。¶
Slim DropdownテーマおよびSlim Side Menuテーマと、標準テーマでは以下の外観の違いがあります。
- Slim DropdownテーマおよびSlim Side Menuテーマではグラデーションや、影が表示されません。
- Slim DropdownテーマおよびSlim Side Menuテーマではアイコンの一部がアイコンクラス名にある色名やサイズと異なる色で表示されます。
- Slim DropdownテーマおよびSlim Side Menuテーマではグローバルナビの検索アイコンは.im-ui-icon-common-16-search-whiteを指定していますが、濃灰色のアイコンで表示されます。(IM-ContentsSearchがインストールされている場合です。)
- Slim DropdownテーマおよびSlim Side Menuテーマではポートレットのコンテキストメニューを表示するアイコンは.im-ui-icon-portal-16-menu-whiteを指定していますが、濃灰色のアイコンで表示されます。
- Slim DropdownテーマおよびSlim Side Menuテーマではサイトツアーを呼び出すアイコンは、.im-ui-icon-compornent-help-whiteを指定していますが、濃灰色のアイコンで表示されます。
9.2.2.30. SQL Server を SelectMethod=cursor で利用時には executeCallable メソッドでユーザ定義関数を実行できません。¶
9.2.2.31. テナントを跨るREST APIの利用はできません。¶
intra-mart Accel Platform では、ブラウザ等のクライアント端末上から、ログイン中のテナントとは別のテナントに対して認証を伴うAPIの呼び出しを行うと、ログイン中のセッションが破棄されます。
9.2.2.32. 起動時に warning ログが複数出力されます。¶
intra-mart Accel Platform起動時に以下のWarningログが複数件出力されます。動作上の問題はありません。このログは「conf/log」配下の「im_logger_XXX.xml」から「immediateFlush」の設定をすべて削除すると出力されません。[WARN] j.c.i.c.p.l.u.LogbackUtil - [] [WARN] ch.qos.logback.core.encoder.LayoutWrappingEncoder@70309063 - As of version 1.2.0 "immediateFlush" property should be set within the enclosing Appender.
9.2.2.34. 文字サイズ変更機能で文字サイズを大きく設定している場合、画面の表示が崩れたりスクロールバーが表示される場合があります。¶
文字サイズ変更機能で文字サイズを大きく設定している場合、以下の現象が発生する場合があります。
縦および横のスクロールバーが画面全体または画面内の領域に表示される場合がある 文字列が見切れて、文字列が全て表示されない 1行で表示されていた文字列が2行に渡って表示される アイコンが大きくならない以下のPC版UIコンポーネントとClient Side JavaScript APIでは、文字サイズを大きく設定している場合に以下の現象が発生する場合があります。
imuiSiteTour(Client Side JavaScript API)
ヘルプ表示を実行した場合に、表示される説明文が全て表示されない場合があります。 ヘルプを表示する項目に対して正しい位置に説明文が表示されない場合があります。 ヘルプを表示する項目に対して正しい位置に説明文が表示されない場合があります。 imuiDialog、imuiAccordion、imuiGadgetBar(タグライブラリ - PC版UIコンポーネント) 文字サイズが大きい時に領域内にスクロールバーが発生する場合があります。 imuiListTable(タグライブラリ - PC版UIコンポーネント) ヘッダ部・テーブル部・ページャー部の文字列が見切れて表示されます。ただし、文字サイズ変更機能は除外設定があり、除外設定が指定されている画面は文字サイズが標準で固定されるため、上記の事象は発生しません。
9.2.2.35. 文字サイズ変更機能で文字サイズを変更した直後は画面の表示が崩れる場合があります。¶
文字サイズ変更機能で文字サイズを変更した直後は画面の表示が崩れる場合があります。画面の表示が崩れたとき、画面の再表示(リロード)を実行することで表示が改善される場合があります。画面項目の位置(position)が固定だったり、表示内容に応じて画面項目の位置が動的に変更される画面の場合、文字サイズ変更による位置調整処理が実行されない場合があります。以下はダイアログなどのフローティングオブジェクトの例です。ダイアログを開いた状態で文字サイズを変更する場合にダイアログの表示位置(相対位置)が伴って変わります。特に文字が大きいサイズの状態でダイアログを開き、更に文字サイズを小さく調整する場合にページ全体の高さが小さくなるため、ダイアログの表示位置がページ表示範囲外に移動される可能性があります。※この現象が発生する場合に文字サイズをダイアログ開く前のサイズに戻すとダイアログが元の位置に戻ります。
上記に該当するPC版UIコンポーネント、JavaScript APIの例
imuiDialog imuiMessageDialog imuiPageDialog imuiColorPicker imuiTooltip
9.2.2.36. 文字サイズ変更機能で文字サイズを変更しても、設定が反映されない画面や項目があります。¶
文字サイズ変更の設定の対象外となっている画面は、文字サイズの設定が反映されません。 文字サイズを固定にしている画面項目は文字サイズの設定が反映されません。
スタイルの指定(CSS)の「font-size」プロパティを「px」で指定している要素が対象です。 改善するには「px」で固定サイズになっている画面項目の「font-size」プロパティを「rem」に変更してください。 インラインフレーム要素(iframeタグ)を利用して表示している画面・要素は設定の対象外です。
ポータル機能の一部ポートレット iframe表示を設定しているメニュー・画面(共通マスタなど) IM-HybridSSO ・外部メニュー連携で表示する連携先の画面は設定の対象外です。 文字サイズ変更機能は以下のPageBuilderが適用されている画面は設定の対象外です。
HeadWithFooterThemeBuilder HeadWithContainerThemeBuilder HeadOnlyThemeBuilder BodyOnlyThemeBuilder NoThemeBuilder PageBuilderの仕様についてはテーマ仕様書を参照してください。
「 テーマ仕様書 」-「 PageBuilder 」 画面例:IM-ContentsSearch検索結果画面、汎用エラー画面(404,403画面など)
9.2.2.39. 設定しているテーマによっては表示位置を固定している要素が意図しない位置に表示される場合があります。¶
ページ全体を起点としてpostion: absolute;を指定している固定要素は要素が意図しない位置に表示される場合があります。例えば、Slim Side Menuテーマや互換テーマでは画面左部分にメニューを表示しているため、標準テーマやSlim Dropdownテーマで正しい位置に表示されていた要素がメニューの上に表示されてしまう場合があります。
9.2.2.40. グローバルナビのメニュー階層を変更した際に、「Slim Side Menuテーマ」ではメニューが意図しない表示となる場合があります。¶
「Slim Side Menuテーマ( 2021 Summer(Cattleya) 以降 )」では、表示中のメニュー階層をブラウザのセッションストレージにキャッシュしているため、メニューの階層構造を変更すると、メニューが意図しない表示となる場合があります。例えば、ブラウザのセッションストレージにキャッシュされているメニュー階層と同じメニュー階層を、メニューの管理画面で削除した場合、空白のメニューが表示される場合があります。一度ログアウト、ログインし直すことで、この現象は解消されます。
9.2.2.41. 2Gを超えるファイルをダウンロードする場合に失敗する場合があります。¶
ファイルをダウンロードする処理において、2Gを超えるコンテンツを送信する場合、レスポンスヘッダ(Content-Length)が不正な値となりダウンロードに失敗する場合があります。