
kintoneで他アプリにレコード情報を新規登録したいのですが、どのように実装すれば良いのでしょうか。

kintoneにおけるJavaScriptカスタマイズではREST APIが使えます。
POST処理を行うことで他アプリにレコードを新規登録できます。

この記事ではAPIを使ったレコードの登録(POST)処理について解説します。
- kintoneのJavaScriptカスタマイズでは、REST APIを使えます。
- レコード情報を新規登録するには、POST処理を行います。
- POST処理は2種類あります。
 ・1件登録する
 ・複数件登録する
- REST APIは非同期処理です。同期処理にするには「async/await」を使います。
kintoneのレコード情報の新規登録(POST)
kintoneでレコードを保存する時、同時に他のアプリにもレコードを登録したいということはないでしょうか。
JavaScriptカスタマイズでは、REST APIのPOST処理を使えば、任意のタイミングで他アプリにレコード情報を新規登録できます。
新規登録できるレコードも1件だけではなく、複数件のレコードを一括登録できます。
1件登録する方法と複数件登録する方法の両方をコードで解説します。
レコードを1件登録する
レコードを1件登録する場合は、アプリIDとレコードIDを使います。
以下のコードでは、レコード追加保存時にアプリID:119に新規登録します。
(() => {
	'use strict';
	kintone.events.on(['app.record.create.submit'], event => {
		const record = event.record;
		const params = {
			app: 119,		// アプリID
			record: {		// レコード情報
				氏名: {
					value: [{ code: kintone.getLoginUser().code }]
				},
				内容: {
					value: record.対応内容.value
				}
			}
		};
		return kintone.api(kintone.api.url('/k/v1/record.json', true), 'POST', params).then((resp) => {
			// POST成功
			alert('アプリ119にレコードを登録しました。');
			return event;
		}).catch((error) => {
			// POSTエラー
			console.log(error);
			event.error = 'エラーが発生しました。';
			return event;
		});
	});
})()REST APIは非同期処理です。
即ち、APIを実行している間に、後続の処理が並列して実行されます。
例えば、レコード保存時や削除時にAPIを実行すると、その結果が返ってくる前に保存や削除が完了してしまいます。
そのため、保存完了を待つために、kintone.apiを「return」します。
これにより「Promise」を使った同期処理になります。
POST後の処理は「.then()」に続く関数内に記述します。
一方でPOSTがエラーの場合の処理は「.catch()」に続く関数内に記述します。
エラーの場合はレコードの保存をキャンセルしたいため、「event.error」を設定します。
エラーの書き方については以下記事でも解説しました。

レコードを複数件登録する
レコードを複数件登録する場合は、登録する件数分のレコード情報をパラメータとして渡します。
以下のコードでは、サブテーブルの各行を他のアプリにレコードとして登録します。
(() => {
	'use strict';
	kintone.events.on(['app.record.create.submit'], async event => {
		const record = event.record;
		const postRecords = record.サブテーブル.value.map((row) => {
			return {
				氏名: {
					value: row.value.サブテーブル_対応者.value
				},
				内容: {
					value: row.value.サブテーブル_対応内容.value
				}
			};
		});
		try {
			const params = {
				app: 119,		// アプリID
				records: postRecords	// レコード情報
			};
			await kintone.api(kintone.api.url('/k/v1/records.json', true), 'POST', params);
			alert('アプリ119にレコードを登録しました。');
			return event;
		} catch (e) {
			// POSTエラー
			console.log(e);
			event.error = 'エラーが発生しました。';
			return event;
		}
	});
})()サブテーブルは「map」を使い、全行をループしつつ、登録用のレコード配列に追加します。
この配列とアプリIDをPOST時のパラメータとします。
APIのURLは、複数件の登録の場合は「kintone.api.url(‘/k/v1/records.json’, true)」のように「records」である点に注意です。
先に述べた通り、REST APIは非同期処理です。
先ほどはkintone.apiを「return」することでPromise処理による同期処理としましたが、こちらは「async/await」を使いました。

- kintoneのJavaScriptカスタマイズでは、REST APIを使えます。
- レコード情報を新規登録するには、POST処理を行います。
- POST処理は2種類あります。
 ・1件登録する
 ・複数件登録する
- REST APIは非同期処理です。同期処理にするには「async/await」を使います。
