他アプリからルックアップしたデータ(フォーム:ユーザ選択)をクエリに入れることはできませんか?
予算の予実集計表を作成しています。
下記の「予算アプリと実績アプリの集計表をカスタマイズビューに表示する」
を参考に作成しています。
https://developer.cybozu.io/hc/ja/articles/202640870-%E4%BA%88%E7%AE%97%E3%82%A2%E3%83%97%E3%83%AA%E3%81%A8%E5%AE%9F%E7%B8%BE%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E9%9B%86%E8%A8%88%E8%A1%A8%E3%82%92%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%83%93%E3%83%A5%E3%83%BC%E3%81%AB%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B
サンプル36行目の
varparams={'app':appId,'query':'拠点 = "'+key1+'"'};
この部分についてなのですが、拠点になっている箇所を
例えば担当者などに変えたいと思いました。
HTTP Client Toolで試したところ
https://xxx.cybozu.com/k/v1/records.json?app=XX&query=担当者=佐藤
エラーになってしまいます。
担当者は別のマスタアプリからルックアップしてきている情報です。
フォームは「ユーザ選択」を使っています。
ルックアップしたものでも単なる文字列入力フォームだとクエリはかけられそうでした。
※一覧表示画面で並び替えが効く項目であればqueryが設定できそうだということは
他の情報でクエリを設定して試してみてわかりました。
ルックアップした情報でユーザ選択にしているものはクエリを使うことはできないのでしょうか?
ぜひご意見よろしくお願いします。
tanaka-rさん、こんにちは。
プロジェクト・アスノートの松田と申します。
フィールドがユーザー選択の場合は、「=」ではなく「in」を使えばいいと思います。
ユーザー選択は、複数選択可能なフィールドなので、配列形式だからですね。
参考: https://developer.cybozu.io/hc/ja/articles/202331474#step2
Shotaro Matsuda様
こんにちは。回答ありがとうございます。
inを使えば良いのですね。
「=」と「in」があって、それぞれ使うべき箇所がある点、理解できました。
ありがとうございます。!
さっそく「in」に変えて動作させたところ同じエラーが出てしまいました。
var appId = xx;
var name=records[i]['担当者'].value[0].name; //i はforループで設定されますが省略しています
var params = {'app': appId, 'query': '担当者 in ( " USER", "' + name + '")'};
return kintone.api('/k/v1/records', 'GET', params).then(function(resp) {
console.log(resp);
});
※ ‘担当者 in ("’ + name + ‘")’ としても同じ結果になりました。
また、HTTP Client Toolの方では別のエラーが出ました。
※ そもそもリクエストURLが間違っているなどありますでしょうか?
https://xxx.cybozu.com/k/v1/records.json?app=YY&query=担当者 in ("田中")
コードの書き方が間違っているなど、何かわかることはありますでしょうか?
tanaka-rさん、
クエリーで指定するユーザーは、名称ではなく、ログインIDを指定する必要があります。
田中***というのは、表示名ではないでしょうか?
Shotaro Matsuda様
回答ありがとうございます。
おっしゃる通り、田中***は表示名でした。
参考ページの「※1:ログイン名、グループコード 又は組織コードを指定する。」は
ログイン名 = ログインID のことだったんですね。
ログインIDに修正してAPI呼び出しを実施してみたところ
想定の戻り値を得ることができました。!
ありがとうございます。!