お世話になっております。
初心者質問で申し訳ありません。
下記コードは申込管理アプリになり、
テーブル項目の商品名が入力されると、在庫マスタからその商品の在庫数を返します。
しかし、下記コードでは在庫マスタからAPIで取得した値が
申込管理アプリの在庫数の値に反映されません。
「event.changes.row.value[‘stockNum’].value = resp[‘records’][0][‘zaiko’][‘value’];」の時点では
在庫数がvalueに反映されている状態でした。
return event;の時点でも在庫数がvalueに反映されている状態でした。
アドバイスをいただければ幸いです。
kintone.events.on('app.record.create.change.name', function (event) {
var row = event.changes.row;
var field = event.changes.field;
var record = event.record;
var code = row.value['code'].value;
var deliStore = record.deliStore.value;
// リクエストボディにセット
var params = {
'app': 308,
// 商品コード&配達店舗の在庫数を取得する
'query': 'code = "' + code + '" and deliStore = "' + deliStore + '"'
}
// REST APIでルックアップ先のレコードを1件取得
kintone.api(kintone.api.url('/k/v1/records', true), 'GET', params, function (resp) {
if (resp.records.length === 1) {
// 在庫マスタの在庫数を申込管理アプリの在庫数にセット
event.changes.row.value['stockNum'].value = resp['records'][0]['zaiko']['value'];
return event;
// マスタに該当レコードがなかった場合のエラー表示
} else {
var errorDisplayField = kintone.app.record.getSpaceElement('error_display_field');
errorDisplayField.parentNode.style.width = '250px';
// 文字列要素
var errorDisplayDiv = document.createElement('div');
errorDisplayDiv.style.backgroundColor = '#ffd78c';
errorDisplayDiv.innerHTML = '該当データがありませんでした。';
errorDisplayField.appendChild(errorDisplayDiv);
}
});
});
setRecordをつかえば、値の反映ができたのですが、
change.rowの行数の取得ができなかったので、
setRecordは使わず、change.rowで値の反映ができればと考えています。
setRecord.record.order_items.value[0].value.stockNum.value
↑
setRecordの場合、
[0]の部分にchange.rowの番号を代入する必要がある。
もしsetRecordでもできる方法があればご教授いただければ幸いです。
以上、よろしくお願いいたします。