kintoneの基本機能のみで「すべての条件を満たす」と「いずれかの条件をみたす」を混在させたい

# はじめに
- ｲｼｲｹﾝﾀﾛｳです。ハケをつくっている会社の兼業情シスでkintoneを触る係をしてます
- kintone認定資格は3つとも取得済です
- その他にITストラテジストやシステム監査技術者などの国家資格をいくつか取得しています
- kintoneのカスタマイズは社内向けのみで、プラグインは作ってません（作れません）
[![main_image.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/105085/564c7de8-6fc7-61c7-a97f-f8d0a7c9943d.jpeg)](https://www.maru-t.co.jp/painting_brush/)
![associate.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/105085/0a8e56b0-b57c-607c-b89b-19e793c78717.png) ![appdesignsp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/105085/12705b5d-9006-2e8c-f9de-56ec7a22b611.png) ![customization.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/105085/d318907a-f190-2542-82da-e6ee22e1498b.png)

# やりたいこと
kintoneの基本機能のみで、一覧画面の絞り込み条件において通常はどちらかしか選べない、「すべての条件を満たす」と「いずれかの条件をみたす」を同時に設定したい

# 完成！
- 例）金都運総研の情シスに所属する、保有資格1～3のどこかに"IT"を含む資格名が記述されている人
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/105085/158040ad-b3cc-d08a-3e02-62bd71519501.png)

# 考え方
- 絞り込み結果はurlで表現されます
- "q=" 以降が絞り込み条件なので手動で変更して求める結果を取得します

# 具体的実現方法
- 絞り込み前の一覧画面を表示します
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/105085/b7253d79-2784-0a74-d661-912cb6c368e6.png)


- 「すべての条件をみたす」でいったん適用します
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/105085/cf2a5aaa-c227-8db9-1f88-ad88b1958b16.png)


- urlをテキストエディタにコピペします

```
https://●●●●●.cybozu.com/k/●●●●●/?view=●●●●●&q=
f2178%20%3D%20%22%E9%87%91%E9%83%BD%E9%81%8B%E7%B7%8F%E7%A0%94%22
%20and%20
f2179%20%3D%20%22%E6%83%85%E5%A0%B1%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E9%83%A8%22
%20and%20
f5951778%20like%20%22IT%22
%20and%20
f5951779%20like%20%22IT%22
%20and%20
f5951780%20like%20%22IT%22
#sort_0=f2170&order_0=desc&size=20
```  

- "q=" 以降 "#sort_0" の直前までが絞り込みの文字列です
- fxxxxxは自動でフィールドに割り当てられるidです
- 日本語にするとこんな感じ

```
会社名 = "金都運総研"
 and 
部署名 = "情報システム部"
 and 
保有資格1 like "IT"
 and 
保有資格2 like "IT"
 and 
保有資格3 like "IT"
```

- 変更したい完成形は、保有資格だけorでつなげてカッコでくくればokです

```
会社名 = "金都運総研"
 and 
部署名 = "情報システム部"
 and
( 
 保有資格1 like "IT"
  or 
 保有資格2 like "IT"
  or 
 保有資格3 like "IT"
)
```

- 日本語の完成形に合わせてurlを手動で変更
- うまくいかなかったらurlエンコード/デコードツールで試してみてください

```
https://●●●●●.cybozu.com/k/●●●●●/?view=●●●●●&q=
f2178%20%3D%20%22%E9%87%91%E9%83%BD%E9%81%8B%E7%B7%8F%E7%A0%94%22
%20and%20
f2179%20%3D%20%22%E6%83%85%E5%A0%B1%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E9%83%A8%22
%20and%20
(
f5951778%20like%20%22IT%22
%20or%20
f5951779%20like%20%22IT%22
%20or%20
f5951780%20like%20%22IT%22
)
#sort_0=f2170&order_0=desc&size=20
```  

念のため ```kintone.app.getQueryCondition()``` で確認したら無事反映されてました。

```
会社名 = "金都運総研" and 部署名 = "情報システム部" and (保有資格1 like "IT" or 保有資格2 like "IT" or 保有資格3 like "IT")
```  

# 再利用する方法
- 単なるurlなのでkintone上にブックマークできます自分が再利用したいだけならばコレが便利です
- 問題は他の人と共有したいときですが、残念ながら一覧として保存はできませんメールやチャットでurlを渡すしかないです
- kintoneのスペースでの共有だと自動的にデコードされてリンクが形成されない場合があるので注意（コピペすれば問題ない）
- そうするとモバイルでも閲覧できます
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/105085/1e64ad5f-e0aa-37ef-cf07-ec8c22b5a68c.png)

# 罠ありました
- モバイルの結果も```kintone.mobile.app.getQueryCondition()``` で確認したんですが、なぜかカッコが反映されていない
 
```
会社名 = "金都運総研" and 部署名 = "情報システム部" and 保有資格1 like "IT" or 保有資格2 like "IT" or 保有資格3 like "IT"
``` 
- PCと異なるので、この関数結果文字列をさらに二次利用したいときは注意です
- twitterに書いた違和感はコレでした

https://twitter.com/kentaro1sh11/status/1444189566689177604

# この運用はさすがに現実的ではないので

- 一応やりたいことができたとはいえ、いくらなんでも複雑すぎてこのままではとても実運用できません
- 少数パターンならリンク集とかポータルアイコンで乗り切れるけど、量が多くなると厳しい
- ということで、url生成のために別なアプリを作る方法を考えました

# url生成アプリ

- and用とor用それぞれのフィールド名 / 比較演算子 / 比較する値を選んで、viewIdに続く"q="以降の文字列を自動計算します
- 保存後、詳細画面からコピーしてアドレスバーに貼り付ければok
- いま気づいたけど"https://" からフルパス作成するほうが、そのままチャットやメールに貼れて便利そうですね次からそうします
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/105085/ca248880-256c-6323-66a4-8146507c1e92.png)
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/105085/151ce495-a70b-0af7-c87a-5a4dad8fc2db.png)





# おわりに

[![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/105085/96e36e0d-cf5c-09f2-ff6b-5fb1ffc6cca4.png)
](https://jp.cybozu.help/k/ja/trouble_shooting/app_qa/and_or.html)
- できましたー！**対[公式ヘルプ](https://jp.cybozu.help/k/ja/trouble_shooting/app_qa/and_or.html)2勝目**です！😤（**1勝目**は[こちら](https://qiita.com/kentaro1sh11/items/90b8ed34c855d73b6bf7)）
- スタンダードコースなら別アプリよりヘッダーに kintone ui component v1 を置く方が早いです
- そして塗装用ローラーもつくってます
[![main_image (1).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/105085/d20f1b7b-355a-1524-829f-71fcd21bdfed.jpeg)](https://www.maru-t.co.jp/painting_roller/)