お世話になっております。
先日、モバイル版の重複チェックについて質問し、
https://www.joyzo.co.jp/blog/3459 のページを紹介していただきました。
こちらを参考にし、日付の重複チェックはできました。
そこで質問なのですがさらに制作者も付け加えて重複チェックしたいと思っています。
制作者+日付を重複チェックするというイメージです。
自分では、よく分からずできませんでしたので質問させていただきました。
よろしくお願い致します。
お世話になっております。
先日、モバイル版の重複チェックについて質問し、
https://www.joyzo.co.jp/blog/3459 のページを紹介していただきました。
こちらを参考にし、日付の重複チェックはできました。
そこで質問なのですがさらに制作者も付け加えて重複チェックしたいと思っています。
制作者+日付を重複チェックするというイメージです。
自分では、よく分からずできませんでしたので質問させていただきました。
よろしくお願い致します。
以前のモバイルのお話がこちらで、その際に言及されていたプラグインは文字列結合プラグインあたりではないかと想像しますが、
直接的な対応というより少し立ち戻って考えますと、重複チェックには基本的にkintoneのフィールド設定を利用するように寄せる方が、設定やカスタマイズの労力のトータルが減るかと思います。特にモバイルと統一的に設定・カスタマイズを行おうというのであれば尚更かと思います。
(計算機能を有効にしていない)文字列1行フィールドを使って重複チェックを行うという意図です。
例えば、・・・以前のモバイルのお話であれば、日付を使った値をセットするフィールドがあると思います。こちらを重複禁止の文字列1行フィールドとして設定し、変更時に日付を変換してこのフィールドにセットするというカスタマイズをPCとモバイルに統一的に適用するという方法です。
今回のケースですと、やはり制作者+日付をセットするフィールドを重複禁止の文字列1行フィールドとして設定し、変更イベントを用いたカスタマイズとして、制作者+日付の値をセットする内容とするものです。
いずれもカスタマイズは変更イベントで保存時にエラーを引っ掛けることができます。
https://www.joyzo.co.jp/blog/3459 の内容はユーザー選択フィールドのみで重複チェックすることを狙っていますが、別途日付を付した値を使って重複チェックするとすると、上記の方法を取るだろうと思われます。言い換えると、ユーザー選択フィールドの値を使った重複チェックも記事のような直接的な方法ではなく、ここまでの議論のように文字列1行フィールドへコピーして間接的に実現することも可能ということになります。
最後に今回の問いへの直接的な回答としては、制作者+日付の値をセットしているフィールドでセットしようとしている値をAPIで検索して、既にあればエラー、なければパスさせる手続きとなるかと思います。
ちょっと長く小難しくなりましたが、ご検討頂ければ。あと、トライ中のコードをつけてもらったりすると、やろうとされている内容がより詳細に伝わり、話が早くなると思います。
Ryu Yamashita 様
コメントありがとうございます。
また、返信が遅れて申し訳ありません。
制作者+日付のフィールドの値を文字列(一行)フィールドにコピーし、それから重複にチェックをいれるという理解で宜しいでしょうか。
厚かましくて申し訳ないのですが、フィールドの値をコピーする方法がわかりませんので参考になるページなどありましたら教えていただけるとありがたいです。
このような初心者な質問に細かく回答してくださり、ありがとうございました。頑張ってみます。
> 制作者+日付のフィールドの値を文字列(一行)フィールドにコピーし、それから重複にチェックをいれる
おっしゃるとおりです。ただ、結合しつつコピーなのでこういった感じになると思います。
// user: 制作者のフィールドコード
// date: 日付のフィールドコード
var concatenator = '_'; // 連結文字
kintone.events.on([ // フィールド変更イベント
'app.record.create.show', // 再利用時の初期値に対する対応
'app.record.create.change.user',
'app.record.edit.change.user',
'app.record.index.edit.change.user',
'app.record.create.change.date',
'app.record.edit.change.date',
'app.record.index.edit.change.user'
], function(event) {
varrecord=event.record;
if(record.user.value&&record.date.value){ // ユーザー選択フィールドなら record.user.value[0].name等
record.result.value=record.user.value+concatenator+record.date.value;
}
returnevent;
});
直接的ではないにしても参考にできるサンプルは公式含めて充実してきているので、探すのはもちろんトライする習慣をつけて頂くとよろしいかと思います。