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

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

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

DB example

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

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

File example

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

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

ビジネスプロセスの作成

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

Creating BP

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

Creating variable

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

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

Read CSV file ブロックの仕組み

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

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

Read CSV block

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

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

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

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

For each loop block

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

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

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

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

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

switch block

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

to integer block

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

Set variable block

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

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

Split string block

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

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

completed for each loop connector

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

DB create block

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

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

completed read csv file

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

Endpoint 設定

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

Creating endpoint

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

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

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

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

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

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

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

Server request post file

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

Expand file block

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

Using custom endpoint on frontend

Was this article helpful?

AppMaster.io 101 クラッシュコース

10 モジュール
2 週

何から始めればいいのかわからない?初心者のためのクラッシュコースで、AppMasterを隅から隅まで見ていきましょう。

コース開始
Development it’s so easy with AppMaster!

もっと助けが必要ですか?

私たちの専門家の助けを借りて問題を解決します。時間を節約し、アプリケーションの構築に集中してください。

headphones

サポート問い合わせ先

問題について教えてください。解決策を見つけます。

message

コミュニティチャット

チャットで他のユーザーと質問について話し合います。

コミュニティに参加する