Cybozu developer networkのTipsのURL:

https://developer.cybozu.io/hc/ja/articles/212208463


kintoneのレコード保存後イベントでレコードを更新するカスタマイズをご紹介します!


レコード新規追加時、レコード保存する前はまだレコード番号や作成者、作成日時などの情報がありません。でも、それらの情報を他のフィールドに入れたいときってありますよね?


でも、一回保存してからもう一度編集するなんて面倒…。


Customineなら簡単に解消できます!


今回はレコード保存後イベントでレコードを更新する一例として、レコード保存直後にレコード番号を使って固有のIDを作成し、レコードに自動入力するカスタマイズをしてみましょう!


Customineの基本的な事柄は、こちらの「はじめてのカスタマイズ」をご参照ください。


アプリのフォーム

アプリストアから「交通費申請」アプリを追加し、下記のフィールドを追加します。

  • 申請No:文字列(1行)フィールド


また、フィールドコードはフィールド名と同じになるように変更しておきましょう。

(カスタマイズ時にどのフィールドか判別しやすくするため)



やりたいこと

レコード保存直後に、「申請No」に「交通[作成日時]-[レコード番号]」が入るようにレコードを更新する。


Customineの設定

レコード保存直後にレコードを更新する



すぐにレコードを更新したいところですがその前に、作成日時を”YYYYMMDD”の形式で入力したいので、その準備としてまずは「日付や時刻をフォーマットする」を使って現在の日時を指定の形式に変換します。

そのあとに続けてレコード更新を行う、という流れです。


現在の日付の取得・変換

レコードの更新


  • 更新する対象のレコードは、現在見ているレコード自身、つまり現在見ているレコード番号と同じレコード番号を持つレコードを指定します。


  • 更新する対象のフィールドは「更新No」、値は「=”交通” & $(日付フォーマットのアクション番号) & “-” & レコード番号」と入力します。$(日付フォーマットのアクション番号)は日付フォーマットで変換された後の日付が代入されます。



編集不可設定

自動で入力される部分は手入力で編集する必要がありません。特に自動採番する部分などは変更してはいけないので、誤って変更してしまわないように、編集不可にしてしまうのが望ましいでしょう。



やることは「フィールドを無効化する」を選択し、条件には「追加・編集画面を表示した時」を選択します。

一覧画面でも編集できないように、「一覧画面の鉛筆を押した時も含める」にしておきましょう。


レコード再利用時クリア設定

レコード再利用時にはコピー元の「申請No」もコピーされてしまいます。

これでは保存時に「申請No」が新しいものにならず、作成日時もレコード番号も整合性が取れなくなってしまいます。


そこで、レコード再利用時に「申請No」をクリアするアクションを加えましょう。



やることは「フィールド値をクリアする」を選択し、条件には「再利用モードで追加画面を表示した時」を選択します。


上のように設定が完了したら、「kintoneアプリへ登録」し、動作を確認してみましょう!



テスト

設定が完了したら、「kintoneアプリへ登録」し、動作チェックしてみましょう。


レコード更新


保存すると「申請No」に値が自動で入るようになっています。


レコード追加、編集画面


「申請No」が編集不可になっています。レコード再利用時は自動でクリアされるようになっています。


終わりに

今回は、レコード保存直後にそのレコードを更新することで、保存成功時に追加される情報を別のフィールドに利用するテクニックをご紹介しました。


今回使用したレコード更新アクションは、別のレコードや別のアプリを更新することもでき、複数のレコードを一気に更新することもできます!夢が広がりますね!!


カスタマイズ次第では複雑な機能でもCustomineで簡単に実現できたりします!

色々設定してどんどん便利なアプリにしてくださいね!


Customineヘルプサポートもぜひご活用ください。


もし分からないことがありましたら、フォーラムの方でご質問ください。