読者です 読者をやめる 読者になる 読者になる

Code for final

ふぁいなる向けのコード置き場です。すでにコードじゃないこともいっぱい。

intra-mart(accel)でModule.alertの代わりとなるっぽい汎用的に使えるエラー画面を出す。

intra-mart

intra-martを昔からやっている人はわかると思いますが、製品標準でエラー画面が用意されています。

そうです、Module.alertオブジェクトです。
エラー画面というか警告画面っぽいですけど。

以下のようにサーバサイドでメッセージID、詳細メッセージを渡すだけで戻るボタン付きのエラー画面が出せます。

Module.alert.back(messageId, detail);

intra-mart Accel Platform SSJS API Documentation

intra-martで作成された業務アプリでシステムエラーが出た際はこれに頼っているケースがほとんどではないかと思います。

そんなModule.alertですが、accelから非推奨になりました。
しかも、代替えメソッドはありません。と書いてあります。

なぜなくなった? why?

まぁエラー画面くらい自分で作りなさいってことかーと理解して
UIデザインガイドラインを見てたらなんと代替っぽいのがありました。

6.5.2. 汎用メッセージ画面 — UIデザインガイドライン(PC版)   第5版 2015-04-01   intra-mart Accel Platform

なぜにUIデザインガイドラインに?ということは置いといて、渡せるものも増えていろいろパワーアップしているみたいです。

Transferオブジェクト intra-mart Accel Platform SSJS API Documentation

以下のようなコードをサーバサイドで書けばOKです。

      Transfer.toErrorPage({
        title: 'タイトル',
        message: 'メッセージ',
        detail: ['詳細メッセージ1', '詳細メッセージ2'],
        returnUrl: '/login', // 戻り先 URL
        returnUrlLabel: 'ログイン画面へ戻る',
        parameter: {
          key: 'value',
          list: ['1','2','3']
        }
      });

↓上記のコードで出るエラー画面 f:id:finalstream:20160503200108p:plain

これってModule.alertの代替ちゃうん?って思いましたが、accelで汎用的なエラー画面を表示するときはTransferオブジェクトを使いましょう。

そもそもaccelの開発ではajaxをメインでやると思うので、エラーメッセージはクライアントサイドでimuiShowErrorMessageを使って出すことが多く、あまり使う機会はないかもしれませんが覚えておいて損はないと思います。

intra-mart Accel Platform Client Side JavaScript API - imuiShowErrorMessage