自動採番して、レコード登録する を参考にして、次のソースコードを作成しましたが、これをカスタマイズして、有効にすると、追加メッセージはきちんと表示されているにも関わらず、追加保存だけができません。
これに加えて、追加画面でフォームに設置されているタブが表示されなくなりました。
/*
* 自動採番のサンプルプログラム
* Copyright (c) 2015 Cybozu
*
* Licensed under the MIT License
*/
(function() {
"use strict";
// レコード追加、編集画面の表示前処理
var eventsShow = ['app.record.create.show', 'app.record.edit.show', 'app.record.index.edit.show'];
kintone.events.on(eventsShow, function(event) {
var record = event.record;
if (('app.record.create.show').indexOf(event.type) >= 0) {
record['プログラム管理No']['value'] = "";
}
record['プログラム管理No']['disabled'] = true;
return event;
});
// レコード追加画面の保存前処理
kintone.events.on('app.record.create.submit', function(event) {
var recNo = 1;
var record = event.record;
var m = moment();
// URLを設定する
var appUrl = kintone.api.url('/k/v1/records', true) +
'?app=' + kintone.app.getId() + '&query=' + encodeURI('limit 1&fields[0]=$id');
var xmlHttp = new XMLHttpRequest();
// 同期リクエストを行う
xmlHttp.open("GET", appUrl, false);
xmlHttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xmlHttp.send(null);
if (xmlHttp.status === 200) {
if (window.JSON) {
var obj = JSON.parse(xmlHttp.responseText);
if (obj.records.length > 0) {
try {
recNo = parseInt(obj.records[0]['$id'].value, 10) + 1;
} catch(e) {
event.error = 'プログラム管理No.が取得できません。';
}
}
//自動採番をプログラム管理Noに設定する
var autoEstNo = m.format('YYYY') + "-P" + ('000' + recNo).slice(-3);
alert("プログラム管理No. " + autoEstNo + " を登録します");
record['プログラム管理No']['value'] = autoEstNo;
} else {
event.error = xmlHttp.statusText;
}
} else {
record['プログラム管理No'].error = 'プログラム管理No.が取得できません。';
}
return event;
});
})();
3件のコメント
ao1962さん
こんにちは。
記載されているソースで試してみましたが、採番されて追加されましたよ?
1.アプリストアから「商品見積書パック」を追加

2.見積書アプリの「見積番号」を「プログラム管理No」に変更(ソースに利用されていたので)
3.「プログラム管理No」フィールドに「必須項目にする」と「値の重複を禁止する」にチェックを設定
4.javascriptに「Mement.js」とao1962さんが記載したソースを追加
5.レコードの追加を実施
といった手順で行いました。
>これに加えて、追加画面でフォームに設置されているボタンが表示されなくなりました。
これについては何をお伝えしたいのかよくわかりませんが、上記手順の3、4あたりに設定間違いがあるのではないでしょうか?
※4については設定する順番も関係します。Mement.jsを追加した後にご自身のソースを追加する必要がある。
また、うまく動いていないようでしたらデバッグなどをご利用してエラーメッセージの確認をされた方が、ここを見ている方も回答しやすいかと思われます。
お答えありがとうございました。
よく考えてみると、余計なソースコード(// レコード追加、編集画面の表示前処理)が入っていたために、保存できなかったことが判明しました。
このことを踏まえて、皆様の回答等を参考にしながら実行していきたいと思っています。
https://cybozudev.zendesk.com/hc/ja/community/posts/214932546/comments/213992283 に対して
少し気になったのですが、星野さんの「また、うまく動いていないようでしたらデバッグなどをご利用してエラーメッセージの確認をされた方が、ここを見ている方も回答しやすいかと思われます」が本質的な答えではないでしょうか。
一見すると各ステップで変数がどうなっているかの確認をしていないように見えます。デバッガやalertメソッドやできればconsole.logメソッドを使うのがいいと思います。