新規投稿
フォローする

レコード番号につきまして

お世話になっております、こもるーです。

レコード追加時にレコード番号を文字列フィールドに記入したいです。

(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を取得して文字列に書き出すにはどのような動作が必要なのでしょうか。

初心者内容で申し訳ありませんが、ご教授の程、宜しくお願いします。

0

12件のコメント

Avatar
TK
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により編集されました
0
Avatar
こもるー

TKさん

アドバイスありがとうございます。

ただエラーはでないものの、レコード番号が入れたいフィールドに出現してくれません。

私の理解不足で申し訳ないのですが、出だしは

(function() {
"use strict";

kintone.events.on('app.record.create.submit.success', function(event) {

から頂いたスクリプトのconst recId = event.recordId; ・・・

という認識で合っていますか?

 

 

0
Avatar
TK

その認識で合ってます。

コード全文見せていただいていいですか?

あと確認ですが今回したいことは、下記URLと同等のことですよね?

https://developer.cybozu.io/hc/ja/community/posts/115018605983-submit-success%E3%81%AE%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E3%81%A7-%E5%80%A4%E3%81%AE%E8%BB%A2%E8%A8%98

0
Avatar
こもるー

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);
});
});
})

すみません、お忙しいところ申し訳ありませんが、宜しくお願いします。

0
Avatar
TK

おはようございます。

コードの最後に()が抜けているので関数が実行されてないと思います。

(function() {
...
})(); // ←();を追加

 

0
Avatar
こもるー

TKさん

それすっかり忘れてました!

そして入れたんですけど、やっぱり出てこないです。。

現在は

・・・

console.log('err :', err);
});
});
})();

にスクリプト直してます。

0
Avatar
TK

動きませんか、了解です。

一応こちらでも試したんですが、ちゃんと動作しました。

なので、ほかの読み込みファイルとかがあるならそれが悪さしてるかもしれません・・・

スクリプトがダメならば、フォームのフィールドに"レコード番号"(自動記入)があるんですが、それはどうでしょうか?

 

0
Avatar
こもるー

TKさん

動いてるんですね。。

読み込みファイルもないアプリでも試したのですが、できませんでした。。

https://js.cybozu.com/momentjs/2.24.0/moment-with-locales.min.js

みたいなやつを使わなきゃいけないとかってありますか?

 

スクリプトを使ってレコードを表示したいのには理由があって、レコード番号は使えないものと連携させなくてはいけなく、

それのキーとして使用したく、文字フィールドへの変換を求めてます。

本当はそのまま自動記入のが使えるのがありがたいです。

0
Avatar
TK

いえ、いりません。このファイルのみで動作します。

 

実行環境ですが、アプリの設定→アプリの動作テストで作られた環境で実行してたりしますか?

もしそうだったら動かないです。

0
Avatar
こもるー

TKさん

仰る通りでございまして、テスト環境で動かしてました。。

これもテスト環境じゃ動かない系だったのですね。

勉強になりました。もうテスト環境使うのやめようかすら思い始めました。

そんなことはさて置き、やりたい動作ができるようになりました!

TKさんに見て頂けてアドバイス頂けたお陰です!

どうもありがとうございました。

0
Avatar
TK

解決できてよかったです!

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

こちらのAPI一覧を見ると、formをいじる関係のものしかテスト環境に対応してないですね。

なのでレコード関係のAPIを触るときはテストスペースなり作ってやるほうがいいですね!

0
Avatar
こもるー

TKさん

ご親切にサイトまでありがとうございます。

今後その内容気を付けます。

前もあったんですよ。

肝に銘じます;;

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