2005年08月19日

FMP7 + FX.php でのポータルレコードの指定方法

先日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行の編集が確定する毎にデータベースに編集結果を書き込む、という方法です。
posted by Kojima at 15:30| Comment(0) | TrackBack(0) | 覚え書き | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。