レコード一覧画面の抽出条件で、プルダウンメニューや複数選択メニューを抽出条件にすると、URLに
fxxxxxx in (“xxxxxxx”, “xxxxxxx”, …)
のように表示され、これを元に抽出条件が取得されています。
この"xxxxxxx"の数値を取得する方法はありますか?
プルダウンメニューで○○を選択すると、URL上の数値はxxxxxxx、と決まっていると思います。
下記URLの情報で、項目名やインデックスを取得することはできますが、
上記の数値は取得できないようです。
参照:https://developer.cybozu.io/hc/ja/articles/204783170
オリジナルのリンクをクリックすると、特定の抽出条件に設定された一覧画面が表示できる仕組みを作りたいと思っています。
よろしくお願いいたします。
TAKAさん
少し違うかもしれませんが、オリジナルのリンクを作成して、特定の抽出条件の一覧画面を出したい場合、
URL内のクエリで、表示するレコードの条件を指定
https://developer.cybozu.io/hc/ja/articles/202388664-URL内のクエリで-表示するレコードの条件を指定
こちらの仕組みを使うと、やりやすいかもしれません。
> URLに fxxxxxx in (“xxxxxxx”, “xxxxxxx”, …)
とありますが、これはkintoneが生成しているクエリです(URLデコードすると後述のkintone.app.getQueryCondition()と見え方が似てきますね)。
これと同じようなクエリを生成しつつ画面遷移させる方法が松村さんがあげてある方法です。
> オリジナルのリンクをクリックすると、特定の抽出条件に設定された一覧画面が表示できる仕組みを作りたいと思っています。
この要件を満たすには、この方法を知っていれば実現できそうに思われます。
他方、表示中の一覧画面のクエリを取得する方法としては、kintone.app.getQueryCondition()、kintone.app.getQuery() というJavaScript APIを利用します(先述のkintoneが生成するクエリと異なりフィールドコードが用いられるので我々が見てわかる形式になります)。
> この"xxxxxxx"の数値を取得する方法はありますか?
> プルダウンメニューで○○を選択すると、URL上の数値はxxxxxxx、と決まっていると思います。
に対しては、絞り込み条件の値を取得するという意味では、こちらが近いように感じましたが、クエリ文字列としての取得になるため、ここから更に絞り込み条件に用いられている値が必要であれば、正規表現を用いるなりしてテキスト処理で取得する必要があります。
また、クエリを使いこなすという点ではこちらも参考になると思いますので、参照されてみてください。
上海レンユアー松村様
お返事いただきありがとうございます。
まさにご提示いただいた方法を使って指定したいと考えているのですが、選択項目の指定の仕方が分からないのです…
テキストやラジオボタンなどの場合は、指定したい値そのものをURL内に含めればよいのですが、プルダウン型の項目の場合は、なぜか専用の数値を指定しなければならず、その数値の取得の仕方がわかりません。
ご存知の方がおられましたら、教えていただければ大変有難く存じます。
Ryu Yamashita様
お返事、ありがとうございます。
クエリの取得については大変参考になりました。
実現したいことについて、私のご説明が良くないようです。
とある選択メニューに、仮に「A」と「B」という選択肢があるとして、
この「A」「B」を選択して絞込みした場合、「~~&q=f999999 in (“12345”,“67890”)」というURLになるとします。
「~~&q=f999999 in (“12345”,“67890”)」というリンクをどこかに用意しておいて、クリックすれば「A」「B」が絞り込み選択された一覧が表示される、ということを実現したいと考えております。
この"12345","67890"を、絞込みをせずに知りたい、という要望でございます。
この選択メニューに、今後も「A」「B」しか無いのであれば、JavascriptにA=123456、B=67890と書いておけばよいですが、
選択肢を増減しても自動でリンクが生成できるようにしたいので、APIで取得できないか、と考えている次第です。
/k/v1/app/form/fields.jsonで項目の情報を取得すると、項目名もインデックスも取得できるのに、この数値部分だけはどこにもありません。
私の要望していることは実現できるでしょうか…?
もちろん、API以外の方法でも実現できるのであれば問題ありません。
もしご存知の方がいらっしゃいましたら、ご教授いただけましたら幸いです。
結論からいけば、この数値を取り出したり、意味づけを知ることは出来ないでしょう。kintoneが作り出しているURLとこの数値は内部仕様でしょうし、規則性も見てわかる様なものではないため、使いこなしようがないかと思います。内部仕様という言葉を用いるに至るのはドキュメントに記載がないのが大きいですが、現実的にもこれらの数値が設定とどう紐ついてるのかを知るすべがありません。また、そうなるとこれらを使ってカスタマイズするとすれば動作保証レベルや柔軟性はむしろ下がると捉えるべきだろうと思います。
逆に、クエリ・絞り込み条件やフィールド構成に関して使えるAPI(仕様)はここまで既出の3つなので、これらを使って等価的に実現する方法を考えることになると思います。
(1)/k/v1/app/form/fields.json
(2)kintone.app.getQueryCondition()、kintone.app.getQuery()
(3)URL内のクエリで-表示するレコードの条件を指定
Ryu Yamashita様
お返事ありがとうございます。
やはりドキュメントに記載がない以上、取得することはできないでしょうね…
詳細にご説明いただき、大変助かりました。
代替案として、独自のリンクURLからクエリを取得し、APIで希望のレコードを絞り込み抽出する方法を検討してみます。
お世話になりました。
レコード内の特殊なID(?)を取得することはできませんが、「?query=」で複数選択の抽出はできますよ。
クエリのURLを作成するサイトを作成したので試してみてください。
http://candi.work/project/kintone_queryurl_build.html
cookie様
お返事ありがとうございます。
(一度お返事を記入しましたが、削除して書き直します)
おかげさまで、URLで抽出条件を指定する方法が分かりました。
とても助かりました。
希望の動作を実現することができそうです。
他にアドバイスいただいた皆様にも感謝いたします。
ありがとうございました。