背景・実現したいこと
①申込アプリのルックアップ機能で稟議アプリのレコード番号を取得(手動入力)。
②申込アプリ保存時、申込アプリの「稟議アプリレコード番号(サブテーブル内にあり)」の値と同じ稟議アプリのレコード番号を探す
③②で探したレコード番号のレコードにチェックボックを自動更新(「済」にする)
※カスタマイズは申込アプリに適用しています。
困っていること(2点)
・②の稟議アプリレコード番号(サブテーブル)が一明細しか入っていない場合は、正常に稟議アプリへのチェックボックス自動更新が行えます。ですが、サブテーブル内の明細が複数行になった場合2行目以降が実行されません。
→2行目以降も1行目と同様の処理をしたい
・申込アプリ保存時に稟議アプリレコード番号(サブテーブル)が未入力の場合、に保存ができません。
→未入力は処理をかけずに通常の登録ができるようにしたい。
ご教授お願いできますでしょうか。
お手数おかけしますが、よろしくお願い申し上げます。
使用しているソースコード
/**
* データ取得(同期:1件)
* @param appId アプリID
* @param query 抽出条件
*/
function getRecord(appId, query) {
var record;
var appUrl = kintone.api.url(‘/k/v1/records’) + ‘?app=’+ appId + ‘&query=’ + encodeURIComponent(query) + ’ offset 0’;
// 同期リクエストを行う
var xmlHttp = new XMLHttpRequest();
xmlHttp.open(“GET”, appUrl, false);
xmlHttp.setRequestHeader(‘X-Requested-With’,‘XMLHttpRequest’);
xmlHttp.send(null);
//取得したレコードを格納
var respdata = JSON.parse(xmlHttp.responseText);
if(respdata.records.length > 0){
record = respdata.records[0];
}
return record;
}
/**
* REST API 実行
* @param method POST/PUT/DELETE
* @param url URL
* @param sync 同期 false/非同期 true
* @param param パラメータ
*/
function execRestAPI(method, url, sync, param) {
var xmlHttp = new XMLHttpRequest();
var appUrl = kintone.api.url(url);
//alert(appUrl);
xmlHttp.open(method, appUrl, sync);
xmlHttp.setRequestHeader(‘X-Requested-With’,‘XMLHttpRequest’);
xmlHttp.setRequestHeader(‘Content-Type’,‘application/json’);
xmlHttp.send(JSON.stringify(param));
if (xmlHttp.status != 200) {
// error
console.log(xmlHttp.responseText);
}
return xmlHttp.status;
}
/**
* 稟議アプリの更新
* @param
*/
function updRingi(Rrecord) {
var query = ‘レコード番号=’ + Rrecord //表示イベントで取得した申込アプリで取得した稟議レコード番号と同じ値のレコードを取得
var RingiRecord = getRecord(695, query); //稟議アプリのレコード番号取得
var param = {
app : 695, //稟議アプリのID
id : RingiRecord[‘$id’][‘value’], //レコード番号で取得したレコードの申込完了区分を更新
record : {
“申込書消込区分”: {value: [‘済’]}
},
“__REQUEST_TOKEN__” : kintone.getRequestToken()
}
var status = execRestAPI(‘PUT’, ‘/k/v1/record’, false, param); //更新処理
if (status != 200) {
alert(‘5’);
return false;
}
}
/*========================================================================/
// 表示時のイベント(レコード一覧画面)
/========================================================================*/
kintone.events.on([‘app.record.index.edit.submit’, ‘app.record.create.submit’, ‘app.record.edit.submit’], function(event) { //新規登録画面・修正画面で保存ボタン実行時にイベント開始
var record = event.record;
var Rrecord = record[‘口振種目情報’][‘value’][0][‘value’][‘稟議レコード番号’][‘value’] //稟議レコード番号取得
/*-------------------------/
/ 管理マスタの更新
/-------------------------*/
var result;
result = updRingi(Rrecord);
alert(‘稼動日報作成が異常終了しました2。’);
return event;
});