FAMLog
FileMaker Server カスタムWebテクニック改訂版:第3章の変更点
November 21, 2008
書籍「FileMaker Server カスタムWebテクニック改訂版」は、2005年11月に発行された「FileMaker Server カスタムWebテクニック」に大幅に加筆修正を加え、構成を変更した改訂版です。
第3章の「データの取得と処理」では、主にバージョン8および9の新機能についての内容もカバーし、下記の節を新たに追加しました。
・3.2.4 FileMakerデータベースのエラーコード番号を取得する
・3.3.21 スクリプトに引数を渡す
・3.3.22 FileMakerクエリー文字列で複雑な検索条件を指定して検索を行う(複合検索)
・3.3.24 ポータルレコードの取得にポータル設定オプションを利用する
・3.3.27 ポータル内のレコードを削除する
上記以外も全体的に文章の見直しを行い、細かい注意点や解説を追加、更新しました。また、各クエリーコマンドおよび引数が、FileMaker API for PHPにおけるどのメソッドに対応しているかという記述も参考までに追加しました。
[関連]FileMaker Server カスタムWebテクニック改訂版:内容の立ち読み(FAMLog)
Factory's FileMaker a go-go! vol.23
August 18, 2008
有限会社ファクトリーが毎月Apple Store, Shibuyaで行っているイベント「Factory's FileMaker a go-go! vol.23」を開催すると案内しています。
第23回目は2008年8月20日(水)に開催され、PHPを利用したカスタムWeb公開とiPhone/iPod touchの連携による業務システム提案や、Factory's FileMaker Plug-in 2に関する引数の記述方法について解説される予定となっています。
開催日時:2008年8月20日(水)19:00-20:00
開催場所:Apple Store, Shibuya
http://www.apple.com/jp/retail/shibuya/map/
なお、同イベントは参加費および事前参加登録は共に不要です。
FileMaker Server 9で追加されたクエリーコマンドとクエリー引数
March 28, 2008
FileMaker Server 9のXMLおよびXSLTを使用したカスタムWeb公開では、複合検索やポータルレコード処理用のクエリーコマンドとクエリー引数が新たにサポートされています。
バージョン9で追加されたクエリーコマンドとクエリー引数の一覧は下記の通りです。
・-findqueryクエリーコマンド
・-queryクエリー引数
・-relatedsets.filterクエリー引数
・-relatedsets.maxクエリー引数
・-delete.relatedクエリー引数
「-findquery」クエリーコマンドと「-query」クエリー引数は、OR検索とAND検索の検索条件を組み合わせて検索を実行するときに利用できるものです。
「-relatedsets.filter」クエリー引数と「-relatedsets.max」クエリー引数はポータルレコードの表示行数を制限する場合に使用し、「-delete.related」クエリー引数はポータルレコードを削除する際に利用するものです。
Exact関数
August 07, 2007
FileMaker ProのExact関数は、引数として指定した2つのテキスト、もしくはフィールドの内容が完全に一致する場合に「1」(真)、それ以外の場合に「0」(偽)を返します。
[構文]
Exact(テキスト; 比較テキスト)
[例]
Exact("FileMaker"; "FILEMAKER")
Exact (国; "日本")
FileMakerでは、比較演算子である「=」は大文字と小文字を区別しないため、それらを区別して文字列を比較したい場合にはExact関数を利用するように注意する必要があります。
なお、Exact関数で値を評価する場合、フォント、スタイル、サイズなどのテキスト属性は考慮されません。
コマンドラインでソフトウェア・アップデートを実行する (3)
April 03, 2007
Mac OS XおよびMac OS X Serverにおいて、softwareupdateコマンドを使用してソフトウェア・アップデートのスケジュール設定を変更することができます。
ユーザーごとに設定できるソフトウェア・アップデートのスケジュール設定を変更するには、--scheduleオプションを使用します。--scheduleオプションの引数がonの場合には定期的にアップデートを確認するようになり、offの場合にはアップデートの確認を行わなくなります。
[実行例]
$ softwareupdate --schedule off
Automatic check is off
$ softwareupdate --schedule on
Automatic check is on
fmxslt:set_session_object関数の引数
February 22, 2007
「FileMaker Server 8 Advanced カスタムWeb公開ガイド」には、fmxslt:set_session_object関数の引数としてノードセットや論理値を指定できることが記載されていますが、実際にはノードセットおよび論理値を指定することはできません。
fmxslt:set_session_object関数に渡されるオブジェクトは文字列として解釈されるようになっています。オブジェクトが文字列に変換されない場合はセッションに値が保存されず、FileMaker XSLT拡張関数のエラーコードは10100(原因不明のセッションエラー)が設定されます。また、空の文字列やnullを使用してセッションオブジェクトを設定しようとしても、上記と同様のエラーコード10100のエラーが発生します。このことは、fmxslt:set_session_timeout関数の件と同様、「FMS Web お読みください.pdf」にて言及されています。
なお、セッションの変数を削除する場合には、fmxslt:remove_session_object関数を使用します。
完全修飾フィールド名の各要素について (1)
December 28, 2006
FileMaker Server AdvancedのカスタムWeb公開では、完全修飾フィールド名を用いると、処理の対象となるフィールドが正確に識別されますが、その構文は次のようになっています。
[構文]
テーブル名::フィールド名(繰り返し数).レコードID
「テーブル名」には、フィールドが含まれるテーブルの名前を指定します。-layクエリー引数で指定されたレイアウトの基本テーブルにフィールドがない場合にのみ必要であり、それ以外の場合ではテーブル名は省略可能です。
テーブル名を指定する場合には、テーブル名とフィールド名の間に「::」を付け加えます。
完全修飾フィールド名の構文
December 27, 2006
FileMaker Server AdvancedのカスタムWeb公開では、FileMakerクエリー文字列においてフィールド名を指定する場合に、完全修飾フィールド名を使用しなければならない場合があります。
具体的には、-layクエリー引数で指定されたレイアウトの基本テーブルとは異なるテーブルにあるフィールドを処理対象とする場合に、完全修飾フィールド名で対象フィールドを指定する必要があります。
完全修飾フィールド名を用いると、処理の対象となるフィールドが正確に識別されますが、その構文は次のようになっています。
[構文]
テーブル名::フィールド名(繰り返し数).レコードID
[例]
tablename::fieldname(2).3
クエリーコマンドを使用する際の注意点 (6)
December 26, 2006
FileMaker Server Advancedにおいて、XMLリクエストまたはXSLTリクエストで任意のフィールドを指定する際、フィールド名クエリー引数に「.(ピリオド)」が含まれるフィールド名(「text.field」など)を使用することができません。
「.(ピリオド)」は、完全修飾フィールド名でレコードIDを指定する場合に使用される予約済みの文字であるためです。ピリオドが含まれるフィールドを指定した場合、XMLリクエストまたはXSLTリクエストではそのフィールドにアクセスできないため、通常エラー番号102(フィールドが見つかりません)のエラーが返ります。
また、上記と関連して、「::」は完全修飾フィールド名でテーブル名を指定する場合に使用される予約語であるため、フィールド名クエリー引数に「::」が含まれるフィールド名(「text::field」など)も同様に使用することができません。
Evaluate関数
December 25, 2006
Evaluate関数は、FileMaker 7で追加された関数です。引数で指定した式を計算式とみなして評価します。
[構文]
Evaluate(式)
Evaluate(式; [フィールド1; フィールド2; フィールド3; ...])
引数には式(テキスト式またはテキストフィールド)だけでなく、オプションでフィールドの一覧を指定することもできます。この場合、引数で指定したフィールドのいずれかの値が変更されると、式が再評価されて結果が更新されます。
[例]
Evaluate("Get(タイムスタンプ)"; [フィールドB; フィールドC])
Evaluate関数は、応用次第でさまざまな活用が可能であり、使いこなすことができればかなり役立つ関数です。
[関連]第15回 FileMaker Fun Night! イベントレポート(Knockin' on Seven's Door)
(2021/03/07追記:リンク先のページがなくなっていたので、リンクを削除しました。)