そのスクリプトが -edit コマンドで編集したレコードを書き換える場合、そのレコードの modID は -edit コマンドを実行する前に比べて +2 になりますが、-edit コマンドに対する戻り値 (FMPXMLRESULT) の modID は +1 しか増えておらず、この戻り値を元に再度 -edit を実行すると、modID 不一致のエラー (306) になってしまいます。
不思議なのは、フィールドのデータは、ちゃんとスクリプト実行後の値になっていることです。
とりあえず、編集 (-edit コマンド) 実行後には、編集できない画面に遷移して編集結果を確認させ、さらに編集が必要な場合はもう一度最新のデータを読み込んで編集画面に遷移することで対応しようと思います。
[03-10-2006 追記]
ひょっとすると、データベースセッションを無効にしているせいかも。XSLT Publishingの所に設定があるのだけど、XML Publishingにも影響するのかな?するだろうな・・・いま検証できないのでとりあえず追記だけ。
FMServer 7 Advanced Web 公開 インストールガイド 43ページより
[データベースセッション :] オプションを無効にした場合、次のような長所と短所があります。
○ リクエスト間でグローバル変数の値が保存されない
○ スクリプトで状態を変更した場合、リクエスト間で変更後の状態が維持されない
○ Web セッションの数が FileMaker Server 上のデータベースセッションの最大数に制限されない。これによって、 Web 公開エンジンの拡張性が向上します。


スクリプトはFMP6から結構手を入れないといけませんね。