はじめに
こんにちは!かねごんです!
今回はkintoneのアプリアクションに関わる内容になります!
kintoneのアプリアクションは、簡単にレコードのデータを転記できる便利な機能です。
そんなアプリアクションによって作成されたレコードと、通常の新規作成されたレコードを判別したい場面ありませんか?
本記事は、そのようなケースに対応する2つのJavaScriptカスタマイズの内容をシンプルにお伝えします。
アプリアクションとは
アプリアクションは、現在表示しているレコードのデータを、新しいレコードに転記できる機能です。
たとえば、注文管理アプリで毎回お客様の情報を手入力している場合、すでに別のアプリで管理している顧客リストから転記する、といったことが可能です。
どんな人向けの記事か
- kintoneのアプリアクションを使用している人
- kintoneのカスタマイズに挑戦している人
アプリアクションで作成されたレコードを判別したい!
今回は、以下の2つの方法についての内容になります。
- レコードURLで判別する方法
- アプリアクション転記用のフィールドを設定して判別する方法
1. レコードURLで判別する方法
アプリアクションで作成されたレコードのURLには、"action"が含まれています。
- 例:
https://{サブドメイン}/k/{アプリID}/edit?action={アクションID}&app・・
実装例
レコード追加画面を表示する際に、URLを確認して”action”のパラメータが含まれているかを判別します。
kintone.events.on('app.record.create.show', (event) => {
const hasAction = new URL(window.location.href).searchParams.has("action");
if (hasAction) {
console.log('URL:このレコードはアプリアクションで作成されました');
}
});
プチまとめ
- JavaScriptを実装するだけで、特にフォームにフィールドを追加しなくても判別することが可能です。
- URLを利用するため、仕様変更や他のカスタマイズなどの影響を受ける可能性があります。
2. アプリアクション転記用のフィールドを設定して判別する方法
アプリアクション:先アプリのフォームに、フィールド(例: 「アクションフラグ」)を設定します。
アプリアクション:元アプリのアプリアクションにより、先アプリにデータを転記する設定を行います。
(今回の「アクションフラグ」には、レコード番号を転記しました。)
実装例
レコード追加画面を表示する際に、「アクションフラグ」を利用して判別します。
kintone.events.on('app.record.create.show', (event) => {
const actionFlag = event.record['アクションフラグ'].value;
if (actionFlag) {
console.log('アクションフラグ:このレコードはアプリアクションで作成されました');
}
});
プチまとめ
- URLに依存せず、レコードのデータから直接判別できます。
- フィールドの設定が必要であり、他のユーザーが誤ってフィールドの設定を変更するリスクもあります。
どちらの方法を選ぶべきか?
方法 | まとめ |
---|---|
1. レコードURL |
シンプルな実装を求める場合 フォームの変更が発生しないため、設定の手間が少ない。ただ、URLに依存するため、将来的な仕様変更や他のカスタマイズに影響を受ける可能性がある。 |
2. フィールドを設定 |
拡張性を重視する場合 レコードのデータに直接フラグを持たせるため、他のカスタマイズやデータ参照時にも利用しやすい。ただ、初期設定や管理の手間がかかる可能性がある。 |
例えばこんな場面で使えるかも!
今回は内容をかなりシンプルにお伝えしましたが、これらの方法を応用することで、
以下のような機能も実装することが可能です!
-
アプリアクション毎で、フィールドの制御をしたいとき
例) 発注依頼アプリで、再発注アクションでは「仕様」を編集不可にする。など -
特定のレコードから1度だけアプリアクションを行いたいとき
例) 在庫管理アプリで、出庫アクションを1度だけ許可し、2回目以降はエラーを表示する。など
さいごに
いかがでしたでしょうか?
今回は、アプリアクションに関するJavaScriptカスタマイズの内容でした。
便利なアプリアクションに少し手を加えて、より使いやすいkintoneアプリを作ってみてください!!!