利用環境
以下の環境を前提に説明しています。
- 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
MLB は全30球団ですが、3球団は後で、FileMaker Data API を使って入力するので、この CSV は27球団分になります。
テーブルは予め作っておいても構いません。プライマリーキーをシリアルまたは UUID を設定しても良いでしょう。(この CSV データは、mlb_site_id と year の2つでプライマリーキーになる想定をしています)
インポートすると、winning_percentage
、pythagorean_expectation
、expected_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 イメージ
iPad イメージ
iPhone イメージ
今後、数回に渡って、この Web ページを作っていきたいと思います。