function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Yuta.NakagawaYuta.Nakagawa 

JavaScriptでポップアップ表示後に活動の標準ボタン「メールの送信」の呼び出す方法

商談からメールを送る時に、商談の項目の値により、ポップアップウィンドウを表示したいと考えています。
カスタムボタンでJavaScriptにより、条件式がtrueならポップアップを表示後、メール作成画面へ遷移。
falseならメール作成画面に遷移するようにしたいです。

JavaScriptでポップアップ表示の判定後に、活動の標準ボタン「メールの送信」を起動することは実現可能でしょうか。
ご教授ください。よろしくお願いします。

流れとしては下記を想定しています。
1).商談のカスタムボタン「メール送信」をクリック
2).(1)のボタンクリック時に、商談の項目値A = Trueならポップアップを表示、ユーザーOKクリック後、活動標準ボタンの「メール作成画面」へ遷移
  商談の項目値A = falseなら直接、活動標準ボタンの「メール作成画面」へ遷移
3).メール作成後、送信
4).活動履歴にメール送信履歴を保存
Best Answer chosen by Yuta.Nakagawa
Shun KosakaShun Kosaka
カスタムボタンのOnClick Javascript内にif文を埋め込むことで実現可能かと思われます。
if(({!Opportunity.CustomField__c} && window.confirm('よろしいですか。'))
 || !{!Opportunity.CustomeField__c} ) {
window.open("/_ui/core/email/author/EmailAuthor?p3_lkid={!Opportunity.Id}&rtype=003&retURL=%{!Opportunity.Id}","_blank","toolbar=yes, location=yes, directories=no, status=no, menubar=yes, scrollbars=yes, resizable=no, width=1000, height=600") };
「CustomField__cがTrueでかつ、ポップアップでOKの場合」または「CustomeField__cがFalseの場合」にwindow.open()を呼び出しています。

All Answers

Shun KosakaShun Kosaka
カスタムボタンのOnClick Javascript内にif文を埋め込むことで実現可能かと思われます。
if(({!Opportunity.CustomField__c} && window.confirm('よろしいですか。'))
 || !{!Opportunity.CustomeField__c} ) {
window.open("/_ui/core/email/author/EmailAuthor?p3_lkid={!Opportunity.Id}&rtype=003&retURL=%{!Opportunity.Id}","_blank","toolbar=yes, location=yes, directories=no, status=no, menubar=yes, scrollbars=yes, resizable=no, width=1000, height=600") };
「CustomField__cがTrueでかつ、ポップアップでOKの場合」または「CustomeField__cがFalseの場合」にwindow.open()を呼び出しています。
This was selected as the best answer
Yuta.NakagawaYuta.Nakagawa
Shun Kosakaさん

いただいたアドバイスで実現できました。
ありがとうございます。
Yuta.NakagawaYuta.Nakagawa
申し訳ありません。あと1点ご質問です。
メール送信画面を開こうとすると、下記エラー文が表示されます。
組織環境でIdを15文字で使用している点も関係ありますでしょうか?
改善点が分かればご教授ください。よろしくお願いします。

【エラー文】
Unable to Access Page
The value of the "p3_lkid" parameter contains a character that is not allowed or the value exceeds the maximum allowed length. Remove the character from the parameter value or reduce the value length and resubmit. If the error still persists, report it to our Customer Support team. Provide the URL of the page you were requesting as well as any other related information. 
 
Shun KosakaShun Kosaka
Nakagawaさん

パラメータp3_lkidの値は、商談IDのままでしょうか?関連先オブジェクト以外のIDを設定すると、上記のエラーが表示されてしまいます。

EmailAuthorの主要なパラメータは下記です。
p2_lkid - 宛先(リードまたは取引先責任者のID)
p3_lkid - 関連先(関連オブジェクトのID)
p4 – CC
p5 – BCC
p6 – 件名

User-added image

また、window.open内で設定しているURLをブラウザに直入力し、正しく表示されるか確認いただけますでしょうか。下記のような形です。
https://xxxx.salesforce.com/_ui/core/email/author/EmailAuthor?p2_lkid=XXXXX&p3_lkid=YYYYY
Yuta.NakagawaYuta.Nakagawa
Shun Kosakaさん

ご回答ありがとうございます。
確認してみたところ、p3_lkidの値に商談IDではなく、異なる値がセットされていました。
修正した結果、問題なく動作しました。
ありがとうございました。