目次
ここではPlatioのテンプレートである写真日報テンプレートを利用して、ASTERIA Warpから添付ファイルありレコードを作成する方法を説明します。
具体的には、ASTERIA WarpのPlatioPutコンポーネントでCSVファイルを読み込み(1レコードずつループ処理は行わず)まとめてレコードを作成します。また、レコードに添付するファイルはPlatioPutコンポーネントの「添付データ読み込み先」プロパティに設定します。
では、さっそく試していきましょう!
事前準備
ミニアプリのユーザーの確認
写真日報テンプレートでサンプルユーザーを設定すると、下記のユーザーが登録されます。
・user1
・user2(管理者)
準備として以下の操作を行います。
・PlatioStudioの管理メニューの「ユーザー」からuser2(管理者)の「APIでのアクセスを許可する」にチェックを入れる。
・開発者向け情報からAPIトークンを取得して、ASTERIA WarpでPlatioコネクションを作成する。
※手順はレシピ集「[[ASTERIA Warp]Platioコンポーネントでのデータ連携:概要と事前準備]」を参照してください。
レコード作成するCSVファイルの作成
まず、Platioに登録するレコードをCSV形式で作成します。
以下は写真日報データポケットに登録するレコードのフィールドです。
"報告日時","報告者","タイトル","画像","備考"
「報告日時」は日時フィールドを使用しているため、初期値としてミニアプリからレコード入力時の日時が自動で設定されます。今回のPlatioPutコンポーネントでは、CSVファイルで「yyyy-mm-ddThh:mm:ssZ」の形式であらかじめ日時を指定します。
ヒント今回のように日時フィールドを使用しています場合に、CSVファイルで日時を「yyyy/mm/dd hh:mm:ss」の形式で記述するとエラーが発生します。 エラーの原因は、Mapper内の入力ストリームで扱っている型がString型(文字列)に対して、出力ストリームはDatetime型になっているため「報告日時」のフィールドの値の取得に失敗してエラーが発生している。 |
「報告者」にはユーザーフィールドを使用しており、初期値としてレコード入力時のユーザーを自動で設定します。今回はCSVファイルであらかじめユーザーを登録します。
ヒント指定するユーザーはPlatio Studioでミニアプリのユーザーとしてあらかじめ登録していて有効な状態でないと、フロー実行時に「コンポーネント: PlatioPut1、指定したユーザーが存在していません。」というエラーとなります。 |
今回はメモ帳などを開き、以下で例に示したサンプルのレコードをコピー&ペーストして、records.csvというファイル名で保存します。
<CSVファイルの例>
"報告日時","報告者","タイトル","画像","備考"
"2023-11-16T14:45:22Z
","user2","タイトル1","photo1.jpg","備考1"
"2023-11-17T14:45:22Z
","user2","タイトル2","photo2.jpg","備考2"
"2023-11-18T14:45:22Z
","user1","タイトル3","photo3.jpg","備考3"
添付ファイルの用意
今回は写真日報テンプレートの「手書き画像」フィールドを添付ファイルとして使用するため、適当な写真をいくつか用意します。
ヒント「手書き画像」フィールドで添付できる拡張子は .jpg, .jpeg, .png です。また登録できる1ファイルあたりのファイルサイズの上限は50MBです。サイズを超える場合は登録時にエラーメッセージが表示されて保存されません。 |
画像の用意ができたら、photo1, photo2, photo3のようにわかりやすい名前にして、フローデザイナーのファイルペインに「attachments」というフォルダーを作成し、写真をまとめておきます。
フローを作成する
ここからはフローデザイナーへログインし、下記の手順でFileGet, Mapper, PlatioPutの各コンポーネントを配置して、Platioにレコードを追加するためのフローを作成していきます。
※前提としてプロジェクト、Platioコネクションは作成済みです。
フローデザイナーにCSVファイルをアップデート
まず、ASTERIA Warpのフローデザイナーに先ほど作成したCSVファイルをアップロードします。
方法はASTERIA Warpのファイルペインに、エクスプローラーからrecords.csvをドラッグ&ドロップします。
コンポーネントの配置
コンポーネントの配置・設定はさまざまな方法がありますが、ここではファイルペインからコンポーネントを配置してプロパティ「ファイルパス」の設定を省略します。そのため、ファイルペインからrecords.csvをドラッグ&ドロップし、FileGetコンポーネントを選択して配置します。
ヒントFileGetコンポーネントはファイルを一括で読み込んだ分のメモリを消費するため、ファイルサイズが大きい場合にはレコードの取得行数を指定できるRecordGetコンポーネントを使いましょう。 |
次にMapperコンポーネントを配置します。
コネクションペインからPlatioコネクションをドラッグ&ドロップし、PlatioPutコンポーネントを選択して配置します。プロパティ「コネクション名」の設定を省略できます。
ヒント「コンポーネント「Mapper」で定義されたストリーム定義をRecordに変換します。」という内容のメッセージが表示された場合、「はい」をクリックします。 |
最後にEndコンポーネントを配置します。
ストリームの定義
PlatioPutコンポーネントをダブルクリックしてビルダーを起動します。
左に表示されたデータポケット「写真日報」をクリックします。
※ビルダー画面の詳細は、PlatioPutコンポーネントヘルプの「Platioビルダーの使い方」を参照してください。
フィールド定義が表示されるので、以下のキャプチャのように値を追加するフィールドのチェックを「オン」にします。また、レコード作成者を指定するため「_Creator」のチェックを「オン」にします。「保存」をクリックして、設定は完了です。
これでPlatioPutコンポーネントのストリームペインにフィールドが自動で定義されました。
FileGetコンポーネントにも同じフィールド定義を利用するため、PlatioPutコンポーネントのストリームペインの右クリックメニューで「CSVで編集」をクリックします。
表示されたフィールド定義から「_Creator」の行を除いてコピーします。
FileGetコンポーネントのストリームペインでも同様に右クリックメニューで「CSVで編集」を選択し、以下のように表示された画面にコピーの内容をペーストします。「OK」をクリックして保存します。
これでFileGetコンポーネントのフィールド定義ができました。
次にFileGetコンポーネントのプロパティを変更します。プロパティの「ファイルのエンコーディング」が「自動判別」になっていると文字化けする場合があるので、以下のように「UTF-8」を指定します。
続いて、FileGetコンポーネントのストリームプロパティを変更します。
ストリームペインの「+」ストリーム型をクリックして展開すると、FileGetコンポーネントの詳細なプロパティの設定ができます。今回は以下のように「読込み開始行」を「2」に変更します。
次にPlatioPutコンポーネントの「添付データ読込先」プロパティには、レコードに添付するデータを読み込むフォルダーを指定します。今回は添付データ読込先に写真をまとめているフォルダーの「attachments」を指定します。
補足:相対パスの場合は、「添付データ読込先パスの起点」プロパティの指定したフォルダーに基づいて解釈されます。
最後にMapperコンポーネントをダブルクリックして画面を開き、左の入力ストリーム(CSVで定義したフィールド)から、右の出力ストリーム(PlatioPutコンポーネントで定義したフィールド)にマッピングします。また左の「報告者」を右のプロパティ「_Creator」にマッピングします。
Mapperコンポーネントを閉じてフローを保存し、メッセージで正常に保存されたことを確認します。
以上でフロー作成が完了しました。
では実際にフローを動かして動作結果を確認してみましょう!
フローの実行する
上部メニューの「実行」をクリックして表示された画面で「実行」をクリックし、フローを実行します。正常に終了したことを確認します。
データビュアーから追加したレコードの確認
データビューアーへログインし、写真日報データポケットのレコードリストを表示します。
レコードが添付ファイルとともに追加されたことが確認できます。
APIリクエスト回数
一定時間内に使用できるリクエストの回数には、いくつかの制限があるため、登録するレコード回数が多い時にはリクエスト回数に注意が必要です。
APIリクエスト回数は、以下のようにPlatio Studioの開発者向け情報で参照できます。
リクエスト回数について詳しくは、Platio開発者ドキュメントの「Platio API プログラミングガイド」の「制限」を参照してください。
PlatioPutコンポーネントでのリクエスト回数の仕様については、コンポーネントガイドの「Platio APIリクエスト回数」の項を参照してください。