以下のような
sqlを二つ使い、検索を行なうにはどのようにすれば良いでしょうか
var queryString = '日付 = "'+moment().format('YYYY-MM-15')+'"';
var queryString2 = '作成者 = "'+kintone.getLoginUser().name+'"';
私が検討したところ、
var params = {
// 検索条件
"query": queryString + 'AND' +queryString2,
};
このような記述かと考えたのですが、上手く行かないのでどなたかご教授ください
たいさん
1.記述としては、AND でつなぐ方法で問題ないと思います。
レコードの取得(GET)
https://developer.cybozu.io/hc/ja/articles/202331474
上記URLにも、下記サンプル記述あり。
企業マスタ.企業名 in (“サイボウズ”) and 企業マスタ.所在地 like “東京都”
2.‘AND’ でつないでいるので、queryString と queryString2 の間に空白ができない点は少し気になります。
’ and ’ としたら、空白が入って、上手くいくかも?
3.それでもだめならば、原因がわかりませんが、 queryString と queryString2 それぞれ単体で動かしてみて、
上手くいくかを試す。くらいでしょうか。
捕捉:API定義上は AND ではなく and ですね。 大文字小文字関係あるか、試したことがないのでわかりませんが、参考まで。
上海レンユアー 松村さん
コメント有難う御座います
今、確かめたところ、
queryString2の内容に誤りがあることが分かりました
queryString2で選択しているものは作成者のフォームを使用しておりまして、
これが普通の文字フォームであれば、取得できることが分かりました。
そこで詳しく調べたところ、
作成者のフォームの値の取得には「in , not in** 」のみが有効であることが分かりました**
そこでこのように記述したのですが、上手く行きません
** var queryString2 = '作成者 in "田中一郎"';**
申し訳ないのですが、この見解に関して
ご教授願います
たいさん
1. in の使用方法は下記URLご参照。
レコードの一括取得(クエリで条件を指定)
https://developer.cybozu.io/hc/ja/articles/202331474#step2
ドロップダウン_0 in (“A”, “B”) の様な形式ですね。
2.作成者 in (“hogehoge”) で 検索する場合、 hogehoge 部分は、作成者の名前ではなく、コードが必要
だったと思います。
なので、kintone.getLoginUser().name ではなく kintone.getLoginUser().code に変更すれば、
上手くいくかもしれません。
コメント有難う御座います
1,2の両方を試したのですが、上手く行きませんでした。
上海レンユアー松村さんの指定したページに気になる箇所がありました
それがこちらの記述です
- ※1:ログイン名、グループコード 又は組織コードを指定する。
ログイン名が◯◯と△△のユーザー、グループコードが××のグループ、組織コードが□□の組織がユーザ選択フィールドに含まれているレコードのリクエストは次の用に表記できます: user_field in (" USER", “◯◯”, “△△”, " GROUP", “××”, " ORGANIZATION", “□□”)
この内容は今回の問題に関係あると思うのですが、いかがでしょうか?
たいさん
作成者のQUERY条件ですが、私の環境では、
作成者 in(“hogehoge”)
の記述で、問題なくレコード取得できますね。
1)Query条件なしでレコード取得
2)上記表記でレコード取得 hogehoge 部分は固定で、実在するデータの条件
3)kintone.getLoginUser().code を使用して、レコード取得
この順番で試していけば、問題の原因が掴みやすいと思います。