APIで取得した値が反映されない

お世話になっております。

 

初心者質問で申し訳ありません。

下記コードは申込管理アプリになり、

テーブル項目の商品名が入力されると、在庫マスタからその商品の在庫数を返します。

しかし、下記コードでは在庫マスタから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でもできる方法があればご教授いただければ幸いです。

 

以上、よろしくお願いいたします。

https://developer.cybozu.io/hc/ja/community/posts/251181943-%E3%82%B5%E3%83%96%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%AEchange%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E6%99%82%E3%81%AB%E5%A4%89%E6%9B%B4%E8%A1%8C%E3%82%92%E7%89%B9%E5%AE%9A%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95

ここあたりが参考になるかもしれません。

 

@村濱一樹 さま

いただいたURLを拝見いたしました。

参考にいたします。

ご教授いただきありがとうございます。