先日FX.php メーリングリストでのやりとりで初めて知りましたが、ポータルレコードの指定方法が FMP6 と FMP7 とで違うのですね。
FMP6:
[ポータルのリレーション名]::[ポータルレコードのフィールド名].n
※nはそのレコードがポータル中の何行目かを表す整数
FMP7:
[Table Occurrence 名]::[ポータルレコードのフィールド名].xxxx
※xxxxはそのポータルレコードのrecord id
実質的な違いは最後の .n か .xxxx かというとことです。ポータル行の追加は .0 を使うのは同じだそうです。
確かにFMP6の頃、カスタムWebで編集中に(例えば他の人がポータルレコードを追加したりして)ポータルレコードの並びが変わってしまって、誤ったレコードに編集結果を書き込んでしまう恐れがありましたね。
上述の回答によると、ポータルレコードの record id は FX.php では自動的には取得できないため、データベースに record id を代入する計算フィールドを作ってやり、明示的に取得しなければならないそうです。
しかしこのポータル行のカスタムWebでの編集というのは、複数ユーザによる同時編集の可能性がある場合には、FileMakerにはトランザクション処理がないため、工夫をしないとそのままでは危険すぎますね。
いま漠然と考えているのは、複数ポータル行の編集が必要になった場合、AJAXを使って、編集開始時にその行レコードの modification id を取得してデータが最新であることを確認し、1行の編集が確定する毎にデータベースに編集結果を書き込む、という方法です。
2005年08月19日
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/6043606
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック
http://blog.seesaa.jp/tb/6043606
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック

