ルックアップ取得先が複数ある場合にも自動取得をする方法を探しています。
単純なルックアップ自動取得については他の投稿を参考やネットからコピペする等で実装できたのですが、部分一致が引っ掛かってルックアップの選択先が複数ある場合に自動取得ができません。
ルックアップ取得先は重複不可のフィールドですが、型番命名の都合上AAA、AAA-1、AAA-2の様な構成になる為、AAAでルックアップを掛けると部分一致でAAA-1とAAA-2もかかってしまう模様です。
用途としましてはサブテーブル内もルックアップを使用しており、製品AAAのレコードにサブテーブルを設置し、構成部品AAB、AAB-1、AAC、AAD…と並べ、各構成部品の情報を製品AAAレコード編集時に最新の情報に自動取得したいと考えています。
現状はAABの場合は自動取得されない。(AABかAAB-1か選ぶウィンドウが出る)
AAB-1の場合は部分一致がないので自動取得される。の状態です。
ルックアップ取得時の検索機能の部分一致を無効化し完全一致のみにするなど、何か方法がないでしょうか。
現状は(kintoneルックアップフィールドでアクションボタンで入力したにも関わらず”[取得]を押し、参照先からデータを取得してください。”エラーが発生する問題の自動入力拡張で解決した #JavaScript - Qiita)からコピペしてきた下記のプログラムを使用しています。
私自身にはプログラムの知識はほぼありません。ネットで調べたものをつぎはぎしてやっている程度になります。よろしくお願いします。
(function() {
'use strict';
var events = ['app.record.create.show', 'app.record.edit.show'];
kintone.events.on(events, function(event) {
setTimeout(function() {
// ルックアップフィールドのすべてのinput要素を取得
var inputFields = document.querySelectorAll('.component-app-lookup-inputlookup .input-text-outer-cybozu input');
// 各input要素について処理
inputFields.forEach(function(inputField) {
if (inputField && inputField.value !== '') {
// inputの値が空欄でない場合にのみ、「取得」ボタンをクリック
// input要素に最も近い親の.component-app-lookup-inputlookup要素を探す
var lookupContainer = inputField.closest('.component-app-lookup-inputlookup');
if (lookupContainer) {
var lookupButton = lookupContainer.querySelector('.button-simple-cybozu.input-lookup-gaia');
if (lookupButton) {
lookupButton.click();
} else {
console.error('Lookup button not found. Make sure the lookup field is visible and the page is fully loaded.');
}
}
}
});
}, 1000); // タイミングの問題を避けるために少し待つ
return event;
});
})();