カテゴリー内の他の記事

レコードの取得(GET)

フォローする

Index

レコードの取得(1件)

レコードIDを指定してレコードの内容を取得できます。

HTTP メソッド

GET

URI

https://(サブドメイン名).cybozu.com/k/v1/record.json

ゲストスペース内のアプリの場合

https://(サブドメイン名).cybozu.com/k/guest/(スペースのID)/v1/record.json

必要なアクセス権

レコード閲覧

リクエストパラメータ

パラメータ名 指定する値 必須 説明
app 数値又は文字列 必須 アプリのIDを指定します。
id 数値又は文字列 必須 レコードIDを指定します。

リクエストの例

(1) パラメータを HTTP のクエリ文字列で送信する場合

「app」「id」のパラメータを「&」で連結し、HTTPのクエリ文字列として送信します。

クエリ文字列
app=8&id=100
リクエストヘッダを含んだ文字列
GET /k/v1/record.json?app=8&id=100 HTTP/1.1
Host: example.cybozu.com:443
X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=
Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=
  • Content-Typeヘッダは不要です。

(2) パラメータを JSON形式で送信する場合(HTTP リクエストのリクエストボディに JSON データをセットする場合)

リクエストのヘッダとボディの例

リクエストヘッダ
GET /k/v1/record.json HTTP/1.1
Host: example.cybozu.com:443
X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=
Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=
Content-Type: application/json
  • Content-Type に application/json を指定して下さい。 指定しない場合は JSON が解釈できないため、実行時エラーとなります。
ボディ

レスポンスの例

処理が成功すると、レコードの内容がJSON形式で返されます。 ※各フィールドの形式については フィールド形式をご確認ください。

JavaScriptサンプル

kintone REST API

XMLHttpRequest

レコードの一括取得(クエリで条件を指定)

レコードをクエリで条件を指定して取得できます。

  • 一度に取得できるレコードは 500件までです。
  • リクエスト時にクエリで指定できる fields の添字は、0~99の範囲になります。
  • リクエスト時にボディで指定できる fields数は 1000個までです。
  • クエリで文字列検索する場合は単語検索となります。詳しくは「検索キーワードに関する注意」を参照ください。
  • クエリ検索結果が10万件以上存在するとき、絞り込みが中断されます。
    その場合レスポンスヘッダに「x-cybozu-warning : Filter aborted because of too many search results.」が追加されます。

※ 2020年7月頃に、offset 上限値1万件の設定を検討しています。
レコード一括取得時にその結果が 1 万を超える可能性がある場合には、運用・適用中のプログラムのご確認ならびに修正対応の検討をお願いいたします。
詳しくは、こちらの記事 を参照してください。

HTTP メソッド

GET

URI

https://(サブドメイン名).cybozu.com/k/v1/records.json

ゲストスペース内のアプリの場合

https://(サブドメイン名).cybozu.com/k/guest/(スペースのID)/v1/records.json

必要なアクセス権

レコード閲覧

リクエストパラメータ

パラメータ名 指定する値 必須 説明
fields 文字列の配列 省略可 レスポンスに含めるフィールドコードを指定します。
省略した場合は、閲覧権限を持つすべてのフィールドの値が返されます。
app 数値又は文字列 必須 アプリのID を指定します。
query 文字列 省略可 レスポンスに含めるレコードの条件を指定するクエリ文字列です。 クエリ文字列内では、後述の演算子とオプションが使用できます。
省略した場合は、閲覧権限を持つすべてのレコードが返されます。
totalCount 真偽値又は文字列 省略可

「query」パラメータで指定した条件にあてはまるレコードの件数を取得する場合、「true」を指定します。
指定を省略した場合、レスポンスにはtotalCountの値としてnullが返されます。

「query」パラメータで利用可能な演算子と関数

演算子

演算子 意味
= 文字列_0 = "テスト" 演算子の前に指定したフィールドコードの値と演算子の後に指定した値が一致するレコードが抽出されます。
!= 文字列_0 != "テスト" 演算子の前に指定したフィールドコードの値と演算子の後に指定した値が異なるレコードが抽出されます。
> 数値_0 > 10 演算子の前に指定したフィールドコードの値が、演算子の後に指定した値より大きいレコードが抽出されます。
< 数値_0 < 10 演算子の前に指定したフィールドコードの値が、演算子の後に指定した値より小さいレコードが抽出されます。
>= 数値_0 >= 10 演算子の前に指定したフィールドコードの値が、演算子の後に指定した値以上のレコードが抽出されます。
<= 数値_0 <= 10 演算子の前に指定したフィールドコードの値が、演算子の後に指定された値以下のレコードが抽出されます。
in ドロップダウン_0 in ("A", "B") 演算子の前に指定したフィールドコードの値が、演算子の後の括弧内に列挙した文字列のいずれかと一致するレコードが抽出されます。
ドロップダウンやラジオボタンなどの選択式のフィールドで指定した選択肢が選択されたレコードを抽出する場合に使います。
左の例では、ドロップダウンリストで「A」か「B」が選択されているレコードが抽出されます。
not in ドロップダウン_0 not in ("A", "B") 演算子の前に指定したフィールドコードの値が、演算子の後の括弧内に列挙した文字列と一致しないレコードが抽出されます。
ドロップダウンやラジオボタンなどの選択式のフィールドで指定した選択肢が選択されていないレコードを抽出する場合に使います。
左の例では、ドロップダウンリストで「A」か「B」以外が選択されているレコードが抽出されます。
like 文字列_0 like "テスト" 演算子の前に指定したフィールドコードの値が、演算子の後に指定した値を含むレコードが抽出されます。
判定するフィールドの型が添付ファイルの場合、ファイル名とファイルの内容が判定の対象になります。
not like 文字列_0 not like "テスト" 演算子の前に指定したフィールドコードの値が、演算子の後に指定した値を含まないレコードが抽出されます。
or 数値_0 < 10 or 数値_0 > 20 上述の演算子を使用した2つの条件式の論理和を求めます。
左の例では、フィールドコード「数値_0」が10より小さい、または20より大きいレコードが抽出されます。
and 数値_0 >= 10 and 数値_0 <= 20 上述の演算子を使用した2つの条件式の論理積を求めます。
左の例では、フィールドコード「数値_0」が10以上、かつ20以下のレコードが抽出されます。
  • フィールドコードは、演算子の前に記述します。演算子の後には記述できません。
  • 式を「( )」でグループ化できます。 例 (数値_0 >= 10 and 数値_0 <= 20) or (数値_1 >= 100 and 数値_1 <= 200)
  • クエリで文字列検索する場合は単語検索となります。詳しくは「検索キーワードに関する注意」を参照ください。

関数

関数名 内容
LOGINUSER() 作成者 in (LOGINUSER()) APIを実行したユーザーに変換されます。
PRIMARY_ORGANIZATION() 組織 in (PRIMARY_ORGANIZATION()) APIを実行したユーザーの優先する組織。
NOW() 作成日時 = NOW() APIを実行した日時に変換されます。
TODAY() 作成日時 = TODAY() APIを実行した日に変換されます。
FROM_TODAY(数字, 期間の単位) 作成日時 < FROM_TODAY(5, DAYS)

期間の単位に指定可能な文字列です。

  • DAYS:日単位
  • WEEKS:週単位
  • MONTHS:月単位
  • YEARS:年単位
THIS_WEEK() 作成日時を日曜日にする場合
  • 作成日時 = THIS_WEEK(SUNDAY)

曜日に指定可能な文字列です。
※指定しない場合には、日曜日になります。

  • SUNDAY:日曜日
  • MONDAY:月曜日
  • TUESDAY:火曜日
  • WEDNESDAY:水曜日
  • THURSDAY:木曜日
  • FRIDAY:金曜日
  • SATURDAY:土曜日
LAST_WEEK() 作成日時 = LAST_WEEK() 曜日に指定可能な文字列は、THIS_WEEK()参照。
THIS_MONTH([数値|フォーマット文字]) 今月のすべて
  • 作成日時 = THIS_MONTH()
今月末
  • 作成日時 = THIS_MONTH(LAST)
今月の20日
  • 作成日時 = THIS_MONTH(20)
APIを実行した月に変換されます。
引数に次の値を指定することができます。
  • LAST:今月末
  • 1-31の数値:指定した今月の日付
    ※月に指定した日がない場合は、「翌月1日」で計算されます。
LAST_MONTH([数値|フォーマット文字]) 前月のすべて
  • 作成日時 = LAST_MONTH()
前月末
  • 作成日時 = LAST_MONTH(LAST)
前月の20日
  • 作成日時 = LAST_MONTH(20)
APIを実行した前月に変換されます。
引数に次の値を指定することができます。
  • LAST:前月末
  • 1-31の数値:指定した前月の日付
    ※月に指定した日がない場合は、「翌月1日」で計算されます。
THIS_YEAR() 作成日時 = THIS_YEAR() APIを実行した年に変換されます。

フィールド、システム識別子ごとの利用可能な演算子と関数一覧

フィールド又はシステム識別子 利用可能な演算子 利用可能な関数
レコード番号 = != > < >= <= in not in  
$id = != > < >= <= in not in  
作成者 in not in LOGINUSER()
作成日時 = != > < >= <= NOW()
TODAY()
FROM_TODAY()
THIS_WEEK()
LAST_WEEK() 
THIS_MONTH()
LAST_MONTH()
THIS_YEAR()
更新者 in not in LOGINUSER()
更新日時 = != > < >= <= NOW()
TODAY()
FROM_TODAY()
THIS_WEEK()
LAST_WEEK() 
THIS_MONTH()
LAST_MONTH()
THIS_YEAR()
文字列(1行)、リンク = != in not in like not like --
数値 = != > < >= <= in not in --
文字列(複数行) like not like --
リッチエディター like not like --
チェックボックス in not in --
ラジオボタン in not in --
ドロップダウン in not in --
複数選択 in not in --
添付ファイル like not like --
日付 = != > < >= <=

TODAY()
FROM_TODAY()
THIS_WEEK()
LAST_WEEK() 
THIS_MONTH()
LAST_MONTH()
THIS_YEAR()

時刻 = != > < >= <= --
日時 = != > < >= <= NOW()
TODAY()
FROM_TODAY()
THIS_WEEK()
LAST_WEEK() 
THIS_MONTH()
LAST_MONTH()
THIS_YEAR()
ユーザー選択 in not in LOGINUSER()
組織選択 in not in

PRIMARY_ORGANIZATION()

グループ選択 in not in --
ステータス = != in not in --

ルックアップ

ルックアップ元のフィールドタイプと同一 ルックアップ元のフィールドタイプと同一
関連レコード 参照するアプリのフィールドタイプと同一 参照するアプリのフィールドタイプと同一

テーブル化されたフィールド、関連レコードのフィールドをクエリに含める場合の注意事項

テーブル化されたフィールドおよび、関連レコードのフィールドをクエリに含める場合、「=」、「!=」演算子の代わりに「in」、「not in」演算子を使う必要があります。

関連レコードに含まれるフィールドを指定する方法

関連レコードに含まれるフィールドを条件に含める場合、次のような形式でフィールドを指定します。

関連レコードのフィールドコード.関連レコード先のフィールドコード

関連レコードのフィールドコードを指定する例

  • 関連レコードのフィールドコードが「企業マスタ」
  • 企業マスタに含まれる「企業名」フィールドが「サイボウズ」
  • 企業マスタに含まれる「所在地」フィールドが「東京都」を含む
「query」パラメータの例
企業マスタ.企業名 in ("サイボウズ") and 企業マスタ.所在地 like "東京都"

レコード番号フィールドの指定

絞り込み条件とorder byでレコード番号のフィールドコードを指定する代わりに$idでレコード番号フィールドを指定することができます。
関連レコード一覧内のレコード番号フィールドを指定する場合、「関連レコード一覧のフィールドコード.$id」で指定できます。

「query」パラメータで使用できるオプション

オプション 説明
order by order by 更新日時 asc レコードの出力される順番が、本オプションに続けて指定したフィールドコードの値でソートされます。
フィールドコードの後に「asc」を指定すると昇順、「desc」を指定すると降順でソートされます。
複数の項目でソートする場合、「フィールドコード 並び順」をカンマ区切りで指定します。
例:「order by フィールドコード1 desc, フィールドコード2 asc」
省略した場合は、レコードIDの降順で返されます。
limit limit 20 本オプションの後に指定した数だけ、レコードが出力されます。
左の例では、レコード先頭から20レコードだけ出力されます。
省略時の初期値は100、上限値は500です。
offset offset 30 本オプションの後に指定した数だけ、出力するレコードをスキップして、レコードが抽出されます。
左の例では、レコード先頭から30レコードは出力されず、31番目のレコードから出力されます。
上限値はありません。

上記演算子、オプションは組み合わせて使用できます。

リクエストの例

パラメータを HTTP のクエリ文字列で送信する場合

「app」「query」「fields」の3つのパラメータを「&」で連結したものをHTTPのクエリ文字列として送信します。クエリの各パラメータ名およびその値はURLエンコードが必要です。

レコード取得条件の例
  • アプリIDが「8」
  • 「query」パラメータの値が「更新日時 > "2012-02-03T09:00:00+0900" and 更新日時 < "2012-02-03T10:00:00+0900" order by レコード番号 asc limit 10 offset 20」
  • 出力するフィールドが「レコード番号」「作成日時」「ドロップダウン」
  • 指定した条件にあてはまるレコードの件数を取得する
HTTPのクエリ文字列の例
app=8&query=%e6%9b%b4%e6%96%b0%e6%97%a5%e6%99%82%20%3E%20%222012-02-03T09%3A00%3A00%2B0900%22%20and%20%e6%9b%b4%e6%96%b0%e6%97%a5%e6%99%82%20%3C%20%222012-02-03T10%3A00%3A00%2B0900%22%20order%20by%20%e3%83%ac%e3%82%b3%e3%83%bc%e3%83%89%e7%95%aa%e5%8f%b7%20asc%20limit%2010%20offset%201&fields%5B0%5D=%e3%83%ac%e3%82%b3%e3%83%bc%e3%83%89%e7%95%aa%e5%8f%b7&fields%5B1%5D=%e4%bd%9c%e6%88%90%e6%97%a5%e6%99%82&fields%5B2%5D=%e3%83%89%e3%83%ad%e3%83%83%e3%83%97%e3%83%80%e3%82%a6%e3%83%b3
リクエストヘッダの例
GET /k/v1/records.json?app=8&query=%e6%9b%b4%e6%96%b0%e6%97%a5%e6%99%82%20%3E%20%222012-02-03T09%3A00%3A00%2B0900%22%20and%20%e6%9b%b4%e6%96%b0%e6%97%a5%e6%99%82%20%3C%20%222012-02-03T10%3A00%3A00%2B0900%22%20order%20by%20%e3%83%ac%e3%82%b3%e3%83%bc%e3%83%89%e7%95%aa%e5%8f%b7%20asc%20limit%2010%20offset%201&fields%5B0%5D=%e3%83%ac%e3%82%b3%e3%83%bc%e3%83%89%e7%95%aa%e5%8f%b7&fields%5B1%5D=%e4%bd%9c%e6%88%90%e6%97%a5%e6%99%82&fields%5B2%5D=%e3%83%89%e3%83%ad%e3%83%83%e3%83%97%e3%83%80%e3%82%a6%e3%83%b3 HTTP/1.1
Host: example.cybozu.com:443
X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=
Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=
  • Content-Typeヘッダは不要です。

パラメータを JSON形式で送信する場合(HTTP リクエストのリクエストボディに JSON データをセットする場合)

リクエストのヘッダとボディの例

リクエストヘッダ
GET /k/v1/records.json HTTP/1.1
Host: example.cybozu.com:443
X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=
Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=
Content-Type: application/json
Content-Length: 234
ボディ
    • Content-Type に application/json を指定して下さい。 指定しない場合は JSON が解釈できないため、実行時エラーとなります。
    • 文字列の値は、「\(バックスラッシュ)」でエスケープした「"(ダブルクォーテーション)」で囲みます。

レスポンスの例

指定したフィールドのみが含まれるレコードのリストが JSON 配列で返されます。 ※各フィールドの形式については フィールド形式をご確認ください。

JavaScriptサンプル

kintone REST API

XMLHttpRequest

制限事項

共通仕様の制限事項 をご確認ください。

関連Tips

記事に関するフィードバック

直接的に記事と関連がないご質問はcybozu developer コミュニティをご活用ください。

Avatar
近藤史人

初歩的な質問ですみません。

レコードのある項目を取得しようと下記のように記述したのですがname= undefinedと表示されます。

(function() {

    "use strict";

    kintone.events.on('app.record.detail.show', function(event) {

 var body = {"app": 39, "id":   4};

    kintone.api(kintone.api.url('/k/v1/record', true),

                                                'GET',

                                                 body,

                                      function(resp) {console.log(resp);

                                      var name = resp.name;

                                      confirm('name= '+name);},

                                      function(error){console.log(error);});

    });

})();

 var name = resp.name; をvar name = resp.name.value; にして実行すると

エラーになります。

どこに間違いがあるのでしょうか?

Avatar
近藤史人

resp.record.name.value

と言う具合に respと nameの間にrecord を入れたらうまくいきました。

recordが抜けていたのですね。

 

 

Avatar
cybozu Development team

近藤史人様

今回のようにレスポンスで帰ってきたJSONの値にうまくアクセスできない場合は、
レスポンス(今回のコードであればresp)の中身がどうなっているかデバッグしていただくと原因がわかるかと思います。

デバッグの方法については下記の記事をご覧ください。
動かない?そんな時はデバッグをしてみよう!入門編

 

なお、記事のコメント欄は当記事に関するフィードバックのみ受け付けております。
技術的なご質問はcybozu developer コミュニティをご活用ください。

Avatar
近藤史人

すみません。

クエリの定義で苦しんでいます。

var body = {
"app": 2, //仲間管理
"query": "property = 'DCR'"
};

これでレコードを取得したいのですが、クエリ記法が間違っていますと怒られます。

どのように書けばいいのでしょうか?

上記では、propertyがフィールドコードです。

 

Failed to load resource: the server responded with a status of 400 (Bad Request)
download.do:20
  1. Object
    1. code:"CB_VA01"
    2. errors:
      1. query:
        1. messages:["クエリ記法が間違っています。"]
        2. __proto__:Object
      2. __proto__:Object
    3. id:"Xr37sPmKSHoPxxa9VrJ2"
    4. message:"入力内容が正しくありません。"
    5. __proto__:Object

 

 

Avatar
cybozu Development team

近藤史人様

いつもお世話になっております。
cybozu developer network事務局です。

ご質問いただいた件についてですが、
クエリの文法がダブルクォーテーションしか対応していないのが問題だったのではないかと思います。

近藤史人様が書いてくだっさったコードを以下のように変更すると問題なく動作することがこちらで確認できました。
 
var body = {
"app": 50,
"query": 'property="DCR"'
};
 
また、もしダブルクォーテーションでダブルクォーテーションを囲みたいとのことでしたら、
\"でエスケープして「"property=\"DCR\""」と書くと動作するかと思います。
 
よろしくお願い致します。
 
 
 
cybozu Development teamにより編集されました
Avatar
近藤史人

事務局様、 ありがとうございます。

 

いろいろやってみましたが、propertyのフィールドがドロップダウンの項目だったのがまずかったようです。

下記のコーディングにしたところうまく動きました。

var body = {
"app": 2, //仲間管理
"query": 'property in ("ARTメンバー")'
};

この解釈で間違ってないでしょうか?

Avatar
cybozu Development team

近藤史人様

お世話になっております。
cybozu developer network 事務局です。

 

ドロップダウンの場合、コメントに記載されたクエリ記法で合っております。

使用するフィールドによって利用可能な演算子が一部異なるため、

同記事の「フィールド、システム識別子ごとの利用可能な演算子と関数一覧」をご確認いただけると幸いです。

 

よろしくお願いいたします。

Avatar
近藤史人

ありがとうございます。

もうひとつ質問させてください。

比較対象がリテラルではなく変数のとき、下記の記述をするとエラーになります。

変数の記述はどのようにすれが良いでしょうか?

var body = {
"app": 88, //顧客事業所管理
"query": 'customerSiteName = gCustomerSiteName',
"fields": ["customerSiteName"]
};

gCustomerSiteName:顧客事業署名の入った変数

エラーメッセージ:

message: "クエリの指定が不正です。"}

Avatar
cybozu Development team

近藤史人様

変数を利用する場合は、文字結合を利用することでクエリに指定することができます。

そのため以下の記述方法で指定できると思います。

var gCustomerSiteName = '指定したい文字';

var body = {
"app": 88, //顧客事業所管理
"query": 'customerSiteName = ' + gCustomerSiteName,
"fields": ["customerSiteName"]
};

Avatar
近藤史人

お世話になります。近藤です。下記のコードでうまくいったようです。

var body = {
"app": 88, //顧客事業所管理
"query": 'customerSiteName = "' + record.customerSiteName.value +'"',
"fields": ["customerSiteName"]
};

Avatar
大西 佑汰

基本的な質問ですみません。

クエリの中で、order by でソートするフィールドを複数指定することはできますか?

 

※例:氏名(文字列1行)で昇順にし、さらに更新日時で降順にする。等...

Avatar
cybozu Development team

大西 佑汰 様

お世話になっております。
cybozu developer network 事務局です。

order by で複数フィールドを指定することは可能です。
「,」でつなげていただくと、複数指定することができます。

例:order by 氏名 asc, 更新日時 desc

よろしくお願いいたします。

Avatar
オフィス江口株式会社

こんにちは。

初歩的な質問で申し訳ありませんが、レコード取得の際に指定するレコードIDというのは、レコード番号のことでしょうか。

よろしくお願いいたします。

Avatar
cybozu Development team

オフィス江口株式会社 様

お世話になっております。developer network事務局です。

 

はい。ご認識の通りです。

確認方法としましては、

レコードの詳細画面等を開いた際のURLに「~record=○○」という形で記載されています。

Avatar
cybozu Development team

g_furu 様

上限 500件についてはlimit オプションを使用した場合であり、limit オプションを省略した場合は100件となります。

以下の記載がございますので、ご確認のほど宜しくお願いいたします。

> 「query」パラメータで使用できるオプション

> 省略時の初期値は100、上限値は500です。

 

Avatar
g_furu

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

見落としておりました。「query」パラメータにて再度確認してみます!

Avatar
高橋直樹
queryパラメータで、レコード番号を指定する際なのですが、"id"と指定しても取得可能な場合と、"$id"を指定しないと取得できない場合があるのですが、これはアプリの設定や場所(スペースの中など)による差でしょうか?
 
例)
"flag != 1 and status > 0 and (time = "" or time > FROM_TODAY(-3, MONTHS)) order by id asc limit 500"
サブドメインAのアプリ1ではこの条件で取得可能
サブドメインBのアプリ1ではこの条件で取得不可
 
"flag != 1 and status > 0 and (time = "" or time > FROM_TODAY(-3, MONTHS)) order by $id asc limit 500"
サブドメインBのアプリ1で取得可能
 
Avatar
cybozu Development team

高橋直樹 様

お世話になっております。developer network事務局です。

ご提示いただいた
上の例では「レコード番号」を指定して、
下の例では「レコードID」を指定してレコードを取得しています。
レコード番号とレコードIDについては、フィールド形式の冒頭をご参照ください。

「レコードID」は「$id」という名前で固定ですが、
「レコード番号」は、その他のフィールドと同様にフィールドコードを変更することができます。
上の例でサブドメインBのレコードが取得できないのは、
レコード番号フィールドのフィールドコードが「id」となっていないのではないかと思います。

サブドメインBのアプリのレコード番号のフィールドコードが「id」となっているかどうかご確認いただけますでしょうか。

よろしくお願いいたします。

Avatar
高橋直樹

developer network事務局 担当者様

 

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

なるほど、仰られている通り、レコードIDとレコード番号を混同しているようです。
ただ、アプリのフォームをみてもレコード番号は表示されていないためフィールドコードを確認できないのですが、
レコード番号のフィールドコードは、APIなどで確認するしか方法がないということでしょうか?

続けての質問で申し訳有りませんが、確認のほどお願いいたします。

 

 

Avatar
高橋直樹

developer network事務局 担当者様

情報の追記です。

サブドメインAのアプリでは、レコード番号のデフォルトのフィールドコードが"id"となっており、
サブドメインBのアプリでは、レコード番号のデフォルトのフィールドコードが "レコード番号" となっていました。

両アプリとも、アプリの設定画面ではレコード番号が存在せず、レコード一覧画面で「すべて」を選択した際に
レコード番号というカラムが表示されるため、これがレコードIDだと考えていましたが、内部的にレコード番号を
持っており、そのフィールドコードのデフォルト値が違うために今回の現象が発生しているのではないかと、考えております。

レコード番号のデフォルトのフィールドコードが、サブドメインによって変わるということがあるのでしょうか?

Avatar
cybozu Development team

高橋直樹 様

ご確認ありがとうございました。

>レコード番号のフィールドコードは、APIなどで確認するしか方法がないということでしょうか?
レコード番号のフィールドコードはアプリの設定画面から確認可能です。
アプリのフォームに「レコード番号」フィールドを設置していない場合でも、
1度「レコード番号」フィールドを設置していただくことで確認が出来ます。

>レコード番号のデフォルトのフィールドコードが、サブドメインによって変わるということがあるのでしょうか?
レコード番号のデフォルトのフィールドコードが、サブドメインによって変わるということはありません。
アプリ新規作成時のデフォルトのフィールドコードは、アプリを作成したユーザーの言語設定によって異なります。
また、下記の組み込みフィールドについては、フィールドコードを変更してアプリを公開すると、
その後フィールドをフォームから削除しても変更したフィールドコードが維持されますのでご注意ください。
・レコード番号
・作成者
・作成日時
・更新者
・更新日時

フィールド形式の冒頭に記載がありますように、APIを処理する場合には、レコードID($id)をご利用ください。

よろしくお願いいたします。

Avatar
高橋直樹

developer network事務局 担当者様

早速のご回答、ありがとうございます。

> また、下記の組み込みフィールドについては、フィールドコードを変更してアプリを公開すると、
> その後フィールドをフォームから削除しても変更したフィールドコードが維持されますのでご注意ください。
承知しました。 これは想像ですが、レコード番号のフィールドコードが違ったのは、どこかのタイミングで一度、
サブドメインAのアプリで、レコード番号のフィールドコードをidと名付けていたのかもしれません。

> フィールド形式の冒頭に記載がありますように、APIを処理する場合には、レコードID($id)をご利用ください。
こちらも承知しました。 基本的に$idを使用するようにいたします。

Avatar
KUNI

関数を使用して、【項目:更新日時】「15分前以降」を取得する事は可能でしょうか?

更新日時 >= NOW() ←現在の時刻から15分前を算出

 

Avatar
cybozu Development team

KUNI 様

こちらは記事のフィードバック欄です。

恐れ入りますが、技術的なご質問はコミュニティをご活用ください。

Avatar
Sota Fukuda

Cybozu Development team様

 

GASでレコードのデータを取得しようと思ったのですが、parseしてしまうと何故かテーブルに入っているデータがうまく取得できません。

{type=SUBTABLE, value=[Ljava.lang.Object;@謎の文字列}となってしまいます。

parseしないと正常に表示されます。

原因わかりますでしょうか?

Avatar
cybozu Development team

Sota Fukudaさま

GASでの知見や事例を持っておらず、お役に立てず申し訳ありません。

なお、GASでkintoneのデータを操作するのに、ライブラリはお使いでしょうか。

GASを用いる場合、公開されているこちらのライブラリ を利用されている方が、一般には多いようです。(使い方はこちら

ご質問内容は、当サイトのコミュニティの「kintoneカスタマイズフォーラム」も活用いただけます。
具体的な手順やコードも示すと、広く目に止まり、回答がつく可能性があります。

よろしくお願いいたします。

Avatar
def

初歩的な質問で申し訳ありません。

レコードの一括取得で、101件以上のレコードを取得したいのですが、
limitオプションの記載方法がわかりません。

GETメソッドのリクエストパラメータを、以下のように記載しています

が、スクリプトを実行すると、IEのコンソールに「入力内容が正しくありません。」と
メッセージが表示されます。

要望としては、取得するレコードの件数を150件にしたいだけなのですが、
スクリプトのどこかに、「リクエストヘッダ」が必要でしょうか?
もしくは、そのほか記載内容が足りないでしょうか?

大変お手数ですが、ご教示いただけますと幸いです。
足りない情報などございましたらご指摘ください。

 

 

Avatar
cybozu Development team

def 様

kintone.api()を使用したクエリ記法は間違っていないようにお見受けします。

クエリ記法につきましては下記の記事で詳細に紹介しております。

第10回 kintone REST APIを利用したレコード取得
https://developer.cybozu.io/hc/ja/articles/203727120

なお、記事のコメント欄は当記事に関するフィードバックのみ受け付けております。
技術的なご質問はコミュニティをご活用ください。

Avatar
TAKA

関連レコードを条件に含めたAPIでの取得についてお伺いします。
関連レコードが無いレコードを取得したいと考えております。

仮に、下記のような状況であるとします。

アプリA
 関連レコード(アプリBのレコードを表示)
  レコード番号=アプリBレコード番号

アプリB
 アプリAと紐づいている

この場合、
"app":アプリAのID,"query":関連レコード.レコード番号 not in ("")
とすれば、アプリBに紐づいたレコードがある、アプリAのレコードをGETすることが出来ます。

逆に、
"app":アプリAのID,"query":関連レコード.レコード番号 in ("")
としても、
records:0となります。
「関連レコードが無いレコード」を取得することが出来ないからだと思います。
(kintoneの抽出機能を使っても、結果は同じです)

アプリBのレコードと紐づいていない、アプリAのレコードを取得したいので、
現状、「全レコード ー 関連レコードがあるレコード」で取得していますが、全体件数が多いため、とんでもない時間がかかります。

他に何か良い方法はありませんでしょうか。

TAKAにより編集されました
Avatar
cybozu Development team

TAKA 様

お世話になっております。
cybozu developer network 事務局です。

ご質問いただいた件について、申し訳ございませんが
こちらのコメント欄は記事へのフィードバック用となります。

カスタマイズ方法についてはぜひコミュニティをご活用ください。
https://developer.cybozu.io/hc/ja/community/topics

ログインしてコメントを残してください。