いいね!数

0

閲覧数
433

ノーツクライアントで使用していたDBをXpages化しました。

既存文書を保存ボタンでdocument1.save();として保存すると競合文書ができてしまいます。

フォームを単純化していったのですが、やはり競合文書になります。

以下のような設定がしてあるのですが、その他、みるべきところはあるでしょうか?

 

同じような経験した方、いらっしゃいましたらヒントを頂けると助かります。

情報が少なくて申し訳ありません。

よろしくお願い致します。

サーバー情報: | クライアント情報: | 
カテゴリ:アプリ開発 - XPages | タグ:
  | 質問日時:2017/05/31 14:34:05

回答・コメント

いいね!数

0

シンプルアクションの「文書の保存」を使用してみたのですが、これでも

競合ができました。何がいけないのでしょうか・・・・?

回答日時:2017/05/31 14:44:36

いいね!数

0

ayaさん、こんにちは。

この掲示板をご覧になられている諸先輩方と比べて素人の私ですが、わかる範囲で回答します。

 

競合文書が作成されたという事は、書かれているプログラムで以下のような処理をになっていると思われます。

 

例)

編集したい「文書0531」を編集モードで開く → 開いた文書が保存されないうちに、「文書0531」を編集モードで開く処理がもう一度発生

→ その状態でデータ保存 → もう一つも保存 → 競合文書として保存される。

 

ノーツは、同じ文書を同時に複数編集してる最中に、データの保存が発生すると、競合文書として保存されます。

 

そのため、使用しているカスタムコントロールやXSPファイルで、2回編集がかかるような処理を行っていないかプログラムを確認

もしくは、編集する文書をロックする処理を、間に入れれば良いのかもしれません。

 

どこが原因かわからないのであれば、もう一度新規で一からDBを作成する方法もありです。

 

 

この質問内容だけでは、プログラムを見ないと具体的な原因を示すことは難しいかもしれません。

 

 

参考になるかわかりませんが、以上です。

 

 

 

 

 

 

 

 

 

回答日時:2017/05/31 18:36:55

いいね!数

0

kotetuさん、ご回答をありがとうございます。

今回のDBは余分な式を全て削除してあるので、やっているのはdocument1.save()のみです。

それでも競合文書が発生します。発生した競合文書を削除して親文書のほうを編集・保存すると

もう競合は発生しません。ノーツクライアントで作った文書をそのままXpagesで編集保存すると

競合ができてしまいます。

他に見るべきところはあるでしょうか?Xpages上ではフォームはシンプルな構造になっていますが、

ノーツのフォームはたくさんのフィールドがありコードも書いてあります。

 

回答日時:2017/06/01 9:19:47

いいね!数

0

確認ですが、その不具合が発生されているDBは、ノーツクライアントとWeb両方で使用する予定なのでしょうか?

 

 

回答日時:2017/06/01 11:48:06

いいね!数

0

もしかしたらですが、フォームのプロパティで「自動的に編集モードにする」もしくはフォームのイベントで編集モードに切り替えるプログラムが入っていてそれとXPagesのプログラムが競合を起こしているという可能性はないでしょうか?

 

 

回答日時:2017/06/01 11:57:29

いいね!数

0

ndomino-sさん、ご回答ありがとうございます。

お騒がせしましたが解決しました。

編集ボタンに残っていたコードがいたずらをしていました。このコードに気づいていませんでした。

お恥ずかしい限りです。

ちなみに編集ボタンでNotesDocumentクラスで保存をしていて、さらに最後に保存ボタンで

NotesXSPDocumentで保存をかけていました。初歩的過ぎるバグでした・・。

回答日時:2017/06/01 14:25:06