やること「正規表現を用いてフィールドの値を置換する」をご利用ください。
正規表現を使い、フィールドの値の一部を抜き出す、書き換えるなどができます。
正規表現を用いた文字列の一部の抜き出し:
やること「正規表現を用いてフィールドの値を置換する」は、正規表現を使用してフィールドの値を「2019-5-1」から「2019年5月1日」に置き換えたい場合などに利用します。
また、この置換機能はフィールドの値(文字列)の一部を抜き出したい場合にも使用できます。
下記のように「注文コード」フィールドの3文字目から10文字目を抜き出したい場合を例にとります。
※ボタンをスペースに配置するアクションの説明は省略しています。
※kintoneアプリ側でフィールド名とフィールドコードは同じものに設定しています。
やること
「正規表現を用いてフィールドの値を置換する」を選択します。
フィールドは「注文コード」フィールドを指定します。
正規表現には「(.{2})(.{8})(.*)」、置換文字列には「$2」を指定しました。
複数ヒットした場合は「最初の1つだけ置換」を選択しました。
正規表現と置換文字列は下記のような意図で設定しています。
.{2}:任意の2文字
.{8}:任意の8文字
.*:任意の文字の0回以上の繰り返し
また、「(.{2})」のように()で囲むことで文字のパターンをグループ化できます。
置換文字列内で左から$1、$2のような、「$番号」の表記で識別します。
※正規表現はあくまで一例です。ご利用目的に合った表現をご利用ください。
Customineからkintoneアプリへ登録を行い、kintoneアプリを実行してみます。
「注文コード」フィールドに「CH20190105001」と入力し、スペースに表示しておいた「一部抜き出し」ボタンをクリックします。
「注文コード」フィールドの値が、元々入力されていた「CH20190105001」の3文字目~10文字目を抜き出した値に置換されました。
このように、「正規表現を用いてフィールドの値を置換する」は、文字の抜き出しにも利用できます。
ただ、抜き出し元の値がセットされているフィールドの値が置換されるため、変換元のフィールドの値を変更せずに残しておきたい場合は、下記の手順でご利用ください。
抜き出し元の値がセットされたフィールド:A
抜き出した値をセットしたいフィールド:B
フィールドAの値をフィールドBにコピー
フィールドBに対して値を置換
[参考]文字列フィールドの頭2文字を取得するカスタマイズ例:
下記は、科目コードフィールドの値が「GS001」の時、頭2文字の「GS」を取得し、科目集約コードフィールドにセットする例です。
科目コードの頭2文字が科目をグループ化する科目集約コード「GS」を表しており、科目コードの登録時にルックアップで科目集約コードを確認できるようにしています。
科目コードを入力し、科目コードフィールドからカーソルを移動します。
科目集約コードフィールド(ルックアップフィールド)に、科目コードフィールドの値の頭2文字”GS”がコピーされ、ルックアップが取得されます。
kintone側で、科目アプリと科目集約アプリを作成します。
フィールド名とフィールドコードは同じに設定しています。
科目アプリ:
科目集約コードフィールドはルックアップフィールド、他のフィールドはすべて文字列(1行)フィールドです。
科目集約コード_workは、科目コードから科目集約コードを取り出す際に使う、データの仮置き場です。
もし、科目集約コードフィールドがルックアップフィールドではなく文字列(1行)フィールドなどであれば、仮置き場のフィールドは必要ありません。
科目集約コードフィールドは、下記のように設定しました。
科目集約アプリ:
文字列(1行)フィールドで、科目集約コードと科目集約名を配置しました。
あらかじめ、レコードを登録しておきます。
Customineで科目アプリのカスタマイズを作成します。
今回のアプリの場合、科目集約コードフィールドと科目集約コード_workは利用者に直接編集されたくないので、2つとも無効(編集不可)に設定します。
フィールドの無効化
やること
「フィールドを無効化する」を指定します。
フィールドには、無効化したい「科目集約コード」「科目集約コード_work」を指定します。
条件
フィールドの値を編集可能な画面で無効化したいので、「追加画面・編集画面を表示した時」を指定します。
次に、やること「正規表現を用いてフィールドの値を置換する」を使用する準備を行います。
今回のアプリでは、「科目コード」フィールドからコピーした「科目集約コード」フィールドの値を頭2文字だけ残して置換したいのですが、「科目集約コード」フィールドはルックアップフィールドなので、やること「正規表現を用いてフィールドの値を置換する」の対象にできません。
そのため、一旦値を「科目集約コード_work」フィールドにコピーし、置換してから「科目集約コード」フィールドにセットします。
「科目コード」フィールドの値を「科目集約コード_work」フィールドにコピー
やること
「フィールドに値をセットする」を選択します。
フィールドにはコピー先の「科目集約コード_work」、値にはコピー元の「科目コード」フィールドを指定します。
条件
「科目コード」フィールドの値が変わったときに処理を行いたいので「フィールドの値を編集して値が変わった時」を指定します。
フィールドは「科目コード」を指定しました。
一覧画面の鉛筆を押した時は「一覧画面の鉛筆を押した時は含めない」を指定します。
次に、正規表現を使って「科目集約コード_work」フィールドの値を頭2文字のみを残した値に置換します。
やること「正規表現を用いてフィールドの値を置換する」を使用して、下記のような方法で頭2文字を取り出します。
フィールドの値の頭2文字のみを取得し置換する
やること
「正規表現を用いてフィールドの値を置換する」を指定します。
フィールドには値を置換したい「科目集約コード_work」を指定しました。
正規表現には「(.{2})(.*)」、置換文字列には「$1」を指定します。
詳しくはドキュメント「正規表現を用いてフィールドの値を置換する」をご参照ください。
複数ヒットした場合、については「最初の1つだけ置換」を選択しています。
条件
「科目集約コード_work」に値がセットされてから処理を行いたいので「他のアクションの実行が完了した時」を指定します。
アクションは、値をセットするアクションのアクションNo「2」を指定しました。
加工後の頭2文字を科目集約コードフィールドにセットする
やること
「フィールドに値をセットする」を指定します。
フィールドは「科目集約コード」、値は「科目集約コード_work」フィールドです。
条件
「科目集約コード_work」値が頭2文字に変換されてから処理を行いたいので「他のアクションの実行が完了した時」を指定します。
アクションは、値を頭2文字に変換するアクションのアクションNo「3」を指定しました。
科目集約コードフィールドにセットされた頭2文字をキーにルックアップを再取得する
やること
「科目集約コード」フィールドにセットされた、「科目コード」フィールドの頭2文字をキーにルックアップを取得したいので「ルックアップを取得しなおす」を選択します。
ルックアップフィールドは「科目集約コード」です。
条件
「科目集約コード」フィールドに値がセットされてから処理を行いたいので「他のアクションの実行が完了した時」を指定します。
アクションは、値をセットするアクションのアクションNo「4」を指定しました。
以上で、カスタマイズは完了です。
kintoneアプリへ登録を行い、実行結果を確認してください。
この例のように、正規表現を使用することで、フィールドに入力された文字列から一部を取得する、置換するなどの処理が可能となります。