お世話になっております、こもるーです。
レコード追加時にレコード番号を文字列フィールドに記入したいです。
(function() {
“use strict”;
kintone.events.on(‘app.record.create.submit.success’, function(event) {
と始まるかと思います。
var record = kintone.app.record.get();
var appId = kintone.app.getId();
と続けたのですが、確認してみたところレコードは拾えてないみたいでした。
kintoneの様々なコラムや投稿されている内容を確認して見てみたのですが、
参考する内容にあまりピンときていません。
レコードNoを取得して文字列に書き出すにはどのような動作が必要なのでしょうか。
初心者内容で申し訳ありませんが、ご教授の程、宜しくお願いします。
event.recordId
にレコードIDが入ってますので、それを取得してPUTする形になると思います。
const recId = event.recordId;
const param = {
app: event.appId,
id: recId,
record: {
"文字列のフィールドコード": {
"value": recId
}
}
};
return kintone.api(kintone.api.url("/k/v1/record", true), "PUT", param).then(function(resp) {
console.log('resp :', resp);
return event;
}).catch(function(err) {
console.log('err :', err);
});
TKさん
アドバイスありがとうございます。
ただエラーはでないものの、レコード番号が入れたいフィールドに出現してくれません。
私の理解不足で申し訳ないのですが、出だしは
(function() {
“use strict”;
kintone.events.on(‘app.record.create.submit.success’, function(event) {
から頂いたスクリプトのconst recId = event.recordId; ・・・
という認識で合っていますか?
TKさん
おはようございます、こもるーです。
そうです!本当もうレコード番号を作成されたレコードの文字フィールドにすぐ入れたいだけです。
コード全文です。
レコード入れたい文字フィールドは「レコード」にしてあります。
(function() {
“use strict”;
kintone.events.on(‘app.record.create.submit.success’, function(event) {
const recId = event.recordId;
const param = {
app: event.appId,
id: recId,
record: {
“レコード”: {
“value”: recId
}
}
};
return kintone.api(kintone.api.url(“/k/v1/record”, true), “PUT”, param).then(function(resp) {
console.log(‘resp :’, resp);
return event;
}).catch(function(err) {
console.log(‘err :’, err);
});
});
})
すみません、お忙しいところ申し訳ありませんが、宜しくお願いします。
おはようございます。
コードの最後に()が抜けているので関数が実行されてないと思います。
(function() {
...
})(); // ←();を追加
TKさん
それすっかり忘れてました!
そして入れたんですけど、やっぱり出てこないです。。
現在は
・・・
console.log(‘err :’, err);
});
});
})();
にスクリプト直してます。
動きませんか、了解です。
一応こちらでも試したんですが、ちゃんと動作しました。
なので、ほかの読み込みファイルとかがあるならそれが悪さしてるかもしれません・・・
スクリプトがダメならば、フォームのフィールドに"レコード番号"(自動記入)があるんですが、それはどうでしょうか?
TKさん
動いてるんですね。。
読み込みファイルもないアプリでも試したのですが、できませんでした。。
https://js.cybozu.com/momentjs/2.24.0/moment-with-locales.min.js
みたいなやつを使わなきゃいけないとかってありますか?
スクリプトを使ってレコードを表示したいのには理由があって、レコード番号は使えないものと連携させなくてはいけなく、
それのキーとして使用したく、文字フィールドへの変換を求めてます。
本当はそのまま自動記入のが使えるのがありがたいです。
いえ、いりません。このファイルのみで動作します。
実行環境ですが、アプリの設定→アプリの動作テストで作られた環境で実行してたりしますか?
もしそうだったら動かないです。
TKさん
仰る通りでございまして、テスト環境で動かしてました。。
これもテスト環境じゃ動かない系だったのですね。
勉強になりました。もうテスト環境使うのやめようかすら思い始めました。
そんなことはさて置き、やりたい動作ができるようになりました!
TKさんに見て頂けてアドバイス頂けたお陰です!
どうもありがとうございました。
解決できてよかったです!
https://developer.cybozu.io/hc/ja/articles/360000313406
こちらのAPI一覧を見ると、formをいじる関係のものしかテスト環境に対応してないですね。
なのでレコード関係のAPIを触るときはテストスペースなり作ってやるほうがいいですね!