受注データアプリと明細データアプリがあります。
ボタンを押下
↓
受注データアプリの採用者テーブルのルックアップフィールドである、採用者名の値をすべて取得します。
↓
明細アプリに遷移し、取得した受注データのテーブル値を明細アプリのテーブルにセットする。
上記の処理を実現したいのですが、下記の処理がうまくできず困っています。
・値は取得できており、明細データのレコードに値がセットできていない。また、表示されない。
作成中のソースを下記に示します。
分かる方がいらっしゃいましたら、ご教授お願いします。
(function() {
“use strict”;
kintone.events.on([‘app.record.detail.show’,‘app.record.edit.show’], function(event) {
/*
受注データアプリ内処理
*/
//ボタンを設置
var mySpaceFieldButton = document.createElement(‘button’);
mySpaceFieldButton.id = ‘sample’;
mySpaceFieldButton.innerText = ‘サブテーブルを表示’;
//ボタン押下処理
mySpaceFieldButton.onclick = function () {
//サブテーブル取得 (行)
var tableRecords = event.record.採用者テーブル.value;
//格納配列定義
var leg = [];
//サブテーブル数ループ
for(var i=0;i<tableRecords.length;i++){
//ルックアップフィールドのみ取得しておく。
var saiyou = tableRecords[i].value[‘採用者名’].value
//配列に格納
leg[i] = [saiyou];
}
/*
明細データアプリ内処理(受注データから遷移後)
*/
//明細データ新規登録画面遷移
var _window = window.open(‘明細データのURL’,‘_blank’);
//loadイベントで元windowとposMessageを利用し読み込みタイミングを同期。同期タイミングで処理開始。
_window.addEventListener(“load”, function(){
window.postMessage(_window.kintone != null, location.origin);
});
window.addEventListener(“message”,function(e){
if(!(_window == null)){
var _kintone = _window.kintone;
//明細データフィールド取得
var _record = _kintone.app.record.get();
if(!(_record == null)){
//明細データ 採用者テーブル
var tableVal = _record.record.採用者テーブル.value;
//受注データ 採用者テーブル数ループ
for(i=0;i<tableRecords.length;i++){
//初期化
var subVal = “”;
var subLook = “”;
subVal = tableVal[i].value[‘採用者名’].value
subLook = tableVal[i].value[‘採用者名’].lookup
//値セット
subVal = leg[i];
//ルックアップon
subLook = true;
//サブテーブル行追加
//
var newRow = {
value:{
‘採用者名’:{
type: ‘SINGLE_LINE_TEXT’,
value: ‘採用者名’
},
‘役職’:{
type: ‘SINGLE_LINE_TEXT’,
value: ‘役職’
},
‘採用者住所1’:{
type: ‘SINGLE_LINE_TEXT’,
value: ‘採用者住所1’
},
‘採用者住所2’:{
type: ‘SINGLE_LINE_TEXT’,
value: ‘採用者住所2’
},
‘TEL’:{
type: ‘SINGLE_LINE_TEXT’,
value: ‘TEL’
},
‘郵便番号’:{
type: ‘SINGLE_LINE_TEXT’,
value: ‘郵便番号’
}
}
};
_record.record.採用者テーブル.value.push(newRow);
}
}
}
});
}
kintone.app.record.getSpaceElement(‘sample’).appendChild(mySpaceFieldButton);
});
})();