はじめに
この記事では、既に「住所」フィールドに入力されている文字列から都道府県名のみを抜き出して、別フィールド(「都道府県」フィールド)に転記するカスタマイズをご紹介します。
アプリ構成と実現する内容
kintone アプリストアにある「顧客リスト」を使用します。既に「住所」フィールドに住所が入力されていますので、追加で「都道府県」フィールドを文字列(一行)で作成しておきます。
この「住所」フィールドに入力された文字列のうち都道府県名部分(例:岐阜県)のみを「都道府県」フィールドに転記するカスタマイズを作成します。
カスタマイズ作成
このカスタマイズでは、「リストから要素を取り出した時」を 2 つ使用します。1つ目の「リストから要素を取り出した時」では「一覧の条件でレコードを全件取得する」を使用して取得したレコードをリスト内の要素として使用します。2つ目の「リストから要素を取り出した時」には47都道府県の名称を要素として指定します。
そして、上記 2 つのリスト内の要素を見比べて、一致した場合には「レコードを更新する(キーの値を直接指定)」を使用して該当のレコードを更新する、という流れになります。
まずは「ボタンをメニュー位置に配置する」で一覧画面にボタンを設置します。
続いて、このボタンを押したときのアクションとして読み込み中画面の表示を設定します。この「読み込み中画面を表示する」は無くても処理自体は可能ですが、処理時間が長くなった場合にユーザーが誤ってブラウザを閉じてしまうことなどを防ぐために入れることをおすすめします。
処理対象となるレコードを取得する処理です。今回は一覧の条件に合致するレコードに処理を行いたいので「一覧の条件でレコードを全件取得する」を使用しています。要件に応じて「クエリで条件を指定してレコードを取得する」などに変更いただくことも可能です。
104~107 のアクションが繰り返し処理によって、住所内に都道府県名がある場合に街灯のレコードを更新する処理となります。「リストから要素を取り出す」と「リストから要素を取り出した時」を使用することにより、$104 の結果の数(= 104 のアクションで取得したレコードの件数分)だけ 繰り返し処理が行われます。
107 の条件では追加条件として「2つの値を比較して条件を満たすならば」を使用し、比較する値(A)に「= $104.住所」と指定しています。これは 104 のアクションでリストから取り出したレコード内の住所フィールドの値を指しています。そして、比較する値(B)に「= $106」と指定することで、106 のアクションでリストから取り出した都道府県との比較が可能となります。
また、106 のアクションでは都道府県名をリストの要素として指定しています。47 都道府県のリストを手動で作成するのは手間がかかると思いますので、同様のカスタマイズを作成される際には以下をコピー&ペーストしてお使いください。
108 , 109 のアクションはともに「なにもしない」です。108 ではリストから取り出した住所とリストから取り出した都道府県が一致しなかった場合、109 では都道府県のリストを最後まで読み取った場合に後続のアクションに繋ぐ役割を果たしています。
110 のアクションにて「読み込み中画面を終了する」で表示していた読み込み中画面を終了します。そして、111 のアクションでは処理結果を画面に反映するためにリロードを行います。
アクショングラフ
今回のカスタマイズでは以下のようなアクショングラフとなります。住所と都道府県が一致するかどうかを判定する107,108 のアクションのあとに 106 に戻り繰り返し処理が行われること、都道府県のリストが最後まで終わると次のレコードの処理に移るため、104 に戻っていることがおわかりいただけるかと思います。
まとめ
以上の設定により、住所から都道府県を抜き出して転記することが可能となります。
このように「リストから要素を取り出す」を活用することで、複数のレコードに対する処理を一括で作成できるケースが多いため、是非お試しいただければと思います。
カスタマイズ画像まとめ