新規投稿
フォローする

アプリのレコード番号を元に詳細画面を呼び出したい

// やりたいこと:
// リクエストで抜き出したデータの先頭から順に見て選択フラグが"yes"のレコードの詳細画面を呼び出したい
// 実際にはクエリで対応出来ない複雑な判断をするためこのような処理を考えています。

var requestParam =
    'app': kintone.app.getId(),
    'query': '管理コード = "XX01" order by 登録日 limit 500 offset 0'
};

kintone.api(kintone.api.url('/k/v1/records', true), 'GET', requestParam, function(resp) {
// 取得レコード: resp.records
for(var i = 0; (i <records.length); i++){
    if(records[i].選択フラグ === 'yes'){
        rec = <-- どうやってrecords[i]を元に id を抽出したら良いのか?もしくは出来ない?
        location.href = location.protocol + "//" + document.domain + "/k/" + kintone.app.getId() + "/show#record=" + rec;
        }
    }
}

アプリトップページからレコード番号指定(入力)でレコード詳細を参照したい を参考にしてみましたが

record=document.getElementById("searchRecordID").value;
上記説明ではレコード番号と言う記述でしたが、この部分はレコードIdの取得ではないでしょうか
record=document.getElementById(records[i].レコード番号.value).value;
では上手くいきませんでした。
records[i]を元に id を抽出する手段をご存じの方いらっしゃいましたらご教授いただけると幸いです。

 

0

4件のコメント

Avatar
村濱一樹

https://developer.cybozu.io/hc/ja/articles/360000903686

for文で繰り返しレコードを操作スル場合はこの記事にも説明されてるので見てみてください

---

気づいたこととしては、

1. if文が間違っていそう
    if(records[i].選択フラグ === 'yes'){
ではなく、
    if(records[i].選択フラグ.value === 'yes'){
ですかね。

2. forでのidの取り出し方
var rec = records[i].$id.value;
こんなかんじになります

1
Avatar
鈴木 治

ご説明ありがとうございます。


1.のご指摘の通り間違えておりましたです。

2.の方ですがidは取得できました。

ここで、次の質問になってしまいますが、

 location.href = location.protocol + "//" + document.domain + "/k/" + kintone.app.getId() + "/show#record=" + rec;
最初の質問で詳細画面呼び出しをしたい旨記載しましたが、この rec は id それとも レコード番号 でしょうか?
idを入れてもレコード番号を入れても、「レコードがありません」とエラーになってしまいます。
record=に代入する値は他のものでしょうか?

0
Avatar
村濱一樹

動きそうにみえますけどね。

URLがおかしいことになっていないか、遷移させずに、ためしにconsole.logでURL表示するなどデバッグしたほうがよさそうです!

1
Avatar
鈴木 治

村濱様
正常に動きました。ありがとうございました。

0
サインインしてコメントを残してください。