レコード番号について

レコード番号の利用についてお教えくだしあ。

レコードを新規追加する際に、レコード番号と特定の文字列を結合して、フィールドにセットしたいのですが、レコード番号が採番されるタイミングがレコード登録完了直前のタイミングなので、上手くいきません。

うまいやり方をご存じでしたらお教えいただけませんでしょうか。

mikanさん

はじめまして、アイティー・プラス・ワンの星野です。

レコードにレコード番号を利用した独自のユニークなキーを設定したいということでしょうか?
例えばですが、レコードの新規追加が成功すると必ずレコード詳細画面が表示されます。
レコード詳細が表示されたタイミングのイベント(app.record.detail.show)で以下のことを行えば実現できるかと思います。

■事前準備
アプリにユニークキーを保存するフィールドを用意する
(画面から編集できないように非活性にしておくといいかもしれません。)

■詳細画面表示時(app.record.detail.show)
1.ユニークキーを保存するフィールドにデータがあるか確認する。
2.データがあった場合はユニークキーとして正しいか確認する
(レコード番号と特定の文字であるか)
→ユニークキーとして正しい場合は処理終了
3.データがなかった場合は、ユニークキーを作成して、
自分のレコードに対して更新処理を行う。(PUT)
4.更新が正常完了したら画面をリロードする。

以上です、参考までに。

星野さま

ご回答ありがとうございます。

大変お手数なのですが、参考までにソースなどいただくことはできませんでしょうか。

何卒よろしくお願いいたします。

mikanさん
ラジカルブリッジの斎藤です。

星野さんからも回答が出ていますが、このように登録しようとしているレコード自身に採番されたレコード番号を使うやり方とは別に、既に登録されているレコード番号の最大値に1を足したものを使うというやり方をすれば、レコード保存実行前イベント内でやりたいことができると思います。

似たようなことを行うサンプルがこちらに出ていますのでご参考まで。

https://cybozudev.zendesk.com/hc/ja/articles/202640930-%E8%87%AA%E5%8B%95%E6%8E%A1%E7%95%AA%E3%81%97%E3%81%A6-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E7%99%BB%E9%8C%B2%E3%81%99%E3%82%8B

斎藤さん

追加情報ありがとうございます。
自動採番の方がやり方としてスマートですね。

複数人が同時保存したとき・・・なんてのを考えてしまって面倒なやり方を提示していました。

mikanさん、斎藤さんが記載したURLの先が参考になると思われます。
もしそれを試してみてもダメでしたら、再度質問願います。
以上です。

齋藤様 星野様

ご回答ありがとうございます!
いただきましたコメントを参考にさせていただきます。

今後ともよろしくお願いいたします。