force.com サイトを使用してショッピング カートを実行している状況があります。ショッピング カートの最初の 5 ページで、クレジット カード番号、配送先住所などのデータを収集します。
最後のボタンは「Place Order」と呼ばれます。ここで、すべてをデータベースにコミットし、クレジット カードに請求します。したがって、実行順序は次のとおりです。
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 プロセスを実行している場合、apex コードは Web サービスを呼び出すことができません。そのため、プロセスを 2 つのボタンに移動する必要がありました。
第 2 に、レシートが DML 挿入されてデータベースに完全に実行されるまで、apex コードは pdf を生成できません。
最終的に、顧客はすべてのステートメントを処理するために 3 つのボタンを立て続けにクリックする必要があります。1999 年以降は 1 回のクリック ボタンが採用されているため、これには問題があります。これらすべてを 1 回の apex コード実行で処理する方法はありますか?