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

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

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

(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; ・・・

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

 

 

その認識で合ってます。

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

あと確認ですが今回したいことは、下記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

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を触るときはテストスペースなり作ってやるほうがいいですね!

TKさん

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

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

前もあったんですよ。

肝に銘じます;;