2006年02月22日

FMS8Aで-scriptと-editコマンドの組み合わせで問題

web からデータを書き込んだ後、FileMaker script を実行してデータの処理を行なうため、-edit コマンドに -script パラメータを指定します。

そのスクリプトが -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 公開エンジンの拡張性が向上します。
posted by Kojima at 08:40| Comment(2) | TrackBack(0) | 覚え書き | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
そのスクリプトの中には[レコード/検索条件確定]スクリプトステップが入っているでしょうか。もしも入っていない場合には、入れてみると結果が違ってくるかと思います。
Posted by MATSUO, Atsushi at 2006年03月14日 21:53
あ〜、なるほど!こういうときに使うのですね。どうもありがとうございます。

スクリプトはFMP6から結構手を入れないといけませんね。
Posted by Kojima at 2006年03月15日 00:29
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

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


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

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

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