Как запланировать апекс для запуска функции JavaScript? - PullRequest
0 голосов
/ 09 марта 2019

У меня есть функция javascript на странице Visualforce (найдено здесь ), которую я хотел бы выполнить на платформе Salesforce с использованием класса Apex и интерфейса Scheduable

Страница Visualforce

<apex:page controller="calljavascript_cls" >

<script>

function func()

{

alert('function calling');

}

</script>

<apex:outputText value="{!callfunc}" escape="false"></apex:outputText>
<apex:outputText value="{JavaScript}" ></apex:outputText>
</apex:page>

Apex Class

public class calljavascript_cls

{

public string callfunc{get;set;}

public calljavascript_cls()

{callfunc='<script> func(); </script>';}

}

Я также пытался создать класс планировщика, который генерирует ошибку

global class scheduledMerge implements Schedulable {
   global void execute(SchedulableContext SC) {
      calljavascript_cls();
   }
}

Ошибка:

Error: Compile Error: Method does not exist or incorrect signature: void calljavascript_cls() from the type scheduledMerge at line 3 column 7   

Я пытался использовать Apex Scheduler

1 Ответ

1 голос
/ 10 марта 2019

Невозможно выполнить javascript из apex, Visualforce (и включенный в него javascript) используется для визуализации HTML в результате запроса страницы из вашего браузера.

В вашем примере вызов javascriptФункция alert('function calling') из класса Schedulable ничего не значит, так как классы Schedulable выполняются асинхронно вне контекста браузера.

Что вы пытаетесь сделать в своей функции javascript?Лучшим вариантом будет повторить это в вершине.Кроме того, этот апекс-код может быть повторно использован со страницы Visualforce при необходимости.

...