Opportunity Closed Won запускает внешнюю веб-страницу / форму - PullRequest
0 голосов
/ 06 ноября 2019

Отдел продаж хочет, чтобы в Salesforce была функциональность объекта Opportunities, который, когда для Opportunity (в частности, для типа записи «Rental Suite») задано значение Closed-Won, автоматически запускает следующий шаг, который является страницей стека форм (внешнийURL).

Я создал простую страницу VF с кнопкой в ​​разделе «Сведения», которая переводит их в форму, но они настаивают на этой конкретной функции автоматического запуска страницы при изменении поля. Я пытался добавить больше Javascript, но я считаю, что мне не хватает некоторых шагов, таких как триггеры, потоки или построитель процессов.

VF

<apex:page id="pg" StandardController="Opportunity" extensions="SuiteFormController" standardStylesheets="true">

 <script>
    function OpenPage(sourcePage){
        if(sourcePage == 'suiteForm') {
           var win=window.open('formstack.com', '_blank');
        win.focus();
      }
    }
  </script>  

  <script type="text/javascript"> 
        if(
            "{!Opportunity.StageName}" === "Closed Won" and "{!Opportunity.RecordType}" === "Suite Rental"
        ){
            window.open('formstack.com', '_blank')
            }
  </script>     

    <apex:form >
        <apex:actionFunction name="OpenPage" action="{!redirect}" reRender="pb">
            <apex:param assignTo="{!Page}" value="" name="param1"/>
        </apex:actionFunction>

        <apex:pageBlock title="Suite Rental Form" id="pb">
            <apex:pageBlockButtons >
                <apex:commandButton action="{!redirect}" value="Suite Form" onclick="OpenPage('suiteForm'); return false;"/>
                <br/>
                Hello, {!$User.FirstName}
            </apex:pageBlockButtons>
            <apex:iframe id="theIframe" src="{!OpenPageURL}" scrolling="true"/>  
        </apex:pageBlock>     
    </apex:form>    
</apex:page> 

Контроллер

public class SuiteFormController {

    public String Page {get; set;}
    public String OpenPageURL {get; set;}

    public SuiteFormController(ApexPages.StandardController controller)
    {
        Page = '' ;
        OpenPageURL = '' ;
    }

    public PageReference redirect()
    {
        if(Page == 'suiteForm')
        {
            OpenPageURL = 'formstackform.com' ;

        }
        return null;
    }
} 

Iне могу заставить его открыть страницу, когда я меняю сцену. Я пропускаю некоторые шаги на контроллере? Заранее спасибо за любые предложения

...