こんにちは!
カンファレンスでも発表がありました、FileMaker Cloudです!
アマゾンが提供するクラウド上のサーバー提供サービスのEC2というもので、FileMaker Serverが利用できるサービスのようです。
……ようです。というのもの、まだ、EC2でも使用できるリージョン(サーバーの場所)がアメリカなど一部に限られ、日本のリージョンではまだ提供されていないからです。
ちょっと覗いてみたところ、
通常、EC2のインスタンス(サーバー)を作成し、リモートデスクトップを開いて、FileMaker Serverをインストールして……という作業が必要なところ、
EC2のウィザードだけでFileMaker Serverが利用できるようになるもののようです。
しかも、以前は最も簡単な方法でも、FileMaker Serverのライセンスの年間ライセンスを購入して、当然自分で直接お金も払う必要がありました。
なんと、AWS(アマゾンウェブサービス)が代行で管理してくれる感じなので、ライセンスをEC2のインスタンスと同じように、使った分だけ払えばいいだけなので、AWSにインスタンスの料金と一緒に請求さるようです。
非常に楽ですね。
価格が気になるところなので、少し調べてみました。
リージョンが違うので、日本リージョンでは違う可能性もあります。
5ユーザーライセンスの場合、1時間あたり0.99ドルライセンス料としてかかるようです。
英語が得意ではないので、よくわかりませんでしたが、短期間の場合はこの料金だけど、上限が年間888ドルになる? というような感じでした。
ちなみに直接FileMakerから年間ライセンスを購入すると96,000円です。
888ドルは1ドル=110円換算で97,680円なので、ほとんど変わりません。当たり前ですよね。
クラウドにFileMaker Serverを運用する敷居が下がってくると思いますので、便利になってきますね!
---追記-----
クラウドは、FileMaker Serverの機能を完全に有しているわけではなく、カスタムWeb公開など一部の機能は使えません。
FileMaker(ファイルメーカー)とその他、システムエンジニアリアリングについて書いています。また、FileMakerについてはこのブログを見て、使ってみようかなと思えるように、始めたばかりの初心者の方にコツを少しつかんでもらえるようになればいいかなと思っています。
2016年11月30日水曜日
2016年9月20日火曜日
リレーションを使ってデータを集計してみよう | FileMaker Pro
こんにちは!
ちょっと複雑なリレーションに挑戦してみように引き続き、リレーションについてです。
リレーションの目的はいろいろとありますが、その中の一つに「集計」するということがあります。
今回はそのリレーションを使った集計方法です。
ちょっと複雑なリレーションに挑戦してみように引き続き、リレーションについてです。
リレーションの目的はいろいろとありますが、その中の一つに「集計」するということがあります。
今回はそのリレーションを使った集計方法です。
元データ
下図のような日付と売上を保存しているテーブルがあるとします。
今回はこれを月ごとに集計していきたいと思います。
準備(フィールドの作成)
まず、どの基準で集計するかという基準を作ってあげる必要があります。
今回の場合は月ごとに集計をしたいので、それぞれのレコードがどの月に属するかを判別するフィールドが必要になります。
下図のように「年月」というフィールドを用意しました。
次にこのフィールドにオプションの計算式を設定します。
このように計算式を設定します。
この計算式は日付フィールドが「2016/09/10」の場合「201609」を返します。
後半のRight関数は、月の桁数を合わせるためのものです。8月は08、11月は11と常に二ケタになるようにしています。
途中で計算オプションのフィールドを変更したり、追加する場合
今回のように、後で計算オプションを設定したフィールドを追加しても、計算がされません。
再計算を行い、年月フィールドに値を書き込む必要があります。
「フィールドに既存の値が存在する場合は置き換えない」チェックを外している場合、再計算が行われるのは、式に含まれる同じテーブルのフィールドが変更になったか、新しくレコードさ作成された場合の2つです。
既存のレコードの場合は「式に含まれる同じテーブルのフィールド」が変更になると再計算されます。
今回は「フィールド内容の全置換」を使って再計算を促します。
日付フィールドを選択し、「レコード」→「フィールド内容の全置換」を選択します。
下図のように計算式を設定します。
これを実行すると、年月フィールドに値が書き込まれます。
集計用の新しいテーブルの作成
次に新しいテーブルを作成します。
ここでは下図のように集計というテーブルを作成します。さらにリレーションも設定します。その後に「売上」テーブルの計算式を設定します。
図のように3つのフィールドを作ります。
※「このリレーションシップによるレコードの作成を許可する」にチェックを入れておきましょう。
また売上フィールドには下記の計算式を設定します。
集計用のテーブルにレコードを作成する
実際に集計値を取得するにはレコードを作る必要があります。
手動で作っても構いませんが、スクリプトを使ってみます。
先ほどテーブルの作成で「レコード作成用」というフィールドを作っています。これがミソです。
売上テーブルをコンテキストとするレイアウトに集計テーブルのこのフィールドを追加します。
このレイアウトからレコード作成用のフィールドに何でもいいので値を書き込むと集計テーブルにレコードが作成されます。
これを自動で行うスクリプトを作成します。
このスクリプトを動かせば、必要なレコードが集計テーブルで作成できます。
集計テーブルではこんな感じになります。
問題点
この方法にも問題があります。
集計するレコード数が多くなってくると、重くなり使い勝手が悪くなります。
次回はその点について取り上げてみたいと思います。
2016年9月12日月曜日
ちょっと複雑なリレーションに挑戦してみよう
こんにちは!
今回は「ちょっと複雑なリレーションに挑戦してみよう!」です。
FileMaker Pro(ファイルメーカー)を始めると誰もがぶつかる壁がリレーションではないでしょうか。
「<」「>」などを使用したリレーションは使っているうちにだんだん何をしているのかわからなくなってくるかもしれません。
今回はそんなリレーションについて紹介したいと思います。
「<」「>」のリレーションはキーより小さい、大きいものを関連レコードとします。
例えば、日別の売上を保存するテーブルがあったとします。昨日の売上と今日の売上を比較したい場合にこのリレーションを使用します。
と言葉で説明してもわかりづらいので、図で説明してみたいと思います。
「date」という日付のフィールドがある「テーブル」というテーブルがあります。さらに同じテーブルからできるテーブルオカレンス「テーブル 2」とリレーション(自己リレーション)をします。
「date」同士を上の画像のように「>」でつなぎます。
さらに、レコードのソートにて下図のようにソートを設定します。
「date」フィールドを降順でソートします。
複雑なリレーションを作るうえで、このソートがカギになります。
このソートをしないと、このリレーション上で「テーブル 2」ではレコードが作成された順に並びその中で、「テーブル 2」の「date」で最も小さいものを最初の関連レコードとします。
ソートしないとこんな感じになります。
このレイアウトは「テーブル」に基づいていて、右側のフィールドは関連する「テーブル 2」の「date」を表示します。
この場合は、どの日でも最初の関連レコードとして「2016/09/06」を返します。
今度はソートをしてみます。
ソートをしたものです。
関連するレコードとして、どのレコードも前日のレコードを関連しています。このリレーションを使って計算を行えば、昨日よりどのくらい売り上げが多かったか、少なかったが計算できます。
今回は「ちょっと複雑なリレーションに挑戦してみよう!」です。
FileMaker Pro(ファイルメーカー)を始めると誰もがぶつかる壁がリレーションではないでしょうか。
「<」「>」などを使用したリレーションは使っているうちにだんだん何をしているのかわからなくなってくるかもしれません。
今回はそんなリレーションについて紹介したいと思います。
「<」「>」のリレーション
「<」「>」のリレーションはキーより小さい、大きいものを関連レコードとします。
例えば、日別の売上を保存するテーブルがあったとします。昨日の売上と今日の売上を比較したい場合にこのリレーションを使用します。
と言葉で説明してもわかりづらいので、図で説明してみたいと思います。
「date」という日付のフィールドがある「テーブル」というテーブルがあります。さらに同じテーブルからできるテーブルオカレンス「テーブル 2」とリレーション(自己リレーション)をします。
「date」同士を上の画像のように「>」でつなぎます。
さらに、レコードのソートにて下図のようにソートを設定します。
「date」フィールドを降順でソートします。
複雑なリレーションを作るうえで、このソートがカギになります。
このソートをしないと、このリレーション上で「テーブル 2」ではレコードが作成された順に並びその中で、「テーブル 2」の「date」で最も小さいものを最初の関連レコードとします。
このレイアウトは「テーブル」に基づいていて、右側のフィールドは関連する「テーブル 2」の「date」を表示します。
この場合は、どの日でも最初の関連レコードとして「2016/09/06」を返します。
今度はソートをしてみます。
ソートをしたものです。
関連するレコードとして、どのレコードも前日のレコードを関連しています。このリレーションを使って計算を行えば、昨日よりどのくらい売り上げが多かったか、少なかったが計算できます。
2016年8月30日火曜日
ファイルメーカーカンファレンスへ行こう!
こんにちは!
今回は「ファイルメーカーカンファレンスへ行こう!」です。
ファイルメーカーカンファレンスは、毎年11月に行われる、FileMaker社主催のイベントです。
2016年の今年は11月9日~11日までの3日間行われます。
ファイルメーカーカンファレンスでは、FileMaker社とそのパートナー企業の方が、講演を行うのがメインイベントです。
講演は、ファイルメーカーの基本的な部分の使い方や、ちょっとした小技(Tips)、導入事例など、ファイルメーカーのレベルアップに最適な内容です。
すこしお祭り的な意味合いもあります。
どちらかというと使いこなしている方よりも、初めて間もなく、これから使いこなせるようになってほしい方をターゲットにしている部分もあります。
私もまだ使いこなしているといえるほどでないときには本当にこのカンファレンスが力になったのは間違いありません。
基本東京での開催(一時大阪でもやったことが)なので、遠方の方にとっては、なかなかきづらいかもしれませんが、これから使いこなそうと思っている方にとっては、ぜひ参加していただきたいイベントです。
特に現役の開発者の方から生の声が聴けるので、「こういう考え方があったのか」と勉強になることばかりです。
かなりい刺激にもなりますし、煮詰まってしまっているときには、視点を変えられるいい機会にもなります。
今回は「ファイルメーカーカンファレンスへ行こう!」です。
ファイルメーカーカンファレンスは、毎年11月に行われる、FileMaker社主催のイベントです。
2016年の今年は11月9日~11日までの3日間行われます。
ファイルメーカーカンファレンスでは、FileMaker社とそのパートナー企業の方が、講演を行うのがメインイベントです。
講演は、ファイルメーカーの基本的な部分の使い方や、ちょっとした小技(Tips)、導入事例など、ファイルメーカーのレベルアップに最適な内容です。
すこしお祭り的な意味合いもあります。
どちらかというと使いこなしている方よりも、初めて間もなく、これから使いこなせるようになってほしい方をターゲットにしている部分もあります。
私もまだ使いこなしているといえるほどでないときには本当にこのカンファレンスが力になったのは間違いありません。
基本東京での開催(一時大阪でもやったことが)なので、遠方の方にとっては、なかなかきづらいかもしれませんが、これから使いこなそうと思っている方にとっては、ぜひ参加していただきたいイベントです。
特に現役の開発者の方から生の声が聴けるので、「こういう考え方があったのか」と勉強になることばかりです。
かなりい刺激にもなりますし、煮詰まってしまっているときには、視点を変えられるいい機会にもなります。
ラベル:
FileMaker,
FileMaker Server
2016年7月18日月曜日
Windows10とFileMaker Server15
こんにちは!
ファイルメーカー社のサイトではWindowsのクライアントOS(Windows7、Windows10」がサポートするOSから姿を消しています。
Windows10にはFileMaker Server14をインストールすることはできませんでした。
FileMaker Serverを業務システムを多数動かし、がっつり業務で使うようになると、本番環境のサーバーではテストをすることが難しくなってきます。
こういったときに、テスト環境としてWindowsのクライアントOSにFileMaker Serverが入れられたら便利でしょうと思っていました。
FileMaker Server15が発売されましたが、試しにWindows10 Proに入れてみたら、問題なくインストールすることができ、問題なく動いています。
ちなみに、クライアントOSのエディションはPro以上でしかIISを利用できないので、インストールできないはずです。
※ただし、メーカーのサポート外なので、自己責任になります。
追記-------------------
現状、Windows10のインストール方法として、下記の2つの方法があると思います。
1) Windows7、8から無償アップグレードでWindows10に
2) Windows10をクリーンインストール(プレインストールされているものを購入など)
今回ここで紹介したのは1)の方法でWindows10にした場合でした。
先日2)のマシンで試したところ、Application Request Routing(ARR)の手順で止まってしまいました。
手動でARRをインストールする方法がこちらに紹介されていますので、これでいける可能性がありますが、まだ試していません。
試す機会があればまた追記したいと思います。
今回のテーマは「Windows10とFileMaker Server15」です。
ファイルメーカー社のサイトではWindowsのクライアントOS(Windows7、Windows10」がサポートするOSから姿を消しています。
Windows10にはFileMaker Server14をインストールすることはできませんでした。
FileMaker Serverを業務システムを多数動かし、がっつり業務で使うようになると、本番環境のサーバーではテストをすることが難しくなってきます。
こういったときに、テスト環境としてWindowsのクライアントOSにFileMaker Serverが入れられたら便利でしょうと思っていました。
FileMaker Server15が発売されましたが、試しにWindows10 Proに入れてみたら、問題なくインストールすることができ、問題なく動いています。
ちなみに、クライアントOSのエディションはPro以上でしかIISを利用できないので、インストールできないはずです。
※ただし、メーカーのサポート外なので、自己責任になります。
追記-------------------
現状、Windows10のインストール方法として、下記の2つの方法があると思います。
1) Windows7、8から無償アップグレードでWindows10に
2) Windows10をクリーンインストール(プレインストールされているものを購入など)
今回ここで紹介したのは1)の方法でWindows10にした場合でした。
先日2)のマシンで試したところ、Application Request Routing(ARR)の手順で止まってしまいました。
手動でARRをインストールする方法がこちらに紹介されていますので、これでいける可能性がありますが、まだ試していません。
試す機会があればまた追記したいと思います。
ラベル:
FileMaker Server,
Windows
2016年7月12日火曜日
マージ変数を使おう
こんにちは!
以前マージフィールドを紹介しましたが、
今回は「マージ変数」というものを紹介したいと思います。
名前から想像できる通り、変数が関係あります。
グローバル変数の内容をレイアウト上に表示する機能が「マージ変数」です。
例えば、レイアウト上に「○○の検索結果を表示しています」というように
検索ワードを表示する場合などに使用できます。
スクリプトの内容としては、検索ワードとして使用するグローバルフィールドの内容を変数に格納します。
その後、検索を行っています。
※ちなみに今回の例ではグローバルフィールドを使用していますので、変数に格納して使用しなくても、マージフィールドとしてフィールドを設定しても表示されます。
以前マージフィールドを紹介しましたが、
今回は「マージ変数」というものを紹介したいと思います。
名前から想像できる通り、変数が関係あります。
グローバル変数の内容をレイアウト上に表示する機能が「マージ変数」です。
例えば、レイアウト上に「○○の検索結果を表示しています」というように
検索ワードを表示する場合などに使用できます。
検索用スクリプト
スクリプトの内容としては、検索ワードとして使用するグローバルフィールドの内容を変数に格納します。
その後、検索を行っています。
※ちなみに今回の例ではグローバルフィールドを使用していますので、変数に格納して使用しなくても、マージフィールドとしてフィールドを設定しても表示されます。
レイアウト
レイアウトモードではこのようになっています。<<$$検索ワード>>と入力すると、変数をレイアウト上に表示できるようになります。
実際に検索を行ってみると、このような形で表示されます。
今回のように検索結果や、表示されているレコード数はもちろん、「○○が未処理です」のように、ソリューション上でしなければならないことを表示して、ユーザーに知らせることも可能です。
前回のマージフィールドと同じように非常に便利な機能です。
2016年5月11日水曜日
FileMaker 15がやってきた!
こんにちは!
FileMakerの最新バージョン15がやってきました!
約1年で新しいバージョンになりました。
基本的に今回は大幅な機能の変更などはありません。
セキュリティ面での向上、作りやすさの向上がメインで、企業内で開発には携わらず、ユーザーとして使用している方にはあまり縁がないかもしれません。
FileMakerの最新バージョン15がやってきました!
約1年で新しいバージョンになりました。
基本的に今回は大幅な機能の変更などはありません。
セキュリティ面での向上、作りやすさの向上がメインで、企業内で開発には携わらず、ユーザーとして使用している方にはあまり縁がないかもしれません。
FileMaker Pro 15新機能まとめ
マスク付編集ボックス
いわゆるパスワード入力のように入力した文字やデータが、「・・・・」で表示される編集ボックスです。
マイナンバーやパスワードを直接フィールドに入力してもらう場合に非常に役立つものです。待ってました!と思っていました。
※この機能はFileMaker 15だけの機能なので12~14では使えません。
スクリプトワークスペース
スクリプトワークスペースで、スクリプトを作成する場合に問題があるとその部分が強調されます。
アンドゥ(元に戻る)機能
これは助かります。
スクリプトワークスペースや計算式などで、今行った操作を元に戻せるようになりました。
無意識的に「あっ」と思っても、どの行を削除してしまったかなど今までは分かりませんでしたが、元に戻せるようになるので、よかったです。
セキュリティの向上
FileMaker Serverでホストされているデータベースを開いたり、SSLでメールを送ったり、URLから挿入などのスクリプトで、SSLサーバ証明書を検証するようになりました。
また、検証できなかった場合にこのホストを信頼するかを選択できるようになります。
信頼すると、今後このホストでは検証できないエラーが表示さなくなります。
試してみていないので、分かりませんが、オレオレ証明書など、自作の証明書が使えるのでしょうか?
もちろん、FileMaker社はサポートしないはずなので、自己責任ということにはなるでしょうが。
キーチェーン使用時のセキュリティ向上
FileMaker Goにてキーチェーン(パスワード保存機能)を使用している場合、iOSのパスコード、Touch ID(指紋認証)を求めることができるようになります。
開発側としては非常にうれしい機能です。
今まではパスコードなど設定していないiPad、iPhoneが盗難にあったりすると、ホストされるファイルではアカウントを止めるまでファイルを開けてしまったわけですが、これによりそれが防ぎやすくなります。
これで、強制的にパスコードやTouch IDを使えるようにすることができます。
新しいスクリプトステップ-テーブルデータを削除
いままでは、対象レコードを削除というステップしかありませんでした。テーブルの全データを削除したい場合は、全レコードを表示して削除する必要がありました。レコード数が多いと時間がかかりこともあります。
テーブルデータを削除はその必要がなく別のテーブルからこのステップを使うことですべて削除できますので、処理が早くなるケースも多いでしょう。
ラベル:
FileMaker,
FileMaker Server,
FileMakerGO
2016年4月12日火曜日
マージフィールドを使おう! Part2
こんにちは!
前回マージフィールドを使おう! Part1ではマージフィールドがどういったものかを紹介しました。
今回は具体的な使用例について紹介したいと思います。
前回マージフィールドを使おう! Part1ではマージフィールドがどういったものかを紹介しました。
今回は具体的な使用例について紹介したいと思います。
マージフィールドは直接編集できない
テキストとして扱われるので、マージフィールドをクリックして編集状態にすることはできません。
これを活用した使い方です。
あるレイアウトで編集を必要としないフィールドはマージフィールドにします。
関連フィールドの値を直接参照している場合などです。
アクセス権での管理の代わりに
開発のミスやスピードを上げるために、基本的なフィールドのレコードの権を編集できるようにしておき、レイアウト上に置くフィールドを編集フィールドにするか、マージフィールドにするかを選択するようにすることがあります。
細かくアクセス権を設定するメリットは、セキュリティが高まります。
デメリットは、管理が細かく煩雑になり、初回の開発では特に問題にならないが、日がたった後に改良する場合に、アクセス権がどうなっているかを把握できなくなったり、把握するのに時間がかかったりすることがあります。
また、それがミスにつながり、編集できない、スクリプトが思うように動かない原因になる場合もあります。
これを編集されたくない場合はマージフィールドを使います。
ただし、この方法だと編集をするレイアウト、閲覧だけをするレイアウトと使い分けも必要になってきますので、レイアウト数が増える可能性もあります。
また、条件によって編集できるできないという場合には、インスペクタの「次の場合にオブジェクトを隠す」を使って、編集できる条件の時は通常の編集フィールドを表示し、そうではない場合はマージフィールドを表示させるという使い分けをすることもできます。
排他制御にも
排他制御とは他のユーザーが同時に編集をしないようにする機能です。
編集フィールドをクリックすると編集状態になり、他のユーザーがクリックして編集することができなくなります。
閲覧しかしないレイアウトで通常の編集フィールドを配置すると、ユーザーの方は知らずのうちにクリックして編集状態にしてしまうことがあります。
しかも席を離れ、そのままロック状態になってしまうことも。
こういった場合は、マージフィールドを配置してしまうのも手です。
マージフィールドは編集状態にならないので、ロックされません。
このようにいろいろな使い方できる便利なマージフィールドです。
2016年3月31日木曜日
マージフィールドを使おう! Part1
こんにちは!
今回と次回はマージフィールドについて取り上げてみたいと思います。
マージフィールドとはテキストとしてフィールドのデータをレイアウト上に表示する機能です。
マージフィールドには下記のような特徴があります。
・フィールドの内容を編集できない
・テキストとして扱われるので、他のフィールド(マージフィールド)をくっつけて表示できる
・検索モードでは条件を入力できない
・フィールドと同じように「データの書式設定(3ケタ区切りコンマを付けたり、平成○○年と表示したり)」は可能
マージフィールドを使用せずに普通にフィールドを配置するとこのような形で配置するでしょう。
郵便番号以外の都道府県名、市区町村、それ以降の住所は宛先によって長さがまちまちで、長い名称にフィールドの幅を合わせるしかありません。
ちょっと大げさですが、このように離れた感じの表示になります。
正直みっともない感じになるので、ここでマージフィールドを使います。
マージフィールドをこんな感じに配置してみます。
ちなみにマージフィールドは同じテキストの枠内に連続して配置することができます。
今回の例だと、郵便番号から住所2までは同じテキストとして扱われます。郵便番号、市区町村、の後に改行が入っています。
ブラウズモードではこんな感じになります。
次回はさらにマージフィールドの使い方の例を紹介したいと思います。
次の記事「マージフィールドを使おう! Part2」
今回と次回はマージフィールドについて取り上げてみたいと思います。
マージフィールドとは何か
マージフィールドとはテキストとしてフィールドのデータをレイアウト上に表示する機能です。
マージフィールドには下記のような特徴があります。
・フィールドの内容を編集できない
・テキストとして扱われるので、他のフィールド(マージフィールド)をくっつけて表示できる
・検索モードでは条件を入力できない
・フィールドと同じように「データの書式設定(3ケタ区切りコンマを付けたり、平成○○年と表示したり)」は可能
配置の仕方
配置の仕方は2通りあります。
レイアウトの編集画面で「挿入」→「マージフィールド」を選択します。
フィールドのリストが出ますので、選択をします。
2つ目は直接テキストツールで入力する方法です。
テキストツールで配置したいところにドラッグします。
<<フィールド名>>というように入力します。
関連フィールドの場合は<<テーブルオカレンス名::フィールド名>>になります。
これで、フィールドの内容をテキストとして表示できます。
使用例
では、このマージフィールドどういったときに使うのでしょうか?
私が良く使うのは、封筒や見積書などのお客様の宛名を作成するときです。
マージフィールドを使用せずに普通にフィールドを配置するとこのような形で配置するでしょう。
郵便番号以外の都道府県名、市区町村、それ以降の住所は宛先によって長さがまちまちで、長い名称にフィールドの幅を合わせるしかありません。
ちょっと大げさですが、このように離れた感じの表示になります。
正直みっともない感じになるので、ここでマージフィールドを使います。
マージフィールドをこんな感じに配置してみます。
ちなみにマージフィールドは同じテキストの枠内に連続して配置することができます。
今回の例だと、郵便番号から住所2までは同じテキストとして扱われます。郵便番号、市区町村、の後に改行が入っています。
ブラウズモードではこんな感じになります。
次回はさらにマージフィールドの使い方の例を紹介したいと思います。
次の記事「マージフィールドを使おう! Part2」
2016年3月15日火曜日
ExecuteSQL関数を使おう!
こんにちは!
今回はExecuteSQL関数を使おう!をテーマにします。
今回はExecuteSQL関数を使おう!をテーマにします。
ExecuteSQL関数ってなに?
ExecuteSQL関数はFileMaker(ファイルメーカー)12シリーズから登場した、比較的新しい関数です。
FileMaker Proのヘルプにはこのように目的の説明があります。
指定したテーブルオカレンスに対する SQL クエリーステートメントを FileMaker Pro ファイル内で実行します。
SQLクエリステートメントという難しい言葉が登場しました。
ではSQLとはなんでしょうか?
SQLはデータベースを操作するための言語です。
SQLはテーブルで行を作成したり、検索をしたり、テーブルを作ることもできます。
FileMakerでは「検索する」、SELECTという命令文のみを扱うことができ、データベースから条件に合うレコードを取得することができます。
つまり、ExecuteSQL関数は、FileMakerデータベースのデータから特定の条件に合うものを取得する関数であるといえます。
どういったときに使うのか?
通常、検索を行う場合は、データを取得したい(見たい)テーブル(オカレンス)のレイアウトに移動して、検索を行います。
しかし、このExecuteSQL関数を使うと、どこのテーブルにいるかが、関係なくデータを取得することが可能になる画期的なものです。
あるデータを取得するためだけに、こんなスクリプトを組んだことはありませんか?
レイアウトを移動する→検索を実行→あるフィールドのデータを変数に格納→元のレイアウトに戻る
多人数で使用し、かつ大きなデータベースだとその動きが見えたりすることもあり、ちょっと不便な場合もあります。
これがExecuteSQL関数を使用することで、1行で済みます。
また、リレーションを減らすこともできます。
どこのテーブルにいるかに関係なくあるテーブルのデータを取得できるわけなので、先ほど出てきたスクリプトの機能として作成しているリレーションがある場合にはこのExecuteSQL関数で代用できる可能性があります。
ExecuteSQL関数の実際
では、実際のExecuteSQL関数の使い方を見ていきましょう。
ExecuteSQL( "SELECT フィールドA FROM テーブルA WHERE フィールドA < 30" ; "" ; "" )
第一引数はSQL文を渡します。
第二引数、第三引数はフィールド(第二)、テーブル(第三)が複数ある場合にどんな記号で区切るかを渡します。例えば、"¶"と記載すれば、改行されます。
この関数で難しいのはSQL文ではないかと思います。
SQLにはなかなかなじみのない方も多くいらっしゃると思うので、この関数をつかえていない方も非常に多くいるのではないかと思います。
この場合 SELECT の後には情報を取得したいフィールド名が来ます。
次にFROM の後にはそのフィールドがあるテーブルを記載します。
WHERE は取得するレコードの条件を入力します。この場合、フィールドAの値が30未満のものが抽出されることになります。
これが基本となります。
※フィールド名、テーブル名などが日本語やSQLの予約語の場合は文字を「\"」で囲む必要があります。「\"フィールドA\"」という具合にです。
やはりSQLにもともとなじみのない方が使いこなすには、Advanced版にあるデータビューアなどを使って式のテストをしていくことで慣れていくいかないと思います。
第二引数、第三引数はフィールド(第二)、テーブル(第三)が複数ある場合にどんな記号で区切るかを渡します。例えば、"¶"と記載すれば、改行されます。
この関数で難しいのはSQL文ではないかと思います。
SQLにはなかなかなじみのない方も多くいらっしゃると思うので、この関数をつかえていない方も非常に多くいるのではないかと思います。
この場合 SELECT の後には情報を取得したいフィールド名が来ます。
次にFROM の後にはそのフィールドがあるテーブルを記載します。
WHERE は取得するレコードの条件を入力します。この場合、フィールドAの値が30未満のものが抽出されることになります。
これが基本となります。
※フィールド名、テーブル名などが日本語やSQLの予約語の場合は文字を「\"」で囲む必要があります。「\"フィールドA\"」という具合にです。
やはりSQLにもともとなじみのない方が使いこなすには、Advanced版にあるデータビューアなどを使って式のテストをしていくことで慣れていくいかないと思います。
--PR------------------------
<a href="http://www.dlmarket.jp/products/detail/309796" target="_blank">【FileMaker Pro ワンテーママガジンVol1~ExecuteSQL関数を使いこなそう!~】</a>
2016年2月23日火曜日
FileMaker(ファイルメーカー)で必要なデータモデリング
こんにちは!
今回は「データモデリング」についてです。
ファイルメーカー(FileMaker Pro)を使い始めた人が当たる壁では、ソリューションを作成する最初の段階、つまりテーブル・フィールド・リレーションの構成が非常に重要で、ここさえ最初にしっかりしておけば、後々楽になるというようなことを書かせていただきました。
その続編です。
データモデリングというと少し難しいかもしれませんが、テーブルやフィールドを作成する場合の考え方といっていいかもしれません。
【FileMaker Pro ワンテーママガジンVol2~10年後も使えるFileMaker(ファイルメーカー)データベース設計~】ではこういった方法・考え方を紹介しています。
今回は「データモデリング」についてです。
ファイルメーカー(FileMaker Pro)を使い始めた人が当たる壁では、ソリューションを作成する最初の段階、つまりテーブル・フィールド・リレーションの構成が非常に重要で、ここさえ最初にしっかりしておけば、後々楽になるというようなことを書かせていただきました。
その続編です。
データモデリングというと少し難しいかもしれませんが、テーブルやフィールドを作成する場合の考え方といっていいかもしれません。
テーブルの数を見直す
後で苦労するケースとして「テーブル数が少ない」ソリューションという場合が多くあります。
ファイルメーカーでは自己連結リレーションという同じテーブル同士をリレーションする手法が、よく使われます。
これを使用して、通常の正規化の考え方によらずに、テーブルを分けるべき部分を、一つのテーブルで完結してしまうケースです。
例えば、納品書のケースでは、
納品書マスターと納品明細といった形でテーブルを分けるのが一般的ですが、これを分けずに作ってしまうといったことです。
分けると管理しやすくなります。
この納品書のケースのように、帳票類を作成するためのソリューションでは、マスターと明細といった形でわけるという基本があります。
テーブルオカレンスの数は多くてもいい
リレーションでも「分ける」ということを念頭に置いておくといいかもしれません。
管理にしくいものとして、リレーションのグループが少なすぎるというものがあります。
リレーショングループが少なすぎるというのは、一つのテーブルオカレンスに、同じテーブルをもとにしているテーブルオカレンスを複数くっついているというパターンが多くあります。
こういう状況があるなと感じたときは分けるのが理想ではないでしょうか。
--PR--
【FileMaker Pro ワンテーママガジンVol2~10年後も使えるFileMaker(ファイルメーカー)データベース設計~】ではこういった方法・考え方を紹介しています。
2016年2月16日火曜日
ファイルメーカー(FileMaker Pro)を使い始めた人が当たる壁
こんにちは!
「ファイルメーカー(FileMaker Pro)を使い始めた人が当たる壁」が今日のテーマです。
「ファイルメーカー(FileMaker Pro)を使い始めた人が当たる壁」が今日のテーマです。
私が最初にやっておけばよかったと後悔すること
ファイルメーカーを使い始める初心者の方が、一番最初にすることは、おそらくファイルメーカーの使い方が記されている入門書を探すことではないかと思います。
私もそうでした。
もちろん、それは当たり前ですし、変なこともでもないと思います。
しかし、それだけでは損をするということです。
FileMaker社の発行しているトレーニングシリーズという本には、検索やレコードの作成といった基本的な情報の次に、開発用の知識の前に「データモデリング」について書かれています。
データモデリングとは、テーブルやフィールドの設定の前にその設計図を作成する手法や考え方といっていいでしょうか。
ファイルメーカーを触る前段階と言っていいと思います。
この考え方がしっかりしていないと、将来後悔することになってしまいます。
それはなぜか。
作ったときはいいが、そのうちに機能の追加や改良がしづらくなり、行き詰って「作り変えたほうがいい」ということになってしまうからです。
ファイルメーカーを選択される方のほとんどが、メインの業務があり、片手間でシステムを作成されるという方です。
開発にかける時間は少ない方が、メインの業務に集中できるわけです。
また、作り変えることによって倍の人件費がかかってしまいます。
逆に言うと、作り変える必要がなく長く使えるシステムこそがコストメリットを生かせるわけです。
作り変える原因となること
ファイルメーカーの知識がなく、スクリプトや関数がうまく使えなかったという理由で、作り変えるまでにいたることは少ないと思います。
この要素は、動いているシステムでも、少しずつ変えていくことは可能だと思います。
難しいのは、テーブルやフィールド、リレーションを動いているシステムで変更することです。
私はこの部分で後悔をしたことがあり、基礎的な部分を強化するべきではないかなと思いました。
データモデリングさえしっかりしていれば、あとで作り変えるということは減っていくのではないかと思います。
次回は来週、データモデリングについて少し紹介できればと思います。
次の記事「FileMaker(ファイルメーカー)で必要なデータモデリング」
次の記事「FileMaker(ファイルメーカー)で必要なデータモデリング」
2016年2月9日火曜日
こうなったらいいなFIleMaker Pro 15(ファイルメーカープロ15)
こんにちは!
今回はFileMaker(ファイルメーカー)15がこうなったらいいなという妄想をしてみたいと思います。
Widnows版において、直接印刷しようとすると、プリンターによって品質が悪くなる場合があります。特にインクジェットプリンターで多く起きている印象です。
ファイルメーカーを導入される方の多くは、見積書、請求書、納品書や報告書など書類を作成するために購入されるケースも多いので、向上に期待します。
今回はFileMaker(ファイルメーカー)15がこうなったらいいなという妄想をしてみたいと思います。
Windows版での印刷の向上
Widnows版において、直接印刷しようとすると、プリンターによって品質が悪くなる場合があります。特にインクジェットプリンターで多く起きている印象です。
ファイルメーカーを導入される方の多くは、見積書、請求書、納品書や報告書など書類を作成するために購入されるケースも多いので、向上に期待します。
Linux版FileMaker Server
FileMaker Server(サーバー)を導入を検討するときに、いろいろな問題があります。
MacでもWindowsでも価格が気になるところです。
また、Macの場合、サイジングがなかなか難しいという面もあります。
Windows Serverは費用負担として決して小さくありません。
そこで、それらの問題を解決する手段としてLinux版があれば解決できるのかな、なんて思ったりします。
管理系の画面の文字(Windows版)
リレーションの編集、テータベースの管理などの文字が小さいので、少し大きくなればいいかなと思います。
また、データビューアをしょっちゅう使う身としては、そのあたりのお願いしたいと思います。
FileMakerクラウド版(またはLite版)
これは14の時にも書かせていただきました。
データベースを管理・作成等をする機能のない、Lite版のようなものや、
共有データベースのみを開く(これも管理機能はない)ことのできるクラウド版などがあってもいいのではないかなと思いました。
導入の敷居が低いのがFileMakerですので、そのあたりを強化すると新規ユーザーが増えるのではないかなと思ったりします。
2016年2月2日火曜日
書類の通し番号で「000001」のように桁数をそろえる(0埋めをする)
こんにちは!
今回は「書類の通し番号で「000001」のように桁数をそろえる(0埋めをする)」です。
印刷やPDFなどに出力して、部署間のやり取りに使ったり、見積書や納品書、請求書のようにお客様などに提出する書類では必ず、その書類を識別するために番号を付けます。
見積書番号や請求書番号といった名称で使用する番号です。
通常は、入力値の自動入力オプションでシリアルを設定したものを使用していると思います。
市販されているソフトでは、「000001」となっているのが多くありますし、その方が見栄え的にも少し良くなります。
ここでは6ケタになるように、それ以下の数字の場合0を付けるようにしたいと思います。
方法としてはいくつかありますので、ご紹介していきます。好みに応じて使い分けをしていただければいいかと思います。
シリアルが入るフィールド=「ID」というフィールドとします。
Right ( 00000 & ID ; 6 )
この計算式を新しく作るフィールドに設定するだけです。
これは、計算フィールドではなく、テキストフィールドがいいでしょう。
この方法では、シリアル値の入るフィールドを使いません。
ファイルメーカーでは隠れシリアルキーのような数字であるレコードIDというIDが隠れています。
どのテーブルにも設定されているIDで、当然のことながら他と重複しません。これは、関数で知ることができます。
Right ( 00000 & Get( レコードID ) ; 6 )
先ほどとほとんど変わりません。この式をテキストフィールドの自動計算に設定すればいいでしょう。
今回は「書類の通し番号で「000001」のように桁数をそろえる(0埋めをする)」です。
印刷やPDFなどに出力して、部署間のやり取りに使ったり、見積書や納品書、請求書のようにお客様などに提出する書類では必ず、その書類を識別するために番号を付けます。
見積書番号や請求書番号といった名称で使用する番号です。
通常は、入力値の自動入力オプションでシリアルを設定したものを使用していると思います。
市販されているソフトでは、「000001」となっているのが多くありますし、その方が見栄え的にも少し良くなります。
ここでは6ケタになるように、それ以下の数字の場合0を付けるようにしたいと思います。
方法としてはいくつかありますので、ご紹介していきます。好みに応じて使い分けをしていただければいいかと思います。
方法1 すでにシリアル値を設定されるフィールドがある場合
すでにシリアルを設定してあるフィールドがあり、後で付け足す場合です。シリアルが入るフィールド=「ID」というフィールドとします。
Right ( 00000 & ID ; 6 )
この計算式を新しく作るフィールドに設定するだけです。
これは、計算フィールドではなく、テキストフィールドがいいでしょう。
方法2 新しく作る場合
方法1では既存のものに追加しましたが、今度は新しくテーブルを作成しフィールド設定をする場合です。この方法では、シリアル値の入るフィールドを使いません。
ファイルメーカーでは隠れシリアルキーのような数字であるレコードIDというIDが隠れています。
どのテーブルにも設定されているIDで、当然のことながら他と重複しません。これは、関数で知ることができます。
Right ( 00000 & Get( レコードID ) ; 6 )
先ほどとほとんど変わりません。この式をテキストフィールドの自動計算に設定すればいいでしょう。
ポイント
ポイントとしては、Right関数の引数に 「00000 &」という部分です。
ファイルメーカーを触り始めて、慣れていない方だとなかなかこの発想にたどり着かないことがあります。
こういったケースでは、シリアル番号の桁数を調べて、足りない部分が何ケタかを計算して、その分を足そうとするのが普通の発想かもしれません。
しかし逆に、最高でも0は5つという点に着目して、とりあえず「00000」とシリアルを付け、それから6ケタに調整するというやり方が非常に簡単です。
このやり方は、年と月をくっつけて月を識別する数字を作る場合も同じです。
月は1ケタの場合も2ケタの場合もあります。そのままつけてしまうと、ソートしたときにつき順に並びませんので、この場合も月に「0」を付けて、2ケタに調整していきます。
2016年1月20日水曜日
ファイルメーカー(FileMaker)を同期で使おう Part5
このシリーズの他の記事はこちら
ファイルメーカー(FileMaker)を同期で使おう Part1
ファイルメーカー(FileMaker)を同期で使おう Part2
ファイルメーカー(FileMaker)を同期で使おう Part3
ファイルメーカー(FileMaker)を同期で使おう Part4
こんにちは同期シリーズ第5弾です。ファイルメーカー(FileMaker)を同期で使おう Part1
ファイルメーカー(FileMaker)を同期で使おう Part2
ファイルメーカー(FileMaker)を同期で使おう Part3
ファイルメーカー(FileMaker)を同期で使おう Part4
今回は、入力用ファイルと中間ファイルのデータの受け渡しです。
以前に、入力用ファイルには中間ファイルのテーブルを含めてのデータの受け渡しはできないということは書いたと思います。
ファイルメーカー(FileMaker)を同期で使おう Part4では、テーブルを含めて、それを利用してデータの受け渡しをしましたが、同じ方法だと、FileMaker Serverから接続を解除するのが難しいのです。
入力用のファイルと中間ファイルのやり取りにはスクリプト引数とスクリプトの結果という引数と返り値を利用してみたいと思います。
この入力用ファイル(client)にも同じテーブルを作成します。フィールドもこのようになっています。
このテーブルに、スクリプトを使ってデータを持ってきます。
中間ファイルのスクリプト
まず中間ファイルにこのようなスクリプトを作成します。
内容としては、
共有ファイルから営業確認タイムスタンプに入力がないデータを検索して、中間ファイルのテーブルにデータをコピーします。
データがないときは処理を終了します。
11行目~は取得したデータを変数に一度格納します。
13行目は、
$data & 受注マスター_sample::受注番号 & "#" &
受注マスター_sample::受注日 & "#" &
受注マスター_sample::商品名 & "#" &
受注マスター_sample::数量 & "¶"
という感じになっています。
1レコードを1行として、改行区切りで格納します。
また、各フィールドは「#」を使って区切っています。もし、商品名などで#を使うケースがあれば、絶対に使わないような文字を区切りとして使います。これは1文字でなくても構いません。
入力用ファイルのスクリプト
こちらが入力用ファイルのスクリプトです。
先ほどの中間ファイルのスクリプトを実行し、スクリプトの結果としてデータを受け取ります。
それをこのファイルにコピーしています。
内容としては、レコードを改行区切りで取得したデータを1レコードごとに変数に格納し、
さらにフィールド区切りとしていた#を改行に変換して、
フィールド設定でデータを書き込んでいます。
Excelファイルあたりでエクスポート、インポートの方が楽かもしれませんが、
こういうやり方もあるというのを紹介できれば幸いです。
好みでお使いいただければと思います。
ラベル:
FileMaker,
FileMaker Server,
同期モデル
登録:
投稿 (Atom)