レコード取得のqueryの書き方について(日付、ログインユーザー)

kintone歴 1か月です。

質問です。

 

今作っているアプリ(A)の中で

kintone.apiで別のアプリ(B)の情報の取得処理を作っています。

queryとしては以下を組み込みたいです。

・アプリAのログインユーザー = アプリBの更新者

・アプリBの作成日時が今日から2か月前まで

 

https://developer.cybozu.io/hc/ja/articles/202331474#step2 

上記をもとに以下のようにコードを書きました。

 

var get_param= {
app: XX, 
query : "作成日時 < " + FROM_TODAY(2, MONTHS) + " and ユーザー選択 in ( " + LOGINUSER() + ")"
};

kintone.api(kintone.api.url('/k/v1/records'), 'GET', get_param).then(function(get_resp) {

var record=get_resp.records;

console.log(record);

});

 

上記を実行するとFROM_TODAY()もLOGINUSER()も

not defined エラーが出てしまいます。

コード例はandでつないでいますが(最終的にそうしたく)

ひとつづつ確認しても同じです。

 

query : "作成日時 > \"2018-05-31T00:00:00+0900\"",

これは実行が成功します。

 

var today=newDate();
var year=today.getFullYear();
var start_month=today.getMonth();
var day=today.getDate();

if(start_month<10){
start_month='0'+start_month;
}
if(day<10){
day='0'+day;
}

var query_date=year+'-'+start_month+'-'+day;

var get_param= {
app: XX, 
query :"作成日時 > \""+query_date+"T00:00:00+0900\"",
};

この方法だと下記のようなエラーが出ます。

{code: "GAIA_ID02", id: "guzHQnmcLDYLsJNvyiBV", message: "フィールド「作成日時」に指定した2018-06-31T00:00:00+0900の日時書式が不正です。"}

 

何か書き方に注意が必要などありますでしょうか?

よろしくお願いします。

 

 

FROM_TODAY() や LOGINUSER() はクエリ記述のための構文であって、kintone JavaScript API(の関数)ではないので、

query: "作成日時 > FROM_TODAY(2, MONTHS) and 作成者 in (" USER", LOGINUSER())"

のようになります。

 

日時指定の方は、ぱっと見 +0900 が +09:00 という点くらいしか修正点が見当たりません。

 

いずれのパターンにおいてもですが、こちらにあるようにkintoneの絞り込み条件からクエリを導いてチェックやクエリの書き方のヒントを得られると良いかと思います。今回のケースですと、次の絞り込み条件に対して、kintone.app.getQueryCondition() すると上の内容を得ます。

 

Ryu Yamashita様

ご回答ありがとうございます。

返答が遅くなり申し訳ありません。

FROM_TODAY()等がkintone JavaScript APIではないというところを

まったくわかっていなかったです。ありがとうございます。

教えていただいた記載方法で、想定のデータを取得することができました。

 

また、リンク先にあるようなクエリの参考を得られる方法とても便利ですね!

複数のクエリの場合の書き方など、知識不足で止まってしまうところも

多かったので、大変参考になりましたし、作業が進めやすくなりました。!

 

ありがとうございます。!

 

だいぶ時間差ですが…

「クエリの書き方の基本」 というTips記事 https://developer.cybozu.io/hc/ja/articles/900001057206 が出ましたが、

基本的な書き方がまとまっていて参考になります!