クライアントスクリプトを使用して項目の入力必須化を行いたい

クライアントスクリプトを使用して項目の入力必須化を行いたい

いつもお世話になっております。
今成様や西尾様、松井様にはお話しておりますが、先日開催された「カスタム関数マスター講座 Vol.4」で、宿題として取り組んだもののうまくいかなかったクライアントスクリプトを投稿させていただきます。


【取り組んだテーマ】
自社の商談タブに設置しているサブフォームの項目「販売金額総額(税別)」で何らかの金額更新があったら、項目「外注総額_」をクライアントスクリプトで入力必須の項目にする。
 必須化の条件は、「販売金額総額(税別)」で「0」円よりも大きい数字(=1以上)が反映されたときとする。

(サンドボックス環境の商談タブ画面(データはダミーです))



【参照した情報と記述したコード】

(使用項目とAPI名)
・販売金額総額(税別)Quote_Amount
・外注総額_ TotalOutsourcing1

●テストコードその1

let quote_amount = ZDK.Page.getField('Quote_Amount'); // サブフォームの「販売金額総額(税別)」('Quote_Amount')をquote_amountと定義する
let quote_amount_value = ZDK.Page.getField(); // そのquote_amountの値をquote_amount_valueと定義する
log(quote_amount_value); // quote_amount_valueをログに出す?

let total_outsourcing1 = ZDK.Page.getField('TotalOutsourcing1'); // 外注総額_('TotalOutsourcing1')をtotal_outsourcing1と定義する

quote_amount.setValue('Quote_Amount'); // quote_amountに「販売金額総額(税別)」('Quote_Amount')の値をセットする?

if (quote_amount_value > 0) {   // もし、quote_amount_valueに0よりも大きい数字(=1以上)が入っていたら、
    total_outsourcing1 = ZDK.Form.Field.Mandate('TotalOutsourcing1'); // total_outsourcing1を入力必須項目とする
    total_outsourcing1.showError("「外注総額_は必須です。発生しない場合は0を入力してください");   // さらにtotal_outsourcing1にエラーメッセージを出す
} else {  // もし、quote_amount_fieldに0よりも大きい数字が入っていなければ(=0)、
    ZDK.Client.showMessage("見積書を作成する場合は「商談から見積書を作成する」ボタンをクリックしてください", { type: "info" });   // 画面に情報メッセージを出す ※本当は「何もしない」という処理を設定したい。
}

●テストコードその2 

var quote_amount_field = ZDK.Page.getField("quote_amount");  // サブフォームの「販売金額総額(税別)」("quote_amount")をquote_amount_fieldと定義する
quote_amount_field.setValue("quote_amount");  // quote_amount_fieldには、サブフォームの「販売金額総額(税別)」("quote_amount")の値を入れる
var total_outsourcing1_field = ZDK.Page.getField("TotalOutsourcing1");   // 「外注総額_」("TotalOutsourcing1")をtotal_outsourcing1_fieldと定義する

if (quote_amount_field > 0) {   // もし、quote_amount_fieldに0よりも大きい数字(=1以上)が入っていたら、
    total_outsourcing1_field = ZDK.Form.Field.Mandate('TotalOutsourcing1');    // total_outsourcing1_fieldを入力必須項目とする
    total_outsourcing1_field.showError("「外注総額_は必須です。発生しない場合は0を入力してください");    // さらにtotal_outsourcing1_fieldにエラーメッセージを出す
} else {    // もし、quote_amount_fieldに0よりも大きい数字が入っていなければ(=0)、
    ZDK.Client.showMessage("見積書を作成する場合は「商談から見積書を作成する」ボタンをクリックしてください", { type: "info" });   // 画面に情報メッセージを出す ※本当は「何もしない」という処理を設定したい。
}


(クライアントスクリプトのエディター画面)
*テストコードを2種類記述していますが、一方をコメントアウトして、それぞれでプレビューして挙動を確認しました。


*なお、岸本様のサンプルに「サブフォームの総額は項目変更の処理ができないため、ページが変わったらの条件で指定」との記載があったため、それに従い「ページの処理」に対して設定しています。(編集画面でのonChange)

【結果】
エディターツール上でエラーはカウントされないが、特に挙動もしない。

----------------------------

以上でございます。

Javascript未経験であるため、まずvarやletの使い分けなども理解できておらず、コメントで書き足しているコードの解釈なども誤っている箇所があるかと存じますが、挙動しない要因がどこにありそうか、ご意見をいただけますと幸いです。


何卒よろしくお願いいたします。



    Access your files securely from anywhere

        Zoho Developer Community




                                  Zoho Desk Resources

                                  • Desk Community Learning Series


                                  • Digest


                                  • Functions


                                  • Meetups


                                  • Kbase


                                  • Resources


                                  • Glossary


                                  • Desk Marketplace


                                  • MVP Corner


                                  • Word of the Day



                                      Zoho Marketing Automation


                                              Manage your brands on social media



                                                    Zoho TeamInbox Resources

                                                      Zoho DataPrep Resources



                                                        Zoho CRM Plus Resources

                                                          Zoho Books Resources


                                                            Zoho Subscriptions Resources

                                                              Zoho Projects Resources


                                                                Zoho Sprints Resources


                                                                  Qntrl Resources


                                                                    Zoho Creator Resources



                                                                        Zoho Campaigns Resources


                                                                          Zoho CRM Resources

                                                                          • CRM Community Learning Series

                                                                            CRM Community Learning Series


                                                                          • Kaizen

                                                                            Kaizen

                                                                          • Functions

                                                                            Functions

                                                                          • Meetups

                                                                            Meetups

                                                                          • Kbase

                                                                            Kbase

                                                                          • Resources

                                                                            Resources

                                                                          • Digest

                                                                            Digest

                                                                          • CRM Marketplace

                                                                            CRM Marketplace

                                                                          • MVP Corner

                                                                            MVP Corner





                                                                              Design. Discuss. Deliver.

                                                                              Create visually engaging stories with Zoho Show.

                                                                              Get Started Now