SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
小巻 旭洋 ¦ 株式会社フルーデンス ¦ 2021-08-21
WebビューアやURLから挿入ス
テップの使いどころの考察
目次
• Webビューア
• Webビューアを使う目的
• Webビューアのまとめ
• URLから挿入ステップ(curlコマンド)
• curlを使う際に知っておくと良いこと1
• curlを使う際に知っておくと良いこと2
• curlで頑張って実装しないこと
はじめに
• 私が個人的に感じたことなので、参考程度に聞いて頂ければと思います。
• お客様に納品することを前提に考えています。
• なるべく安定して使えるように。
• 間違っている点があれば、ご指摘お願いします。。
• 「私は⃝⃝を気をつけているよ。」という点があれば、教えていただきたい
です。
きっかけ
Webビューア
Webビューアを使う目的
• FileMakerの苦手な部分を補う使い方(主にJavaScriptライブラリ)
• ビューアとしての使い方
• スクレイピング(WebサイトにAPIがない場合)
• WebビューアのJavaScriptエンジンを計算に活用
Webビューアを使う目的
• グラフ -> Chart.js / Amazon QuickSight
• ピボットテーブルなどの計算 -> PivotTable.js / Amazon QuickSight
• ポータルでフィルタリングやソート -> Grid.js / Cheetah Grid / Grid関連
• ポータルの列の並び替え -> Grid.js / Grid関連
• カレンダー表示 -> FullCalendar
• QRコードやバーコードの生成 -> qrcode.js / JsBarcode
FileMakerの苦手な部分を補う使い方(主にJavaScriptライブラリ)
Webビューアを使う目的
• ドラッグ&ドロップで並び替え -> JavaScript(@p388cellさん)
• 音声を再生, カメラ -> JavaScript(若林さん)
• レスポンシブレイアウトのような表現 -> CSS
• お絵描きツール -> Fabric.js
• ICTツール -> Twilio
FileMakerの苦手な部分を補う使い方(主にJavaScriptライブラリ)
Webビューアを使う目的
• 実現するには…
• JavaScriptのライブラリを利用
• アドオンの利用
FileMakerの苦手な部分を補う使い方(主にJavaScript)
Webビューアを使う目的
• 課題や考慮すること…
• 各ライブラリのバージョンを最新にしていると動かなくなる可能性がある。
• FileMakerのバージョンと「FileMaker.PerformScriptWithOption」に注
意。
• 大きなバイナリファイルのやりとりやPSOSの引数の制限などにも注意。
• リソースをCDNから取得していて、ロードに時間がかかる場合に「定義し
ていない変数がある。」などのエラーが発生する可能性がある。
FileMakerの苦手な部分を補う使い方(主にJavaScript)
Webビューアを使う目的
• PDFやメディアなどのビューア
• Googleマップなどの埋め込む機能があるWebサイトの表示
ビューアとしての使い方
Webビューアを使う目的
• 特定のWebサイトのソースを取得したい。
• (例)取引先が公開しているWebサイトにログインし、CSVをダウンロードし
て、FileMakerに取り込みたい。
スクレイピング(WebサイトにAPIがない場合)
Webビューアを使う目的
• 実現するには…
• MBSプラグインの活用
• 即時関数(即時実行関数式)の活用
• AppleScriptを活用
• GetLayoutObjectAttribute ( "Webビューア" ; "content" ) を活用
スクレイピング(WebサイトにAPIがない場合)
Webビューアを使う目的
• 実現するには…
• スクレイピング用のツールやライブラリを活用
• Puppeteer(Node.js)、Selenium(Python)などを使う。
• なぜ、Webビューアを使わないのか?
• Webビューアでアクセスして、正常に表示されないケースがある。
• CSVファイルをダウンロードして、そのCSVファイルにアクセスして…などの処理を
FileMakerで書くのは大変。
• 実現したいことによるが、専用のツールを使う方が、情報も多く効率が良い。
スクレイピング(WebサイトにAPIがない場合)
Webビューアを使う目的
• 課題や考慮すること…
• Webサイトのコードが突然変わることがあるため、エラー処理に気をつける必要がある。
• エラーが発生した場合、Slackに通知するなど、エラーに気づく環境を整える必要がある。
• Webビューアからのアクセスだと、Webサイト側で、アクセスを制御される可能性がある。
• 長期的に見て、Webビューア関連の更新時に、影響をうける可能性がある。
• 実装方法によっては、将来動かなくなる可能性がある。
• コードに認証情報などは保存しないこと。
• 規約を確認すること。数秒ごとにアクセスするなどマナーにも気をつけること。
スクレイピング(WebサイトにAPIがない場合)
Webビューアを使う目的
• 課題や考慮すること…
• https://www.digitalboo.net/post/3571/fm-wp-webview/amp
• https://www.digitalboo.net/post/2358/fm16-notdrag
スクレイピング(WebサイトにAPIがない場合)
Webビューアを使う目的
• どうやってFileMakerと連携するのか…
• AWS Lambda や Cloud Functions を活用するとよい。
スクレイピング(WebサイトにAPIがない場合)
Webビューアを使う目的
• APIの戻り値のJSONをフィルターしたい。
• 大きなJSONのパースや計算を高速化したい。
• 「FileMaker Data API を実行」の戻り値を活用したい。
• 動的なJSON(Gmailのレスポンスなど)をパースしたい。
WebビューアのJavaScriptエンジンを計算に活用
Webビューアを使う目的
• 実現するには…
• WebビューアのJavaScriptエンジンはFileMakerよりも速いのか?
• WebビューアのJavaScriptエンジンとFileMakerの比較。
• 即時関数を活用する。
• Webダイレクトでは機能しないかもしれない。
WebビューアのJavaScriptエンジンを計算に活用
Webビューアを使う目的
• 課題や考慮すること…
• FileMaker.PerformScriptWithOptionの使い方に注意。
• オプションを理解すること。
• 必要があれば、非同期関数を理解すること。
WebビューアのJavaScriptエンジンを計算に活用
デモ
• FileMakerでスクレイピング
• Puppeteerでスクレイピング
• JavaScriptエンジンとFileMakerの比較
Webビューアのまとめ
• スクレイピングなど、外部のデータにアクセスするような場合は、Webビュ
ーアを使うことはお勧めしない。
• 少し勉強が必要ですが、スクレイピング用のツールやライブラリを活用する
ことをお勧めします。
• JavaScriptエンジンは高速なので、大きめのJSONを取り扱う場合など、活用
したい。
• 即時関数が便利。
おまけ
• Amazon QuickSight(BIツール)を活用することが増えた。
• 安価で、Webビューアに埋め込みもできる。
• FileMakerは必要になるCSVファイルをS3にアップロードするだけで良い。
• QuickSightがS3のCSVデータを定期的に最新の状態に更新してくれる。
• 集計する機能が不要になることもある。
見栄えの良いグラフが欲しいのか?数字を分析するためのグラフが欲しいのか?
URLから挿入ステップ
(curlコマンド)
curlを使う際に知っておくと良いこと 1
• デバッグ方法について
• APIのログファイルは、別ファイルに分割する方が良い。
• サイズが大変なことになる。
• APIやJSONの練習には、以下のWebサイトがお勧め。
• https://httpbin.org
• https://badssl.com
• https://github.com/public-apis/public-apis
curlを使う際に知っておくと良いこと 2
• スクレイピングと同様で、APIの仕様が変更される可能性があるので、エラー処理を
実装すること。
• Googleのフリープランのアプリに回数制限がかかるようになったことなど。
• AWSの障害など、正常にAPIが実行できないケースを考慮すること。
• エラーに気づける環境を準備する。
• サーバーサイドで実行する場合、ローカルでファイルを開いておく必要があること。
• 規約を確認し、回数制限など確認すること。
curlで頑張って実装しないこと
• シェルスクリプトでプログラミングをしているようなものなので、curlで頑張
って実装するより、ライブラリを活用する方が効率が良い。
• APIのドキュメントにcurlのサンプルがない場合も多い。
• ライブラリのドキュメント、バージョンアップ時の移行方法など、一般的なプ
ログラミング言語を一つ覚える方が効率が良い。
• 習得が難しいのであれば、Claris Connectなどを使う方が良い。
デモ
• curlの --show-error オプション
終わり
• FileMakerやOSのアップデートと同様に、APIも定期的にアップデートされる
ことを考慮しておく。
• ガッツリWebビューアを組み込みすぎると、将来、大変になる可能性があ
る。
• お客様にも、背景を伝える必要がある。

Más contenido relacionado

La actualidad más candente

初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか
初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか
初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのかTechon Organization
 
my$talk=qr{((?:ir)?reg(?:ular )?exp(?:ressions?)?)}i;
my$talk=qr{((?:ir)?reg(?:ular )?exp(?:ressions?)?)}i;my$talk=qr{((?:ir)?reg(?:ular )?exp(?:ressions?)?)}i;
my$talk=qr{((?:ir)?reg(?:ular )?exp(?:ressions?)?)}i;dankogai
 
レコメンドアルゴリズムの基礎と「B-dash」におけるシステム構成の紹介
レコメンドアルゴリズムの基礎と「B-dash」におけるシステム構成の紹介レコメンドアルゴリズムの基礎と「B-dash」におけるシステム構成の紹介
レコメンドアルゴリズムの基礎と「B-dash」におけるシステム構成の紹介Takeshi Mikami
 
リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計Mikiya Okuno
 
現場で使えるDynamoDBと冪等デザインパターン
現場で使えるDynamoDBと冪等デザインパターン現場で使えるDynamoDBと冪等デザインパターン
現場で使えるDynamoDBと冪等デザインパターンcmaraiyusuke
 
アサヒのデータ活用基盤を支えるデータ仮想化技術
アサヒのデータ活用基盤を支えるデータ仮想化技術アサヒのデータ活用基盤を支えるデータ仮想化技術
アサヒのデータ活用基盤を支えるデータ仮想化技術Denodo
 
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)Yoshitaka Kawashima
 
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介ippei_suzuki
 
ブルックスのいう銀の弾丸とは何か?
ブルックスのいう銀の弾丸とは何か?ブルックスのいう銀の弾丸とは何か?
ブルックスのいう銀の弾丸とは何か?Yoshitaka Kawashima
 
データベース設計徹底指南
データベース設計徹底指南データベース設計徹底指南
データベース設計徹底指南Mikiya Okuno
 
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来増田 亨
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説murachue
 
ドメインモデルの育て方
ドメインモデルの育て方ドメインモデルの育て方
ドメインモデルの育て方増田 亨
 
推薦アルゴリズムの今までとこれから
推薦アルゴリズムの今までとこれから推薦アルゴリズムの今までとこれから
推薦アルゴリズムの今までとこれからcyberagent
 
PostgreSQL のイケてるテクニック7選
PostgreSQL のイケてるテクニック7選PostgreSQL のイケてるテクニック7選
PostgreSQL のイケてるテクニック7選Tomoya Kawanishi
 
Rで階層ベイズモデル
Rで階層ベイズモデルRで階層ベイズモデル
Rで階層ベイズモデルYohei Sato
 
ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回Naoyuki Yamada
 
SQLアンチパターン~スパゲッティクエリ
SQLアンチパターン~スパゲッティクエリSQLアンチパターン~スパゲッティクエリ
SQLアンチパターン~スパゲッティクエリItabashi Masayuki
 
Data Engineering Meetup #1 持続可能なデータ基盤のためのデータの多様性に対する取り組み
Data Engineering Meetup #1 持続可能なデータ基盤のためのデータの多様性に対する取り組みData Engineering Meetup #1 持続可能なデータ基盤のためのデータの多様性に対する取り組み
Data Engineering Meetup #1 持続可能なデータ基盤のためのデータの多様性に対する取り組みcyberagent
 

La actualidad más candente (20)

初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか
初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか
初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか
 
my$talk=qr{((?:ir)?reg(?:ular )?exp(?:ressions?)?)}i;
my$talk=qr{((?:ir)?reg(?:ular )?exp(?:ressions?)?)}i;my$talk=qr{((?:ir)?reg(?:ular )?exp(?:ressions?)?)}i;
my$talk=qr{((?:ir)?reg(?:ular )?exp(?:ressions?)?)}i;
 
レコメンドアルゴリズムの基礎と「B-dash」におけるシステム構成の紹介
レコメンドアルゴリズムの基礎と「B-dash」におけるシステム構成の紹介レコメンドアルゴリズムの基礎と「B-dash」におけるシステム構成の紹介
レコメンドアルゴリズムの基礎と「B-dash」におけるシステム構成の紹介
 
リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計
 
現場で使えるDynamoDBと冪等デザインパターン
現場で使えるDynamoDBと冪等デザインパターン現場で使えるDynamoDBと冪等デザインパターン
現場で使えるDynamoDBと冪等デザインパターン
 
アサヒのデータ活用基盤を支えるデータ仮想化技術
アサヒのデータ活用基盤を支えるデータ仮想化技術アサヒのデータ活用基盤を支えるデータ仮想化技術
アサヒのデータ活用基盤を支えるデータ仮想化技術
 
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
 
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介
 
ブルックスのいう銀の弾丸とは何か?
ブルックスのいう銀の弾丸とは何か?ブルックスのいう銀の弾丸とは何か?
ブルックスのいう銀の弾丸とは何か?
 
データベース設計徹底指南
データベース設計徹底指南データベース設計徹底指南
データベース設計徹底指南
 
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
ドメインモデルの育て方
ドメインモデルの育て方ドメインモデルの育て方
ドメインモデルの育て方
 
推薦アルゴリズムの今までとこれから
推薦アルゴリズムの今までとこれから推薦アルゴリズムの今までとこれから
推薦アルゴリズムの今までとこれから
 
PostgreSQL のイケてるテクニック7選
PostgreSQL のイケてるテクニック7選PostgreSQL のイケてるテクニック7選
PostgreSQL のイケてるテクニック7選
 
Rで階層ベイズモデル
Rで階層ベイズモデルRで階層ベイズモデル
Rで階層ベイズモデル
 
ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回
 
SQLアンチパターン~スパゲッティクエリ
SQLアンチパターン~スパゲッティクエリSQLアンチパターン~スパゲッティクエリ
SQLアンチパターン~スパゲッティクエリ
 
Embulk 20150411
Embulk 20150411Embulk 20150411
Embulk 20150411
 
Data Engineering Meetup #1 持続可能なデータ基盤のためのデータの多様性に対する取り組み
Data Engineering Meetup #1 持続可能なデータ基盤のためのデータの多様性に対する取り組みData Engineering Meetup #1 持続可能なデータ基盤のためのデータの多様性に対する取り組み
Data Engineering Meetup #1 持続可能なデータ基盤のためのデータの多様性に対する取り組み
 

Similar a WebビューアやURLから挿入ステップの使いどころの考察

a-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazakia-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in OkazakiEtsushi Ishii
 
初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話Masataka Tsukamoto
 
なるほど分かった!平成最後のApp Serviceハンズオン
なるほど分かった!平成最後のApp Serviceハンズオンなるほど分かった!平成最後のApp Serviceハンズオン
なるほど分かった!平成最後のApp ServiceハンズオンTakayuki Fuwa
 
Perl Beginners #7 おとなのWAF
Perl Beginners #7 おとなのWAF Perl Beginners #7 おとなのWAF
Perl Beginners #7 おとなのWAF Munenori Sugimura
 
クラウド実践入門 クラウドを使ってみよう
クラウド実践入門 クラウドを使ってみようクラウド実践入門 クラウドを使ってみよう
クラウド実践入門 クラウドを使ってみようHiro Fukami
 
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Yusuke Wada
 
今さら聞けないWebサーバの基本知識と選び方
今さら聞けないWebサーバの基本知識と選び方今さら聞けないWebサーバの基本知識と選び方
今さら聞けないWebサーバの基本知識と選び方Endoh Shingo
 
BlazorにSwaggerを導入してみよう
BlazorにSwaggerを導入してみようBlazorにSwaggerを導入してみよう
BlazorにSwaggerを導入してみようTomomitsuKusaba
 

Similar a WebビューアやURLから挿入ステップの使いどころの考察 (9)

a-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazakia-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazaki
 
初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話
 
Osoljp201204
Osoljp201204Osoljp201204
Osoljp201204
 
なるほど分かった!平成最後のApp Serviceハンズオン
なるほど分かった!平成最後のApp Serviceハンズオンなるほど分かった!平成最後のApp Serviceハンズオン
なるほど分かった!平成最後のApp Serviceハンズオン
 
Perl Beginners #7 おとなのWAF
Perl Beginners #7 おとなのWAF Perl Beginners #7 おとなのWAF
Perl Beginners #7 おとなのWAF
 
クラウド実践入門 クラウドを使ってみよう
クラウド実践入門 クラウドを使ってみようクラウド実践入門 クラウドを使ってみよう
クラウド実践入門 クラウドを使ってみよう
 
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門
 
今さら聞けないWebサーバの基本知識と選び方
今さら聞けないWebサーバの基本知識と選び方今さら聞けないWebサーバの基本知識と選び方
今さら聞けないWebサーバの基本知識と選び方
 
BlazorにSwaggerを導入してみよう
BlazorにSwaggerを導入してみようBlazorにSwaggerを導入してみよう
BlazorにSwaggerを導入してみよう
 

WebビューアやURLから挿入ステップの使いどころの考察