CookBook

後処理プログラムで画面アイテム「ファイルアップロード」にバリデーションを実行する方法

投稿日:2017-06-28 更新日:

このCookbookでは、画面アイテム「ファイルアップロード」に添付されたファイルをバリデーションする方法を紹介します。
後処理プログラムを使用してバリデーションを実行することで、画面に表示するエラーメッセージを任意に設定することができます。

サンプルでは、アプリケーション種別「標準」の登録処理にバリデーションを設定います。
アプリケーション種別「IM-Workflow」や更新処理に対しても、同様の方法で実装することが可能です。

完成イメージ


1. 「The attached file」にファイルを添付してください。
2. 「Register」をクリックしてください。
3. 添付ファイルが以下の条件のいずれかに当てはまる場合は、画面上部にエラーメッセージが表示されます。
・ファイル名にアンダーバーが含まれる
・ファイルサイズが1MB以上

完成サンプル

以下の完成サンプルをダウンロードしてご活用ください。
なお、以下のサンプルはintra-mart Accel Platform 2016 Winterの環境を利用して作成したものです。
2016 Winterより前のバージョンでは正常に動作しない可能性があります。

ローカル環境で表示させる場合は、以下のURLにアクセスしてください。
http://localhost:8080/imart/forma/normal/view/regist_application_view/im_cookbook_119455_forma
なおベースURLである以下の部分は、環境に合わせて適宜変更してください。
http://localhost:8080/imart

レシピ

  1. フォームを作成する
  2. 後処理プログラムを作成する
    ・スクリプト開発モデル編
    ・JavaEE開発モデル編
  3. フォームに後処理プログラムを設定する
  4. 作成したフォームにて、登録処理を実行する

1. フォームを作成する

FormaDesignerでフォームを作成し、画面アイテム「ファイルアップロード」を配置してください。

2. 後処理プログラムを作成する

「スクリプト開発モデル」または「JavaEE開発モデル」で後処理プログラムを作成しましょう。

後処理プログラムの詳細は以下のドキュメントを参照してください。
IM-FormaDesigner for Accel Platform プログラミングガイド - 後処理

スクリプト開発モデル編

サンプルでは以下の場所にファイルを作成しています。
src/main/jssp/src/im_cookbook_119455_validate_fileupload/post_process.js

  • FormaFileUploadItemManagerを使用し、添付ファイルの情報を取得してください。
  • FormaFileUploadItemManager#getFilesInfo(insertId, processKey)
    案件に紐付くファイル情報を取得するメソッドです。
    引数にプロセスキーを指定することで、セッションに保存された一時保存状態のファイル情報を取得対象に含めることができます。
  • FormaFileUploadItemManager#getFile(insertId, fileId, processKey)
    ファイルの実体を取得する場合はgetFileメソッドを使用してください。

  • バリデーションエラーの場合は返却オブジェクトに以下のプロパティを設定してください。

  • userErrorMessage
    画面に表示するエラーメッセージを設定してください。
  • outputLog
    ログ出力可否を設定することができます。
    ログ出力が不要な場合はfalseを設定してください。

FormaFileUploadItemManagerの詳細は以下のドキュメントを参照してください。
IM-FormaDesigner スクリプト開発API - FormaFileUploadItemManagerオブジェクト

エラー処理の詳細は以下のドキュメントを参照してください。
IM-FormaDesigner for Accel Platform プログラミングガイド - 返却値とエラー処理

JavaEE開発モデル編

サンプルでは以下の場所にファイルを作成しています。
src/main/java/jp/co/intra_mart/cookbook/im_cookbook_119455_validate_fileupload/PostProcess.java

  • FormaFileUploadItemManagerを使用し、添付ファイルの情報を取得してください。
  • FormaFileUploadItemManager#getFilesInfo(insertId, processKey)
    案件に紐付くファイル情報を取得するメソッドです。
    引数にプロセスキーを指定することで、セッションに保存された一時保存状態のファイル情報を取得対象に含めることができます。
  • FormaFileUploadItemManager#getFile(insertId, fileId, processKey)
    ファイルの実体を取得する場合はgetFileメソッドを使用してください。

  • バリデーションエラーの場合はFormaUserProcessExceptionをthrowしてください。

  • FormaUserProcessException#setUserMessage(userMassage)
    画面に表示するエラーメッセージを設定してください。
  • FormaUserProcessException#setOutputLog(isOutputLog)
    ログ出力可否を設定することができます。
    ログ出力が不要な場合はfalseを設定してください。

FormaFileUploadItemManagerの詳細は以下のドキュメントを参照してください。
IM-FormaDesigner JavaEE開発API - クラス FormaFileUploadItemManager

エラー処理の詳細は以下のドキュメントを参照してください。
IM-FormaDesigner for Accel Platform プログラミングガイド - 返却値とエラー処理

3. フォームに後処理プログラムを設定する

レシピ1のフォームに、レシピ2の後処理プログラムを設定しましょう。

「後処理プログラム - 登録」に以下の値を設定してください。

プログラム種別 プログラムパス
スクリプト開発モデル im_cookbook_119455_validate_fileupload/post_process
JavaEE開発モデル jp.co.intra_mart.cookbook.im_cookbook_119455_validate_fileupload.PostProcess

ユーザプログラムの設定方法は以下のドキュメントを参照してください。
IM-FormaDesigner for Accel Platform 作成者 操作ガイド - アプリケーションでユーザプログラムを利用する

4. 作成したフォームにて、登録処理を実行する

権限設定やメニュー設定を行い、Formaアプリケーションを完成させてください。
登録画面でファイルを添付して登録ボタンをクリックすると、バリデーションが実行されます。

-CookBook

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Docker Swarm を利用して Resin のクラスタリングを構築する。

この CookBook では、Docker Swarm を利用して Resin のクラスタリングを構築する手順について紹介しています。 Docker Swarm を利用することで、複数マシンにまたがっ …

IM-LogicDesignerを利用して、IM-Workflow完了案件の確認対象者を削除する

このCookBookでは、IM-LogicDesignerを利用して、IM-Workflow完了案件の確認対象者を削除する方法について紹介しています。 完了案件でも、確認対象者が確認することはできます …

no image

テナント環境セットアップ時にテーブルが作成されるよう設定する

e Builderを利用して作成したアプリケーションにおいて、テナント環境セットアップ時に自動でテーブルが作成されるように設定する手順を紹介します。 今回は例として、CookBook:フォームに入力し …

no image

画面UI部品(imuiValidate)のバリデーションメッセージを任意の場所に表示する方法

このCookBookでは、画面UI部品のバリデーションメッセージを任意の場所に表示する方法について紹介しています。 intra-mart Accel Platform では、画面上に配置したUI部品の …

no image

【ViewCreator】検索にヒットした件数を取得する関数の作り方。

このCookBookでは、ViewCreatorで検索にヒットした件数を取得する関数の作り方についてご紹介します。 ユーザ定義関数についての詳細は下記のドキュメントを参照してください。 ViewCre …

RSSRSSRSSRSS