У меня есть Visualforce страничка. На ней есть табличка, строки которой тягаются. Эти строки надо обновлять в БД.
Кнопка с методом в контролере не хочу - это лишнее телодвижение для пользователя.
Обновлять надо сразу когда тягают, т.к. по кнопкам идет вызов сервиса и обновить записи надо ДО вызова сервиса. Перед самым вызовом сервиса генерируется pdf:
Blob pdfBlob;
PageReference pdfPage = new PageReference('/apex/PDF_Template_'+objToProcess.PDF_Type__c+'?id=' + objToProcess.Id);
if (pdfPage != null) {
pdfBlob= pdfPage.getContent();
}
string base64Pdf = EncodingUtil.base64Encode(pdfBlob);
У меня есть Visualforce страничка. На ней есть табличка, строки которой тягаются. Эти строки надо обновлять в БД. Кнопка с методом в контролере не хочу - это лишнее телодвижение для пользователя. Обновлять надо сразу когда тягают, т.к. по кнопкам идет вызов сервиса и обновить записи надо ДО вызова сервиса. Перед самым вызовом сервиса генерируется pdf: [code] Blob pdfBlob; PageReference pdfPage = new PageReference('/apex/PDF_Template_'+objToProcess.PDF_Type__c+'?id=' + objToProcess.Id); if (pdfPage != null) { pdfBlob= pdfPage.getContent(); } string base64Pdf = EncodingUtil.base64Encode(pdfBlob);[/code] base64Pdf улетает в сервисе. Контроллер как раз вычитывает те записи, которые сортируются. Один контроллер (расширение) и несколько страничек.
Что-то я не фига не понял в чем проблема?
Что-то я не фига не понял в чем проблема?
Я если честно вообще не понял что написано - как будто не русский писал
Я если честно вообще не понял что написано :D - как будто не русский писал :D
А вообще если надо что-то обносить в БД используй один из вариантов работы с ajax - к примеру RemoteAction, да даже apex:actionFunction. вызывай по событию в js и обрабатывай ответ.
При чем здесь pdf и остальная логика вообще не понятно.
А вообще если надо что-то обносить в БД используй один из вариантов работы с ajax - к примеру RemoteAction, да даже apex:actionFunction. вызывай по событию в js и обрабатывай ответ. При чем здесь pdf и остальная логика вообще не понятно.
Таблица. В ней строки. Как только строка меняется, эту запись надо обновить. Я хочу это сделать сразу, как поменялась запись на странице. Запись на странице меняется с помощью Javascript. Как мне обновить (DML update) запись на странички с помощью Javascript?
Таблица. В ней строки. Как только строка меняется, эту запись надо обновить. Я хочу это сделать сразу, как поменялась запись на странице. Запись на странице меняется с помощью Javascript. Как мне обновить (DML update) запись на странички с помощью Javascript?
apex:actionFunction
RemoteAction
REST Webservice
еще есть пара экзотическим методов.
Ты реально не знаешь как из JS вызвать Apex метод? Или ты не можешь в JS событие отловить по которому вызывать Apex метод из JS?
apex:actionFunction RemoteAction REST Webservice еще есть пара экзотическим методов. Ты реально не знаешь как из JS вызвать Apex метод? Или ты не можешь в JS событие отловить по которому вызывать Apex метод из JS?
Во еще забыл
RemoteObject
https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_remote_objects_using.htm
Во еще забыл RemoteObject https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_remote_objects_using.htm
Remote Action и actionFunction не подходят ибо методы в контролере. Я видел код, который делает update записи (ну, и insert/delete) в Javascript. Целый Вэб Сервис городить ради этого - это через чур.
У меня есть Javascript код, который делает изменение. В конце этого кода я хочу добавить вызов какой-то СФ Javascript библиотеки, чтоб сделать update записи.
Remote Action и actionFunction не подходят ибо методы в контролере. Я видел код, который делает update записи (ну, и insert/delete) в Javascript. Целый Вэб Сервис городить ради этого - это через чур. У меня есть Javascript код, который делает изменение. В конце этого кода я хочу добавить вызов какой-то СФ Javascript библиотеки, чтоб сделать update записи.
ЧТО методы в контроллере?
Тогда Remote Object наверное лучший вариант.
[quote="Andrew Muzychuk"]Remote Action и actionFunction не подходят ибо методы в контролере.[/quote] ЧТО методы в контроллере? [quote="Andrew Muzychuk"]В конце этого кода я хочу добавить вызов какой-то СФ Javascript библиотеки, чтоб сделать update записи.[/quote] Тогда Remote Object наверное лучший вариант.
Нашел. Капец.
AJAX Toolkit
<script type="text/javascript">var __sfdcSessionId = '{!GETSESSIONID()}';
<script src="../../soap/ajax/37.0/connection.js" type="text/javascript">
</script>//create an account
var account = new sforce.SObject("Account");
account.Name = "myName";
account.Phone = "2837484894";
result = sforce.connection.create([account]);
//update that account
account.id = result[0].id;
account.Phone = "12398238";
result = sforce.connection.update([account]);
if (result[0].getBoolean("success")) {
log("account with id " + result[0].id + " updated");
} else {
log("failed to update account " + result[0]);
}
Нашел. Капец. [url=https://resources.docs.salesforce.com/sfdc/pdf/apex_ajax.pdf]AJAX Toolkit[/url] [code] <script type="text/javascript">var __sfdcSessionId = '{!GETSESSIONID()}'; <script src="../../soap/ajax/37.0/connection.js" type="text/javascript"> </script> //create an account var account = new sforce.SObject("Account"); account.Name = "myName"; account.Phone = "2837484894"; result = sforce.connection.create([account]); //update that account account.id = result[0].id; account.Phone = "12398238"; result = sforce.connection.update([account]); if (result[0].getBoolean("success")) { log("account with id " + result[0].id + " updated"); } else { log("failed to update account " + result[0]); } [/code]