LoginSignup
5
3

More than 3 years have passed since last update.

Apexで簡単なバリデーションチェックを作ってみた。

Last updated at Posted at 2019-08-04

salesforceには標準機能が充実しているので標準でもできるやん。というような内容ですが、複雑な組み合わせの入力規則などをapexで作ることもあるかもしれないので、バリデーションチェックのサンプルを作ってみました。

機能

顧客作成画面みたいなものをイメージしてみました。
使っているのは標準オブジェクトの取引先責任者です。
今回のバリデーションチェックは、
1.携帯電話の090、080,070から始まっているかどうか
2.携帯電話が11桁かどうか
の二つです。

では実際のコードです。

VF画面
samplepage.vfp
<apex:page controller="samplepagecontroller" sidebar="false">
    <apex:pageMessages id="message"/>
    <apex:sectionHeader title="顧客作成画面"/>
    <apex:form >
        <apex:pageBlock >
            <apex:pageBlockSection columns="2" showHeader="true" title="個人情報">            
                <apex:inputField value="{!conditions.LastName}"/>
                <apex:inputField value="{!conditions.FirstName}"/>
                <apex:inputField value="{!conditions.MobilePhone}"/>
                <apex:inputField value="{!conditions.LeadSource}"/>
            </apex:pageBlockSection>
            <apex:pageBlockButtons location="bottom">
                <apex:commandButton action="{!save}" value="保存"/>
            </apex:pageBlockButtons>
        </apex:pageBlock>
    </apex:form>
</apex:page>

Apexコード

samplepagecontroller.cls

        String left = conditions.MobilePhone.left(3);
        Integer length = conditions.MobilePhone.replace('-','').length();
        //電話番号チェック
        if ( left == '090' || left == '080' || left == '070') {
            if ( length != 11 ) {
                Apexpages.addMessage(new ApexPages.message(ApexPages.Severity.INFO,'携帯番号は11桁で入力してください。'));
            }
            insertContact.MobilePhone = conditions.MobilePhone.replace('-','');
        } else {
            Apexpages.addMessage(new ApexPages.message(ApexPages.Severity.INFO,'携帯番号は090、080、070から始まる番号を入力してください。'));
        }

まず、.left(3)で最初の3桁を判定します。
その後問題なければ、.length() != 11で11桁の判定をしています。

3桁チェック

スクリーンショット 2019-08-04 21.17.00.png

11桁チェック

スクリーンショット 2019-08-04 21.17.26.png

このように組み合わせればより複雑なバリデーションチェックも可能だと思います。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3