Фиксация нескольких объектов за один раз

У меня есть ситуация, когда я использую сайты force.com для запуска корзины покупок. На первых 5 страницах корзины покупок я собираю такие данные, как номер кредитной карты, адрес доставки и т. Д.

Последняя кнопка называется «Разместить заказ». Здесь я хочу зафиксировать все в базе данных и списать деньги с кредитной карты. Итак, вот порядок исполнения:

1) Insert an account.
2) Charge the credit card using a call out webservice.
3) If the charge worked, create a Receipt__c object which is a slave object on the Account.
4) Create a pdf of the Receipt__c object.
5) Display the pdf in an iframe of the client's browser.

Теперь код вершины не может вызывать веб-сервис, если у меня выполняется процесс DML. Поэтому мне пришлось переместить процесс двумя кнопками.

Во-вторых, код вершины не может сгенерировать pdf, пока квитанция не будет вставлена ​​DML полностью в базу данных.

Конечным результатом является то, что клиент должен быстро нажать 3 кнопки, чтобы обработать все заявления. Это проблематично, поскольку с 1999 года используется кнопка в один клик. Есть ли способ обработать все это за одно выполнение кода вершины?


person Anon21    schedule 20.05.2013    source источник


Ответы (1)


Вы можете сделать что-то вроде этого:

<apex:actionFunction name="action1" action="{!action1}" rerender="message" oncomplete="action2()" />
<apex:actionFunction name="action2" action="{!action2}" rerender="message" />
<input value="Save" class="btn" onclick="action1();" type="button" />
person Shimshon Korits    schedule 21.05.2013