intra-mart Accel Platform Accel Studio テンプレートカタログ 第7版 2024-04-01

5.3.2. CSVインポート

このページでは「CSVインポート」テンプレートの概要、アプリケーションへの追加方法について解説します。

5.3.2.1. 「CSVインポート」テンプレートとは

../../../_images/csv_import.png

このテンプレートは、CSV形式のファイルをインポートする処理を提供します。
このテンプレートでは、IM-BloomMakerの資材は作成されません。
このテンプレートから作成された処理をIM-BloomMaker等の画面資材と組み合わせて、活用していただくことができます。

コラム

「CSVインポート」テンプレートは2022 Winter(Freesia)から利用可能です。

コラム

「CSVインポート」テンプレートから作成された処理は、単一のテーブルにのみ対応しています。
「CSVインポート」機能を追加した際のイメージは、以下の通りです。
../../../_images/csv_import_option_02.png
追加手順の詳細については、「チュートリアル」で紹介します。

5.3.2.2. チュートリアル

ここでは、「マスタメンテナンス」テンプレートから作成されたアプリケーションへ「CSVインポート」機能を追加する手順について紹介します。

コラム

紹介した手順通りではなくとも、「CSVインポート」機能を追加することは可能です。

5.3.2.2.1. 「CSVインポート」機能の追加手順

  1. 「既存アプリケーションの更新」画面への遷移
    「アプリケーション管理」画面の「テンプレートからリソースを追加する」をクリックします。
    ../../../_images/csv_import_option_03.png

    「業務テンプレート一覧」が表示されるので、「CSVインポート」テンプレートを選択します。
    ../../../_images/csv_import_option_04.png

  2. IDの決定に利用する文字列の設定
    「既存アプリケーションの更新」画面が表示されたら、「IDの決定に利用する文字列」を設定します。
    「IDの決定に利用する文字列」は、各処理やIDなどに利用されます。
    ../../../_images/csv_import_option_05.png

    コラム

    「既存アプリケーションの更新」画面では、既存アプリケーションの基本情報が自動入力されます。
    なお、アプリケーションIDとアプリケーション名は変更できません。

  3. 利用するデータベース種別とテーブルの名称の設定
    次に、利用するデータベース種別とテーブルの名称を設定します。
    なお、「CSVインポート」テンプレートでは、既存のテーブルを利用します。
    ../../../_images/csv_import_option_06.png

  4. 既存アプリケーションの更新
    アプリケーションの基本情報とテーブル情報を設定した後、「既存アプリケーションの更新」ボタンをクリックしてください。
    入力項目に不備が無ければ、自動で既存アプリケーションの更新が行われます。
    ../../../_images/csv_import_option_07.png

  5. 既存アプリケーションの更新結果
    アプリケーションの更新が完了すると、ステータスが「COMPLETE」と表示されます。
    ../../../_images/csv_import_option_08.png

5.3.2.2.2. IM-BloomMaker資材の編集

「CSVインポート」機能を追加するために、IM-BloomMaker資材の編集を行います。
「アプリケーション管理」画面の「【チュートリアル】 CSVインポート 一覧画面」を選択してください。
../../../_images/csv_import_option_09.png

注意

画像のアプリケーションは、「マスタメンテナンス」テンプレートのアプリケーション名に「【チュートリアル】 CSVインポート」と入力して作成されたアプリケーションの例です。

「デザイン編集」画面が表示されたら、以下の手順でコンテンツを編集します。

コラム

コンテンツの編集作業中は、編集した内容を保存するために、こまめに「デザイン編集」画面左上の「上書き保存」をクリックすることを推奨します。
  1. 変数・定数の作成
    「変数」タブから「JSON形式で編集」アイコンをクリックして、 $variable 配下に以下の変数を追加してください。
    "endPoint": {
      "importCsv": {
        "requestData": {
          "fileKey": ""
        },
        "responseData": {
          "error": false,
          "errorMessage": ""
        }
      }
    }
    
    ../../../_images/csv_import_option_11.png

    コラム

    本チュートリアルでは実装の簡易化のために、JSONエディタでの変数の追加方法を紹介しています。
    JSONエディタ上から変数を追加する場合、確認ダイアログが表示され「OK」をクリックすると、テーブルヘッダ用の多言語変数の紐付けが外れます。
    多言語変数の紐付けを維持したい場合は、JSONエディタではなく、変数タブの「新規作成」ボタンから変数を追加してください。
    ../../../_images/csv_import_option_12.png

    次に、もう一度「JSON形式で編集」アイコンをクリックして、$variable.state 配下に以下の変数を追加してください。
    "csvImport": {
      "fileKey": "",
      "errorMessage": ""
    }
    
    ../../../_images/csv_import_option_13.png

    次に、「変数」タブからプルダウンで「定数」を選択し、「JSON形式で編集」アイコンから $constant 配下に以下の定数を追加してください。
    "msgImportCsvSuccess": "Import CSV successful."
    
    ../../../_images/csv_import_option_14.png

    コラム

    本チュートリアルでは実装の簡易化のために、定数で用意していますが、作成されたアプリケーションを複数のロケールで利用される場合は、多言語変数を使用してください。

  2. 新規アクションの追加
    1. Import CSV アクション
      アクション名には「Import CSV」と入力してください。
      「標準」から「変数○に○を代入する」アクションアイテムを配置して、以下のように設定してください。
      項目 指定する値 備考
      変数値1 $variable.endPoint.importCsv.requestData.fileKey  
      変数値2 $variable.state.csvImport.fileKey プルダウンから「変数値」を選択してください。

      「IM-LogicDesigner」から「IM-LogicDesigner フロールーティング○にリクエストを送信する」アクションアイテムを配置して、以下のように設定してください。
      項目 指定する値 備考
      ルーティング accel-studio-app/{IDの決定に利用する文字列}/import-csv 「CSVインポート処理」で検索してください。
      リクエストパラメータ $variable.endPoint.importCsv.requestData  
      レスポンスデータ $variable.endPoint.importCsv.responseData  
      セキュアトークンを送信する チェックを入れる  

      「標準」から「変数○に○を代入する」アクションアイテムを配置して、以下のように設定してください。
      項目 指定する値 備考
      変数値1 $variable.state.csvImport.errorMessage  
      変数値2 $variable.endPoint.importCsv.responseData.errorMessage プルダウンから「変数値」を選択してください。
      ../../../_images/csv_import_option_15.png

      「標準」から「メッセージをエラーダイアログで表示する」アクションアイテムを配置して、以下のように設定してください。
      項目 指定する値
      変数値 $variable.state.csvImport.errorMessage

      「実行条件」内の「標準」から「変数○が○でないとき」を配置して、以下のように設定してください。
      項目 指定する値 備考
      変数値1 $variable.state.csvImport.errorMessage  
      変数値2 $env.const.null プルダウンから「変数値」を選択してください。

      「標準」から「アクション○を実行する」アクションアイテムを配置して、プルダウンから「Load Table Data」を選択してください。

      「実行条件」内の「標準」から「変数○が○のとき」を配置して、以下のように設定してください。
      項目 指定する値 備考
      変数値1 $variable.state.csvImport.errorMessage  
      変数値2 $env.const.null プルダウンから「変数値」を選択してください。

      「Bulma」から「メッセージ○を表示する」アクションアイテムを配置して、以下のように設定してください。
      項目 指定する値
      変数値 $constant.msgImportCsvSuccess
      メッセージのタイプ success

      「実行条件」内の「標準」から「変数○が○のとき」を配置して、以下のように設定してください。
      項目 指定する値 備考
      変数値1 $variable.state.csvImport.errorMessage  
      変数値2 $env.const.null プルダウンから「変数値」を選択してください。
      ../../../_images/csv_import_option_16.png

      アクションアイテムの設定後、「決定」をクリックしてアクションを保存してください。

  3. コンテナページの追加
    新規にコンテナページを追加し、「コンテナページ」のエレメント固有の「name」には「Input Area」と入力してください。
    ../../../_images/csv_import_option_17.png

  4. 既存エレメントのコピー
    コンテナ「Table Operation」の「フレックスコンテナ」を選択した状態で、「コピー」をクリックしてください。
    ../../../_images/csv_import_option_18.png

    その後、先ほど作成したコンテナ「Input Area」に、コピーしたエレメントを貼り付けてください。
    ../../../_images/csv_import_option_19.png

  5. コピーしたエレメントの編集
    左の「フレックスアイテム」に、「フォーム部品」から「ファイルアップロード」エレメントを配置してください。
    「ファイルアップロード」のエレメント固有には以下を設定してください。
    プロパティ 指定する値
    value $variable.state.csvImport.fileKey
    accept .csv
    ../../../_images/csv_import_option_20.png

    右の「フレックスアイテム」内の「ボタン要素」のエレメント固有には以下を設定してください。
    プロパティ 指定する値 備考
    textContent Import CSV 固定値を選択してください。
    disabled = !$variable.state.csvImport.fileKey 変数値を選択してください。
    leftIconClass 空欄 元々設定されていた「fas fa-plus」を削除してください。
    ../../../_images/csv_import_option_21.png

    「ボタン要素」のイベントの「クリック時」には先ほど作成したアクション「Import CSV」を設定してください。
    ../../../_images/csv_import_option_22.png

    「ボタン」のイベントの「クリック時」に設定されている「Transition to Register Screen」アクションを「なし」に変更してください。
    ../../../_images/csv_import_option_23.png

  6. 追加したコンテナページの配置
    「パーツ」から「コンテナページ埋め込み」エレメントをコンテナ「Overall」に配置してください。
    「コンテナページ埋め込み」エレメントの「page」には、作成した「Input Area」を指定してください。
    ../../../_images/csv_import_option_24.png

  7. 編集内容の保存
    最後に編集内容の保存を行います。画面左上の「上書き保存」をクリックしてください。
    ../../../_images/csv_import_option_25.png

5.3.2.2.3. 「CSVインポート」機能の使用例

チュートリアルで追加した「CSVインポート」機能の使用例を紹介します。

コラム

アプリケーションの認可設定については、「 Accel Studioのテンプレート 」を参照してください。

5.3.2.2.3.1. 一覧画面

「一覧画面」では、CSVファイルをインポートできます。
「ファイルアップロード」エレメントをクリックし、CSVファイルを選択した後、「Import CSV」ボタンをクリックするとインポートが実行されます。
../../../_images/csv_import_option_26.png

5.3.2.3. 「CSVインポート」テンプレートから作成される資材

「CSVインポート」テンプレートは、CSVファイルをインポートし アプリケーション作成時に指定したテーブルへデータを登録する処理が作成されます。
処理はIM-LogicDesignerで作成されます。

5.3.2.3.1. CSVインポート処理

5.3.2.3.1.1. ルーティングURL

accel-studio-app/{IDの決定に利用する文字列}/import-csv

コラム

REST APIとして利用するためのURLについては、「 IM-LogicDesigner仕様書 」 - 「 ルート・HTTPメソッドに一致するフロールーティング情報の取得 」を参照してください。

5.3.2.3.1.2. メソッド

POST

5.3.2.3.1.3. 入力値

{
  "fileKey": ""
}
変数名 説明
fileKey string インポートするCSVファイルを一意に特定するキーを指定します。

コラム

fileKey にはIM-BloomMakerの「ファイルアップロード」のエレメント固有の value に指定した値を設定してください。
詳細については、「 IM-BloomMaker for Accel Platform ユーザ操作ガイド 」 - 「 ファイルアップロード 」を参照してください。

5.3.2.3.1.4. 出力値

{
  "error": false,
  "errorMessage": ""
}
変数名 説明
error boolean エラーが発生した場合、true が格納されます。
errorMessage string エラーが発生した場合、エラー内容のメッセージが格納されます。

コラム

エラーハンドリングの詳細については、「 IM-LogicDesigner チュートリアルガイド 」 - 「 処理結果情報の詳細 」を参照してください。

5.3.2.3.2. 「CSVインポート」テンプレートから作成される処理について

「CSVインポート」テンプレートではユーザ定義(CSV Fetch)を利用しています。
ユーザ定義(CSV Fetch)の詳細については、下記を参照してください。