別アプリの数字を自動記入したい

「顧客情報」と「パスワード管理」の2つのアプリがあり、「顧客情報」アプリ内の「パスワード」に
「パスワード管理」アプリに登録している数字を自動記入したいと考えております。

その際に、自動記入する際の条件としては、「顧客情報」アプリで「商品名」と「商品購入日」を
入力した後で、「パスワード管理」アプリの「商品〇のパスワード」の数字を「パスワード」に
自動記入されるようにしたいと考えております。

例えば、「顧客情報」アプリで「商品名」で“商品A”を選択し、「商品購入日」に2019年1月1日と
入力した場合、「パスワード管理」アプリの「商品購入日」が2019年1月1日のレコードにある
「商品Aのパスワード」の数字を「パスワード」に自動記入したいです。


●アプリ:パスワード管理
・フィールド:商品購入日
・フィールド:商品Aのパスワード
・フィールド:商品Bのパスワード
・フィールド:商品Cのパスワード
・フィールド:商品Dのパスワード


●アプリ:顧客情報
・フィールド:商品名 ← ドロップダウンで商品AからDを選択するようにしています。
・フィールド:商品購入日
・フィールド:パスワード

 

現状では、「商品購入日(顧客情報)」と「商品購入日(パスワード管理)」が同じ場合に、

「商品Aのパスワード」を自動記入するというところまではできているのですが、
この先がうまくできずに困っております。

(function () {
"use strict";
varevents= [
'app.record.create.show',
'app.record.edit.show',
'app.record.create.change.商品購入日(顧客情報)',
'app.record.edit.change.商品購入日(顧客情報)',];

kintone.events.on(events, function(event) {
varrecord=event.record;
varappId=パスワード管理アプリのID;
varrecordId=record['商品購入日(顧客情報)'].value;
kintone.api('/k/v1/records', 'GET', {
app:appId,
query:'商品購入日(パスワード管理) = "'+recordId+'"',
fields: ['商品Aのパスワード'],
},
function(resp) {
vargroup1=resp['records'][0]['商品Aのパスワード']['value'];
varrecord=kintone.app.record.get();
record['record']['パスワード']['value'] =group1;
kintone.app.record.set(record);
});
returnevent;
});
})();

 

if文で条件を切り分けたりすると思い、試行錯誤しているのですが、
思うようにいかずにいます。
お手数ではございますが、この先のコードについてアドバイスをいただければ幸いです。

こんにちは。

「商品名」のフィールドを動的に指定したらいけそうですがどうでしょう?

↓こんなかんじです

(function () {
"use strict";
var events = [
'app.record.create.show',
'app.record.edit.show',
'app.record.create.change.商品購入日(顧客情報)',
'app.record.edit.change.商品購入日(顧客情報)',];
kintone.events.on(events, function (event) {
var record = event.record;
var appId = パスワード管理アプリのID;
var recordId = record['商品購入日(顧客情報)'].value;
var field = record['商品名'].value;
kintone.api('/k/v1/records', 'GET', {
app: appId,
query: '商品購入日(パスワード管理) = "' + recordId + '"',
fields: [field]
},
function (resp) {
var group1 = resp['records'][0][field]['value'];
var record = kintone.app.record.get();
record['record']['パスワード']['value'] = group1;
kintone.app.record.set(record);
});
return event;
});
})();

TK様
ご回答いただきありがとうございます。
ご回答いただいた内容でうまく動作することができました。大変助かりました。
こんなに簡単な変更でうまくいくとは思っておらず、お手数をおかけしました。

 

追加でのご質問となり大変恐縮ですが、「商品名」で“商品F”~“商品K”のいづれかを選択した場合は、
同じフィールド「商品Xのパスワード」を自動記入させることは可能でしょうか。

“商品F”~“商品K”の名称は全て異なる名称、または一部名称が一致するなどの様々なケースがございます。

>「商品名」で“商品F”~“商品K”のいづれかを選択した場合は、
同じフィールド「商品Xのパスワード」を自動記入させることは可能でしょうか。

 

認識に食い違いなければこんなかんじでしょうか?

(function () {
"use strict";
var events = [
'app.record.create.show',
'app.record.edit.show',
'app.record.create.change.商品購入日(顧客情報)',
'app.record.edit.change.商品購入日(顧客情報)',];
kintone.events.on(events, function (event) {
var record = event.record;
var appId = パスワード管理アプリのID;
var recordId = record['商品購入日(顧客情報)'].value;
var field = record['商品名'].value;
var body;
switch(field) {
case "商品F":
case "商品G":
case "商品H":
case "商品I":
case "商品J":
case "商品K":
field = "商品X";
body = {
app: appId,
query: '商品購入日(パスワード管理) = "' + recordId + '"',
fields: ["商品X"]
};
break;
default:
body = {
app: appId,
query: '商品購入日(パスワード管理) = "' + recordId + '"',
fields: [field]
};
break;
}

kintone.api('/k/v1/records', 'GET', body, function (resp) {
var group1 = resp['records'][0][field]['value'];
var record = kintone.app.record.get();
record['record']['パスワード']['value'] = group1;
kintone.app.record.set(record);
});
return event;
});
})();

すいませんフィールドコードは「商品〇〇のパスワード」ですね、確認不足でした。

switch文のところ少し変えてみたので確認お願いします。

また、コンソールにエラーなど出てましたら教えてください。

switch(field) {
case "商品F":
case "商品G":
case "商品H":
case "商品I":
case "商品J":
case "商品K":
field = "商品Xのパスワード";
body = {
app: appId,
query: '商品購入日(パスワード管理) = "' + recordId + '"',
fields: [field]
};
break;
default:
field = field + "のパスワード";
body = {
app: appId,
query: '商品購入日(パスワード管理) = "' + recordId + '"',
fields: [field]
};
break;
}

TK様
早々にご回答いただきありがとうございます。
ご認識の通りです。うまく動作することができました。

手厚い対応に大変感謝いたします。大変助かりました。
今後とも何卒よろしくお願い申し上げます。