CSV (Comma Separated Values) は、セルの値を "," 記号で区切った表形式で保存するものです。セパレータは", "の代わりに他の文字も使用できます。ただし、AppMaster はカンマを必要とします。

この文字がセル内に入らないようにすることが重要です。さもないと、ファイルデータが正しく読み込まれません。

まず、CSVファイルからの情報を保存するデータモデルを作成します。例えば、フライトのデータモデルを作成します。データモデルには、以下のフィールドが含まれます。

  • flight_no- フライト番号、整数値形式。
  • destination- 文字列形式の 目的
  • classes - このフライトで利用可能なフライトクラス、array[string] 形式。

インポートされるファイルの例です。

最初のカラムには flight_no 2番目は destination そして3番目には classes.

3 列目では、値はセミコロンで区切られています。

ビジネスプロセスの作成

を含む。 Business Logic タブをクリックし Create Business Process ボタンをクリックします。

このビジネス・プロセスはCSVファイルを必要とするので、ファイル・フィールドを Start ブロックに追加します。

次に Read CSV ファイル・ブロックが必要です。

同様に、Read XLS file およびRead XLSX file ブロックを使用して、対応する形式を 指定することができます。

Read CSV file ブロックの仕組み

これには2つの出力コネクタがあります。 Each RowCompleted. ブロックが起動されると、ファイルを一行ずつ読み込み、そのたびに Each Row コネクタをアクティブにして、行番号(Row number、1 から始まる)と Row Columns(現在の行のすべての列の文字列配列)を渡します。

からファイルを渡します。 Start ブロックから Read CSV file ブロックに渡します。

次に For Each Loop ブロックを追加します。を送信する文字列配列を処理します。 Read CSV file ブロックを作成します。

については Each Loop と同じように Read CSV file, は配列の各要素を処理し、それぞれに対してコネクタを起動します。 Loop Body コネクタをそれぞれ起動します。

For Each Loop ブロックのインデックス出力フィールドは、配列要素のインデックス番号です。 0から始まります。

すべてのコネクタを接続します。

次のブロックは Switch.このブロックの助けを借りて、さまざまなフィールドの値をどこに書き込むかを決定します。

Switch はあらゆるタイプの入力を受け入れ、それに応じて異なる出力コネクタをアクティブにすることができます。その Default コネクタは、入力値が作成されたコネクタのどれとも一致しない場合にアクティブになります。

CSV ファイルには 3 つの列があります。つまり、各 Row columns 配列には 3 つの値が、常に同じ順序で格納されています。

  1. 番号
  2. の順になります。
  3. クラスです。

したがって、3つの出力コネクタを Switch ブロック 0, 1, 2 を作成し、そのインデックスを For Each Loop ブロックから Switch ブロックに渡します。

ファイルの最初の列には、フライト番号が含まれています。しかし、この For Each Loop ブロックが取得するのは string のフォーマットで取得します。そのため,保存する前に,ブロックを使って整数に変換します。 To integer ブロックを使って整数に変換してから保存します。その後、変数に保存します。 Set variable ブロックを使って変数に保存します。

ファイルの2列目には、方向が string の形式で保存します。すぐに変数に保存することができます。

ファイルの3列目には、セミコロンで区切られたクラスのリストが含まれています。この For Each Loop ブロックはそれを文字列のフォーマットで取得することもできます。そこで、それを文字列の配列に分割します。これを行うには Split String ブロックを使います。文字列にクラスのリストを渡して、デフォルトのセパレータとして ";" を設定しましょう。

受信した値を変数に保存します。

各行のすべての列の値を通してのループ設定が終了します。

ファイルの各行からエントリを作成する必要があります。ここでは、完成した出力コネクタを For Each Loop ブロックと Make flight ブロックを使ってこれを行います。サイクル中に受け取ったすべての変数を、それに転送しましょう。

ここで、作成したモデルを保存するには Make flight を使って DB Create flight ブロックを使って作成したモデルを保存します。

こうして、各行が1レコードとしてデータベースに保存される。

あとは、ファイルの処理を終わらせるだけです。ここでは completed の出力コネクタを Read CSV file ブロックに接続し、それを End ブロックに接続します。

ファイルからインポートするBPは終了。

Endpoint 設定

Endpoints タブに移動し、新しいエンドポイントを作成します。

を選択します。 POST メソッドを設定し URL アドレスを選択し Flight group を選択し、作成したBP Import CSV.

フロントエンドにボタンを設置する

次に、ファイルをアップロードするためのボタンをフロントエンドにセットアップする必要があります。

をドラッグします。 File picker 要素をキャンバス上にドラッグします。

そして、そのためのBPをセットアップします。

を使用します。 onSelectfiles トリガーを使用します。このトリガーは、ファイルが1つしかない場合でも、ファイルを配列として受け取ります。したがって、 Array Element ブロックを使って、配列から1つの要素を取得することになります。配列から最初の要素を取得するために、indexフィールドを0に設定しましょう。

では、アップロードされたファイルをデータベースに保存するために **Server request POST /_files/**ブロックを使ってアップロードしたファイルをデータベースに保存します。

できたファイルを Expand fileブロックを使ってファイルを展開します。

次に、 ID(この場合はファイルです)を Server request **POST /flight/csv/**ブロックに渡します。

AppMaster 101速習コース

10 モジュール
2 週間

どこから始めればよいかわからない場合は、初心者向けの速習コースから始めて、AppMasterをAからZまで探索してください。

開始する
AppMaster 101 Crash Course

さらにサポートが必要ですか?

専門家のサポートで、あらゆる問題を解決できます。時間を節約し、アプリケーションの構築に集中できます。

headphones

サポートに問い合わせる

問題の内容をお知らせください。解決策をご案内します。

message

コミュニティチャット

他のユーザーとつながり、プラットフォームの利用について相談できます。

コミュニティに参加
CSVインポート | AppMaster University