0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FileMaker Data API を使う 2025年版 vol.9

Last updated at Posted at 2025-02-10

利用環境

以下の環境を前提に説明しています。

  • Claris FileMaker Pro 21.1.1.41 macOS
  • Claris FileMaker Server 21.1.1.40 Ubuntu 22(AMD)
  • サーバ: Ubuntu 22.04.5 LTS
  • SSL 証明書
  • リクエストする側のサーバ(任意)

開発段階では、以下を使用した方が楽でしょう。

Web ページの作成は、以下を条件とします。

  • Bootstrap v5.3.3
  • PHP 8.2.22

新しいサンプルテーブルを作る

これまで FileMaker Data API によるレコードの取得と検索を扱ってきましたが、今回から、レコードの作成、編集、削除、複製に移っていきたいと思います。
これまで使用してきた player_batting には必要のないリクエストなので、新たにサンプルテーブルを簡単につくりたいと思います。

  • テーブル名: standings
  • フィールド: mlb_site_id ... MLB 公式サイト ID
  • フィールド: year 数字 ... シーズン
  • フィールド: league テキスト ... リーグ名
  • フィールド: division テキスト ... 地区名
  • フィールド: team テキスト ... チーム名
  • フィールド: wins 数字 ... 勝利数
  • フィールド: losses 数字 ... 敗戦数
  • フィールド: winning_percentage 数字 ... 勝率
  • フィールド: runs_scored 数字 ... 得点
  • フィールド: runs_alowed 数字 ... 失点
  • フィールド: pythagorean_expectation 数字 ... ピタゴラス勝率(ピタゴリアン期待値)
  • フィールド: expected_win_loss 数字 ピタゴラス勝率から求める勝敗数
  • フィールド: winning_percentage_difference 数字 ... 勝率とピタゴラス勝率との差

FileMaker Data API には、多数のレコードを一気に作成するようなリクエストは用意されていません。
例えば、PHP でデータセットを作って、それを流し込むというようなことを Execute Script でやろうとしても、レコード作成処理が、追いつかなくなる可能性を常に、頭に入れておく必要があります。
このような管理、開発中の作業的なものは FileMaker Pro を使うべきでしょう。

ということで、この作業は、player_batting と同様に CSV を使うことにします。

standings.csv

mlb_site_id,year,league,division,team,wins,losses,runs_scored,runs_allowed
110,2024,アメリカン・リーグ,東地区,ボルチモア・オリオールズ,91,71,786,699
111,2024,アメリカン・リーグ,東地区,ボストン・レッドソックス,81,81,751,747
147,2024,アメリカン・リーグ,東地区,ニューヨーク・ヤンキース,94,68,815,668
139,2024,アメリカン・リーグ,東地区,タンパベイ・レイズ,80,82,604,663
141,2024,アメリカン・リーグ,東地区,トロント・ブルージェイズ,74,88,671,743
145,2024,アメリカン・リーグ,中地区,シカゴ・ホワイトソックス,41,121,507,813
114,2024,アメリカン・リーグ,中地区,クリーブランド・ガーディアンズ,92,69,708,621
116,2024,アメリカン・リーグ,中地区,デトロイト・タイガース,86,76,682,642
118,2024,アメリカン・リーグ,中地区,カンザスシティ・ロイヤルズ,86,76,735,644
142,2024,アメリカン・リーグ,中地区,ミネソタ・ツインズ,82,80,742,735
133,2024,アメリカン・リーグ,西地区,オークランド・アスレチックス,69,93,643,764
117,2024,アメリカン・リーグ,西地区,ヒューストン・アストロズ,88,73,740,649
108,2024,アメリカン・リーグ,西地区,ロサンゼルス・エンゼルス,63,99,635,797
136,2024,アメリカン・リーグ,西地区,シアトル・マリナーズ,85,77,676,607
140,2024,アメリカン・リーグ,西地区,テキサス・レンジャーズ,78,84,683,738
144,2024,ナショナル・リーグ,東地区,アトランタ・ブレーブス,89,73,704,607
146,2024,ナショナル・リーグ,東地区,マイアミ・マーリンズ,62,100,637,841
121,2024,ナショナル・リーグ,東地区,ニューヨーク・メッツ,89,73,768,697
143,2024,ナショナル・リーグ,東地区,フィラデルフィア・フィリーズ,95,67,784,671
120,2024,ナショナル・リーグ,東地区,ワシントン・ナショナルズ,71,91,660,764
112,2024,ナショナル・リーグ,中地区,シカゴ・カブス,83,79,736,669
113,2024,ナショナル・リーグ,中地区,シンシナティ・レッズ,77,85,699,694
158,2024,ナショナル・リーグ,中地区,ミルウォーキー・ブリュワーズ,93,69,777,641
134,2024,ナショナル・リーグ,中地区,ピッツバーグ・パイレーツ,76,86,665,739
138,2024,ナショナル・リーグ,中地区,セントルイス・カージナルス,83,79,672,719
109,2024,ナショナル・リーグ,西地区,アリゾナ・ダイアモンドバックス,89,73,886,788
115,2024,ナショナル・リーグ,西地区,コロラド・ロッキーズ,61,101,682,929

スクリーンショット 2025-02-11 4.02.07.png

MLB は全30球団ですが、3球団は後で、FileMaker Data API を使って入力するので、この CSV は27球団分になります。

テーブルは予め作っておいても構いません。プライマリーキーをシリアルまたは UUID を設定しても良いでしょう。(この CSV データは、mlb_site_id と year の2つでプライマリーキーになる想定をしています)

インポートすると、winning_percentagepythagorean_expectationexpected_win_loss、及び winning_percentage_difference が空だということがわかると思います。

今後のプラン

レコードの作成や編集は、ターミナルで結果を見ても面白味がないので、簡単な Web ページを作ります。
ゼロから作るのは、大変なので、Bootstrap v5.3.3 を CDN で使い、土台として、Bootstrap Examples を改造して使用し、レスポンシブデザインのページから、FileMaker ソリューションのレコード操作ができるようにするのが目標です。
使用する Example は Checkout をメインにしたいと思います。

 ここで扱う FileMaker Data API のリクエストは、以下とします。

  • records - Create Record ... レコード作成
  • records - Edit Record ... レコード編集
  • records - Delete Record ... レコード削除
  • records - Duplicate Record ... レコード複製
  • records - Get Single Record by Id ... レコード ID で 1レコード取得

 完成イメージを掲載します。

Desktop イメージ

スクリーンショット 2025-02-11 4.32.40.png

iPad イメージ

スクリーンショット 2025-02-11 4.38.32.png

iPhone イメージ

スクリーンショット 2025-02-11 4.41.47.png

 今後、数回に渡って、この Web ページを作っていきたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?