You need to sign in to do that
Don't have an account?
Tyler Zika
Problem with Visualforce controller.
There is a form to create a new user for my customer portal. It creates a new contact when the form fills out.
The problem. It doesn't collect the mobile # or the mailing addresss. It does first name, last name, email, and phone number. What could be wrong?
The problem. It doesn't collect the mobile # or the mailing addresss. It does first name, last name, email, and phone number. What could be wrong?
/** * An apex page controller that supports self registration of users in communities that allow self registration */ public class CommunitiesSSignUpController { public String firstName {get; set;} public String lastName {get; set;} public String email {get; set;} public String password {get; set {password = value == null ? value : value.trim(); } } public String confirmPassword {get; set { confirmPassword = value == null ? value : value.trim(); } } public String communityNickname {get; set { communityNickname = value == null ? value : value.trim(); } } public String prefContactList { get; set; } public String mobilePhone { get; set; } public String homePhone { get; set; } public String mailingStreet { get; set; } public String mailingCity { get; set; } public String stateList { get; set; } public String mailingPostalCode { get; set; } public String Message {get; set; } public Boolean RegUserSuccessed { get; set; } public CommunitiesSSignUpController() { RegUserSuccessed=false; } public List<SelectOption> getStateCodes() { List<SelectOption> options = new List<SelectOption>(); Schema.DescribeFieldResult fieldResult = Contact.MailingStateCode.getDescribe(); List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues(); for( Schema.PicklistEntry f : ple ) { options.add(new SelectOption(f.getLabel(), f.getValue())); } system.debug('*********'+options); return options; } public List<SelectOption> getPrefContact() { List<SelectOption> options = new List<SelectOption>(); Schema.DescribeFieldResult fieldResult = Contact.Preferred_Contact_Method__c.getDescribe(); List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues(); for( Schema.PicklistEntry f : ple ) { options.add(new SelectOption(f.getLabel(), f.getValue())); } system.debug('*********'+options); return options; } private boolean isValidPassword() { return password == confirmPassword; } public PageReference registerUser() { Boolean isEmailRegistered = false; List<User> users = [select Id from User where username = :email limit 1]; if(users.size() > 0) { isEmailRegistered = true; Message = 'This email address already exists, click the Forgot Password link to generate a new password for it.'; ApexPages.Message msg = new ApexPages.Message(ApexPages.Severity.ERROR, 'This email address already exists, click the Forgot Password link to generate a new password for it.'); ApexPages.addMessage(msg); } if(!isEmailRegistered) { // it's okay if password is null - we'll send the user a random password in that case if (!isValidPassword()) { message = Label.site.passwords_dont_match; ApexPages.Message msg = new ApexPages.Message(ApexPages.Severity.ERROR, Label.site.passwords_dont_match); ApexPages.addMessage(msg); return null; } String profileId = null; // To be filled in by customer. String roleEnum = null; // To be filled in by customer. String accountId = ''; // To be filled in by customer. String userName = email; User u = new User(); u.Username = userName; u.Email = email; u.FirstName = firstName; u.LastName = lastName; u.Phone = homePhone; u.MobilePhone = mobilePhone; u.Street = mailingStreet; u.City = mailingCity; u.StateCode = stateList; u.PostalCode = mailingPostalCode; u.CommunityNickname = communityNickname; List<Account> communityAccts = [select Id from Account where Name = 'Community' limit 1]; String communityAcctId = null; if(communityAccts.size() > 0) { communityAcctId = communityAccts[0].Id; } String userId = Site.createPortalUser(u, communityAcctId, null); system.debug('####' + userId); if (userId != null) { RegUserSuccessed = true; Id cntId = [select ContactId from User where Id = :userId].COntactId; Id memberRecordTypeId = [select Id from RecordType where Name = 'Golden Opportunity' and sObjectType='COntact' limit 1].Id; COntact cnt = [select Preferred_Contact_Method__c, Phone, MobilePhone, MailingStreet, MailingCity, MailingStateCode, MailingPostalCode, RecordTypeId from Contact where id = :cntId]; cnt.Preferred_Contact_Method__c = prefContactList; cnt.Phone = homePhone; cnt.MobilePhone = mobilePhone; cnt.MailingStreet = mailingStreet; cnt.MailingCity = mailingCity; cnt.MailingStateCode = stateList; cnt.MailingPostalCode = MailingPostalCode; cnt.RecordTypeId = memberRecordTypeId; update cnt; if (password != null && password.length() > 1) { return Site.login(userName, password, ApexPages.currentPage().getParameters().get('startURL')); } } else { RegUserSuccessed = false; } } return null; } }
before updating cnt an see if the values are coming here or not.
and nothing is printing to the debug logs.
Is that the correct way?
Please check your VF page where you are setting this value.