intra-mart Accel Platform スクリプト開発モデル プログラミングガイド 第16版 2020-04-01

旧バージョンで作成したプログラムの実行

version 7.2 で動作していたプログラムをintra-mart Accel Platform上で動作するための方法を説明します。
この章では、最低限必要な対応について説明します。

コラム

詳細は、移行ガイドを参照してください。

前提

ここでは、 ルーティング認可 については基本的に触れません。
移行の場合、メニュー移行でどちらも設定されます。
新規/追加開発時は、マニュアルに従い、設定してください。

注意

前提として、以下の注意点、変更点がありますので、注意してください。
  • v7.2でのAPIを利用する場合は、IM-Jugllingで互換機能モジュールを選択してください。
  • 互換機能モジュールの動作の前提として、v7.2からの移行が必要です。
  • サポートするファイルのエンコードは、UTF-8 のみです。移行前に既存のファイルエンコードを変更してください。
  • ファイルの格納先は、pages/ から WEB-INF/jssp に変更になりました。
  • これまでのとおり、WEB-INF/jssp/src等に直接ファイルを配置すること(source-config.xmlの設定により変わる)で、サーバ再起動なしで、ソースの追加や変更して動作しますが、WARファイルに格納されていないファイルは、アンデプロイ時に削除されますので、 intra-mart e Builder for Accel Platform でのモジュールプロジェクトで運用を強く推奨致します。

移行手順

旧バージョンで動作していたプログラムをintra-mart Accel Platform上で動作させる方法としては、 以下の2つの方法があります。

  • intra-mart Accel Platformの画面仕様に合わせる
  • iframe内で表示する

動作させたいアプリケーションにより以下の対応方法を参照の上、対応してください。

intra-mart Accel Platformの画面仕様に合わせる

画面(HTMLファイル)の対応

  • frameset, frameタグを削除
frame間でデータのやりとりを行っている場合、Ajaxを使った実装に置き換えることをお勧めします。
  • html, bodyタグを削除
bodyタグのonload属性にJavaScriptを記述していた場合、jQueryの機能を利用して実行するようにしてください。
jQuery(document).ready(function() {
doSomething();
});
  • <imart type=”imDesignCss”/>を削除
  • headタグを置き換える
<head>タグを<imart type=”head”>タグに置き換えます。
  • タイトルバータグを置き換える
imTitleBarをheaderタグに置き換えます。
  • form の target を変更
target=”IM_MAIN” を target=”_top” に変更します。

diconファイルの設定

必要に応じて、

  • s2jdbc.dicon
  • convention.dicon
  • app.dicon

を編集してください。

ロジック(JSファイル)の対応

API対応を 互換対応表 を参照の上、対応してください。
intra-mart Accel Platformからファンクションコンテナ(JSファイル)上で実行するJavaのAPIについては、実行結果が以下の場合は、JavaScriptのオブジェクトに変換されるようになるため修正が必要です。
  • java.lang.Boolean は Boolean オブジェクトに変換されます。
  • java.lang.String は String オブジェクトに変換されます。
  • java.lang.Number のサブクラスは Number オブジェクトに変換されます。

iframe内で表示する

iframe設定

テナント管理者で、メニュー登録を行い、iframeの設定を行います。

../../_images/migration_menuitem_iframe.png

注意

iframe利用時は以下の制限事項がありますので、注意してください。

  • IFRAMEを使用したページをマイメニューに登録して開くとページを表示できない場合があります。
  • エラーページをカスタマイズするとIFrameリダイレクタのiframe内にエラーページが表示されます
  • 認証確認対象の画面には、iframe 内に表示する前提の画面のURLは設定できません。

no-theme設定

iframeを使うと、テーマが2重に表示されることがあるため、<im_path>/WEB-INF/conf/theme-no-theme-path-config/に以下のようなxmlファイルにて、no-theme設定を行う必要があります。
<?xml version="1.0" encoding="UTF-8"?>
  <theme-no-theme-path-config xmlns="http://www.intra-mart.jp/theme/theme-no-theme-path-config"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.intra-mart.jp/theme/theme-no-theme-path-config theme-no-theme-path-config.xsd ">

   <path>/bpw\-.+\.service.*</path>
   <path>bpw/.*</path>
<path>タグ内に、テーマを表示したくないファイルパスを記述してください。
フルパスでも、上記のように正規表現でも記載できます。

baseタグ設定

URLの階層化により、これまでのような相対パスでは画像やCSS, CSJSが指定できません。
しかし、baseタグを設定すれば、既存の配置のままでパスの問題を解消できます。
テーマを適用している場合は、テーマ側で出力されますが、上記のno-themeの設定を行う場合は、個別に対応が必要です。
  • 対応例

    • jsファイル
    var base = "";
    function init(request) {
        base = "<base href=\"" + Web.base() + "/\" target=\"_self\">";
    }
    
    • htmlファイル
    <imart type="string" value=base />
    

diconファイルの設定

必要に応じて、

  • s2jdbc.dicon
  • convention.dicon
  • app.dicon

を編集してください。

ロジック(JSファイル)の対応

API対応を 互換対応表 を参照の上、対応してください。
intra-mart Accel Platformからファンクションコンテナ(JSファイル)上で実行するJavaのAPIについては、実行結果が以下の場合は、JavaScriptのオブジェクトに変換されるようになるため修正が必要です。
  • java.lang.Boolean は Boolean オブジェクトに変換されます。
  • java.lang.String は String オブジェクトに変換されます。
  • java.lang.Number のサブクラスは Number オブジェクトに変換されます。

コラム

詳細は、移行ガイドを参照してください。