この度は質問失礼致します。
Kintone初めて間もなく無知でございまして、ご助言いただければ幸いです。
ルックアップ機能を使用せずに、在庫表アプリの商品名に入力された値を、商品マスタアプリ内のレコードに一致する在庫数を、在庫表アプリの在庫数に参照表示、保存したいのですが、反映されないです・・・
値がしっかりと読み込めているのか、試しにアラートで表示させたら表示されているので読み込めて入るんですが、在庫数アプリの在庫数に表示されません。
ご助言いただけると助かります。
在庫表アプリ(ID:36)
・商品名:フィールドコード’商品名’
・在庫数:フィールドコード’在庫数’
商品マスタアプリ(ID:17)
・商品名:フィールドコード’商品名’
・在庫数:フィールドコード’在庫数’
// kintoneのレコード保存時のイベントを定義
kintone.events.on(['app.record.create.submit', 'app.record.edit.submit'], function(event) {
// 在庫表アプリのアプリIDとフィールドコードを定義
var inventoryAppId = 36;
var inventoryFieldName = '商品名';
var inventoryStockFieldName = '在庫数';
// 商品マスタアプリのアプリIDとフィールドコードを定義
var productMasterAppId = 17;
var productMasterFieldName = '商品名';
var productMasterStockFieldName = '在庫数';
// 在庫表アプリのレコードから商品名を取得
var productName = event.record[inventoryFieldName].value;
// 商品マスタアプリのレコードを検索して該当する商品名を持つレコードを取得
var query = productMasterFieldName + ' = "' + productName + '"';
kintone.api('/k/v1/records', 'GET', {app: productMasterAppId, query: query}, function(resp) {
if (resp.records.length > 0) {
// 該当する商品名を持つレコードが存在する場合
var productMasterRecord = resp.records[0];
var stock = productMasterRecord[productMasterStockFieldName].value;
// アラートで商品名と在庫数を表示
alert(productName + 'が' + stock + '個ありました');
// 在庫表アプリのレコードの在庫数フィールドに在庫数を設定
event.record[inventoryStockFieldName].value = stock;
// レコード保存時に自動で更新されるフィールドの値を設定
event.record[inventoryStockFieldName].disabled = false;
// レコードを保存
kintone.api('/k/v1/record', 'PUT', {app: inventoryAppId, id: event.recordId, record: event.record}, function(resp) {
// 保存が成功した場合には成功のメッセージを表示
alert('在庫表の更新に成功しました');
});
} else {
// 該当する商品名を持つレコードが存在しない場合
// アラートで商品名が存在しないことを表示
alert(productName + 'がありません');
return false;
}
});
});