View difference between Paste ID: SUY0uNfm and zZp64BDH
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