いつもお世話になっております。最近カスタマイズを始めた新参者です。
現在、顧客マスタのコード採番を自動化できないかと検討中です。
コードはあ行:1、か行:2、さ行:3、、、、というルールで一桁目を決定し、
残り3桁は、かな順に並ぶように、いい感じに間を持たせた4桁のコードを振りたいと考えています。
既存データを取得し、「追加したい顧客名かな」を加えた配列をソートし、
「追加したい顧客名かな」の前後のコードの中間値を振ればいいやと簡単に考えていたのですが、既存データを取得できず悩んでおります。
普通のSQLなら、【顧客名かな>”あ” AND 顧客名かな<”か” 】というような条件で"あ行"のデータが取得可能ですが、kintoneの文字列検索は完全一致かLIKE検索しかできません。
あ行のデータを取得するのに何かいい方法はないでしょうか?
(全件取得はデータ量的にできれば避けたいと思っています)
(コードも文字列なので、不等号での絞込みはできません)
【例】
1010:あああ商事
1050:いいい商事
2010:かかか商事
こんなデータが登録してあるマスタに、
今回「1030:あい商事」を追加するが「1030」を自動採番したい。
jimusyoさん、こんにちは。
プロジェクト・アスノートの松田です。
そこまで細かいルールの採番が本当に必要なのか疑問に思いますが、
もしやりたい事が、検索や一覧絞り込み時の利便性ということであれば、一つの方法として、
顧客マスタのレコード作成・保存時に、ロジカルに採番できる部分はレコード単位で採番してしまう、
というカスタマイズを行うというのはどうでしょうか?
検索や絞り込みに必要なキーとなるフィールドを用意して、そこに対して顧客名からデータ更新を行うというイメージです。
私の経験では、特に顧客の会社名などの場合は、名称テキストからさまざまなロジックを組むと、登録時の揺らぎや、名称変更など、あとで破綻するケースが多く、必要最小限の検索キーだけ生成しておいて、あとは登録順に連番を振る程度で良いのかなという感度です。
一方、あ行だけのレコードデータを取得する方法ですが、
他にもいいやり方があるかもしれませんが、
REST API取得時のクエリーでは指定できないので、レコード件数にもよりますが、全件取得後そのデータを必要な条件で絞り込み等行う、という方法になるかと思います。
参考:https://qiita.com/_muraham/items/f585d5d0f3c65451f093
プロジェクト・アスノート 松田様
ご回答ありがとうございます。
採番ルールへのご指摘ごもっともです。
すでに動いているシステムを移行する関係上、崩すわけにもいかず、
しかし人が目視で採番すると思った以上に適当な発番になってしまい、
なんとかできないかと検討していたしだいです。
(いい感じに並べるって人にしかできないのに、人って信用なりませんね)
書き込みの後に、
顧客コードが「文字列(1行)」なのはもうどうしようもないので、
「数値」のダミー項目を増やして、submitイベントでコピーすれば!
とひらめきました(ひらめきというか苦肉の策・・・)
顧客コードが数値なら付近のデータが取得できるので、なんとなく形にはなりました。
文字列での絞り込みがもっと自由ならこんなに困ることもなかったのですが、、、kintoneさんの今後に期待します。