0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Wagby EE Tips #1] サブモデルを利用した外部から連携されるCSVファイルのアップロード更新

Last updated at Posted at 2024-04-05

はじめに

Wagby EE は、(株)ジャスミンソフトが提供する国産のローコード開発プラットフォームです。

JDK をインストールしている環境であれば Wagby Designer (開発ツール)から Webアプリケーションを自動生成することができます。

筆者は業務で Wagby EE で開発や保守を行うことが多いのですが、知っておくと役に立ちそうなトピックを不定期で公開していこうと思います。

初回はアップロード更新に関するTipsを紹介します。

実現したいこと

  • 既に設計されている顧客モデルに対して新規でアップロード更新を実装したい
  • アップロードするファイルは、特定の外部システムが出力するCSVファイルを想定

考え方と実装

既存モデルとアップロードファイルの項目名が異なる場合、既存モデルのアップロード画面を有効にするだけでは対応できません。この場合、既存モデルのサブモデルを作成し項目名をアップロードファイルの項目名に合わせることで対応可能となります。

ここからは実際に Wagby Designer の画面を用いて説明します。

既存の顧客モデル

「顧客ID」「顧客名称」「顧客カナ」「会社名称」「電子メール」「電話番号」「業種」の7項目が定義されています。
また、主キーの「顧客ID」は「順序を利用する」を無効としており、自動採番は行われないものとします。

アップロードするCSVファイル

今回は外部システムが出力するCSVの一例として、Excelのテンプレート「基本的な顧客の連絡先リスト」を利用します。

1行目に記載されている項目名は「顧客 ID」「会社名」「連絡先名」「請求先住所」「市区町村」「都道府県」「郵便番号」「国/地域、連絡先の役職」「電話番号」「FAX 番号」「電子メール アドレス」「メモ」となっています。
image.png

アップロード対象項目の決定

CSVファイルの項目のうち、顧客モデルに反映したい項目を決定します。
今回は以下の表に記載した項目をアップロード対象とします。

CSVファイルの項目名 対応する顧客モデルの項目名
顧客 ID 顧客ID
連絡先名 顧客名称
会社名 会社名称
電子メール アドレス 電子メール
電話番号 電話番号

サブモデルの作成

モデル一覧画面から顧客モデルをもとにサブモデルを作成します。サブモデルには顧客モデルのその時点での定義がコピーされます。ここでは、サブモデルのモデル名は「顧客アップロード用モデル」とします。

サブモデルの設定

まず、前述の表の通りにサブモデルの項目名をCSVファイルの項目名に合わせて変更します。

次にアップロード更新画面を用意します。
「画面」>「アップロード」とタブを選択した後に以下の設定を行います。

  1. 「画面を作成する」にチェックを入れ、アップロード更新画面を有効化します
  2. ページタイトルを "顧客情報アップロード更新" に設定します

また他のタブ(「検索・一覧表示」、「詳細表示」など)については、全て「画面を作成する」のチェックを外します。これで顧客アップロード用モデルはアップロード更新専用のモデルとなります。

ビルド実行

以上で Wagby Designer での設定は完了です。
ビルドを実行して Web アプリケーションを生成します。

さいごに

本記事では、外部システムが出力したCSVファイルをアップロードする方法として、サブモデルを利用した考え方を紹介しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?