У меня есть 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);
Что-то я не фига не понял в чем проблема?
Я если честно вообще не понял что написано
- как будто не русский писал ![]()
А вообще если надо что-то обносить в БД используй один из вариантов работы с ajax - к примеру RemoteAction, да даже apex:actionFunction. вызывай по событию в js и обрабатывай ответ.
При чем здесь pdf и остальная логика вообще не понятно.
Таблица. В ней строки. Как только строка меняется, эту запись надо обновить. Я хочу это сделать сразу, как поменялась запись на странице. Запись на странице меняется с помощью Javascript. Как мне обновить (DML update) запись на странички с помощью Javascript?
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
Remote Action и actionFunction не подходят ибо методы в контролере. Я видел код, который делает update записи (ну, и insert/delete) в Javascript. Целый Вэб Сервис городить ради этого - это через чур.
У меня есть Javascript код, который делает изменение. В конце этого кода я хочу добавить вызов какой-то СФ Javascript библиотеки, чтоб сделать update записи.
ЧТО методы в контроллере?
Тогда 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]);
}