SHOW:
|
|
- or go back to the newest paste.
| 1 | /* | |
| 2 | * Controller supporting the TransactionRecordTypeDemo page that demonstrates | |
| 3 | * how to allow a user to select a Transaction record type from a dynamically | |
| 4 | * generated list. | |
| 5 | * | |
| 6 | - | * @version 0.2 |
| 6 | + | * @version 0.3 |
| 7 | * @see https://developer.salesforce.com/forums/ForumsMain?id=906F00000009F1M | |
| 8 | * @author Marty Chang (Slalom Consulting) | |
| 9 | */ | |
| 10 | public class TransactionSiteController {
| |
| 11 | ||
| 12 | /* | |
| 13 | * A Transaction record template to facilitate Salesforce-native user input. | |
| 14 | */ | |
| 15 | public Transaction__c proxy { get; set; }
| |
| 16 | ||
| 17 | /* | |
| 18 | * Default constructor that initializes member variables | |
| 19 | */ | |
| 20 | public TransactionSiteController() {
| |
| 21 | proxy = new Transaction__c(); | |
| 22 | } | |
| 23 | ||
| 24 | /* | |
| 25 | * @return The custom edit page for Transactions, with the specified | |
| 26 | * record type ID | |
| 27 | */ | |
| 28 | public PageReference editWithRecordType() {
| |
| 29 | - | PageReference nextPage = Page.EditTransaction; |
| 29 | + | |
| 30 | // Define some parameters for the edit page. | |
| 31 | // There must be a better way to do this, because hardcoding the | |
| 32 | // relative URL means it's not robust and will not work in | |
| 33 | // Communities. | |
| 34 | ||
| 35 | String transactionObjectPrefix = | |
| 36 | Schema.SObjectType.Transaction__c.getKeyPrefix(); | |
| 37 | ||
| 38 | PageReference nextPage = | |
| 39 | new PageReference('/' + transactionObjectPrefix + '/e');
| |
| 40 | ||
| 41 | // Add parameters to pre-populate known values for the new record | |
| 42 | ||
| 43 | nextPage.getParameters().put('RecordType', proxy.RecordTypeId);
| |
| 44 | ||
| 45 | String transactionAccountFieldName = | |
| 46 | 'CF00N90000006CdMG'; | |
| 47 | // Hardcoding is bad. There must be a better way! | |
| 48 | String accountName = 'sForce'; // Hardcoded for demo purposes | |
| 49 | nextPage.getParameters().put(transactionAccountFieldName, accountName); | |
| 50 | ||
| 51 | return nextPage; | |
| 52 | } | |
| 53 | } // public class TransactionSiteController |