目次
ここではPlatioのテンプレートである写真日報テンプレートを利用して、PlatioGetコンポーネントを使ってレコードを取得し、ASTERIA WarpでCSVファイルを作成する手順を説明します。
具体的には、Platioコンポーネントで(1レコードずつループ処理は行わず)まとめてレコードを取得し、CSVファイルを作成します。
では、さっそく試していきましょう!
事前準備
ミニアプリのユーザーの確認
写真日報テンプレートでサンプルユーザーを設定すると、下記のユーザーが登録されます。
・user1
・user2(管理者)
準備として以下の操作を行います。
・PlatioStudioの管理メニューの「ユーザー」からuser2(管理者)の「APIでのアクセスを許可する」にチェックを入れる。
・開発者向け情報からAPIトークンを取得して、ASTERIA WarpでPlatioコネクションを作成する。
※手順はレシピ集「[[ASTERIA Warp]Platioコンポーネントでのデータ連携:概要と事前準備]」を参照してください。
レコード取得して作成するCSVファイルのフィールド
こちらは写真日報データポケットに登録されたレコードリストです。
以下は写真日報データポケットのレコードのフィールドです。
"報告日時","報告者","タイトル","画像","備考"
「画像」は手書き画像フィールドを使用しています。今回、ASTERIA WarpのPlatioGetコンポーネントで添付ファイルとして、このフィールドの画像を取得します。
PlatioGetコンポーネントで全てのフィールドを取得して、下記のようなCSVファイルをフローで作成していきます。また、Platioから取得した添付ファイルはフォルダーに格納するため、CSVファイルの画像フィールドにはそのフォルダーのファイルパスが出力されます。
<CSVファイルの例>
"報告日時","報告者","タイトル","画像","備考"
"2023-12-01T14:45:22.000 JST","user1","タイトル1","C:\\asteriahome5\\home\\sample\\photo\\photo1.jpg","備考1"
"2023-12-01T14:45:22.000 JST","user2","タイトル2","C:\\asteriahome5\\home\\sample\\photo\\photo2.jpg","備考2"
"2023-12-01T14:45:22.000 JST","user1","タイトル3","C:\\asteriahome5\\home\\sample\\photo\\photo3.jpg","備考3"
フローを作成する
ここからはフローデザイナーへログインし、下記の手順でPlatioGet, Mapper, FilePutの各コンポーネントを配置して、Platioにレコードを取得用のフローを作成していきます。
※前提としてプロジェクト、Platioコネクションは作成済みです。
コンポーネントのを配置
コネクションペインからPlatioコネクションをドラッグ&ドロップし、PlatioGetコンポーネントを選択して配置します。プロパティ「コネクション名」の設定を省略できます。
配置後、PlatioGetコンポーネントプロパティで「ループを開始」を「いいえ」に変更します。
今回はPlatioに登録されているレコードに添付ファイルがあるため、同プロパティの「添付データ保存先」にフォルダー名を指定します。今回は「photo」※と記入します。
※フロー実行時に指定のフォルダーが存在しない場合は、そのフォルダーが新規作成されます。
次にMapperコンポーネントを配置して、出力ストリームを「CSV」に変更します。
その後、FilePutコンポーネントを選択して配置し、最後にEndコンポーネントを配置します。
ストリームの定義
PlatioGetコンポーネントをダブルクリックしてビルダーを起動します。
左に表示されたデータポケット「写真日報」をクリックします。
※ビルダー画面の詳細は、PlatioGetコンポーネントヘルプの「Platioビルダーの使い方」を参照してください。
フィールド定義が表示されるので、以下のキャプチャのように値を追加するフィールドのチェックを「オン」にします。今回は「画像」フィールドを添付ファイルとして取得します。「保存」をクリックして、設定は完了です。
これで、先ほどPlatioビルダーで選択したフィールドが、PlatioGetコンポーネントのストリームペインのフィールドに自動で定義されました。
Mapperコンポーネントにも同じフィールド定義を利用するため、PlatioGetコンポーネントのストリームペインの右クリックメニューで「CSVで編集」をクリックします。
表示されたフィールド定義のすべての行をコピーします。
Mapperコンポーネントのストリームペインでも同様に右クリックメニューで「CSVで編集」を選択し、以下のように表示された画面にコピーの内容をペーストします。ここでコピーしてきた「報告者.name」を「報告者」と変更しておきます。最後に「OK」をクリックして保存します。
これでMapperコンポーネントのフィールド定義ができました。
つぎに、Mapperコンポーネントのストリームプロパティを変更します。「+」ストリーム型を展開してプロパティ「先頭行のフィールド名を出力」を「はい(フィールド名を囲む)」に変更します。
Mapperコンポーネントをダブルクリックして画面を開き、左の入力ストリーム(PlatioGetコンポーネントで定義したフィールド)から、右の出力ストリーム(FilePutコンポーネント)にマッピングします。
FilePutコンポーネントのプロパティ「ファイルパス」に保存先のファイル名を設定します。
ここでは、「日報取得」フォルダーに年月日を含めた「報告_yyyy-MM-dd.csv」というファイル名を生成するMapper関数を利用します。
Now関数、FormatDateStd関数、Embed関数の順で接続してファイルパスに挿入します。この時、FormatDateStd関数には「日付フォーマット」プロパティに「yyyy-MM-dd」と直接入力します。
また、Embed関数には「データ」プロパティに「日報取得/報告_${input1}.csv」と入力します。
ヒント${inputN}(Nは入力のインデックス)は、Embed関数において入力値の埋め込みができます。 今回は以下のような流れでファイルパスを動的に指定しています。
|
Mapperコンポーネントを閉じてフローを保存し、メッセージで正常に保存されたことを確認します。
以上でフロー作成が完了しました。
では実際にフローを動かして動作結果を確認してみましょう!
フローの実行する
上部メニューの「実行」をクリックして表示された画面で「実行」をクリックし、フローを実行します。正常に終了したことを確認します。
フローデザイナーでCSVファイルを確認する
ファイルペインを見ると「photo」と「日報取得」の2つのフォルダーが作成されました。
「photo」を開くと、PlatioGetコンポーネントで添付ファイルとして取得してきた画像フィールドのデータが保存されています。またファイル名をダブルクリックすると画像の確認ができます。
つぎに「日報取得」を開くと、実行日を含めた「報告_yyyy-MM-dd.csv」というファイル名のCSVが作成されたことが確認できます。
こちらもダブルクリックするとCSVファイルの内容を確認することができます。
ヒント今回のフローでは1回のみの実行を想定しています。このフローを再度実行した場合、以下のキャプチャのようにPlatioから取得した画像フィールドのファイルパスが空になってしまいます。これは、PlatioGetコンポーネントの基本プロパティで「上書き処理」が「上書きしない」の場合に、再度実行して取得した同じファイル名の画像を上書きせず保存されないためです。 解決策としては、プロパティ「上書き処理」を「上書きする」に変更してください。これにより、複数回実行した際に取得した添付ファイルは上書きして保存されてファイルパスが空にならず出力されます。 |
APIリクエスト回数
一定時間内に使用できるリクエストの回数には、いくつかの制限があるため、登録するレコード回数が多い時にはリクエスト回数に注意が必要です。
APIリクエスト回数は、以下のようにPlatio Studioの開発者向け情報で参照できます。
リクエスト回数について詳しくは、Platio開発者ドキュメントの「Platio API プログラミングガイド」の「制限」を参照してください。
PlatioPutコンポーネントでのリクエスト回数の仕様については、コンポーネントガイドの「Platio APIリクエスト回数」の項を参照してください。