特定のキーワードが対象項目に入力された場合、詳細な説明を入力必須にする方法
例:ある電子部品メーカーでは、商品の品質検査を外部の事業者に委託しています。検査結果はCRMに入力され、レポートを通じて品質管理責任者に共有されます。その中で、委託業者が入力した情報において、重要な項目が不足していたり、説明が分かりにくかったりすることが数多くありました。そのため、確認の回数や工数が増加し、業務遅延や生産効率の低下を招いていました。この問題の解決のため、報告者が対象項目に特定のキーワードを入力した際、詳細な説明の入力を促すメッセージを表示することにしました。
上記を行うために、入力規則を次のように設定します:
ユーザーによって「その他」、「不明」、「全般」、「要確認」、「重要」などの値が入力されると、入力規則によってエラーが表示されます。エラーメッセージは次のとおりです:「具体的な説明が必要なキーワードが含まれています。詳細な説明を入力してください」。
関数のコードは、以下のとおりです:
/* 以下のコードは、CRMから取得した値が保存されている変数(Mapオブジェクト)から項目の一覧と値を取得する例です。この例では、「entityMap」がMapオブジェクトで、項目の値は、該当のMapオブジェクトから取得されます。*/
entityMap = crmAPIRequest.toMap().get("record");
/* 以下のコードは、Mapオブジェクトから項目の値(メールアドレス)を取得する例です。この例では、「entityMap」がMapオブジェクトで、「Email」が項目のAPI名です
entityMap= {'Email': 'xxx@xxx.com', 'Last_Name': 'xxx'}; */
field = entityMap.get("field_api_name");
response = Map();
/* ---------------------------------------------------------------------------------------------- */
/* こちらにコードを入力して、対象の項目の値を検証します*/
/* ---------------------------------------------------------------------------------------------- */
/*入力した値がコードで指定した条件と一致しない場合は、エラーのステータスを設定し、通知メッセージを表示します:*/
//if(condition) {
//response.put('status','error');
//response.put('message', '<100文字以下でメッセージを入力します>');
//} else {
/*検証によるエラーがない場合は、処理完了のステータスを設定します:*/
response.put('status','success');
//}
/* ---------------------------------------------------------------------------------------------- */
return response.toString();
上記の入力規則の関数:
if(Description.contains("その他") || Description.contains("不明") || Description.contains("全般") || Description.contains("要確認") ||
Description.contains("重要")) {
response.put('status','error');
response.put('message', '具体的な説明が必要なキーワードが含まれています。詳細な説明を入力してください。');
} else {
国別の郵便番号のパターンの検証
国別での特定の形式に従い、納品先住所の項目に入力された郵便番号を検証します。
*以下のコードを対象の箇所に追加します。
1.郵便番号が数字7桁の形式の場合(例:日本)。
condition: zipCode.matches("([0-9]{7})" ) == false
2.郵便番号がアルファベットと数字の形式(A9A 9A9)の場合(例:カナダ)。
condition: zipCode.matches("([A-Z]{1}[0-9]{1}[A-Z]{1}[0-9]{1}[A-Z]{1}[0-9]{1})") == false
3.郵便番号がアルファベットで始まり、数字で終わる形式(AAAAA99)の場合(例:ジャマイカ)。
condition: zipCode.matches("([A-Z]{5}[0-9]{2})") == false
4.郵便番号がアルファベット、ハイフン(-)、数字の形式(AA-9999)場合(例:ラトビア)。
condition: zipCode.matches("([A-Z]{2}-[0-9]{4})") == false
国際銀行口座番号(IBAN)などの識別情報における正規表現の検証
国によっては、データの形式が異なる場合があります。国際銀行口座番号(IBAN)などのデータの場合、国コードと口座番号を合わせた形式になります。また、口座番号の文字数は国によって異なります。
*以下のコードを対象の箇所に追加します。
1.IBAN番号が国コード「AL」と28桁の口座番号の組み合わせの場合(アルバニア)。
condition: IBANNumber.matches("(^(AL)[0-9]{28})") == false
2.IBAN番号が国コード「BL」と16桁の口座番号の組み合わせの場合(ベルギー)。
condition: IBANNumber.matches("(^(BL)[0-9]{16})") == false
3.IBAN番号が国コード「DE」と22桁の口座番号の組み合わせの場合(ドイツ)。
condition: IBANNumber.matches("(^(DE)[0-9]{22})") == false
入力された国際標準逐次刊行物番号(ISSN)の形式の検証
国際標準逐次刊行物番号(ISSN)とは、出版物を識別するために用いられる、重複しない8桁の数字です。数字は、ハイフンで区切られた4桁の数字2組で表されます(例:0378-5955)。ISSNコードを使用して記事を検索する際、数字はこの形式で入力されます。以下の関数を使用することで、ISSN項目の形式を検証することができます。
*以下のコードを対象の箇所に追加します。
condition: ISSNNumber.matches("([0-9]{4}-[0-9]{4})") == false
電話番号の国コードの形式の検証
個人情報のうち、顧客によって入力される連絡先の電話番号には国コードが含まれる必要があります。この場合、電話番号が「+」「国コード」「電話番号」の順になるように検証します。以下の関数を使用することで、電話番号の値の形式を検証することができます。
*以下のコードを対象の箇所に追加します。
1.電話番号の形式が「+44-20-999999999」となる場合(イギリス)。
condition: phoneNumber.matches("(^(\+44-20)-[0-9]{9})") == false
2.電話番号の形式が「+1-999-999999999」となる場合(アメリカ合衆国)。
condition: phoneNumber.matches("(^(\+1)-[0-9]{3}-[0-9]{9})") == false
3.電話番号の形式が「+31-99-999999999」となる場合(オランダ)。
condition: phoneNumber.matches("(^(\+31)-[0-9]{2}-[0-9]{9})") == false
担当者が日付項目に過去の日付を入力しないよう制限する方法
担当者が日付項目に過去の日付を入力しないように制限します。たとえば、営業担当者が商談の完了予定日を編集する場合、過去の日付を入力しないように制限します。担当者が今後の日付のみ項目に入力できるように設定します。
*以下のコードを対象の箇所に追加します。
condition: days360(today, closingDate.toDate()) > 0